@muziehdesign/components 19.2.8-beta.2639 → 19.2.8-beta.2643
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.
|
@@ -152,26 +152,23 @@ class MzPaginationConfig {
|
|
|
152
152
|
|
|
153
153
|
class MzPagination {
|
|
154
154
|
constructor(paginationOptions) {
|
|
155
|
+
this.paginationOptions = paginationOptions;
|
|
155
156
|
this.totalItems = 0;
|
|
156
157
|
this.pageNumber = 1;
|
|
157
158
|
this.changePage = new EventEmitter();
|
|
158
159
|
this.pages = [];
|
|
159
160
|
this.pageCount = 1;
|
|
160
161
|
this.options = paginationOptions || new MzPaginationConfig();
|
|
161
|
-
this.
|
|
162
|
+
this.pageSizeOptions = this.options.pageSizeOptions;
|
|
163
|
+
this.pageSize = this.pageSizeOptions[0];
|
|
164
|
+
this.updatePages(this.pageNumber, this.totalItems, this.pageSize);
|
|
162
165
|
}
|
|
163
166
|
ngOnChanges() {
|
|
164
|
-
this.updatePages(this.pageNumber, this.totalItems, this.
|
|
167
|
+
this.updatePages(this.pageNumber, this.totalItems, this.pageSize);
|
|
165
168
|
}
|
|
166
169
|
isEllipsis(v) {
|
|
167
170
|
return v === -1;
|
|
168
171
|
}
|
|
169
|
-
getPageSize() {
|
|
170
|
-
return this.pageSize || this.options.pageSize;
|
|
171
|
-
}
|
|
172
|
-
getPageSizeOptions() {
|
|
173
|
-
return this.pageSizeOptions || this.options.pageSizeOptions;
|
|
174
|
-
}
|
|
175
172
|
changePageNumber(newValue) {
|
|
176
173
|
if (newValue == this.pageNumber || newValue < 1 || newValue > this.pageCount) {
|
|
177
174
|
return;
|
|
@@ -219,11 +216,11 @@ class MzPagination {
|
|
|
219
216
|
this.pages = pageNumbers;
|
|
220
217
|
}
|
|
221
218
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: MzPagination, deps: [{ token: MZ_PAGINATION_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
222
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: MzPagination, isStandalone: true, selector: "mz-pagination", inputs: { totalItems: "totalItems", pageNumber: "pageNumber",
|
|
219
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: MzPagination, isStandalone: true, selector: "mz-pagination", inputs: { totalItems: "totalItems", pageNumber: "pageNumber", scrollTo: "scrollTo", pageSizeOptions: "pageSizeOptions", pageSize: "pageSize" }, outputs: { changePage: "changePage" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"pagination-wrapper\">\n <nav class=\"pagination-nav\" aria-label=\"pagination\">\n <button class=\"page-link page-icon-link\" [class.disabled]=\"pageNumber === 1\" (click)=\"changePageNumber(pageNumber - 1)\" aria-label=\"Previous page\">\n <mz-svg-icon key=\"chevron-left-solid\"></mz-svg-icon>\n </button>\n @for(p of pages; track $index) {\n @if(isEllipsis(p)) {\n <span class=\"page-ellipsis page-link disabled\">...</span>\n } @else {\n <button class=\"page-link\" [class.active]=\"p === pageNumber\" (click)=\"changePageNumber(p)\">{{ p }}</button>\n }\n }\n\n <button class=\"page-link page-icon-link\" [class.disabled]=\"pageNumber === pageCount\" (click)=\"changePageNumber(pageNumber + 1)\" aria-label=\"Next page\">\n <mz-svg-icon key=\"chevron-right-solid\"></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 @for(size of pageSizeOptions; track size) {\n <option [attr.selected]=\"pageSize == size ? true : null\" [value]=\"size\">{{ size }}</option>\n }\n </select>\n per page\n </div>\n</div>\n", styles: [":root{--color-primary: #1d4ed8;--color-secondary: #374151;--color-success: #15803d;--color-danger: #b91c1c;--color-warning: #a16207;--color-neutral-50: #f9fafb;--color-neutral-100: #f3f4f6;--color-neutral-200: #e5e7eb;--color-neutral-300: #d1d5db;--color-neutral-400: #9ca3af;--color-neutral-500: #6b7280;--color-neutral-600: #4b5563;--color-neutral-700: #374151;--color-neutral-800: #1f2937;--color-neutral-900: #111827;--color-neutral-950: #030712;--color-brand-50: #eff6ff;--color-brand-100: #dbeafe;--color-brand-200: #bfdbfe;--color-brand-300: #93c5fd;--color-brand-400: #60a5fa;--color-brand-500: #3b82f6;--color-brand-600: #2563eb;--color-brand-700: #1d4ed8;--color-brand-800: #1e40af;--color-brand-900: #1e3a8a;--color-brand-950: #172554;--color-green-50: #f0fdf4;--color-green-100: #dcfce7;--color-green-200: #bbf7d0;--color-green-300: #86efac;--color-green-400: #4ade80;--color-green-500: #22c55e;--color-green-600: #16a34a;--color-green-700: #15803d;--color-green-800: #166534;--color-green-900: #14532d;--color-green-950: #052e16;--color-red-50: #fef2f2;--color-red-100: #fee2e2;--color-red-200: #fecaca;--color-red-300: #fca5a5;--color-red-400: #f87171;--color-red-500: #ef4444;--color-red-600: #dc2626;--color-red-700: #b91c1c;--color-red-800: #991b1b;--color-red-900: #7f1d1d;--color-red-950: #450a0a;--color-yellow-50: #fefce8;--color-yellow-100: #fef9c3;--color-yellow-200: #fef08a;--color-yellow-300: #fde047;--color-yellow-400: #facc15;--color-yellow-500: #eab308;--color-yellow-600: #ca8a04;--color-yellow-700: #a16207;--color-yellow-800: #854d0e;--color-yellow-900: #713f12;--color-yellow-950: #422006;--border-radius: 0px;--surface-bg: #fff;--surface-border-radius: 0rem;--button-border-radius: 0rem}.pagination-wrapper{display:flex;justify-content:center;color:var(--text-subtlest);gap:1.25rem}.pagination-nav{display:flex;justify-content:center;flex-grow:1;padding-left:1rem;padding-right:1rem}.page-link{display:flex;cursor:pointer;padding:1rem;font-weight:500;color:var(--color-neutral-600)}.page-link:hover{color:var(--color-primary)}.page-link.active{color:var(--color-primary);font-weight:bolder;cursor:default}.page-link.disabled{color:var(--color-neutral-400);cursor:default;text-decoration:none}.pagination-size{color:var(--color-neutral-500);padding:1rem;font-size:.875rem;line-height:1.4285714286;margin-left:auto;display:none;flex-grow:0}@media (min-width: 1024px){.pagination-size{display:inline-block}}.page-size-control{padding:0rem 1.75rem 0rem .125rem;margin-left:.25rem;margin-right:.25rem}\n"], dependencies: [{ kind: "component", type: SvgIconComponent, selector: "mz-svg-icon", inputs: ["key", "type", "size"] }] }); }
|
|
223
220
|
}
|
|
224
221
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: MzPagination, decorators: [{
|
|
225
222
|
type: Component,
|
|
226
|
-
args: [{ selector: 'mz-pagination', imports: [SvgIconComponent], template: "<div class=\"pagination-wrapper\">\n <nav class=\"pagination-nav\" aria-label=\"pagination\">\n <button class=\"page-link page-icon-link\" [class.disabled]=\"pageNumber === 1\" (click)=\"changePageNumber(pageNumber - 1)\" aria-label=\"Previous page\">\n <mz-svg-icon key=\"chevron-left-solid\"></mz-svg-icon>\n </button>\n @for(p of pages; track $index) {\n @if(isEllipsis(p)) {\n <span class=\"page-ellipsis page-link disabled\">...</span>\n } @else {\n <button class=\"page-link\" [class.active]=\"p === pageNumber\" (click)=\"changePageNumber(p)\">{{ p }}</button>\n }\n }\n\n <button class=\"page-link page-icon-link\" [class.disabled]=\"pageNumber === pageCount\" (click)=\"changePageNumber(pageNumber + 1)\" aria-label=\"Next page\">\n <mz-svg-icon key=\"chevron-right-solid\"></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 @for(size of
|
|
223
|
+
args: [{ selector: 'mz-pagination', imports: [SvgIconComponent], template: "<div class=\"pagination-wrapper\">\n <nav class=\"pagination-nav\" aria-label=\"pagination\">\n <button class=\"page-link page-icon-link\" [class.disabled]=\"pageNumber === 1\" (click)=\"changePageNumber(pageNumber - 1)\" aria-label=\"Previous page\">\n <mz-svg-icon key=\"chevron-left-solid\"></mz-svg-icon>\n </button>\n @for(p of pages; track $index) {\n @if(isEllipsis(p)) {\n <span class=\"page-ellipsis page-link disabled\">...</span>\n } @else {\n <button class=\"page-link\" [class.active]=\"p === pageNumber\" (click)=\"changePageNumber(p)\">{{ p }}</button>\n }\n }\n\n <button class=\"page-link page-icon-link\" [class.disabled]=\"pageNumber === pageCount\" (click)=\"changePageNumber(pageNumber + 1)\" aria-label=\"Next page\">\n <mz-svg-icon key=\"chevron-right-solid\"></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 @for(size of pageSizeOptions; track size) {\n <option [attr.selected]=\"pageSize == size ? true : null\" [value]=\"size\">{{ size }}</option>\n }\n </select>\n per page\n </div>\n</div>\n", styles: [":root{--color-primary: #1d4ed8;--color-secondary: #374151;--color-success: #15803d;--color-danger: #b91c1c;--color-warning: #a16207;--color-neutral-50: #f9fafb;--color-neutral-100: #f3f4f6;--color-neutral-200: #e5e7eb;--color-neutral-300: #d1d5db;--color-neutral-400: #9ca3af;--color-neutral-500: #6b7280;--color-neutral-600: #4b5563;--color-neutral-700: #374151;--color-neutral-800: #1f2937;--color-neutral-900: #111827;--color-neutral-950: #030712;--color-brand-50: #eff6ff;--color-brand-100: #dbeafe;--color-brand-200: #bfdbfe;--color-brand-300: #93c5fd;--color-brand-400: #60a5fa;--color-brand-500: #3b82f6;--color-brand-600: #2563eb;--color-brand-700: #1d4ed8;--color-brand-800: #1e40af;--color-brand-900: #1e3a8a;--color-brand-950: #172554;--color-green-50: #f0fdf4;--color-green-100: #dcfce7;--color-green-200: #bbf7d0;--color-green-300: #86efac;--color-green-400: #4ade80;--color-green-500: #22c55e;--color-green-600: #16a34a;--color-green-700: #15803d;--color-green-800: #166534;--color-green-900: #14532d;--color-green-950: #052e16;--color-red-50: #fef2f2;--color-red-100: #fee2e2;--color-red-200: #fecaca;--color-red-300: #fca5a5;--color-red-400: #f87171;--color-red-500: #ef4444;--color-red-600: #dc2626;--color-red-700: #b91c1c;--color-red-800: #991b1b;--color-red-900: #7f1d1d;--color-red-950: #450a0a;--color-yellow-50: #fefce8;--color-yellow-100: #fef9c3;--color-yellow-200: #fef08a;--color-yellow-300: #fde047;--color-yellow-400: #facc15;--color-yellow-500: #eab308;--color-yellow-600: #ca8a04;--color-yellow-700: #a16207;--color-yellow-800: #854d0e;--color-yellow-900: #713f12;--color-yellow-950: #422006;--border-radius: 0px;--surface-bg: #fff;--surface-border-radius: 0rem;--button-border-radius: 0rem}.pagination-wrapper{display:flex;justify-content:center;color:var(--text-subtlest);gap:1.25rem}.pagination-nav{display:flex;justify-content:center;flex-grow:1;padding-left:1rem;padding-right:1rem}.page-link{display:flex;cursor:pointer;padding:1rem;font-weight:500;color:var(--color-neutral-600)}.page-link:hover{color:var(--color-primary)}.page-link.active{color:var(--color-primary);font-weight:bolder;cursor:default}.page-link.disabled{color:var(--color-neutral-400);cursor:default;text-decoration:none}.pagination-size{color:var(--color-neutral-500);padding:1rem;font-size:.875rem;line-height:1.4285714286;margin-left:auto;display:none;flex-grow:0}@media (min-width: 1024px){.pagination-size{display:inline-block}}.page-size-control{padding:0rem 1.75rem 0rem .125rem;margin-left:.25rem;margin-right:.25rem}\n"] }]
|
|
227
224
|
}], ctorParameters: () => [{ type: MzPaginationConfig, decorators: [{
|
|
228
225
|
type: Optional
|
|
229
226
|
}, {
|
|
@@ -235,12 +232,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
|
|
|
235
232
|
}], pageNumber: [{
|
|
236
233
|
type: Input,
|
|
237
234
|
args: [{ required: true }]
|
|
238
|
-
}], pageSize: [{
|
|
239
|
-
type: Input
|
|
240
235
|
}], scrollTo: [{
|
|
241
236
|
type: Input
|
|
242
237
|
}], pageSizeOptions: [{
|
|
243
238
|
type: Input
|
|
239
|
+
}], pageSize: [{
|
|
240
|
+
type: Input
|
|
244
241
|
}], changePage: [{
|
|
245
242
|
type: Output
|
|
246
243
|
}] } });
|
|
@@ -273,7 +270,7 @@ class ResultTableComponent {
|
|
|
273
270
|
return !this.model || this.model.items.length === 0;
|
|
274
271
|
}
|
|
275
272
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ResultTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
276
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: ResultTableComponent, isStandalone: true, selector: "mz-result-table", inputs: { loading: "loading", error: "error", model: "model", pageSizeOptions: "pageSizeOptions", options: "options" }, outputs: { pageChange: "pageChange" }, queries: [{ propertyName: "headerTemplate", first: true, predicate: ["headerTemplate"], descendants: true }, { propertyName: "bodyTemplate", first: true, predicate: ["bodyTemplate"], descendants: true }], ngImport: i0, template: "<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 [totalItems]=\"model!.totalItems\" [pageNumber]=\"model!.pageNumber\" [pageSize]=\"model!.pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [scrollTo]=\"tableRef\"\n (changePage)=\"changePage($event)\"></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-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", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MzPagination, selector: "mz-pagination", inputs: ["totalItems", "pageNumber", "
|
|
273
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: ResultTableComponent, isStandalone: true, selector: "mz-result-table", inputs: { loading: "loading", error: "error", model: "model", pageSizeOptions: "pageSizeOptions", options: "options" }, outputs: { pageChange: "pageChange" }, queries: [{ propertyName: "headerTemplate", first: true, predicate: ["headerTemplate"], descendants: true }, { propertyName: "bodyTemplate", first: true, predicate: ["bodyTemplate"], descendants: true }], ngImport: i0, template: "<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 [totalItems]=\"model!.totalItems\" [pageNumber]=\"model!.pageNumber\" [pageSize]=\"model!.pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [scrollTo]=\"tableRef\"\n (changePage)=\"changePage($event)\"></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-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", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MzPagination, selector: "mz-pagination", inputs: ["totalItems", "pageNumber", "scrollTo", "pageSizeOptions", "pageSize"], outputs: ["changePage"] }, { kind: "component", type: MzSpinner, selector: "mz-spinner", inputs: ["size", "appearance"] }, { kind: "component", type: SvgIconComponent, selector: "mz-svg-icon", inputs: ["key", "type", "size"] }] }); }
|
|
277
274
|
}
|
|
278
275
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ResultTableComponent, decorators: [{
|
|
279
276
|
type: Component,
|
|
@@ -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-config.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/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/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/date-display/date-display-config.ts","../../../projects/components/src/lib/date-display/date.pipe.ts","../../../projects/components/src/lib/button/button.component.ts","../../../projects/components/src/lib/button/button.component.html","../../../projects/components/src/lib/inline-edit/inline-edit.component.ts","../../../projects/components/src/lib/inline-edit/inline-edit.component.html","../../../projects/components/src/lib/async/async.component.ts","../../../projects/components/src/lib/async/async.component.html","../../../projects/components/src/lib/async/async-error.directive.ts","../../../projects/components/src/lib/async/async-loading.directive.ts","../../../projects/components/src/lib/testing/muzieh-component-harness.ts","../../../projects/components/src/lib/testing/result-table-harness.ts","../../../projects/components/src/lib/drawer/drawer-injectors.ts","../../../projects/components/src/lib/drawer/drawer-config.ts","../../../projects/components/src/lib/drawer/container/drawer-container.component.ts","../../../projects/components/src/lib/drawer/container/drawer-container.component.html","../../../projects/components/src/lib/guard-deactivate.ts","../../../projects/components/src/lib/drawer/drawer-ref.ts","../../../projects/components/src/lib/drawer/drawer.ts","../../../projects/components/src/lib/drawer/drawer-header/drawer-header.component.ts","../../../projects/components/src/lib/drawer/drawer-header/drawer-header.component.html","../../../projects/components/src/lib/drawer/drawer-content/drawer-content.component.ts","../../../projects/components/src/lib/drawer/drawer-content/drawer-content.component.html","../../../projects/components/src/lib/drawer/drawer-footer/drawer-footer.component.ts","../../../projects/components/src/lib/drawer/drawer-footer/drawer-footer.component.html","../../../projects/components/src/lib/drawer/drawer.module.ts","../../../projects/components/src/lib/dialog/dialog-container/dialog-container.component.ts","../../../projects/components/src/lib/dialog/dialog-container/dialog-container.component.html","../../../projects/components/src/lib/dialog/dialog-header/dialog-header.component.ts","../../../projects/components/src/lib/dialog/dialog-header/dialog-header.component.html","../../../projects/components/src/lib/dialog/dialog-footer/dialog-footer.component.ts","../../../projects/components/src/lib/dialog/dialog-footer/dialog-footer.component.html","../../../projects/components/src/lib/dialog/dialog-content/dialog-content.component.ts","../../../projects/components/src/lib/dialog/dialog-content/dialog-content.component.html","../../../projects/components/src/lib/dialog/message-dialog/message-dialog.component.ts","../../../projects/components/src/lib/dialog/message-dialog/message-dialog.component.html","../../../projects/components/src/lib/dialog/dialog-config.ts","../../../projects/components/src/lib/dialog/dialog.ts","../../../projects/components/src/lib/dialog/dialog.module.ts","../../../projects/components/src/lib/filter/filter.component.ts","../../../projects/components/src/lib/filter/filter.component.html","../../../projects/components/src/lib/options-filter/options-filter.component.ts","../../../projects/components/src/lib/options-filter/options-filter.component.html","../../../projects/components/src/lib/filter/filter-menu/filter-menu.component.ts","../../../projects/components/src/lib/filter/filter-menu/filter-menu.component.html","../../../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, HostBinding, 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 host: {\n 'role': 'img',\n '[attr.data-icon-name]': 'key',\n }\n})\nexport class SvgIconComponent {\n @Input() key!: string;\n /**\n * @deprecated Pass in whole key instead.\n */\n @Input() type: 'outline' | 'solid' | string = '';\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 @HostBinding('class')\n get classes(): string {\n if(this.type) {\n return `icon icon-${this.type} icon-${this.size}`;\n }\n return `icon icon-${this.size}`;\n }\n}","<svg xmlns=\"http://www.w3.org/2000/svg\" 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 { Component, HostBinding, Input, input } from '@angular/core';\n\n@Component({\n selector: 'mz-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss'],\n imports: [],\n})\nexport class MzSpinner {\n @Input() size: SpinnerSize = 'medium';\n @Input() appearance: SpinnerAppearance = 'primary';\n\n @HostBinding('class')\n get elementClass(): string {\n return [`${this.size}`, `${this.appearance}`].join(' ');\n }\n}\n\nexport type SpinnerSize = 'medium' | 'large';\nexport type SpinnerAppearance = 'primary' | 'secondary';\n","<svg class=\"mz-spinner\" 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","import { InjectionToken } from \"@angular/core\";\n\nexport const MZ_PAGINATION_DEFAULT_OPTIONS = new InjectionToken<MzPaginationConfig>('MZ_PAGINATION_DEFAULT_OPTIONS');\n\nexport class MzPaginationConfig {\n pageSize: number = 20;\n pageSizeOptions: number[] = [20, 50, 100];\n}","import { Component, EventEmitter, Inject, Input, OnChanges, Optional, Output } from '@angular/core';\nimport { PageEvent } from '../models/page-event';\nimport { SvgIconComponent } from '../svg-icon/svg-icon.component';\nimport { MZ_PAGINATION_DEFAULT_OPTIONS, MzPaginationConfig } from './pagination-config';\n\n@Component({\n selector: 'mz-pagination',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.scss'],\n imports: [SvgIconComponent],\n})\nexport class MzPagination implements OnChanges {\n @Input({ required: true }) totalItems: number = 0;\n @Input({ required: true }) pageNumber: number = 1;\n @Input() pageSize?: number;\n @Input() scrollTo?: HTMLElement;\n @Input() pageSizeOptions?: number[];\n\n @Output() public changePage = new EventEmitter<PageEvent>();\n\n pages: number[] = [];\n pageCount: number = 1;\n protected options: MzPaginationConfig;\n\n constructor(@Optional() @Inject(MZ_PAGINATION_DEFAULT_OPTIONS) paginationOptions: MzPaginationConfig) {\n this.options = paginationOptions || new MzPaginationConfig();\n\n this.updatePages(this.pageNumber, this.totalItems, this.getPageSize());\n }\n\n ngOnChanges(): void {\n this.updatePages(this.pageNumber, this.totalItems, this.getPageSize());\n }\n\n protected isEllipsis(v: number) {\n return v === -1;\n }\n\n protected getPageSize(): number {\n return this.pageSize || this.options.pageSize;\n }\n\n protected getPageSizeOptions(): number[] {\n return this.pageSizeOptions || this.options.pageSizeOptions;\n }\n\n changePageNumber(newValue: number) {\n if (newValue == this.pageNumber || newValue < 1 || newValue > this.pageCount) {\n return;\n }\n this.scrollTo?.scrollIntoView({ behavior: 'instant', block: 'start' });\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.scrollTo?.scrollIntoView({ behavior: 'instant', block: 'start' });\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 page-icon-link\" [class.disabled]=\"pageNumber === 1\" (click)=\"changePageNumber(pageNumber - 1)\" aria-label=\"Previous page\">\n <mz-svg-icon key=\"chevron-left-solid\"></mz-svg-icon>\n </button>\n @for(p of pages; track $index) {\n @if(isEllipsis(p)) {\n <span class=\"page-ellipsis page-link disabled\">...</span>\n } @else {\n <button class=\"page-link\" [class.active]=\"p === pageNumber\" (click)=\"changePageNumber(p)\">{{ p }}</button>\n }\n }\n\n <button class=\"page-link page-icon-link\" [class.disabled]=\"pageNumber === pageCount\" (click)=\"changePageNumber(pageNumber + 1)\" aria-label=\"Next page\">\n <mz-svg-icon key=\"chevron-right-solid\"></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 @for(size of getPageSizeOptions(); track size) {\n <option [attr.selected]=\"getPageSize() == size ? true : null\" [value]=\"size\">{{ size }}</option>\n }\n </select>\n per page\n </div>\n</div>\n","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 { MzPagination } from '../pagination/pagination.component';\nimport { MzSpinner } 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, MzPagination, MzSpinner, SvgIconComponent]\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[] = [20, 50, 100];\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) {\n this.pageChange.emit(page);\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 [totalItems]=\"model!.totalItems\" [pageNumber]=\"model!.pageNumber\" [pageSize]=\"model!.pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [scrollTo]=\"tableRef\"\n (changePage)=\"changePage($event)\"></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-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 { Component, Input, 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';\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: []\n})\nexport class PageLoadingIndicatorComponent implements OnInit {\n @Input() isLoading: boolean = false;\n expectedMilisecondsDelay = 1000;\n\n constructor(private router: Router) {}\n\n ngOnInit(): void {\n const endObs$ = this.router.events.pipe(filter((e) => e instanceof NavigationEnd || e instanceof NavigationCancel || e instanceof NavigationError));\n\n race(\n this.router.events.pipe(\n filter((e) => e instanceof NavigationStart),\n delay(this.expectedMilisecondsDelay)\n ),\n endObs$\n )\n .pipe(take(1), repeat())\n .subscribe((x) => (this.isLoading = x instanceof NavigationStart));\n\n // the flag need to be reset to false when the page finishes loading\n endObs$.subscribe(() => (this.isLoading = false));\n }\n}\n","<div class=\"progress-bar-container\" [class.loading]=\"isLoading\">\n <div class=\"progress-bar\"></div>\n <div class=\"progress-bar-value\"></div>\n</div>\n","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 { 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})\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-solid';\n } else if (this.type === 'success') {\n icon = 'check-circle-solid';\n } else if (this.type === 'error') {\n icon = 'x-circle-solid';\n } else if (this.type === 'warning') {\n icon = 'exclamation-triangle-solid';\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()\"></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/**\n * @deprecated use mzDate instead\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}","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): string | null {\n if (!subject) {\n return 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/**\n * @deprecated Use MzButton component instead: `<button mz-button appearance=\"primary\">...</button>`\n */\n@Directive({\n selector: '[mzButton]',\n standalone: true,\n host: {\n role: 'button',\n '[attr.tabindex]': '0',\n '[attr.aria-busy]': '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 { 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 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\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-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-solid\"></mz-svg-icon>\n </button>\n <button *ngIf=\"toggled\" (click)=\"toggle()\">\n <mz-svg-icon key=\"chevron-up-solid\"></mz-svg-icon>\n </button>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, ContentChild, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { MzSpinner } from '../spinner/spinner.component';\n\n@Component({\n selector: 'mz-infinite-scroll',\n imports: [CommonModule, MzSpinner],\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\" type=\"secondary\"></mz-spinner>\n </div>\n</div>\n","import { CommonModule, DatePipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MzSpinner } 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 { MzPagination } from './pagination/pagination.component';\nimport { PageLoadingIndicatorComponent } from './page-loading-indicator/page-loading-indicator.component';\nimport { PageHeaderComponent } from './page-header/page-header.component';\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 { InfiniteScrollComponent } from './infinite-scroll/infinite-scroll.component';\n\n/**\n * @deprecated Import components and component modules separately.\n */\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ButtonDirective,\n SvgIconComponent,\n MzSpinner,\n WizardProgressTrackerComponent,\n AlertComponent,\n EnumDisplayPipe,\n ResultTableComponent,\n InfiniteScrollComponent,\n MzPagination,\n PageLoadingIndicatorComponent,\n PageHeaderComponent,\n DateDisplayPipe,\n PhoneNumberPipe,\n SortKeyDirective,\n SortDirective,\n SubjectDisplayPipe,\n ],\n exports: [\n EnumDisplayPipe,\n MzSpinner,\n SvgIconComponent,\n ResultTableComponent,\n InfiniteScrollComponent,\n MzPagination,\n PageLoadingIndicatorComponent,\n PageHeaderComponent,\n DateDisplayPipe,\n AlertComponent,\n PhoneNumberPipe,\n SortKeyDirective,\n SortDirective,\n SubjectDisplayPipe,\n ButtonDirective,\n WizardProgressTrackerComponent,\n ],\n providers: [\n DatePipe,\n ]\n})\nexport class MuziehComponentsModule { }\n","import { DatePipeConfig } from \"@angular/common\";\nimport { InjectionToken } from \"@angular/core\"\n\nexport const DATE_PIPE_CONFIG_OPTIONS = Object.freeze({\n formats: new Map<string, string>([\n ['short', 'MM/dd/yyyy hh:mm a'],\n ['medium', 'MMM d y h:mm:ss a'],\n ['shortDate', 'MM/dd/yyyy'],\n ['mediumDate', 'MMM d y']\n ]),\n dateFormat: 'MM/dd/yyyy hh:mm a'\n} satisfies MzDatePipeConfig);\n\nexport interface MzDatePipeConfig extends DatePipeConfig {\n formats: Map<string, string>\n}\n\nexport const MZ_DATE_PIPE_DEFAULT_OPTIONS = new InjectionToken<MzDatePipeConfig>('MzDateDisplayDefaultOptions');","import { DatePipe } from '@angular/common';\nimport { Inject, LOCALE_ID, Optional, Pipe } from '@angular/core';\nimport { DATE_PIPE_CONFIG_OPTIONS, MZ_DATE_PIPE_DEFAULT_OPTIONS, MzDatePipeConfig } from './date-display-config';\n\n@Pipe({\n name: 'mzDate',\n standalone: true,\n})\nexport class MzDatePipe extends DatePipe {\n private options: MzDatePipeConfig;\n constructor(@Inject(LOCALE_ID) locale: string, @Optional() @Inject(MZ_DATE_PIPE_DEFAULT_OPTIONS) defaultMzOptions?: MzDatePipeConfig | null) {\n const o = defaultMzOptions || DATE_PIPE_CONFIG_OPTIONS;\n super(locale, null, o);\n this.options = o;\n }\n override transform(value: string | number | Date, format?: string | undefined, timezone?: string | undefined, locale?: string | undefined): string | null;\n override transform(value: null | undefined, format?: string | undefined, timezone?: string | undefined, locale?: string | undefined): null;\n override transform(value: string | number | Date | null | undefined, format?: string | undefined, timezone?: string | undefined, locale?: string | undefined): string | null;\n override transform(value: Date | string | number | null | undefined, format?: string, timezone?: string, locale?: string): string | null {\n let translatedFormat = format;\n let translatedTimezone = timezone;\n\n if (format) {\n translatedFormat = this.options.formats.get(format) || format;\n }\n if(timezone === 'original' && typeof value === 'string') {\n const match = value.match(/([+-]\\d{2}:\\d{2})$/);\n translatedTimezone = match ? match[1] : '+00:00';\n }\n\n return super.transform(value, translatedFormat, translatedTimezone, locale);\n }\n}\n","import { booleanAttribute, Component, ElementRef, HostBinding, input } from '@angular/core';\nimport { ButtonAppearance } from './button-appearance';\n\n@Component({\n selector: 'button[mz-button], a[mz-button], button[mzButton], a[mzButton]',\n imports: [],\n templateUrl: './button.component.html',\n styleUrl: './button.component.scss',\n})\nexport class MzButton {\n appearance = input<ButtonAppearance>('secondary');\n busy = input(false);\n disabled = input(false, { transform: booleanAttribute });\n\n @HostBinding('class')\n get elementClass(): string {\n return ['button', `button-${this.appearance()}`, this.busy() ? 'busy' : ''].join(' ');\n }\n\n constructor(elementRef: ElementRef<HTMLElement>) {\n elementRef.nativeElement.addEventListener('click', (event) => {\n if (this.busy() || this.disabled()) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n return;\n }\n });\n }\n}\n","@if(busy()) {\n<span class=\"button--loading\">\n <svg class=\"button--loading-spinner\" xmlns=\"http://www.w3.org/2000/svg\" 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\" 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\"></path>\n </svg>\n</span>\n}\n<span class=\"button--label\">\n <ng-content></ng-content>\n</span>\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 { MzButton } from '../button/button.component';\n\n@Component({\n selector: 'mz-inline-edit',\n imports: [MzButton, FormsModule, CommonModule],\n templateUrl: './inline-edit.component.html',\n styleUrl: './inline-edit.component.scss'\n})\nexport class MzInlineEditComponent implements AfterViewInit {\n isEditing = false;\n busy = false;\n @Input() label?: string;\n @Input() layout: 'horizontal' | 'vertical' = 'horizontal';\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","<form class=\"mz-inline-edit\" [ngClass]=\"{ 'horizontal': layout === 'horizontal', 'vertical': layout === 'vertical' }\">\n @if (isEditing || !label) {\n <ng-content></ng-content>\n } @else if (label && !isEditing) {\n <button type=\"button\" class=\"label-button\" (click)=\"activate()\">\n <span>\n {{ label }}\n </span>\n <span class=\"text-secondary label-button-icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\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 } @if (isEditing) {\n <div class=\"edit-buttons\">\n <button type=\"submit\" mz-button [busy]=\"busy\" (click)=\"submitForm()\">Save</button>\n <button type=\"button\" mz-button appearance=\"subtle\" (click)=\"cancelEdit()\">Cancel</button>\n </div>\n }\n</form>\n","import { Component, input } from '@angular/core';\n\n@Component({\n selector: 'mz-async',\n imports: [],\n templateUrl: './async.component.html',\n styleUrl: './async.component.scss'\n})\nexport class MzAsync {\n isLoading = input(false);\n error = input<Error | undefined>(undefined);\n}\n","@if(isLoading()) {\n<div class=\"loading-content\">\n <ng-content select=\"[mzAsyncLoading]\"></ng-content>\n</div>\n<div class=\"loading-content\">Default loading look...</div>\n} @else if(error()) {\n<div class=\"error-content\">\n <ng-content select=\"[mzAsyncError]\"></ng-content>\n</div>\n<div class=\"error-content\">Default error look...</div>\n} @else {\n<ng-content select=\"[mzAsyncSuccess]\"></ng-content>\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[mzAsyncError]'\n})\nexport class MzAsyncError {\n\n constructor() { }\n\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[mzAsyncLoading]'\n})\nexport class MzAsyncLoading {\n\n constructor() { }\n\n}\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","import { InjectionToken } from \"@angular/core\";\nimport { MzDrawerConfig } from \"./drawer-config\";\n\n/** Injection token that can be used to provide default options for the dialog module. */\nexport const DEFAULT_MZ_DRAWER_CONFIG = new InjectionToken<MzDrawerConfig>('DefaultMzDrawerConfig');\n\nexport const MZ_DRAWER_DATA = new InjectionToken<any>('MzDrawerData');\n","import { Direction } from \"@angular/cdk/bidi\";\nimport { AutoFocusTarget, DialogRole } from \"@angular/cdk/dialog\";\nimport { PositionStrategy, ScrollStrategy } from \"@angular/cdk/overlay\";\nimport { BasePortalOutlet } from \"@angular/cdk/portal\";\nimport { Injector, Type, ViewContainerRef } from \"@angular/core\";\n\n/**\n * Configuration opening a modal dialog with the MzDrawer service. Properties here are exposes what's available in @angular/cdk DialogConfig\n * and with a few additional properties for MzDrawer.\n * See https://material.angular.io/cdk/dialog/api#DialogConfig\n */\nexport class MzDrawerConfig<D = any, C extends BasePortalOutlet = BasePortalOutlet> {\n /**\n * Where the attached component should live in Angular's *logical* component tree.\n * This affects what is available for injection and the change detection order for the\n * component instantiated inside of the dialog. This does not affect where the dialog\n * content will be rendered.\n */\n viewContainerRef?: ViewContainerRef;\n\n /**\n * Injector used for the instantiation of the component to be attached. If provided,\n * takes precedence over the injector indirectly provided by `ViewContainerRef`.\n */\n injector?: Injector;\n\n /** ID for the dialog. If omitted, a unique one will be generated. */\n id?: string;\n\n /** The ARIA role of the dialog element. */\n role?: DialogRole = 'dialog';\n\n /** Optional CSS class or classes applied to the overlay panel. */\n panelClass?: string | string[] = '';\n\n /** Whether the dialog has a backdrop. */\n hasBackdrop?: boolean = true;\n\n /** Optional CSS class or classes applied to the overlay backdrop. */\n backdropClass?: string | string[] = '';\n\n /** Whether the dialog closes with the escape key or pointer events outside the panel element. */\n disableClose?: boolean = false;\n\n /** Width of the dialog. */\n width?: string = '';\n\n /** Height of the dialog. */\n height?: string = '';\n\n /** Min-width of the dialog. If a number is provided, assumes pixel units. */\n minWidth?: number | string;\n\n /** Min-height of the dialog. If a number is provided, assumes pixel units. */\n minHeight?: number | string;\n\n /** Max-width of the dialog. If a number is provided, assumes pixel units. Defaults to 80vw. */\n maxWidth?: number | string;\n\n /** Max-height of the dialog. If a number is provided, assumes pixel units. */\n maxHeight?: number | string;\n\n /** Strategy to use when positioning the dialog. Defaults to centering it on the page. */\n positionStrategy?: PositionStrategy;\n\n /** Data being injected into the child component. */\n data?: D | null = null;\n\n /** Layout direction for the dialog's content. */\n direction?: Direction;\n\n /** ID of the element that describes the dialog. */\n ariaDescribedBy?: string | null = null;\n\n /** ID of the element that labels the dialog. */\n ariaLabelledBy?: string | null = null;\n\n /** Dialog label applied via `aria-label` */\n ariaLabel?: string | null = null;\n\n /** Whether this is a modal dialog. Used to set the `aria-modal` attribute. */\n ariaModal?: boolean = true;\n\n /**\n * Where the dialog should focus on open.\n * @breaking-change 14.0.0 Remove boolean option from autoFocus. Use string or\n * AutoFocusTarget instead.\n */\n autoFocus?: AutoFocusTarget = 'first-tabbable';\n\n /**\n * Whether the dialog should restore focus to the previously-focused element upon closing.\n * Has the following behavior based on the type that is passed in:\n * - `boolean` - when true, will return focus to the element that was focused before the dialog\n * was opened, otherwise won't restore focus at all.\n * - `string` - focus will be restored to the first element that matches the CSS selector.\n * - `HTMLElement` - focus will be restored to the specific element.\n */\n restoreFocus?: boolean | string | HTMLElement = true;\n\n /**\n * Scroll strategy to be used for the dialog. This determines how\n * the dialog responds to scrolling underneath the panel element.\n */\n scrollStrategy?: ScrollStrategy;\n\n /**\n * Whether the dialog should close when the user goes backwards/forwards in history.\n */\n closeOnNavigation?: boolean;\n}","import { CdkDialogContainer } from '@angular/cdk/dialog';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { Component, ElementRef, HostListener, Inject, NgZone, Optional, ViewEncapsulation } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { FocusTrapFactory, InteractivityChecker } from '@angular/cdk/a11y';\nimport { MzDrawerConfig } from '../drawer-config';\nimport { MzDrawerRef } from '../drawer-ref';\n\n@Component({\n selector: 'mz-drawer-container',\n imports: [CdkPortalOutlet],\n templateUrl: './drawer-container.component.html',\n styleUrl: './drawer-container.component.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'mz-drawer-container'\n }\n})\nexport class MzDrawerContainer extends CdkDialogContainer<MzDrawerConfig> {\n\n private dialogRef?: MzDrawerRef<any>;\n protected open = false;\n\n constructor(private elementRef: ElementRef, focusTrapFactory: FocusTrapFactory, readonly dialogConfig: MzDrawerConfig, protected interactivityChecker: InteractivityChecker, protected ngZone: NgZone, protected overlayRef: OverlayRef, @Optional() @Inject(DOCUMENT) _document: any) {\n super(elementRef, focusTrapFactory, _document, dialogConfig, interactivityChecker, ngZone, overlayRef);\n }\n\n associateDialogRef(dialogRef: MzDrawerRef<any>): void {\n this.dialogRef = dialogRef;\n }\n\n @HostListener('window:beforeunload', ['$event'])\n onBeforeUnload(event: BeforeUnloadEvent) {\n if (!this.dialogRef?.confirmDeactivation()) {\n event.preventDefault();\n event.returnValue = '';\n }\n }\n\n protected override _contentAttached(): void {\n super._contentAttached();\n const element = this.elementRef.nativeElement as HTMLElement;\n\n // for styling purposes\n element.firstElementChild?.classList.add('mz-drawer-component');\n\n // for animation purposes\n element.classList.add('open');\n }\n}\n","<ng-template cdkPortalOutlet />\n","// TODO: this needs to move\nexport interface CanDeactivateComponent {\n canDeactivate(): boolean;\n confirmDeactivation(): boolean;\n}\n\nexport const hasImplementation = <T>(obj: any, func: keyof T): obj is T => {\n return obj && (obj as T)[func] !== undefined;\n};\n\nexport type ModifierKey = 'altKey' | 'shiftKey' | 'ctrlKey' | 'metaKey';\n\n/**\n * Checks whether a modifier key is pressed.\n * @param event Event to be checked.\n */\nexport function hasModifierKey(event: KeyboardEvent, ...modifiers: ModifierKey[]): boolean {\n if (modifiers.length) {\n return modifiers.some(modifier => event[modifier]);\n }\n\n return event.altKey || event.shiftKey || event.ctrlKey || event.metaKey;\n}\n","import { DialogCloseOptions, DialogRef } from \"@angular/cdk/dialog\";\nimport { MzDrawerConfig } from \"./drawer-config\";\nimport { BasePortalOutlet } from \"@angular/cdk/portal\";\nimport { Observable, filter, merge } from \"rxjs\";\nimport { CanDeactivateComponent, hasImplementation } from \"../guard-deactivate\";\n\nexport class MzDrawerRef<R, C = any> {\n /** Whether the user is allowed to close the dialog. */\n readonly disableClose: boolean | undefined;\n readonly id: string;\n\n constructor(readonly cdkRef: DialogRef<R, C>, readonly config: MzDrawerConfig, readonly containerInstance: BasePortalOutlet) {\n this.disableClose = config.disableClose;\n this.id = cdkRef.id;\n merge(this.cdkRef.backdropClick, this.cdkRef.keydownEvents.pipe(filter((event) => !this.disableClose && event.code === 'Escape' && !event.getModifierState(event.key)))).subscribe((event) => {\n if (!this.disableClose) {\n event.preventDefault();\n this.tryClose(undefined, { focusOrigin: event.type === 'keydown' ? 'keyboard' : 'mouse' });\n }\n });\n }\n\n get componentInstance(): C | null {\n return this.cdkRef.componentInstance;\n }\n\n get closed(): Observable<R | undefined> {\n return this.cdkRef.closed;\n }\n\n /**\n * Confirms the component's deactivation then closes the dialog.\n * @param result\n * @param options\n * @returns\n */\n tryClose(result?: R, options?: DialogCloseOptions): boolean {\n if (this.canDeactivate() || this.confirmDeactivation()) {\n this.cdkRef.close(result, options);\n return true;\n }\n\n return false;\n }\n\n /**\n * Closes the dialog without confirmation.\n * @param result\n * @param options\n */\n close(result?: R, options?: DialogCloseOptions): void {\n this.cdkRef.close(result, options);\n }\n\n confirmDeactivation(): boolean {\n if (hasImplementation<CanDeactivateComponent>(this.cdkRef.componentInstance, 'canDeactivate') && !this.cdkRef.componentInstance.canDeactivate()) {\n return this.cdkRef.componentInstance.confirmDeactivation();\n }\n\n return true;\n }\n\n canDeactivate(): boolean {\n if (hasImplementation<CanDeactivateComponent>(this.cdkRef.componentInstance, 'canDeactivate')) {\n return this.cdkRef.componentInstance.canDeactivate();\n }\n\n return true;\n }\n}\n","import { Dialog, DialogConfig } from '@angular/cdk/dialog';\nimport { ComponentType, Overlay } from '@angular/cdk/overlay';\nimport { Inject, Injectable, Injector, OnDestroy, Optional, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { take } from 'rxjs';\nimport { DEFAULT_MZ_DRAWER_CONFIG, MZ_DRAWER_DATA } from './drawer-injectors';\nimport { MzDrawerContainer } from './container/drawer-container.component';\nimport { MzDrawerConfig } from './drawer-config';\nimport { MzDrawerRef } from './drawer-ref';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MzDrawer implements OnDestroy {\n private cdkDialog: Dialog;\n private openDialogs: MzDrawerRef<any>[] = [];\n\n constructor(private injector: Injector, private overlay: Overlay, @Optional() @Inject(DEFAULT_MZ_DRAWER_CONFIG) private configuredOptions: MzDrawerConfig, @Optional() private viewContainerRef?: ViewContainerRef | null) {\n this.cdkDialog = injector.get(Dialog);\n }\n\n /**\n * Opens a modal dialog containing the given component.\n * @param component Type of the component to load into the dialog.\n * @param config Extra configuration options.\n * @returns Reference to the newly-opened dialog.\n */\n open<R = any, D = any, T = any>(component: ComponentType<T>, config?: MzDrawerConfig<D>): MzDrawerRef<R, T>;\n /**\n * Opens a modal dialog containing the given template.\n * @param template TemplateRef to instantiate as the dialog content.\n * @param config Extra configuration options.\n * @returns Reference to the newly-opened dialog.\n */\n open<R = any, D = any, T = any>(template: TemplateRef<T>, config?: MzDrawerConfig<D>): MzDrawerRef<R, T>;\n open<R = any, D = any, T = any>(componentOrTemplateRef: ComponentType<T> | TemplateRef<T>, config?: MzDrawerConfig<D>): MzDrawerRef<R, T>;\n open<R = any, D = any, T = any>(componentOrTemplateRef: ComponentType<T> | TemplateRef<T>, config?: MzDrawerConfig<D>): MzDrawerRef<R, T> {\n\n const defaultOptions = new MzDrawerConfig<D>();\n const options = { ...(this.configuredOptions || defaultOptions), ...config };\n\n // compute closeOnNavigation if left undefined. dialogs need to be destroyed either via navigation or component destruction\n if (options.closeOnNavigation === undefined) {\n options.closeOnNavigation = options.viewContainerRef === undefined && (this.viewContainerRef === undefined || this.viewContainerRef === null);\n }\n\n let dialogRef: MzDrawerRef<R, T>;\n const cdkRef = this.cdkDialog.open<R, D, T>(componentOrTemplateRef, {\n ...options,\n injector: options.injector,\n viewContainerRef: options.viewContainerRef || this.viewContainerRef || undefined,\n // Disable closing because we want full control of closing behavior, such as animation and confirmation.\n disableClose: true,\n // Disable closing on destroy, because this service cleans up its open dialogs as well.\n closeOnDestroy: true,\n closeOnOverlayDetachments: false,\n closeOnNavigation: options.closeOnNavigation,\n container: {\n type: MzDrawerContainer,\n providers: () => [\n { provide: MzDrawerConfig, useValue: options },\n { provide: DialogConfig, useValue: options },\n ],\n },\n templateContext: () => ({ dialogRef }),\n providers: (ref, cdkConfig, dialogContainer) => {\n dialogRef = new MzDrawerRef(ref, options, dialogContainer);\n return [\n { provide: MZ_DRAWER_DATA, useValue: cdkConfig.data },\n { provide: MzDrawerRef, useValue: dialogRef },\n ];\n },\n });\n this.openDialogs.push(dialogRef!);\n dialogRef!.closed.pipe(take(1)).subscribe(() => {\n const i = this.openDialogs.indexOf(dialogRef);\n this.openDialogs.splice(i, 1);\n });\n\n if (cdkRef.containerInstance instanceof MzDrawerContainer) {\n cdkRef.containerInstance.associateDialogRef(dialogRef!);\n }\n\n return dialogRef!;\n }\n\n /**\n * Gets an array of currently opened dialogs that were opened with this instance of service.\n */\n getDialogs(): MzDrawerRef<any>[] {\n return this.openDialogs;\n }\n\n confirmDeactivation(): boolean {\n // We assume all dialogs belong to the same component tree, so we can just check the first one/last opened\n const i = this.openDialogs.findLastIndex((ref) => !ref.canDeactivate());\n\n if (i > -1) {\n return this.openDialogs[i].confirmDeactivation();\n }\n\n return true;\n }\n\n closeAll(): void {\n this.closeDialogs(this.openDialogs);\n }\n\n ngOnDestroy(): void {\n this.closeDialogs(this.openDialogs);\n }\n\n private closeDialogs(dialogs: MzDrawerRef<any>[]) {\n let i = dialogs.length;\n\n while (i--) {\n dialogs[i].close();\n }\n }\n}","import { Component, input } from '@angular/core';\nimport { MzDrawerRef } from '../drawer-ref';\n\n@Component({\n selector: 'mz-drawer-header',\n imports: [],\n templateUrl: './drawer-header.component.html',\n styleUrl: './drawer-header.component.scss',\n host: {\n 'class': 'mz-drawer-header'\n }\n})\nexport class MzDrawerHeader {\n title = input<string>('');\n\n constructor(private drawerRef: MzDrawerRef<any>) {}\n\n protected close(e: UIEvent) {\n this.drawerRef.tryClose(undefined, { focusOrigin: e.detail === 0 ? 'keyboard' : 'mouse' });\n }\n\n protected get disableClose(): boolean {\n return this.drawerRef.disableClose ?? false;\n }\n}\n","<h2>{{ title() }}</h2>\n@if(!disableClose){\n<div>\n <button class=\"button-close\" (click)=\"close($event)\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6 18 18 6M6 6l12 12\" />\n </svg>\n </button>\n</div>\n}","import { Component } from '@angular/core';\n\n@Component({\n selector: 'mz-drawer-content',\n imports: [],\n templateUrl: './drawer-content.component.html',\n styleUrl: './drawer-content.component.scss',\n host: {\n 'class': 'mz-drawer-content'\n }\n})\nexport class MzDrawerContent {\n\n}\n","<ng-content></ng-content>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'mz-drawer-footer',\n imports: [],\n templateUrl: './drawer-footer.component.html',\n styleUrl: './drawer-footer.component.scss',\n host: {\n 'class': 'mz-drawer-footer'\n }\n})\nexport class MzDrawerFooter {\n\n}\n","<div class=\"drawer-projected\">\n <ng-content></ng-content>\n</div>","import { DialogModule } from \"@angular/cdk/dialog\";\nimport { NgModule } from \"@angular/core\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\nimport { PortalModule } from \"@angular/cdk/portal\";\nimport { MzDrawer } from \"./drawer\";\nimport { MzDrawerContainer } from \"./container/drawer-container.component\";\nimport { MzDrawerHeader } from \"./drawer-header/drawer-header.component\";\nimport { MzDrawerContent } from \"./drawer-content/drawer-content.component\";\nimport { MzDrawerFooter } from \"./drawer-footer/drawer-footer.component\";\n\n@NgModule({\n imports: [DialogModule, OverlayModule, PortalModule, MzDrawerContainer, MzDrawerHeader, MzDrawerContent, MzDrawerFooter],\n exports: [\n DialogModule,\n MzDrawerContainer,\n MzDrawerHeader,\n MzDrawerContent,\n MzDrawerFooter,\n ],\n providers: [MzDrawer]\n})\nexport class MzDrawerModule {}","import { CdkDialogContainer, DialogConfig } from '@angular/cdk/dialog';\nimport { Component, ElementRef, Inject, NgZone, Optional, ViewEncapsulation } from '@angular/core';\nimport { FocusTrapFactory, InteractivityChecker } from '@angular/cdk/a11y';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { DOCUMENT } from '@angular/common';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\n\n@Component({\n selector: 'mz-dialog-container',\n imports: [CdkPortalOutlet],\n templateUrl: './dialog-container.component.html',\n styleUrl: './dialog-container.component.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'mz-dialog-container',\n },\n})\nexport class MzDialogContainer extends CdkDialogContainer<DialogConfig> {\n constructor(private elementRef: ElementRef, focusTrapFactory: FocusTrapFactory, readonly dialogConfig: DialogConfig, protected interactivityChecker: InteractivityChecker, protected ngZone: NgZone, protected overlayRef: OverlayRef, @Optional() @Inject(DOCUMENT) _document: any) {\n super(elementRef, focusTrapFactory, _document, dialogConfig, interactivityChecker, ngZone, overlayRef);\n }\n\n protected override _contentAttached(): void {\n super._contentAttached();\n this.enter();\n }\n\n private enter() {\n const html = this.elementRef.nativeElement as HTMLElement;\n html.classList.add('open');\n }\n}\n","<ng-template cdkPortalOutlet></ng-template>","import { Component, input } from '@angular/core';\nimport { SvgIconComponent } from '../../svg-icon/svg-icon.component';\nimport { DialogRef } from '@angular/cdk/dialog';\n\n@Component({\n selector: 'mz-dialog-header',\n templateUrl: './dialog-header.component.html',\n styleUrl: './dialog-header.component.scss',\n})\nexport class MzDialogHeader {\n title = input<string>('');\n\n constructor() { }\n}\n","<h2>{{ title() }}</h2>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'mz-dialog-footer',\n imports: [],\n templateUrl: './dialog-footer.component.html',\n styleUrl: './dialog-footer.component.scss'\n})\nexport class MzDialogFooter {\n\n}\n","<ng-content></ng-content>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'mz-dialog-content',\n imports: [],\n templateUrl: './dialog-content.component.html',\n styleUrl: './dialog-content.component.scss'\n})\nexport class MzDialogContent {\n\n}\n","<ng-content></ng-content>","import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\nimport { Component, Inject } from '@angular/core';\nimport { MessageDialogData } from './message-dialog-data';\nimport { MzDialogHeader } from '../dialog-header/dialog-header.component';\nimport { MzDialogFooter } from '../dialog-footer/dialog-footer.component';\nimport { MzDialogContent } from '../dialog-content/dialog-content.component';\nimport { MzButton } from '../../button/button.component';\n\n@Component({\n selector: 'mz-message-dialog',\n imports: [MzDialogHeader, MzDialogFooter, MzButton, MzDialogContent],\n templateUrl: './message-dialog.component.html',\n styleUrl: './message-dialog.component.scss',\n})\nexport class MzMessageDialog {\n constructor(private dialogRef: DialogRef, @Inject(DIALOG_DATA) protected data: MessageDialogData) {}\n\n ok() {\n this.dialogRef.close(true);\n }\n\n close() {\n this.dialogRef.close(false);\n }\n}\n","<mz-dialog-header [title]=\"data.title\"></mz-dialog-header>\n<mz-dialog-content>\n {{ data.message }}\n</mz-dialog-content>\n<mz-dialog-footer>\n @if(data.cancelAction.length > 0 ) {\n <button (click)=\"close()\" mz-button appearance=\"subtle\">{{ data.cancelAction }}</button>\n } @if(data.action.length > 0) {\n <button (click)=\"ok()\" cdkFocusInitial mz-button [appearance]=\"data.appearance || 'primary'\">{{ data.action }}</button>\n }\n</mz-dialog-footer>\n","import { AutoFocusTarget } from \"@angular/cdk/dialog\";\nimport { InjectionToken } from \"@angular/core\";\n\nexport const MZ_DIALOG_DEFAULT_OPTIONS = new InjectionToken<MzDialogConfig<any>>('MZ_DIALOG_DEFAULT_OPTIONS');\n\nexport class MzDialogConfig<D> {\n /** Optional CSS class or classes applied to the overlay panel. */\n panelClass?: string | string[] = '';\n\n /** Whether the dialog has a backdrop. */\n hasBackdrop?: boolean = true;\n\n /** Optional CSS class or classes applied to the overlay backdrop. */\n backdropClass?: string | string[] = '';\n\n /** Whether the dialog closes with the escape key or pointer events outside the panel element. */\n disableClose?: boolean = false;\n\n /** Width of the dialog. */\n width?: string = '';\n\n /** Height of the dialog. */\n height?: string = '';\n\n /** Min-width of the dialog. If a number is provided, assumes pixel units. */\n minWidth?: number | string;\n\n /** Min-height of the dialog. If a number is provided, assumes pixel units. */\n minHeight?: number | string;\n\n /** Max-width of the dialog. If a number is provided, assumes pixel units. Defaults to 80vw. */\n maxWidth?: number | string;\n\n /** Max-height of the dialog. If a number is provided, assumes pixel units. */\n maxHeight?: number | string;\n\n /** Data being injected into the child component. */\n data?: D | null = null;\n\n /**\n * Where the dialog should focus on open.\n * @breaking-change 14.0.0 Remove boolean option from autoFocus. Use string or\n * AutoFocusTarget instead.\n */\n autoFocus?: AutoFocusTarget = 'first-tabbable';\n\n /**\n * Whether the dialog should restore focus to the previously-focused element upon closing.\n * Has the following behavior based on the type that is passed in:\n * - `boolean` - when true, will return focus to the element that was focused before the dialog\n * was opened, otherwise won't restore focus at all.\n * - `string` - focus will be restored to the first element that matches the CSS selector.\n * - `HTMLElement` - focus will be restored to the specific element.\n */\n restoreFocus?: boolean | string | HTMLElement = true;\n}","import { Dialog, DialogConfig, DialogRef } from '@angular/cdk/dialog';\nimport { ComponentType } from '@angular/cdk/overlay';\nimport { Inject, Injectable, Injector, Optional, TemplateRef } from '@angular/core';\nimport { MzDialogContainer } from './dialog-container/dialog-container.component';\nimport { MzMessageDialog } from './message-dialog/message-dialog.component';\nimport { DialogAppearance } from './dialog-appearance';\nimport { firstValueFrom } from 'rxjs';\nimport { MessageDialogData } from './message-dialog/message-dialog-data';\nimport { MZ_DIALOG_DEFAULT_OPTIONS, MzDialogConfig } from './dialog-config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MzDialog {\n private cdkDialog: Dialog;\n constructor(injector: Injector, @Optional() @Inject(MZ_DIALOG_DEFAULT_OPTIONS) private defaultOptions: DialogConfig<any>) {\n this.cdkDialog = injector.get(Dialog);\n }\n\n /**\n * Displays a message modal dialog.\n * @param title The title of the dialog.\n * @param message The message to display.\n * @param action The text for the action button. Not displayed if empty.\n * @param cancelAction The text for the cancel button. Not displayed if empty.\n * @param appearance The appearance of the dialog.\n * @returns A reference to the opened dialog.\n */\n display(title: string, message: string, action: string = 'OK', cancelAction: string = '', appearance?: DialogAppearance): DialogRef<void, MzMessageDialog> {\n return this.open(MzMessageDialog, { data: { title: title, message: message, appearance: appearance, action: action, cancelAction: cancelAction } satisfies MessageDialogData, hasBackdrop: true });\n }\n\n /**\n * Opens a confirmation modal dialog.\n * @param title The title of the dialog.\n * @param message The message to display in the dialog.\n * @param action The text for the OK button.\n * @param cancelAction The text for the Cancel button. Not displayed if empty.\n * @param appearance The appearance of the dialog.\n * @returns A promise that resolves to true if the user confirmed, false if canceled, undefined if dismissed.\n */\n confirm(title: string, message: string, action: string = 'OK', cancelAction: string = 'Cancel', appearance?: DialogAppearance): Promise<boolean | undefined> {\n const ref = this.open(MzMessageDialog, { data: { title: title, message: message, appearance: appearance, action: action, cancelAction: cancelAction } satisfies MessageDialogData, hasBackdrop: true });\n return firstValueFrom(ref.closed) as Promise<boolean | undefined>;\n }\n\n open<R = any, D = any, T = any>(template: TemplateRef<T>, config?: MzDialogConfig<D>): DialogRef<R, T>;\n open<R = any, D = any, T = any>(component: ComponentType<T>, config?: MzDialogConfig<D>): DialogRef<R, T>;\n open<R = any, D = any, T = any>(templateOrComponent: TemplateRef<T> | ComponentType<T>, config?: MzDialogConfig<D>): DialogRef<R, T> {\n const defaults = this.defaultOptions || new MzDialogConfig<D>();\n const options = { ...defaults, ...config };\n const dialogConfig = {\n panelClass: options.panelClass,\n hasBackdrop: options.hasBackdrop,\n backdropClass: options.backdropClass,\n disableClose: options.disableClose,\n width: options.width,\n height: options.height,\n minWidth: options.minWidth,\n minHeight: options.minHeight,\n maxWidth: options.maxWidth,\n maxHeight: options.maxHeight,\n data: options.data,\n autoFocus: options.autoFocus,\n restoreFocus: options.restoreFocus,\n closeOnNavigation: true,\n closeOnDestroy: true,\n closeOnOverlayDetachments: true,\n container: MzDialogContainer,\n } satisfies DialogConfig<D, R, MzDialogContainer>;\n const ref = this.cdkDialog.open<R, D, T>(templateOrComponent, dialogConfig);\n return ref;\n }\n}\n","import { DialogModule } from \"@angular/cdk/dialog\";\nimport { NgModule } from \"@angular/core\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\nimport { MzDialogContainer } from \"./dialog-container/dialog-container.component\";\nimport { MzDialog } from \"./dialog\";\nimport { MzMessageDialog } from \"./message-dialog/message-dialog.component\";\nimport { MzDialogHeader } from \"./dialog-header/dialog-header.component\";\nimport { MzDialogFooter } from \"./dialog-footer/dialog-footer.component\";\nimport { MzDialogContent } from \"./dialog-content/dialog-content.component\";\n\n@NgModule({\n imports: [DialogModule, OverlayModule, MzDialogContainer, MzDialogHeader, MzDialogContent, MzDialogFooter, MzMessageDialog],\n exports: [\n DialogModule,\n MzDialogHeader,\n MzDialogContent,\n MzDialogFooter,\n MzDialogContainer,\n MzMessageDialog\n ],\n providers: [MzDialog]\n})\nexport class MzDialogModule {}","import { CdkMenuModule, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectorRef, Component, EventEmitter, Input, Output, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FormsModule, NgForm } from '@angular/forms';\nimport { SvgIconComponent } from '../svg-icon/svg-icon.component';\n\n@Component({\n selector: 'mz-filter',\n exportAs: 'mzFilter',\n imports: [FormsModule, CommonModule, CdkMenuModule, SvgIconComponent],\n templateUrl: './filter.component.html',\n styleUrl: './filter.component.scss',\n})\nexport class FilterComponent {\n @Input() label = 'Filter';\n @Input() display = '';\n @Input() menuTemplate: TemplateRef<unknown> | null = null;\n @Output() clear = new EventEmitter<void>();\n @Output() apply = new EventEmitter<any>();\n\n @ViewChild(NgForm) protected menuForm?: NgForm;\n @ViewChild(CdkMenuTrigger) protected menuTrigger?: CdkMenuTrigger;\n\n close() { \n this.menuTrigger?.close();\n }\n\n protected clearFilter() {\n this.clear.emit();\n }\n\n protected applyFilter($event: Event) {\n console.log(this.menuForm?.value);\n if (this.menuForm?.valid === false) {\n console.log('form is invalid');\n $event.preventDefault();\n $event.stopPropagation();\n return;\n }\n }\n\n protected get filterLabel() {\n if(this.display) {\n return `${this.label}: ${this.display}`;\n }\n\n return this.label;\n }\n}\n","<button [cdkMenuTriggerFor]=\"filterMenu\" class=\"mz-filter-button\">{{filterLabel}}<mz-svg-icon key=\"chevron-down-control\"></mz-svg-icon></button>\n<ng-template #filterMenu>\n <div cdkMenu class=\"mz-dropdown-body\">\n <ng-container [ngTemplateOutlet]=\"menuTemplate\"></ng-container>\n </div>\n</ng-template>\n\n","import { Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FilterOptionModel } from '../filter/filter-option.model';\nimport { FormsModule, NgForm } from '@angular/forms';\nimport { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { MzSpinner } from '../spinner/spinner.component';\nimport { MzButton } from '../button/button.component';\n\n@Component({\n selector: 'mz-options-filter',\n imports: [FormsModule, CdkOverlayOrigin, CdkConnectedOverlay, MzSpinner, MzButton],\n templateUrl: './options-filter.component.html',\n styleUrl: './options-filter.component.scss',\n encapsulation: ViewEncapsulation.None\n})\nexport class OptionsFilterComponent {\n @Input() options?: FilterOptionModel<string>[];\n @Input() values: string[] = [];\n @Input() label = 'Filter';\n @Output() change = new EventEmitter<string | undefined>();\n @Input() selected?: string;\n @ViewChild(NgForm) form!: NgForm;\n\n protected open = false;\n protected search: string = '';\n\n get filterLabel(): string {\n if (!this.selected) {\n return this.label;\n }\n const item = this.options?.find((o) => o.value === this.selected);\n return item ? `${this.label}: ${item.label}` : this.label;\n }\n\n get filteredOptions(): FilterOptionModel<string>[] {\n const options = this.options ?? [];\n const search = this.search.trim().toLowerCase();\n\n if (!search) {\n return options;\n }\n\n return options.filter((o) => o.label.toLowerCase().includes(search));\n }\n\n apply() {\n this.change.emit(this.selected);\n this.open = false;\n }\n\n clear() {\n this.selected = undefined;\n this.change.emit(undefined);\n this.open = false;\n this.search = '';\n }\n\n toggleOverlay() {\n this.open = !this.open;\n }\n\n dismiss() {\n this.open = false;\n }\n}\n\nexport type OptionValueType = string | number | string[] | number[];\nexport type SelectOption = {\n label: string;\n value: OptionValueType;\n};","<button cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" (click)=\"toggleOverlay()\" mz-button [class.active]=\"open\">\n @if (options) {\n {{ filterLabel }}\n <span class=\"dropdown-icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\" class=\"dropdown-icon\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n </span>\n } @else {\n <mz-spinner></mz-spinner>\n }\n</button>\n<ng-template \n cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\" [cdkConnectedOverlayOpen]=\"open\" [cdkConnectedOverlayPanelClass]=\"'dropdown-body'\" (overlayOutsideClick)=\"dismiss()\">\n <div>\n <form #myForm=\"ngForm\" > \n <div>\n <label class=\"field\">\n <input type=\"text\" [(ngModel)]=\"search\" placeholder=\"Search...\" name=\"search\" class=\"form-input\" autocomplete=\"off\" />\n </label>\n <div class=\"dropdown-options\">\n @for(option of filteredOptions; track option.value) {\n <label class=\"field-option\" [class.active]=\"selected === option.value\">\n <input class=\"form-radio\" type=\"radio\" [(ngModel)]=\"selected\" name=\"option\" [value]=\"option.value\" (ngModelChange)=\"apply()\"/>\n <span class=\"radio-label\">{{ option.label }}</span>\n </label>\n }\n </div>\n </div>\n <div class=\"dropdown-buttons\">\n <button type=\"button\" mz-button appearance=\"subtle\" (click)=\"clear()\">Clear</button>\n </div>\n </form>\n </div>\n</ng-template>\n","import { AfterContentInit, Component, ContentChild, ContentChildren, Optional, QueryList, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FormsModule, NgForm, NgModel } from '@angular/forms';\nimport { FilterComponent } from '../filter.component';\nimport { MzButton } from '../../button/button.component';\n\n@Component({\n selector: 'mz-filter-menu',\n imports: [FormsModule, MzButton],\n exportAs: 'mzFilterMenu',\n templateUrl: './filter-menu.component.html',\n styleUrl: './filter-menu.component.scss',\n hostDirectives: [],\n host: {\n class: 'menu',\n },\n})\nexport class FilterMenuComponent implements AfterContentInit {\n ngAfterContentInit(): void {\n // this.container.createEmbeddedView(this.myTemplate);\n }\n\n @ViewChild('myTemplate') myTemplate!: TemplateRef<any>;\n @ViewChild('container', { read: ViewContainerRef }) container!: ViewContainerRef;\n @ContentChild(NgForm) form?: NgForm;\n @ContentChildren(NgModel, { descendants: true }) models?: QueryList<NgModel>;\n\n constructor(@Optional() private filter: FilterComponent | null) { }\n\n reset() {\n console.log('resetting');\n //this.form.resetForm();\n }\n\n apply() {\n console.log(this.models?.length);\n console.log(this.models?.map(m=>m.errors));\n if(this.form?.invalid){\n console.log('form is invalid', this.form.errors);\n }\n console.log('applying', this.form, this.form?.value, this.form?.form.value);\n this.form?.ngSubmit.emit();\n }\n\n clear() {\n\n }\n}\n","<ng-content></ng-content>\n<div class=\"button-list\">\n <button type=\"submit\" mz-button appearance=\"primary\" (click)=\"apply()\">Apply</button>\n <button type=\"reset\" mz-button appearance=\"subtle\" (click)=\"clear()\">Clear</button>\n</div>\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 { MzSpinner } 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';\nexport { MzDatePipe } from './lib/date-display/date.pipe';\nexport { MzDatePipeConfig, MZ_DATE_PIPE_DEFAULT_OPTIONS } from './lib/date-display/date-display-config';\n\n// inline edit\nexport { MzInlineEditComponent } 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// async\nexport { MzAsync } from './lib/async/async.component';\nexport { MzAsyncError } from './lib/async/async-error.directive';\nexport { MzAsyncLoading } from './lib/async/async-loading.directive';\n\n// table\nexport { ResultTableComponent } from './lib/result-table/result-table.component';\nexport { MzPagination } 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// 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 { MzButton } from './lib/button/button.component';\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';\n\n// drawer\nexport { MzDrawer } from './lib/drawer/drawer';\nexport { MzDrawerConfig } from './lib/drawer/drawer-config';\nexport { MzDrawerRef } from './lib/drawer/drawer-ref';\nexport { MzDrawerContainer } from './lib/drawer/container/drawer-container.component';\nexport { MzDrawerModule } from './lib/drawer/drawer.module';\nexport { MzDrawerHeader } from './lib/drawer/drawer-header/drawer-header.component';\nexport { MzDrawerContent } from './lib/drawer/drawer-content/drawer-content.component';\nexport { MzDrawerFooter } from './lib/drawer/drawer-footer/drawer-footer.component';\n\n// modal dialog\nexport { MzDialogModule } from './lib/dialog/dialog.module';\nexport { MzDialogContainer } from './lib/dialog/dialog-container/dialog-container.component';\nexport { MzDialog } from './lib/dialog/dialog';\nexport { MzDialogHeader } from './lib/dialog/dialog-header/dialog-header.component';\nexport { MzDialogContent } from './lib/dialog/dialog-content/dialog-content.component';\nexport { MzDialogFooter } from './lib/dialog/dialog-footer/dialog-footer.component';\nexport { MzMessageDialog as MzMessageModal } from './lib/dialog/message-dialog/message-dialog.component';\nexport { DialogAppearance } from './lib/dialog/dialog-appearance';\n\n// filter\nexport { FilterComponent } from './lib/filter/filter.component';\nexport { FilterOptionModel } from './lib/filter/filter-option.model';\nexport { OptionsFilterComponent } from './lib/options-filter/options-filter.component';\nexport { FilterMenuComponent } from './lib/filter/filter-menu/filter-menu.component';\n\n// utilities\nexport { CanDeactivateComponent, hasImplementation } from './lib/guard-deactivate';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.SortDirective","i2","filter","take","i1.MzDrawerRef","i1.FilterComponent"],"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-config.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/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/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/date-display/date-display-config.ts","../../../projects/components/src/lib/date-display/date.pipe.ts","../../../projects/components/src/lib/button/button.component.ts","../../../projects/components/src/lib/button/button.component.html","../../../projects/components/src/lib/inline-edit/inline-edit.component.ts","../../../projects/components/src/lib/inline-edit/inline-edit.component.html","../../../projects/components/src/lib/async/async.component.ts","../../../projects/components/src/lib/async/async.component.html","../../../projects/components/src/lib/async/async-error.directive.ts","../../../projects/components/src/lib/async/async-loading.directive.ts","../../../projects/components/src/lib/testing/muzieh-component-harness.ts","../../../projects/components/src/lib/testing/result-table-harness.ts","../../../projects/components/src/lib/drawer/drawer-injectors.ts","../../../projects/components/src/lib/drawer/drawer-config.ts","../../../projects/components/src/lib/drawer/container/drawer-container.component.ts","../../../projects/components/src/lib/drawer/container/drawer-container.component.html","../../../projects/components/src/lib/guard-deactivate.ts","../../../projects/components/src/lib/drawer/drawer-ref.ts","../../../projects/components/src/lib/drawer/drawer.ts","../../../projects/components/src/lib/drawer/drawer-header/drawer-header.component.ts","../../../projects/components/src/lib/drawer/drawer-header/drawer-header.component.html","../../../projects/components/src/lib/drawer/drawer-content/drawer-content.component.ts","../../../projects/components/src/lib/drawer/drawer-content/drawer-content.component.html","../../../projects/components/src/lib/drawer/drawer-footer/drawer-footer.component.ts","../../../projects/components/src/lib/drawer/drawer-footer/drawer-footer.component.html","../../../projects/components/src/lib/drawer/drawer.module.ts","../../../projects/components/src/lib/dialog/dialog-container/dialog-container.component.ts","../../../projects/components/src/lib/dialog/dialog-container/dialog-container.component.html","../../../projects/components/src/lib/dialog/dialog-header/dialog-header.component.ts","../../../projects/components/src/lib/dialog/dialog-header/dialog-header.component.html","../../../projects/components/src/lib/dialog/dialog-footer/dialog-footer.component.ts","../../../projects/components/src/lib/dialog/dialog-footer/dialog-footer.component.html","../../../projects/components/src/lib/dialog/dialog-content/dialog-content.component.ts","../../../projects/components/src/lib/dialog/dialog-content/dialog-content.component.html","../../../projects/components/src/lib/dialog/message-dialog/message-dialog.component.ts","../../../projects/components/src/lib/dialog/message-dialog/message-dialog.component.html","../../../projects/components/src/lib/dialog/dialog-config.ts","../../../projects/components/src/lib/dialog/dialog.ts","../../../projects/components/src/lib/dialog/dialog.module.ts","../../../projects/components/src/lib/filter/filter.component.ts","../../../projects/components/src/lib/filter/filter.component.html","../../../projects/components/src/lib/options-filter/options-filter.component.ts","../../../projects/components/src/lib/options-filter/options-filter.component.html","../../../projects/components/src/lib/filter/filter-menu/filter-menu.component.ts","../../../projects/components/src/lib/filter/filter-menu/filter-menu.component.html","../../../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, HostBinding, 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 host: {\n 'role': 'img',\n '[attr.data-icon-name]': 'key',\n }\n})\nexport class SvgIconComponent {\n @Input() key!: string;\n /**\n * @deprecated Pass in whole key instead.\n */\n @Input() type: 'outline' | 'solid' | string = '';\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 @HostBinding('class')\n get classes(): string {\n if(this.type) {\n return `icon icon-${this.type} icon-${this.size}`;\n }\n return `icon icon-${this.size}`;\n }\n}","<svg xmlns=\"http://www.w3.org/2000/svg\" 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 { Component, HostBinding, Input, input } from '@angular/core';\n\n@Component({\n selector: 'mz-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss'],\n imports: [],\n})\nexport class MzSpinner {\n @Input() size: SpinnerSize = 'medium';\n @Input() appearance: SpinnerAppearance = 'primary';\n\n @HostBinding('class')\n get elementClass(): string {\n return [`${this.size}`, `${this.appearance}`].join(' ');\n }\n}\n\nexport type SpinnerSize = 'medium' | 'large';\nexport type SpinnerAppearance = 'primary' | 'secondary';\n","<svg class=\"mz-spinner\" 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","import { InjectionToken } from \"@angular/core\";\n\nexport const MZ_PAGINATION_DEFAULT_OPTIONS = new InjectionToken<MzPaginationConfig>('MZ_PAGINATION_DEFAULT_OPTIONS');\n\nexport class MzPaginationConfig {\n pageSize: number = 20;\n pageSizeOptions: number[] = [20, 50, 100];\n}","import { Component, EventEmitter, Inject, Input, OnChanges, Optional, Output } from '@angular/core';\nimport { PageEvent } from '../models/page-event';\nimport { SvgIconComponent } from '../svg-icon/svg-icon.component';\nimport { MZ_PAGINATION_DEFAULT_OPTIONS, MzPaginationConfig } from './pagination-config';\n\n@Component({\n selector: 'mz-pagination',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.scss'],\n imports: [SvgIconComponent],\n})\nexport class MzPagination implements OnChanges {\n @Input({ required: true }) totalItems: number = 0;\n @Input({ required: true }) pageNumber: number = 1;\n @Input() scrollTo?: HTMLElement;\n @Input() pageSizeOptions: number[];\n @Input() pageSize: number;\n\n @Output() public changePage = new EventEmitter<PageEvent>();\n\n pages: number[] = [];\n pageCount: number = 1;\n protected options: MzPaginationConfig;\n\n constructor(@Optional() @Inject(MZ_PAGINATION_DEFAULT_OPTIONS) private paginationOptions: MzPaginationConfig) {\n this.options = paginationOptions || new MzPaginationConfig();\n this.pageSizeOptions = this.options.pageSizeOptions;\n this.pageSize = this.pageSizeOptions[0];\n this.updatePages(this.pageNumber, this.totalItems, this.pageSize);\n }\n\n ngOnChanges(): void {\n this.updatePages(this.pageNumber, this.totalItems, this.pageSize);\n }\n\n protected isEllipsis(v: number) {\n return v === -1;\n }\n\n changePageNumber(newValue: number) {\n if (newValue == this.pageNumber || newValue < 1 || newValue > this.pageCount) {\n return;\n }\n this.scrollTo?.scrollIntoView({ behavior: 'instant', block: 'start' });\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.scrollTo?.scrollIntoView({ behavior: 'instant', block: 'start' });\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 page-icon-link\" [class.disabled]=\"pageNumber === 1\" (click)=\"changePageNumber(pageNumber - 1)\" aria-label=\"Previous page\">\n <mz-svg-icon key=\"chevron-left-solid\"></mz-svg-icon>\n </button>\n @for(p of pages; track $index) {\n @if(isEllipsis(p)) {\n <span class=\"page-ellipsis page-link disabled\">...</span>\n } @else {\n <button class=\"page-link\" [class.active]=\"p === pageNumber\" (click)=\"changePageNumber(p)\">{{ p }}</button>\n }\n }\n\n <button class=\"page-link page-icon-link\" [class.disabled]=\"pageNumber === pageCount\" (click)=\"changePageNumber(pageNumber + 1)\" aria-label=\"Next page\">\n <mz-svg-icon key=\"chevron-right-solid\"></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 @for(size of pageSizeOptions; track size) {\n <option [attr.selected]=\"pageSize == size ? true : null\" [value]=\"size\">{{ size }}</option>\n }\n </select>\n per page\n </div>\n</div>\n","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 { MzPagination } from '../pagination/pagination.component';\nimport { MzSpinner } 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, MzPagination, MzSpinner, SvgIconComponent]\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[] = [20, 50, 100];\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) {\n this.pageChange.emit(page);\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 [totalItems]=\"model!.totalItems\" [pageNumber]=\"model!.pageNumber\" [pageSize]=\"model!.pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [scrollTo]=\"tableRef\"\n (changePage)=\"changePage($event)\"></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-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 { Component, Input, 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';\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: []\n})\nexport class PageLoadingIndicatorComponent implements OnInit {\n @Input() isLoading: boolean = false;\n expectedMilisecondsDelay = 1000;\n\n constructor(private router: Router) {}\n\n ngOnInit(): void {\n const endObs$ = this.router.events.pipe(filter((e) => e instanceof NavigationEnd || e instanceof NavigationCancel || e instanceof NavigationError));\n\n race(\n this.router.events.pipe(\n filter((e) => e instanceof NavigationStart),\n delay(this.expectedMilisecondsDelay)\n ),\n endObs$\n )\n .pipe(take(1), repeat())\n .subscribe((x) => (this.isLoading = x instanceof NavigationStart));\n\n // the flag need to be reset to false when the page finishes loading\n endObs$.subscribe(() => (this.isLoading = false));\n }\n}\n","<div class=\"progress-bar-container\" [class.loading]=\"isLoading\">\n <div class=\"progress-bar\"></div>\n <div class=\"progress-bar-value\"></div>\n</div>\n","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 { 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})\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-solid';\n } else if (this.type === 'success') {\n icon = 'check-circle-solid';\n } else if (this.type === 'error') {\n icon = 'x-circle-solid';\n } else if (this.type === 'warning') {\n icon = 'exclamation-triangle-solid';\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()\"></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/**\n * @deprecated use mzDate instead\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}","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): string | null {\n if (!subject) {\n return 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/**\n * @deprecated Use MzButton component instead: `<button mz-button appearance=\"primary\">...</button>`\n */\n@Directive({\n selector: '[mzButton]',\n standalone: true,\n host: {\n role: 'button',\n '[attr.tabindex]': '0',\n '[attr.aria-busy]': '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 { 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 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\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-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-solid\"></mz-svg-icon>\n </button>\n <button *ngIf=\"toggled\" (click)=\"toggle()\">\n <mz-svg-icon key=\"chevron-up-solid\"></mz-svg-icon>\n </button>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, ContentChild, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { MzSpinner } from '../spinner/spinner.component';\n\n@Component({\n selector: 'mz-infinite-scroll',\n imports: [CommonModule, MzSpinner],\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\" type=\"secondary\"></mz-spinner>\n </div>\n</div>\n","import { CommonModule, DatePipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MzSpinner } 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 { MzPagination } from './pagination/pagination.component';\nimport { PageLoadingIndicatorComponent } from './page-loading-indicator/page-loading-indicator.component';\nimport { PageHeaderComponent } from './page-header/page-header.component';\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 { InfiniteScrollComponent } from './infinite-scroll/infinite-scroll.component';\n\n/**\n * @deprecated Import components and component modules separately.\n */\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ButtonDirective,\n SvgIconComponent,\n MzSpinner,\n WizardProgressTrackerComponent,\n AlertComponent,\n EnumDisplayPipe,\n ResultTableComponent,\n InfiniteScrollComponent,\n MzPagination,\n PageLoadingIndicatorComponent,\n PageHeaderComponent,\n DateDisplayPipe,\n PhoneNumberPipe,\n SortKeyDirective,\n SortDirective,\n SubjectDisplayPipe,\n ],\n exports: [\n EnumDisplayPipe,\n MzSpinner,\n SvgIconComponent,\n ResultTableComponent,\n InfiniteScrollComponent,\n MzPagination,\n PageLoadingIndicatorComponent,\n PageHeaderComponent,\n DateDisplayPipe,\n AlertComponent,\n PhoneNumberPipe,\n SortKeyDirective,\n SortDirective,\n SubjectDisplayPipe,\n ButtonDirective,\n WizardProgressTrackerComponent,\n ],\n providers: [\n DatePipe,\n ]\n})\nexport class MuziehComponentsModule { }\n","import { DatePipeConfig } from \"@angular/common\";\nimport { InjectionToken } from \"@angular/core\"\n\nexport const DATE_PIPE_CONFIG_OPTIONS = Object.freeze({\n formats: new Map<string, string>([\n ['short', 'MM/dd/yyyy hh:mm a'],\n ['medium', 'MMM d y h:mm:ss a'],\n ['shortDate', 'MM/dd/yyyy'],\n ['mediumDate', 'MMM d y']\n ]),\n dateFormat: 'MM/dd/yyyy hh:mm a'\n} satisfies MzDatePipeConfig);\n\nexport interface MzDatePipeConfig extends DatePipeConfig {\n formats: Map<string, string>\n}\n\nexport const MZ_DATE_PIPE_DEFAULT_OPTIONS = new InjectionToken<MzDatePipeConfig>('MzDateDisplayDefaultOptions');","import { DatePipe } from '@angular/common';\nimport { Inject, LOCALE_ID, Optional, Pipe } from '@angular/core';\nimport { DATE_PIPE_CONFIG_OPTIONS, MZ_DATE_PIPE_DEFAULT_OPTIONS, MzDatePipeConfig } from './date-display-config';\n\n@Pipe({\n name: 'mzDate',\n standalone: true,\n})\nexport class MzDatePipe extends DatePipe {\n private options: MzDatePipeConfig;\n constructor(@Inject(LOCALE_ID) locale: string, @Optional() @Inject(MZ_DATE_PIPE_DEFAULT_OPTIONS) defaultMzOptions?: MzDatePipeConfig | null) {\n const o = defaultMzOptions || DATE_PIPE_CONFIG_OPTIONS;\n super(locale, null, o);\n this.options = o;\n }\n override transform(value: string | number | Date, format?: string | undefined, timezone?: string | undefined, locale?: string | undefined): string | null;\n override transform(value: null | undefined, format?: string | undefined, timezone?: string | undefined, locale?: string | undefined): null;\n override transform(value: string | number | Date | null | undefined, format?: string | undefined, timezone?: string | undefined, locale?: string | undefined): string | null;\n override transform(value: Date | string | number | null | undefined, format?: string, timezone?: string, locale?: string): string | null {\n let translatedFormat = format;\n let translatedTimezone = timezone;\n\n if (format) {\n translatedFormat = this.options.formats.get(format) || format;\n }\n if(timezone === 'original' && typeof value === 'string') {\n const match = value.match(/([+-]\\d{2}:\\d{2})$/);\n translatedTimezone = match ? match[1] : '+00:00';\n }\n\n return super.transform(value, translatedFormat, translatedTimezone, locale);\n }\n}\n","import { booleanAttribute, Component, ElementRef, HostBinding, input } from '@angular/core';\nimport { ButtonAppearance } from './button-appearance';\n\n@Component({\n selector: 'button[mz-button], a[mz-button], button[mzButton], a[mzButton]',\n imports: [],\n templateUrl: './button.component.html',\n styleUrl: './button.component.scss',\n})\nexport class MzButton {\n appearance = input<ButtonAppearance>('secondary');\n busy = input(false);\n disabled = input(false, { transform: booleanAttribute });\n\n @HostBinding('class')\n get elementClass(): string {\n return ['button', `button-${this.appearance()}`, this.busy() ? 'busy' : ''].join(' ');\n }\n\n constructor(elementRef: ElementRef<HTMLElement>) {\n elementRef.nativeElement.addEventListener('click', (event) => {\n if (this.busy() || this.disabled()) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n return;\n }\n });\n }\n}\n","@if(busy()) {\n<span class=\"button--loading\">\n <svg class=\"button--loading-spinner\" xmlns=\"http://www.w3.org/2000/svg\" 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\" 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\"></path>\n </svg>\n</span>\n}\n<span class=\"button--label\">\n <ng-content></ng-content>\n</span>\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 { MzButton } from '../button/button.component';\n\n@Component({\n selector: 'mz-inline-edit',\n imports: [MzButton, FormsModule, CommonModule],\n templateUrl: './inline-edit.component.html',\n styleUrl: './inline-edit.component.scss'\n})\nexport class MzInlineEditComponent implements AfterViewInit {\n isEditing = false;\n busy = false;\n @Input() label?: string;\n @Input() layout: 'horizontal' | 'vertical' = 'horizontal';\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","<form class=\"mz-inline-edit\" [ngClass]=\"{ 'horizontal': layout === 'horizontal', 'vertical': layout === 'vertical' }\">\n @if (isEditing || !label) {\n <ng-content></ng-content>\n } @else if (label && !isEditing) {\n <button type=\"button\" class=\"label-button\" (click)=\"activate()\">\n <span>\n {{ label }}\n </span>\n <span class=\"text-secondary label-button-icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\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 } @if (isEditing) {\n <div class=\"edit-buttons\">\n <button type=\"submit\" mz-button [busy]=\"busy\" (click)=\"submitForm()\">Save</button>\n <button type=\"button\" mz-button appearance=\"subtle\" (click)=\"cancelEdit()\">Cancel</button>\n </div>\n }\n</form>\n","import { Component, input } from '@angular/core';\n\n@Component({\n selector: 'mz-async',\n imports: [],\n templateUrl: './async.component.html',\n styleUrl: './async.component.scss'\n})\nexport class MzAsync {\n isLoading = input(false);\n error = input<Error | undefined>(undefined);\n}\n","@if(isLoading()) {\n<div class=\"loading-content\">\n <ng-content select=\"[mzAsyncLoading]\"></ng-content>\n</div>\n<div class=\"loading-content\">Default loading look...</div>\n} @else if(error()) {\n<div class=\"error-content\">\n <ng-content select=\"[mzAsyncError]\"></ng-content>\n</div>\n<div class=\"error-content\">Default error look...</div>\n} @else {\n<ng-content select=\"[mzAsyncSuccess]\"></ng-content>\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[mzAsyncError]'\n})\nexport class MzAsyncError {\n\n constructor() { }\n\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[mzAsyncLoading]'\n})\nexport class MzAsyncLoading {\n\n constructor() { }\n\n}\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","import { InjectionToken } from \"@angular/core\";\nimport { MzDrawerConfig } from \"./drawer-config\";\n\n/** Injection token that can be used to provide default options for the dialog module. */\nexport const DEFAULT_MZ_DRAWER_CONFIG = new InjectionToken<MzDrawerConfig>('DefaultMzDrawerConfig');\n\nexport const MZ_DRAWER_DATA = new InjectionToken<any>('MzDrawerData');\n","import { Direction } from \"@angular/cdk/bidi\";\nimport { AutoFocusTarget, DialogRole } from \"@angular/cdk/dialog\";\nimport { PositionStrategy, ScrollStrategy } from \"@angular/cdk/overlay\";\nimport { BasePortalOutlet } from \"@angular/cdk/portal\";\nimport { Injector, Type, ViewContainerRef } from \"@angular/core\";\n\n/**\n * Configuration opening a modal dialog with the MzDrawer service. Properties here are exposes what's available in @angular/cdk DialogConfig\n * and with a few additional properties for MzDrawer.\n * See https://material.angular.io/cdk/dialog/api#DialogConfig\n */\nexport class MzDrawerConfig<D = any, C extends BasePortalOutlet = BasePortalOutlet> {\n /**\n * Where the attached component should live in Angular's *logical* component tree.\n * This affects what is available for injection and the change detection order for the\n * component instantiated inside of the dialog. This does not affect where the dialog\n * content will be rendered.\n */\n viewContainerRef?: ViewContainerRef;\n\n /**\n * Injector used for the instantiation of the component to be attached. If provided,\n * takes precedence over the injector indirectly provided by `ViewContainerRef`.\n */\n injector?: Injector;\n\n /** ID for the dialog. If omitted, a unique one will be generated. */\n id?: string;\n\n /** The ARIA role of the dialog element. */\n role?: DialogRole = 'dialog';\n\n /** Optional CSS class or classes applied to the overlay panel. */\n panelClass?: string | string[] = '';\n\n /** Whether the dialog has a backdrop. */\n hasBackdrop?: boolean = true;\n\n /** Optional CSS class or classes applied to the overlay backdrop. */\n backdropClass?: string | string[] = '';\n\n /** Whether the dialog closes with the escape key or pointer events outside the panel element. */\n disableClose?: boolean = false;\n\n /** Width of the dialog. */\n width?: string = '';\n\n /** Height of the dialog. */\n height?: string = '';\n\n /** Min-width of the dialog. If a number is provided, assumes pixel units. */\n minWidth?: number | string;\n\n /** Min-height of the dialog. If a number is provided, assumes pixel units. */\n minHeight?: number | string;\n\n /** Max-width of the dialog. If a number is provided, assumes pixel units. Defaults to 80vw. */\n maxWidth?: number | string;\n\n /** Max-height of the dialog. If a number is provided, assumes pixel units. */\n maxHeight?: number | string;\n\n /** Strategy to use when positioning the dialog. Defaults to centering it on the page. */\n positionStrategy?: PositionStrategy;\n\n /** Data being injected into the child component. */\n data?: D | null = null;\n\n /** Layout direction for the dialog's content. */\n direction?: Direction;\n\n /** ID of the element that describes the dialog. */\n ariaDescribedBy?: string | null = null;\n\n /** ID of the element that labels the dialog. */\n ariaLabelledBy?: string | null = null;\n\n /** Dialog label applied via `aria-label` */\n ariaLabel?: string | null = null;\n\n /** Whether this is a modal dialog. Used to set the `aria-modal` attribute. */\n ariaModal?: boolean = true;\n\n /**\n * Where the dialog should focus on open.\n * @breaking-change 14.0.0 Remove boolean option from autoFocus. Use string or\n * AutoFocusTarget instead.\n */\n autoFocus?: AutoFocusTarget = 'first-tabbable';\n\n /**\n * Whether the dialog should restore focus to the previously-focused element upon closing.\n * Has the following behavior based on the type that is passed in:\n * - `boolean` - when true, will return focus to the element that was focused before the dialog\n * was opened, otherwise won't restore focus at all.\n * - `string` - focus will be restored to the first element that matches the CSS selector.\n * - `HTMLElement` - focus will be restored to the specific element.\n */\n restoreFocus?: boolean | string | HTMLElement = true;\n\n /**\n * Scroll strategy to be used for the dialog. This determines how\n * the dialog responds to scrolling underneath the panel element.\n */\n scrollStrategy?: ScrollStrategy;\n\n /**\n * Whether the dialog should close when the user goes backwards/forwards in history.\n */\n closeOnNavigation?: boolean;\n}","import { CdkDialogContainer } from '@angular/cdk/dialog';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { Component, ElementRef, HostListener, Inject, NgZone, Optional, ViewEncapsulation } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { FocusTrapFactory, InteractivityChecker } from '@angular/cdk/a11y';\nimport { MzDrawerConfig } from '../drawer-config';\nimport { MzDrawerRef } from '../drawer-ref';\n\n@Component({\n selector: 'mz-drawer-container',\n imports: [CdkPortalOutlet],\n templateUrl: './drawer-container.component.html',\n styleUrl: './drawer-container.component.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'mz-drawer-container'\n }\n})\nexport class MzDrawerContainer extends CdkDialogContainer<MzDrawerConfig> {\n\n private dialogRef?: MzDrawerRef<any>;\n protected open = false;\n\n constructor(private elementRef: ElementRef, focusTrapFactory: FocusTrapFactory, readonly dialogConfig: MzDrawerConfig, protected interactivityChecker: InteractivityChecker, protected ngZone: NgZone, protected overlayRef: OverlayRef, @Optional() @Inject(DOCUMENT) _document: any) {\n super(elementRef, focusTrapFactory, _document, dialogConfig, interactivityChecker, ngZone, overlayRef);\n }\n\n associateDialogRef(dialogRef: MzDrawerRef<any>): void {\n this.dialogRef = dialogRef;\n }\n\n @HostListener('window:beforeunload', ['$event'])\n onBeforeUnload(event: BeforeUnloadEvent) {\n if (!this.dialogRef?.confirmDeactivation()) {\n event.preventDefault();\n event.returnValue = '';\n }\n }\n\n protected override _contentAttached(): void {\n super._contentAttached();\n const element = this.elementRef.nativeElement as HTMLElement;\n\n // for styling purposes\n element.firstElementChild?.classList.add('mz-drawer-component');\n\n // for animation purposes\n element.classList.add('open');\n }\n}\n","<ng-template cdkPortalOutlet />\n","// TODO: this needs to move\nexport interface CanDeactivateComponent {\n canDeactivate(): boolean;\n confirmDeactivation(): boolean;\n}\n\nexport const hasImplementation = <T>(obj: any, func: keyof T): obj is T => {\n return obj && (obj as T)[func] !== undefined;\n};\n\nexport type ModifierKey = 'altKey' | 'shiftKey' | 'ctrlKey' | 'metaKey';\n\n/**\n * Checks whether a modifier key is pressed.\n * @param event Event to be checked.\n */\nexport function hasModifierKey(event: KeyboardEvent, ...modifiers: ModifierKey[]): boolean {\n if (modifiers.length) {\n return modifiers.some(modifier => event[modifier]);\n }\n\n return event.altKey || event.shiftKey || event.ctrlKey || event.metaKey;\n}\n","import { DialogCloseOptions, DialogRef } from \"@angular/cdk/dialog\";\nimport { MzDrawerConfig } from \"./drawer-config\";\nimport { BasePortalOutlet } from \"@angular/cdk/portal\";\nimport { Observable, filter, merge } from \"rxjs\";\nimport { CanDeactivateComponent, hasImplementation } from \"../guard-deactivate\";\n\nexport class MzDrawerRef<R, C = any> {\n /** Whether the user is allowed to close the dialog. */\n readonly disableClose: boolean | undefined;\n readonly id: string;\n\n constructor(readonly cdkRef: DialogRef<R, C>, readonly config: MzDrawerConfig, readonly containerInstance: BasePortalOutlet) {\n this.disableClose = config.disableClose;\n this.id = cdkRef.id;\n merge(this.cdkRef.backdropClick, this.cdkRef.keydownEvents.pipe(filter((event) => !this.disableClose && event.code === 'Escape' && !event.getModifierState(event.key)))).subscribe((event) => {\n if (!this.disableClose) {\n event.preventDefault();\n this.tryClose(undefined, { focusOrigin: event.type === 'keydown' ? 'keyboard' : 'mouse' });\n }\n });\n }\n\n get componentInstance(): C | null {\n return this.cdkRef.componentInstance;\n }\n\n get closed(): Observable<R | undefined> {\n return this.cdkRef.closed;\n }\n\n /**\n * Confirms the component's deactivation then closes the dialog.\n * @param result\n * @param options\n * @returns\n */\n tryClose(result?: R, options?: DialogCloseOptions): boolean {\n if (this.canDeactivate() || this.confirmDeactivation()) {\n this.cdkRef.close(result, options);\n return true;\n }\n\n return false;\n }\n\n /**\n * Closes the dialog without confirmation.\n * @param result\n * @param options\n */\n close(result?: R, options?: DialogCloseOptions): void {\n this.cdkRef.close(result, options);\n }\n\n confirmDeactivation(): boolean {\n if (hasImplementation<CanDeactivateComponent>(this.cdkRef.componentInstance, 'canDeactivate') && !this.cdkRef.componentInstance.canDeactivate()) {\n return this.cdkRef.componentInstance.confirmDeactivation();\n }\n\n return true;\n }\n\n canDeactivate(): boolean {\n if (hasImplementation<CanDeactivateComponent>(this.cdkRef.componentInstance, 'canDeactivate')) {\n return this.cdkRef.componentInstance.canDeactivate();\n }\n\n return true;\n }\n}\n","import { Dialog, DialogConfig } from '@angular/cdk/dialog';\nimport { ComponentType, Overlay } from '@angular/cdk/overlay';\nimport { Inject, Injectable, Injector, OnDestroy, Optional, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { take } from 'rxjs';\nimport { DEFAULT_MZ_DRAWER_CONFIG, MZ_DRAWER_DATA } from './drawer-injectors';\nimport { MzDrawerContainer } from './container/drawer-container.component';\nimport { MzDrawerConfig } from './drawer-config';\nimport { MzDrawerRef } from './drawer-ref';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MzDrawer implements OnDestroy {\n private cdkDialog: Dialog;\n private openDialogs: MzDrawerRef<any>[] = [];\n\n constructor(private injector: Injector, private overlay: Overlay, @Optional() @Inject(DEFAULT_MZ_DRAWER_CONFIG) private configuredOptions: MzDrawerConfig, @Optional() private viewContainerRef?: ViewContainerRef | null) {\n this.cdkDialog = injector.get(Dialog);\n }\n\n /**\n * Opens a modal dialog containing the given component.\n * @param component Type of the component to load into the dialog.\n * @param config Extra configuration options.\n * @returns Reference to the newly-opened dialog.\n */\n open<R = any, D = any, T = any>(component: ComponentType<T>, config?: MzDrawerConfig<D>): MzDrawerRef<R, T>;\n /**\n * Opens a modal dialog containing the given template.\n * @param template TemplateRef to instantiate as the dialog content.\n * @param config Extra configuration options.\n * @returns Reference to the newly-opened dialog.\n */\n open<R = any, D = any, T = any>(template: TemplateRef<T>, config?: MzDrawerConfig<D>): MzDrawerRef<R, T>;\n open<R = any, D = any, T = any>(componentOrTemplateRef: ComponentType<T> | TemplateRef<T>, config?: MzDrawerConfig<D>): MzDrawerRef<R, T>;\n open<R = any, D = any, T = any>(componentOrTemplateRef: ComponentType<T> | TemplateRef<T>, config?: MzDrawerConfig<D>): MzDrawerRef<R, T> {\n\n const defaultOptions = new MzDrawerConfig<D>();\n const options = { ...(this.configuredOptions || defaultOptions), ...config };\n\n // compute closeOnNavigation if left undefined. dialogs need to be destroyed either via navigation or component destruction\n if (options.closeOnNavigation === undefined) {\n options.closeOnNavigation = options.viewContainerRef === undefined && (this.viewContainerRef === undefined || this.viewContainerRef === null);\n }\n\n let dialogRef: MzDrawerRef<R, T>;\n const cdkRef = this.cdkDialog.open<R, D, T>(componentOrTemplateRef, {\n ...options,\n injector: options.injector,\n viewContainerRef: options.viewContainerRef || this.viewContainerRef || undefined,\n // Disable closing because we want full control of closing behavior, such as animation and confirmation.\n disableClose: true,\n // Disable closing on destroy, because this service cleans up its open dialogs as well.\n closeOnDestroy: true,\n closeOnOverlayDetachments: false,\n closeOnNavigation: options.closeOnNavigation,\n container: {\n type: MzDrawerContainer,\n providers: () => [\n { provide: MzDrawerConfig, useValue: options },\n { provide: DialogConfig, useValue: options },\n ],\n },\n templateContext: () => ({ dialogRef }),\n providers: (ref, cdkConfig, dialogContainer) => {\n dialogRef = new MzDrawerRef(ref, options, dialogContainer);\n return [\n { provide: MZ_DRAWER_DATA, useValue: cdkConfig.data },\n { provide: MzDrawerRef, useValue: dialogRef },\n ];\n },\n });\n this.openDialogs.push(dialogRef!);\n dialogRef!.closed.pipe(take(1)).subscribe(() => {\n const i = this.openDialogs.indexOf(dialogRef);\n this.openDialogs.splice(i, 1);\n });\n\n if (cdkRef.containerInstance instanceof MzDrawerContainer) {\n cdkRef.containerInstance.associateDialogRef(dialogRef!);\n }\n\n return dialogRef!;\n }\n\n /**\n * Gets an array of currently opened dialogs that were opened with this instance of service.\n */\n getDialogs(): MzDrawerRef<any>[] {\n return this.openDialogs;\n }\n\n confirmDeactivation(): boolean {\n // We assume all dialogs belong to the same component tree, so we can just check the first one/last opened\n const i = this.openDialogs.findLastIndex((ref) => !ref.canDeactivate());\n\n if (i > -1) {\n return this.openDialogs[i].confirmDeactivation();\n }\n\n return true;\n }\n\n closeAll(): void {\n this.closeDialogs(this.openDialogs);\n }\n\n ngOnDestroy(): void {\n this.closeDialogs(this.openDialogs);\n }\n\n private closeDialogs(dialogs: MzDrawerRef<any>[]) {\n let i = dialogs.length;\n\n while (i--) {\n dialogs[i].close();\n }\n }\n}","import { Component, input } from '@angular/core';\nimport { MzDrawerRef } from '../drawer-ref';\n\n@Component({\n selector: 'mz-drawer-header',\n imports: [],\n templateUrl: './drawer-header.component.html',\n styleUrl: './drawer-header.component.scss',\n host: {\n 'class': 'mz-drawer-header'\n }\n})\nexport class MzDrawerHeader {\n title = input<string>('');\n\n constructor(private drawerRef: MzDrawerRef<any>) {}\n\n protected close(e: UIEvent) {\n this.drawerRef.tryClose(undefined, { focusOrigin: e.detail === 0 ? 'keyboard' : 'mouse' });\n }\n\n protected get disableClose(): boolean {\n return this.drawerRef.disableClose ?? false;\n }\n}\n","<h2>{{ title() }}</h2>\n@if(!disableClose){\n<div>\n <button class=\"button-close\" (click)=\"close($event)\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6 18 18 6M6 6l12 12\" />\n </svg>\n </button>\n</div>\n}","import { Component } from '@angular/core';\n\n@Component({\n selector: 'mz-drawer-content',\n imports: [],\n templateUrl: './drawer-content.component.html',\n styleUrl: './drawer-content.component.scss',\n host: {\n 'class': 'mz-drawer-content'\n }\n})\nexport class MzDrawerContent {\n\n}\n","<ng-content></ng-content>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'mz-drawer-footer',\n imports: [],\n templateUrl: './drawer-footer.component.html',\n styleUrl: './drawer-footer.component.scss',\n host: {\n 'class': 'mz-drawer-footer'\n }\n})\nexport class MzDrawerFooter {\n\n}\n","<div class=\"drawer-projected\">\n <ng-content></ng-content>\n</div>","import { DialogModule } from \"@angular/cdk/dialog\";\nimport { NgModule } from \"@angular/core\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\nimport { PortalModule } from \"@angular/cdk/portal\";\nimport { MzDrawer } from \"./drawer\";\nimport { MzDrawerContainer } from \"./container/drawer-container.component\";\nimport { MzDrawerHeader } from \"./drawer-header/drawer-header.component\";\nimport { MzDrawerContent } from \"./drawer-content/drawer-content.component\";\nimport { MzDrawerFooter } from \"./drawer-footer/drawer-footer.component\";\n\n@NgModule({\n imports: [DialogModule, OverlayModule, PortalModule, MzDrawerContainer, MzDrawerHeader, MzDrawerContent, MzDrawerFooter],\n exports: [\n DialogModule,\n MzDrawerContainer,\n MzDrawerHeader,\n MzDrawerContent,\n MzDrawerFooter,\n ],\n providers: [MzDrawer]\n})\nexport class MzDrawerModule {}","import { CdkDialogContainer, DialogConfig } from '@angular/cdk/dialog';\nimport { Component, ElementRef, Inject, NgZone, Optional, ViewEncapsulation } from '@angular/core';\nimport { FocusTrapFactory, InteractivityChecker } from '@angular/cdk/a11y';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { DOCUMENT } from '@angular/common';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\n\n@Component({\n selector: 'mz-dialog-container',\n imports: [CdkPortalOutlet],\n templateUrl: './dialog-container.component.html',\n styleUrl: './dialog-container.component.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'mz-dialog-container',\n },\n})\nexport class MzDialogContainer extends CdkDialogContainer<DialogConfig> {\n constructor(private elementRef: ElementRef, focusTrapFactory: FocusTrapFactory, readonly dialogConfig: DialogConfig, protected interactivityChecker: InteractivityChecker, protected ngZone: NgZone, protected overlayRef: OverlayRef, @Optional() @Inject(DOCUMENT) _document: any) {\n super(elementRef, focusTrapFactory, _document, dialogConfig, interactivityChecker, ngZone, overlayRef);\n }\n\n protected override _contentAttached(): void {\n super._contentAttached();\n this.enter();\n }\n\n private enter() {\n const html = this.elementRef.nativeElement as HTMLElement;\n html.classList.add('open');\n }\n}\n","<ng-template cdkPortalOutlet></ng-template>","import { Component, input } from '@angular/core';\nimport { SvgIconComponent } from '../../svg-icon/svg-icon.component';\nimport { DialogRef } from '@angular/cdk/dialog';\n\n@Component({\n selector: 'mz-dialog-header',\n templateUrl: './dialog-header.component.html',\n styleUrl: './dialog-header.component.scss',\n})\nexport class MzDialogHeader {\n title = input<string>('');\n\n constructor() { }\n}\n","<h2>{{ title() }}</h2>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'mz-dialog-footer',\n imports: [],\n templateUrl: './dialog-footer.component.html',\n styleUrl: './dialog-footer.component.scss'\n})\nexport class MzDialogFooter {\n\n}\n","<ng-content></ng-content>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'mz-dialog-content',\n imports: [],\n templateUrl: './dialog-content.component.html',\n styleUrl: './dialog-content.component.scss'\n})\nexport class MzDialogContent {\n\n}\n","<ng-content></ng-content>","import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\nimport { Component, Inject } from '@angular/core';\nimport { MessageDialogData } from './message-dialog-data';\nimport { MzDialogHeader } from '../dialog-header/dialog-header.component';\nimport { MzDialogFooter } from '../dialog-footer/dialog-footer.component';\nimport { MzDialogContent } from '../dialog-content/dialog-content.component';\nimport { MzButton } from '../../button/button.component';\n\n@Component({\n selector: 'mz-message-dialog',\n imports: [MzDialogHeader, MzDialogFooter, MzButton, MzDialogContent],\n templateUrl: './message-dialog.component.html',\n styleUrl: './message-dialog.component.scss',\n})\nexport class MzMessageDialog {\n constructor(private dialogRef: DialogRef, @Inject(DIALOG_DATA) protected data: MessageDialogData) {}\n\n ok() {\n this.dialogRef.close(true);\n }\n\n close() {\n this.dialogRef.close(false);\n }\n}\n","<mz-dialog-header [title]=\"data.title\"></mz-dialog-header>\n<mz-dialog-content>\n {{ data.message }}\n</mz-dialog-content>\n<mz-dialog-footer>\n @if(data.cancelAction.length > 0 ) {\n <button (click)=\"close()\" mz-button appearance=\"subtle\">{{ data.cancelAction }}</button>\n } @if(data.action.length > 0) {\n <button (click)=\"ok()\" cdkFocusInitial mz-button [appearance]=\"data.appearance || 'primary'\">{{ data.action }}</button>\n }\n</mz-dialog-footer>\n","import { AutoFocusTarget } from \"@angular/cdk/dialog\";\nimport { InjectionToken } from \"@angular/core\";\n\nexport const MZ_DIALOG_DEFAULT_OPTIONS = new InjectionToken<MzDialogConfig<any>>('MZ_DIALOG_DEFAULT_OPTIONS');\n\nexport class MzDialogConfig<D> {\n /** Optional CSS class or classes applied to the overlay panel. */\n panelClass?: string | string[] = '';\n\n /** Whether the dialog has a backdrop. */\n hasBackdrop?: boolean = true;\n\n /** Optional CSS class or classes applied to the overlay backdrop. */\n backdropClass?: string | string[] = '';\n\n /** Whether the dialog closes with the escape key or pointer events outside the panel element. */\n disableClose?: boolean = false;\n\n /** Width of the dialog. */\n width?: string = '';\n\n /** Height of the dialog. */\n height?: string = '';\n\n /** Min-width of the dialog. If a number is provided, assumes pixel units. */\n minWidth?: number | string;\n\n /** Min-height of the dialog. If a number is provided, assumes pixel units. */\n minHeight?: number | string;\n\n /** Max-width of the dialog. If a number is provided, assumes pixel units. Defaults to 80vw. */\n maxWidth?: number | string;\n\n /** Max-height of the dialog. If a number is provided, assumes pixel units. */\n maxHeight?: number | string;\n\n /** Data being injected into the child component. */\n data?: D | null = null;\n\n /**\n * Where the dialog should focus on open.\n * @breaking-change 14.0.0 Remove boolean option from autoFocus. Use string or\n * AutoFocusTarget instead.\n */\n autoFocus?: AutoFocusTarget = 'first-tabbable';\n\n /**\n * Whether the dialog should restore focus to the previously-focused element upon closing.\n * Has the following behavior based on the type that is passed in:\n * - `boolean` - when true, will return focus to the element that was focused before the dialog\n * was opened, otherwise won't restore focus at all.\n * - `string` - focus will be restored to the first element that matches the CSS selector.\n * - `HTMLElement` - focus will be restored to the specific element.\n */\n restoreFocus?: boolean | string | HTMLElement = true;\n}","import { Dialog, DialogConfig, DialogRef } from '@angular/cdk/dialog';\nimport { ComponentType } from '@angular/cdk/overlay';\nimport { Inject, Injectable, Injector, Optional, TemplateRef } from '@angular/core';\nimport { MzDialogContainer } from './dialog-container/dialog-container.component';\nimport { MzMessageDialog } from './message-dialog/message-dialog.component';\nimport { DialogAppearance } from './dialog-appearance';\nimport { firstValueFrom } from 'rxjs';\nimport { MessageDialogData } from './message-dialog/message-dialog-data';\nimport { MZ_DIALOG_DEFAULT_OPTIONS, MzDialogConfig } from './dialog-config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MzDialog {\n private cdkDialog: Dialog;\n constructor(injector: Injector, @Optional() @Inject(MZ_DIALOG_DEFAULT_OPTIONS) private defaultOptions: DialogConfig<any>) {\n this.cdkDialog = injector.get(Dialog);\n }\n\n /**\n * Displays a message modal dialog.\n * @param title The title of the dialog.\n * @param message The message to display.\n * @param action The text for the action button. Not displayed if empty.\n * @param cancelAction The text for the cancel button. Not displayed if empty.\n * @param appearance The appearance of the dialog.\n * @returns A reference to the opened dialog.\n */\n display(title: string, message: string, action: string = 'OK', cancelAction: string = '', appearance?: DialogAppearance): DialogRef<void, MzMessageDialog> {\n return this.open(MzMessageDialog, { data: { title: title, message: message, appearance: appearance, action: action, cancelAction: cancelAction } satisfies MessageDialogData, hasBackdrop: true });\n }\n\n /**\n * Opens a confirmation modal dialog.\n * @param title The title of the dialog.\n * @param message The message to display in the dialog.\n * @param action The text for the OK button.\n * @param cancelAction The text for the Cancel button. Not displayed if empty.\n * @param appearance The appearance of the dialog.\n * @returns A promise that resolves to true if the user confirmed, false if canceled, undefined if dismissed.\n */\n confirm(title: string, message: string, action: string = 'OK', cancelAction: string = 'Cancel', appearance?: DialogAppearance): Promise<boolean | undefined> {\n const ref = this.open(MzMessageDialog, { data: { title: title, message: message, appearance: appearance, action: action, cancelAction: cancelAction } satisfies MessageDialogData, hasBackdrop: true });\n return firstValueFrom(ref.closed) as Promise<boolean | undefined>;\n }\n\n open<R = any, D = any, T = any>(template: TemplateRef<T>, config?: MzDialogConfig<D>): DialogRef<R, T>;\n open<R = any, D = any, T = any>(component: ComponentType<T>, config?: MzDialogConfig<D>): DialogRef<R, T>;\n open<R = any, D = any, T = any>(templateOrComponent: TemplateRef<T> | ComponentType<T>, config?: MzDialogConfig<D>): DialogRef<R, T> {\n const defaults = this.defaultOptions || new MzDialogConfig<D>();\n const options = { ...defaults, ...config };\n const dialogConfig = {\n panelClass: options.panelClass,\n hasBackdrop: options.hasBackdrop,\n backdropClass: options.backdropClass,\n disableClose: options.disableClose,\n width: options.width,\n height: options.height,\n minWidth: options.minWidth,\n minHeight: options.minHeight,\n maxWidth: options.maxWidth,\n maxHeight: options.maxHeight,\n data: options.data,\n autoFocus: options.autoFocus,\n restoreFocus: options.restoreFocus,\n closeOnNavigation: true,\n closeOnDestroy: true,\n closeOnOverlayDetachments: true,\n container: MzDialogContainer,\n } satisfies DialogConfig<D, R, MzDialogContainer>;\n const ref = this.cdkDialog.open<R, D, T>(templateOrComponent, dialogConfig);\n return ref;\n }\n}\n","import { DialogModule } from \"@angular/cdk/dialog\";\nimport { NgModule } from \"@angular/core\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\nimport { MzDialogContainer } from \"./dialog-container/dialog-container.component\";\nimport { MzDialog } from \"./dialog\";\nimport { MzMessageDialog } from \"./message-dialog/message-dialog.component\";\nimport { MzDialogHeader } from \"./dialog-header/dialog-header.component\";\nimport { MzDialogFooter } from \"./dialog-footer/dialog-footer.component\";\nimport { MzDialogContent } from \"./dialog-content/dialog-content.component\";\n\n@NgModule({\n imports: [DialogModule, OverlayModule, MzDialogContainer, MzDialogHeader, MzDialogContent, MzDialogFooter, MzMessageDialog],\n exports: [\n DialogModule,\n MzDialogHeader,\n MzDialogContent,\n MzDialogFooter,\n MzDialogContainer,\n MzMessageDialog\n ],\n providers: [MzDialog]\n})\nexport class MzDialogModule {}","import { CdkMenuModule, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectorRef, Component, EventEmitter, Input, Output, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FormsModule, NgForm } from '@angular/forms';\nimport { SvgIconComponent } from '../svg-icon/svg-icon.component';\n\n@Component({\n selector: 'mz-filter',\n exportAs: 'mzFilter',\n imports: [FormsModule, CommonModule, CdkMenuModule, SvgIconComponent],\n templateUrl: './filter.component.html',\n styleUrl: './filter.component.scss',\n})\nexport class FilterComponent {\n @Input() label = 'Filter';\n @Input() display = '';\n @Input() menuTemplate: TemplateRef<unknown> | null = null;\n @Output() clear = new EventEmitter<void>();\n @Output() apply = new EventEmitter<any>();\n\n @ViewChild(NgForm) protected menuForm?: NgForm;\n @ViewChild(CdkMenuTrigger) protected menuTrigger?: CdkMenuTrigger;\n\n close() { \n this.menuTrigger?.close();\n }\n\n protected clearFilter() {\n this.clear.emit();\n }\n\n protected applyFilter($event: Event) {\n console.log(this.menuForm?.value);\n if (this.menuForm?.valid === false) {\n console.log('form is invalid');\n $event.preventDefault();\n $event.stopPropagation();\n return;\n }\n }\n\n protected get filterLabel() {\n if(this.display) {\n return `${this.label}: ${this.display}`;\n }\n\n return this.label;\n }\n}\n","<button [cdkMenuTriggerFor]=\"filterMenu\" class=\"mz-filter-button\">{{filterLabel}}<mz-svg-icon key=\"chevron-down-control\"></mz-svg-icon></button>\n<ng-template #filterMenu>\n <div cdkMenu class=\"mz-dropdown-body\">\n <ng-container [ngTemplateOutlet]=\"menuTemplate\"></ng-container>\n </div>\n</ng-template>\n\n","import { Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FilterOptionModel } from '../filter/filter-option.model';\nimport { FormsModule, NgForm } from '@angular/forms';\nimport { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { MzSpinner } from '../spinner/spinner.component';\nimport { MzButton } from '../button/button.component';\n\n@Component({\n selector: 'mz-options-filter',\n imports: [FormsModule, CdkOverlayOrigin, CdkConnectedOverlay, MzSpinner, MzButton],\n templateUrl: './options-filter.component.html',\n styleUrl: './options-filter.component.scss',\n encapsulation: ViewEncapsulation.None\n})\nexport class OptionsFilterComponent {\n @Input() options?: FilterOptionModel<string>[];\n @Input() values: string[] = [];\n @Input() label = 'Filter';\n @Output() change = new EventEmitter<string | undefined>();\n @Input() selected?: string;\n @ViewChild(NgForm) form!: NgForm;\n\n protected open = false;\n protected search: string = '';\n\n get filterLabel(): string {\n if (!this.selected) {\n return this.label;\n }\n const item = this.options?.find((o) => o.value === this.selected);\n return item ? `${this.label}: ${item.label}` : this.label;\n }\n\n get filteredOptions(): FilterOptionModel<string>[] {\n const options = this.options ?? [];\n const search = this.search.trim().toLowerCase();\n\n if (!search) {\n return options;\n }\n\n return options.filter((o) => o.label.toLowerCase().includes(search));\n }\n\n apply() {\n this.change.emit(this.selected);\n this.open = false;\n }\n\n clear() {\n this.selected = undefined;\n this.change.emit(undefined);\n this.open = false;\n this.search = '';\n }\n\n toggleOverlay() {\n this.open = !this.open;\n }\n\n dismiss() {\n this.open = false;\n }\n}\n\nexport type OptionValueType = string | number | string[] | number[];\nexport type SelectOption = {\n label: string;\n value: OptionValueType;\n};","<button cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" (click)=\"toggleOverlay()\" mz-button [class.active]=\"open\">\n @if (options) {\n {{ filterLabel }}\n <span class=\"dropdown-icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\" class=\"dropdown-icon\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n </span>\n } @else {\n <mz-spinner></mz-spinner>\n }\n</button>\n<ng-template \n cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\" [cdkConnectedOverlayOpen]=\"open\" [cdkConnectedOverlayPanelClass]=\"'dropdown-body'\" (overlayOutsideClick)=\"dismiss()\">\n <div>\n <form #myForm=\"ngForm\" > \n <div>\n <label class=\"field\">\n <input type=\"text\" [(ngModel)]=\"search\" placeholder=\"Search...\" name=\"search\" class=\"form-input\" autocomplete=\"off\" />\n </label>\n <div class=\"dropdown-options\">\n @for(option of filteredOptions; track option.value) {\n <label class=\"field-option\" [class.active]=\"selected === option.value\">\n <input class=\"form-radio\" type=\"radio\" [(ngModel)]=\"selected\" name=\"option\" [value]=\"option.value\" (ngModelChange)=\"apply()\"/>\n <span class=\"radio-label\">{{ option.label }}</span>\n </label>\n }\n </div>\n </div>\n <div class=\"dropdown-buttons\">\n <button type=\"button\" mz-button appearance=\"subtle\" (click)=\"clear()\">Clear</button>\n </div>\n </form>\n </div>\n</ng-template>\n","import { AfterContentInit, Component, ContentChild, ContentChildren, Optional, QueryList, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FormsModule, NgForm, NgModel } from '@angular/forms';\nimport { FilterComponent } from '../filter.component';\nimport { MzButton } from '../../button/button.component';\n\n@Component({\n selector: 'mz-filter-menu',\n imports: [FormsModule, MzButton],\n exportAs: 'mzFilterMenu',\n templateUrl: './filter-menu.component.html',\n styleUrl: './filter-menu.component.scss',\n hostDirectives: [],\n host: {\n class: 'menu',\n },\n})\nexport class FilterMenuComponent implements AfterContentInit {\n ngAfterContentInit(): void {\n // this.container.createEmbeddedView(this.myTemplate);\n }\n\n @ViewChild('myTemplate') myTemplate!: TemplateRef<any>;\n @ViewChild('container', { read: ViewContainerRef }) container!: ViewContainerRef;\n @ContentChild(NgForm) form?: NgForm;\n @ContentChildren(NgModel, { descendants: true }) models?: QueryList<NgModel>;\n\n constructor(@Optional() private filter: FilterComponent | null) { }\n\n reset() {\n console.log('resetting');\n //this.form.resetForm();\n }\n\n apply() {\n console.log(this.models?.length);\n console.log(this.models?.map(m=>m.errors));\n if(this.form?.invalid){\n console.log('form is invalid', this.form.errors);\n }\n console.log('applying', this.form, this.form?.value, this.form?.form.value);\n this.form?.ngSubmit.emit();\n }\n\n clear() {\n\n }\n}\n","<ng-content></ng-content>\n<div class=\"button-list\">\n <button type=\"submit\" mz-button appearance=\"primary\" (click)=\"apply()\">Apply</button>\n <button type=\"reset\" mz-button appearance=\"subtle\" (click)=\"clear()\">Clear</button>\n</div>\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 { MzSpinner } 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';\nexport { MzDatePipe } from './lib/date-display/date.pipe';\nexport { MzDatePipeConfig, MZ_DATE_PIPE_DEFAULT_OPTIONS } from './lib/date-display/date-display-config';\n\n// inline edit\nexport { MzInlineEditComponent } 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// async\nexport { MzAsync } from './lib/async/async.component';\nexport { MzAsyncError } from './lib/async/async-error.directive';\nexport { MzAsyncLoading } from './lib/async/async-loading.directive';\n\n// table\nexport { ResultTableComponent } from './lib/result-table/result-table.component';\nexport { MzPagination } 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// 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 { MzButton } from './lib/button/button.component';\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';\n\n// drawer\nexport { MzDrawer } from './lib/drawer/drawer';\nexport { MzDrawerConfig } from './lib/drawer/drawer-config';\nexport { MzDrawerRef } from './lib/drawer/drawer-ref';\nexport { MzDrawerContainer } from './lib/drawer/container/drawer-container.component';\nexport { MzDrawerModule } from './lib/drawer/drawer.module';\nexport { MzDrawerHeader } from './lib/drawer/drawer-header/drawer-header.component';\nexport { MzDrawerContent } from './lib/drawer/drawer-content/drawer-content.component';\nexport { MzDrawerFooter } from './lib/drawer/drawer-footer/drawer-footer.component';\n\n// modal dialog\nexport { MzDialogModule } from './lib/dialog/dialog.module';\nexport { MzDialogContainer } from './lib/dialog/dialog-container/dialog-container.component';\nexport { MzDialog } from './lib/dialog/dialog';\nexport { MzDialogHeader } from './lib/dialog/dialog-header/dialog-header.component';\nexport { MzDialogContent } from './lib/dialog/dialog-content/dialog-content.component';\nexport { MzDialogFooter } from './lib/dialog/dialog-footer/dialog-footer.component';\nexport { MzMessageDialog as MzMessageModal } from './lib/dialog/message-dialog/message-dialog.component';\nexport { DialogAppearance } from './lib/dialog/dialog-appearance';\n\n// filter\nexport { FilterComponent } from './lib/filter/filter.component';\nexport { FilterOptionModel } from './lib/filter/filter-option.model';\nexport { OptionsFilterComponent } from './lib/options-filter/options-filter.component';\nexport { FilterMenuComponent } from './lib/filter/filter-menu/filter-menu.component';\n\n// utilities\nexport { CanDeactivateComponent, hasImplementation } from './lib/guard-deactivate';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.SortDirective","i2","filter","take","i1.MzDrawerRef","i1.FilterComponent"],"mappings":"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"}
|
|
@@ -3,11 +3,12 @@ import { PageEvent } from '../models/page-event';
|
|
|
3
3
|
import { MzPaginationConfig } from './pagination-config';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class MzPagination implements OnChanges {
|
|
6
|
+
private paginationOptions;
|
|
6
7
|
totalItems: number;
|
|
7
8
|
pageNumber: number;
|
|
8
|
-
pageSize?: number;
|
|
9
9
|
scrollTo?: HTMLElement;
|
|
10
|
-
pageSizeOptions
|
|
10
|
+
pageSizeOptions: number[];
|
|
11
|
+
pageSize: number;
|
|
11
12
|
changePage: EventEmitter<PageEvent>;
|
|
12
13
|
pages: number[];
|
|
13
14
|
pageCount: number;
|
|
@@ -15,11 +16,9 @@ export declare class MzPagination implements OnChanges {
|
|
|
15
16
|
constructor(paginationOptions: MzPaginationConfig);
|
|
16
17
|
ngOnChanges(): void;
|
|
17
18
|
protected isEllipsis(v: number): v is -1;
|
|
18
|
-
protected getPageSize(): number;
|
|
19
|
-
protected getPageSizeOptions(): number[];
|
|
20
19
|
changePageNumber(newValue: number): void;
|
|
21
20
|
changePageSize(newValue: string): void;
|
|
22
21
|
private updatePages;
|
|
23
22
|
static ɵfac: i0.ɵɵFactoryDeclaration<MzPagination, [{ optional: true; }]>;
|
|
24
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<MzPagination, "mz-pagination", never, { "totalItems": { "alias": "totalItems"; "required": true; }; "pageNumber": { "alias": "pageNumber"; "required": true; }; "
|
|
23
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MzPagination, "mz-pagination", never, { "totalItems": { "alias": "totalItems"; "required": true; }; "pageNumber": { "alias": "pageNumber"; "required": true; }; "scrollTo": { "alias": "scrollTo"; "required": false; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; }, { "changePage": "changePage"; }, never, never, true, never>;
|
|
25
24
|
}
|
package/package.json
CHANGED