@muziehdesign/components 18.2.0-beta.2345 → 18.2.0-beta.2353
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.
- package/esm2022/lib/dropdown/dropdown.component.mjs +3 -3
- package/esm2022/lib/options-filter/options-filter.component.mjs +3 -3
- package/fesm2022/muziehdesign-components.mjs +4 -4
- package/fesm2022/muziehdesign-components.mjs.map +1 -1
- package/package.json +1 -1
- package/styles/design/_utilities.scss +2 -1
- package/styles/mixins/_dropdown.scss +10 -0
- package/styles/mixins/_index.scss +5 -2
- package/styles/mixins/_layout.scss +0 -0
|
@@ -14,14 +14,14 @@ export class MzDropdownComponent {
|
|
|
14
14
|
this.open = false;
|
|
15
15
|
}
|
|
16
16
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: MzDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: MzDropdownComponent, isStandalone: true, selector: "mz-dropdown", inputs: { label: "label", open: "open" }, ngImport: i0, template: "<button cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" (click)=\"toggle()\" class=\"button button-secondary\" [class.active]=\"open\">\n {{ label }}\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\" class=\"mz-dropdown-icon\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n</button>\n<ng-template \n cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\" [cdkConnectedOverlayOpen]=\"open\" (overlayOutsideClick)=\"collapse()\" (detach)=\"collapse()\">\n <div cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\" class=\"mz-dropdown-body\">\n <ng-content></ng-content>\n </div>\n</ng-template>", styles: [".mz-dropdown-icon{height:1.5rem;width:1.5rem;display:inline-block}.mz-dropdown-body{background-color:var(--surface-bg
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: MzDropdownComponent, isStandalone: true, selector: "mz-dropdown", inputs: { label: "label", open: "open" }, ngImport: i0, template: "<button cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" (click)=\"toggle()\" class=\"button button-secondary\" [class.active]=\"open\">\n {{ label }}\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\" class=\"mz-dropdown-icon\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n</button>\n<ng-template \n cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\" [cdkConnectedOverlayOpen]=\"open\" (overlayOutsideClick)=\"collapse()\" (detach)=\"collapse()\">\n <div cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\" class=\"mz-dropdown-body\">\n <ng-content></ng-content>\n </div>\n</ng-template>", styles: [".mz-dropdown-icon{height:1.5rem;width:1.5rem;display:inline-block;padding-left:.5rem}.mz-dropdown-body{background-color:var(--surface-bg);min-width:5rem;margin-top:.25rem;padding:.75rem;border-radius:var(--surface-border-radius);--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1) !important;--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color) !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-shadow)!important}.mz-dropdown-item{display:block;width:100%;padding:.5rem;font-size:.875rem;line-height:1.25rem;text-align:left;border-radius:var(--button-border-radius)}.mz-dropdown-item:hover{background-color:var(--color-neutral-200)}\n"], dependencies: [{ kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
18
18
|
}
|
|
19
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: MzDropdownComponent, decorators: [{
|
|
20
20
|
type: Component,
|
|
21
|
-
args: [{ selector: 'mz-dropdown', standalone: true, imports: [CdkOverlayOrigin, CdkConnectedOverlay, CdkTrapFocus], encapsulation: ViewEncapsulation.None, template: "<button cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" (click)=\"toggle()\" class=\"button button-secondary\" [class.active]=\"open\">\n {{ label }}\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\" class=\"mz-dropdown-icon\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n</button>\n<ng-template \n cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\" [cdkConnectedOverlayOpen]=\"open\" (overlayOutsideClick)=\"collapse()\" (detach)=\"collapse()\">\n <div cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\" class=\"mz-dropdown-body\">\n <ng-content></ng-content>\n </div>\n</ng-template>", styles: [".mz-dropdown-icon{height:1.5rem;width:1.5rem;display:inline-block}.mz-dropdown-body{background-color:var(--surface-bg
|
|
21
|
+
args: [{ selector: 'mz-dropdown', standalone: true, imports: [CdkOverlayOrigin, CdkConnectedOverlay, CdkTrapFocus], encapsulation: ViewEncapsulation.None, template: "<button cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" (click)=\"toggle()\" class=\"button button-secondary\" [class.active]=\"open\">\n {{ label }}\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\" class=\"mz-dropdown-icon\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n</button>\n<ng-template \n cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\" [cdkConnectedOverlayOpen]=\"open\" (overlayOutsideClick)=\"collapse()\" (detach)=\"collapse()\">\n <div cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\" class=\"mz-dropdown-body\">\n <ng-content></ng-content>\n </div>\n</ng-template>", styles: [".mz-dropdown-icon{height:1.5rem;width:1.5rem;display:inline-block;padding-left:.5rem}.mz-dropdown-body{background-color:var(--surface-bg);min-width:5rem;margin-top:.25rem;padding:.75rem;border-radius:var(--surface-border-radius);--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1) !important;--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color) !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-shadow)!important}.mz-dropdown-item{display:block;width:100%;padding:.5rem;font-size:.875rem;line-height:1.25rem;text-align:left;border-radius:var(--button-border-radius)}.mz-dropdown-item:hover{background-color:var(--color-neutral-200)}\n"] }]
|
|
22
22
|
}], propDecorators: { label: [{
|
|
23
23
|
type: Input
|
|
24
24
|
}], open: [{
|
|
25
25
|
type: Input
|
|
26
26
|
}] } });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBVXBFLE1BQU0sT0FBTyxtQkFBbUI7SUFSaEM7UUFTYSxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLFNBQUksR0FBRyxLQUFLLENBQUM7S0FTekI7SUFQRyxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDekIsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDOzhHQVZRLG1CQUFtQjtrR0FBbkIsbUJBQW1CLGlIQ1poQyw0dUJBWWMsK3pCRExBLGdCQUFnQix1SUFBRSxtQkFBbUIsNCtCQUFFLFlBQVk7OzJGQUtwRCxtQkFBbUI7a0JBUi9CLFNBQVM7K0JBQ0ksYUFBYSxjQUNYLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLFlBQVksQ0FBQyxpQkFHL0MsaUJBQWlCLENBQUMsSUFBSTs4QkFHNUIsS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka1RyYXBGb2N1cyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IENka0Nvbm5lY3RlZE92ZXJsYXksIENka092ZXJsYXlPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ216LWRyb3Bkb3duJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDZGtPdmVybGF5T3JpZ2luLCBDZGtDb25uZWN0ZWRPdmVybGF5LCBDZGtUcmFwRm9jdXNdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2Ryb3Bkb3duLmNvbXBvbmVudC5zY3NzJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBNekRyb3Bkb3duQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJyc7XG4gICAgQElucHV0KCkgb3BlbiA9IGZhbHNlO1xuXG4gICAgdG9nZ2xlKCkge1xuICAgICAgdGhpcy5vcGVuID0gIXRoaXMub3BlbjtcbiAgICB9XG5cbiAgICBjb2xsYXBzZSgpIHtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxufVxuIiwiPGJ1dHRvbiBjZGtPdmVybGF5T3JpZ2luICN0cmlnZ2VyPVwiY2RrT3ZlcmxheU9yaWdpblwiIChjbGljayk9XCJ0b2dnbGUoKVwiIGNsYXNzPVwiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnlcIiBbY2xhc3MuYWN0aXZlXT1cIm9wZW5cIj5cbiAgICB7eyBsYWJlbCB9fVxuXG4gICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIGNsYXNzPVwibXotZHJvcGRvd24taWNvblwiPlxuICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiBkPVwiTTE5IDlsLTcgNy03LTdcIiAvPlxuICAgIDwvc3ZnPlxuPC9idXR0b24+XG48bmctdGVtcGxhdGUgXG4gICAgY2RrQ29ubmVjdGVkT3ZlcmxheSBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJ0cmlnZ2VyXCIgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT1cIm9wZW5cIiAob3ZlcmxheU91dHNpZGVDbGljayk9XCJjb2xsYXBzZSgpXCIgKGRldGFjaCk9XCJjb2xsYXBzZSgpXCI+XG4gICAgPGRpdiBjZGtUcmFwRm9jdXMgW2Nka1RyYXBGb2N1c0F1dG9DYXB0dXJlXT1cInRydWVcIiBjbGFzcz1cIm16LWRyb3Bkb3duLWJvZHlcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
@@ -44,11 +44,11 @@ export class OptionsFilterComponent {
|
|
|
44
44
|
this.open = false;
|
|
45
45
|
}
|
|
46
46
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: OptionsFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
47
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: OptionsFilterComponent, isStandalone: true, selector: "mz-options-filter", inputs: { options: "options", values: "values", label: "label", selected: "selected" }, outputs: { change: "change" }, viewQueries: [{ propertyName: "form", first: true, predicate: NgForm, descendants: true }], ngImport: i0, template: "<button cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" (click)=\"toggleOverlay()\" class=\"button button-secondary\" [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\" class=\"button button-tertiary\" (click)=\"clear()\">Clear</button>\n </div>\n </form>\n </div>\n</ng-template>\n", styles: [".dropdown-icon{height:1.5rem;width:1.5rem;display:inline-block;padding-left:.5rem}.dropdown-body{background-color:var(--surface-bg);min-width:5rem;margin-top:.25rem;padding:.75rem;border-radius:var(--surface-border-radius);box-shadow:var(--tw-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-shadow)!important}.dropdown-buttons{display:flex;margin-top:.25rem}.dropdown-options{max-height:15rem;overflow-y:auto}.dropdown-options{display:inline-flex;flex-direction:column;width:100%;gap:.25rem}.dropdown-options .field-option{display:inline-flex;position:relative;padding-top:.625rem;padding-bottom:.625rem;gap:.25rem;align-items:center;font-size:.875rem;line-height:1.25rem;font-weight:500;background-color:transparent;border-radius:var(--button-border-radius);cursor:pointer}.dropdown-options .field-option:hover{background-color:var(--color-neutral-200)}.dropdown-options .field-option.active{background-color:color-mix(in srgb,var(--color-neutral-400, #000) 65%,transparent)}.dropdown-options .field-option input[type=radio]{display:none}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "component", type: SpinnerComponent, selector: "mz-spinner", inputs: ["size", "type"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
47
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: OptionsFilterComponent, isStandalone: true, selector: "mz-options-filter", inputs: { options: "options", values: "values", label: "label", selected: "selected" }, outputs: { change: "change" }, viewQueries: [{ propertyName: "form", first: true, predicate: NgForm, descendants: true }], ngImport: i0, template: "<button cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" (click)=\"toggleOverlay()\" class=\"button button-secondary\" [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\" class=\"button button-tertiary\" (click)=\"clear()\">Clear</button>\n </div>\n </form>\n </div>\n</ng-template>\n", styles: [".dropdown-icon{height:1.5rem;width:1.5rem;display:inline-block;padding-left:.5rem}.dropdown-body{background-color:var(--surface-bg);min-width:5rem;margin-top:.25rem;padding:.75rem;border-radius:var(--surface-border-radius);--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1) !important;--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color) !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-shadow)!important}.dropdown-buttons{display:flex;margin-top:.25rem}.dropdown-options{max-height:15rem;overflow-y:auto}.dropdown-options{display:inline-flex;flex-direction:column;width:100%;gap:.25rem}.dropdown-options .field-option{display:inline-flex;position:relative;padding-top:.625rem;padding-bottom:.625rem;gap:.25rem;align-items:center;font-size:.875rem;line-height:1.25rem;font-weight:500;background-color:transparent;border-radius:var(--button-border-radius);cursor:pointer}.dropdown-options .field-option:hover{background-color:var(--color-neutral-200)}.dropdown-options .field-option.active{background-color:color-mix(in srgb,var(--color-neutral-400, #000) 65%,transparent)}.dropdown-options .field-option input[type=radio]{display:none}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "component", type: SpinnerComponent, selector: "mz-spinner", inputs: ["size", "type"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
48
48
|
}
|
|
49
49
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: OptionsFilterComponent, decorators: [{
|
|
50
50
|
type: Component,
|
|
51
|
-
args: [{ selector: 'mz-options-filter', standalone: true, imports: [FormsModule, CdkOverlayOrigin, CdkConnectedOverlay, SpinnerComponent], encapsulation: ViewEncapsulation.None, template: "<button cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" (click)=\"toggleOverlay()\" class=\"button button-secondary\" [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\" class=\"button button-tertiary\" (click)=\"clear()\">Clear</button>\n </div>\n </form>\n </div>\n</ng-template>\n", styles: [".dropdown-icon{height:1.5rem;width:1.5rem;display:inline-block;padding-left:.5rem}.dropdown-body{background-color:var(--surface-bg);min-width:5rem;margin-top:.25rem;padding:.75rem;border-radius:var(--surface-border-radius);box-shadow:var(--tw-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-shadow)!important}.dropdown-buttons{display:flex;margin-top:.25rem}.dropdown-options{max-height:15rem;overflow-y:auto}.dropdown-options{display:inline-flex;flex-direction:column;width:100%;gap:.25rem}.dropdown-options .field-option{display:inline-flex;position:relative;padding-top:.625rem;padding-bottom:.625rem;gap:.25rem;align-items:center;font-size:.875rem;line-height:1.25rem;font-weight:500;background-color:transparent;border-radius:var(--button-border-radius);cursor:pointer}.dropdown-options .field-option:hover{background-color:var(--color-neutral-200)}.dropdown-options .field-option.active{background-color:color-mix(in srgb,var(--color-neutral-400, #000) 65%,transparent)}.dropdown-options .field-option input[type=radio]{display:none}\n"] }]
|
|
51
|
+
args: [{ selector: 'mz-options-filter', standalone: true, imports: [FormsModule, CdkOverlayOrigin, CdkConnectedOverlay, SpinnerComponent], encapsulation: ViewEncapsulation.None, template: "<button cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" (click)=\"toggleOverlay()\" class=\"button button-secondary\" [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\" class=\"button button-tertiary\" (click)=\"clear()\">Clear</button>\n </div>\n </form>\n </div>\n</ng-template>\n", styles: [".dropdown-icon{height:1.5rem;width:1.5rem;display:inline-block;padding-left:.5rem}.dropdown-body{background-color:var(--surface-bg);min-width:5rem;margin-top:.25rem;padding:.75rem;border-radius:var(--surface-border-radius);--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1) !important;--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color) !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-shadow)!important}.dropdown-buttons{display:flex;margin-top:.25rem}.dropdown-options{max-height:15rem;overflow-y:auto}.dropdown-options{display:inline-flex;flex-direction:column;width:100%;gap:.25rem}.dropdown-options .field-option{display:inline-flex;position:relative;padding-top:.625rem;padding-bottom:.625rem;gap:.25rem;align-items:center;font-size:.875rem;line-height:1.25rem;font-weight:500;background-color:transparent;border-radius:var(--button-border-radius);cursor:pointer}.dropdown-options .field-option:hover{background-color:var(--color-neutral-200)}.dropdown-options .field-option.active{background-color:color-mix(in srgb,var(--color-neutral-400, #000) 65%,transparent)}.dropdown-options .field-option input[type=radio]{display:none}\n"] }]
|
|
52
52
|
}], propDecorators: { options: [{
|
|
53
53
|
type: Input
|
|
54
54
|
}], values: [{
|
|
@@ -63,4 +63,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
|
63
63
|
type: ViewChild,
|
|
64
64
|
args: [NgForm]
|
|
65
65
|
}] } });
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL29wdGlvbnMtZmlsdGVyL29wdGlvbnMtZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9vcHRpb25zLWZpbHRlci9vcHRpb25zLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7QUFVaEUsTUFBTSxPQUFPLHNCQUFzQjtJQVJuQztRQVVhLFdBQU0sR0FBYSxFQUFFLENBQUM7UUFDdEIsVUFBSyxHQUFHLFFBQVEsQ0FBQztRQUNoQixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUFJaEQsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUNiLFdBQU0sR0FBVyxFQUFFLENBQUM7S0F3Q2pDO0lBdENHLElBQUksV0FBVztRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3RCLENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEUsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDOUQsQ0FBQztJQUVELElBQUksZUFBZTtRQUNmLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ25DLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFaEQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1YsT0FBTyxPQUFPLENBQUM7UUFDbkIsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsS0FBSztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsS0FBSztRQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDOzhHQWhEUSxzQkFBc0I7a0dBQXRCLHNCQUFzQiwwT0FNcEIsTUFBTSxnRENwQnJCLDQxREFtQ0EsdXpDRDFCYyxXQUFXLDJ2Q0FBRSxnQkFBZ0IsdUlBQUUsbUJBQW1CLDQrQkFBRSxnQkFBZ0I7OzJGQUtyRSxzQkFBc0I7a0JBUmxDLFNBQVM7K0JBQ0ksbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsQ0FBQyxpQkFHaEUsaUJBQWlCLENBQUMsSUFBSTs4QkFHNUIsT0FBTztzQkFBZixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksTUFBTTtzQkFBZixNQUFNO2dCQUNFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ2EsSUFBSTtzQkFBdEIsU0FBUzt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpbHRlck9wdGlvbk1vZGVsIH0gZnJvbSAnLi4vZmlsdGVyL2ZpbHRlci1vcHRpb24ubW9kZWwnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENka0Nvbm5lY3RlZE92ZXJsYXksIENka092ZXJsYXlPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbXotb3B0aW9ucy1maWx0ZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBDZGtPdmVybGF5T3JpZ2luLCBDZGtDb25uZWN0ZWRPdmVybGF5LCBTcGlubmVyQ29tcG9uZW50XSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vb3B0aW9ucy1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9vcHRpb25zLWZpbHRlci5jb21wb25lbnQuc2NzcycsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgT3B0aW9uc0ZpbHRlckNvbXBvbmVudCB7XG4gICAgQElucHV0KCkgb3B0aW9ucz86IEZpbHRlck9wdGlvbk1vZGVsPHN0cmluZz5bXTtcbiAgICBASW5wdXQoKSB2YWx1ZXM6IHN0cmluZ1tdID0gW107XG4gICAgQElucHV0KCkgbGFiZWwgPSAnRmlsdGVyJztcbiAgICBAT3V0cHV0KCkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCB1bmRlZmluZWQ+KCk7XG4gICAgQElucHV0KCkgc2VsZWN0ZWQ/OiBzdHJpbmc7XG4gICAgQFZpZXdDaGlsZChOZ0Zvcm0pIGZvcm0hOiBOZ0Zvcm07XG5cbiAgICBwcm90ZWN0ZWQgb3BlbiA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBzZWFyY2g6IHN0cmluZyA9ICcnO1xuXG4gICAgZ2V0IGZpbHRlckxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICghdGhpcy5zZWxlY3RlZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubGFiZWw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMub3B0aW9ucz8uZmluZCgobykgPT4gby52YWx1ZSA9PT0gdGhpcy5zZWxlY3RlZCk7XG4gICAgICAgIHJldHVybiBpdGVtID8gYCR7dGhpcy5sYWJlbH06ICR7aXRlbS5sYWJlbH1gIDogdGhpcy5sYWJlbDtcbiAgICB9XG5cbiAgICBnZXQgZmlsdGVyZWRPcHRpb25zKCk6IEZpbHRlck9wdGlvbk1vZGVsPHN0cmluZz5bXSB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnMgPz8gW107XG4gICAgICAgIGNvbnN0IHNlYXJjaCA9IHRoaXMuc2VhcmNoLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAgIGlmICghc2VhcmNoKSB7XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9ucztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvcHRpb25zLmZpbHRlcigobykgPT4gby5sYWJlbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaCkpO1xuICAgIH1cblxuICAgIGFwcGx5KCkge1xuICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWQpO1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBjbGVhcigpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh1bmRlZmluZWQpO1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zZWFyY2ggPSAnJztcbiAgICB9XG5cbiAgICB0b2dnbGVPdmVybGF5KCkge1xuICAgICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xuICAgIH1cblxuICAgIGRpc21pc3MoKSB7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cbn1cblxuZXhwb3J0IHR5cGUgT3B0aW9uVmFsdWVUeXBlID0gc3RyaW5nIHwgbnVtYmVyIHwgc3RyaW5nW10gfCBudW1iZXJbXTtcbmV4cG9ydCB0eXBlIFNlbGVjdE9wdGlvbiA9IHtcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIHZhbHVlOiBPcHRpb25WYWx1ZVR5cGU7XG59OyIsIjxidXR0b24gY2RrT3ZlcmxheU9yaWdpbiAjdHJpZ2dlcj1cImNka092ZXJsYXlPcmlnaW5cIiAoY2xpY2spPVwidG9nZ2xlT3ZlcmxheSgpXCIgY2xhc3M9XCJidXR0b24gYnV0dG9uLXNlY29uZGFyeVwiIFtjbGFzcy5hY3RpdmVdPVwib3BlblwiPlxuICAgIEBpZiAob3B0aW9ucykge1xuICAgICAgICB7eyBmaWx0ZXJMYWJlbCB9fVxuICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3Bkb3duLWljb25cIj5cbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBjbGFzcz1cImRyb3Bkb3duLWljb25cIj5cbiAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiBkPVwiTTE5IDlsLTcgNy03LTdcIiAvPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvc3Bhbj5cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgPG16LXNwaW5uZXI+PC9tei1zcGlubmVyPlxuICAgIH1cbjwvYnV0dG9uPlxuPG5nLXRlbXBsYXRlIFxuICAgIGNka0Nvbm5lY3RlZE92ZXJsYXkgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW5dPVwidHJpZ2dlclwiIFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCJvcGVuXCIgW2Nka0Nvbm5lY3RlZE92ZXJsYXlQYW5lbENsYXNzXT1cIidkcm9wZG93bi1ib2R5J1wiIChvdmVybGF5T3V0c2lkZUNsaWNrKT1cImRpc21pc3MoKVwiPlxuICAgIDxkaXY+XG4gICAgICAgIDxmb3JtICNteUZvcm09XCJuZ0Zvcm1cIiA+IFxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoLi4uXCIgbmFtZT1cInNlYXJjaFwiIGNsYXNzPVwiZm9ybS1pbnB1dFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIC8+XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tb3B0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICBAZm9yKG9wdGlvbiBvZiBmaWx0ZXJlZE9wdGlvbnM7IHRyYWNrIG9wdGlvbi52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZmllbGQtb3B0aW9uXCIgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZCA9PT0gb3B0aW9uLnZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1yYWRpb1wiIHR5cGU9XCJyYWRpb1wiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRcIiBuYW1lPVwib3B0aW9uXCIgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cImFwcGx5KClcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyYWRpby1sYWJlbFwiPnt7IG9wdGlvbi5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLWJ1dHRvbnNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ1dHRvbiBidXR0b24tdGVydGlhcnlcIiAgKGNsaWNrKT1cImNsZWFyKClcIj5DbGVhcjwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1492,11 +1492,11 @@ class MzDropdownComponent {
|
|
|
1492
1492
|
this.open = false;
|
|
1493
1493
|
}
|
|
1494
1494
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: MzDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1495
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: MzDropdownComponent, isStandalone: true, selector: "mz-dropdown", inputs: { label: "label", open: "open" }, ngImport: i0, template: "<button cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" (click)=\"toggle()\" class=\"button button-secondary\" [class.active]=\"open\">\n {{ label }}\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\" class=\"mz-dropdown-icon\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n</button>\n<ng-template \n cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\" [cdkConnectedOverlayOpen]=\"open\" (overlayOutsideClick)=\"collapse()\" (detach)=\"collapse()\">\n <div cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\" class=\"mz-dropdown-body\">\n <ng-content></ng-content>\n </div>\n</ng-template>", styles: [".mz-dropdown-icon{height:1.5rem;width:1.5rem;display:inline-block}.mz-dropdown-body{background-color:var(--surface-bg
|
|
1495
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: MzDropdownComponent, isStandalone: true, selector: "mz-dropdown", inputs: { label: "label", open: "open" }, ngImport: i0, template: "<button cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" (click)=\"toggle()\" class=\"button button-secondary\" [class.active]=\"open\">\n {{ label }}\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\" class=\"mz-dropdown-icon\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n</button>\n<ng-template \n cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\" [cdkConnectedOverlayOpen]=\"open\" (overlayOutsideClick)=\"collapse()\" (detach)=\"collapse()\">\n <div cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\" class=\"mz-dropdown-body\">\n <ng-content></ng-content>\n </div>\n</ng-template>", styles: [".mz-dropdown-icon{height:1.5rem;width:1.5rem;display:inline-block;padding-left:.5rem}.mz-dropdown-body{background-color:var(--surface-bg);min-width:5rem;margin-top:.25rem;padding:.75rem;border-radius:var(--surface-border-radius);--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1) !important;--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color) !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-shadow)!important}.mz-dropdown-item{display:block;width:100%;padding:.5rem;font-size:.875rem;line-height:1.25rem;text-align:left;border-radius:var(--button-border-radius)}.mz-dropdown-item:hover{background-color:var(--color-neutral-200)}\n"], dependencies: [{ kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1496
1496
|
}
|
|
1497
1497
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: MzDropdownComponent, decorators: [{
|
|
1498
1498
|
type: Component,
|
|
1499
|
-
args: [{ selector: 'mz-dropdown', standalone: true, imports: [CdkOverlayOrigin, CdkConnectedOverlay, CdkTrapFocus], encapsulation: ViewEncapsulation.None, template: "<button cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" (click)=\"toggle()\" class=\"button button-secondary\" [class.active]=\"open\">\n {{ label }}\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\" class=\"mz-dropdown-icon\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n</button>\n<ng-template \n cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\" [cdkConnectedOverlayOpen]=\"open\" (overlayOutsideClick)=\"collapse()\" (detach)=\"collapse()\">\n <div cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\" class=\"mz-dropdown-body\">\n <ng-content></ng-content>\n </div>\n</ng-template>", styles: [".mz-dropdown-icon{height:1.5rem;width:1.5rem;display:inline-block}.mz-dropdown-body{background-color:var(--surface-bg
|
|
1499
|
+
args: [{ selector: 'mz-dropdown', standalone: true, imports: [CdkOverlayOrigin, CdkConnectedOverlay, CdkTrapFocus], encapsulation: ViewEncapsulation.None, template: "<button cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" (click)=\"toggle()\" class=\"button button-secondary\" [class.active]=\"open\">\n {{ label }}\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\" class=\"mz-dropdown-icon\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n</button>\n<ng-template \n cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\" [cdkConnectedOverlayOpen]=\"open\" (overlayOutsideClick)=\"collapse()\" (detach)=\"collapse()\">\n <div cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\" class=\"mz-dropdown-body\">\n <ng-content></ng-content>\n </div>\n</ng-template>", styles: [".mz-dropdown-icon{height:1.5rem;width:1.5rem;display:inline-block;padding-left:.5rem}.mz-dropdown-body{background-color:var(--surface-bg);min-width:5rem;margin-top:.25rem;padding:.75rem;border-radius:var(--surface-border-radius);--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1) !important;--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color) !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-shadow)!important}.mz-dropdown-item{display:block;width:100%;padding:.5rem;font-size:.875rem;line-height:1.25rem;text-align:left;border-radius:var(--button-border-radius)}.mz-dropdown-item:hover{background-color:var(--color-neutral-200)}\n"] }]
|
|
1500
1500
|
}], propDecorators: { label: [{
|
|
1501
1501
|
type: Input
|
|
1502
1502
|
}], open: [{
|
|
@@ -1617,11 +1617,11 @@ class OptionsFilterComponent {
|
|
|
1617
1617
|
this.open = false;
|
|
1618
1618
|
}
|
|
1619
1619
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: OptionsFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1620
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: OptionsFilterComponent, isStandalone: true, selector: "mz-options-filter", inputs: { options: "options", values: "values", label: "label", selected: "selected" }, outputs: { change: "change" }, viewQueries: [{ propertyName: "form", first: true, predicate: NgForm, descendants: true }], ngImport: i0, template: "<button cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" (click)=\"toggleOverlay()\" class=\"button button-secondary\" [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\" class=\"button button-tertiary\" (click)=\"clear()\">Clear</button>\n </div>\n </form>\n </div>\n</ng-template>\n", styles: [".dropdown-icon{height:1.5rem;width:1.5rem;display:inline-block;padding-left:.5rem}.dropdown-body{background-color:var(--surface-bg);min-width:5rem;margin-top:.25rem;padding:.75rem;border-radius:var(--surface-border-radius);box-shadow:var(--tw-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-shadow)!important}.dropdown-buttons{display:flex;margin-top:.25rem}.dropdown-options{max-height:15rem;overflow-y:auto}.dropdown-options{display:inline-flex;flex-direction:column;width:100%;gap:.25rem}.dropdown-options .field-option{display:inline-flex;position:relative;padding-top:.625rem;padding-bottom:.625rem;gap:.25rem;align-items:center;font-size:.875rem;line-height:1.25rem;font-weight:500;background-color:transparent;border-radius:var(--button-border-radius);cursor:pointer}.dropdown-options .field-option:hover{background-color:var(--color-neutral-200)}.dropdown-options .field-option.active{background-color:color-mix(in srgb,var(--color-neutral-400, #000) 65%,transparent)}.dropdown-options .field-option input[type=radio]{display:none}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "component", type: SpinnerComponent, selector: "mz-spinner", inputs: ["size", "type"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1620
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: OptionsFilterComponent, isStandalone: true, selector: "mz-options-filter", inputs: { options: "options", values: "values", label: "label", selected: "selected" }, outputs: { change: "change" }, viewQueries: [{ propertyName: "form", first: true, predicate: NgForm, descendants: true }], ngImport: i0, template: "<button cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" (click)=\"toggleOverlay()\" class=\"button button-secondary\" [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\" class=\"button button-tertiary\" (click)=\"clear()\">Clear</button>\n </div>\n </form>\n </div>\n</ng-template>\n", styles: [".dropdown-icon{height:1.5rem;width:1.5rem;display:inline-block;padding-left:.5rem}.dropdown-body{background-color:var(--surface-bg);min-width:5rem;margin-top:.25rem;padding:.75rem;border-radius:var(--surface-border-radius);--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1) !important;--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color) !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-shadow)!important}.dropdown-buttons{display:flex;margin-top:.25rem}.dropdown-options{max-height:15rem;overflow-y:auto}.dropdown-options{display:inline-flex;flex-direction:column;width:100%;gap:.25rem}.dropdown-options .field-option{display:inline-flex;position:relative;padding-top:.625rem;padding-bottom:.625rem;gap:.25rem;align-items:center;font-size:.875rem;line-height:1.25rem;font-weight:500;background-color:transparent;border-radius:var(--button-border-radius);cursor:pointer}.dropdown-options .field-option:hover{background-color:var(--color-neutral-200)}.dropdown-options .field-option.active{background-color:color-mix(in srgb,var(--color-neutral-400, #000) 65%,transparent)}.dropdown-options .field-option input[type=radio]{display:none}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "component", type: SpinnerComponent, selector: "mz-spinner", inputs: ["size", "type"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
1621
1621
|
}
|
|
1622
1622
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: OptionsFilterComponent, decorators: [{
|
|
1623
1623
|
type: Component,
|
|
1624
|
-
args: [{ selector: 'mz-options-filter', standalone: true, imports: [FormsModule, CdkOverlayOrigin, CdkConnectedOverlay, SpinnerComponent], encapsulation: ViewEncapsulation.None, template: "<button cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" (click)=\"toggleOverlay()\" class=\"button button-secondary\" [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\" class=\"button button-tertiary\" (click)=\"clear()\">Clear</button>\n </div>\n </form>\n </div>\n</ng-template>\n", styles: [".dropdown-icon{height:1.5rem;width:1.5rem;display:inline-block;padding-left:.5rem}.dropdown-body{background-color:var(--surface-bg);min-width:5rem;margin-top:.25rem;padding:.75rem;border-radius:var(--surface-border-radius);box-shadow:var(--tw-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-shadow)!important}.dropdown-buttons{display:flex;margin-top:.25rem}.dropdown-options{max-height:15rem;overflow-y:auto}.dropdown-options{display:inline-flex;flex-direction:column;width:100%;gap:.25rem}.dropdown-options .field-option{display:inline-flex;position:relative;padding-top:.625rem;padding-bottom:.625rem;gap:.25rem;align-items:center;font-size:.875rem;line-height:1.25rem;font-weight:500;background-color:transparent;border-radius:var(--button-border-radius);cursor:pointer}.dropdown-options .field-option:hover{background-color:var(--color-neutral-200)}.dropdown-options .field-option.active{background-color:color-mix(in srgb,var(--color-neutral-400, #000) 65%,transparent)}.dropdown-options .field-option input[type=radio]{display:none}\n"] }]
|
|
1624
|
+
args: [{ selector: 'mz-options-filter', standalone: true, imports: [FormsModule, CdkOverlayOrigin, CdkConnectedOverlay, SpinnerComponent], encapsulation: ViewEncapsulation.None, template: "<button cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" (click)=\"toggleOverlay()\" class=\"button button-secondary\" [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\" class=\"button button-tertiary\" (click)=\"clear()\">Clear</button>\n </div>\n </form>\n </div>\n</ng-template>\n", styles: [".dropdown-icon{height:1.5rem;width:1.5rem;display:inline-block;padding-left:.5rem}.dropdown-body{background-color:var(--surface-bg);min-width:5rem;margin-top:.25rem;padding:.75rem;border-radius:var(--surface-border-radius);--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1) !important;--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color) !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--tw-shadow)!important}.dropdown-buttons{display:flex;margin-top:.25rem}.dropdown-options{max-height:15rem;overflow-y:auto}.dropdown-options{display:inline-flex;flex-direction:column;width:100%;gap:.25rem}.dropdown-options .field-option{display:inline-flex;position:relative;padding-top:.625rem;padding-bottom:.625rem;gap:.25rem;align-items:center;font-size:.875rem;line-height:1.25rem;font-weight:500;background-color:transparent;border-radius:var(--button-border-radius);cursor:pointer}.dropdown-options .field-option:hover{background-color:var(--color-neutral-200)}.dropdown-options .field-option.active{background-color:color-mix(in srgb,var(--color-neutral-400, #000) 65%,transparent)}.dropdown-options .field-option input[type=radio]{display:none}\n"] }]
|
|
1625
1625
|
}], propDecorators: { options: [{
|
|
1626
1626
|
type: Input
|
|
1627
1627
|
}], values: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"muziehdesign-components.mjs","sources":["../../../projects/components/src/lib/svg-icon/svg-icon-config.ts","../../../projects/components/src/lib/svg-icon/svg-icon.component.ts","../../../projects/components/src/lib/svg-icon/svg-icon.component.svg","../../../projects/components/src/lib/enum-display/enum-display.pipe.ts","../../../projects/components/src/lib/spinner/spinner.component.ts","../../../projects/components/src/lib/spinner/spinner.component.html","../../../projects/components/src/lib/pagination/pagination-default-options.token.ts","../../../projects/components/src/lib/pagination/pagination.component.ts","../../../projects/components/src/lib/pagination/pagination.component.html","../../../projects/components/src/lib/result-table/result-table.component.ts","../../../projects/components/src/lib/result-table/result-table.component.html","../../../projects/components/src/lib/page-loading-indicator/page-loading-indicator.component.ts","../../../projects/components/src/lib/page-loading-indicator/page-loading-indicator.component.html","../../../projects/components/src/lib/page-header/page-header.component.ts","../../../projects/components/src/lib/page-header/page-header.component.html","../../../projects/components/src/lib/time-value-accessor.directive.ts","../../../projects/components/src/lib/alert/alert.component.ts","../../../projects/components/src/lib/alert/alert.component.html","../../../projects/components/src/lib/phone-number/phone-number.pipe.ts","../../../projects/components/src/lib/date-display/date-display.pipe.ts","../../../projects/components/src/lib/sort.directive.ts","../../../projects/components/src/lib/sort-key.directive.ts","../../../projects/components/src/lib/subject-display/subject-display.pipe.ts","../../../projects/components/src/lib/button.directive.ts","../../../projects/components/src/lib/wizard-progress-tracker/wizard-progress-tracker.component.ts","../../../projects/components/src/lib/wizard-progress-tracker/wizard-progress-tracker.component.html","../../../projects/components/src/lib/date-time/date-time.component.ts","../../../projects/components/src/lib/date-time/date-time.component.html","../../../projects/components/src/lib/time-value-validator.directive.ts","../../../projects/components/src/lib/infinite-scroll/infinite-scroll.component.ts","../../../projects/components/src/lib/infinite-scroll/infinite-scroll.component.html","../../../projects/components/src/lib/components.module.ts","../../../projects/components/src/lib/date-display/date-display-config.ts","../../../projects/components/src/lib/date-display/date.pipe.ts","../../../projects/components/src/lib/inline-edit/inline-edit.component.ts","../../../projects/components/src/lib/inline-edit/inline-edit.component.html","../../../projects/components/src/lib/testing/muzieh-component-harness.ts","../../../projects/components/src/lib/testing/result-table-harness.ts","../../../projects/components/src/lib/dialog/dialog-injectors.ts","../../../projects/components/src/lib/dialog/dialog-config.ts","../../../projects/components/src/lib/dialog/container/drawer-container.component.ts","../../../projects/components/src/lib/dialog/container/drawer-container.component.html","../../../projects/components/src/lib/guard-deactivate.ts","../../../projects/components/src/lib/dialog/dialog-ref.ts","../../../projects/components/src/lib/dialog/mz-dialog.service.ts","../../../projects/components/src/lib/dialog/dialog.module.ts","../../../projects/components/src/lib/dropdown/dropdown.component.ts","../../../projects/components/src/lib/dropdown/dropdown.component.html","../../../projects/components/src/lib/dropdown/dropdown-item.directive.ts","../../../projects/components/src/lib/dropdown/dropdown.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/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 standalone: true,\n imports: []\n})\nexport class SvgIconComponent {\n @Input() key!: string;\n @Input() type: 'outline' | 'solid' | string = 'outline';\n @Input() size: string = 'medium';\n fileUrl: string;\n \n constructor(@Inject(SVG_ICON_DEFAULT_OPTIONS) public config: SvgIconOptions) {\n this.fileUrl = config.svgIconDefinitionUrl;\n }\n\n get url(): string {\n if(this.type) {\n return this.fileUrl + '#' + this.key + '-' + this.type;\n }\n\n return this.fileUrl + '#' + this.key;\n }\n\n @HostBinding('class')\n get classes(): string {\n return `icon icon-${this.type} icon-${this.size}`;\n }\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 { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'mz-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class SpinnerComponent {\n\n @Input() size: 'medium' | 'large' = 'medium';\n @Input() type: 'primary' | 'secondary' | 'custom' = 'primary';\n constructor() { }\n\n}\n","<svg class=\"mz-spinner\" [ngClass]=\"{'large': size == 'large', 'medium': size == 'medium', 'text-primary': type == 'primary', 'text-secondary': type == 'secondary'}\" 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\";\nimport { PaginationDefaultOptions } from \"./pagination-default-options\";\n\nexport const PAGINATION_DEFAULT_OPTIONS = new InjectionToken<PaginationDefaultOptions>('MUZIEH_PAGINATION_DEFAULT_CONFIG');","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Inject, Input, OnChanges, OnInit, Optional, Output, SimpleChanges } from '@angular/core';\nimport { PageEvent } from '../models/page-event';\nimport { SvgIconComponent } from '../svg-icon/svg-icon.component';\nimport { PaginationDefaultOptions } from './pagination-default-options';\nimport { PAGINATION_DEFAULT_OPTIONS } from './pagination-default-options.token';\n\n@Component({\n selector: 'mz-pagination',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.css'],\n imports: [CommonModule, SvgIconComponent],\n standalone: true,\n})\nexport class PaginationComponent implements OnChanges {\n\n @Input() length: number = 0;\n @Input() page: number = 1;\n @Input() pageSize: number;\n @Output() public changePage = new EventEmitter<PageEvent>();\n\n @Input() pageSizeOptions?: number[];\n pages: number[] = [];\n pageCount: number = 1;\n constructor(@Optional() @Inject(PAGINATION_DEFAULT_OPTIONS) paginationOptions: PaginationDefaultOptions) {\n this.pageSize = paginationOptions?.pageSize || 20;\n this.pageSizeOptions = paginationOptions?.pageSizeOptions || [20, 50, 100];\n\n this.updatePages(this.page, this.length, this.pageSize);\n }\n\n ngOnChanges(): void {\n this.updatePages(this.page, this.length, this.pageSize);\n }\n\n isEllipsis(v: number) {\n return v === -1;\n }\n\n changePageNumber(newValue: number) {\n if (newValue == this.page || newValue < 1 || newValue > this.pageCount) {\n return;\n }\n this.changePage.emit({ pageNumber: newValue, pageSize: this.pageSize } as PageEvent)\n }\n\n changePageSize(newValue: string) {\n if (Number(newValue) == this.pageSize) {\n return;\n }\n this.changePage.emit({ pageNumber: 1, pageSize: Number(newValue) } as PageEvent);\n }\n\n private updatePages(currentPage: number, lengthOfItems: number, currentPageSize: number) {\n const pageCount = Math.ceil(lengthOfItems / currentPageSize);\n this.pageCount = pageCount;\n let pageNumbers: number[] = [];\n const max = 7; // 3 items before and after current page\n\n if (pageCount <= max) {\n this.pages = [...Array(pageCount).keys()].map(i => i + 1);\n return;\n }\n\n let start = Math.max(1, currentPage - 3);\n let end = Math.min(pageCount, currentPage + 3);\n let range = end - start + 1;\n if (range < max) {\n end = Math.min(end + (max - range), pageCount);\n }\n range = end - start + 1;\n if (range < max) {\n start = Math.max(1, start - (max - range));\n }\n\n for (let x = start; x <= end; x++) {\n pageNumbers.push(x);\n }\n\n if (start != 1) {\n pageNumbers.splice(0, 2);\n pageNumbers.unshift(1, -1);\n }\n\n if (end != pageCount) {\n pageNumbers.splice(pageNumbers.length - 2);\n pageNumbers.push(-1, pageCount);\n }\n\n this.pages = pageNumbers;\n }\n}\n","<div class=\"pagination-wrapper\">\n <nav class=\"pagination-nav\" aria-label=\"pagination\">\n <button class=\"page-link\" [ngClass]=\"{'disabled': page == 1}\" (click)=\"changePageNumber(page-1)\">\n <span class=\"sr-only\">Previous page</span>\n <mz-svg-icon key=\"chevron-left\"></mz-svg-icon>\n </button>\n <ng-container *ngFor=\"let p of pages\">\n <span class=\"page-ellipsis page-link disabled\" *ngIf=\"isEllipsis(p)\">...</span>\n <button class=\"page-link\" [ngClass]=\"{'active': p == page}\" (click)=\"changePageNumber(p)\"\n *ngIf=\"!isEllipsis(p)\">{{p}}</button>\n </ng-container>\n <button class=\"page-link\" [ngClass]=\"{'disabled': page == pageCount}\" (click)=\"changePageNumber(page+1)\">\n <span class=\"sr-only\">Next page</span>\n <mz-svg-icon key=\"chevron-right\"></mz-svg-icon>\n </button>\n </nav>\n <div class=\"pagination-size\">\n Show\n <select #c (change)=\"changePageSize(c.value)\" name=\"pageSizeControl\" class=\"page-size-control\">\n <option *ngFor=\"let size of pageSizeOptions\" [attr.selected]=\"pageSize == size ? true : null\"\n [value]=\"size\">{{size}}</option>\n </select>\n per page\n </div>\n</div>","import { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, ContentChild, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { PageEvent } from '../models/page-event';\nimport { ResultTableOptions } from '../models/result-table-options';\nimport { PaginationComponent } from '../pagination/pagination.component';\nimport { SpinnerComponent } from '../spinner/spinner.component';\nimport { SvgIconComponent } from '../svg-icon/svg-icon.component';\nimport { ResultTableModel } from './result-table.model';\n\n@Component({\n selector: 'mz-result-table',\n templateUrl: './result-table.component.html',\n styleUrls: ['./result-table.component.scss'],\n imports: [CommonModule, PaginationComponent, SpinnerComponent, SvgIconComponent],\n standalone: true,\n})\nexport class ResultTableComponent implements AfterViewInit {\n\n @Input() public loading: boolean = false;\n @Input() public error?: Error;\n @Input() public model: ResultTableModel<any> | undefined | null;\n\n @ContentChild('headerTemplate') headerTemplate!: TemplateRef<any>;\n @ContentChild('bodyTemplate') bodyTemplate!: TemplateRef<any>;\n\n @Input() pageSizeOptions: number[] = [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, table: HTMLElement) {\n this.pageChange.emit(page);\n if(!this.options.skipScrolling) {\n setTimeout(() => {\n table.scrollIntoView({ behavior: 'smooth', block: 'start' });\n });\n }\n }\n\n searchAgain() {\n this.pageChange.emit({ pageNumber: this.model?.pageNumber || 1, pageSize: this.model?.pageSize || 20 }); // TODO\n }\n\n public get state(): 'loading' | 'failed' | 'succeeded' {\n if (this.loading) {\n return 'loading';\n }\n if (this.error) {\n return 'failed';\n }\n\n return 'succeeded';\n }\n\n public get isEmpty(): boolean {\n return !this.model || this.model.items.length === 0;\n }\n}\n","<div class=\"result-table\" [ngClass]=\"{'loading': state === 'loading', 'failed': state === 'failed'}\" #tableRef>\n <div class=\"loading-overlay-spinner\" *ngIf=\"state === 'loading'\">\n <mz-spinner size=\"large\" type=\"primary\"></mz-spinner>\n </div>\n <table class=\"table\" [ngClass]=\"{'has-overlay' : state === 'loading'}\">\n <caption *ngIf=\"state === 'succeeded' && model && model.items.length > 0\">\n {{(model.pageNumber-1) * model.pageSize + 1}} - {{(model.pageNumber-1) * model.pageSize + model.items.length}} of {{ model.totalItems }} results\n </caption>\n <thead>\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </thead>\n <tbody>\n @if(state === 'succeeded' && !isEmpty) {\n <ng-container *ngTemplateOutlet=\"bodyTemplate\"></ng-container>\n }\n </tbody>\n </table>\n <div class=\"table-pagination\" *ngIf=\"state === 'succeeded' && !options?.hidePagination && !isEmpty\">\n <mz-pagination [length]=\"model!.totalItems\" [page]=\"model!.pageNumber\" [pageSize]=\"model!.pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (changePage)=\"changePage($event, tableRef)\"></mz-pagination>\n </div>\n <div class=\"state-message\" *ngIf=\"state == 'succeeded' && isEmpty\">\n <div class=\"title\">No results found</div>\n </div>\n <div class=\"state-message\" *ngIf=\"state == 'failed'\">\n <div class=\"title\">\n <mz-svg-icon key=\"x-circle\" type=\"solid\" class=\"text-danger\"></mz-svg-icon>\n Something went wrong\n </div>\n <div>Unexpected error, <a (click)=\"searchAgain()\" class=\"link-action\">try searching again</a>.</div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, 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: [CommonModule],\n standalone: true,\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\" *ngIf=\"isLoading\">\n <div class=\"progress-bar progress-bar-indeterminate\">\n <div class=\"progress-bar-value\"></div>\n </div>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\n\n@Component({\n selector: 'mz-page-header',\n templateUrl: './page-header.component.html',\n styleUrls: ['./page-header.component.scss'],\n standalone: true,\n})\nexport class PageHeaderComponent implements OnInit {\n private pageTitleValue = 'Servicing Web';\n\n constructor(private title: Title) {}\n\n get pageTitle(): string {\n return this.pageTitleValue;\n }\n\n @Input() set pageTitle(newValue: string) {\n this.pageTitleValue = newValue;\n this.title.setTitle(newValue);\n }\n\n ngOnInit(): void {}\n}\n","<header class=\"page-header\">\n <h1>{{ pageTitle }}</h1>\n <ng-content></ng-content>\n</header>","import { Directive, ElementRef, HostListener, Renderer2 } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport { TimeValue } from './date-time/time-value';\n\n// TODO: need to rename, and need to use ivy instead\n\n@Directive({\n selector: 'input[type=time]',\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: TimeValueAccessorDirective,\n multi: true\n }],\n standalone: true,\n})\nexport class TimeValueAccessorDirective implements ControlValueAccessor {\n\n @HostListener('input', ['$event.target.value'])\n onChange = (x: any) => { };\n onTouched = () => { };\n constructor(private renderer: Renderer2, private elementRef: ElementRef) {\n\n }\n\n writeValue(obj?: TimeValue): void {\n if (!obj) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', null);\n return;\n }\n const hourPrefix = obj?.hour > 9 ? '' : '0';\n const minutePrefix = obj.minute > 9 ? '' : '0';\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', `${hourPrefix}${obj.hour}:${minutePrefix}${obj.minute}`);\n }\n\n registerOnChange(fn: (x: TimeValue | null) => void): void {\n this.onChange = (value) => {\n if (value === null || value === '') {\n fn(null);\n } else {\n const parts = value.split(':');\n fn({ hour: Number(parts[0]), minute: Number(parts[1]) } as TimeValue);\n }\n };\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, OnInit, Input, TemplateRef } from '@angular/core';\nimport { SvgIconComponent } from '../svg-icon/svg-icon.component';\n\n@Component({\n selector: 'mz-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.css'],\n imports: [CommonModule, SvgIconComponent],\n standalone: true,\n})\nexport class AlertComponent implements OnInit {\n @Input() title: string = '';\n @Input() type: 'info' | 'success' | 'error' | 'warning' = 'info';\n @Input() body: TemplateRef<any> | undefined | null;\n @Input() footer: TemplateRef<any> | undefined | null;\n\n constructor() {}\n\n ngOnInit(): void {}\n\n getAlertClass(): string {\n return `alert-${this.type}`;\n }\n\n getAlertIcon(): string {\n let icon = '';\n if (this.type === 'info') {\n icon = 'information-circle';\n } else if (this.type === 'success') {\n icon = 'check-circle';\n } else if (this.type === 'error') {\n icon = 'x-circle';\n } else if (this.type === 'warning') {\n icon = 'exclamation';\n }\n return icon;\n }\n}\n","<div [className]=\"'alert alert-' + type\">\n\n <div>\n <div class=\"alert-icon\">\n <mz-svg-icon [key]=\"getAlertIcon()\" type=\"solid\"></mz-svg-icon>\n </div>\n\n <div class=\"alert-title\">\n <strong>{{ title }}</strong>\n </div>\n </div>\n\n <div class=\"alert-body\" *ngIf=\"body\">\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n </div>\n\n <div class=\"alert-footer\" *ngIf=\"footer\">\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n\n</div>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'mzPhoneNumber',\n standalone: true,\n})\nexport class PhoneNumberPipe implements PipeTransform {\n\n transform(number?: string): string | null {\n if (!number) {\n return null;\n }\n\n const phoneNumber = number.replace(/^\\+1/, '').replace(/\\D/g, '');\n if (phoneNumber.length === 10) {\n return phoneNumber.replace(/(\\d{3})(\\d{3})(\\d{4})/, '($1) $2-$3');\n }\n return number;\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\n\n/**\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@Directive({\n selector: '[mzButton]',\n standalone: true,\n host: {\n role: 'button',\n '[attr.tabindex]': '0',\n '[attr.aria-disabled]': 'busy',\n },\n})\nexport class ButtonDirective implements OnChanges, OnDestroy {\n @Input()\n variant? = 'secondary';\n @Input()\n busy?: boolean = false;\n private svgContent = `\n <svg class=\"button-loading-spinner\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\"\n viewBox=\"0 0 24 24\">\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\">\n </circle>\n <path class=\"opacity-75\" fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\">\n </path>\n </svg>\n `;\n private subscription = new Subscription();\n\n constructor(private renderer: Renderer2, private hostElement: ElementRef) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['busy'] && Boolean(changes['busy'].previousValue) !== Boolean(changes['busy'].currentValue)) {\n this.attachOrDeattachSpinner();\n }\n }\n\n ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n }\n\n @HostBinding('class')\n get elementClass(): string {\n return ['button', `button-${this.variant}`, this.busy ? 'loading' : ''].join(' ');\n }\n\n attachOrDeattachSpinner() {\n if (this.busy) {\n const loadingElement = this.renderer.createElement('span');\n loadingElement.innerHTML = this.svgContent;\n this.renderer.addClass(loadingElement, 'button-loading-overlay');\n this.renderer.appendChild(this.hostElement.nativeElement, loadingElement);\n this.addEventSubscription();\n } else {\n this.renderer.removeChild(this.hostElement.nativeElement, this.getOverlayDiv());\n this.subscription?.unsubscribe();\n }\n }\n\n private addEventSubscription() {\n const el = this.hostElement.nativeElement;\n this.subscription = fromEvent(el.parentNode, 'click', { capture: true })\n .pipe(filter((e: any) => Boolean(this.busy && this.getElementsToVerify().includes(e.target))))\n .subscribe((e: any) => {\n e.stopPropagation();\n });\n }\n\n private getChildElement(query: string) {\n return this.hostElement.nativeElement.querySelector(query);\n }\n\n private getElementsToVerify() {\n return [this.hostElement.nativeElement, this.getOverlayDiv(), this.getChildElement('.button-loading-overlay'), this.getChildElement('.button-loading-overlay svg'), this.getChildElement('.button-loading-overlay svg circle'), this.getChildElement('.button-loading-overlay svg path')];\n }\n\n private getOverlayDiv() {\n return this.getChildElement('.button-loading-overlay');\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { WizardStepLink } from '../models/wizard-step-link';\nimport { SvgIconComponent } from '../svg-icon/svg-icon.component';\n\n@Component({\n selector: 'mz-wizard-progress-tracker',\n templateUrl: './wizard-progress-tracker.component.html',\n styleUrls: ['./wizard-progress-tracker.component.scss'],\n standalone: true,\n imports: [CommonModule, SvgIconComponent]\n})\nexport class WizardProgressTrackerComponent {\n @Input() steps: WizardStepLink[] = [];\n @Input() currentStep = 0;\n @Output() stepChange = new EventEmitter<WizardStepLink>();\n toggled = true;\n\n goToStep(step: WizardStepLink) {\n this.stepChange.emit(step);\n }\n\n toggle(): void {\n this.toggled = !this.toggled;\n }\n}\n","<div class=\"wizard-progress-tracker\">\n <div class=\"direction-container\">\n <span class=\"steps-count\">Step {{ currentStep + 1 }} of {{ steps.length }}</span>\n <div class=\"wizard-steps-container\" [ngClass]=\"{'toggled': toggled}\">\n <div *ngFor=\"let step of steps; index as i;\" class=\"wizard-step\"\n [ngClass]=\"{ 'previous': i < currentStep, 'current': i === currentStep, 'unvisited': i > currentStep }\">\n <ng-container>\n <div class=\"wizard-step-icon-container\">\n <div class=\"spacer left\">\n </div>\n <div *ngIf=\"i > 0\" class=\"step-line left\"></div>\n\n <div *ngIf=\"i < currentStep\" class=\"wizard-step-icon\">\n <mz-svg-icon key=\"check-circle\" type=\"solid\">\n </mz-svg-icon>\n </div>\n <div *ngIf=\"i === currentStep\" class=\"wizard-step-icon\">\n <div class=\"step-inner-circle\"></div>\n </div>\n <div *ngIf=\"i > currentStep\" class=\"wizard-step-icon\">\n </div>\n\n <div *ngIf=\"i < (steps.length - 1)\" class=\"step-line step-line-right\"></div>\n <div class=\"spacer right\"></div>\n </div>\n <a *ngIf=\"i < currentStep\" class=\"step-desc\" (click)=\"goToStep(step)\"> {{\n step.name\n }}</a>\n <div *ngIf=\" i === currentStep\" class=\"step-desc\"> {{ step.name }}\n </div>\n <div *ngIf=\" i > currentStep\" class=\"step-desc\"> {{ step.name }}\n </div>\n <div class=\"toggable-icon\">\n <button *ngIf=\"!toggled\" (click)=\"toggle()\">\n <mz-svg-icon key=\"chevron-down\"></mz-svg-icon>\n </button>\n <button *ngIf=\"toggled\" (click)=\"toggle()\">\n <mz-svg-icon key=\"chevron-up\"></mz-svg-icon>\n </button>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n","import { ChangeDetectorRef, Component, forwardRef, Input, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MatDatepickerInputEvent, MatDatepickerModule } from '@angular/material/datepicker';\nimport { TimeValue } from './time-value';\nimport { MatDatepicker } from '@angular/material/datepicker';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'mz-datetime',\n templateUrl: './date-time.component.html',\n styleUrls: ['./date-time.component.css'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DateTimeComponent),\n multi: true,\n },\n ],\n imports: [CommonModule, MatDatepickerModule],\n standalone: true,\n})\nexport class DateTimeComponent implements ControlValueAccessor {\n date: Date | undefined;\n time: string | undefined;\n\n private lz = (n: number) => ('0' + n).slice(-2);\n private formatDate = (dt: Date) => `${dt.getMonth() + 1}/${dt.getDate()}/${dt.getFullYear()}`;\n private formatTime = (t: Date) => `${this.lz(t.getHours())}:${this.lz(t.getMinutes())}`;\n private formatDateTime = (dt: Date, t: string) => `${this.formatDate(dt)} ${t}`;\n private limitDate = (dt: Date) => {\n if (this.min) {\n dt = new Date(Math.max(dt.getTime(), this.min.getTime()));\n }\n\n if (this.max) {\n dt = new Date(Math.min(dt.getTime(), this.max.getTime()));\n }\n\n return dt;\n };\n private onTimeHourPending = false; \n\n type = 'outline';\n @ViewChild('datePicker') datepicker!: MatDatepicker<Date>;\n\n @Input()\n min?: Date | undefined;\n\n @Input()\n max?: Date | undefined;\n\n @Input()\n disabled = false;\n\n constructor(private _cd: ChangeDetectorRef) {}\n\n onChange = (_: any) => {};\n onTouched = () => {};\n\n writeValue(value: Date) {\n if (value) {\n const dt = new Date(value);\n\n this.date = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());\n this.time = this.formatTime(value);\n } else {\n this.date = undefined;\n this.time = undefined;\n }\n\n this._cd.markForCheck();\n }\n\n registerOnChange(fn: (value: any) => any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n updateDate(e: Event): void {\n const input = e.target as HTMLInputElement;\n\n let dt = new Date(input.value);\n\n if (!isNaN(dt.getTime())) {\n dt = this.limitDate(dt);\n\n this.date = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());\n\n if (this.time === undefined || this.time === '') {\n this.time = this.formatTime(new Date());\n }\n } else {\n this.date = undefined;\n this.time = undefined;\n }\n\n this.propagateModelChange();\n this._cd.markForCheck();\n }\n\n updateTime(e: Event): void {\n const input = e.target as HTMLInputElement;\n\n // this is just a listener event in case the end user types in \"0\". We wait for\n // the next entered value for the time input field to self fix the problem.\n if (!this.onTimeHourPending && !input.value) {\n this.onTimeHourPending = true;\n return;\n }\n\n this.onTimeHourPending = false;\n\n if (!input.value) {\n this.date = undefined;\n } else if (!this.date || isNaN(this.date.getTime())) {\n const dt = this.limitDate(this.min ?? new Date());\n\n this.date = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());\n }\n this.time = input.value;\n\n this.propagateModelChange();\n }\n\n updateDateEvent(event: MatDatepickerInputEvent<Date>) {\n if (event.value) {\n const dt = this.limitDate(new Date(event.value));\n\n this.date = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());\n\n if (this.time === undefined || this.time === '') {\n this.time = this.formatTime(new Date());\n }\n } else {\n this.date = undefined;\n this.time = undefined;\n }\n\n this.propagateModelChange();\n this._cd.markForCheck();\n }\n\n focusOnDateInput() {\n this.datepicker.open();\n }\n\n private propagateModelChange(): void {\n if (this.time && this.date) {\n const dateString = this.formatDateTime(this.date, this.time);\n this.onChange(new Date(dateString));\n } else {\n this.onChange(undefined);\n }\n }\n}\n\nexport interface ScheduleInputModel {\n time: TimeValue;\n}\n","<div class=\"flex\">\n <div class=\"field-control-combo\">\n <input class=\"field-control\" type=\"text\" [value]=\"date\" (change)=\"updateDate($event)\" [min]=\"min\" [max]=\"max\"\n [matDatepicker]=\"datePicker\" (dateChange)=\"updateDateEvent($event)\" [disabled]=\"disabled\" ngDefaultControl>\n <div class=\"field-control-addon\">\n <button class=\"button button-secondary button-icon\" type=\"button\" (click)=\"datePicker.open()\"\n [disabled]=\"disabled\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"\n stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\" />\n </svg>\n </button>\n <mat-datepicker #datePicker></mat-datepicker>\n </div>\n </div>\n <div class=\"field-control-group mt-1 ml-6\">\n <input class=\"field-control\" type=\"time\" [value]=\"time\" (change)=\"updateTime($event)\"\n ngDefaultControl [disabled]=\"disabled\">\n </div>\n</div>\n","import { Directive } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\n\n@Directive({\n selector: 'input[type=time]',\n providers: [{\n provide: NG_VALIDATORS,\n useExisting: TimeValueValidatorDirective,\n multi: true\n }],\n standalone: true,\n})\nexport class TimeValueValidatorDirective implements Validator {\n\n constructor() { }\n\n validate(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n if (value == null || value.length == 0) {\n return null;\n }\n\n /*\n const parts = value.split(':');\n if (parts.length != 2) {\n return { \"time\": \"invalid time\" };\n }*/\n\n return null;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ContentChild, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { SpinnerComponent } from '../spinner/spinner.component';\n\n@Component({\n selector: 'mz-infinite-scroll',\n standalone: true,\n imports: [CommonModule, SpinnerComponent],\n templateUrl: './infinite-scroll.component.html',\n styleUrls: ['./infinite-scroll.component.scss'],\n})\nexport class InfiniteScrollComponent {\n @Input() items: any[] = [];\n @Input() isLoading: boolean = false;\n @Input() containerHeight: string = '24rem';\n @Output() itemSelected = new EventEmitter<any>();\n @Output() loadMore = new EventEmitter<boolean>();\n @ContentChild('itemTemplate') itemTemplate!: TemplateRef<any>; \n selectedItem: any = null;\n\n onContainerScroll(event: any): void {\n const target = event.target;\n if (!this.isLoading && target.offsetHeight + target.scrollTop >= target.scrollHeight) {\n this.loadMore.emit(true);\n }\n }\n\n onItemClick(item: any): void {\n this.selectedItem = item;\n this.itemSelected.emit(item);\n }\n}\n","<div class=\"infinite-scroll-container overflow-auto\" [style.height]=\"containerHeight\" (scroll)=\"onContainerScroll($event)\">\n <ng-container *ngIf=\"itemTemplate; else defaultItems\">\n <ng-container *ngFor=\"let item of items\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-container>\n </ng-container>\n </ng-container>\n <ng-template #defaultItems>\n <div *ngFor=\"let item of items\" class=\"scroll-item\" [ngClass]=\"{'scroll-item-selected': selectedItem === item}\" (click)=\"onItemClick(item)\">\n {{ item.label }}\n </div>\n </ng-template>\n\n <!-- Spinner -->\n <div *ngIf=\"isLoading\" class=\"scroll-spinner-container\">\n <mz-spinner size=\"medium\" type=\"secondary\"></mz-spinner>\n </div>\n</div>\n","import { CommonModule, DatePipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SpinnerComponent } from './spinner/spinner.component';\nimport { EnumDisplayPipe } from './enum-display/enum-display.pipe';\nimport { SvgIconComponent } from './svg-icon/svg-icon.component';\nimport { ResultTableComponent } from './result-table/result-table.component';\nimport { PaginationComponent } from './pagination/pagination.component';\nimport { PageLoadingIndicatorComponent } from './page-loading-indicator/page-loading-indicator.component';\nimport { PageHeaderComponent } from './page-header/page-header.component';\nimport { TimeValueAccessorDirective } from './time-value-accessor.directive';\nimport { FormsModule } from '@angular/forms';\nimport { AlertComponent } from './alert/alert.component';\nimport { PhoneNumberPipe } from './phone-number/phone-number.pipe';\nimport { DateDisplayPipe } from './date-display/date-display.pipe';\nimport { SortDirective } from './sort.directive';\nimport { SortKeyDirective } from './sort-key.directive';\nimport { SubjectDisplayPipe } from './subject-display/subject-display.pipe';\nimport { ButtonDirective } from './button.directive';\nimport { WizardProgressTrackerComponent } from './wizard-progress-tracker/wizard-progress-tracker.component';\nimport { DateTimeComponent } from './date-time/date-time.component';\nimport { TimeValueValidatorDirective } from './time-value-validator.directive';\nimport { InfiniteScrollComponent } from './infinite-scroll/infinite-scroll.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ButtonDirective,\n SvgIconComponent,\n SpinnerComponent,\n WizardProgressTrackerComponent,\n AlertComponent,\n EnumDisplayPipe,\n ResultTableComponent,\n InfiniteScrollComponent,\n PaginationComponent,\n PageLoadingIndicatorComponent,\n PageHeaderComponent,\n TimeValueAccessorDirective,\n DateDisplayPipe,\n PhoneNumberPipe,\n SortKeyDirective,\n SortDirective,\n SubjectDisplayPipe,\n DateTimeComponent,\n TimeValueValidatorDirective,\n ],\n exports: [\n EnumDisplayPipe,\n SpinnerComponent,\n SvgIconComponent,\n ResultTableComponent,\n InfiniteScrollComponent,\n PaginationComponent,\n PageLoadingIndicatorComponent,\n PageHeaderComponent,\n TimeValueAccessorDirective,\n DateDisplayPipe,\n AlertComponent,\n PhoneNumberPipe,\n SortKeyDirective,\n SortDirective,\n SubjectDisplayPipe,\n ButtonDirective,\n WizardProgressTrackerComponent,\n DateTimeComponent,\n TimeValueValidatorDirective,\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 { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, ContentChild, ElementRef, EventEmitter, Input, Output, Renderer2 } from '@angular/core';\nimport { FormsModule, NgModel } from '@angular/forms';\nimport { ButtonDirective } from '../button.directive';\n\n@Component({\n selector: 'mz-inline-edit',\n standalone: true,\n imports: [ButtonDirective, FormsModule, CommonModule],\n templateUrl: './inline-edit.component.html',\n styleUrl: './inline-edit.component.scss',\n})\nexport class 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\" mzButton [busy]=\"busy\" (click)=\"submitForm()\">Save</button>\n <button type=\"button\" class=\"button button-tertiary\" (click)=\"cancelEdit()\">Cancel</button>\n <!--<button mzButton [busy]=\"busy\" type=\"submit\" (click)=\"submitForm()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-5 w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fill-rule=\"evenodd\" d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\n </svg>\n </button>\n <button type=\"button\" mzButton variant=\"tertiary\" (click)=\"cancelEdit()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-5 w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fill-rule=\"evenodd\" d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\" clip-rule=\"evenodd\" />\n </svg>\n </button>-->\n </div>\n }\n</form>\n","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 { MzDialogConfig } from \"./dialog-config\";\n\n/** Injection token that can be used to provide default options for the dialog module. */\nexport const DEFAULT_MZ_DIALOG_CONFIG = new InjectionToken<MzDialogConfig>('DefaultMzDialogConfig');\n\nexport const MZ_DIALOG_DATA = new InjectionToken<any>('MzDialogData');\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 MzDialog service. Properties here are exposes what's available in @angular/cdk DialogConfig\n * and with a few additional properties for MzDialog.\n * See https://material.angular.io/cdk/dialog/api#DialogConfig\n */\nexport class MzDialogConfig<D = any, C extends BasePortalOutlet = BasePortalOutlet> {\n size?: 'sm' | 'md' | 'lg' | 'xl' = 'md';\n\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 | string | boolean = '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\n /**\n * Component into which the dialog content will be rendered. Defaults to `CdkDialogContainer`.\n * A configuration object can be passed in to customize the providers that will be exposed\n * to the dialog container.\n */\n container?: Type<C>;\n}","import { CdkDialogContainer } from '@angular/cdk/dialog';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { Component, ElementRef, HostListener, Inject, NgZone, Optional } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { FocusTrapFactory, InteractivityChecker } from '@angular/cdk/a11y';\nimport { MzDialogConfig } from '../dialog-config';\nimport { MzDialogRef } from '../dialog-ref';\n\n@Component({\n selector: 'mz-drawer-container',\n standalone: true,\n imports: [CdkPortalOutlet],\n templateUrl: './drawer-container.component.html',\n styleUrl: './drawer-container.component.scss',\n host: {\n 'class': 'mz-dialog-container',\n '[class.open]': 'open'\n }\n})\nexport class DrawerContainerComponent extends CdkDialogContainer<MzDialogConfig> {\n\n private dialogRef?: MzDialogRef<any>;\n protected open = false;\n\n constructor(elementRef: ElementRef, focusTrapFactory: FocusTrapFactory, readonly dialogConfig: MzDialogConfig, 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: MzDialogRef<any>): void {\n this.dialogRef = dialogRef;\n }\n\n protected tryClose(e: UIEvent): void {\n this.dialogRef?.tryClose(undefined, { focusOrigin: e.detail === 0 ? 'keyboard' : 'mouse' });\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 /**\n * Marks state of container for animation purposes.\n */\n enter() {\n this.open = true;\n }\n}\n","<article class=\"mz-dialog\">\n <ng-template cdkPortalOutlet />\n\n @if(!dialogConfig.disableClose) {\n <button class=\"button-close\" (click)=\"tryClose($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 }\n</article>\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 { MzDialogConfig } from \"./dialog-config\";\nimport { BasePortalOutlet } from \"@angular/cdk/portal\";\nimport { Observable, filter, merge } from \"rxjs\";\nimport { CanDeactivateComponent, hasImplementation } from \"../guard-deactivate\";\n\nexport class MzDialogRef<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: MzDialogConfig, 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_DIALOG_CONFIG, MZ_DIALOG_DATA } from './dialog-injectors';\nimport { DrawerContainerComponent } from './container/drawer-container.component';\nimport { MzDialogConfig } from './dialog-config';\nimport { MzDialogRef } from './dialog-ref';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MzDialog implements OnDestroy {\n private cdkDialog: Dialog;\n private openDialogs: MzDialogRef<any>[] = [];\n\n constructor(private injector: Injector, private overlay: Overlay, @Optional() @Inject(DEFAULT_MZ_DIALOG_CONFIG) private configuredOptions: MzDialogConfig, @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?: MzDialogConfig<D>): MzDialogRef<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?: MzDialogConfig<D>): MzDialogRef<R, T>;\n open<R = any, D = any, T = any>(componentOrTemplateRef: ComponentType<T> | TemplateRef<T>, config?: MzDialogConfig<D>): MzDialogRef<R, T>;\n open<R = any, D = any, T = any>(componentOrTemplateRef: ComponentType<T> | TemplateRef<T>, config?: MzDialogConfig<D>): MzDialogRef<R, T> {\n\n const defaultOptions = new MzDialogConfig<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: MzDialogRef<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: options.container || DrawerContainerComponent,\n providers: () => [\n { provide: MzDialogConfig, useValue: options },\n { provide: DialogConfig, useValue: options },\n ],\n },\n templateContext: () => ({ dialogRef }),\n providers: (ref, cdkConfig, dialogContainer) => {\n dialogRef = new MzDialogRef(ref, options, dialogContainer);\n return [\n { provide: MZ_DIALOG_DATA, useValue: cdkConfig.data },\n { provide: MzDialogRef, 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 DrawerContainerComponent) {\n cdkRef.containerInstance.enter();\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(): MzDialogRef<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: MzDialogRef<any>[]) {\n let i = dialogs.length;\n\n while (i--) {\n dialogs[i].close();\n }\n }\n}","import { DialogModule } from \"@angular/cdk/dialog\";\nimport { NgModule } from \"@angular/core\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\nimport { PortalModule } from \"@angular/cdk/portal\";\nimport { MzDialog } from \"./mz-dialog.service\";\nimport { DrawerContainerComponent } from \"./container/drawer-container.component\";\n\n@NgModule({\n imports: [DialogModule, OverlayModule, PortalModule, DrawerContainerComponent],\n exports: [\n DialogModule,\n DrawerContainerComponent\n ],\n providers: [MzDialog]\n})\nexport class MzDialogModule {}","import { CdkTrapFocus } from '@angular/cdk/a11y';\nimport { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'mz-dropdown',\n standalone: true,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, CdkTrapFocus],\n templateUrl: './dropdown.component.html',\n styleUrl: './dropdown.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class MzDropdownComponent {\n @Input() label: string = '';\n @Input() open = false;\n\n toggle() {\n this.open = !this.open;\n }\n\n collapse() {\n this.open = false;\n }\n}\n","<button cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" (click)=\"toggle()\" class=\"button button-secondary\" [class.active]=\"open\">\n {{ label }}\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\" class=\"mz-dropdown-icon\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n</button>\n<ng-template \n cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\" [cdkConnectedOverlayOpen]=\"open\" (overlayOutsideClick)=\"collapse()\" (detach)=\"collapse()\">\n <div cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\" class=\"mz-dropdown-body\">\n <ng-content></ng-content>\n </div>\n</ng-template>","import { Directive, Host, OnInit, Renderer2 } from '@angular/core';\nimport { MzDropdownComponent } from './dropdown.component';\n\n@Directive({\n selector: '[mzDropdownItem]',\n standalone: true,\n host: {\n 'class': 'mz-dropdown-item',\n '(click)': 'close()'\n }\n})\nexport class MzDropdownItemDirective{\n\n constructor(@Host() private dropdown: MzDropdownComponent) { }\n\n close() {\n this.dropdown.collapse();\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { MzDropdownComponent } from \"./dropdown.component\";\nimport { MzDropdownItemDirective } from \"./dropdown-item.directive\";\n\n@NgModule({\n imports: [MzDropdownComponent, MzDropdownItemDirective],\n exports: [MzDropdownComponent, MzDropdownItemDirective]\n})\nexport class MzDropdownModule {}","import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { AfterContentInit, Component, ContentChild, Input } from '@angular/core';\nimport { FormsModule, NgForm } from '@angular/forms';\n\n@Component({\n selector: 'mz-filter',\n standalone: true,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, FormsModule, CommonModule],\n templateUrl: './filter.component.html',\n styleUrl: './filter.component.scss',\n})\nexport class FilterComponent implements AfterContentInit {\n @Input() label = 'Filter';\n @ContentChild(NgForm) menuForm!: NgForm;\n protected open = false;\n private initialValues: any;\n\n ngAfterContentInit(): void {\n this.initialValues = this.menuForm.value;\n }\n\n toggleOverlay() {\n this.open = !this.open;\n }\n\n dismiss() {\n this.open = false;\n if(this.menuForm.options.updateOn === 'submit') {\n this.menuForm.resetForm(this.initialValues);\n }\n }\n\n clear() {\n this.open = false;\n }\n\n apply() {\n this.open = false;\n console.log('applied', this.menuForm.value);\n }\n}\n","<button cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" (click)=\"toggleOverlay()\" class=\"button button-secondary\" [class.active]=\"open\">\n {{ label }}\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</button>\n<ng-template \n cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\" [cdkConnectedOverlayOpen]=\"open\" [cdkConnectedOverlayPanelClass]=\"'dropdown-body'\" (overlayOutsideClick)=\"dismiss()\">\n <div>\n <ng-content></ng-content>\n\n <div class=\"dropdown-buttons\">\n @if(menuForm.options.updateOn === 'submit') {\n <button type=\"button\" class=\"button button-primary\" (click)=\"apply()\">Apply</button>\n }\n <button type=\"button\" class=\"button button-tertiary\" (click)=\"clear()\">Clear</button>\n </div>\n </div>\n</ng-template>\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 { SpinnerComponent } from '../spinner/spinner.component';\n\n@Component({\n selector: 'mz-options-filter',\n standalone: true,\n imports: [FormsModule, CdkOverlayOrigin, CdkConnectedOverlay, SpinnerComponent],\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()\" class=\"button button-secondary\" [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\" class=\"button button-tertiary\" (click)=\"clear()\">Clear</button>\n </div>\n </form>\n </div>\n</ng-template>\n","/*\n * Public API Surface of components\n */\n\nexport { SvgIconComponent } from './lib/svg-icon/svg-icon.component';\nexport { SvgIconOptions, SVG_ICON_DEFAULT_OPTIONS } from './lib/svg-icon/svg-icon-config';\n\nexport { EnumDisplayPipe } from './lib/enum-display/enum-display.pipe';\nexport { SpinnerComponent } from './lib/spinner/spinner.component';\n\nexport { MuziehComponentsModule } from './lib/components.module';\nexport { PageLoadingIndicatorComponent } from './lib/page-loading-indicator/page-loading-indicator.component';\nexport { PageHeaderComponent } from './lib/page-header/page-header.component';\nexport { PhoneNumberPipe } from './lib/phone-number/phone-number.pipe';\nexport { DateDisplayPipe } from './lib/date-display/date-display.pipe';\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// table\nexport { ResultTableComponent } from './lib/result-table/result-table.component';\nexport { PaginationComponent } from './lib/pagination/pagination.component';\nexport { PageEvent } from './lib/models/page-event';\nexport { LoadingState } from './lib/models/loading-state';\nexport { ResultTableModel } from './lib/result-table/result-table.model';\n\n// infinite scroll\nexport { InfiniteScrollComponent } from './lib/infinite-scroll/infinite-scroll.component';\n\n// Datetime\nexport { DateTimeComponent } from './lib/date-time/date-time.component';\nexport { TimeValue } from './lib/date-time/time-value';\nexport { TimeValueAccessorDirective } from './lib/time-value-accessor.directive';\nexport { TimeValueValidatorDirective } from './lib/time-value-validator.directive';\n\n// testing files\nexport { MuziehComponentHarness } from './lib/testing/muzieh-component-harness';\nexport { ResultTableHarness } from './lib/testing/result-table-harness';\n\n// alert\nexport { AlertComponent } from './lib/alert/alert.component';\n\n// sort\nexport { SortKeyDirective } from './lib/sort-key.directive';\nexport { SortDirective } from './lib/sort.directive';\nexport { ButtonDirective } from './lib/button.directive';\nexport { SortEvent } from './lib/models/sort-event';\n\nexport { WizardStepLink } from './lib/models/wizard-step-link';\nexport { WizardProgressTrackerComponent } from './lib/wizard-progress-tracker/wizard-progress-tracker.component';\n\n// dialog\nexport { MzDialog } from './lib/dialog/mz-dialog.service';\nexport { MzDialogConfig } from './lib/dialog/dialog-config';\nexport { MzDialogRef } from './lib/dialog/dialog-ref';\nexport { DrawerContainerComponent } from './lib/dialog/container/drawer-container.component';\nexport { MzDialogModule } from './lib/dialog/dialog.module';\n\n// dropdown\nexport { MzDropdownComponent } from './lib/dropdown/dropdown.component';\nexport { MzDropdownItemDirective } from './lib/dropdown/dropdown-item.directive';\nexport { MzDropdownModule } from './lib/dropdown/dropdown.module';\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';\n\n// utilities\nexport { CanDeactivateComponent, hasImplementation } from './lib/guard-deactivate';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i1.SortDirective","filter","take","i1.MzDropdownComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"muziehdesign-components.mjs","sources":["../../../projects/components/src/lib/svg-icon/svg-icon-config.ts","../../../projects/components/src/lib/svg-icon/svg-icon.component.ts","../../../projects/components/src/lib/svg-icon/svg-icon.component.svg","../../../projects/components/src/lib/enum-display/enum-display.pipe.ts","../../../projects/components/src/lib/spinner/spinner.component.ts","../../../projects/components/src/lib/spinner/spinner.component.html","../../../projects/components/src/lib/pagination/pagination-default-options.token.ts","../../../projects/components/src/lib/pagination/pagination.component.ts","../../../projects/components/src/lib/pagination/pagination.component.html","../../../projects/components/src/lib/result-table/result-table.component.ts","../../../projects/components/src/lib/result-table/result-table.component.html","../../../projects/components/src/lib/page-loading-indicator/page-loading-indicator.component.ts","../../../projects/components/src/lib/page-loading-indicator/page-loading-indicator.component.html","../../../projects/components/src/lib/page-header/page-header.component.ts","../../../projects/components/src/lib/page-header/page-header.component.html","../../../projects/components/src/lib/time-value-accessor.directive.ts","../../../projects/components/src/lib/alert/alert.component.ts","../../../projects/components/src/lib/alert/alert.component.html","../../../projects/components/src/lib/phone-number/phone-number.pipe.ts","../../../projects/components/src/lib/date-display/date-display.pipe.ts","../../../projects/components/src/lib/sort.directive.ts","../../../projects/components/src/lib/sort-key.directive.ts","../../../projects/components/src/lib/subject-display/subject-display.pipe.ts","../../../projects/components/src/lib/button.directive.ts","../../../projects/components/src/lib/wizard-progress-tracker/wizard-progress-tracker.component.ts","../../../projects/components/src/lib/wizard-progress-tracker/wizard-progress-tracker.component.html","../../../projects/components/src/lib/date-time/date-time.component.ts","../../../projects/components/src/lib/date-time/date-time.component.html","../../../projects/components/src/lib/time-value-validator.directive.ts","../../../projects/components/src/lib/infinite-scroll/infinite-scroll.component.ts","../../../projects/components/src/lib/infinite-scroll/infinite-scroll.component.html","../../../projects/components/src/lib/components.module.ts","../../../projects/components/src/lib/date-display/date-display-config.ts","../../../projects/components/src/lib/date-display/date.pipe.ts","../../../projects/components/src/lib/inline-edit/inline-edit.component.ts","../../../projects/components/src/lib/inline-edit/inline-edit.component.html","../../../projects/components/src/lib/testing/muzieh-component-harness.ts","../../../projects/components/src/lib/testing/result-table-harness.ts","../../../projects/components/src/lib/dialog/dialog-injectors.ts","../../../projects/components/src/lib/dialog/dialog-config.ts","../../../projects/components/src/lib/dialog/container/drawer-container.component.ts","../../../projects/components/src/lib/dialog/container/drawer-container.component.html","../../../projects/components/src/lib/guard-deactivate.ts","../../../projects/components/src/lib/dialog/dialog-ref.ts","../../../projects/components/src/lib/dialog/mz-dialog.service.ts","../../../projects/components/src/lib/dialog/dialog.module.ts","../../../projects/components/src/lib/dropdown/dropdown.component.ts","../../../projects/components/src/lib/dropdown/dropdown.component.html","../../../projects/components/src/lib/dropdown/dropdown-item.directive.ts","../../../projects/components/src/lib/dropdown/dropdown.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/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 standalone: true,\n imports: []\n})\nexport class SvgIconComponent {\n @Input() key!: string;\n @Input() type: 'outline' | 'solid' | string = 'outline';\n @Input() size: string = 'medium';\n fileUrl: string;\n \n constructor(@Inject(SVG_ICON_DEFAULT_OPTIONS) public config: SvgIconOptions) {\n this.fileUrl = config.svgIconDefinitionUrl;\n }\n\n get url(): string {\n if(this.type) {\n return this.fileUrl + '#' + this.key + '-' + this.type;\n }\n\n return this.fileUrl + '#' + this.key;\n }\n\n @HostBinding('class')\n get classes(): string {\n return `icon icon-${this.type} icon-${this.size}`;\n }\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 { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'mz-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss'],\n standalone: true,\n imports: [CommonModule]\n})\nexport class SpinnerComponent {\n\n @Input() size: 'medium' | 'large' = 'medium';\n @Input() type: 'primary' | 'secondary' | 'custom' = 'primary';\n constructor() { }\n\n}\n","<svg class=\"mz-spinner\" [ngClass]=\"{'large': size == 'large', 'medium': size == 'medium', 'text-primary': type == 'primary', 'text-secondary': type == 'secondary'}\" 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\";\nimport { PaginationDefaultOptions } from \"./pagination-default-options\";\n\nexport const PAGINATION_DEFAULT_OPTIONS = new InjectionToken<PaginationDefaultOptions>('MUZIEH_PAGINATION_DEFAULT_CONFIG');","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Inject, Input, OnChanges, OnInit, Optional, Output, SimpleChanges } from '@angular/core';\nimport { PageEvent } from '../models/page-event';\nimport { SvgIconComponent } from '../svg-icon/svg-icon.component';\nimport { PaginationDefaultOptions } from './pagination-default-options';\nimport { PAGINATION_DEFAULT_OPTIONS } from './pagination-default-options.token';\n\n@Component({\n selector: 'mz-pagination',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.css'],\n imports: [CommonModule, SvgIconComponent],\n standalone: true,\n})\nexport class PaginationComponent implements OnChanges {\n\n @Input() length: number = 0;\n @Input() page: number = 1;\n @Input() pageSize: number;\n @Output() public changePage = new EventEmitter<PageEvent>();\n\n @Input() pageSizeOptions?: number[];\n pages: number[] = [];\n pageCount: number = 1;\n constructor(@Optional() @Inject(PAGINATION_DEFAULT_OPTIONS) paginationOptions: PaginationDefaultOptions) {\n this.pageSize = paginationOptions?.pageSize || 20;\n this.pageSizeOptions = paginationOptions?.pageSizeOptions || [20, 50, 100];\n\n this.updatePages(this.page, this.length, this.pageSize);\n }\n\n ngOnChanges(): void {\n this.updatePages(this.page, this.length, this.pageSize);\n }\n\n isEllipsis(v: number) {\n return v === -1;\n }\n\n changePageNumber(newValue: number) {\n if (newValue == this.page || newValue < 1 || newValue > this.pageCount) {\n return;\n }\n this.changePage.emit({ pageNumber: newValue, pageSize: this.pageSize } as PageEvent)\n }\n\n changePageSize(newValue: string) {\n if (Number(newValue) == this.pageSize) {\n return;\n }\n this.changePage.emit({ pageNumber: 1, pageSize: Number(newValue) } as PageEvent);\n }\n\n private updatePages(currentPage: number, lengthOfItems: number, currentPageSize: number) {\n const pageCount = Math.ceil(lengthOfItems / currentPageSize);\n this.pageCount = pageCount;\n let pageNumbers: number[] = [];\n const max = 7; // 3 items before and after current page\n\n if (pageCount <= max) {\n this.pages = [...Array(pageCount).keys()].map(i => i + 1);\n return;\n }\n\n let start = Math.max(1, currentPage - 3);\n let end = Math.min(pageCount, currentPage + 3);\n let range = end - start + 1;\n if (range < max) {\n end = Math.min(end + (max - range), pageCount);\n }\n range = end - start + 1;\n if (range < max) {\n start = Math.max(1, start - (max - range));\n }\n\n for (let x = start; x <= end; x++) {\n pageNumbers.push(x);\n }\n\n if (start != 1) {\n pageNumbers.splice(0, 2);\n pageNumbers.unshift(1, -1);\n }\n\n if (end != pageCount) {\n pageNumbers.splice(pageNumbers.length - 2);\n pageNumbers.push(-1, pageCount);\n }\n\n this.pages = pageNumbers;\n }\n}\n","<div class=\"pagination-wrapper\">\n <nav class=\"pagination-nav\" aria-label=\"pagination\">\n <button class=\"page-link\" [ngClass]=\"{'disabled': page == 1}\" (click)=\"changePageNumber(page-1)\">\n <span class=\"sr-only\">Previous page</span>\n <mz-svg-icon key=\"chevron-left\"></mz-svg-icon>\n </button>\n <ng-container *ngFor=\"let p of pages\">\n <span class=\"page-ellipsis page-link disabled\" *ngIf=\"isEllipsis(p)\">...</span>\n <button class=\"page-link\" [ngClass]=\"{'active': p == page}\" (click)=\"changePageNumber(p)\"\n *ngIf=\"!isEllipsis(p)\">{{p}}</button>\n </ng-container>\n <button class=\"page-link\" [ngClass]=\"{'disabled': page == pageCount}\" (click)=\"changePageNumber(page+1)\">\n <span class=\"sr-only\">Next page</span>\n <mz-svg-icon key=\"chevron-right\"></mz-svg-icon>\n </button>\n </nav>\n <div class=\"pagination-size\">\n Show\n <select #c (change)=\"changePageSize(c.value)\" name=\"pageSizeControl\" class=\"page-size-control\">\n <option *ngFor=\"let size of pageSizeOptions\" [attr.selected]=\"pageSize == size ? true : null\"\n [value]=\"size\">{{size}}</option>\n </select>\n per page\n </div>\n</div>","import { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, ContentChild, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { PageEvent } from '../models/page-event';\nimport { ResultTableOptions } from '../models/result-table-options';\nimport { PaginationComponent } from '../pagination/pagination.component';\nimport { SpinnerComponent } from '../spinner/spinner.component';\nimport { SvgIconComponent } from '../svg-icon/svg-icon.component';\nimport { ResultTableModel } from './result-table.model';\n\n@Component({\n selector: 'mz-result-table',\n templateUrl: './result-table.component.html',\n styleUrls: ['./result-table.component.scss'],\n imports: [CommonModule, PaginationComponent, SpinnerComponent, SvgIconComponent],\n standalone: true,\n})\nexport class ResultTableComponent implements AfterViewInit {\n\n @Input() public loading: boolean = false;\n @Input() public error?: Error;\n @Input() public model: ResultTableModel<any> | undefined | null;\n\n @ContentChild('headerTemplate') headerTemplate!: TemplateRef<any>;\n @ContentChild('bodyTemplate') bodyTemplate!: TemplateRef<any>;\n\n @Input() pageSizeOptions: number[] = [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, table: HTMLElement) {\n this.pageChange.emit(page);\n if(!this.options.skipScrolling) {\n setTimeout(() => {\n table.scrollIntoView({ behavior: 'smooth', block: 'start' });\n });\n }\n }\n\n searchAgain() {\n this.pageChange.emit({ pageNumber: this.model?.pageNumber || 1, pageSize: this.model?.pageSize || 20 }); // TODO\n }\n\n public get state(): 'loading' | 'failed' | 'succeeded' {\n if (this.loading) {\n return 'loading';\n }\n if (this.error) {\n return 'failed';\n }\n\n return 'succeeded';\n }\n\n public get isEmpty(): boolean {\n return !this.model || this.model.items.length === 0;\n }\n}\n","<div class=\"result-table\" [ngClass]=\"{'loading': state === 'loading', 'failed': state === 'failed'}\" #tableRef>\n <div class=\"loading-overlay-spinner\" *ngIf=\"state === 'loading'\">\n <mz-spinner size=\"large\" type=\"primary\"></mz-spinner>\n </div>\n <table class=\"table\" [ngClass]=\"{'has-overlay' : state === 'loading'}\">\n <caption *ngIf=\"state === 'succeeded' && model && model.items.length > 0\">\n {{(model.pageNumber-1) * model.pageSize + 1}} - {{(model.pageNumber-1) * model.pageSize + model.items.length}} of {{ model.totalItems }} results\n </caption>\n <thead>\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </thead>\n <tbody>\n @if(state === 'succeeded' && !isEmpty) {\n <ng-container *ngTemplateOutlet=\"bodyTemplate\"></ng-container>\n }\n </tbody>\n </table>\n <div class=\"table-pagination\" *ngIf=\"state === 'succeeded' && !options?.hidePagination && !isEmpty\">\n <mz-pagination [length]=\"model!.totalItems\" [page]=\"model!.pageNumber\" [pageSize]=\"model!.pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (changePage)=\"changePage($event, tableRef)\"></mz-pagination>\n </div>\n <div class=\"state-message\" *ngIf=\"state == 'succeeded' && isEmpty\">\n <div class=\"title\">No results found</div>\n </div>\n <div class=\"state-message\" *ngIf=\"state == 'failed'\">\n <div class=\"title\">\n <mz-svg-icon key=\"x-circle\" type=\"solid\" class=\"text-danger\"></mz-svg-icon>\n Something went wrong\n </div>\n <div>Unexpected error, <a (click)=\"searchAgain()\" class=\"link-action\">try searching again</a>.</div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, 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: [CommonModule],\n standalone: true,\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\" *ngIf=\"isLoading\">\n <div class=\"progress-bar progress-bar-indeterminate\">\n <div class=\"progress-bar-value\"></div>\n </div>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\n\n@Component({\n selector: 'mz-page-header',\n templateUrl: './page-header.component.html',\n styleUrls: ['./page-header.component.scss'],\n standalone: true,\n})\nexport class PageHeaderComponent implements OnInit {\n private pageTitleValue = 'Servicing Web';\n\n constructor(private title: Title) {}\n\n get pageTitle(): string {\n return this.pageTitleValue;\n }\n\n @Input() set pageTitle(newValue: string) {\n this.pageTitleValue = newValue;\n this.title.setTitle(newValue);\n }\n\n ngOnInit(): void {}\n}\n","<header class=\"page-header\">\n <h1>{{ pageTitle }}</h1>\n <ng-content></ng-content>\n</header>","import { Directive, ElementRef, HostListener, Renderer2 } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport { TimeValue } from './date-time/time-value';\n\n// TODO: need to rename, and need to use ivy instead\n\n@Directive({\n selector: 'input[type=time]',\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: TimeValueAccessorDirective,\n multi: true\n }],\n standalone: true,\n})\nexport class TimeValueAccessorDirective implements ControlValueAccessor {\n\n @HostListener('input', ['$event.target.value'])\n onChange = (x: any) => { };\n onTouched = () => { };\n constructor(private renderer: Renderer2, private elementRef: ElementRef) {\n\n }\n\n writeValue(obj?: TimeValue): void {\n if (!obj) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', null);\n return;\n }\n const hourPrefix = obj?.hour > 9 ? '' : '0';\n const minutePrefix = obj.minute > 9 ? '' : '0';\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', `${hourPrefix}${obj.hour}:${minutePrefix}${obj.minute}`);\n }\n\n registerOnChange(fn: (x: TimeValue | null) => void): void {\n this.onChange = (value) => {\n if (value === null || value === '') {\n fn(null);\n } else {\n const parts = value.split(':');\n fn({ hour: Number(parts[0]), minute: Number(parts[1]) } as TimeValue);\n }\n };\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, OnInit, Input, TemplateRef } from '@angular/core';\nimport { SvgIconComponent } from '../svg-icon/svg-icon.component';\n\n@Component({\n selector: 'mz-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.css'],\n imports: [CommonModule, SvgIconComponent],\n standalone: true,\n})\nexport class AlertComponent implements OnInit {\n @Input() title: string = '';\n @Input() type: 'info' | 'success' | 'error' | 'warning' = 'info';\n @Input() body: TemplateRef<any> | undefined | null;\n @Input() footer: TemplateRef<any> | undefined | null;\n\n constructor() {}\n\n ngOnInit(): void {}\n\n getAlertClass(): string {\n return `alert-${this.type}`;\n }\n\n getAlertIcon(): string {\n let icon = '';\n if (this.type === 'info') {\n icon = 'information-circle';\n } else if (this.type === 'success') {\n icon = 'check-circle';\n } else if (this.type === 'error') {\n icon = 'x-circle';\n } else if (this.type === 'warning') {\n icon = 'exclamation';\n }\n return icon;\n }\n}\n","<div [className]=\"'alert alert-' + type\">\n\n <div>\n <div class=\"alert-icon\">\n <mz-svg-icon [key]=\"getAlertIcon()\" type=\"solid\"></mz-svg-icon>\n </div>\n\n <div class=\"alert-title\">\n <strong>{{ title }}</strong>\n </div>\n </div>\n\n <div class=\"alert-body\" *ngIf=\"body\">\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n </div>\n\n <div class=\"alert-footer\" *ngIf=\"footer\">\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n\n</div>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'mzPhoneNumber',\n standalone: true,\n})\nexport class PhoneNumberPipe implements PipeTransform {\n\n transform(number?: string): string | null {\n if (!number) {\n return null;\n }\n\n const phoneNumber = number.replace(/^\\+1/, '').replace(/\\D/g, '');\n if (phoneNumber.length === 10) {\n return phoneNumber.replace(/(\\d{3})(\\d{3})(\\d{4})/, '($1) $2-$3');\n }\n return number;\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\n\n/**\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@Directive({\n selector: '[mzButton]',\n standalone: true,\n host: {\n role: 'button',\n '[attr.tabindex]': '0',\n '[attr.aria-disabled]': 'busy',\n },\n})\nexport class ButtonDirective implements OnChanges, OnDestroy {\n @Input()\n variant? = 'secondary';\n @Input()\n busy?: boolean = false;\n private svgContent = `\n <svg class=\"button-loading-spinner\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\"\n viewBox=\"0 0 24 24\">\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\">\n </circle>\n <path class=\"opacity-75\" fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\">\n </path>\n </svg>\n `;\n private subscription = new Subscription();\n\n constructor(private renderer: Renderer2, private hostElement: ElementRef) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['busy'] && Boolean(changes['busy'].previousValue) !== Boolean(changes['busy'].currentValue)) {\n this.attachOrDeattachSpinner();\n }\n }\n\n ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n }\n\n @HostBinding('class')\n get elementClass(): string {\n return ['button', `button-${this.variant}`, this.busy ? 'loading' : ''].join(' ');\n }\n\n attachOrDeattachSpinner() {\n if (this.busy) {\n const loadingElement = this.renderer.createElement('span');\n loadingElement.innerHTML = this.svgContent;\n this.renderer.addClass(loadingElement, 'button-loading-overlay');\n this.renderer.appendChild(this.hostElement.nativeElement, loadingElement);\n this.addEventSubscription();\n } else {\n this.renderer.removeChild(this.hostElement.nativeElement, this.getOverlayDiv());\n this.subscription?.unsubscribe();\n }\n }\n\n private addEventSubscription() {\n const el = this.hostElement.nativeElement;\n this.subscription = fromEvent(el.parentNode, 'click', { capture: true })\n .pipe(filter((e: any) => Boolean(this.busy && this.getElementsToVerify().includes(e.target))))\n .subscribe((e: any) => {\n e.stopPropagation();\n });\n }\n\n private getChildElement(query: string) {\n return this.hostElement.nativeElement.querySelector(query);\n }\n\n private getElementsToVerify() {\n return [this.hostElement.nativeElement, this.getOverlayDiv(), this.getChildElement('.button-loading-overlay'), this.getChildElement('.button-loading-overlay svg'), this.getChildElement('.button-loading-overlay svg circle'), this.getChildElement('.button-loading-overlay svg path')];\n }\n\n private getOverlayDiv() {\n return this.getChildElement('.button-loading-overlay');\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { WizardStepLink } from '../models/wizard-step-link';\nimport { SvgIconComponent } from '../svg-icon/svg-icon.component';\n\n@Component({\n selector: 'mz-wizard-progress-tracker',\n templateUrl: './wizard-progress-tracker.component.html',\n styleUrls: ['./wizard-progress-tracker.component.scss'],\n standalone: true,\n imports: [CommonModule, SvgIconComponent]\n})\nexport class WizardProgressTrackerComponent {\n @Input() steps: WizardStepLink[] = [];\n @Input() currentStep = 0;\n @Output() stepChange = new EventEmitter<WizardStepLink>();\n toggled = true;\n\n goToStep(step: WizardStepLink) {\n this.stepChange.emit(step);\n }\n\n toggle(): void {\n this.toggled = !this.toggled;\n }\n}\n","<div class=\"wizard-progress-tracker\">\n <div class=\"direction-container\">\n <span class=\"steps-count\">Step {{ currentStep + 1 }} of {{ steps.length }}</span>\n <div class=\"wizard-steps-container\" [ngClass]=\"{'toggled': toggled}\">\n <div *ngFor=\"let step of steps; index as i;\" class=\"wizard-step\"\n [ngClass]=\"{ 'previous': i < currentStep, 'current': i === currentStep, 'unvisited': i > currentStep }\">\n <ng-container>\n <div class=\"wizard-step-icon-container\">\n <div class=\"spacer left\">\n </div>\n <div *ngIf=\"i > 0\" class=\"step-line left\"></div>\n\n <div *ngIf=\"i < currentStep\" class=\"wizard-step-icon\">\n <mz-svg-icon key=\"check-circle\" type=\"solid\">\n </mz-svg-icon>\n </div>\n <div *ngIf=\"i === currentStep\" class=\"wizard-step-icon\">\n <div class=\"step-inner-circle\"></div>\n </div>\n <div *ngIf=\"i > currentStep\" class=\"wizard-step-icon\">\n </div>\n\n <div *ngIf=\"i < (steps.length - 1)\" class=\"step-line step-line-right\"></div>\n <div class=\"spacer right\"></div>\n </div>\n <a *ngIf=\"i < currentStep\" class=\"step-desc\" (click)=\"goToStep(step)\"> {{\n step.name\n }}</a>\n <div *ngIf=\" i === currentStep\" class=\"step-desc\"> {{ step.name }}\n </div>\n <div *ngIf=\" i > currentStep\" class=\"step-desc\"> {{ step.name }}\n </div>\n <div class=\"toggable-icon\">\n <button *ngIf=\"!toggled\" (click)=\"toggle()\">\n <mz-svg-icon key=\"chevron-down\"></mz-svg-icon>\n </button>\n <button *ngIf=\"toggled\" (click)=\"toggle()\">\n <mz-svg-icon key=\"chevron-up\"></mz-svg-icon>\n </button>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n","import { ChangeDetectorRef, Component, forwardRef, Input, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MatDatepickerInputEvent, MatDatepickerModule } from '@angular/material/datepicker';\nimport { TimeValue } from './time-value';\nimport { MatDatepicker } from '@angular/material/datepicker';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'mz-datetime',\n templateUrl: './date-time.component.html',\n styleUrls: ['./date-time.component.css'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DateTimeComponent),\n multi: true,\n },\n ],\n imports: [CommonModule, MatDatepickerModule],\n standalone: true,\n})\nexport class DateTimeComponent implements ControlValueAccessor {\n date: Date | undefined;\n time: string | undefined;\n\n private lz = (n: number) => ('0' + n).slice(-2);\n private formatDate = (dt: Date) => `${dt.getMonth() + 1}/${dt.getDate()}/${dt.getFullYear()}`;\n private formatTime = (t: Date) => `${this.lz(t.getHours())}:${this.lz(t.getMinutes())}`;\n private formatDateTime = (dt: Date, t: string) => `${this.formatDate(dt)} ${t}`;\n private limitDate = (dt: Date) => {\n if (this.min) {\n dt = new Date(Math.max(dt.getTime(), this.min.getTime()));\n }\n\n if (this.max) {\n dt = new Date(Math.min(dt.getTime(), this.max.getTime()));\n }\n\n return dt;\n };\n private onTimeHourPending = false; \n\n type = 'outline';\n @ViewChild('datePicker') datepicker!: MatDatepicker<Date>;\n\n @Input()\n min?: Date | undefined;\n\n @Input()\n max?: Date | undefined;\n\n @Input()\n disabled = false;\n\n constructor(private _cd: ChangeDetectorRef) {}\n\n onChange = (_: any) => {};\n onTouched = () => {};\n\n writeValue(value: Date) {\n if (value) {\n const dt = new Date(value);\n\n this.date = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());\n this.time = this.formatTime(value);\n } else {\n this.date = undefined;\n this.time = undefined;\n }\n\n this._cd.markForCheck();\n }\n\n registerOnChange(fn: (value: any) => any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n updateDate(e: Event): void {\n const input = e.target as HTMLInputElement;\n\n let dt = new Date(input.value);\n\n if (!isNaN(dt.getTime())) {\n dt = this.limitDate(dt);\n\n this.date = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());\n\n if (this.time === undefined || this.time === '') {\n this.time = this.formatTime(new Date());\n }\n } else {\n this.date = undefined;\n this.time = undefined;\n }\n\n this.propagateModelChange();\n this._cd.markForCheck();\n }\n\n updateTime(e: Event): void {\n const input = e.target as HTMLInputElement;\n\n // this is just a listener event in case the end user types in \"0\". We wait for\n // the next entered value for the time input field to self fix the problem.\n if (!this.onTimeHourPending && !input.value) {\n this.onTimeHourPending = true;\n return;\n }\n\n this.onTimeHourPending = false;\n\n if (!input.value) {\n this.date = undefined;\n } else if (!this.date || isNaN(this.date.getTime())) {\n const dt = this.limitDate(this.min ?? new Date());\n\n this.date = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());\n }\n this.time = input.value;\n\n this.propagateModelChange();\n }\n\n updateDateEvent(event: MatDatepickerInputEvent<Date>) {\n if (event.value) {\n const dt = this.limitDate(new Date(event.value));\n\n this.date = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());\n\n if (this.time === undefined || this.time === '') {\n this.time = this.formatTime(new Date());\n }\n } else {\n this.date = undefined;\n this.time = undefined;\n }\n\n this.propagateModelChange();\n this._cd.markForCheck();\n }\n\n focusOnDateInput() {\n this.datepicker.open();\n }\n\n private propagateModelChange(): void {\n if (this.time && this.date) {\n const dateString = this.formatDateTime(this.date, this.time);\n this.onChange(new Date(dateString));\n } else {\n this.onChange(undefined);\n }\n }\n}\n\nexport interface ScheduleInputModel {\n time: TimeValue;\n}\n","<div class=\"flex\">\n <div class=\"field-control-combo\">\n <input class=\"field-control\" type=\"text\" [value]=\"date\" (change)=\"updateDate($event)\" [min]=\"min\" [max]=\"max\"\n [matDatepicker]=\"datePicker\" (dateChange)=\"updateDateEvent($event)\" [disabled]=\"disabled\" ngDefaultControl>\n <div class=\"field-control-addon\">\n <button class=\"button button-secondary button-icon\" type=\"button\" (click)=\"datePicker.open()\"\n [disabled]=\"disabled\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"\n stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\" />\n </svg>\n </button>\n <mat-datepicker #datePicker></mat-datepicker>\n </div>\n </div>\n <div class=\"field-control-group mt-1 ml-6\">\n <input class=\"field-control\" type=\"time\" [value]=\"time\" (change)=\"updateTime($event)\"\n ngDefaultControl [disabled]=\"disabled\">\n </div>\n</div>\n","import { Directive } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\n\n@Directive({\n selector: 'input[type=time]',\n providers: [{\n provide: NG_VALIDATORS,\n useExisting: TimeValueValidatorDirective,\n multi: true\n }],\n standalone: true,\n})\nexport class TimeValueValidatorDirective implements Validator {\n\n constructor() { }\n\n validate(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n if (value == null || value.length == 0) {\n return null;\n }\n\n /*\n const parts = value.split(':');\n if (parts.length != 2) {\n return { \"time\": \"invalid time\" };\n }*/\n\n return null;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ContentChild, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { SpinnerComponent } from '../spinner/spinner.component';\n\n@Component({\n selector: 'mz-infinite-scroll',\n standalone: true,\n imports: [CommonModule, SpinnerComponent],\n templateUrl: './infinite-scroll.component.html',\n styleUrls: ['./infinite-scroll.component.scss'],\n})\nexport class InfiniteScrollComponent {\n @Input() items: any[] = [];\n @Input() isLoading: boolean = false;\n @Input() containerHeight: string = '24rem';\n @Output() itemSelected = new EventEmitter<any>();\n @Output() loadMore = new EventEmitter<boolean>();\n @ContentChild('itemTemplate') itemTemplate!: TemplateRef<any>; \n selectedItem: any = null;\n\n onContainerScroll(event: any): void {\n const target = event.target;\n if (!this.isLoading && target.offsetHeight + target.scrollTop >= target.scrollHeight) {\n this.loadMore.emit(true);\n }\n }\n\n onItemClick(item: any): void {\n this.selectedItem = item;\n this.itemSelected.emit(item);\n }\n}\n","<div class=\"infinite-scroll-container overflow-auto\" [style.height]=\"containerHeight\" (scroll)=\"onContainerScroll($event)\">\n <ng-container *ngIf=\"itemTemplate; else defaultItems\">\n <ng-container *ngFor=\"let item of items\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"></ng-container>\n </ng-container>\n </ng-container>\n <ng-template #defaultItems>\n <div *ngFor=\"let item of items\" class=\"scroll-item\" [ngClass]=\"{'scroll-item-selected': selectedItem === item}\" (click)=\"onItemClick(item)\">\n {{ item.label }}\n </div>\n </ng-template>\n\n <!-- Spinner -->\n <div *ngIf=\"isLoading\" class=\"scroll-spinner-container\">\n <mz-spinner size=\"medium\" type=\"secondary\"></mz-spinner>\n </div>\n</div>\n","import { CommonModule, DatePipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SpinnerComponent } from './spinner/spinner.component';\nimport { EnumDisplayPipe } from './enum-display/enum-display.pipe';\nimport { SvgIconComponent } from './svg-icon/svg-icon.component';\nimport { ResultTableComponent } from './result-table/result-table.component';\nimport { PaginationComponent } from './pagination/pagination.component';\nimport { PageLoadingIndicatorComponent } from './page-loading-indicator/page-loading-indicator.component';\nimport { PageHeaderComponent } from './page-header/page-header.component';\nimport { TimeValueAccessorDirective } from './time-value-accessor.directive';\nimport { FormsModule } from '@angular/forms';\nimport { AlertComponent } from './alert/alert.component';\nimport { PhoneNumberPipe } from './phone-number/phone-number.pipe';\nimport { DateDisplayPipe } from './date-display/date-display.pipe';\nimport { SortDirective } from './sort.directive';\nimport { SortKeyDirective } from './sort-key.directive';\nimport { SubjectDisplayPipe } from './subject-display/subject-display.pipe';\nimport { ButtonDirective } from './button.directive';\nimport { WizardProgressTrackerComponent } from './wizard-progress-tracker/wizard-progress-tracker.component';\nimport { DateTimeComponent } from './date-time/date-time.component';\nimport { TimeValueValidatorDirective } from './time-value-validator.directive';\nimport { InfiniteScrollComponent } from './infinite-scroll/infinite-scroll.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ButtonDirective,\n SvgIconComponent,\n SpinnerComponent,\n WizardProgressTrackerComponent,\n AlertComponent,\n EnumDisplayPipe,\n ResultTableComponent,\n InfiniteScrollComponent,\n PaginationComponent,\n PageLoadingIndicatorComponent,\n PageHeaderComponent,\n TimeValueAccessorDirective,\n DateDisplayPipe,\n PhoneNumberPipe,\n SortKeyDirective,\n SortDirective,\n SubjectDisplayPipe,\n DateTimeComponent,\n TimeValueValidatorDirective,\n ],\n exports: [\n EnumDisplayPipe,\n SpinnerComponent,\n SvgIconComponent,\n ResultTableComponent,\n InfiniteScrollComponent,\n PaginationComponent,\n PageLoadingIndicatorComponent,\n PageHeaderComponent,\n TimeValueAccessorDirective,\n DateDisplayPipe,\n AlertComponent,\n PhoneNumberPipe,\n SortKeyDirective,\n SortDirective,\n SubjectDisplayPipe,\n ButtonDirective,\n WizardProgressTrackerComponent,\n DateTimeComponent,\n TimeValueValidatorDirective,\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 { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, ContentChild, ElementRef, EventEmitter, Input, Output, Renderer2 } from '@angular/core';\nimport { FormsModule, NgModel } from '@angular/forms';\nimport { ButtonDirective } from '../button.directive';\n\n@Component({\n selector: 'mz-inline-edit',\n standalone: true,\n imports: [ButtonDirective, FormsModule, CommonModule],\n templateUrl: './inline-edit.component.html',\n styleUrl: './inline-edit.component.scss',\n})\nexport class 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\" mzButton [busy]=\"busy\" (click)=\"submitForm()\">Save</button>\n <button type=\"button\" class=\"button button-tertiary\" (click)=\"cancelEdit()\">Cancel</button>\n <!--<button mzButton [busy]=\"busy\" type=\"submit\" (click)=\"submitForm()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-5 w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fill-rule=\"evenodd\" d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\n </svg>\n </button>\n <button type=\"button\" mzButton variant=\"tertiary\" (click)=\"cancelEdit()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-5 w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fill-rule=\"evenodd\" d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\" clip-rule=\"evenodd\" />\n </svg>\n </button>-->\n </div>\n }\n</form>\n","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 { MzDialogConfig } from \"./dialog-config\";\n\n/** Injection token that can be used to provide default options for the dialog module. */\nexport const DEFAULT_MZ_DIALOG_CONFIG = new InjectionToken<MzDialogConfig>('DefaultMzDialogConfig');\n\nexport const MZ_DIALOG_DATA = new InjectionToken<any>('MzDialogData');\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 MzDialog service. Properties here are exposes what's available in @angular/cdk DialogConfig\n * and with a few additional properties for MzDialog.\n * See https://material.angular.io/cdk/dialog/api#DialogConfig\n */\nexport class MzDialogConfig<D = any, C extends BasePortalOutlet = BasePortalOutlet> {\n size?: 'sm' | 'md' | 'lg' | 'xl' = 'md';\n\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 | string | boolean = '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\n /**\n * Component into which the dialog content will be rendered. Defaults to `CdkDialogContainer`.\n * A configuration object can be passed in to customize the providers that will be exposed\n * to the dialog container.\n */\n container?: Type<C>;\n}","import { CdkDialogContainer } from '@angular/cdk/dialog';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { Component, ElementRef, HostListener, Inject, NgZone, Optional } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { FocusTrapFactory, InteractivityChecker } from '@angular/cdk/a11y';\nimport { MzDialogConfig } from '../dialog-config';\nimport { MzDialogRef } from '../dialog-ref';\n\n@Component({\n selector: 'mz-drawer-container',\n standalone: true,\n imports: [CdkPortalOutlet],\n templateUrl: './drawer-container.component.html',\n styleUrl: './drawer-container.component.scss',\n host: {\n 'class': 'mz-dialog-container',\n '[class.open]': 'open'\n }\n})\nexport class DrawerContainerComponent extends CdkDialogContainer<MzDialogConfig> {\n\n private dialogRef?: MzDialogRef<any>;\n protected open = false;\n\n constructor(elementRef: ElementRef, focusTrapFactory: FocusTrapFactory, readonly dialogConfig: MzDialogConfig, 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: MzDialogRef<any>): void {\n this.dialogRef = dialogRef;\n }\n\n protected tryClose(e: UIEvent): void {\n this.dialogRef?.tryClose(undefined, { focusOrigin: e.detail === 0 ? 'keyboard' : 'mouse' });\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 /**\n * Marks state of container for animation purposes.\n */\n enter() {\n this.open = true;\n }\n}\n","<article class=\"mz-dialog\">\n <ng-template cdkPortalOutlet />\n\n @if(!dialogConfig.disableClose) {\n <button class=\"button-close\" (click)=\"tryClose($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 }\n</article>\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 { MzDialogConfig } from \"./dialog-config\";\nimport { BasePortalOutlet } from \"@angular/cdk/portal\";\nimport { Observable, filter, merge } from \"rxjs\";\nimport { CanDeactivateComponent, hasImplementation } from \"../guard-deactivate\";\n\nexport class MzDialogRef<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: MzDialogConfig, 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_DIALOG_CONFIG, MZ_DIALOG_DATA } from './dialog-injectors';\nimport { DrawerContainerComponent } from './container/drawer-container.component';\nimport { MzDialogConfig } from './dialog-config';\nimport { MzDialogRef } from './dialog-ref';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MzDialog implements OnDestroy {\n private cdkDialog: Dialog;\n private openDialogs: MzDialogRef<any>[] = [];\n\n constructor(private injector: Injector, private overlay: Overlay, @Optional() @Inject(DEFAULT_MZ_DIALOG_CONFIG) private configuredOptions: MzDialogConfig, @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?: MzDialogConfig<D>): MzDialogRef<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?: MzDialogConfig<D>): MzDialogRef<R, T>;\n open<R = any, D = any, T = any>(componentOrTemplateRef: ComponentType<T> | TemplateRef<T>, config?: MzDialogConfig<D>): MzDialogRef<R, T>;\n open<R = any, D = any, T = any>(componentOrTemplateRef: ComponentType<T> | TemplateRef<T>, config?: MzDialogConfig<D>): MzDialogRef<R, T> {\n\n const defaultOptions = new MzDialogConfig<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: MzDialogRef<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: options.container || DrawerContainerComponent,\n providers: () => [\n { provide: MzDialogConfig, useValue: options },\n { provide: DialogConfig, useValue: options },\n ],\n },\n templateContext: () => ({ dialogRef }),\n providers: (ref, cdkConfig, dialogContainer) => {\n dialogRef = new MzDialogRef(ref, options, dialogContainer);\n return [\n { provide: MZ_DIALOG_DATA, useValue: cdkConfig.data },\n { provide: MzDialogRef, 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 DrawerContainerComponent) {\n cdkRef.containerInstance.enter();\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(): MzDialogRef<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: MzDialogRef<any>[]) {\n let i = dialogs.length;\n\n while (i--) {\n dialogs[i].close();\n }\n }\n}","import { DialogModule } from \"@angular/cdk/dialog\";\nimport { NgModule } from \"@angular/core\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\nimport { PortalModule } from \"@angular/cdk/portal\";\nimport { MzDialog } from \"./mz-dialog.service\";\nimport { DrawerContainerComponent } from \"./container/drawer-container.component\";\n\n@NgModule({\n imports: [DialogModule, OverlayModule, PortalModule, DrawerContainerComponent],\n exports: [\n DialogModule,\n DrawerContainerComponent\n ],\n providers: [MzDialog]\n})\nexport class MzDialogModule {}","import { CdkTrapFocus } from '@angular/cdk/a11y';\nimport { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'mz-dropdown',\n standalone: true,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, CdkTrapFocus],\n templateUrl: './dropdown.component.html',\n styleUrl: './dropdown.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class MzDropdownComponent {\n @Input() label: string = '';\n @Input() open = false;\n\n toggle() {\n this.open = !this.open;\n }\n\n collapse() {\n this.open = false;\n }\n}\n","<button cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" (click)=\"toggle()\" class=\"button button-secondary\" [class.active]=\"open\">\n {{ label }}\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\" class=\"mz-dropdown-icon\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n</button>\n<ng-template \n cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\" [cdkConnectedOverlayOpen]=\"open\" (overlayOutsideClick)=\"collapse()\" (detach)=\"collapse()\">\n <div cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\" class=\"mz-dropdown-body\">\n <ng-content></ng-content>\n </div>\n</ng-template>","import { Directive, Host, OnInit, Renderer2 } from '@angular/core';\nimport { MzDropdownComponent } from './dropdown.component';\n\n@Directive({\n selector: '[mzDropdownItem]',\n standalone: true,\n host: {\n 'class': 'mz-dropdown-item',\n '(click)': 'close()'\n }\n})\nexport class MzDropdownItemDirective{\n\n constructor(@Host() private dropdown: MzDropdownComponent) { }\n\n close() {\n this.dropdown.collapse();\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { MzDropdownComponent } from \"./dropdown.component\";\nimport { MzDropdownItemDirective } from \"./dropdown-item.directive\";\n\n@NgModule({\n imports: [MzDropdownComponent, MzDropdownItemDirective],\n exports: [MzDropdownComponent, MzDropdownItemDirective]\n})\nexport class MzDropdownModule {}","import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { AfterContentInit, Component, ContentChild, Input } from '@angular/core';\nimport { FormsModule, NgForm } from '@angular/forms';\n\n@Component({\n selector: 'mz-filter',\n standalone: true,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, FormsModule, CommonModule],\n templateUrl: './filter.component.html',\n styleUrl: './filter.component.scss',\n})\nexport class FilterComponent implements AfterContentInit {\n @Input() label = 'Filter';\n @ContentChild(NgForm) menuForm!: NgForm;\n protected open = false;\n private initialValues: any;\n\n ngAfterContentInit(): void {\n this.initialValues = this.menuForm.value;\n }\n\n toggleOverlay() {\n this.open = !this.open;\n }\n\n dismiss() {\n this.open = false;\n if(this.menuForm.options.updateOn === 'submit') {\n this.menuForm.resetForm(this.initialValues);\n }\n }\n\n clear() {\n this.open = false;\n }\n\n apply() {\n this.open = false;\n console.log('applied', this.menuForm.value);\n }\n}\n","<button cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\" (click)=\"toggleOverlay()\" class=\"button button-secondary\" [class.active]=\"open\">\n {{ label }}\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</button>\n<ng-template \n cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger\" [cdkConnectedOverlayOpen]=\"open\" [cdkConnectedOverlayPanelClass]=\"'dropdown-body'\" (overlayOutsideClick)=\"dismiss()\">\n <div>\n <ng-content></ng-content>\n\n <div class=\"dropdown-buttons\">\n @if(menuForm.options.updateOn === 'submit') {\n <button type=\"button\" class=\"button button-primary\" (click)=\"apply()\">Apply</button>\n }\n <button type=\"button\" class=\"button button-tertiary\" (click)=\"clear()\">Clear</button>\n </div>\n </div>\n</ng-template>\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 { SpinnerComponent } from '../spinner/spinner.component';\n\n@Component({\n selector: 'mz-options-filter',\n standalone: true,\n imports: [FormsModule, CdkOverlayOrigin, CdkConnectedOverlay, SpinnerComponent],\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()\" class=\"button button-secondary\" [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\" class=\"button button-tertiary\" (click)=\"clear()\">Clear</button>\n </div>\n </form>\n </div>\n</ng-template>\n","/*\n * Public API Surface of components\n */\n\nexport { SvgIconComponent } from './lib/svg-icon/svg-icon.component';\nexport { SvgIconOptions, SVG_ICON_DEFAULT_OPTIONS } from './lib/svg-icon/svg-icon-config';\n\nexport { EnumDisplayPipe } from './lib/enum-display/enum-display.pipe';\nexport { SpinnerComponent } from './lib/spinner/spinner.component';\n\nexport { MuziehComponentsModule } from './lib/components.module';\nexport { PageLoadingIndicatorComponent } from './lib/page-loading-indicator/page-loading-indicator.component';\nexport { PageHeaderComponent } from './lib/page-header/page-header.component';\nexport { PhoneNumberPipe } from './lib/phone-number/phone-number.pipe';\nexport { DateDisplayPipe } from './lib/date-display/date-display.pipe';\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// table\nexport { ResultTableComponent } from './lib/result-table/result-table.component';\nexport { PaginationComponent } from './lib/pagination/pagination.component';\nexport { PageEvent } from './lib/models/page-event';\nexport { LoadingState } from './lib/models/loading-state';\nexport { ResultTableModel } from './lib/result-table/result-table.model';\n\n// infinite scroll\nexport { InfiniteScrollComponent } from './lib/infinite-scroll/infinite-scroll.component';\n\n// Datetime\nexport { DateTimeComponent } from './lib/date-time/date-time.component';\nexport { TimeValue } from './lib/date-time/time-value';\nexport { TimeValueAccessorDirective } from './lib/time-value-accessor.directive';\nexport { TimeValueValidatorDirective } from './lib/time-value-validator.directive';\n\n// testing files\nexport { MuziehComponentHarness } from './lib/testing/muzieh-component-harness';\nexport { ResultTableHarness } from './lib/testing/result-table-harness';\n\n// alert\nexport { AlertComponent } from './lib/alert/alert.component';\n\n// sort\nexport { SortKeyDirective } from './lib/sort-key.directive';\nexport { SortDirective } from './lib/sort.directive';\nexport { ButtonDirective } from './lib/button.directive';\nexport { SortEvent } from './lib/models/sort-event';\n\nexport { WizardStepLink } from './lib/models/wizard-step-link';\nexport { WizardProgressTrackerComponent } from './lib/wizard-progress-tracker/wizard-progress-tracker.component';\n\n// dialog\nexport { MzDialog } from './lib/dialog/mz-dialog.service';\nexport { MzDialogConfig } from './lib/dialog/dialog-config';\nexport { MzDialogRef } from './lib/dialog/dialog-ref';\nexport { DrawerContainerComponent } from './lib/dialog/container/drawer-container.component';\nexport { MzDialogModule } from './lib/dialog/dialog.module';\n\n// dropdown\nexport { MzDropdownComponent } from './lib/dropdown/dropdown.component';\nexport { MzDropdownItemDirective } from './lib/dropdown/dropdown-item.directive';\nexport { MzDropdownModule } from './lib/dropdown/dropdown.module';\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';\n\n// utilities\nexport { CanDeactivateComponent, hasImplementation } from './lib/guard-deactivate';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i1.SortDirective","filter","take","i1.MzDropdownComponent"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
.structured-article {
|
|
20
20
|
display: flex;
|
|
21
21
|
flex-direction: column;
|
|
22
|
-
padding: 1rem;
|
|
22
|
+
padding: 0 1rem;
|
|
23
23
|
height:100%;
|
|
24
24
|
overflow-y: auto;
|
|
25
25
|
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
padding: 0.75rem 0;
|
|
33
33
|
position: sticky;
|
|
34
34
|
background-color: var(--surface-bg, #fff);
|
|
35
|
+
z-index: 1;
|
|
35
36
|
}
|
|
36
37
|
|
|
37
38
|
header {
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
@mixin overlay() {
|
|
2
|
+
background-color: var(--surface-bg);
|
|
3
|
+
min-width: 5rem;
|
|
4
|
+
margin-top: 0.25rem;
|
|
5
|
+
padding: 0.75rem;
|
|
6
|
+
border-radius: var(--surface-border-radius);
|
|
7
|
+
--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1) !important;
|
|
8
|
+
--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color) !important;
|
|
9
|
+
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important;
|
|
10
|
+
}
|
|
File without changes
|