@muziehdesign/components 18.2.0-next.1990 → 18.2.0-next.1998

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.
@@ -0,0 +1,65 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, ContentChild, ElementRef, EventEmitter, Input, Output, Renderer2 } from '@angular/core';
3
+ import { FormsModule, NgModel } from '@angular/forms';
4
+ import { ButtonDirective } from '../button.directive';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/forms";
7
+ import * as i2 from "@angular/common";
8
+ export class InlineEditComponent {
9
+ constructor(renderer) {
10
+ this.renderer = renderer;
11
+ this.isEditing = false;
12
+ this.busy = false;
13
+ this.layout = 'field';
14
+ this.save = new EventEmitter();
15
+ }
16
+ ngAfterViewInit() {
17
+ this.renderer.listen(this.ngModelElement?.nativeElement, 'focus', () => {
18
+ if (!this.isEditing) {
19
+ this.activate();
20
+ }
21
+ });
22
+ }
23
+ activate() {
24
+ this.isEditing = true;
25
+ this.ngModel.control.markAsTouched();
26
+ this.originalValue = this.ngModel.value;
27
+ setTimeout(() => {
28
+ this.ngModelElement?.nativeElement.focus();
29
+ });
30
+ }
31
+ submitForm() {
32
+ this.busy = true;
33
+ this.save.emit(this.ngModel.value);
34
+ }
35
+ cancelEdit() {
36
+ if (this.busy) {
37
+ return;
38
+ }
39
+ this.ngModel.reset(this.originalValue);
40
+ this.isEditing = false;
41
+ }
42
+ exitEdit() {
43
+ this.isEditing = false;
44
+ this.busy = false;
45
+ }
46
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: InlineEditComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
47
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: InlineEditComponent, isStandalone: true, selector: "mz-inline-edit", inputs: { label: "label", layout: "layout" }, outputs: { save: "save" }, queries: [{ propertyName: "ngModel", first: true, predicate: NgModel, descendants: true }, { propertyName: "ngModelElement", first: true, predicate: NgModel, descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"inline-edit\">\n <form class=\"flex gap-4\" [ngClass]=\"{ 'flex-col': layout === 'form', 'flex-row': layout === 'field' }\">\n @if (isEditing || !label) {\n <ng-content></ng-content>\n } @else if (label && !isEditing) {\n <button type=\"button\" class=\"flex gap-4 cursor-pointer\" (click)=\"activate()\">\n <span>\n {{ label }}\n </span>\n <span class=\"text-secondary\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" class=\"size-4\">\n <path d=\"M21.731 2.269a2.625 2.625 0 0 0-3.712 0l-1.157 1.157 3.712 3.712 1.157-1.157a2.625 2.625 0 0 0 0-3.712ZM19.513 8.199l-3.712-3.712-12.15 12.15a5.25 5.25 0 0 0-1.32 2.214l-.8 2.685a.75.75 0 0 0 .933.933l2.685-.8a5.25 5.25 0 0 0 2.214-1.32L19.513 8.2Z\" />\n </svg>\n </span>\n </button>\n }\n\n @if (isEditing) {\n <div class=\"flex gap-2\">\n <!--<button type=\"submit\" mzButton [busy]=\"busy\" (click)=\"submitForm()\">Save</button>\n <button type=\"button\" class=\"button button-tertiary\" (click)=\"cancelEdit()\">Cancel</button>-->\n <button mzButton [busy]=\"busy\" type=\"submit\" (click)=\"submitForm()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-5 w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fill-rule=\"evenodd\" d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\n </svg>\n </button>\n <button type=\"button\" mzButton variant=\"tertiary\" (click)=\"cancelEdit()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-5 w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fill-rule=\"evenodd\" d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\" clip-rule=\"evenodd\" />\n </svg>\n </button>\n </div>\n }\n </form>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: ButtonDirective, selector: "[mzButton]", inputs: ["variant", "busy"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
48
+ }
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: InlineEditComponent, decorators: [{
50
+ type: Component,
51
+ args: [{ selector: 'mz-inline-edit', standalone: true, imports: [ButtonDirective, FormsModule, CommonModule], template: "<div class=\"inline-edit\">\n <form class=\"flex gap-4\" [ngClass]=\"{ 'flex-col': layout === 'form', 'flex-row': layout === 'field' }\">\n @if (isEditing || !label) {\n <ng-content></ng-content>\n } @else if (label && !isEditing) {\n <button type=\"button\" class=\"flex gap-4 cursor-pointer\" (click)=\"activate()\">\n <span>\n {{ label }}\n </span>\n <span class=\"text-secondary\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" class=\"size-4\">\n <path d=\"M21.731 2.269a2.625 2.625 0 0 0-3.712 0l-1.157 1.157 3.712 3.712 1.157-1.157a2.625 2.625 0 0 0 0-3.712ZM19.513 8.199l-3.712-3.712-12.15 12.15a5.25 5.25 0 0 0-1.32 2.214l-.8 2.685a.75.75 0 0 0 .933.933l2.685-.8a5.25 5.25 0 0 0 2.214-1.32L19.513 8.2Z\" />\n </svg>\n </span>\n </button>\n }\n\n @if (isEditing) {\n <div class=\"flex gap-2\">\n <!--<button type=\"submit\" mzButton [busy]=\"busy\" (click)=\"submitForm()\">Save</button>\n <button type=\"button\" class=\"button button-tertiary\" (click)=\"cancelEdit()\">Cancel</button>-->\n <button mzButton [busy]=\"busy\" type=\"submit\" (click)=\"submitForm()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-5 w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fill-rule=\"evenodd\" d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\n </svg>\n </button>\n <button type=\"button\" mzButton variant=\"tertiary\" (click)=\"cancelEdit()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-5 w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fill-rule=\"evenodd\" d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\" clip-rule=\"evenodd\" />\n </svg>\n </button>\n </div>\n }\n </form>\n</div>\n" }]
52
+ }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { label: [{
53
+ type: Input
54
+ }], layout: [{
55
+ type: Input
56
+ }], save: [{
57
+ type: Output
58
+ }], ngModel: [{
59
+ type: ContentChild,
60
+ args: [NgModel]
61
+ }], ngModelElement: [{
62
+ type: ContentChild,
63
+ args: [NgModel, { read: ElementRef }]
64
+ }] } });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2lubGluZS1lZGl0L2lubGluZS1lZGl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9pbmxpbmUtZWRpdC9pbmxpbmUtZWRpdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0gsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFTdEQsTUFBTSxPQUFPLG1CQUFtQjtJQVk1QixZQUFvQixRQUFtQjtRQUFuQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBWHZDLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUVKLFdBQU0sR0FBcUIsT0FBTyxDQUFDO1FBQ2xDLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBT00sQ0FBQztJQUUzQyxlQUFlO1FBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRTtZQUNuRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDcEIsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBRXhDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsY0FBYyxFQUFFLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1osT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDOzhHQWhEUSxtQkFBbUI7a0dBQW5CLG1CQUFtQix3TEFPZCxPQUFPLGlGQUNQLE9BQU8sMkJBQVUsVUFBVSw2QkNwQjdDLGswRUFtQ0EsMEREM0JjLGVBQWUsbUZBQUUsV0FBVyx1ZEFBRSxZQUFZOzsyRkFJM0MsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNJLGdCQUFnQixjQUNkLElBQUksV0FDUCxDQUFDLGVBQWUsRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDOzhFQU81QyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNJLElBQUk7c0JBQWIsTUFBTTtnQkFFZ0IsT0FBTztzQkFBN0IsWUFBWTt1QkFBQyxPQUFPO2dCQUNnQyxjQUFjO3NCQUFsRSxZQUFZO3VCQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTmdNb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL2J1dHRvbi5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ216LWlubGluZS1lZGl0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtCdXR0b25EaXJlY3RpdmUsIEZvcm1zTW9kdWxlLCBDb21tb25Nb2R1bGVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbmxpbmUtZWRpdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2lubGluZS1lZGl0LmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgSW5saW5lRWRpdENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIGlzRWRpdGluZyA9IGZhbHNlO1xuICAgIGJ1c3kgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBsYWJlbD86IHN0cmluZztcbiAgICBASW5wdXQoKSBsYXlvdXQ6ICdmb3JtJyB8ICdmaWVsZCcgPSAnZmllbGQnO1xuICAgIEBPdXRwdXQoKSBzYXZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQENvbnRlbnRDaGlsZChOZ01vZGVsKSBuZ01vZGVsITogTmdNb2RlbDtcbiAgICBAQ29udGVudENoaWxkKE5nTW9kZWwsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBwcml2YXRlIG5nTW9kZWxFbGVtZW50PzogRWxlbWVudFJlZjtcblxuICAgIG9yaWdpbmFsVmFsdWU6IHVua25vd247XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHt9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMubmdNb2RlbEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQsICdmb2N1cycsICgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc0VkaXRpbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2YXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFjdGl2YXRlKCkge1xuICAgICAgICB0aGlzLmlzRWRpdGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMubmdNb2RlbC5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5vcmlnaW5hbFZhbHVlID0gdGhpcy5uZ01vZGVsLnZhbHVlO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5uZ01vZGVsRWxlbWVudD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzdWJtaXRGb3JtKCkge1xuICAgICAgICB0aGlzLmJ1c3kgPSB0cnVlO1xuICAgICAgICB0aGlzLnNhdmUuZW1pdCh0aGlzLm5nTW9kZWwudmFsdWUpO1xuICAgIH1cblxuICAgIGNhbmNlbEVkaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLmJ1c3kpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm5nTW9kZWwucmVzZXQodGhpcy5vcmlnaW5hbFZhbHVlKTtcbiAgICAgICAgdGhpcy5pc0VkaXRpbmcgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBleGl0RWRpdCgpIHtcbiAgICAgICAgdGhpcy5pc0VkaXRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5idXN5ID0gZmFsc2U7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImlubGluZS1lZGl0XCI+XG4gICAgPGZvcm0gY2xhc3M9XCJmbGV4IGdhcC00XCIgW25nQ2xhc3NdPVwieyAnZmxleC1jb2wnOiBsYXlvdXQgPT09ICdmb3JtJywgJ2ZsZXgtcm93JzogbGF5b3V0ID09PSAnZmllbGQnIH1cIj5cbiAgICAgICAgQGlmIChpc0VkaXRpbmcgfHwgIWxhYmVsKSB7XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIH0gQGVsc2UgaWYgKGxhYmVsICYmICFpc0VkaXRpbmcpIHtcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZmxleCBnYXAtNCBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJhY3RpdmF0ZSgpXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgICAgIHt7IGxhYmVsIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zZWNvbmRhcnlcIj5cbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBjbGFzcz1cInNpemUtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yMS43MzEgMi4yNjlhMi42MjUgMi42MjUgMCAwIDAtMy43MTIgMGwtMS4xNTcgMS4xNTcgMy43MTIgMy43MTIgMS4xNTctMS4xNTdhMi42MjUgMi42MjUgMCAwIDAgMC0zLjcxMlpNMTkuNTEzIDguMTk5bC0zLjcxMi0zLjcxMi0xMi4xNSAxMi4xNWE1LjI1IDUuMjUgMCAwIDAtMS4zMiAyLjIxNGwtLjggMi42ODVhLjc1Ljc1IDAgMCAwIC45MzMuOTMzbDIuNjg1LS44YTUuMjUgNS4yNSAwIDAgMCAyLjIxNC0xLjMyTDE5LjUxMyA4LjJaXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKGlzRWRpdGluZykge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICA8IS0tPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgbXpCdXR0b24gW2J1c3ldPVwiYnVzeVwiIChjbGljayk9XCJzdWJtaXRGb3JtKClcIj5TYXZlPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b24gYnV0dG9uLXRlcnRpYXJ5XCIgKGNsaWNrKT1cImNhbmNlbEVkaXQoKVwiPkNhbmNlbDwvYnV0dG9uPi0tPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbXpCdXR0b24gW2J1c3ldPVwiYnVzeVwiIHR5cGU9XCJzdWJtaXRcIiAoY2xpY2spPVwic3VibWl0Rm9ybSgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwiaC01IHctNVwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xNi43MDcgNS4yOTNhMSAxIDAgMDEwIDEuNDE0bC04IDhhMSAxIDAgMDEtMS40MTQgMGwtNC00YTEgMSAwIDAxMS40MTQtMS40MTRMOCAxMi41ODZsNy4yOTMtNy4yOTNhMSAxIDAgMDExLjQxNCAwelwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtekJ1dHRvbiB2YXJpYW50PVwidGVydGlhcnlcIiAoY2xpY2spPVwiY2FuY2VsRWRpdCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwiaC01IHctNVwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00LjI5MyA0LjI5M2ExIDEgMCAwMTEuNDE0IDBMMTAgOC41ODZsNC4yOTMtNC4yOTNhMSAxIDAgMTExLjQxNCAxLjQxNEwxMS40MTQgMTBsNC4yOTMgNC4yOTNhMSAxIDAgMDEtMS40MTQgMS40MTRMMTAgMTEuNDE0bC00LjI5MyA0LjI5M2ExIDEgMCAwMS0xLjQxNC0xLjQxNEw4LjU4NiAxMCA0LjI5MyA1LjcwN2ExIDEgMCAwMTAtMS40MTR6XCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICA8L2Zvcm0+XG48L2Rpdj5cbiJdfQ==
@@ -10,6 +10,8 @@ export { PageLoadingIndicatorComponent } from './lib/page-loading-indicator/page
10
10
  export { PageHeaderComponent } from './lib/page-header/page-header.component';
11
11
  export { PhoneNumberPipe } from './lib/phone-number/phone-number.pipe';
12
12
  export { DateDisplayPipe } from './lib/date-display/date-display.pipe';
13
+ // inline edit
14
+ export { InlineEditComponent } from './lib/inline-edit/inline-edit.component';
13
15
  // subject
14
16
  export { SubjectDisplayPipe } from './lib/subject-display/subject-display.pipe';
15
17
  // table
@@ -33,4 +35,4 @@ export { ButtonDirective } from './lib/button.directive';
33
35
  export { WizardProgressTrackerComponent } from './lib/wizard-progress-tracker/wizard-progress-tracker.component';
34
36
  export { InlineMessageComponent } from './lib/inline-message/inline-message.component';
35
37
  export { InlineMessageDialogComponent } from './lib/inline-message/inline-message-dialog/inline-message-dialog.component';
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQWtCLHdCQUF3QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRW5FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQzlHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFdkUsVUFBVTtBQUNWLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBR2hGLFFBQVE7QUFDUixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUs1RSxrQkFBa0I7QUFDbEIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFFMUYsV0FBVztBQUNYLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRW5GLGdCQUFnQjtBQUNoQixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV4RSxRQUFRO0FBQ1IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTdELE9BQU87QUFDUCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSXpELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDRFQUE0RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBjb21wb25lbnRzXG4gKi9cblxuZXhwb3J0IHsgU3ZnSWNvbkNvbXBvbmVudCB9IGZyb20gJy4vbGliL3N2Zy1pY29uL3N2Zy1pY29uLmNvbXBvbmVudCc7XG5leHBvcnQgeyBTdmdJY29uT3B0aW9ucywgU1ZHX0lDT05fREVGQVVMVF9PUFRJT05TIH0gZnJvbSAnLi9saWIvc3ZnLWljb24vc3ZnLWljb24tY29uZmlnJztcblxuZXhwb3J0IHsgRW51bURpc3BsYXlQaXBlIH0gZnJvbSAnLi9saWIvZW51bS1kaXNwbGF5L2VudW0tZGlzcGxheS5waXBlJztcbmV4cG9ydCB7IFNwaW5uZXJDb21wb25lbnQgfSBmcm9tICcuL2xpYi9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50JztcblxuZXhwb3J0IHsgTXV6aWVoQ29tcG9uZW50c01vZHVsZSB9IGZyb20gJy4vbGliL2NvbXBvbmVudHMubW9kdWxlJztcbmV4cG9ydCB7IFBhZ2VMb2FkaW5nSW5kaWNhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvcGFnZS1sb2FkaW5nLWluZGljYXRvci9wYWdlLWxvYWRpbmctaW5kaWNhdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgeyBQYWdlSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvcGFnZS1oZWFkZXIvcGFnZS1oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IFBob25lTnVtYmVyUGlwZSB9IGZyb20gJy4vbGliL3Bob25lLW51bWJlci9waG9uZS1udW1iZXIucGlwZSc7XG5leHBvcnQgeyBEYXRlRGlzcGxheVBpcGUgfSBmcm9tICcuL2xpYi9kYXRlLWRpc3BsYXkvZGF0ZS1kaXNwbGF5LnBpcGUnO1xuXG4vLyBzdWJqZWN0XG5leHBvcnQgeyBTdWJqZWN0RGlzcGxheVBpcGUgfSBmcm9tICcuL2xpYi9zdWJqZWN0LWRpc3BsYXkvc3ViamVjdC1kaXNwbGF5LnBpcGUnO1xuZXhwb3J0IHsgU3ViamVjdCB9IGZyb20gJy4vbGliL21vZGVscy9zdWJqZWN0JztcblxuLy8gdGFibGVcbmV4cG9ydCB7IFJlc3VsdFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvcmVzdWx0LXRhYmxlL3Jlc3VsdC10YWJsZS5jb21wb25lbnQnO1xuZXhwb3J0IHsgUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vbGliL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0IHsgUGFnZUV2ZW50IH0gZnJvbSAnLi9saWIvbW9kZWxzL3BhZ2UtZXZlbnQnO1xuZXhwb3J0IHsgTG9hZGluZ1N0YXRlIH0gZnJvbSAnLi9saWIvbW9kZWxzL2xvYWRpbmctc3RhdGUnO1xuZXhwb3J0IHsgUmVzdWx0VGFibGVNb2RlbCB9IGZyb20gJy4vbGliL3Jlc3VsdC10YWJsZS9yZXN1bHQtdGFibGUubW9kZWwnO1xuXG4vLyBpbmZpbml0ZSBzY3JvbGxcbmV4cG9ydCB7IEluZmluaXRlU2Nyb2xsQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvaW5maW5pdGUtc2Nyb2xsL2luZmluaXRlLXNjcm9sbC5jb21wb25lbnQnO1xuXG4vLyBEYXRldGltZVxuZXhwb3J0IHsgRGF0ZVRpbWVDb21wb25lbnQgfSBmcm9tICcuL2xpYi9kYXRlLXRpbWUvZGF0ZS10aW1lLmNvbXBvbmVudCc7XG5leHBvcnQgeyBUaW1lVmFsdWUgfSBmcm9tICcuL2xpYi9kYXRlLXRpbWUvdGltZS12YWx1ZSc7XG5leHBvcnQgeyBUaW1lVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSB9IGZyb20gJy4vbGliL3RpbWUtdmFsdWUtYWNjZXNzb3IuZGlyZWN0aXZlJztcbmV4cG9ydCB7IFRpbWVWYWx1ZVZhbGlkYXRvckRpcmVjdGl2ZSB9IGZyb20gJy4vbGliL3RpbWUtdmFsdWUtdmFsaWRhdG9yLmRpcmVjdGl2ZSc7XG5cbi8vIHRlc3RpbmcgZmlsZXNcbmV4cG9ydCB7IE11emllaENvbXBvbmVudEhhcm5lc3MgfSBmcm9tICcuL2xpYi90ZXN0aW5nL211emllaC1jb21wb25lbnQtaGFybmVzcyc7XG5leHBvcnQgeyBSZXN1bHRUYWJsZUhhcm5lc3MgfSBmcm9tICcuL2xpYi90ZXN0aW5nL3Jlc3VsdC10YWJsZS1oYXJuZXNzJztcblxuLy8gYWxlcnRcbmV4cG9ydCB7IEFsZXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9saWIvYWxlcnQvYWxlcnQuY29tcG9uZW50JztcblxuLy8gc29ydFxuZXhwb3J0IHsgU29ydEtleURpcmVjdGl2ZSB9IGZyb20gJy4vbGliL3NvcnQta2V5LmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBTb3J0RGlyZWN0aXZlIH0gZnJvbSAnLi9saWIvc29ydC5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi9saWIvYnV0dG9uLmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBTb3J0RXZlbnQgfSBmcm9tICcuL2xpYi9tb2RlbHMvc29ydC1ldmVudCc7XG5cbmV4cG9ydCB7IFdpemFyZFN0ZXBMaW5rIH0gZnJvbSAnLi9saWIvbW9kZWxzL3dpemFyZC1zdGVwLWxpbmsnO1xuZXhwb3J0IHsgV2l6YXJkUHJvZ3Jlc3NUcmFja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvd2l6YXJkLXByb2dyZXNzLXRyYWNrZXIvd2l6YXJkLXByb2dyZXNzLXRyYWNrZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IElubGluZU1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL2xpYi9pbmxpbmUtbWVzc2FnZS9pbmxpbmUtbWVzc2FnZS5jb21wb25lbnQnO1xuZXhwb3J0IHsgSW5saW5lTWVzc2FnZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vbGliL2lubGluZS1tZXNzYWdlL2lubGluZS1tZXNzYWdlLWRpYWxvZy9pbmxpbmUtbWVzc2FnZS1kaWFsb2cuY29tcG9uZW50JztcbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQWtCLHdCQUF3QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRW5FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQzlHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFdkUsY0FBYztBQUNkLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRTlFLFVBQVU7QUFDVixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUdoRixRQUFRO0FBQ1IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFLNUUsa0JBQWtCO0FBQ2xCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRTFGLFdBQVc7QUFDWCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV4RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUVuRixnQkFBZ0I7QUFDaEIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFeEUsUUFBUTtBQUNSLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU3RCxPQUFPO0FBQ1AsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUl6RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN2RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw0RUFBNEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgY29tcG9uZW50c1xuICovXG5cbmV4cG9ydCB7IFN2Z0ljb25Db21wb25lbnQgfSBmcm9tICcuL2xpYi9zdmctaWNvbi9zdmctaWNvbi5jb21wb25lbnQnO1xuZXhwb3J0IHsgU3ZnSWNvbk9wdGlvbnMsIFNWR19JQ09OX0RFRkFVTFRfT1BUSU9OUyB9IGZyb20gJy4vbGliL3N2Zy1pY29uL3N2Zy1pY29uLWNvbmZpZyc7XG5cbmV4cG9ydCB7IEVudW1EaXNwbGF5UGlwZSB9IGZyb20gJy4vbGliL2VudW0tZGlzcGxheS9lbnVtLWRpc3BsYXkucGlwZSc7XG5leHBvcnQgeyBTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudCc7XG5cbmV4cG9ydCB7IE11emllaENvbXBvbmVudHNNb2R1bGUgfSBmcm9tICcuL2xpYi9jb21wb25lbnRzLm1vZHVsZSc7XG5leHBvcnQgeyBQYWdlTG9hZGluZ0luZGljYXRvckNvbXBvbmVudCB9IGZyb20gJy4vbGliL3BhZ2UtbG9hZGluZy1pbmRpY2F0b3IvcGFnZS1sb2FkaW5nLWluZGljYXRvci5jb21wb25lbnQnO1xuZXhwb3J0IHsgUGFnZUhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vbGliL3BhZ2UtaGVhZGVyL3BhZ2UtaGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgeyBQaG9uZU51bWJlclBpcGUgfSBmcm9tICcuL2xpYi9waG9uZS1udW1iZXIvcGhvbmUtbnVtYmVyLnBpcGUnO1xuZXhwb3J0IHsgRGF0ZURpc3BsYXlQaXBlIH0gZnJvbSAnLi9saWIvZGF0ZS1kaXNwbGF5L2RhdGUtZGlzcGxheS5waXBlJztcblxuLy8gaW5saW5lIGVkaXRcbmV4cG9ydCB7IElubGluZUVkaXRDb21wb25lbnQgfSBmcm9tICcuL2xpYi9pbmxpbmUtZWRpdC9pbmxpbmUtZWRpdC5jb21wb25lbnQnO1xuXG4vLyBzdWJqZWN0XG5leHBvcnQgeyBTdWJqZWN0RGlzcGxheVBpcGUgfSBmcm9tICcuL2xpYi9zdWJqZWN0LWRpc3BsYXkvc3ViamVjdC1kaXNwbGF5LnBpcGUnO1xuZXhwb3J0IHsgU3ViamVjdCB9IGZyb20gJy4vbGliL21vZGVscy9zdWJqZWN0JztcblxuLy8gdGFibGVcbmV4cG9ydCB7IFJlc3VsdFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvcmVzdWx0LXRhYmxlL3Jlc3VsdC10YWJsZS5jb21wb25lbnQnO1xuZXhwb3J0IHsgUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vbGliL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0IHsgUGFnZUV2ZW50IH0gZnJvbSAnLi9saWIvbW9kZWxzL3BhZ2UtZXZlbnQnO1xuZXhwb3J0IHsgTG9hZGluZ1N0YXRlIH0gZnJvbSAnLi9saWIvbW9kZWxzL2xvYWRpbmctc3RhdGUnO1xuZXhwb3J0IHsgUmVzdWx0VGFibGVNb2RlbCB9IGZyb20gJy4vbGliL3Jlc3VsdC10YWJsZS9yZXN1bHQtdGFibGUubW9kZWwnO1xuXG4vLyBpbmZpbml0ZSBzY3JvbGxcbmV4cG9ydCB7IEluZmluaXRlU2Nyb2xsQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvaW5maW5pdGUtc2Nyb2xsL2luZmluaXRlLXNjcm9sbC5jb21wb25lbnQnO1xuXG4vLyBEYXRldGltZVxuZXhwb3J0IHsgRGF0ZVRpbWVDb21wb25lbnQgfSBmcm9tICcuL2xpYi9kYXRlLXRpbWUvZGF0ZS10aW1lLmNvbXBvbmVudCc7XG5leHBvcnQgeyBUaW1lVmFsdWUgfSBmcm9tICcuL2xpYi9kYXRlLXRpbWUvdGltZS12YWx1ZSc7XG5leHBvcnQgeyBUaW1lVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSB9IGZyb20gJy4vbGliL3RpbWUtdmFsdWUtYWNjZXNzb3IuZGlyZWN0aXZlJztcbmV4cG9ydCB7IFRpbWVWYWx1ZVZhbGlkYXRvckRpcmVjdGl2ZSB9IGZyb20gJy4vbGliL3RpbWUtdmFsdWUtdmFsaWRhdG9yLmRpcmVjdGl2ZSc7XG5cbi8vIHRlc3RpbmcgZmlsZXNcbmV4cG9ydCB7IE11emllaENvbXBvbmVudEhhcm5lc3MgfSBmcm9tICcuL2xpYi90ZXN0aW5nL211emllaC1jb21wb25lbnQtaGFybmVzcyc7XG5leHBvcnQgeyBSZXN1bHRUYWJsZUhhcm5lc3MgfSBmcm9tICcuL2xpYi90ZXN0aW5nL3Jlc3VsdC10YWJsZS1oYXJuZXNzJztcblxuLy8gYWxlcnRcbmV4cG9ydCB7IEFsZXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9saWIvYWxlcnQvYWxlcnQuY29tcG9uZW50JztcblxuLy8gc29ydFxuZXhwb3J0IHsgU29ydEtleURpcmVjdGl2ZSB9IGZyb20gJy4vbGliL3NvcnQta2V5LmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBTb3J0RGlyZWN0aXZlIH0gZnJvbSAnLi9saWIvc29ydC5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi9saWIvYnV0dG9uLmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBTb3J0RXZlbnQgfSBmcm9tICcuL2xpYi9tb2RlbHMvc29ydC1ldmVudCc7XG5cbmV4cG9ydCB7IFdpemFyZFN0ZXBMaW5rIH0gZnJvbSAnLi9saWIvbW9kZWxzL3dpemFyZC1zdGVwLWxpbmsnO1xuZXhwb3J0IHsgV2l6YXJkUHJvZ3Jlc3NUcmFja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvd2l6YXJkLXByb2dyZXNzLXRyYWNrZXIvd2l6YXJkLXByb2dyZXNzLXRyYWNrZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IElubGluZU1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL2xpYi9pbmxpbmUtbWVzc2FnZS9pbmxpbmUtbWVzc2FnZS5jb21wb25lbnQnO1xuZXhwb3J0IHsgSW5saW5lTWVzc2FnZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vbGliL2lubGluZS1tZXNzYWdlL2lubGluZS1tZXNzYWdlLWRpYWxvZy9pbmxpbmUtbWVzc2FnZS1kaWFsb2cuY29tcG9uZW50JztcbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, Component, Inject, Input, Pipe, EventEmitter, Optional, Output, ContentChild, Directive, HostListener, HostBinding, forwardRef, ViewChild, NgModule } from '@angular/core';
2
+ import { InjectionToken, Component, Inject, Input, Pipe, EventEmitter, Optional, Output, ContentChild, Directive, HostListener, HostBinding, forwardRef, ViewChild, NgModule, ElementRef } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule, DatePipe } from '@angular/common';
5
5
  import * as i1$1 from '@angular/router';
@@ -9,7 +9,8 @@ import { filter, delay, take, repeat } from 'rxjs/operators';
9
9
  import { SubSink } from 'subsink';
10
10
  import * as i1$2 from '@angular/platform-browser';
11
11
  import { By } from '@angular/platform-browser';
12
- import { NG_VALUE_ACCESSOR, NG_VALIDATORS, FormsModule } from '@angular/forms';
12
+ import * as i1$5 from '@angular/forms';
13
+ import { NG_VALUE_ACCESSOR, NG_VALIDATORS, FormsModule, NgModel } from '@angular/forms';
13
14
  import * as i1$3 from '@angular/material/datepicker';
14
15
  import { MatDatepickerModule } from '@angular/material/datepicker';
15
16
  import * as i1$4 from '@angular/cdk/dialog';
@@ -1065,6 +1066,64 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
1065
1066
  }]
1066
1067
  }] });
1067
1068
 
1069
+ class InlineEditComponent {
1070
+ constructor(renderer) {
1071
+ this.renderer = renderer;
1072
+ this.isEditing = false;
1073
+ this.busy = false;
1074
+ this.layout = 'field';
1075
+ this.save = new EventEmitter();
1076
+ }
1077
+ ngAfterViewInit() {
1078
+ this.renderer.listen(this.ngModelElement?.nativeElement, 'focus', () => {
1079
+ if (!this.isEditing) {
1080
+ this.activate();
1081
+ }
1082
+ });
1083
+ }
1084
+ activate() {
1085
+ this.isEditing = true;
1086
+ this.ngModel.control.markAsTouched();
1087
+ this.originalValue = this.ngModel.value;
1088
+ setTimeout(() => {
1089
+ this.ngModelElement?.nativeElement.focus();
1090
+ });
1091
+ }
1092
+ submitForm() {
1093
+ this.busy = true;
1094
+ this.save.emit(this.ngModel.value);
1095
+ }
1096
+ cancelEdit() {
1097
+ if (this.busy) {
1098
+ return;
1099
+ }
1100
+ this.ngModel.reset(this.originalValue);
1101
+ this.isEditing = false;
1102
+ }
1103
+ exitEdit() {
1104
+ this.isEditing = false;
1105
+ this.busy = false;
1106
+ }
1107
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: InlineEditComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
1108
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: InlineEditComponent, isStandalone: true, selector: "mz-inline-edit", inputs: { label: "label", layout: "layout" }, outputs: { save: "save" }, queries: [{ propertyName: "ngModel", first: true, predicate: NgModel, descendants: true }, { propertyName: "ngModelElement", first: true, predicate: NgModel, descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"inline-edit\">\n <form class=\"flex gap-4\" [ngClass]=\"{ 'flex-col': layout === 'form', 'flex-row': layout === 'field' }\">\n @if (isEditing || !label) {\n <ng-content></ng-content>\n } @else if (label && !isEditing) {\n <button type=\"button\" class=\"flex gap-4 cursor-pointer\" (click)=\"activate()\">\n <span>\n {{ label }}\n </span>\n <span class=\"text-secondary\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" class=\"size-4\">\n <path d=\"M21.731 2.269a2.625 2.625 0 0 0-3.712 0l-1.157 1.157 3.712 3.712 1.157-1.157a2.625 2.625 0 0 0 0-3.712ZM19.513 8.199l-3.712-3.712-12.15 12.15a5.25 5.25 0 0 0-1.32 2.214l-.8 2.685a.75.75 0 0 0 .933.933l2.685-.8a5.25 5.25 0 0 0 2.214-1.32L19.513 8.2Z\" />\n </svg>\n </span>\n </button>\n }\n\n @if (isEditing) {\n <div class=\"flex gap-2\">\n <!--<button type=\"submit\" mzButton [busy]=\"busy\" (click)=\"submitForm()\">Save</button>\n <button type=\"button\" class=\"button button-tertiary\" (click)=\"cancelEdit()\">Cancel</button>-->\n <button mzButton [busy]=\"busy\" type=\"submit\" (click)=\"submitForm()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-5 w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fill-rule=\"evenodd\" d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\n </svg>\n </button>\n <button type=\"button\" mzButton variant=\"tertiary\" (click)=\"cancelEdit()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-5 w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fill-rule=\"evenodd\" d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\" clip-rule=\"evenodd\" />\n </svg>\n </button>\n </div>\n }\n </form>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: ButtonDirective, selector: "[mzButton]", inputs: ["variant", "busy"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
1109
+ }
1110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: InlineEditComponent, decorators: [{
1111
+ type: Component,
1112
+ args: [{ selector: 'mz-inline-edit', standalone: true, imports: [ButtonDirective, FormsModule, CommonModule], template: "<div class=\"inline-edit\">\n <form class=\"flex gap-4\" [ngClass]=\"{ 'flex-col': layout === 'form', 'flex-row': layout === 'field' }\">\n @if (isEditing || !label) {\n <ng-content></ng-content>\n } @else if (label && !isEditing) {\n <button type=\"button\" class=\"flex gap-4 cursor-pointer\" (click)=\"activate()\">\n <span>\n {{ label }}\n </span>\n <span class=\"text-secondary\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" class=\"size-4\">\n <path d=\"M21.731 2.269a2.625 2.625 0 0 0-3.712 0l-1.157 1.157 3.712 3.712 1.157-1.157a2.625 2.625 0 0 0 0-3.712ZM19.513 8.199l-3.712-3.712-12.15 12.15a5.25 5.25 0 0 0-1.32 2.214l-.8 2.685a.75.75 0 0 0 .933.933l2.685-.8a5.25 5.25 0 0 0 2.214-1.32L19.513 8.2Z\" />\n </svg>\n </span>\n </button>\n }\n\n @if (isEditing) {\n <div class=\"flex gap-2\">\n <!--<button type=\"submit\" mzButton [busy]=\"busy\" (click)=\"submitForm()\">Save</button>\n <button type=\"button\" class=\"button button-tertiary\" (click)=\"cancelEdit()\">Cancel</button>-->\n <button mzButton [busy]=\"busy\" type=\"submit\" (click)=\"submitForm()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-5 w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fill-rule=\"evenodd\" d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\n </svg>\n </button>\n <button type=\"button\" mzButton variant=\"tertiary\" (click)=\"cancelEdit()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-5 w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fill-rule=\"evenodd\" d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\" clip-rule=\"evenodd\" />\n </svg>\n </button>\n </div>\n }\n </form>\n</div>\n" }]
1113
+ }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { label: [{
1114
+ type: Input
1115
+ }], layout: [{
1116
+ type: Input
1117
+ }], save: [{
1118
+ type: Output
1119
+ }], ngModel: [{
1120
+ type: ContentChild,
1121
+ args: [NgModel]
1122
+ }], ngModelElement: [{
1123
+ type: ContentChild,
1124
+ args: [NgModel, { read: ElementRef }]
1125
+ }] } });
1126
+
1068
1127
  class MuziehComponentHarness {
1069
1128
  }
1070
1129
 
@@ -1139,5 +1198,5 @@ class ResultTableHarness extends MuziehComponentHarness {
1139
1198
  * Generated bundle index. Do not edit.
1140
1199
  */
1141
1200
 
1142
- export { AlertComponent, ButtonDirective, DateDisplayPipe, DateTimeComponent, EnumDisplayPipe, InfiniteScrollComponent, InlineMessageComponent, InlineMessageDialogComponent, MuziehComponentHarness, MuziehComponentsModule, PageHeaderComponent, PageLoadingIndicatorComponent, PaginationComponent, PhoneNumberPipe, ResultTableComponent, ResultTableHarness, SVG_ICON_DEFAULT_OPTIONS, SortDirective, SortKeyDirective, SpinnerComponent, SubjectDisplayPipe, SvgIconComponent, TimeValueAccessorDirective, TimeValueValidatorDirective, WizardProgressTrackerComponent };
1201
+ export { AlertComponent, ButtonDirective, DateDisplayPipe, DateTimeComponent, EnumDisplayPipe, InfiniteScrollComponent, InlineEditComponent, InlineMessageComponent, InlineMessageDialogComponent, MuziehComponentHarness, MuziehComponentsModule, PageHeaderComponent, PageLoadingIndicatorComponent, PaginationComponent, PhoneNumberPipe, ResultTableComponent, ResultTableHarness, SVG_ICON_DEFAULT_OPTIONS, SortDirective, SortKeyDirective, SpinnerComponent, SubjectDisplayPipe, SvgIconComponent, TimeValueAccessorDirective, TimeValueValidatorDirective, WizardProgressTrackerComponent };
1143
1202
  //# sourceMappingURL=muziehdesign-components.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"muziehdesign-components.mjs","sources":["../../../projects/components/src/lib/svg-icon/svg-icon-config.ts","../../../projects/components/src/lib/svg-icon/svg-icon.component.ts","../../../projects/components/src/lib/svg-icon/svg-icon.component.svg","../../../projects/components/src/lib/enum-display/enum-display.pipe.ts","../../../projects/components/src/lib/spinner/spinner.component.ts","../../../projects/components/src/lib/spinner/spinner.component.html","../../../projects/components/src/lib/pagination/pagination-default-options.token.ts","../../../projects/components/src/lib/pagination/pagination.component.ts","../../../projects/components/src/lib/pagination/pagination.component.html","../../../projects/components/src/lib/result-table/result-table.component.ts","../../../projects/components/src/lib/result-table/result-table.component.html","../../../projects/components/src/lib/page-loading-indicator/page-loading-indicator.component.ts","../../../projects/components/src/lib/page-loading-indicator/page-loading-indicator.component.html","../../../projects/components/src/lib/page-header/page-header.component.ts","../../../projects/components/src/lib/page-header/page-header.component.html","../../../projects/components/src/lib/time-value-accessor.directive.ts","../../../projects/components/src/lib/alert/alert.component.ts","../../../projects/components/src/lib/alert/alert.component.html","../../../projects/components/src/lib/phone-number/phone-number.pipe.ts","../../../projects/components/src/lib/date-display/date-display.pipe.ts","../../../projects/components/src/lib/sort.directive.ts","../../../projects/components/src/lib/sort-key.directive.ts","../../../projects/components/src/lib/subject-display/subject-display.pipe.ts","../../../projects/components/src/lib/button.directive.ts","../../../projects/components/src/lib/wizard-progress-tracker/wizard-progress-tracker.component.ts","../../../projects/components/src/lib/wizard-progress-tracker/wizard-progress-tracker.component.html","../../../projects/components/src/lib/date-time/date-time.component.ts","../../../projects/components/src/lib/date-time/date-time.component.html","../../../projects/components/src/lib/inline-message/inline-message-dialog/inline-message-dialog.component.ts","../../../projects/components/src/lib/inline-message/inline-message-dialog/inline-message-dialog.component.html","../../../projects/components/src/lib/inline-message/inline-message.component.ts","../../../projects/components/src/lib/inline-message/inline-message.component.html","../../../projects/components/src/lib/time-value-validator.directive.ts","../../../projects/components/src/lib/infinite-scroll/infinite-scroll.component.ts","../../../projects/components/src/lib/infinite-scroll/infinite-scroll.component.html","../../../projects/components/src/lib/components.module.ts","../../../projects/components/src/lib/testing/muzieh-component-harness.ts","../../../projects/components/src/lib/testing/result-table-harness.ts","../../../projects/components/src/public-api.ts","../../../projects/components/src/muziehdesign-components.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\n\nexport interface SvgIconOptions {\n svgIconDefinitionUrl: string;\n}\n\nexport const SVG_ICON_DEFAULT_OPTIONS = new InjectionToken<SvgIconOptions>('MzSvgIconOptions', {\n providedIn: 'root',\n factory: ()=> {\n return {\n svgIconDefinitionUrl: './assets/icondefinitions.svg'\n } satisfies SvgIconOptions;\n }\n});","import { Component, Inject, Input, OnInit, Optional } from '@angular/core';\nimport { SVG_ICON_DEFAULT_OPTIONS, SvgIconOptions } from './svg-icon-config';\n\n@Component({\n selector: 'mz-svg-icon',\n templateUrl: './svg-icon.component.svg',\n styleUrls: ['./svg-icon.component.scss'],\n standalone: true,\n imports: []\n})\nexport class SvgIconComponent {\n @Input() key!: string;\n @Input() type: 'outline' | 'solid' | string = 'outline';\n @Input() size: string = 'medium';\n fileUrl: string;\n \n constructor(@Inject(SVG_ICON_DEFAULT_OPTIONS) public config: SvgIconOptions) {\n this.fileUrl = config.svgIconDefinitionUrl;\n }\n\n get url(): string {\n if(this.type) {\n return this.fileUrl + '#' + this.key + '-' + this.type;\n }\n\n return this.fileUrl + '#' + this.key;\n }\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon icon-{{type}} icon-size-{{size}}\" aria-hidden=\"true\">\n <use [attr.href]=\"url\" />\n</svg>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'mzEnumDisplay',\n standalone: true,\n})\nexport class EnumDisplayPipe implements PipeTransform {\n\n \n transform(value?: string): string {\n return this.transformValue(value).join(' ');\n }\n\n private transformValue(value?: string): string[] {\n if (!value) {\n return [];\n }\n\n let wordIndex = 0;\n const words: string[] = [];\n for (let i = 0; i < value.length; i++) {\n if (value[i] !== value[i].toLowerCase() && i !== 0) {\n // includes the index -1\n // for example helloGoodbye => .substring(0, 5) => hello\n // and the index is reset to 5 (G)\n const word = value.substring(wordIndex, i);\n words.push(words.length === 0 ? this.firstLetterToUppercase(word) : word.toLowerCase());\n wordIndex = i;\n }\n }\n if (wordIndex !== value.length) {\n // continuing the example, we take it from the last index matched\n // (meaning the rest of the word that wasn't considered because no uppercase\n // values existed at the end of the sentence after the last index matched)\n // so it is converterd like this: helloGoodbye => .sustring(5) => goodbye\n const remainingString = value.substring(wordIndex);\n words.push(words.length === 0 ? this.firstLetterToUppercase(remainingString) : remainingString.toLowerCase());\n }\n return words;\n }\n\n // at this point we assume the string is at least > 0 length\n // just a converter method from: hello to Hello\n private firstLetterToUppercase(value: string): string {\n return value.length > 1 ? `${value.substring(0, 1).toUpperCase()}${value.substring(1)}` : value.toUpperCase();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'mz-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.css'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class SpinnerComponent {\n\n @Input() size: 'medium' | 'large' = 'medium';\n @Input() type: 'default' | 'inverse' = 'default'; // TODO: inverse will not exist one day\n constructor() { }\n\n}\n","<div class=\"w-full\" [ngClass]=\"{'text-primary': type == 'default', 'text-white': type == 'inverse'}\">\n <svg class=\"animate-spin m-auto\" [ngClass]=\"{'w-16 h-16': size == 'large', 'w-5 h-5': size == 'medium'}\" xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\" viewBox=\"0 0 24 24\">\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\"></circle>\n <path class=\"opacity-75\" fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\">\n </path>\n </svg>\n</div>","import { InjectionToken } from \"@angular/core\";\nimport { PaginationDefaultOptions } from \"./pagination-default-options\";\n\nexport const PAGINATION_DEFAULT_OPTIONS = new InjectionToken<PaginationDefaultOptions>('MUZIEH_PAGINATION_DEFAULT_CONFIG');","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Inject, Input, OnChanges, OnInit, Optional, Output, SimpleChanges } from '@angular/core';\nimport { PageEvent } from '../models/page-event';\nimport { SvgIconComponent } from '../svg-icon/svg-icon.component';\nimport { PaginationDefaultOptions } from './pagination-default-options';\nimport { PAGINATION_DEFAULT_OPTIONS } from './pagination-default-options.token';\n\n@Component({\n selector: 'mz-pagination',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.css'],\n imports: [CommonModule, SvgIconComponent],\n standalone: true,\n})\nexport class PaginationComponent implements OnChanges {\n\n @Input() length: number = 0;\n @Input() page: number = 1;\n @Input() pageSize: number;\n @Output() public changePage = new EventEmitter<PageEvent>();\n\n @Input() pageSizeOptions?: number[];\n pages: number[] = [];\n pageCount: number = 1;\n constructor(@Optional() @Inject(PAGINATION_DEFAULT_OPTIONS) paginationOptions: PaginationDefaultOptions) {\n this.pageSize = paginationOptions?.pageSize || 20;\n this.pageSizeOptions = paginationOptions?.pageSizeOptions || [20, 50, 100];\n\n this.updatePages(this.page, this.length, this.pageSize);\n }\n\n ngOnChanges(): void {\n this.updatePages(this.page, this.length, this.pageSize);\n }\n\n isEllipsis(v: number) {\n return v === -1;\n }\n\n changePageNumber(newValue: number) {\n if (newValue == this.page || newValue < 1 || newValue > this.pageCount) {\n return;\n }\n this.changePage.emit({ pageNumber: newValue, pageSize: this.pageSize } as PageEvent)\n }\n\n changePageSize(newValue: string) {\n if (Number(newValue) == this.pageSize) {\n return;\n }\n this.changePage.emit({ pageNumber: 1, pageSize: Number(newValue) } as PageEvent);\n }\n\n private updatePages(currentPage: number, lengthOfItems: number, currentPageSize: number) {\n const pageCount = Math.ceil(lengthOfItems / currentPageSize);\n this.pageCount = pageCount;\n let pageNumbers: number[] = [];\n const max = 7; // 3 items before and after current page\n\n if (pageCount <= max) {\n this.pages = [...Array(pageCount).keys()].map(i => i + 1);\n return;\n }\n\n let start = Math.max(1, currentPage - 3);\n let end = Math.min(pageCount, currentPage + 3);\n let range = end - start + 1;\n if (range < max) {\n end = Math.min(end + (max - range), pageCount);\n }\n range = end - start + 1;\n if (range < max) {\n start = Math.max(1, start - (max - range));\n }\n\n for (let x = start; x <= end; x++) {\n pageNumbers.push(x);\n }\n\n if (start != 1) {\n pageNumbers.splice(0, 2);\n pageNumbers.unshift(1, -1);\n }\n\n if (end != pageCount) {\n pageNumbers.splice(pageNumbers.length - 2);\n pageNumbers.push(-1, pageCount);\n }\n\n this.pages = pageNumbers;\n }\n}\n","<div class=\"pagination-wrapper\">\n <nav class=\"pagination-nav\" aria-label=\"pagination\">\n <button class=\"page-link\" [ngClass]=\"{'disabled': page == 1}\" (click)=\"changePageNumber(page-1)\">\n <span class=\"sr-only\">Previous page</span>\n <mz-svg-icon key=\"chevron-left\"></mz-svg-icon>\n </button>\n <ng-container *ngFor=\"let p of pages\">\n <span class=\"page-ellipsis page-link disabled\" *ngIf=\"isEllipsis(p)\">...</span>\n <button class=\"page-link\" [ngClass]=\"{'active': p == page}\" (click)=\"changePageNumber(p)\"\n *ngIf=\"!isEllipsis(p)\">{{p}}</button>\n </ng-container>\n <button class=\"page-link\" [ngClass]=\"{'disabled': page == pageCount}\" (click)=\"changePageNumber(page+1)\">\n <span class=\"sr-only\">Next page</span>\n <mz-svg-icon key=\"chevron-right\"></mz-svg-icon>\n </button>\n </nav>\n <div class=\"pagination-size\">\n Show\n <select #c (change)=\"changePageSize(c.value)\" name=\"pageSizeControl\" class=\"page-size-control\">\n <option *ngFor=\"let size of pageSizeOptions\" [attr.selected]=\"pageSize == size ? true : null\"\n [value]=\"size\">{{size}}</option>\n </select>\n per page\n </div>\n</div>","import { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, ContentChild, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { PageEvent } from '../models/page-event';\nimport { ResultTableOptions } from '../models/result-table-options';\nimport { PaginationComponent } from '../pagination/pagination.component';\nimport { SpinnerComponent } from '../spinner/spinner.component';\nimport { SvgIconComponent } from '../svg-icon/svg-icon.component';\nimport { ResultTableModel } from './result-table.model';\n\n@Component({\n selector: 'mz-result-table',\n templateUrl: './result-table.component.html',\n styleUrls: ['./result-table.component.scss'],\n imports: [CommonModule, PaginationComponent, SpinnerComponent, SvgIconComponent],\n standalone: true,\n})\nexport class ResultTableComponent implements AfterViewInit {\n\n @Input() public loading: boolean = false;\n @Input() public error?: Error;\n @Input() public model: ResultTableModel<any> | undefined | null;\n\n @ContentChild('headerTemplate') headerTemplate!: TemplateRef<any>;\n @ContentChild('bodyTemplate') bodyTemplate!: TemplateRef<any>;\n\n @Input() pageSizeOptions?: number[];\n @Output() public pageChange = new EventEmitter<PageEvent>();\n\n @Input() public options: ResultTableOptions = { hidePagination: false, skipScrolling: false };\n\n constructor() {}\n\n ngAfterViewInit(): void {\n\n }\n\n changePage(page: PageEvent, table: HTMLElement) {\n this.pageChange.emit(page);\n if(!this.options.skipScrolling) {\n setTimeout(() => {\n table.scrollIntoView({ behavior: 'smooth', block: 'start' });\n });\n }\n }\n\n searchAgain() {\n this.pageChange.emit({ pageNumber: this.model?.pageNumber || 1, pageSize: this.model?.pageSize || 20 }); // TODO\n }\n\n public get state(): 'loading' | 'failed' | 'succeeded' {\n if (this.loading) {\n return 'loading';\n }\n if (this.error) {\n return 'failed';\n }\n\n return 'succeeded';\n }\n\n public get isEmpty(): boolean {\n return !this.model || this.model.items.length === 0;\n }\n}\n","<div class=\"result-table\" [ngClass]=\"{'loading': state === 'loading', 'failed': state === 'failed'}\" #tableRef>\n <div class=\"loading-overlay-spinner\" *ngIf=\"state === 'loading'\">\n <mz-spinner size=\"large\"></mz-spinner>\n </div>\n <table class=\"table\" [ngClass]=\"{'has-overlay' : state === 'loading'}\">\n <caption *ngIf=\"state === 'succeeded' && model && model.items.length > 0\">\n {{(model.pageNumber-1) * model.pageSize + 1}} - {{(model.pageNumber-1) * model.pageSize + model.items.length}} of {{ model.totalItems }} results\n </caption>\n <thead>\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </thead>\n <tbody>\n @if(state === 'succeeded' && !isEmpty) {\n <ng-container *ngTemplateOutlet=\"bodyTemplate\"></ng-container>\n }\n </tbody>\n </table>\n <div class=\"table-pagination\" *ngIf=\"state === 'succeeded' && !options?.hidePagination && !isEmpty\">\n <mz-pagination [length]=\"model!.totalItems\" [page]=\"model!.pageNumber\" [pageSize]=\"model!.pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (changePage)=\"changePage($event, tableRef)\"></mz-pagination>\n </div>\n <div class=\"state-message\" *ngIf=\"state == 'succeeded' && isEmpty\">\n <div class=\"title\">No results found</div>\n </div>\n <div class=\"state-message\" *ngIf=\"state == 'failed'\">\n <div class=\"title\">\n <mz-svg-icon key=\"x-circle\" type=\"solid\" class=\"text-danger\"></mz-svg-icon>\n Something went wrong\n </div>\n <div>Unexpected error, <a (click)=\"searchAgain()\" class=\"link-action\">try searching again</a>.</div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router } from '@angular/router';\nimport { race } from 'rxjs';\nimport { delay, filter, repeat, take } from 'rxjs/operators';\nimport { SubSink } from 'subsink';\n\n@Component({\n selector: 'mz-page-loading-indicator',\n templateUrl: './page-loading-indicator.component.html',\n styleUrls: ['./page-loading-indicator.component.scss'],\n imports: [CommonModule],\n standalone: true,\n})\nexport class PageLoadingIndicatorComponent implements OnInit, OnDestroy {\n @Input() isLoading: boolean = false;\n expectedMilisecondsDelay = 1000;\n private subs = new SubSink();\n\n constructor(private router: Router) {}\n\n ngOnInit(): void {\n const endObs$ = this.router.events.pipe(\n filter((e) => e instanceof NavigationEnd || e instanceof NavigationCancel || e instanceof NavigationError),\n );\n\n this.subs.add(\n race(\n this.router.events.pipe(\n filter((e) => e instanceof NavigationStart),\n delay(this.expectedMilisecondsDelay)\n ),\n endObs$\n ).pipe(take(1), repeat()).subscribe((x) => this.isLoading = x instanceof NavigationStart)\n );\n // the flag need to be reset to false when the page finishes loading\n this.subs.add(endObs$.subscribe(() =>this.isLoading = false));\n }\n\n ngOnDestroy(): void {\n this.subs.unsubscribe();\n }\n}\n","<div class=\"progress-bar-container\" *ngIf=\"isLoading\">\n <div class=\"progress-bar progress-bar-indeterminate\">\n <div class=\"progress-bar-value\"></div>\n </div>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\n\n@Component({\n selector: 'mz-page-header',\n templateUrl: './page-header.component.html',\n styleUrls: ['./page-header.component.scss'],\n standalone: true,\n})\nexport class PageHeaderComponent implements OnInit {\n private pageTitleValue = 'Servicing Web';\n\n constructor(private title: Title) {}\n\n get pageTitle(): string {\n return this.pageTitleValue;\n }\n\n @Input() set pageTitle(newValue: string) {\n this.pageTitleValue = newValue;\n this.title.setTitle(newValue);\n }\n\n ngOnInit(): void {}\n}\n","<header class=\"page-header\">\n <h1>{{ pageTitle }}</h1>\n <ng-content></ng-content>\n</header>","import { Directive, ElementRef, HostListener, Renderer2 } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport { TimeValue } from './date-time/time-value';\n\n// TODO: need to rename, and need to use ivy instead\n\n@Directive({\n selector: 'input[type=time]',\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: TimeValueAccessorDirective,\n multi: true\n }],\n standalone: true,\n})\nexport class TimeValueAccessorDirective implements ControlValueAccessor {\n\n @HostListener('input', ['$event.target.value'])\n onChange = (x: any) => { };\n onTouched = () => { };\n constructor(private renderer: Renderer2, private elementRef: ElementRef) {\n\n }\n\n writeValue(obj?: TimeValue): void {\n if (!obj) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', null);\n return;\n }\n const hourPrefix = obj?.hour > 9 ? '' : '0';\n const minutePrefix = obj.minute > 9 ? '' : '0';\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', `${hourPrefix}${obj.hour}:${minutePrefix}${obj.minute}`);\n }\n\n registerOnChange(fn: (x: TimeValue | null) => void): void {\n this.onChange = (value) => {\n if (value === null || value === '') {\n fn(null);\n } else {\n const parts = value.split(':');\n fn({ hour: Number(parts[0]), minute: Number(parts[1]) } as TimeValue);\n }\n };\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, OnInit, Input, TemplateRef } from '@angular/core';\nimport { SvgIconComponent } from '../svg-icon/svg-icon.component';\n\n@Component({\n selector: 'mz-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.css'],\n imports: [CommonModule, SvgIconComponent],\n standalone: true,\n})\nexport class AlertComponent implements OnInit {\n @Input() title: string = '';\n @Input() type: 'info' | 'success' | 'error' | 'warning' = 'info';\n @Input() body: TemplateRef<any> | undefined | null;\n @Input() footer: TemplateRef<any> | undefined | null;\n\n constructor() {}\n\n ngOnInit(): void {}\n\n getAlertClass(): string {\n return `alert-${this.type}`;\n }\n\n getAlertIcon(): string {\n let icon = '';\n if (this.type === 'info') {\n icon = 'information-circle';\n } else if (this.type === 'success') {\n icon = 'check-circle';\n } else if (this.type === 'error') {\n icon = 'x-circle';\n } else if (this.type === 'warning') {\n icon = 'exclamation';\n }\n return icon;\n }\n}\n","<div [className]=\"'alert alert-' + type\">\n\n <div>\n <div class=\"alert-icon\">\n <mz-svg-icon [key]=\"getAlertIcon()\" type=\"solid\"></mz-svg-icon>\n </div>\n\n <div class=\"alert-title\">\n <strong>{{ title }}</strong>\n </div>\n </div>\n\n <div class=\"alert-body\" *ngIf=\"body\">\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n </div>\n\n <div class=\"alert-footer\" *ngIf=\"footer\">\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n\n</div>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'mzPhoneNumber',\n standalone: true,\n})\nexport class PhoneNumberPipe implements PipeTransform {\n\n transform(number?: string): string | null {\n if (!number) {\n return null;\n }\n\n const phoneNumber = number.replace(/^\\+1/, '').replace(/\\D/g, '');\n if (phoneNumber.length === 10) {\n return phoneNumber.replace(/(\\d{3})(\\d{3})(\\d{4})/, '($1) $2-$3');\n }\n return number;\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'mzDateDisplay',\n standalone: true,\n})\nexport class DateDisplayPipe implements PipeTransform {\n constructor(private datePipe: DatePipe) {}\n\n transform(value: Date | string, format: string): string | null {\n let redefinedDate;\n if (format === 'concise') {\n redefinedDate = this.datePipe.transform(value, 'MM/dd/yyyy');\n } else if(format === 'detailed') {\n redefinedDate = this.datePipe.transform(value, 'MM/dd/yyyy h:mm:ss a');\n } else {\n redefinedDate = this.datePipe.transform(value, 'MM/dd/yyyy');\n }\n return redefinedDate;\n }\n}\n","import { Directive, EventEmitter, Input, OnChanges, Output } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { SortEvent } from './models/sort-event';\n\n@Directive({\n selector: '[mzSort]',\n standalone: true,\n})\nexport class SortDirective implements OnChanges {\n\n @Output() sort = new EventEmitter<SortEvent>();\n @Input('mzSort') set mzSort(value: string) {\n this._mzSort = value;\n this.setActiveHeaderSort();\n }\n\n mzSortOnChange$ = new BehaviorSubject<string>('');\n _mzSort!: string;\n active!: string;\n\n constructor() {}\n\n ngOnChanges(): any {\n this.mzSortOnChange$.next(this.active);\n }\n\n setActiveHeaderSort() {\n this.active = this._mzSort.includes('-') ? this._mzSort.slice(1) : this._mzSort;\n }\n}\n","import { Directive, ElementRef, HostBinding, Input, OnInit, Renderer2 } from '@angular/core';\nimport { SortDirective } from './sort.directive';\n\n@Directive({\n selector: '[mzSortKey]',\n host: {\n 'role': 'button',\n '[attr.aria-sort]': 'getAriaSortAttribute()',\n '(click)': 'onClick()',\n },\n standalone: true,\n})\nexport class SortKeyDirective implements OnInit {\n @Input() mzSortKey!: string;\n order = 'asc';\n updatedSort = '';\n\n constructor(private sortable: SortDirective, private renderer: Renderer2, private hostElement: ElementRef) {}\n\n ngOnInit(): void {\n this.addSortClass();\n this.sortable.mzSortOnChange$.subscribe(() => {\n this.updatedSort = this.mzSortKey === this.sortable.active ? this.sortable._mzSort : this.mzSortKey;\n this.setOrder(this.updatedSort);\n\n if (this.isActive()) {\n this.addActiveClass();\n } else {\n this.removeActiveClass();\n }\n });\n }\n\n onClick($event: Event) {\n // remove active css classes\n this.removeActiveClass();\n\n // update current sort value (-order, order)\n this.updateSortKeyValue();\n\n // update parent directive active column and emit output\n this.updateActiveValue();\n\n // add arrow css clases\n this.addActiveClass();\n }\n\n getAriaSortAttribute() {\n if (!this.isActive()) {\n return 'none';\n }\n return this.order === 'asc' ? 'ascending' : 'descending';\n }\n\n private updateSortKeyValue() {\n if (this.isActive()) {\n this.updatedSort = this.order === 'desc' ? this.updatedSort.slice(1) : `-${this.updatedSort}`;\n } else {\n this.updatedSort = this.mzSortKey;\n }\n\n this.setOrder(this.updatedSort);\n }\n\n private updateActiveValue() {\n this.sortable.active = this.mzSortKey;\n this.sortable.sort.emit({ sort: this.updatedSort });\n }\n\n private addSortClass() {\n const spanElement = this.renderer.createElement('span');\n spanElement.classList.add(\"sort-icon\");\n this.renderer.appendChild(this.hostElement.nativeElement, spanElement);\n this.renderer.addClass(this.hostElement.nativeElement, 'sort-trigger');\n }\n\n private addActiveClass() {\n this.renderer.addClass(this.hostElement.nativeElement, this.order === 'asc' ? 'sort-ascending' : 'sort-descending');\n }\n\n private removeActiveClass() {\n this.renderer.removeClass(this.hostElement.nativeElement, 'sort-ascending');\n this.renderer.removeClass(this.hostElement.nativeElement, 'sort-descending');\n }\n\n private isActive() {\n return this.mzSortKey === this.sortable.active;\n }\n\n private setOrder(sort: string) {\n this.order = sort.includes('-') ? 'desc' : 'asc';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Subject } from '../models/subject';\n\n@Pipe({\n name: 'mzSubjectDisplay',\n standalone: true,\n})\nexport class SubjectDisplayPipe implements PipeTransform {\n transform(subject?: Subject, defaultValue?: string): string | null {\n if (!subject) {\n return defaultValue || null;\n }\n return subject.givenName && subject.familyName ? `${subject.givenName} ${subject.familyName}` : subject.userPrincipalName;\n }\n}\n","import { Directive, ElementRef, HostBinding, Input, OnChanges, OnDestroy, Renderer2, SimpleChanges } from '@angular/core';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n@Directive({\n selector: '[mzButton]',\n standalone: true,\n host: {\n role: 'button',\n '[attr.tabindex]': '0',\n '[attr.aria-disabled]': 'busy',\n },\n})\nexport class ButtonDirective implements OnChanges, OnDestroy {\n @Input()\n variant? = 'secondary';\n @Input()\n busy?: boolean = false;\n private svgContent = `\n <svg class=\"button-loading-spinner\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\"\n viewBox=\"0 0 24 24\">\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\">\n </circle>\n <path class=\"opacity-75\" fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\">\n </path>\n </svg>\n `;\n private subscription = new Subscription();\n\n constructor(private renderer: Renderer2, private hostElement: ElementRef) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['busy'] && Boolean(changes['busy'].previousValue) !== Boolean(changes['busy'].currentValue)) {\n this.attachOrDeattachSpinner();\n }\n }\n\n ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n }\n\n @HostBinding('class')\n get elementClass(): string {\n return ['button', `button-${this.variant}`, this.busy ? 'loading' : ''].join(' ');\n }\n\n attachOrDeattachSpinner() {\n if (this.busy) {\n const loadingElement = this.renderer.createElement('span');\n loadingElement.innerHTML = this.svgContent;\n this.renderer.addClass(loadingElement, 'button-loading-overlay');\n this.renderer.appendChild(this.hostElement.nativeElement, loadingElement);\n this.addEventSubscription();\n } else {\n this.renderer.removeChild(this.hostElement.nativeElement, this.getOverlayDiv());\n this.subscription?.unsubscribe();\n }\n }\n\n private addEventSubscription() {\n const el = this.hostElement.nativeElement;\n this.subscription = fromEvent(el.parentNode, 'click', { capture: true })\n .pipe(filter((e: any) => Boolean(this.busy && this.getElementsToVerify().includes(e.target))))\n .subscribe((e: any) => {\n e.stopPropagation();\n });\n }\n\n private getChildElement(query: string) {\n return this.hostElement.nativeElement.querySelector(query);\n }\n\n private getElementsToVerify() {\n return [this.hostElement.nativeElement, this.getOverlayDiv(), this.getChildElement('.button-loading-overlay'), this.getChildElement('.button-loading-overlay svg'), this.getChildElement('.button-loading-overlay svg circle'), this.getChildElement('.button-loading-overlay svg path')];\n }\n\n private getOverlayDiv() {\n return this.getChildElement('.button-loading-overlay');\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { SubSink } from 'subsink';\nimport { WizardStepLink } from '../models/wizard-step-link';\nimport { SvgIconComponent } from '../svg-icon/svg-icon.component';\n\n@Component({\n selector: 'mz-wizard-progress-tracker',\n templateUrl: './wizard-progress-tracker.component.html',\n styleUrls: ['./wizard-progress-tracker.component.scss'],\n standalone: true,\n imports: [CommonModule, SvgIconComponent]\n})\nexport class WizardProgressTrackerComponent {\n @Input() steps: WizardStepLink[] = [];\n @Input() currentStep = 0;\n @Output() stepChange = new EventEmitter<WizardStepLink>();\n toggled = true;\n subs = new SubSink();\n\n goToStep(step: WizardStepLink) {\n this.stepChange.emit(step);\n }\n\n toggle(): void {\n this.toggled = !this.toggled;\n }\n}\n","<div class=\"wizard-progress-tracker\">\n <div class=\"direction-container\">\n <span class=\"steps-count\">Step {{ currentStep + 1 }} of {{ steps.length }}</span>\n <div class=\"wizard-steps-container\" [ngClass]=\"{'toggled': toggled}\">\n <div *ngFor=\"let step of steps; index as i;\" class=\"wizard-step\"\n [ngClass]=\"{ 'previous': i < currentStep, 'current': i === currentStep, 'unvisited': i > currentStep }\">\n <ng-container>\n <div class=\"wizard-step-icon-container\">\n <div class=\"spacer left\">\n </div>\n <div *ngIf=\"i > 0\" class=\"step-line left\"></div>\n\n <div *ngIf=\"i < currentStep\" class=\"wizard-step-icon\">\n <mz-svg-icon key=\"check-circle\" type=\"solid\">\n </mz-svg-icon>\n </div>\n <div *ngIf=\"i === currentStep\" class=\"wizard-step-icon\">\n <div class=\"step-inner-circle\"></div>\n </div>\n <div *ngIf=\"i > currentStep\" class=\"wizard-step-icon\">\n </div>\n\n <div *ngIf=\"i < (steps.length - 1)\" class=\"step-line step-line-right\"></div>\n <div class=\"spacer right\"></div>\n </div>\n <a *ngIf=\"i < currentStep\" class=\"step-desc\" (click)=\"goToStep(step)\"> {{\n step.name\n }}</a>\n <div *ngIf=\" i === currentStep\" class=\"step-desc\"> {{ step.name }}\n </div>\n <div *ngIf=\" i > currentStep\" class=\"step-desc\"> {{ step.name }}\n </div>\n <div class=\"toggable-icon\">\n <button *ngIf=\"!toggled\" (click)=\"toggle()\">\n <mz-svg-icon key=\"chevron-down\"></mz-svg-icon>\n </button>\n <button *ngIf=\"toggled\" (click)=\"toggle()\">\n <mz-svg-icon key=\"chevron-up\"></mz-svg-icon>\n </button>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n","import { ChangeDetectorRef, Component, forwardRef, Input, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MatDatepickerInputEvent, MatDatepickerModule } from '@angular/material/datepicker';\nimport { TimeValue } from './time-value';\nimport { MatDatepicker } from '@angular/material/datepicker';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'mz-datetime',\n templateUrl: './date-time.component.html',\n styleUrls: ['./date-time.component.css'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DateTimeComponent),\n multi: true,\n },\n ],\n imports: [CommonModule, MatDatepickerModule],\n standalone: true,\n})\nexport class DateTimeComponent implements ControlValueAccessor {\n date: Date | undefined;\n time: string | undefined;\n\n private lz = (n: number) => ('0' + n).slice(-2);\n private formatDate = (dt: Date) => `${dt.getMonth() + 1}/${dt.getDate()}/${dt.getFullYear()}`;\n private formatTime = (t: Date) => `${this.lz(t.getHours())}:${this.lz(t.getMinutes())}`;\n private formatDateTime = (dt: Date, t: string) => `${this.formatDate(dt)} ${t}`;\n private limitDate = (dt: Date) => {\n if (this.min) {\n dt = new Date(Math.max(dt.getTime(), this.min.getTime()));\n }\n\n if (this.max) {\n dt = new Date(Math.min(dt.getTime(), this.max.getTime()));\n }\n\n return dt;\n };\n private onTimeHourPending = false; \n\n type = 'outline';\n @ViewChild('datePicker') datepicker!: MatDatepicker<Date>;\n\n @Input()\n min?: Date | undefined;\n\n @Input()\n max?: Date | undefined;\n\n @Input()\n disabled = false;\n\n constructor(private _cd: ChangeDetectorRef) {}\n\n onChange = (_: any) => {};\n onTouched = () => {};\n\n writeValue(value: Date) {\n if (value) {\n const dt = new Date(value);\n\n this.date = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());\n this.time = this.formatTime(value);\n } else {\n this.date = undefined;\n this.time = undefined;\n }\n\n this._cd.markForCheck();\n }\n\n registerOnChange(fn: (value: any) => any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n updateDate(e: Event): void {\n const input = e.target as HTMLInputElement;\n\n let dt = new Date(input.value);\n\n if (!isNaN(dt.getTime())) {\n dt = this.limitDate(dt);\n\n this.date = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());\n\n if (this.time === undefined || this.time === '') {\n this.time = this.formatTime(new Date());\n }\n } else {\n this.date = undefined;\n this.time = undefined;\n }\n\n this.propagateModelChange();\n this._cd.markForCheck();\n }\n\n updateTime(e: Event): void {\n const input = e.target as HTMLInputElement;\n\n // this is just a listener event in case the end user types in \"0\". We wait for\n // the next entered value for the time input field to self fix the problem.\n if (!this.onTimeHourPending && !input.value) {\n this.onTimeHourPending = true;\n return;\n }\n\n this.onTimeHourPending = false;\n\n if (!input.value) {\n this.date = undefined;\n } else if (!this.date || isNaN(this.date.getTime())) {\n const dt = this.limitDate(this.min ?? new Date());\n\n this.date = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());\n }\n this.time = input.value;\n\n this.propagateModelChange();\n }\n\n updateDateEvent(event: MatDatepickerInputEvent<Date>) {\n if (event.value) {\n const dt = this.limitDate(new Date(event.value));\n\n this.date = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());\n\n if (this.time === undefined || this.time === '') {\n this.time = this.formatTime(new Date());\n }\n } else {\n this.date = undefined;\n this.time = undefined;\n }\n\n this.propagateModelChange();\n this._cd.markForCheck();\n }\n\n focusOnDateInput() {\n this.datepicker.open();\n }\n\n private propagateModelChange(): void {\n if (this.time && this.date) {\n const dateString = this.formatDateTime(this.date, this.time);\n this.onChange(new Date(dateString));\n } else {\n this.onChange(undefined);\n }\n }\n}\n\nexport interface ScheduleInputModel {\n time: TimeValue;\n}\n","<div class=\"flex\">\n <div class=\"field-control-combo\">\n <input class=\"field-control\" type=\"text\" [value]=\"date\" (change)=\"updateDate($event)\" [min]=\"min\" [max]=\"max\"\n [matDatepicker]=\"datePicker\" (dateChange)=\"updateDateEvent($event)\" [disabled]=\"disabled\" ngDefaultControl>\n <div class=\"field-control-addon\">\n <button class=\"button button-secondary button-icon\" type=\"button\" (click)=\"datePicker.open()\"\n [disabled]=\"disabled\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"\n stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\" />\n </svg>\n </button>\n <mat-datepicker #datePicker></mat-datepicker>\n </div>\n </div>\n <div class=\"field-control-group mt-1 ml-6\">\n <input class=\"field-control\" type=\"time\" [value]=\"time\" (change)=\"updateTime($event)\"\n ngDefaultControl [disabled]=\"disabled\">\n </div>\n</div>\n","import { DialogModule, DIALOG_DATA } from '@angular/cdk/dialog';\nimport { CommonModule } from '@angular/common';\nimport { Component, Inject, OnInit, TemplateRef } from '@angular/core';\nimport { MatCommonModule } from '@angular/material/core';\nimport { RouterModule } from '@angular/router';\n\n@Component({\n selector: 'mz-inline-message-dialog',\n templateUrl: './inline-message-dialog.component.html',\n styleUrls: ['./inline-message-dialog.component.scss'],\n imports: [MatCommonModule, CommonModule, RouterModule, DialogModule],\n standalone: true,\n})\nexport class InlineMessageDialogComponent implements OnInit {\n body: TemplateRef<any> | undefined | null;\n\n constructor(@Inject(DIALOG_DATA) public data: any) { }\n\n ngOnInit() {\n this.body = this.data.body;\n }\n\n}","<div class=\"body\" *ngIf=\"body\">\n <ng-content *ngTemplateOutlet=\"body\"></ng-content>\n</div>","import { Component, Input, TemplateRef } from '@angular/core';\nimport { Dialog, DialogModule } from '@angular/cdk/dialog';\nimport { InlineMessageDialogComponent } from './inline-message-dialog/inline-message-dialog.component';\nimport { CommonModule } from '@angular/common';\nimport { MatCommonModule } from '@angular/material/core';\nimport { RouterModule } from '@angular/router';\n\n@Component({\n selector: 'mz-inline-message',\n templateUrl: './inline-message.component.html',\n styleUrls: ['./inline-message.component.scss'],\n imports: [MatCommonModule, CommonModule, RouterModule, DialogModule],\n standalone: true,\n})\nexport class InlineMessageComponent {\n @Input() body: TemplateRef<any> | undefined | null;\n\n constructor(public dialog: Dialog) {}\n\n ngOnInit(): void {}\n\n openDialog() {\n this.dialog.open(InlineMessageDialogComponent, {\n minWidth: '300px',\n data: {\n body: this.body,\n },\n });\n }\n}\n","<div class=\"wrapper\">\n <button type=\"button\" (click)=\"openDialog()\" class=\"inline-message-btn\">i</button>\n</div>","import { Directive } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\n\n@Directive({\n selector: 'input[type=time]',\n providers: [{\n provide: NG_VALIDATORS,\n useExisting: TimeValueValidatorDirective,\n multi: true\n }],\n standalone: true,\n})\nexport class TimeValueValidatorDirective implements Validator {\n\n constructor() { }\n\n validate(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n if (value == null || value.length == 0) {\n return null;\n }\n\n /*\n const parts = value.split(':');\n if (parts.length != 2) {\n return { \"time\": \"invalid time\" };\n }*/\n\n return null;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ContentChild, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { SpinnerComponent } from '../spinner/spinner.component';\n\n@Component({\n selector: 'mz-infinite-scroll',\n standalone: true,\n imports: [CommonModule, SpinnerComponent],\n templateUrl: './infinite-scroll.component.html',\n styleUrls: ['./infinite-scroll.component.scss'],\n})\nexport class InfiniteScrollComponent {\n @Input() items: any[] = [];\n @Input() isLoading: boolean = false;\n @Input() containerHeight: string = '24rem';\n @Output() itemSelected = new EventEmitter<any>();\n @Output() loadMore = new EventEmitter<boolean>();\n @ContentChild('itemTemplate') itemTemplate!: TemplateRef<any>; \n selectedItem: any = null;\n\n onContainerScroll(event: any): void {\n const target = event.target;\n if (!this.isLoading && target.offsetHeight + target.scrollTop >= target.scrollHeight) {\n this.loadMore.emit(true);\n }\n }\n\n onItemClick(item: any): void {\n this.selectedItem = item;\n this.itemSelected.emit(item);\n }\n}\n","<div class=\"infinite-scroll-container overflow-auto\" [style.height]=\"containerHeight\" (scroll)=\"onContainerScroll($event)\">\n <ng-container *ngIf=\"itemTemplate; else defaultItems\">\n <ng-container *ngFor=\"let item of items\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-container>\n </ng-container>\n </ng-container>\n <ng-template #defaultItems>\n <div *ngFor=\"let item of items\" class=\"scroll-item\" [ngClass]=\"{'scroll-item-selected': selectedItem === item}\" (click)=\"onItemClick(item)\">\n {{ item.label }}\n </div>\n </ng-template>\n\n <!-- Spinner -->\n <div *ngIf=\"isLoading\" class=\"scroll-spinner-container\">\n <mz-spinner size=\"medium\"></mz-spinner>\n </div>\n</div>\n","import { CommonModule, DatePipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SpinnerComponent } from './spinner/spinner.component';\nimport { EnumDisplayPipe } from './enum-display/enum-display.pipe';\nimport { SvgIconComponent } from './svg-icon/svg-icon.component';\nimport { ResultTableComponent } from './result-table/result-table.component';\nimport { PaginationComponent } from './pagination/pagination.component';\nimport { PageLoadingIndicatorComponent } from './page-loading-indicator/page-loading-indicator.component';\nimport { PageHeaderComponent } from './page-header/page-header.component';\nimport { TimeValueAccessorDirective } from './time-value-accessor.directive';\nimport { FormsModule } from '@angular/forms';\nimport { AlertComponent } from './alert/alert.component';\nimport { PhoneNumberPipe } from './phone-number/phone-number.pipe';\nimport { DateDisplayPipe } from './date-display/date-display.pipe';\nimport { SortDirective } from './sort.directive';\nimport { SortKeyDirective } from './sort-key.directive';\nimport { SubjectDisplayPipe } from './subject-display/subject-display.pipe';\nimport { ButtonDirective } from './button.directive';\nimport { WizardProgressTrackerComponent } from './wizard-progress-tracker/wizard-progress-tracker.component';\nimport { DateTimeComponent } from './date-time/date-time.component';\nimport { InlineMessageComponent } from './inline-message/inline-message.component';\nimport { InlineMessageDialogComponent } from './inline-message/inline-message-dialog/inline-message-dialog.component';\nimport { TimeValueValidatorDirective } from './time-value-validator.directive';\nimport { InfiniteScrollComponent } from './infinite-scroll/infinite-scroll.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ButtonDirective,\n SvgIconComponent,\n SpinnerComponent,\n WizardProgressTrackerComponent,\n AlertComponent,\n EnumDisplayPipe,\n ResultTableComponent,\n InfiniteScrollComponent,\n PaginationComponent,\n PageLoadingIndicatorComponent,\n PageHeaderComponent,\n TimeValueAccessorDirective,\n DateDisplayPipe,\n PhoneNumberPipe,\n SortKeyDirective,\n SortDirective,\n SubjectDisplayPipe,\n DateTimeComponent,\n InlineMessageComponent,\n InlineMessageDialogComponent,\n TimeValueValidatorDirective,\n ],\n exports: [\n EnumDisplayPipe,\n SpinnerComponent,\n SvgIconComponent,\n ResultTableComponent,\n InfiniteScrollComponent,\n PaginationComponent,\n PageLoadingIndicatorComponent,\n PageHeaderComponent,\n TimeValueAccessorDirective,\n DateDisplayPipe,\n AlertComponent,\n PhoneNumberPipe,\n SortKeyDirective,\n SortDirective,\n SubjectDisplayPipe,\n ButtonDirective,\n WizardProgressTrackerComponent,\n DateTimeComponent,\n InlineMessageComponent,\n InlineMessageDialogComponent,\n TimeValueValidatorDirective,\n ],\n providers: [\n DatePipe,\n ]\n})\nexport class MuziehComponentsModule { }\n","export abstract class MuziehComponentHarness<T> {}\n","import { DebugElement } from '@angular/core';\nimport { By } from '@angular/platform-browser';\nimport { ResultTableComponent } from '../result-table/result-table.component';\nimport { ResultTableModel } from '../result-table/result-table.model';\nimport { MuziehComponentHarness } from './muzieh-component-harness';\n\nexport class ResultTableHarness extends MuziehComponentHarness<ResultTableComponent> {\n private refreshContainerEvent: () => DebugElement;\n\n private get resultTableDebugElement() {\n const containerDebugElement = this.refreshContainerEvent();\n if (!containerDebugElement) {\n throw new Error('Invalid container debug element');\n }\n // we need this to default to the container if null for testing the original component\n const resultTableDebugElement = containerDebugElement.query(By.directive(ResultTableComponent)) || containerDebugElement;\n if (!resultTableDebugElement) {\n throw new Error('Invalid result table debug element');\n }\n return resultTableDebugElement;\n }\n\n get resultTableComponentInstance(): ResultTableComponent {\n return this.evaluateComponentInstance(this.resultTableDebugElement);\n }\n\n constructor(refreshContainerEvent: () => DebugElement) {\n super();\n this.refreshContainerEvent = refreshContainerEvent;\n }\n\n getHeaderColumns() {\n return this.resultTableDebugElement.queryAll(By.css('thead tr th')).map((td) => (td.nativeElement as HTMLTableCellElement).textContent?.trim());\n }\n\n getRenderedResults() {\n const contentDebugElement = this.resultTableDebugElement;\n const componentInstance = this.evaluateComponentInstance(contentDebugElement);\n const results = contentDebugElement.queryAll(By.css('tbody tr')).map((el) => el.queryAll(By.css('td')).map((td) => (td.nativeElement as HTMLTableCellElement).textContent?.trim()));\n const { pageNumber: page, pageSize, totalItems: total } = componentInstance.model as ResultTableModel<unknown>;\n\n return {\n results,\n page,\n pageSize,\n total,\n };\n }\n\n getResultsHeaderSummary() {\n const headerCaptionDebugElement = this.resultTableDebugElement.query(By.css('table caption'));\n if (!headerCaptionDebugElement) {\n throw new Error('DebugElement not found');\n }\n return (headerCaptionDebugElement.nativeElement as HTMLTableCaptionElement).textContent?.trim();\n }\n\n hasErrorMessage() {\n return this.resultTableDebugElement.queryAll(By.css('.state-message .title .text-danger')).length > 0;\n }\n\n hasNoResultsMessage() {\n const errorDebugElement = this.resultTableDebugElement.query(By.css('.state-message .title'));\n if (!errorDebugElement) {\n throw new Error('DebugElement not found');\n }\n return (errorDebugElement.nativeElement as HTMLDivElement).textContent?.trim() === 'No results found';\n }\n\n hasPaginationAvailable() {\n return this.resultTableDebugElement.queryAll(By.css('.table-pagination')).length > 0;\n }\n\n hasResultsHeaderSummary() {\n return this.resultTableDebugElement.queryAll(By.css('table caption')).length > 0;\n }\n\n private evaluateComponentInstance(container: DebugElement): ResultTableComponent {\n return container.componentInstance as ResultTableComponent;\n }\n}\n","/*\n * Public API Surface of components\n */\n\nexport { SvgIconComponent } from './lib/svg-icon/svg-icon.component';\nexport { SvgIconOptions, SVG_ICON_DEFAULT_OPTIONS } from './lib/svg-icon/svg-icon-config';\n\nexport { EnumDisplayPipe } from './lib/enum-display/enum-display.pipe';\nexport { SpinnerComponent } from './lib/spinner/spinner.component';\n\nexport { MuziehComponentsModule } from './lib/components.module';\nexport { PageLoadingIndicatorComponent } from './lib/page-loading-indicator/page-loading-indicator.component';\nexport { PageHeaderComponent } from './lib/page-header/page-header.component';\nexport { PhoneNumberPipe } from './lib/phone-number/phone-number.pipe';\nexport { DateDisplayPipe } from './lib/date-display/date-display.pipe';\n\n// subject\nexport { SubjectDisplayPipe } from './lib/subject-display/subject-display.pipe';\nexport { Subject } from './lib/models/subject';\n\n// table\nexport { ResultTableComponent } from './lib/result-table/result-table.component';\nexport { PaginationComponent } from './lib/pagination/pagination.component';\nexport { PageEvent } from './lib/models/page-event';\nexport { LoadingState } from './lib/models/loading-state';\nexport { ResultTableModel } from './lib/result-table/result-table.model';\n\n// infinite scroll\nexport { InfiniteScrollComponent } from './lib/infinite-scroll/infinite-scroll.component';\n\n// Datetime\nexport { DateTimeComponent } from './lib/date-time/date-time.component';\nexport { TimeValue } from './lib/date-time/time-value';\nexport { TimeValueAccessorDirective } from './lib/time-value-accessor.directive';\nexport { TimeValueValidatorDirective } from './lib/time-value-validator.directive';\n\n// testing files\nexport { MuziehComponentHarness } from './lib/testing/muzieh-component-harness';\nexport { ResultTableHarness } from './lib/testing/result-table-harness';\n\n// alert\nexport { AlertComponent } from './lib/alert/alert.component';\n\n// sort\nexport { SortKeyDirective } from './lib/sort-key.directive';\nexport { SortDirective } from './lib/sort.directive';\nexport { ButtonDirective } from './lib/button.directive';\nexport { SortEvent } from './lib/models/sort-event';\n\nexport { WizardStepLink } from './lib/models/wizard-step-link';\nexport { WizardProgressTrackerComponent } from './lib/wizard-progress-tracker/wizard-progress-tracker.component';\nexport { InlineMessageComponent } from './lib/inline-message/inline-message.component';\nexport { InlineMessageDialogComponent } from './lib/inline-message/inline-message-dialog/inline-message-dialog.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i1.SortDirective"],"mappings":"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"}
1
+ {"version":3,"file":"muziehdesign-components.mjs","sources":["../../../projects/components/src/lib/svg-icon/svg-icon-config.ts","../../../projects/components/src/lib/svg-icon/svg-icon.component.ts","../../../projects/components/src/lib/svg-icon/svg-icon.component.svg","../../../projects/components/src/lib/enum-display/enum-display.pipe.ts","../../../projects/components/src/lib/spinner/spinner.component.ts","../../../projects/components/src/lib/spinner/spinner.component.html","../../../projects/components/src/lib/pagination/pagination-default-options.token.ts","../../../projects/components/src/lib/pagination/pagination.component.ts","../../../projects/components/src/lib/pagination/pagination.component.html","../../../projects/components/src/lib/result-table/result-table.component.ts","../../../projects/components/src/lib/result-table/result-table.component.html","../../../projects/components/src/lib/page-loading-indicator/page-loading-indicator.component.ts","../../../projects/components/src/lib/page-loading-indicator/page-loading-indicator.component.html","../../../projects/components/src/lib/page-header/page-header.component.ts","../../../projects/components/src/lib/page-header/page-header.component.html","../../../projects/components/src/lib/time-value-accessor.directive.ts","../../../projects/components/src/lib/alert/alert.component.ts","../../../projects/components/src/lib/alert/alert.component.html","../../../projects/components/src/lib/phone-number/phone-number.pipe.ts","../../../projects/components/src/lib/date-display/date-display.pipe.ts","../../../projects/components/src/lib/sort.directive.ts","../../../projects/components/src/lib/sort-key.directive.ts","../../../projects/components/src/lib/subject-display/subject-display.pipe.ts","../../../projects/components/src/lib/button.directive.ts","../../../projects/components/src/lib/wizard-progress-tracker/wizard-progress-tracker.component.ts","../../../projects/components/src/lib/wizard-progress-tracker/wizard-progress-tracker.component.html","../../../projects/components/src/lib/date-time/date-time.component.ts","../../../projects/components/src/lib/date-time/date-time.component.html","../../../projects/components/src/lib/inline-message/inline-message-dialog/inline-message-dialog.component.ts","../../../projects/components/src/lib/inline-message/inline-message-dialog/inline-message-dialog.component.html","../../../projects/components/src/lib/inline-message/inline-message.component.ts","../../../projects/components/src/lib/inline-message/inline-message.component.html","../../../projects/components/src/lib/time-value-validator.directive.ts","../../../projects/components/src/lib/infinite-scroll/infinite-scroll.component.ts","../../../projects/components/src/lib/infinite-scroll/infinite-scroll.component.html","../../../projects/components/src/lib/components.module.ts","../../../projects/components/src/lib/inline-edit/inline-edit.component.ts","../../../projects/components/src/lib/inline-edit/inline-edit.component.html","../../../projects/components/src/lib/testing/muzieh-component-harness.ts","../../../projects/components/src/lib/testing/result-table-harness.ts","../../../projects/components/src/public-api.ts","../../../projects/components/src/muziehdesign-components.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\n\nexport interface SvgIconOptions {\n svgIconDefinitionUrl: string;\n}\n\nexport const SVG_ICON_DEFAULT_OPTIONS = new InjectionToken<SvgIconOptions>('MzSvgIconOptions', {\n providedIn: 'root',\n factory: ()=> {\n return {\n svgIconDefinitionUrl: './assets/icondefinitions.svg'\n } satisfies SvgIconOptions;\n }\n});","import { Component, Inject, Input, OnInit, Optional } from '@angular/core';\nimport { SVG_ICON_DEFAULT_OPTIONS, SvgIconOptions } from './svg-icon-config';\n\n@Component({\n selector: 'mz-svg-icon',\n templateUrl: './svg-icon.component.svg',\n styleUrls: ['./svg-icon.component.scss'],\n standalone: true,\n imports: []\n})\nexport class SvgIconComponent {\n @Input() key!: string;\n @Input() type: 'outline' | 'solid' | string = 'outline';\n @Input() size: string = 'medium';\n fileUrl: string;\n \n constructor(@Inject(SVG_ICON_DEFAULT_OPTIONS) public config: SvgIconOptions) {\n this.fileUrl = config.svgIconDefinitionUrl;\n }\n\n get url(): string {\n if(this.type) {\n return this.fileUrl + '#' + this.key + '-' + this.type;\n }\n\n return this.fileUrl + '#' + this.key;\n }\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon icon-{{type}} icon-size-{{size}}\" aria-hidden=\"true\">\n <use [attr.href]=\"url\" />\n</svg>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'mzEnumDisplay',\n standalone: true,\n})\nexport class EnumDisplayPipe implements PipeTransform {\n\n \n transform(value?: string): string {\n return this.transformValue(value).join(' ');\n }\n\n private transformValue(value?: string): string[] {\n if (!value) {\n return [];\n }\n\n let wordIndex = 0;\n const words: string[] = [];\n for (let i = 0; i < value.length; i++) {\n if (value[i] !== value[i].toLowerCase() && i !== 0) {\n // includes the index -1\n // for example helloGoodbye => .substring(0, 5) => hello\n // and the index is reset to 5 (G)\n const word = value.substring(wordIndex, i);\n words.push(words.length === 0 ? this.firstLetterToUppercase(word) : word.toLowerCase());\n wordIndex = i;\n }\n }\n if (wordIndex !== value.length) {\n // continuing the example, we take it from the last index matched\n // (meaning the rest of the word that wasn't considered because no uppercase\n // values existed at the end of the sentence after the last index matched)\n // so it is converterd like this: helloGoodbye => .sustring(5) => goodbye\n const remainingString = value.substring(wordIndex);\n words.push(words.length === 0 ? this.firstLetterToUppercase(remainingString) : remainingString.toLowerCase());\n }\n return words;\n }\n\n // at this point we assume the string is at least > 0 length\n // just a converter method from: hello to Hello\n private firstLetterToUppercase(value: string): string {\n return value.length > 1 ? `${value.substring(0, 1).toUpperCase()}${value.substring(1)}` : value.toUpperCase();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'mz-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.css'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class SpinnerComponent {\n\n @Input() size: 'medium' | 'large' = 'medium';\n @Input() type: 'default' | 'inverse' = 'default'; // TODO: inverse will not exist one day\n constructor() { }\n\n}\n","<div class=\"w-full\" [ngClass]=\"{'text-primary': type == 'default', 'text-white': type == 'inverse'}\">\n <svg class=\"animate-spin m-auto\" [ngClass]=\"{'w-16 h-16': size == 'large', 'w-5 h-5': size == 'medium'}\" xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\" viewBox=\"0 0 24 24\">\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\"></circle>\n <path class=\"opacity-75\" fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\">\n </path>\n </svg>\n</div>","import { InjectionToken } from \"@angular/core\";\nimport { PaginationDefaultOptions } from \"./pagination-default-options\";\n\nexport const PAGINATION_DEFAULT_OPTIONS = new InjectionToken<PaginationDefaultOptions>('MUZIEH_PAGINATION_DEFAULT_CONFIG');","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Inject, Input, OnChanges, OnInit, Optional, Output, SimpleChanges } from '@angular/core';\nimport { PageEvent } from '../models/page-event';\nimport { SvgIconComponent } from '../svg-icon/svg-icon.component';\nimport { PaginationDefaultOptions } from './pagination-default-options';\nimport { PAGINATION_DEFAULT_OPTIONS } from './pagination-default-options.token';\n\n@Component({\n selector: 'mz-pagination',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.css'],\n imports: [CommonModule, SvgIconComponent],\n standalone: true,\n})\nexport class PaginationComponent implements OnChanges {\n\n @Input() length: number = 0;\n @Input() page: number = 1;\n @Input() pageSize: number;\n @Output() public changePage = new EventEmitter<PageEvent>();\n\n @Input() pageSizeOptions?: number[];\n pages: number[] = [];\n pageCount: number = 1;\n constructor(@Optional() @Inject(PAGINATION_DEFAULT_OPTIONS) paginationOptions: PaginationDefaultOptions) {\n this.pageSize = paginationOptions?.pageSize || 20;\n this.pageSizeOptions = paginationOptions?.pageSizeOptions || [20, 50, 100];\n\n this.updatePages(this.page, this.length, this.pageSize);\n }\n\n ngOnChanges(): void {\n this.updatePages(this.page, this.length, this.pageSize);\n }\n\n isEllipsis(v: number) {\n return v === -1;\n }\n\n changePageNumber(newValue: number) {\n if (newValue == this.page || newValue < 1 || newValue > this.pageCount) {\n return;\n }\n this.changePage.emit({ pageNumber: newValue, pageSize: this.pageSize } as PageEvent)\n }\n\n changePageSize(newValue: string) {\n if (Number(newValue) == this.pageSize) {\n return;\n }\n this.changePage.emit({ pageNumber: 1, pageSize: Number(newValue) } as PageEvent);\n }\n\n private updatePages(currentPage: number, lengthOfItems: number, currentPageSize: number) {\n const pageCount = Math.ceil(lengthOfItems / currentPageSize);\n this.pageCount = pageCount;\n let pageNumbers: number[] = [];\n const max = 7; // 3 items before and after current page\n\n if (pageCount <= max) {\n this.pages = [...Array(pageCount).keys()].map(i => i + 1);\n return;\n }\n\n let start = Math.max(1, currentPage - 3);\n let end = Math.min(pageCount, currentPage + 3);\n let range = end - start + 1;\n if (range < max) {\n end = Math.min(end + (max - range), pageCount);\n }\n range = end - start + 1;\n if (range < max) {\n start = Math.max(1, start - (max - range));\n }\n\n for (let x = start; x <= end; x++) {\n pageNumbers.push(x);\n }\n\n if (start != 1) {\n pageNumbers.splice(0, 2);\n pageNumbers.unshift(1, -1);\n }\n\n if (end != pageCount) {\n pageNumbers.splice(pageNumbers.length - 2);\n pageNumbers.push(-1, pageCount);\n }\n\n this.pages = pageNumbers;\n }\n}\n","<div class=\"pagination-wrapper\">\n <nav class=\"pagination-nav\" aria-label=\"pagination\">\n <button class=\"page-link\" [ngClass]=\"{'disabled': page == 1}\" (click)=\"changePageNumber(page-1)\">\n <span class=\"sr-only\">Previous page</span>\n <mz-svg-icon key=\"chevron-left\"></mz-svg-icon>\n </button>\n <ng-container *ngFor=\"let p of pages\">\n <span class=\"page-ellipsis page-link disabled\" *ngIf=\"isEllipsis(p)\">...</span>\n <button class=\"page-link\" [ngClass]=\"{'active': p == page}\" (click)=\"changePageNumber(p)\"\n *ngIf=\"!isEllipsis(p)\">{{p}}</button>\n </ng-container>\n <button class=\"page-link\" [ngClass]=\"{'disabled': page == pageCount}\" (click)=\"changePageNumber(page+1)\">\n <span class=\"sr-only\">Next page</span>\n <mz-svg-icon key=\"chevron-right\"></mz-svg-icon>\n </button>\n </nav>\n <div class=\"pagination-size\">\n Show\n <select #c (change)=\"changePageSize(c.value)\" name=\"pageSizeControl\" class=\"page-size-control\">\n <option *ngFor=\"let size of pageSizeOptions\" [attr.selected]=\"pageSize == size ? true : null\"\n [value]=\"size\">{{size}}</option>\n </select>\n per page\n </div>\n</div>","import { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, ContentChild, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { PageEvent } from '../models/page-event';\nimport { ResultTableOptions } from '../models/result-table-options';\nimport { PaginationComponent } from '../pagination/pagination.component';\nimport { SpinnerComponent } from '../spinner/spinner.component';\nimport { SvgIconComponent } from '../svg-icon/svg-icon.component';\nimport { ResultTableModel } from './result-table.model';\n\n@Component({\n selector: 'mz-result-table',\n templateUrl: './result-table.component.html',\n styleUrls: ['./result-table.component.scss'],\n imports: [CommonModule, PaginationComponent, SpinnerComponent, SvgIconComponent],\n standalone: true,\n})\nexport class ResultTableComponent implements AfterViewInit {\n\n @Input() public loading: boolean = false;\n @Input() public error?: Error;\n @Input() public model: ResultTableModel<any> | undefined | null;\n\n @ContentChild('headerTemplate') headerTemplate!: TemplateRef<any>;\n @ContentChild('bodyTemplate') bodyTemplate!: TemplateRef<any>;\n\n @Input() pageSizeOptions?: number[];\n @Output() public pageChange = new EventEmitter<PageEvent>();\n\n @Input() public options: ResultTableOptions = { hidePagination: false, skipScrolling: false };\n\n constructor() {}\n\n ngAfterViewInit(): void {\n\n }\n\n changePage(page: PageEvent, table: HTMLElement) {\n this.pageChange.emit(page);\n if(!this.options.skipScrolling) {\n setTimeout(() => {\n table.scrollIntoView({ behavior: 'smooth', block: 'start' });\n });\n }\n }\n\n searchAgain() {\n this.pageChange.emit({ pageNumber: this.model?.pageNumber || 1, pageSize: this.model?.pageSize || 20 }); // TODO\n }\n\n public get state(): 'loading' | 'failed' | 'succeeded' {\n if (this.loading) {\n return 'loading';\n }\n if (this.error) {\n return 'failed';\n }\n\n return 'succeeded';\n }\n\n public get isEmpty(): boolean {\n return !this.model || this.model.items.length === 0;\n }\n}\n","<div class=\"result-table\" [ngClass]=\"{'loading': state === 'loading', 'failed': state === 'failed'}\" #tableRef>\n <div class=\"loading-overlay-spinner\" *ngIf=\"state === 'loading'\">\n <mz-spinner size=\"large\"></mz-spinner>\n </div>\n <table class=\"table\" [ngClass]=\"{'has-overlay' : state === 'loading'}\">\n <caption *ngIf=\"state === 'succeeded' && model && model.items.length > 0\">\n {{(model.pageNumber-1) * model.pageSize + 1}} - {{(model.pageNumber-1) * model.pageSize + model.items.length}} of {{ model.totalItems }} results\n </caption>\n <thead>\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </thead>\n <tbody>\n @if(state === 'succeeded' && !isEmpty) {\n <ng-container *ngTemplateOutlet=\"bodyTemplate\"></ng-container>\n }\n </tbody>\n </table>\n <div class=\"table-pagination\" *ngIf=\"state === 'succeeded' && !options?.hidePagination && !isEmpty\">\n <mz-pagination [length]=\"model!.totalItems\" [page]=\"model!.pageNumber\" [pageSize]=\"model!.pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (changePage)=\"changePage($event, tableRef)\"></mz-pagination>\n </div>\n <div class=\"state-message\" *ngIf=\"state == 'succeeded' && isEmpty\">\n <div class=\"title\">No results found</div>\n </div>\n <div class=\"state-message\" *ngIf=\"state == 'failed'\">\n <div class=\"title\">\n <mz-svg-icon key=\"x-circle\" type=\"solid\" class=\"text-danger\"></mz-svg-icon>\n Something went wrong\n </div>\n <div>Unexpected error, <a (click)=\"searchAgain()\" class=\"link-action\">try searching again</a>.</div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router } from '@angular/router';\nimport { race } from 'rxjs';\nimport { delay, filter, repeat, take } from 'rxjs/operators';\nimport { SubSink } from 'subsink';\n\n@Component({\n selector: 'mz-page-loading-indicator',\n templateUrl: './page-loading-indicator.component.html',\n styleUrls: ['./page-loading-indicator.component.scss'],\n imports: [CommonModule],\n standalone: true,\n})\nexport class PageLoadingIndicatorComponent implements OnInit, OnDestroy {\n @Input() isLoading: boolean = false;\n expectedMilisecondsDelay = 1000;\n private subs = new SubSink();\n\n constructor(private router: Router) {}\n\n ngOnInit(): void {\n const endObs$ = this.router.events.pipe(\n filter((e) => e instanceof NavigationEnd || e instanceof NavigationCancel || e instanceof NavigationError),\n );\n\n this.subs.add(\n race(\n this.router.events.pipe(\n filter((e) => e instanceof NavigationStart),\n delay(this.expectedMilisecondsDelay)\n ),\n endObs$\n ).pipe(take(1), repeat()).subscribe((x) => this.isLoading = x instanceof NavigationStart)\n );\n // the flag need to be reset to false when the page finishes loading\n this.subs.add(endObs$.subscribe(() =>this.isLoading = false));\n }\n\n ngOnDestroy(): void {\n this.subs.unsubscribe();\n }\n}\n","<div class=\"progress-bar-container\" *ngIf=\"isLoading\">\n <div class=\"progress-bar progress-bar-indeterminate\">\n <div class=\"progress-bar-value\"></div>\n </div>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\n\n@Component({\n selector: 'mz-page-header',\n templateUrl: './page-header.component.html',\n styleUrls: ['./page-header.component.scss'],\n standalone: true,\n})\nexport class PageHeaderComponent implements OnInit {\n private pageTitleValue = 'Servicing Web';\n\n constructor(private title: Title) {}\n\n get pageTitle(): string {\n return this.pageTitleValue;\n }\n\n @Input() set pageTitle(newValue: string) {\n this.pageTitleValue = newValue;\n this.title.setTitle(newValue);\n }\n\n ngOnInit(): void {}\n}\n","<header class=\"page-header\">\n <h1>{{ pageTitle }}</h1>\n <ng-content></ng-content>\n</header>","import { Directive, ElementRef, HostListener, Renderer2 } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport { TimeValue } from './date-time/time-value';\n\n// TODO: need to rename, and need to use ivy instead\n\n@Directive({\n selector: 'input[type=time]',\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: TimeValueAccessorDirective,\n multi: true\n }],\n standalone: true,\n})\nexport class TimeValueAccessorDirective implements ControlValueAccessor {\n\n @HostListener('input', ['$event.target.value'])\n onChange = (x: any) => { };\n onTouched = () => { };\n constructor(private renderer: Renderer2, private elementRef: ElementRef) {\n\n }\n\n writeValue(obj?: TimeValue): void {\n if (!obj) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', null);\n return;\n }\n const hourPrefix = obj?.hour > 9 ? '' : '0';\n const minutePrefix = obj.minute > 9 ? '' : '0';\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', `${hourPrefix}${obj.hour}:${minutePrefix}${obj.minute}`);\n }\n\n registerOnChange(fn: (x: TimeValue | null) => void): void {\n this.onChange = (value) => {\n if (value === null || value === '') {\n fn(null);\n } else {\n const parts = value.split(':');\n fn({ hour: Number(parts[0]), minute: Number(parts[1]) } as TimeValue);\n }\n };\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, OnInit, Input, TemplateRef } from '@angular/core';\nimport { SvgIconComponent } from '../svg-icon/svg-icon.component';\n\n@Component({\n selector: 'mz-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.css'],\n imports: [CommonModule, SvgIconComponent],\n standalone: true,\n})\nexport class AlertComponent implements OnInit {\n @Input() title: string = '';\n @Input() type: 'info' | 'success' | 'error' | 'warning' = 'info';\n @Input() body: TemplateRef<any> | undefined | null;\n @Input() footer: TemplateRef<any> | undefined | null;\n\n constructor() {}\n\n ngOnInit(): void {}\n\n getAlertClass(): string {\n return `alert-${this.type}`;\n }\n\n getAlertIcon(): string {\n let icon = '';\n if (this.type === 'info') {\n icon = 'information-circle';\n } else if (this.type === 'success') {\n icon = 'check-circle';\n } else if (this.type === 'error') {\n icon = 'x-circle';\n } else if (this.type === 'warning') {\n icon = 'exclamation';\n }\n return icon;\n }\n}\n","<div [className]=\"'alert alert-' + type\">\n\n <div>\n <div class=\"alert-icon\">\n <mz-svg-icon [key]=\"getAlertIcon()\" type=\"solid\"></mz-svg-icon>\n </div>\n\n <div class=\"alert-title\">\n <strong>{{ title }}</strong>\n </div>\n </div>\n\n <div class=\"alert-body\" *ngIf=\"body\">\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n </div>\n\n <div class=\"alert-footer\" *ngIf=\"footer\">\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n\n</div>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'mzPhoneNumber',\n standalone: true,\n})\nexport class PhoneNumberPipe implements PipeTransform {\n\n transform(number?: string): string | null {\n if (!number) {\n return null;\n }\n\n const phoneNumber = number.replace(/^\\+1/, '').replace(/\\D/g, '');\n if (phoneNumber.length === 10) {\n return phoneNumber.replace(/(\\d{3})(\\d{3})(\\d{4})/, '($1) $2-$3');\n }\n return number;\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'mzDateDisplay',\n standalone: true,\n})\nexport class DateDisplayPipe implements PipeTransform {\n constructor(private datePipe: DatePipe) {}\n\n transform(value: Date | string, format: string): string | null {\n let redefinedDate;\n if (format === 'concise') {\n redefinedDate = this.datePipe.transform(value, 'MM/dd/yyyy');\n } else if(format === 'detailed') {\n redefinedDate = this.datePipe.transform(value, 'MM/dd/yyyy h:mm:ss a');\n } else {\n redefinedDate = this.datePipe.transform(value, 'MM/dd/yyyy');\n }\n return redefinedDate;\n }\n}\n","import { Directive, EventEmitter, Input, OnChanges, Output } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { SortEvent } from './models/sort-event';\n\n@Directive({\n selector: '[mzSort]',\n standalone: true,\n})\nexport class SortDirective implements OnChanges {\n\n @Output() sort = new EventEmitter<SortEvent>();\n @Input('mzSort') set mzSort(value: string) {\n this._mzSort = value;\n this.setActiveHeaderSort();\n }\n\n mzSortOnChange$ = new BehaviorSubject<string>('');\n _mzSort!: string;\n active!: string;\n\n constructor() {}\n\n ngOnChanges(): any {\n this.mzSortOnChange$.next(this.active);\n }\n\n setActiveHeaderSort() {\n this.active = this._mzSort.includes('-') ? this._mzSort.slice(1) : this._mzSort;\n }\n}\n","import { Directive, ElementRef, HostBinding, Input, OnInit, Renderer2 } from '@angular/core';\nimport { SortDirective } from './sort.directive';\n\n@Directive({\n selector: '[mzSortKey]',\n host: {\n 'role': 'button',\n '[attr.aria-sort]': 'getAriaSortAttribute()',\n '(click)': 'onClick()',\n },\n standalone: true,\n})\nexport class SortKeyDirective implements OnInit {\n @Input() mzSortKey!: string;\n order = 'asc';\n updatedSort = '';\n\n constructor(private sortable: SortDirective, private renderer: Renderer2, private hostElement: ElementRef) {}\n\n ngOnInit(): void {\n this.addSortClass();\n this.sortable.mzSortOnChange$.subscribe(() => {\n this.updatedSort = this.mzSortKey === this.sortable.active ? this.sortable._mzSort : this.mzSortKey;\n this.setOrder(this.updatedSort);\n\n if (this.isActive()) {\n this.addActiveClass();\n } else {\n this.removeActiveClass();\n }\n });\n }\n\n onClick($event: Event) {\n // remove active css classes\n this.removeActiveClass();\n\n // update current sort value (-order, order)\n this.updateSortKeyValue();\n\n // update parent directive active column and emit output\n this.updateActiveValue();\n\n // add arrow css clases\n this.addActiveClass();\n }\n\n getAriaSortAttribute() {\n if (!this.isActive()) {\n return 'none';\n }\n return this.order === 'asc' ? 'ascending' : 'descending';\n }\n\n private updateSortKeyValue() {\n if (this.isActive()) {\n this.updatedSort = this.order === 'desc' ? this.updatedSort.slice(1) : `-${this.updatedSort}`;\n } else {\n this.updatedSort = this.mzSortKey;\n }\n\n this.setOrder(this.updatedSort);\n }\n\n private updateActiveValue() {\n this.sortable.active = this.mzSortKey;\n this.sortable.sort.emit({ sort: this.updatedSort });\n }\n\n private addSortClass() {\n const spanElement = this.renderer.createElement('span');\n spanElement.classList.add(\"sort-icon\");\n this.renderer.appendChild(this.hostElement.nativeElement, spanElement);\n this.renderer.addClass(this.hostElement.nativeElement, 'sort-trigger');\n }\n\n private addActiveClass() {\n this.renderer.addClass(this.hostElement.nativeElement, this.order === 'asc' ? 'sort-ascending' : 'sort-descending');\n }\n\n private removeActiveClass() {\n this.renderer.removeClass(this.hostElement.nativeElement, 'sort-ascending');\n this.renderer.removeClass(this.hostElement.nativeElement, 'sort-descending');\n }\n\n private isActive() {\n return this.mzSortKey === this.sortable.active;\n }\n\n private setOrder(sort: string) {\n this.order = sort.includes('-') ? 'desc' : 'asc';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Subject } from '../models/subject';\n\n@Pipe({\n name: 'mzSubjectDisplay',\n standalone: true,\n})\nexport class SubjectDisplayPipe implements PipeTransform {\n transform(subject?: Subject, defaultValue?: string): string | null {\n if (!subject) {\n return defaultValue || null;\n }\n return subject.givenName && subject.familyName ? `${subject.givenName} ${subject.familyName}` : subject.userPrincipalName;\n }\n}\n","import { Directive, ElementRef, HostBinding, Input, OnChanges, OnDestroy, Renderer2, SimpleChanges } from '@angular/core';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n@Directive({\n selector: '[mzButton]',\n standalone: true,\n host: {\n role: 'button',\n '[attr.tabindex]': '0',\n '[attr.aria-disabled]': 'busy',\n },\n})\nexport class ButtonDirective implements OnChanges, OnDestroy {\n @Input()\n variant? = 'secondary';\n @Input()\n busy?: boolean = false;\n private svgContent = `\n <svg class=\"button-loading-spinner\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\"\n viewBox=\"0 0 24 24\">\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\">\n </circle>\n <path class=\"opacity-75\" fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\">\n </path>\n </svg>\n `;\n private subscription = new Subscription();\n\n constructor(private renderer: Renderer2, private hostElement: ElementRef) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['busy'] && Boolean(changes['busy'].previousValue) !== Boolean(changes['busy'].currentValue)) {\n this.attachOrDeattachSpinner();\n }\n }\n\n ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n }\n\n @HostBinding('class')\n get elementClass(): string {\n return ['button', `button-${this.variant}`, this.busy ? 'loading' : ''].join(' ');\n }\n\n attachOrDeattachSpinner() {\n if (this.busy) {\n const loadingElement = this.renderer.createElement('span');\n loadingElement.innerHTML = this.svgContent;\n this.renderer.addClass(loadingElement, 'button-loading-overlay');\n this.renderer.appendChild(this.hostElement.nativeElement, loadingElement);\n this.addEventSubscription();\n } else {\n this.renderer.removeChild(this.hostElement.nativeElement, this.getOverlayDiv());\n this.subscription?.unsubscribe();\n }\n }\n\n private addEventSubscription() {\n const el = this.hostElement.nativeElement;\n this.subscription = fromEvent(el.parentNode, 'click', { capture: true })\n .pipe(filter((e: any) => Boolean(this.busy && this.getElementsToVerify().includes(e.target))))\n .subscribe((e: any) => {\n e.stopPropagation();\n });\n }\n\n private getChildElement(query: string) {\n return this.hostElement.nativeElement.querySelector(query);\n }\n\n private getElementsToVerify() {\n return [this.hostElement.nativeElement, this.getOverlayDiv(), this.getChildElement('.button-loading-overlay'), this.getChildElement('.button-loading-overlay svg'), this.getChildElement('.button-loading-overlay svg circle'), this.getChildElement('.button-loading-overlay svg path')];\n }\n\n private getOverlayDiv() {\n return this.getChildElement('.button-loading-overlay');\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { SubSink } from 'subsink';\nimport { WizardStepLink } from '../models/wizard-step-link';\nimport { SvgIconComponent } from '../svg-icon/svg-icon.component';\n\n@Component({\n selector: 'mz-wizard-progress-tracker',\n templateUrl: './wizard-progress-tracker.component.html',\n styleUrls: ['./wizard-progress-tracker.component.scss'],\n standalone: true,\n imports: [CommonModule, SvgIconComponent]\n})\nexport class WizardProgressTrackerComponent {\n @Input() steps: WizardStepLink[] = [];\n @Input() currentStep = 0;\n @Output() stepChange = new EventEmitter<WizardStepLink>();\n toggled = true;\n subs = new SubSink();\n\n goToStep(step: WizardStepLink) {\n this.stepChange.emit(step);\n }\n\n toggle(): void {\n this.toggled = !this.toggled;\n }\n}\n","<div class=\"wizard-progress-tracker\">\n <div class=\"direction-container\">\n <span class=\"steps-count\">Step {{ currentStep + 1 }} of {{ steps.length }}</span>\n <div class=\"wizard-steps-container\" [ngClass]=\"{'toggled': toggled}\">\n <div *ngFor=\"let step of steps; index as i;\" class=\"wizard-step\"\n [ngClass]=\"{ 'previous': i < currentStep, 'current': i === currentStep, 'unvisited': i > currentStep }\">\n <ng-container>\n <div class=\"wizard-step-icon-container\">\n <div class=\"spacer left\">\n </div>\n <div *ngIf=\"i > 0\" class=\"step-line left\"></div>\n\n <div *ngIf=\"i < currentStep\" class=\"wizard-step-icon\">\n <mz-svg-icon key=\"check-circle\" type=\"solid\">\n </mz-svg-icon>\n </div>\n <div *ngIf=\"i === currentStep\" class=\"wizard-step-icon\">\n <div class=\"step-inner-circle\"></div>\n </div>\n <div *ngIf=\"i > currentStep\" class=\"wizard-step-icon\">\n </div>\n\n <div *ngIf=\"i < (steps.length - 1)\" class=\"step-line step-line-right\"></div>\n <div class=\"spacer right\"></div>\n </div>\n <a *ngIf=\"i < currentStep\" class=\"step-desc\" (click)=\"goToStep(step)\"> {{\n step.name\n }}</a>\n <div *ngIf=\" i === currentStep\" class=\"step-desc\"> {{ step.name }}\n </div>\n <div *ngIf=\" i > currentStep\" class=\"step-desc\"> {{ step.name }}\n </div>\n <div class=\"toggable-icon\">\n <button *ngIf=\"!toggled\" (click)=\"toggle()\">\n <mz-svg-icon key=\"chevron-down\"></mz-svg-icon>\n </button>\n <button *ngIf=\"toggled\" (click)=\"toggle()\">\n <mz-svg-icon key=\"chevron-up\"></mz-svg-icon>\n </button>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n","import { ChangeDetectorRef, Component, forwardRef, Input, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MatDatepickerInputEvent, MatDatepickerModule } from '@angular/material/datepicker';\nimport { TimeValue } from './time-value';\nimport { MatDatepicker } from '@angular/material/datepicker';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'mz-datetime',\n templateUrl: './date-time.component.html',\n styleUrls: ['./date-time.component.css'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DateTimeComponent),\n multi: true,\n },\n ],\n imports: [CommonModule, MatDatepickerModule],\n standalone: true,\n})\nexport class DateTimeComponent implements ControlValueAccessor {\n date: Date | undefined;\n time: string | undefined;\n\n private lz = (n: number) => ('0' + n).slice(-2);\n private formatDate = (dt: Date) => `${dt.getMonth() + 1}/${dt.getDate()}/${dt.getFullYear()}`;\n private formatTime = (t: Date) => `${this.lz(t.getHours())}:${this.lz(t.getMinutes())}`;\n private formatDateTime = (dt: Date, t: string) => `${this.formatDate(dt)} ${t}`;\n private limitDate = (dt: Date) => {\n if (this.min) {\n dt = new Date(Math.max(dt.getTime(), this.min.getTime()));\n }\n\n if (this.max) {\n dt = new Date(Math.min(dt.getTime(), this.max.getTime()));\n }\n\n return dt;\n };\n private onTimeHourPending = false; \n\n type = 'outline';\n @ViewChild('datePicker') datepicker!: MatDatepicker<Date>;\n\n @Input()\n min?: Date | undefined;\n\n @Input()\n max?: Date | undefined;\n\n @Input()\n disabled = false;\n\n constructor(private _cd: ChangeDetectorRef) {}\n\n onChange = (_: any) => {};\n onTouched = () => {};\n\n writeValue(value: Date) {\n if (value) {\n const dt = new Date(value);\n\n this.date = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());\n this.time = this.formatTime(value);\n } else {\n this.date = undefined;\n this.time = undefined;\n }\n\n this._cd.markForCheck();\n }\n\n registerOnChange(fn: (value: any) => any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n updateDate(e: Event): void {\n const input = e.target as HTMLInputElement;\n\n let dt = new Date(input.value);\n\n if (!isNaN(dt.getTime())) {\n dt = this.limitDate(dt);\n\n this.date = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());\n\n if (this.time === undefined || this.time === '') {\n this.time = this.formatTime(new Date());\n }\n } else {\n this.date = undefined;\n this.time = undefined;\n }\n\n this.propagateModelChange();\n this._cd.markForCheck();\n }\n\n updateTime(e: Event): void {\n const input = e.target as HTMLInputElement;\n\n // this is just a listener event in case the end user types in \"0\". We wait for\n // the next entered value for the time input field to self fix the problem.\n if (!this.onTimeHourPending && !input.value) {\n this.onTimeHourPending = true;\n return;\n }\n\n this.onTimeHourPending = false;\n\n if (!input.value) {\n this.date = undefined;\n } else if (!this.date || isNaN(this.date.getTime())) {\n const dt = this.limitDate(this.min ?? new Date());\n\n this.date = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());\n }\n this.time = input.value;\n\n this.propagateModelChange();\n }\n\n updateDateEvent(event: MatDatepickerInputEvent<Date>) {\n if (event.value) {\n const dt = this.limitDate(new Date(event.value));\n\n this.date = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());\n\n if (this.time === undefined || this.time === '') {\n this.time = this.formatTime(new Date());\n }\n } else {\n this.date = undefined;\n this.time = undefined;\n }\n\n this.propagateModelChange();\n this._cd.markForCheck();\n }\n\n focusOnDateInput() {\n this.datepicker.open();\n }\n\n private propagateModelChange(): void {\n if (this.time && this.date) {\n const dateString = this.formatDateTime(this.date, this.time);\n this.onChange(new Date(dateString));\n } else {\n this.onChange(undefined);\n }\n }\n}\n\nexport interface ScheduleInputModel {\n time: TimeValue;\n}\n","<div class=\"flex\">\n <div class=\"field-control-combo\">\n <input class=\"field-control\" type=\"text\" [value]=\"date\" (change)=\"updateDate($event)\" [min]=\"min\" [max]=\"max\"\n [matDatepicker]=\"datePicker\" (dateChange)=\"updateDateEvent($event)\" [disabled]=\"disabled\" ngDefaultControl>\n <div class=\"field-control-addon\">\n <button class=\"button button-secondary button-icon\" type=\"button\" (click)=\"datePicker.open()\"\n [disabled]=\"disabled\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"\n stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\" />\n </svg>\n </button>\n <mat-datepicker #datePicker></mat-datepicker>\n </div>\n </div>\n <div class=\"field-control-group mt-1 ml-6\">\n <input class=\"field-control\" type=\"time\" [value]=\"time\" (change)=\"updateTime($event)\"\n ngDefaultControl [disabled]=\"disabled\">\n </div>\n</div>\n","import { DialogModule, DIALOG_DATA } from '@angular/cdk/dialog';\nimport { CommonModule } from '@angular/common';\nimport { Component, Inject, OnInit, TemplateRef } from '@angular/core';\nimport { MatCommonModule } from '@angular/material/core';\nimport { RouterModule } from '@angular/router';\n\n@Component({\n selector: 'mz-inline-message-dialog',\n templateUrl: './inline-message-dialog.component.html',\n styleUrls: ['./inline-message-dialog.component.scss'],\n imports: [MatCommonModule, CommonModule, RouterModule, DialogModule],\n standalone: true,\n})\nexport class InlineMessageDialogComponent implements OnInit {\n body: TemplateRef<any> | undefined | null;\n\n constructor(@Inject(DIALOG_DATA) public data: any) { }\n\n ngOnInit() {\n this.body = this.data.body;\n }\n\n}","<div class=\"body\" *ngIf=\"body\">\n <ng-content *ngTemplateOutlet=\"body\"></ng-content>\n</div>","import { Component, Input, TemplateRef } from '@angular/core';\nimport { Dialog, DialogModule } from '@angular/cdk/dialog';\nimport { InlineMessageDialogComponent } from './inline-message-dialog/inline-message-dialog.component';\nimport { CommonModule } from '@angular/common';\nimport { MatCommonModule } from '@angular/material/core';\nimport { RouterModule } from '@angular/router';\n\n@Component({\n selector: 'mz-inline-message',\n templateUrl: './inline-message.component.html',\n styleUrls: ['./inline-message.component.scss'],\n imports: [MatCommonModule, CommonModule, RouterModule, DialogModule],\n standalone: true,\n})\nexport class InlineMessageComponent {\n @Input() body: TemplateRef<any> | undefined | null;\n\n constructor(public dialog: Dialog) {}\n\n ngOnInit(): void {}\n\n openDialog() {\n this.dialog.open(InlineMessageDialogComponent, {\n minWidth: '300px',\n data: {\n body: this.body,\n },\n });\n }\n}\n","<div class=\"wrapper\">\n <button type=\"button\" (click)=\"openDialog()\" class=\"inline-message-btn\">i</button>\n</div>","import { Directive } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\n\n@Directive({\n selector: 'input[type=time]',\n providers: [{\n provide: NG_VALIDATORS,\n useExisting: TimeValueValidatorDirective,\n multi: true\n }],\n standalone: true,\n})\nexport class TimeValueValidatorDirective implements Validator {\n\n constructor() { }\n\n validate(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n if (value == null || value.length == 0) {\n return null;\n }\n\n /*\n const parts = value.split(':');\n if (parts.length != 2) {\n return { \"time\": \"invalid time\" };\n }*/\n\n return null;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ContentChild, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { SpinnerComponent } from '../spinner/spinner.component';\n\n@Component({\n selector: 'mz-infinite-scroll',\n standalone: true,\n imports: [CommonModule, SpinnerComponent],\n templateUrl: './infinite-scroll.component.html',\n styleUrls: ['./infinite-scroll.component.scss'],\n})\nexport class InfiniteScrollComponent {\n @Input() items: any[] = [];\n @Input() isLoading: boolean = false;\n @Input() containerHeight: string = '24rem';\n @Output() itemSelected = new EventEmitter<any>();\n @Output() loadMore = new EventEmitter<boolean>();\n @ContentChild('itemTemplate') itemTemplate!: TemplateRef<any>; \n selectedItem: any = null;\n\n onContainerScroll(event: any): void {\n const target = event.target;\n if (!this.isLoading && target.offsetHeight + target.scrollTop >= target.scrollHeight) {\n this.loadMore.emit(true);\n }\n }\n\n onItemClick(item: any): void {\n this.selectedItem = item;\n this.itemSelected.emit(item);\n }\n}\n","<div class=\"infinite-scroll-container overflow-auto\" [style.height]=\"containerHeight\" (scroll)=\"onContainerScroll($event)\">\n <ng-container *ngIf=\"itemTemplate; else defaultItems\">\n <ng-container *ngFor=\"let item of items\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-container>\n </ng-container>\n </ng-container>\n <ng-template #defaultItems>\n <div *ngFor=\"let item of items\" class=\"scroll-item\" [ngClass]=\"{'scroll-item-selected': selectedItem === item}\" (click)=\"onItemClick(item)\">\n {{ item.label }}\n </div>\n </ng-template>\n\n <!-- Spinner -->\n <div *ngIf=\"isLoading\" class=\"scroll-spinner-container\">\n <mz-spinner size=\"medium\"></mz-spinner>\n </div>\n</div>\n","import { CommonModule, DatePipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SpinnerComponent } from './spinner/spinner.component';\nimport { EnumDisplayPipe } from './enum-display/enum-display.pipe';\nimport { SvgIconComponent } from './svg-icon/svg-icon.component';\nimport { ResultTableComponent } from './result-table/result-table.component';\nimport { PaginationComponent } from './pagination/pagination.component';\nimport { PageLoadingIndicatorComponent } from './page-loading-indicator/page-loading-indicator.component';\nimport { PageHeaderComponent } from './page-header/page-header.component';\nimport { TimeValueAccessorDirective } from './time-value-accessor.directive';\nimport { FormsModule } from '@angular/forms';\nimport { AlertComponent } from './alert/alert.component';\nimport { PhoneNumberPipe } from './phone-number/phone-number.pipe';\nimport { DateDisplayPipe } from './date-display/date-display.pipe';\nimport { SortDirective } from './sort.directive';\nimport { SortKeyDirective } from './sort-key.directive';\nimport { SubjectDisplayPipe } from './subject-display/subject-display.pipe';\nimport { ButtonDirective } from './button.directive';\nimport { WizardProgressTrackerComponent } from './wizard-progress-tracker/wizard-progress-tracker.component';\nimport { DateTimeComponent } from './date-time/date-time.component';\nimport { InlineMessageComponent } from './inline-message/inline-message.component';\nimport { InlineMessageDialogComponent } from './inline-message/inline-message-dialog/inline-message-dialog.component';\nimport { TimeValueValidatorDirective } from './time-value-validator.directive';\nimport { InfiniteScrollComponent } from './infinite-scroll/infinite-scroll.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ButtonDirective,\n SvgIconComponent,\n SpinnerComponent,\n WizardProgressTrackerComponent,\n AlertComponent,\n EnumDisplayPipe,\n ResultTableComponent,\n InfiniteScrollComponent,\n PaginationComponent,\n PageLoadingIndicatorComponent,\n PageHeaderComponent,\n TimeValueAccessorDirective,\n DateDisplayPipe,\n PhoneNumberPipe,\n SortKeyDirective,\n SortDirective,\n SubjectDisplayPipe,\n DateTimeComponent,\n InlineMessageComponent,\n InlineMessageDialogComponent,\n TimeValueValidatorDirective,\n ],\n exports: [\n EnumDisplayPipe,\n SpinnerComponent,\n SvgIconComponent,\n ResultTableComponent,\n InfiniteScrollComponent,\n PaginationComponent,\n PageLoadingIndicatorComponent,\n PageHeaderComponent,\n TimeValueAccessorDirective,\n DateDisplayPipe,\n AlertComponent,\n PhoneNumberPipe,\n SortKeyDirective,\n SortDirective,\n SubjectDisplayPipe,\n ButtonDirective,\n WizardProgressTrackerComponent,\n DateTimeComponent,\n InlineMessageComponent,\n InlineMessageDialogComponent,\n TimeValueValidatorDirective,\n ],\n providers: [\n DatePipe,\n ]\n})\nexport class MuziehComponentsModule { }\n","import { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, ContentChild, ElementRef, EventEmitter, Input, Output, Renderer2 } from '@angular/core';\nimport { FormsModule, NgModel } from '@angular/forms';\nimport { ButtonDirective } from '../button.directive';\n\n@Component({\n selector: 'mz-inline-edit',\n standalone: true,\n imports: [ButtonDirective, FormsModule, CommonModule],\n templateUrl: './inline-edit.component.html',\n styleUrl: './inline-edit.component.scss',\n})\nexport class InlineEditComponent implements AfterViewInit {\n isEditing = false;\n busy = false;\n @Input() label?: string;\n @Input() layout: 'form' | 'field' = 'field';\n @Output() save = new EventEmitter();\n\n @ContentChild(NgModel) ngModel!: NgModel;\n @ContentChild(NgModel, { read: ElementRef }) private ngModelElement?: ElementRef;\n\n originalValue: unknown;\n\n constructor(private renderer: Renderer2) {}\n\n ngAfterViewInit(): void {\n this.renderer.listen(this.ngModelElement?.nativeElement, 'focus', () => {\n if (!this.isEditing) {\n this.activate();\n }\n });\n }\n\n activate() {\n this.isEditing = true;\n this.ngModel.control.markAsTouched();\n this.originalValue = this.ngModel.value;\n\n setTimeout(() => {\n this.ngModelElement?.nativeElement.focus();\n });\n }\n\n submitForm() {\n this.busy = true;\n this.save.emit(this.ngModel.value);\n }\n\n cancelEdit() {\n if (this.busy) {\n return;\n }\n this.ngModel.reset(this.originalValue);\n this.isEditing = false;\n }\n\n exitEdit() {\n this.isEditing = false;\n this.busy = false;\n }\n}\n","<div class=\"inline-edit\">\n <form class=\"flex gap-4\" [ngClass]=\"{ 'flex-col': layout === 'form', 'flex-row': layout === 'field' }\">\n @if (isEditing || !label) {\n <ng-content></ng-content>\n } @else if (label && !isEditing) {\n <button type=\"button\" class=\"flex gap-4 cursor-pointer\" (click)=\"activate()\">\n <span>\n {{ label }}\n </span>\n <span class=\"text-secondary\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" class=\"size-4\">\n <path d=\"M21.731 2.269a2.625 2.625 0 0 0-3.712 0l-1.157 1.157 3.712 3.712 1.157-1.157a2.625 2.625 0 0 0 0-3.712ZM19.513 8.199l-3.712-3.712-12.15 12.15a5.25 5.25 0 0 0-1.32 2.214l-.8 2.685a.75.75 0 0 0 .933.933l2.685-.8a5.25 5.25 0 0 0 2.214-1.32L19.513 8.2Z\" />\n </svg>\n </span>\n </button>\n }\n\n @if (isEditing) {\n <div class=\"flex gap-2\">\n <!--<button type=\"submit\" mzButton [busy]=\"busy\" (click)=\"submitForm()\">Save</button>\n <button type=\"button\" class=\"button button-tertiary\" (click)=\"cancelEdit()\">Cancel</button>-->\n <button mzButton [busy]=\"busy\" type=\"submit\" (click)=\"submitForm()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-5 w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fill-rule=\"evenodd\" d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\n </svg>\n </button>\n <button type=\"button\" mzButton variant=\"tertiary\" (click)=\"cancelEdit()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-5 w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fill-rule=\"evenodd\" d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\" clip-rule=\"evenodd\" />\n </svg>\n </button>\n </div>\n }\n </form>\n</div>\n","export abstract class MuziehComponentHarness<T> {}\n","import { DebugElement } from '@angular/core';\nimport { By } from '@angular/platform-browser';\nimport { ResultTableComponent } from '../result-table/result-table.component';\nimport { ResultTableModel } from '../result-table/result-table.model';\nimport { MuziehComponentHarness } from './muzieh-component-harness';\n\nexport class ResultTableHarness extends MuziehComponentHarness<ResultTableComponent> {\n private refreshContainerEvent: () => DebugElement;\n\n private get resultTableDebugElement() {\n const containerDebugElement = this.refreshContainerEvent();\n if (!containerDebugElement) {\n throw new Error('Invalid container debug element');\n }\n // we need this to default to the container if null for testing the original component\n const resultTableDebugElement = containerDebugElement.query(By.directive(ResultTableComponent)) || containerDebugElement;\n if (!resultTableDebugElement) {\n throw new Error('Invalid result table debug element');\n }\n return resultTableDebugElement;\n }\n\n get resultTableComponentInstance(): ResultTableComponent {\n return this.evaluateComponentInstance(this.resultTableDebugElement);\n }\n\n constructor(refreshContainerEvent: () => DebugElement) {\n super();\n this.refreshContainerEvent = refreshContainerEvent;\n }\n\n getHeaderColumns() {\n return this.resultTableDebugElement.queryAll(By.css('thead tr th')).map((td) => (td.nativeElement as HTMLTableCellElement).textContent?.trim());\n }\n\n getRenderedResults() {\n const contentDebugElement = this.resultTableDebugElement;\n const componentInstance = this.evaluateComponentInstance(contentDebugElement);\n const results = contentDebugElement.queryAll(By.css('tbody tr')).map((el) => el.queryAll(By.css('td')).map((td) => (td.nativeElement as HTMLTableCellElement).textContent?.trim()));\n const { pageNumber: page, pageSize, totalItems: total } = componentInstance.model as ResultTableModel<unknown>;\n\n return {\n results,\n page,\n pageSize,\n total,\n };\n }\n\n getResultsHeaderSummary() {\n const headerCaptionDebugElement = this.resultTableDebugElement.query(By.css('table caption'));\n if (!headerCaptionDebugElement) {\n throw new Error('DebugElement not found');\n }\n return (headerCaptionDebugElement.nativeElement as HTMLTableCaptionElement).textContent?.trim();\n }\n\n hasErrorMessage() {\n return this.resultTableDebugElement.queryAll(By.css('.state-message .title .text-danger')).length > 0;\n }\n\n hasNoResultsMessage() {\n const errorDebugElement = this.resultTableDebugElement.query(By.css('.state-message .title'));\n if (!errorDebugElement) {\n throw new Error('DebugElement not found');\n }\n return (errorDebugElement.nativeElement as HTMLDivElement).textContent?.trim() === 'No results found';\n }\n\n hasPaginationAvailable() {\n return this.resultTableDebugElement.queryAll(By.css('.table-pagination')).length > 0;\n }\n\n hasResultsHeaderSummary() {\n return this.resultTableDebugElement.queryAll(By.css('table caption')).length > 0;\n }\n\n private evaluateComponentInstance(container: DebugElement): ResultTableComponent {\n return container.componentInstance as ResultTableComponent;\n }\n}\n","/*\n * Public API Surface of components\n */\n\nexport { SvgIconComponent } from './lib/svg-icon/svg-icon.component';\nexport { SvgIconOptions, SVG_ICON_DEFAULT_OPTIONS } from './lib/svg-icon/svg-icon-config';\n\nexport { EnumDisplayPipe } from './lib/enum-display/enum-display.pipe';\nexport { SpinnerComponent } from './lib/spinner/spinner.component';\n\nexport { MuziehComponentsModule } from './lib/components.module';\nexport { PageLoadingIndicatorComponent } from './lib/page-loading-indicator/page-loading-indicator.component';\nexport { PageHeaderComponent } from './lib/page-header/page-header.component';\nexport { PhoneNumberPipe } from './lib/phone-number/phone-number.pipe';\nexport { DateDisplayPipe } from './lib/date-display/date-display.pipe';\n\n// inline edit\nexport { InlineEditComponent } from './lib/inline-edit/inline-edit.component';\n\n// subject\nexport { SubjectDisplayPipe } from './lib/subject-display/subject-display.pipe';\nexport { Subject } from './lib/models/subject';\n\n// table\nexport { ResultTableComponent } from './lib/result-table/result-table.component';\nexport { PaginationComponent } from './lib/pagination/pagination.component';\nexport { PageEvent } from './lib/models/page-event';\nexport { LoadingState } from './lib/models/loading-state';\nexport { ResultTableModel } from './lib/result-table/result-table.model';\n\n// infinite scroll\nexport { InfiniteScrollComponent } from './lib/infinite-scroll/infinite-scroll.component';\n\n// Datetime\nexport { DateTimeComponent } from './lib/date-time/date-time.component';\nexport { TimeValue } from './lib/date-time/time-value';\nexport { TimeValueAccessorDirective } from './lib/time-value-accessor.directive';\nexport { TimeValueValidatorDirective } from './lib/time-value-validator.directive';\n\n// testing files\nexport { MuziehComponentHarness } from './lib/testing/muzieh-component-harness';\nexport { ResultTableHarness } from './lib/testing/result-table-harness';\n\n// alert\nexport { AlertComponent } from './lib/alert/alert.component';\n\n// sort\nexport { SortKeyDirective } from './lib/sort-key.directive';\nexport { SortDirective } from './lib/sort.directive';\nexport { ButtonDirective } from './lib/button.directive';\nexport { SortEvent } from './lib/models/sort-event';\n\nexport { WizardStepLink } from './lib/models/wizard-step-link';\nexport { WizardProgressTrackerComponent } from './lib/wizard-progress-tracker/wizard-progress-tracker.component';\nexport { InlineMessageComponent } from './lib/inline-message/inline-message.component';\nexport { InlineMessageDialogComponent } from './lib/inline-message/inline-message-dialog/inline-message-dialog.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i1.SortDirective"],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { AfterViewInit, EventEmitter, Renderer2 } from '@angular/core';
2
+ import { NgModel } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ export declare class InlineEditComponent implements AfterViewInit {
5
+ private renderer;
6
+ isEditing: boolean;
7
+ busy: boolean;
8
+ label?: string;
9
+ layout: 'form' | 'field';
10
+ save: EventEmitter<any>;
11
+ ngModel: NgModel;
12
+ private ngModelElement?;
13
+ originalValue: unknown;
14
+ constructor(renderer: Renderer2);
15
+ ngAfterViewInit(): void;
16
+ activate(): void;
17
+ submitForm(): void;
18
+ cancelEdit(): void;
19
+ exitEdit(): void;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<InlineEditComponent, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<InlineEditComponent, "mz-inline-edit", never, { "label": { "alias": "label"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; }, { "save": "save"; }, ["ngModel", "ngModelElement"], ["*"], true, never>;
22
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@muziehdesign/components",
3
- "version": "18.2.0-next.1990",
3
+ "version": "18.2.0-next.1998",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.1.1",
6
6
  "@angular/core": "^18.1.1",
package/public-api.d.ts CHANGED
@@ -7,6 +7,7 @@ export { PageLoadingIndicatorComponent } from './lib/page-loading-indicator/page
7
7
  export { PageHeaderComponent } from './lib/page-header/page-header.component';
8
8
  export { PhoneNumberPipe } from './lib/phone-number/phone-number.pipe';
9
9
  export { DateDisplayPipe } from './lib/date-display/date-display.pipe';
10
+ export { InlineEditComponent } from './lib/inline-edit/inline-edit.component';
10
11
  export { SubjectDisplayPipe } from './lib/subject-display/subject-display.pipe';
11
12
  export { Subject } from './lib/models/subject';
12
13
  export { ResultTableComponent } from './lib/result-table/result-table.component';