@muziehdesign/components 18.2.0-beta.2118 → 18.2.0-beta.2125
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/design/_form.scss +55 -110
- package/design/_mixins.scss +17 -0
- package/design/_utilities.scss +13 -0
- package/esm2022/lib/date-display/date-display-config.mjs +12 -0
- package/esm2022/lib/date-display/date-display.pipe.mjs +4 -1
- package/esm2022/lib/date-display/date.pipe.mjs +41 -0
- package/esm2022/lib/drawer/drawer-container.component.mjs +2 -2
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/muziehdesign-components.mjs +55 -4
- package/fesm2022/muziehdesign-components.mjs.map +1 -1
- package/lib/date-display/date-display-config.d.ts +10 -0
- package/lib/date-display/date-display.pipe.d.ts +4 -1
- package/lib/date-display/date.pipe.d.ts +12 -0
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
package/design/_form.scss
CHANGED
@@ -1,3 +1,45 @@
|
|
1
|
+
@use "mixins" as *;
|
2
|
+
|
3
|
+
|
4
|
+
.form-input, .form-textarea, .form-select {
|
5
|
+
@include field-control();
|
6
|
+
|
7
|
+
&:focus {
|
8
|
+
@include field-control-focused();
|
9
|
+
}
|
10
|
+
}
|
11
|
+
|
12
|
+
.input-group {
|
13
|
+
@apply flex gap-2 items-center;
|
14
|
+
@include field-control();
|
15
|
+
|
16
|
+
&:focus-within {
|
17
|
+
@include field-control-focused();
|
18
|
+
}
|
19
|
+
|
20
|
+
.form-input {
|
21
|
+
@apply grow;
|
22
|
+
}
|
23
|
+
|
24
|
+
.form-input, .form-input:focus, .form-select, .form-select:focus, .button, .button:focus {
|
25
|
+
border-color: transparent;
|
26
|
+
--tw-ring-color: transparent;
|
27
|
+
--tw-ring-offset-width: 0px;
|
28
|
+
}
|
29
|
+
|
30
|
+
& > *:first-child {
|
31
|
+
@apply pl-3;
|
32
|
+
}
|
33
|
+
|
34
|
+
& > *:last-child {
|
35
|
+
@apply pr-3;
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
.checkbox-label {
|
40
|
+
@apply ml-2 text-base;
|
41
|
+
}
|
42
|
+
|
1
43
|
.form {
|
2
44
|
@apply max-w-md;
|
3
45
|
|
@@ -16,7 +58,7 @@
|
|
16
58
|
}
|
17
59
|
|
18
60
|
.description {
|
19
|
-
@apply text-
|
61
|
+
@apply text-subtler text-sm;
|
20
62
|
}
|
21
63
|
|
22
64
|
.footer {
|
@@ -25,45 +67,36 @@
|
|
25
67
|
}
|
26
68
|
|
27
69
|
.field {
|
28
|
-
@apply block py-
|
70
|
+
@apply block py-3 text-sm;
|
29
71
|
|
30
72
|
.help-text {
|
31
|
-
@apply text-
|
73
|
+
@apply text-subtler block mt-1;
|
32
74
|
}
|
33
75
|
}
|
34
76
|
|
35
|
-
.
|
36
|
-
@apply
|
77
|
+
.option-list .field {
|
78
|
+
@apply py-1;
|
37
79
|
}
|
38
80
|
|
39
|
-
.field-
|
40
|
-
@apply
|
41
|
-
|
42
|
-
.field-label {
|
43
|
-
@apply text-current font-normal pl-2 text-base;
|
44
|
-
}
|
81
|
+
.field-label {
|
82
|
+
@apply text-subtle font-medium block mb-1;
|
45
83
|
}
|
46
84
|
|
47
|
-
.
|
48
|
-
|
85
|
+
.form-input,
|
86
|
+
.form-select,
|
87
|
+
.form-textarea {
|
88
|
+
@apply w-full;
|
49
89
|
}
|
50
90
|
|
51
91
|
.fieldset {
|
52
92
|
@apply mt-6;
|
53
93
|
|
54
94
|
legend {
|
55
|
-
@apply text-
|
56
|
-
}
|
57
|
-
}
|
58
|
-
|
59
|
-
.option-list {
|
60
|
-
@apply block py-1;
|
61
|
-
|
62
|
-
legend {
|
63
|
-
@apply text-gray-600 text-sm font-medium;
|
95
|
+
@apply text-subtle tracking-wide uppercase font-medium text-sm;
|
64
96
|
}
|
65
97
|
}
|
66
98
|
|
99
|
+
// code below needs to be validated again
|
67
100
|
.form-message {
|
68
101
|
@apply p-1 block;
|
69
102
|
|
@@ -89,91 +122,3 @@
|
|
89
122
|
@apply border-danger;
|
90
123
|
}
|
91
124
|
}
|
92
|
-
|
93
|
-
/*
|
94
|
-
.field-control-addon {
|
95
|
-
@apply px-3 inline-flex flex-col flex-shrink-0 items-center justify-center text-secondary;
|
96
|
-
|
97
|
-
&.field-control {
|
98
|
-
@apply w-full;
|
99
|
-
}
|
100
|
-
|
101
|
-
.button {
|
102
|
-
@apply py-1 h-full -ml-2.5 -mr-3;
|
103
|
-
}
|
104
|
-
}
|
105
|
-
|
106
|
-
.field-control-group {
|
107
|
-
@apply flex items-stretch h-full border border-gray-500 shadow;
|
108
|
-
|
109
|
-
.field-control {
|
110
|
-
@apply grow m-0 border-transparent outline-0;
|
111
|
-
}
|
112
|
-
|
113
|
-
/*
|
114
|
-
.field-control:focus {
|
115
|
-
@apply border border-primary;
|
116
|
-
}
|
117
|
-
|
118
|
-
&:focus-within {
|
119
|
-
@apply border-primary outline-2 outline outline-offset-2;
|
120
|
-
}
|
121
|
-
|
122
|
-
&.invalid {
|
123
|
-
@apply border-danger;
|
124
|
-
}
|
125
|
-
|
126
|
-
.ng-submitted .field-control.ng-invalid, .field-control.ng-touched.ng-invalid {
|
127
|
-
@apply border-0;
|
128
|
-
}
|
129
|
-
}*/
|
130
|
-
|
131
|
-
|
132
|
-
.field-control-addon {
|
133
|
-
@apply inline-flex flex-col flex-shrink-0 items-center justify-center text-secondary px-3;
|
134
|
-
|
135
|
-
&.field-control {
|
136
|
-
@apply w-full;
|
137
|
-
}
|
138
|
-
|
139
|
-
.button {
|
140
|
-
@apply py-1 h-full -mr-3;
|
141
|
-
}
|
142
|
-
}
|
143
|
-
|
144
|
-
.field-control-group {
|
145
|
-
@apply flex items-stretch h-full border border-gray-500 shadow;
|
146
|
-
|
147
|
-
.field-control {
|
148
|
-
box-shadow: none;
|
149
|
-
@apply grow m-0 border-0 outline-0;
|
150
|
-
}
|
151
|
-
|
152
|
-
&:focus-within {
|
153
|
-
@apply outline outline-1 outline-primary;
|
154
|
-
}
|
155
|
-
|
156
|
-
&.invalid:not(:focus-within) {
|
157
|
-
@apply border-danger;
|
158
|
-
}
|
159
|
-
|
160
|
-
> *:not(:first-child).field-control-addon {
|
161
|
-
@apply pl-0;
|
162
|
-
}
|
163
|
-
|
164
|
-
> *:not(:last-child).field-control-addon {
|
165
|
-
@apply pr-0;
|
166
|
-
}
|
167
|
-
}
|
168
|
-
|
169
|
-
.field-control-combo {
|
170
|
-
@apply flex items-stretch;
|
171
|
-
|
172
|
-
.field-control {
|
173
|
-
@apply grow border;
|
174
|
-
}
|
175
|
-
|
176
|
-
.button {
|
177
|
-
@apply -mx-2 mt-1;
|
178
|
-
}
|
179
|
-
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
@mixin field-control() {
|
2
|
+
border-radius: var(--input-border-radius, 0px);
|
3
|
+
border: 1px solid var(--input-border-color, --color-neutral-500);
|
4
|
+
}
|
5
|
+
|
6
|
+
@mixin field-control-focused() {
|
7
|
+
outline: 2px solid transparent;
|
8
|
+
outline-offset: 2px;
|
9
|
+
--tw-ring-inset: var(--tw-empty, /*!*/ /*!*/);
|
10
|
+
--tw-ring-offset-width: 0px;
|
11
|
+
--tw-ring-offset-color: #fff;
|
12
|
+
--tw-ring-color: var(--color-primary);
|
13
|
+
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
|
14
|
+
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
|
15
|
+
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
16
|
+
border-color: var(--color-primary);
|
17
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { InjectionToken } from "@angular/core";
|
2
|
+
export const DATE_PIPE_CONFIG_OPTIONS = Object.freeze({
|
3
|
+
formats: new Map([
|
4
|
+
['short', 'MM/dd/yyyy hh:mm a'],
|
5
|
+
['medium', 'MMM d y h:mm:ss a'],
|
6
|
+
['shortDate', 'MM/dd/yyyy'],
|
7
|
+
['mediumDate', 'MMM d y']
|
8
|
+
]),
|
9
|
+
dateFormat: 'MM/dd/yyyy hh:mm a'
|
10
|
+
});
|
11
|
+
export const MZ_DATE_PIPE_DEFAULT_OPTIONS = new InjectionToken('MzDateDisplayDefaultOptions');
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1kaXNwbGF5LWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kYXRlLWRpc3BsYXkvZGF0ZS1kaXNwbGF5LWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTlDLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDbEQsT0FBTyxFQUFFLElBQUksR0FBRyxDQUFpQjtRQUM3QixDQUFDLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQztRQUMvQixDQUFDLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQztRQUMvQixDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUM7UUFDM0IsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDO0tBQzVCLENBQUM7SUFDRixVQUFVLEVBQUUsb0JBQW9CO0NBQ1IsQ0FBQyxDQUFDO0FBTTlCLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLElBQUksY0FBYyxDQUFtQiw2QkFBNkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVBpcGVDb25maWcgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCJcblxuZXhwb3J0IGNvbnN0IERBVEVfUElQRV9DT05GSUdfT1BUSU9OUyA9IE9iamVjdC5mcmVlemUoe1xuICAgIGZvcm1hdHM6IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtcbiAgICAgICAgWydzaG9ydCcsICdNTS9kZC95eXl5IGhoOm1tIGEnXSxcbiAgICAgICAgWydtZWRpdW0nLCAnTU1NIGQgeSBoOm1tOnNzIGEnXSxcbiAgICAgICAgWydzaG9ydERhdGUnLCAnTU0vZGQveXl5eSddLFxuICAgICAgICBbJ21lZGl1bURhdGUnLCAnTU1NIGQgeSddXG4gICAgXSksXG4gICAgZGF0ZUZvcm1hdDogJ01NL2RkL3l5eXkgaGg6bW0gYSdcbn0gc2F0aXNmaWVzIE16RGF0ZVBpcGVDb25maWcpO1xuXG5leHBvcnQgaW50ZXJmYWNlIE16RGF0ZVBpcGVDb25maWcgZXh0ZW5kcyBEYXRlUGlwZUNvbmZpZyB7XG4gICAgZm9ybWF0czogTWFwPHN0cmluZywgc3RyaW5nPlxufVxuXG5leHBvcnQgY29uc3QgTVpfREFURV9QSVBFX0RFRkFVTFRfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxNekRhdGVQaXBlQ29uZmlnPignTXpEYXRlRGlzcGxheURlZmF1bHRPcHRpb25zJyk7Il19
|
@@ -2,6 +2,9 @@ import { DatePipe } from '@angular/common';
|
|
2
2
|
import { Pipe } from '@angular/core';
|
3
3
|
import * as i0 from "@angular/core";
|
4
4
|
import * as i1 from "@angular/common";
|
5
|
+
/**
|
6
|
+
* @deprecated use mzDate instead
|
7
|
+
*/
|
5
8
|
export class DateDisplayPipe {
|
6
9
|
constructor(datePipe) {
|
7
10
|
this.datePipe = datePipe;
|
@@ -29,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
29
32
|
standalone: true,
|
30
33
|
}]
|
31
34
|
}], ctorParameters: () => [{ type: i1.DatePipe }] });
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1kaXNwbGF5LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGF0ZS1kaXNwbGF5L2RhdGUtZGlzcGxheS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7O0FBRXBEOztHQUVHO0FBS0gsTUFBTSxPQUFPLGVBQWU7SUFDeEIsWUFBb0IsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUFHLENBQUM7SUFFMUMsU0FBUyxDQUFDLEtBQW9CLEVBQUUsTUFBZTtRQUMzQyxJQUFJLGFBQWEsQ0FBQztRQUNsQixJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN2QixhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2pFLENBQUM7YUFBTSxJQUFHLE1BQU0sS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUM5QixhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFDM0UsQ0FBQzthQUFNLENBQUM7WUFDTixhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFDRCxPQUFPLGFBQWEsQ0FBQztJQUN6QixDQUFDOzhHQWJRLGVBQWU7NEdBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFKM0IsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsZUFBZTtvQkFDckIsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIHVzZSBtekRhdGUgaW5zdGVhZFxuICovXG5AUGlwZSh7XG4gICAgbmFtZTogJ216RGF0ZURpc3BsYXknLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIERhdGVEaXNwbGF5UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlKSB7fVxuXG4gICAgdHJhbnNmb3JtKHZhbHVlOiBEYXRlIHwgc3RyaW5nLCBmb3JtYXQ/OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgbGV0IHJlZGVmaW5lZERhdGU7XG4gICAgICAgIGlmIChmb3JtYXQgPT09ICdjb25jaXNlJykge1xuICAgICAgICAgICAgcmVkZWZpbmVkRGF0ZSA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlLCAnTU0vZGQveXl5eScpO1xuICAgICAgICB9IGVsc2UgaWYoZm9ybWF0ID09PSAnZGV0YWlsZWQnKSB7XG4gICAgICAgICAgICByZWRlZmluZWREYXRlID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odmFsdWUsICdNTS9kZC95eXl5IGg6bW06c3MgYScpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlZGVmaW5lZERhdGUgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh2YWx1ZSwgJ01NL2RkL3l5eXknKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVkZWZpbmVkRGF0ZTtcbiAgICB9XG59Il19
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import { DatePipe } from '@angular/common';
|
2
|
+
import { Inject, LOCALE_ID, Optional, Pipe } from '@angular/core';
|
3
|
+
import { DATE_PIPE_CONFIG_OPTIONS, MZ_DATE_PIPE_DEFAULT_OPTIONS } from './date-display-config';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
export class MzDatePipe extends DatePipe {
|
6
|
+
constructor(locale, defaultMzOptions) {
|
7
|
+
const o = defaultMzOptions || DATE_PIPE_CONFIG_OPTIONS;
|
8
|
+
super(locale, null, o);
|
9
|
+
this.options = o;
|
10
|
+
}
|
11
|
+
transform(value, format, timezone, locale) {
|
12
|
+
let translatedFormat = format;
|
13
|
+
let translatedTimezone = timezone;
|
14
|
+
if (format) {
|
15
|
+
translatedFormat = this.options.formats.get(format) || format;
|
16
|
+
}
|
17
|
+
if (timezone === 'original' && typeof value === 'string') {
|
18
|
+
const match = value.match(/([+-]\d{2}:\d{2})$/);
|
19
|
+
translatedTimezone = match ? match[1] : '+00:00';
|
20
|
+
}
|
21
|
+
return super.transform(value, translatedFormat, translatedTimezone, locale);
|
22
|
+
}
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: MzDatePipe, deps: [{ token: LOCALE_ID }, { token: MZ_DATE_PIPE_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
24
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.1", ngImport: i0, type: MzDatePipe, isStandalone: true, name: "mzDate" }); }
|
25
|
+
}
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: MzDatePipe, decorators: [{
|
27
|
+
type: Pipe,
|
28
|
+
args: [{
|
29
|
+
name: 'mzDate',
|
30
|
+
standalone: true,
|
31
|
+
}]
|
32
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
33
|
+
type: Inject,
|
34
|
+
args: [LOCALE_ID]
|
35
|
+
}] }, { type: undefined, decorators: [{
|
36
|
+
type: Optional
|
37
|
+
}, {
|
38
|
+
type: Inject,
|
39
|
+
args: [MZ_DATE_PIPE_DEFAULT_OPTIONS]
|
40
|
+
}] }] });
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2RhdGUtZGlzcGxheS9kYXRlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLDRCQUE0QixFQUFvQixNQUFNLHVCQUF1QixDQUFDOztBQU1qSCxNQUFNLE9BQU8sVUFBVyxTQUFRLFFBQVE7SUFFcEMsWUFBK0IsTUFBYyxFQUFvRCxnQkFBMEM7UUFDdkksTUFBTSxDQUFDLEdBQUcsZ0JBQWdCLElBQUksd0JBQXdCLENBQUM7UUFDdkQsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUlRLFNBQVMsQ0FBQyxLQUFnRCxFQUFFLE1BQWUsRUFBRSxRQUFpQixFQUFFLE1BQWU7UUFDcEgsSUFBSSxnQkFBZ0IsR0FBRyxNQUFNLENBQUM7UUFDOUIsSUFBSSxrQkFBa0IsR0FBRyxRQUFRLENBQUM7UUFFbEMsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNULGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUM7UUFDbEUsQ0FBQztRQUNELElBQUcsUUFBUSxLQUFLLFVBQVUsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN4RCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDaEQsa0JBQWtCLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUNuRCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoRixDQUFDOzhHQXZCUSxVQUFVLGtCQUVDLFNBQVMsYUFBc0MsNEJBQTRCOzRHQUZ0RixVQUFVOzsyRkFBVixVQUFVO2tCQUp0QixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxRQUFRO29CQUNkLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7MEJBR2dCLE1BQU07MkJBQUMsU0FBUzs7MEJBQW1CLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0LCBMT0NBTEVfSUQsIE9wdGlvbmFsLCBQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEQVRFX1BJUEVfQ09ORklHX09QVElPTlMsIE1aX0RBVEVfUElQRV9ERUZBVUxUX09QVElPTlMsIE16RGF0ZVBpcGVDb25maWcgfSBmcm9tICcuL2RhdGUtZGlzcGxheS1jb25maWcnO1xuXG5AUGlwZSh7XG4gICAgbmFtZTogJ216RGF0ZScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTXpEYXRlUGlwZSBleHRlbmRzIERhdGVQaXBlIHtcbiAgICBwcml2YXRlIG9wdGlvbnM6IE16RGF0ZVBpcGVDb25maWc7XG4gICAgY29uc3RydWN0b3IoQEluamVjdChMT0NBTEVfSUQpIGxvY2FsZTogc3RyaW5nLCBAT3B0aW9uYWwoKSBASW5qZWN0KE1aX0RBVEVfUElQRV9ERUZBVUxUX09QVElPTlMpIGRlZmF1bHRNek9wdGlvbnM/OiBNekRhdGVQaXBlQ29uZmlnIHwgbnVsbCkge1xuICAgICAgICBjb25zdCBvID0gZGVmYXVsdE16T3B0aW9ucyB8fCBEQVRFX1BJUEVfQ09ORklHX09QVElPTlM7XG4gICAgICAgIHN1cGVyKGxvY2FsZSwgbnVsbCwgbyk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG87XG4gICAgfVxuICAgIG92ZXJyaWRlIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgRGF0ZSwgZm9ybWF0Pzogc3RyaW5nIHwgdW5kZWZpbmVkLCB0aW1lem9uZT86IHN0cmluZyB8IHVuZGVmaW5lZCwgbG9jYWxlPzogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHwgbnVsbDtcbiAgICBvdmVycmlkZSB0cmFuc2Zvcm0odmFsdWU6IG51bGwgfCB1bmRlZmluZWQsIGZvcm1hdD86IHN0cmluZyB8IHVuZGVmaW5lZCwgdGltZXpvbmU/OiBzdHJpbmcgfCB1bmRlZmluZWQsIGxvY2FsZT86IHN0cmluZyB8IHVuZGVmaW5lZCk6IG51bGw7XG4gICAgb3ZlcnJpZGUgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZCwgZm9ybWF0Pzogc3RyaW5nIHwgdW5kZWZpbmVkLCB0aW1lem9uZT86IHN0cmluZyB8IHVuZGVmaW5lZCwgbG9jYWxlPzogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHwgbnVsbDtcbiAgICBvdmVycmlkZSB0cmFuc2Zvcm0odmFsdWU6IERhdGUgfCBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBmb3JtYXQ/OiBzdHJpbmcsIHRpbWV6b25lPzogc3RyaW5nLCBsb2NhbGU/OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgbGV0IHRyYW5zbGF0ZWRGb3JtYXQgPSBmb3JtYXQ7XG4gICAgICAgIGxldCB0cmFuc2xhdGVkVGltZXpvbmUgPSB0aW1lem9uZTtcblxuICAgICAgICBpZiAoZm9ybWF0KSB7XG4gICAgICAgICAgICB0cmFuc2xhdGVkRm9ybWF0ID0gdGhpcy5vcHRpb25zLmZvcm1hdHMuZ2V0KGZvcm1hdCkgfHwgZm9ybWF0O1xuICAgICAgICB9XG4gICAgICAgIGlmKHRpbWV6b25lID09PSAnb3JpZ2luYWwnICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBjb25zdCBtYXRjaCA9IHZhbHVlLm1hdGNoKC8oWystXVxcZHsyfTpcXGR7Mn0pJC8pO1xuICAgICAgICAgIHRyYW5zbGF0ZWRUaW1lem9uZSA9IG1hdGNoID8gbWF0Y2hbMV0gOiAnKzAwOjAwJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdXBlci50cmFuc2Zvcm0odmFsdWUsIHRyYW5zbGF0ZWRGb3JtYXQsIHRyYW5zbGF0ZWRUaW1lem9uZSwgbG9jYWxlKTtcbiAgICB9XG59XG4iXX0=
|
@@ -12,10 +12,10 @@ export class DrawerContainerComponent extends CdkDialogContainer {
|
|
12
12
|
this.open = true;
|
13
13
|
}
|
14
14
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: DrawerContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
15
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: DrawerContainerComponent, isStandalone: true, selector: "mz-drawer-container", usesInheritance: true, ngImport: i0, template: "<div class=\"drawer-container\" [class.open]=\"open\">\n <ng-template cdkPortalOutlet />\n</div>", styles: [".drawer-container{background-color:#fff;min-width:
|
15
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: DrawerContainerComponent, isStandalone: true, selector: "mz-drawer-container", usesInheritance: true, ngImport: i0, template: "<div class=\"drawer-container\" [class.open]=\"open\">\n <ng-template cdkPortalOutlet />\n</div>", styles: [".drawer-container{background-color:#fff;min-width:500px;max-width:90%;padding:.5rem 1rem;overflow:auto;height:100vh;position:absolute;right:0;top:0;transition:translate .3s ease-out;translate:100%}.drawer-container.open{translate:0%}\n"], dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
|
16
16
|
}
|
17
17
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: DrawerContainerComponent, decorators: [{
|
18
18
|
type: Component,
|
19
|
-
args: [{ selector: 'mz-drawer-container', standalone: true, imports: [CdkPortalOutlet], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, template: "<div class=\"drawer-container\" [class.open]=\"open\">\n <ng-template cdkPortalOutlet />\n</div>", styles: [".drawer-container{background-color:#fff;min-width:
|
19
|
+
args: [{ selector: 'mz-drawer-container', standalone: true, imports: [CdkPortalOutlet], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, template: "<div class=\"drawer-container\" [class.open]=\"open\">\n <ng-template cdkPortalOutlet />\n</div>", styles: [".drawer-container{background-color:#fff;min-width:500px;max-width:90%;padding:.5rem 1rem;overflow:auto;height:100vh;position:absolute;right:0;top:0;transition:translate .3s ease-out;translate:100%}.drawer-container.open{translate:0%}\n"] }]
|
20
20
|
}] });
|
21
21
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZHJhd2VyL2RyYXdlci1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2RyYXdlci9kcmF3ZXItY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBZ0IsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFXdEYsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGtCQUFnQztJQVQ5RTs7UUFVRSxTQUFJLEdBQUcsS0FBSyxDQUFDO0tBTWQ7SUFKb0IsZ0JBQWdCO1FBQ2pDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7OEdBTlUsd0JBQXdCO2tHQUF4Qix3QkFBd0Isc0dDYnJDLHFHQUVNLHFTREtNLGVBQWU7OzJGQU1kLHdCQUF3QjtrQkFUcEMsU0FBUzsrQkFDRSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLENBQUMsZUFBZSxDQUFDLGlCQUNYLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEaWFsb2dDb250YWluZXIsIERpYWxvZ0NvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kaWFsb2cnO1xuaW1wb3J0IHsgQ2RrUG9ydGFsT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtei1kcmF3ZXItY29udGFpbmVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0Nka1BvcnRhbE91dGxldF0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbiAgdGVtcGxhdGVVcmw6ICcuL2RyYXdlci1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZHJhd2VyLWNvbnRhaW5lci5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgRHJhd2VyQ29udGFpbmVyQ29tcG9uZW50IGV4dGVuZHMgQ2RrRGlhbG9nQ29udGFpbmVyPERpYWxvZ0NvbmZpZz57XG4gIG9wZW4gPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX2NvbnRlbnRBdHRhY2hlZCgpOiB2b2lkIHtcbiAgICBzdXBlci5fY29udGVudEF0dGFjaGVkKCk7XG4gICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRyYXdlci1jb250YWluZXJcIiBbY2xhc3Mub3Blbl09XCJvcGVuXCI+XG4gICAgPG5nLXRlbXBsYXRlIGNka1BvcnRhbE91dGxldCAvPlxuPC9kaXY+Il19
|
package/esm2022/public-api.mjs
CHANGED
@@ -10,6 +10,8 @@ export { PageLoadingIndicatorComponent } from './lib/page-loading-indicator/page
|
|
10
10
|
export { PageHeaderComponent } from './lib/page-header/page-header.component';
|
11
11
|
export { PhoneNumberPipe } from './lib/phone-number/phone-number.pipe';
|
12
12
|
export { DateDisplayPipe } from './lib/date-display/date-display.pipe';
|
13
|
+
export { MzDatePipe } from './lib/date-display/date.pipe';
|
14
|
+
export { MZ_DATE_PIPE_DEFAULT_OPTIONS } from './lib/date-display/date-display-config';
|
13
15
|
// inline edit
|
14
16
|
export { MzInlineEditComponent } from './lib/inline-edit/inline-edit.component';
|
15
17
|
// subject
|
@@ -35,4 +37,4 @@ export { ButtonDirective } from './lib/button.directive';
|
|
35
37
|
export { WizardProgressTrackerComponent } from './lib/wizard-progress-tracker/wizard-progress-tracker.component';
|
36
38
|
// drawer
|
37
39
|
export { DrawerContainerComponent } from './lib/drawer/drawer-container.component';
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQWtCLHdCQUF3QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRW5FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQzlHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFELE9BQU8sRUFBb0IsNEJBQTRCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUV4RyxjQUFjO0FBQ2QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFaEYsVUFBVTtBQUNWLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBR2hGLFFBQVE7QUFDUixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUs1RSxrQkFBa0I7QUFDbEIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFFMUYsV0FBVztBQUNYLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRW5GLGdCQUFnQjtBQUNoQixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV4RSxRQUFRO0FBQ1IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTdELE9BQU87QUFDUCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSXpELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBRWpILFNBQVM7QUFDVCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgY29tcG9uZW50c1xuICovXG5cbmV4cG9ydCB7IFN2Z0ljb25Db21wb25lbnQgfSBmcm9tICcuL2xpYi9zdmctaWNvbi9zdmctaWNvbi5jb21wb25lbnQnO1xuZXhwb3J0IHsgU3ZnSWNvbk9wdGlvbnMsIFNWR19JQ09OX0RFRkFVTFRfT1BUSU9OUyB9IGZyb20gJy4vbGliL3N2Zy1pY29uL3N2Zy1pY29uLWNvbmZpZyc7XG5cbmV4cG9ydCB7IEVudW1EaXNwbGF5UGlwZSB9IGZyb20gJy4vbGliL2VudW0tZGlzcGxheS9lbnVtLWRpc3BsYXkucGlwZSc7XG5leHBvcnQgeyBTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudCc7XG5cbmV4cG9ydCB7IE11emllaENvbXBvbmVudHNNb2R1bGUgfSBmcm9tICcuL2xpYi9jb21wb25lbnRzLm1vZHVsZSc7XG5leHBvcnQgeyBQYWdlTG9hZGluZ0luZGljYXRvckNvbXBvbmVudCB9IGZyb20gJy4vbGliL3BhZ2UtbG9hZGluZy1pbmRpY2F0b3IvcGFnZS1sb2FkaW5nLWluZGljYXRvci5jb21wb25lbnQnO1xuZXhwb3J0IHsgUGFnZUhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vbGliL3BhZ2UtaGVhZGVyL3BhZ2UtaGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgeyBQaG9uZU51bWJlclBpcGUgfSBmcm9tICcuL2xpYi9waG9uZS1udW1iZXIvcGhvbmUtbnVtYmVyLnBpcGUnO1xuZXhwb3J0IHsgRGF0ZURpc3BsYXlQaXBlIH0gZnJvbSAnLi9saWIvZGF0ZS1kaXNwbGF5L2RhdGUtZGlzcGxheS5waXBlJztcbmV4cG9ydCB7IE16RGF0ZVBpcGUgfSBmcm9tICcuL2xpYi9kYXRlLWRpc3BsYXkvZGF0ZS5waXBlJztcbmV4cG9ydCB7IE16RGF0ZVBpcGVDb25maWcsIE1aX0RBVEVfUElQRV9ERUZBVUxUX09QVElPTlMgfSBmcm9tICcuL2xpYi9kYXRlLWRpc3BsYXkvZGF0ZS1kaXNwbGF5LWNvbmZpZyc7XG5cbi8vIGlubGluZSBlZGl0XG5leHBvcnQgeyBNeklubGluZUVkaXRDb21wb25lbnQgfSBmcm9tICcuL2xpYi9pbmxpbmUtZWRpdC9pbmxpbmUtZWRpdC5jb21wb25lbnQnO1xuXG4vLyBzdWJqZWN0XG5leHBvcnQgeyBTdWJqZWN0RGlzcGxheVBpcGUgfSBmcm9tICcuL2xpYi9zdWJqZWN0LWRpc3BsYXkvc3ViamVjdC1kaXNwbGF5LnBpcGUnO1xuZXhwb3J0IHsgU3ViamVjdCB9IGZyb20gJy4vbGliL21vZGVscy9zdWJqZWN0JztcblxuLy8gdGFibGVcbmV4cG9ydCB7IFJlc3VsdFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvcmVzdWx0LXRhYmxlL3Jlc3VsdC10YWJsZS5jb21wb25lbnQnO1xuZXhwb3J0IHsgUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vbGliL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0IHsgUGFnZUV2ZW50IH0gZnJvbSAnLi9saWIvbW9kZWxzL3BhZ2UtZXZlbnQnO1xuZXhwb3J0IHsgTG9hZGluZ1N0YXRlIH0gZnJvbSAnLi9saWIvbW9kZWxzL2xvYWRpbmctc3RhdGUnO1xuZXhwb3J0IHsgUmVzdWx0VGFibGVNb2RlbCB9IGZyb20gJy4vbGliL3Jlc3VsdC10YWJsZS9yZXN1bHQtdGFibGUubW9kZWwnO1xuXG4vLyBpbmZpbml0ZSBzY3JvbGxcbmV4cG9ydCB7IEluZmluaXRlU2Nyb2xsQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvaW5maW5pdGUtc2Nyb2xsL2luZmluaXRlLXNjcm9sbC5jb21wb25lbnQnO1xuXG4vLyBEYXRldGltZVxuZXhwb3J0IHsgRGF0ZVRpbWVDb21wb25lbnQgfSBmcm9tICcuL2xpYi9kYXRlLXRpbWUvZGF0ZS10aW1lLmNvbXBvbmVudCc7XG5leHBvcnQgeyBUaW1lVmFsdWUgfSBmcm9tICcuL2xpYi9kYXRlLXRpbWUvdGltZS12YWx1ZSc7XG5leHBvcnQgeyBUaW1lVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSB9IGZyb20gJy4vbGliL3RpbWUtdmFsdWUtYWNjZXNzb3IuZGlyZWN0aXZlJztcbmV4cG9ydCB7IFRpbWVWYWx1ZVZhbGlkYXRvckRpcmVjdGl2ZSB9IGZyb20gJy4vbGliL3RpbWUtdmFsdWUtdmFsaWRhdG9yLmRpcmVjdGl2ZSc7XG5cbi8vIHRlc3RpbmcgZmlsZXNcbmV4cG9ydCB7IE11emllaENvbXBvbmVudEhhcm5lc3MgfSBmcm9tICcuL2xpYi90ZXN0aW5nL211emllaC1jb21wb25lbnQtaGFybmVzcyc7XG5leHBvcnQgeyBSZXN1bHRUYWJsZUhhcm5lc3MgfSBmcm9tICcuL2xpYi90ZXN0aW5nL3Jlc3VsdC10YWJsZS1oYXJuZXNzJztcblxuLy8gYWxlcnRcbmV4cG9ydCB7IEFsZXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9saWIvYWxlcnQvYWxlcnQuY29tcG9uZW50JztcblxuLy8gc29ydFxuZXhwb3J0IHsgU29ydEtleURpcmVjdGl2ZSB9IGZyb20gJy4vbGliL3NvcnQta2V5LmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBTb3J0RGlyZWN0aXZlIH0gZnJvbSAnLi9saWIvc29ydC5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi9saWIvYnV0dG9uLmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBTb3J0RXZlbnQgfSBmcm9tICcuL2xpYi9tb2RlbHMvc29ydC1ldmVudCc7XG5cbmV4cG9ydCB7IFdpemFyZFN0ZXBMaW5rIH0gZnJvbSAnLi9saWIvbW9kZWxzL3dpemFyZC1zdGVwLWxpbmsnO1xuZXhwb3J0IHsgV2l6YXJkUHJvZ3Jlc3NUcmFja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9saWIvd2l6YXJkLXByb2dyZXNzLXRyYWNrZXIvd2l6YXJkLXByb2dyZXNzLXRyYWNrZXIuY29tcG9uZW50JztcblxuLy8gZHJhd2VyXG5leHBvcnQgeyBEcmF3ZXJDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2xpYi9kcmF3ZXIvZHJhd2VyLWNvbnRhaW5lci5jb21wb25lbnQnOyJdfQ==
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import * as i0 from '@angular/core';
|
2
|
-
import { InjectionToken, Component, Inject, Input, Pipe, EventEmitter, Optional, Output, ContentChild, Directive, HostListener, HostBinding, forwardRef, ViewChild, NgModule, ElementRef, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';
|
2
|
+
import { InjectionToken, Component, Inject, Input, Pipe, EventEmitter, Optional, Output, ContentChild, Directive, HostListener, HostBinding, forwardRef, ViewChild, NgModule, LOCALE_ID, ElementRef, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';
|
3
3
|
import * as i1 from '@angular/common';
|
4
4
|
import { CommonModule, DatePipe } from '@angular/common';
|
5
5
|
import * as i1$1 from '@angular/router';
|
@@ -428,6 +428,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
428
428
|
}]
|
429
429
|
}] });
|
430
430
|
|
431
|
+
/**
|
432
|
+
* @deprecated use mzDate instead
|
433
|
+
*/
|
431
434
|
class DateDisplayPipe {
|
432
435
|
constructor(datePipe) {
|
433
436
|
this.datePipe = datePipe;
|
@@ -1015,6 +1018,54 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
1015
1018
|
}]
|
1016
1019
|
}] });
|
1017
1020
|
|
1021
|
+
const DATE_PIPE_CONFIG_OPTIONS = Object.freeze({
|
1022
|
+
formats: new Map([
|
1023
|
+
['short', 'MM/dd/yyyy hh:mm a'],
|
1024
|
+
['medium', 'MMM d y h:mm:ss a'],
|
1025
|
+
['shortDate', 'MM/dd/yyyy'],
|
1026
|
+
['mediumDate', 'MMM d y']
|
1027
|
+
]),
|
1028
|
+
dateFormat: 'MM/dd/yyyy hh:mm a'
|
1029
|
+
});
|
1030
|
+
const MZ_DATE_PIPE_DEFAULT_OPTIONS = new InjectionToken('MzDateDisplayDefaultOptions');
|
1031
|
+
|
1032
|
+
class MzDatePipe extends DatePipe {
|
1033
|
+
constructor(locale, defaultMzOptions) {
|
1034
|
+
const o = defaultMzOptions || DATE_PIPE_CONFIG_OPTIONS;
|
1035
|
+
super(locale, null, o);
|
1036
|
+
this.options = o;
|
1037
|
+
}
|
1038
|
+
transform(value, format, timezone, locale) {
|
1039
|
+
let translatedFormat = format;
|
1040
|
+
let translatedTimezone = timezone;
|
1041
|
+
if (format) {
|
1042
|
+
translatedFormat = this.options.formats.get(format) || format;
|
1043
|
+
}
|
1044
|
+
if (timezone === 'original' && typeof value === 'string') {
|
1045
|
+
const match = value.match(/([+-]\d{2}:\d{2})$/);
|
1046
|
+
translatedTimezone = match ? match[1] : '+00:00';
|
1047
|
+
}
|
1048
|
+
return super.transform(value, translatedFormat, translatedTimezone, locale);
|
1049
|
+
}
|
1050
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: MzDatePipe, deps: [{ token: LOCALE_ID }, { token: MZ_DATE_PIPE_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
1051
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.1", ngImport: i0, type: MzDatePipe, isStandalone: true, name: "mzDate" }); }
|
1052
|
+
}
|
1053
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: MzDatePipe, decorators: [{
|
1054
|
+
type: Pipe,
|
1055
|
+
args: [{
|
1056
|
+
name: 'mzDate',
|
1057
|
+
standalone: true,
|
1058
|
+
}]
|
1059
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
1060
|
+
type: Inject,
|
1061
|
+
args: [LOCALE_ID]
|
1062
|
+
}] }, { type: undefined, decorators: [{
|
1063
|
+
type: Optional
|
1064
|
+
}, {
|
1065
|
+
type: Inject,
|
1066
|
+
args: [MZ_DATE_PIPE_DEFAULT_OPTIONS]
|
1067
|
+
}] }] });
|
1068
|
+
|
1018
1069
|
class MzInlineEditComponent {
|
1019
1070
|
constructor(renderer) {
|
1020
1071
|
this.renderer = renderer;
|
@@ -1149,11 +1200,11 @@ class DrawerContainerComponent extends CdkDialogContainer {
|
|
1149
1200
|
this.open = true;
|
1150
1201
|
}
|
1151
1202
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: DrawerContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
1152
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: DrawerContainerComponent, isStandalone: true, selector: "mz-drawer-container", usesInheritance: true, ngImport: i0, template: "<div class=\"drawer-container\" [class.open]=\"open\">\n <ng-template cdkPortalOutlet />\n</div>", styles: [".drawer-container{background-color:#fff;min-width:
|
1203
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: DrawerContainerComponent, isStandalone: true, selector: "mz-drawer-container", usesInheritance: true, ngImport: i0, template: "<div class=\"drawer-container\" [class.open]=\"open\">\n <ng-template cdkPortalOutlet />\n</div>", styles: [".drawer-container{background-color:#fff;min-width:500px;max-width:90%;padding:.5rem 1rem;overflow:auto;height:100vh;position:absolute;right:0;top:0;transition:translate .3s ease-out;translate:100%}.drawer-container.open{translate:0%}\n"], dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
|
1153
1204
|
}
|
1154
1205
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: DrawerContainerComponent, decorators: [{
|
1155
1206
|
type: Component,
|
1156
|
-
args: [{ selector: 'mz-drawer-container', standalone: true, imports: [CdkPortalOutlet], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, template: "<div class=\"drawer-container\" [class.open]=\"open\">\n <ng-template cdkPortalOutlet />\n</div>", styles: [".drawer-container{background-color:#fff;min-width:
|
1207
|
+
args: [{ selector: 'mz-drawer-container', standalone: true, imports: [CdkPortalOutlet], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, template: "<div class=\"drawer-container\" [class.open]=\"open\">\n <ng-template cdkPortalOutlet />\n</div>", styles: [".drawer-container{background-color:#fff;min-width:500px;max-width:90%;padding:.5rem 1rem;overflow:auto;height:100vh;position:absolute;right:0;top:0;transition:translate .3s ease-out;translate:100%}.drawer-container.open{translate:0%}\n"] }]
|
1157
1208
|
}] });
|
1158
1209
|
|
1159
1210
|
/*
|
@@ -1164,5 +1215,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
1164
1215
|
* Generated bundle index. Do not edit.
|
1165
1216
|
*/
|
1166
1217
|
|
1167
|
-
export { AlertComponent, ButtonDirective, DateDisplayPipe, DateTimeComponent, DrawerContainerComponent, EnumDisplayPipe, InfiniteScrollComponent, MuziehComponentHarness, MuziehComponentsModule, MzInlineEditComponent, PageHeaderComponent, PageLoadingIndicatorComponent, PaginationComponent, PhoneNumberPipe, ResultTableComponent, ResultTableHarness, SVG_ICON_DEFAULT_OPTIONS, SortDirective, SortKeyDirective, SpinnerComponent, SubjectDisplayPipe, SvgIconComponent, TimeValueAccessorDirective, TimeValueValidatorDirective, WizardProgressTrackerComponent };
|
1218
|
+
export { AlertComponent, ButtonDirective, DateDisplayPipe, DateTimeComponent, DrawerContainerComponent, EnumDisplayPipe, InfiniteScrollComponent, MZ_DATE_PIPE_DEFAULT_OPTIONS, MuziehComponentHarness, MuziehComponentsModule, MzDatePipe, MzInlineEditComponent, PageHeaderComponent, PageLoadingIndicatorComponent, PaginationComponent, PhoneNumberPipe, ResultTableComponent, ResultTableHarness, SVG_ICON_DEFAULT_OPTIONS, SortDirective, SortKeyDirective, SpinnerComponent, SubjectDisplayPipe, SvgIconComponent, TimeValueAccessorDirective, TimeValueValidatorDirective, WizardProgressTrackerComponent };
|
1168
1219
|
//# sourceMappingURL=muziehdesign-components.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"muziehdesign-components.mjs","sources":["../../../projects/components/src/lib/svg-icon/svg-icon-config.ts","../../../projects/components/src/lib/svg-icon/svg-icon.component.ts","../../../projects/components/src/lib/svg-icon/svg-icon.component.svg","../../../projects/components/src/lib/enum-display/enum-display.pipe.ts","../../../projects/components/src/lib/spinner/spinner.component.ts","../../../projects/components/src/lib/spinner/spinner.component.html","../../../projects/components/src/lib/pagination/pagination-default-options.token.ts","../../../projects/components/src/lib/pagination/pagination.component.ts","../../../projects/components/src/lib/pagination/pagination.component.html","../../../projects/components/src/lib/result-table/result-table.component.ts","../../../projects/components/src/lib/result-table/result-table.component.html","../../../projects/components/src/lib/page-loading-indicator/page-loading-indicator.component.ts","../../../projects/components/src/lib/page-loading-indicator/page-loading-indicator.component.html","../../../projects/components/src/lib/page-header/page-header.component.ts","../../../projects/components/src/lib/page-header/page-header.component.html","../../../projects/components/src/lib/time-value-accessor.directive.ts","../../../projects/components/src/lib/alert/alert.component.ts","../../../projects/components/src/lib/alert/alert.component.html","../../../projects/components/src/lib/phone-number/phone-number.pipe.ts","../../../projects/components/src/lib/date-display/date-display.pipe.ts","../../../projects/components/src/lib/sort.directive.ts","../../../projects/components/src/lib/sort-key.directive.ts","../../../projects/components/src/lib/subject-display/subject-display.pipe.ts","../../../projects/components/src/lib/button.directive.ts","../../../projects/components/src/lib/wizard-progress-tracker/wizard-progress-tracker.component.ts","../../../projects/components/src/lib/wizard-progress-tracker/wizard-progress-tracker.component.html","../../../projects/components/src/lib/date-time/date-time.component.ts","../../../projects/components/src/lib/date-time/date-time.component.html","../../../projects/components/src/lib/time-value-validator.directive.ts","../../../projects/components/src/lib/infinite-scroll/infinite-scroll.component.ts","../../../projects/components/src/lib/infinite-scroll/infinite-scroll.component.html","../../../projects/components/src/lib/components.module.ts","../../../projects/components/src/lib/inline-edit/inline-edit.component.ts","../../../projects/components/src/lib/inline-edit/inline-edit.component.html","../../../projects/components/src/lib/testing/muzieh-component-harness.ts","../../../projects/components/src/lib/testing/result-table-harness.ts","../../../projects/components/src/lib/drawer/drawer-container.component.ts","../../../projects/components/src/lib/drawer/drawer-container.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, Inject, Input, OnInit, Optional } from '@angular/core';\nimport { SVG_ICON_DEFAULT_OPTIONS, SvgIconOptions } from './svg-icon-config';\n\n@Component({\n selector: 'mz-svg-icon',\n templateUrl: './svg-icon.component.svg',\n styleUrls: ['./svg-icon.component.scss'],\n standalone: true,\n imports: []\n})\nexport class SvgIconComponent {\n @Input() key!: string;\n @Input() type: 'outline' | 'solid' | string = 'outline';\n @Input() size: string = 'medium';\n fileUrl: string;\n \n constructor(@Inject(SVG_ICON_DEFAULT_OPTIONS) public config: SvgIconOptions) {\n this.fileUrl = config.svgIconDefinitionUrl;\n }\n\n get url(): string {\n if(this.type) {\n return this.fileUrl + '#' + this.key + '-' + this.type;\n }\n\n return this.fileUrl + '#' + this.key;\n }\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon icon-{{type}} icon-size-{{size}}\" aria-hidden=\"true\">\n <use [attr.href]=\"url\" />\n</svg>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'mzEnumDisplay',\n standalone: true,\n})\nexport class EnumDisplayPipe implements PipeTransform {\n\n \n transform(value?: string): string {\n return this.transformValue(value).join(' ');\n }\n\n private transformValue(value?: string): string[] {\n if (!value) {\n return [];\n }\n\n let wordIndex = 0;\n const words: string[] = [];\n for (let i = 0; i < value.length; i++) {\n if (value[i] !== value[i].toLowerCase() && i !== 0) {\n // includes the index -1\n // for example helloGoodbye => .substring(0, 5) => hello\n // and the index is reset to 5 (G)\n const word = value.substring(wordIndex, i);\n words.push(words.length === 0 ? this.firstLetterToUppercase(word) : word.toLowerCase());\n wordIndex = i;\n }\n }\n if (wordIndex !== value.length) {\n // continuing the example, we take it from the last index matched\n // (meaning the rest of the word that wasn't considered because no uppercase\n // values existed at the end of the sentence after the last index matched)\n // so it is converterd like this: helloGoodbye => .sustring(5) => goodbye\n const remainingString = value.substring(wordIndex);\n words.push(words.length === 0 ? this.firstLetterToUppercase(remainingString) : remainingString.toLowerCase());\n }\n return words;\n }\n\n // at this point we assume the string is at least > 0 length\n // just a converter method from: hello to Hello\n private firstLetterToUppercase(value: string): string {\n return value.length > 1 ? `${value.substring(0, 1).toUpperCase()}${value.substring(1)}` : value.toUpperCase();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'mz-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.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, OnDestroy, OnInit } from '@angular/core';\nimport { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router } from '@angular/router';\nimport { race } from 'rxjs';\nimport { delay, filter, repeat, take } from 'rxjs/operators';\nimport { SubSink } from 'subsink';\n\n@Component({\n selector: 'mz-page-loading-indicator',\n templateUrl: './page-loading-indicator.component.html',\n styleUrls: ['./page-loading-indicator.component.scss'],\n imports: [CommonModule],\n standalone: true,\n})\nexport class PageLoadingIndicatorComponent implements OnInit, OnDestroy {\n @Input() isLoading: boolean = false;\n expectedMilisecondsDelay = 1000;\n private subs = new SubSink();\n\n constructor(private router: Router) {}\n\n ngOnInit(): void {\n const endObs$ = this.router.events.pipe(\n filter((e) => e instanceof NavigationEnd || e instanceof NavigationCancel || e instanceof NavigationError),\n );\n\n this.subs.add(\n race(\n this.router.events.pipe(\n filter((e) => e instanceof NavigationStart),\n delay(this.expectedMilisecondsDelay)\n ),\n endObs$\n ).pipe(take(1), repeat()).subscribe((x) => this.isLoading = x instanceof NavigationStart)\n );\n // the flag need to be reset to false when the page finishes loading\n this.subs.add(endObs$.subscribe(() =>this.isLoading = false));\n }\n\n ngOnDestroy(): void {\n this.subs.unsubscribe();\n }\n}\n","<div class=\"progress-bar-container\" *ngIf=\"isLoading\">\n <div class=\"progress-bar progress-bar-indeterminate\">\n <div class=\"progress-bar-value\"></div>\n </div>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\n\n@Component({\n selector: 'mz-page-header',\n templateUrl: './page-header.component.html',\n styleUrls: ['./page-header.component.scss'],\n standalone: true,\n})\nexport class PageHeaderComponent implements OnInit {\n private pageTitleValue = 'Servicing Web';\n\n constructor(private title: Title) {}\n\n get pageTitle(): string {\n return this.pageTitleValue;\n }\n\n @Input() set pageTitle(newValue: string) {\n this.pageTitleValue = newValue;\n this.title.setTitle(newValue);\n }\n\n ngOnInit(): void {}\n}\n","<header class=\"page-header\">\n <h1>{{ pageTitle }}</h1>\n <ng-content></ng-content>\n</header>","import { Directive, ElementRef, HostListener, Renderer2 } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport { TimeValue } from './date-time/time-value';\n\n// TODO: need to rename, and need to use ivy instead\n\n@Directive({\n selector: 'input[type=time]',\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: TimeValueAccessorDirective,\n multi: true\n }],\n standalone: true,\n})\nexport class TimeValueAccessorDirective implements ControlValueAccessor {\n\n @HostListener('input', ['$event.target.value'])\n onChange = (x: any) => { };\n onTouched = () => { };\n constructor(private renderer: Renderer2, private elementRef: ElementRef) {\n\n }\n\n writeValue(obj?: TimeValue): void {\n if (!obj) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', null);\n return;\n }\n const hourPrefix = obj?.hour > 9 ? '' : '0';\n const minutePrefix = obj.minute > 9 ? '' : '0';\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', `${hourPrefix}${obj.hour}:${minutePrefix}${obj.minute}`);\n }\n\n registerOnChange(fn: (x: TimeValue | null) => void): void {\n this.onChange = (value) => {\n if (value === null || value === '') {\n fn(null);\n } else {\n const parts = value.split(':');\n fn({ hour: Number(parts[0]), minute: Number(parts[1]) } as TimeValue);\n }\n };\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, OnInit, Input, TemplateRef } from '@angular/core';\nimport { SvgIconComponent } from '../svg-icon/svg-icon.component';\n\n@Component({\n selector: 'mz-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.css'],\n imports: [CommonModule, SvgIconComponent],\n standalone: true,\n})\nexport class AlertComponent implements OnInit {\n @Input() title: string = '';\n @Input() type: 'info' | 'success' | 'error' | 'warning' = 'info';\n @Input() body: TemplateRef<any> | undefined | null;\n @Input() footer: TemplateRef<any> | undefined | null;\n\n constructor() {}\n\n ngOnInit(): void {}\n\n getAlertClass(): string {\n return `alert-${this.type}`;\n }\n\n getAlertIcon(): string {\n let icon = '';\n if (this.type === 'info') {\n icon = 'information-circle';\n } else if (this.type === 'success') {\n icon = 'check-circle';\n } else if (this.type === 'error') {\n icon = 'x-circle';\n } else if (this.type === 'warning') {\n icon = 'exclamation';\n }\n return icon;\n }\n}\n","<div [className]=\"'alert alert-' + type\">\n\n <div>\n <div class=\"alert-icon\">\n <mz-svg-icon [key]=\"getAlertIcon()\" type=\"solid\"></mz-svg-icon>\n </div>\n\n <div class=\"alert-title\">\n <strong>{{ title }}</strong>\n </div>\n </div>\n\n <div class=\"alert-body\" *ngIf=\"body\">\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n </div>\n\n <div class=\"alert-footer\" *ngIf=\"footer\">\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n\n</div>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'mzPhoneNumber',\n standalone: true,\n})\nexport class PhoneNumberPipe implements PipeTransform {\n\n transform(number?: string): string | null {\n if (!number) {\n return null;\n }\n\n const phoneNumber = number.replace(/^\\+1/, '').replace(/\\D/g, '');\n if (phoneNumber.length === 10) {\n return phoneNumber.replace(/(\\d{3})(\\d{3})(\\d{4})/, '($1) $2-$3');\n }\n return number;\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'mzDateDisplay',\n standalone: true,\n})\nexport class DateDisplayPipe implements PipeTransform {\n constructor(private datePipe: DatePipe) {}\n\n transform(value: Date | string, format: string): string | null {\n let redefinedDate;\n if (format === 'concise') {\n redefinedDate = this.datePipe.transform(value, 'MM/dd/yyyy');\n } else if(format === 'detailed') {\n redefinedDate = this.datePipe.transform(value, 'MM/dd/yyyy h:mm:ss a');\n } else {\n redefinedDate = this.datePipe.transform(value, 'MM/dd/yyyy');\n }\n return redefinedDate;\n }\n}\n","import { Directive, EventEmitter, Input, OnChanges, Output } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { SortEvent } from './models/sort-event';\n\n@Directive({\n selector: '[mzSort]',\n standalone: true,\n})\nexport class SortDirective implements OnChanges {\n\n @Output() sort = new EventEmitter<SortEvent>();\n @Input('mzSort') set mzSort(value: string) {\n this._mzSort = value;\n this.setActiveHeaderSort();\n }\n\n mzSortOnChange$ = new BehaviorSubject<string>('');\n _mzSort!: string;\n active!: string;\n\n constructor() {}\n\n ngOnChanges(): any {\n this.mzSortOnChange$.next(this.active);\n }\n\n setActiveHeaderSort() {\n this.active = this._mzSort.includes('-') ? this._mzSort.slice(1) : this._mzSort;\n }\n}\n","import { Directive, ElementRef, HostBinding, Input, OnInit, Renderer2 } from '@angular/core';\nimport { SortDirective } from './sort.directive';\n\n@Directive({\n selector: '[mzSortKey]',\n host: {\n 'role': 'button',\n '[attr.aria-sort]': 'getAriaSortAttribute()',\n '(click)': 'onClick()',\n },\n standalone: true,\n})\nexport class SortKeyDirective implements OnInit {\n @Input() mzSortKey!: string;\n order = 'asc';\n updatedSort = '';\n\n constructor(private sortable: SortDirective, private renderer: Renderer2, private hostElement: ElementRef) {}\n\n ngOnInit(): void {\n this.addSortClass();\n this.sortable.mzSortOnChange$.subscribe(() => {\n this.updatedSort = this.mzSortKey === this.sortable.active ? this.sortable._mzSort : this.mzSortKey;\n this.setOrder(this.updatedSort);\n\n if (this.isActive()) {\n this.addActiveClass();\n } else {\n this.removeActiveClass();\n }\n });\n }\n\n onClick($event: Event) {\n // remove active css classes\n this.removeActiveClass();\n\n // update current sort value (-order, order)\n this.updateSortKeyValue();\n\n // update parent directive active column and emit output\n this.updateActiveValue();\n\n // add arrow css clases\n this.addActiveClass();\n }\n\n getAriaSortAttribute() {\n if (!this.isActive()) {\n return 'none';\n }\n return this.order === 'asc' ? 'ascending' : 'descending';\n }\n\n private updateSortKeyValue() {\n if (this.isActive()) {\n this.updatedSort = this.order === 'desc' ? this.updatedSort.slice(1) : `-${this.updatedSort}`;\n } else {\n this.updatedSort = this.mzSortKey;\n }\n\n this.setOrder(this.updatedSort);\n }\n\n private updateActiveValue() {\n this.sortable.active = this.mzSortKey;\n this.sortable.sort.emit({ sort: this.updatedSort });\n }\n\n private addSortClass() {\n const spanElement = this.renderer.createElement('span');\n spanElement.classList.add(\"sort-icon\");\n this.renderer.appendChild(this.hostElement.nativeElement, spanElement);\n this.renderer.addClass(this.hostElement.nativeElement, 'sort-trigger');\n }\n\n private addActiveClass() {\n this.renderer.addClass(this.hostElement.nativeElement, this.order === 'asc' ? 'sort-ascending' : 'sort-descending');\n }\n\n private removeActiveClass() {\n this.renderer.removeClass(this.hostElement.nativeElement, 'sort-ascending');\n this.renderer.removeClass(this.hostElement.nativeElement, 'sort-descending');\n }\n\n private isActive() {\n return this.mzSortKey === this.sortable.active;\n }\n\n private setOrder(sort: string) {\n this.order = sort.includes('-') ? 'desc' : 'asc';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Subject } from '../models/subject';\n\n@Pipe({\n name: 'mzSubjectDisplay',\n standalone: true,\n})\nexport class SubjectDisplayPipe implements PipeTransform {\n transform(subject?: Subject): 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 { SubSink } from 'subsink';\nimport { WizardStepLink } from '../models/wizard-step-link';\nimport { SvgIconComponent } from '../svg-icon/svg-icon.component';\n\n@Component({\n selector: 'mz-wizard-progress-tracker',\n templateUrl: './wizard-progress-tracker.component.html',\n styleUrls: ['./wizard-progress-tracker.component.scss'],\n standalone: true,\n imports: [CommonModule, SvgIconComponent]\n})\nexport class WizardProgressTrackerComponent {\n @Input() steps: WizardStepLink[] = [];\n @Input() currentStep = 0;\n @Output() stepChange = new EventEmitter<WizardStepLink>();\n toggled = true;\n subs = new SubSink();\n\n goToStep(step: WizardStepLink) {\n this.stepChange.emit(step);\n }\n\n toggle(): void {\n this.toggled = !this.toggled;\n }\n}\n","<div class=\"wizard-progress-tracker\">\n <div class=\"direction-container\">\n <span class=\"steps-count\">Step {{ currentStep + 1 }} of {{ steps.length }}</span>\n <div class=\"wizard-steps-container\" [ngClass]=\"{'toggled': toggled}\">\n <div *ngFor=\"let step of steps; index as i;\" class=\"wizard-step\"\n [ngClass]=\"{ 'previous': i < currentStep, 'current': i === currentStep, 'unvisited': i > currentStep }\">\n <ng-container>\n <div class=\"wizard-step-icon-container\">\n <div class=\"spacer left\">\n </div>\n <div *ngIf=\"i > 0\" class=\"step-line left\"></div>\n\n <div *ngIf=\"i < currentStep\" class=\"wizard-step-icon\">\n <mz-svg-icon key=\"check-circle\" type=\"solid\">\n </mz-svg-icon>\n </div>\n <div *ngIf=\"i === currentStep\" class=\"wizard-step-icon\">\n <div class=\"step-inner-circle\"></div>\n </div>\n <div *ngIf=\"i > currentStep\" class=\"wizard-step-icon\">\n </div>\n\n <div *ngIf=\"i < (steps.length - 1)\" class=\"step-line step-line-right\"></div>\n <div class=\"spacer right\"></div>\n </div>\n <a *ngIf=\"i < currentStep\" class=\"step-desc\" (click)=\"goToStep(step)\"> {{\n step.name\n }}</a>\n <div *ngIf=\" i === currentStep\" class=\"step-desc\"> {{ step.name }}\n </div>\n <div *ngIf=\" i > currentStep\" class=\"step-desc\"> {{ step.name }}\n </div>\n <div class=\"toggable-icon\">\n <button *ngIf=\"!toggled\" (click)=\"toggle()\">\n <mz-svg-icon key=\"chevron-down\"></mz-svg-icon>\n </button>\n <button *ngIf=\"toggled\" (click)=\"toggle()\">\n <mz-svg-icon key=\"chevron-up\"></mz-svg-icon>\n </button>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n","import { ChangeDetectorRef, Component, forwardRef, Input, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MatDatepickerInputEvent, MatDatepickerModule } from '@angular/material/datepicker';\nimport { TimeValue } from './time-value';\nimport { MatDatepicker } from '@angular/material/datepicker';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'mz-datetime',\n templateUrl: './date-time.component.html',\n styleUrls: ['./date-time.component.css'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DateTimeComponent),\n multi: true,\n },\n ],\n imports: [CommonModule, MatDatepickerModule],\n standalone: true,\n})\nexport class DateTimeComponent implements ControlValueAccessor {\n date: Date | undefined;\n time: string | undefined;\n\n private lz = (n: number) => ('0' + n).slice(-2);\n private formatDate = (dt: Date) => `${dt.getMonth() + 1}/${dt.getDate()}/${dt.getFullYear()}`;\n private formatTime = (t: Date) => `${this.lz(t.getHours())}:${this.lz(t.getMinutes())}`;\n private formatDateTime = (dt: Date, t: string) => `${this.formatDate(dt)} ${t}`;\n private limitDate = (dt: Date) => {\n if (this.min) {\n dt = new Date(Math.max(dt.getTime(), this.min.getTime()));\n }\n\n if (this.max) {\n dt = new Date(Math.min(dt.getTime(), this.max.getTime()));\n }\n\n return dt;\n };\n private onTimeHourPending = false; \n\n type = 'outline';\n @ViewChild('datePicker') datepicker!: MatDatepicker<Date>;\n\n @Input()\n min?: Date | undefined;\n\n @Input()\n max?: Date | undefined;\n\n @Input()\n disabled = false;\n\n constructor(private _cd: ChangeDetectorRef) {}\n\n onChange = (_: any) => {};\n onTouched = () => {};\n\n writeValue(value: Date) {\n if (value) {\n const dt = new Date(value);\n\n this.date = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());\n this.time = this.formatTime(value);\n } else {\n this.date = undefined;\n this.time = undefined;\n }\n\n this._cd.markForCheck();\n }\n\n registerOnChange(fn: (value: any) => any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n updateDate(e: Event): void {\n const input = e.target as HTMLInputElement;\n\n let dt = new Date(input.value);\n\n if (!isNaN(dt.getTime())) {\n dt = this.limitDate(dt);\n\n this.date = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());\n\n if (this.time === undefined || this.time === '') {\n this.time = this.formatTime(new Date());\n }\n } else {\n this.date = undefined;\n this.time = undefined;\n }\n\n this.propagateModelChange();\n this._cd.markForCheck();\n }\n\n updateTime(e: Event): void {\n const input = e.target as HTMLInputElement;\n\n // this is just a listener event in case the end user types in \"0\". We wait for\n // the next entered value for the time input field to self fix the problem.\n if (!this.onTimeHourPending && !input.value) {\n this.onTimeHourPending = true;\n return;\n }\n\n this.onTimeHourPending = false;\n\n if (!input.value) {\n this.date = undefined;\n } else if (!this.date || isNaN(this.date.getTime())) {\n const dt = this.limitDate(this.min ?? new Date());\n\n this.date = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());\n }\n this.time = input.value;\n\n this.propagateModelChange();\n }\n\n updateDateEvent(event: MatDatepickerInputEvent<Date>) {\n if (event.value) {\n const dt = this.limitDate(new Date(event.value));\n\n this.date = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());\n\n if (this.time === undefined || this.time === '') {\n this.time = this.formatTime(new Date());\n }\n } else {\n this.date = undefined;\n this.time = undefined;\n }\n\n this.propagateModelChange();\n this._cd.markForCheck();\n }\n\n focusOnDateInput() {\n this.datepicker.open();\n }\n\n private propagateModelChange(): void {\n if (this.time && this.date) {\n const dateString = this.formatDateTime(this.date, this.time);\n this.onChange(new Date(dateString));\n } else {\n this.onChange(undefined);\n }\n }\n}\n\nexport interface ScheduleInputModel {\n time: TimeValue;\n}\n","<div class=\"flex\">\n <div class=\"field-control-combo\">\n <input class=\"field-control\" type=\"text\" [value]=\"date\" (change)=\"updateDate($event)\" [min]=\"min\" [max]=\"max\"\n [matDatepicker]=\"datePicker\" (dateChange)=\"updateDateEvent($event)\" [disabled]=\"disabled\" ngDefaultControl>\n <div class=\"field-control-addon\">\n <button class=\"button button-secondary button-icon\" type=\"button\" (click)=\"datePicker.open()\"\n [disabled]=\"disabled\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"\n stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\" />\n </svg>\n </button>\n <mat-datepicker #datePicker></mat-datepicker>\n </div>\n </div>\n <div class=\"field-control-group mt-1 ml-6\">\n <input class=\"field-control\" type=\"time\" [value]=\"time\" (change)=\"updateTime($event)\"\n ngDefaultControl [disabled]=\"disabled\">\n </div>\n</div>\n","import { 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 { 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 { CdkDialogContainer, DialogConfig } from '@angular/cdk/dialog';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'mz-drawer-container',\n standalone: true,\n imports: [CdkPortalOutlet],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n templateUrl: './drawer-container.component.html',\n styleUrl: './drawer-container.component.scss'\n})\nexport class DrawerContainerComponent extends CdkDialogContainer<DialogConfig>{\n open = false;\n\n protected override _contentAttached(): void {\n super._contentAttached();\n this.open = true;\n }\n}\n","<div class=\"drawer-container\" [class.open]=\"open\">\n <ng-template cdkPortalOutlet />\n</div>","/*\n * Public API Surface of components\n */\n\nexport { SvgIconComponent } from './lib/svg-icon/svg-icon.component';\nexport { SvgIconOptions, SVG_ICON_DEFAULT_OPTIONS } from './lib/svg-icon/svg-icon-config';\n\nexport { EnumDisplayPipe } from './lib/enum-display/enum-display.pipe';\nexport { SpinnerComponent } from './lib/spinner/spinner.component';\n\nexport { MuziehComponentsModule } from './lib/components.module';\nexport { PageLoadingIndicatorComponent } from './lib/page-loading-indicator/page-loading-indicator.component';\nexport { PageHeaderComponent } from './lib/page-header/page-header.component';\nexport { PhoneNumberPipe } from './lib/phone-number/phone-number.pipe';\nexport { DateDisplayPipe } from './lib/date-display/date-display.pipe';\n\n// inline edit\nexport { 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// drawer\nexport { DrawerContainerComponent } from './lib/drawer/drawer-container.component';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i1.SortDirective"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"muziehdesign-components.mjs","sources":["../../../projects/components/src/lib/svg-icon/svg-icon-config.ts","../../../projects/components/src/lib/svg-icon/svg-icon.component.ts","../../../projects/components/src/lib/svg-icon/svg-icon.component.svg","../../../projects/components/src/lib/enum-display/enum-display.pipe.ts","../../../projects/components/src/lib/spinner/spinner.component.ts","../../../projects/components/src/lib/spinner/spinner.component.html","../../../projects/components/src/lib/pagination/pagination-default-options.token.ts","../../../projects/components/src/lib/pagination/pagination.component.ts","../../../projects/components/src/lib/pagination/pagination.component.html","../../../projects/components/src/lib/result-table/result-table.component.ts","../../../projects/components/src/lib/result-table/result-table.component.html","../../../projects/components/src/lib/page-loading-indicator/page-loading-indicator.component.ts","../../../projects/components/src/lib/page-loading-indicator/page-loading-indicator.component.html","../../../projects/components/src/lib/page-header/page-header.component.ts","../../../projects/components/src/lib/page-header/page-header.component.html","../../../projects/components/src/lib/time-value-accessor.directive.ts","../../../projects/components/src/lib/alert/alert.component.ts","../../../projects/components/src/lib/alert/alert.component.html","../../../projects/components/src/lib/phone-number/phone-number.pipe.ts","../../../projects/components/src/lib/date-display/date-display.pipe.ts","../../../projects/components/src/lib/sort.directive.ts","../../../projects/components/src/lib/sort-key.directive.ts","../../../projects/components/src/lib/subject-display/subject-display.pipe.ts","../../../projects/components/src/lib/button.directive.ts","../../../projects/components/src/lib/wizard-progress-tracker/wizard-progress-tracker.component.ts","../../../projects/components/src/lib/wizard-progress-tracker/wizard-progress-tracker.component.html","../../../projects/components/src/lib/date-time/date-time.component.ts","../../../projects/components/src/lib/date-time/date-time.component.html","../../../projects/components/src/lib/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/drawer/drawer-container.component.ts","../../../projects/components/src/lib/drawer/drawer-container.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, Inject, Input, OnInit, Optional } from '@angular/core';\nimport { SVG_ICON_DEFAULT_OPTIONS, SvgIconOptions } from './svg-icon-config';\n\n@Component({\n selector: 'mz-svg-icon',\n templateUrl: './svg-icon.component.svg',\n styleUrls: ['./svg-icon.component.scss'],\n standalone: true,\n imports: []\n})\nexport class SvgIconComponent {\n @Input() key!: string;\n @Input() type: 'outline' | 'solid' | string = 'outline';\n @Input() size: string = 'medium';\n fileUrl: string;\n \n constructor(@Inject(SVG_ICON_DEFAULT_OPTIONS) public config: SvgIconOptions) {\n this.fileUrl = config.svgIconDefinitionUrl;\n }\n\n get url(): string {\n if(this.type) {\n return this.fileUrl + '#' + this.key + '-' + this.type;\n }\n\n return this.fileUrl + '#' + this.key;\n }\n}\n","<svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon icon-{{type}} icon-size-{{size}}\" aria-hidden=\"true\">\n <use [attr.href]=\"url\" />\n</svg>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'mzEnumDisplay',\n standalone: true,\n})\nexport class EnumDisplayPipe implements PipeTransform {\n\n \n transform(value?: string): string {\n return this.transformValue(value).join(' ');\n }\n\n private transformValue(value?: string): string[] {\n if (!value) {\n return [];\n }\n\n let wordIndex = 0;\n const words: string[] = [];\n for (let i = 0; i < value.length; i++) {\n if (value[i] !== value[i].toLowerCase() && i !== 0) {\n // includes the index -1\n // for example helloGoodbye => .substring(0, 5) => hello\n // and the index is reset to 5 (G)\n const word = value.substring(wordIndex, i);\n words.push(words.length === 0 ? this.firstLetterToUppercase(word) : word.toLowerCase());\n wordIndex = i;\n }\n }\n if (wordIndex !== value.length) {\n // continuing the example, we take it from the last index matched\n // (meaning the rest of the word that wasn't considered because no uppercase\n // values existed at the end of the sentence after the last index matched)\n // so it is converterd like this: helloGoodbye => .sustring(5) => goodbye\n const remainingString = value.substring(wordIndex);\n words.push(words.length === 0 ? this.firstLetterToUppercase(remainingString) : remainingString.toLowerCase());\n }\n return words;\n }\n\n // at this point we assume the string is at least > 0 length\n // just a converter method from: hello to Hello\n private firstLetterToUppercase(value: string): string {\n return value.length > 1 ? `${value.substring(0, 1).toUpperCase()}${value.substring(1)}` : value.toUpperCase();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'mz-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.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, OnDestroy, OnInit } from '@angular/core';\nimport { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router } from '@angular/router';\nimport { race } from 'rxjs';\nimport { delay, filter, repeat, take } from 'rxjs/operators';\nimport { SubSink } from 'subsink';\n\n@Component({\n selector: 'mz-page-loading-indicator',\n templateUrl: './page-loading-indicator.component.html',\n styleUrls: ['./page-loading-indicator.component.scss'],\n imports: [CommonModule],\n standalone: true,\n})\nexport class PageLoadingIndicatorComponent implements OnInit, OnDestroy {\n @Input() isLoading: boolean = false;\n expectedMilisecondsDelay = 1000;\n private subs = new SubSink();\n\n constructor(private router: Router) {}\n\n ngOnInit(): void {\n const endObs$ = this.router.events.pipe(\n filter((e) => e instanceof NavigationEnd || e instanceof NavigationCancel || e instanceof NavigationError),\n );\n\n this.subs.add(\n race(\n this.router.events.pipe(\n filter((e) => e instanceof NavigationStart),\n delay(this.expectedMilisecondsDelay)\n ),\n endObs$\n ).pipe(take(1), repeat()).subscribe((x) => this.isLoading = x instanceof NavigationStart)\n );\n // the flag need to be reset to false when the page finishes loading\n this.subs.add(endObs$.subscribe(() =>this.isLoading = false));\n }\n\n ngOnDestroy(): void {\n this.subs.unsubscribe();\n }\n}\n","<div class=\"progress-bar-container\" *ngIf=\"isLoading\">\n <div class=\"progress-bar progress-bar-indeterminate\">\n <div class=\"progress-bar-value\"></div>\n </div>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\n\n@Component({\n selector: 'mz-page-header',\n templateUrl: './page-header.component.html',\n styleUrls: ['./page-header.component.scss'],\n standalone: true,\n})\nexport class PageHeaderComponent implements OnInit {\n private pageTitleValue = 'Servicing Web';\n\n constructor(private title: Title) {}\n\n get pageTitle(): string {\n return this.pageTitleValue;\n }\n\n @Input() set pageTitle(newValue: string) {\n this.pageTitleValue = newValue;\n this.title.setTitle(newValue);\n }\n\n ngOnInit(): void {}\n}\n","<header class=\"page-header\">\n <h1>{{ pageTitle }}</h1>\n <ng-content></ng-content>\n</header>","import { Directive, ElementRef, HostListener, Renderer2 } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport { TimeValue } from './date-time/time-value';\n\n// TODO: need to rename, and need to use ivy instead\n\n@Directive({\n selector: 'input[type=time]',\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: TimeValueAccessorDirective,\n multi: true\n }],\n standalone: true,\n})\nexport class TimeValueAccessorDirective implements ControlValueAccessor {\n\n @HostListener('input', ['$event.target.value'])\n onChange = (x: any) => { };\n onTouched = () => { };\n constructor(private renderer: Renderer2, private elementRef: ElementRef) {\n\n }\n\n writeValue(obj?: TimeValue): void {\n if (!obj) {\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', null);\n return;\n }\n const hourPrefix = obj?.hour > 9 ? '' : '0';\n const minutePrefix = obj.minute > 9 ? '' : '0';\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', `${hourPrefix}${obj.hour}:${minutePrefix}${obj.minute}`);\n }\n\n registerOnChange(fn: (x: TimeValue | null) => void): void {\n this.onChange = (value) => {\n if (value === null || value === '') {\n fn(null);\n } else {\n const parts = value.split(':');\n fn({ hour: Number(parts[0]), minute: Number(parts[1]) } as TimeValue);\n }\n };\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, OnInit, Input, TemplateRef } from '@angular/core';\nimport { SvgIconComponent } from '../svg-icon/svg-icon.component';\n\n@Component({\n selector: 'mz-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.css'],\n imports: [CommonModule, SvgIconComponent],\n standalone: true,\n})\nexport class AlertComponent implements OnInit {\n @Input() title: string = '';\n @Input() type: 'info' | 'success' | 'error' | 'warning' = 'info';\n @Input() body: TemplateRef<any> | undefined | null;\n @Input() footer: TemplateRef<any> | undefined | null;\n\n constructor() {}\n\n ngOnInit(): void {}\n\n getAlertClass(): string {\n return `alert-${this.type}`;\n }\n\n getAlertIcon(): string {\n let icon = '';\n if (this.type === 'info') {\n icon = 'information-circle';\n } else if (this.type === 'success') {\n icon = 'check-circle';\n } else if (this.type === 'error') {\n icon = 'x-circle';\n } else if (this.type === 'warning') {\n icon = 'exclamation';\n }\n return icon;\n }\n}\n","<div [className]=\"'alert alert-' + type\">\n\n <div>\n <div class=\"alert-icon\">\n <mz-svg-icon [key]=\"getAlertIcon()\" type=\"solid\"></mz-svg-icon>\n </div>\n\n <div class=\"alert-title\">\n <strong>{{ title }}</strong>\n </div>\n </div>\n\n <div class=\"alert-body\" *ngIf=\"body\">\n <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n </div>\n\n <div class=\"alert-footer\" *ngIf=\"footer\">\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n\n</div>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'mzPhoneNumber',\n standalone: true,\n})\nexport class PhoneNumberPipe implements PipeTransform {\n\n transform(number?: string): string | null {\n if (!number) {\n return null;\n }\n\n const phoneNumber = number.replace(/^\\+1/, '').replace(/\\D/g, '');\n if (phoneNumber.length === 10) {\n return phoneNumber.replace(/(\\d{3})(\\d{3})(\\d{4})/, '($1) $2-$3');\n }\n return number;\n }\n}\n","import { DatePipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\n\n/**\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 { SubSink } from 'subsink';\nimport { WizardStepLink } from '../models/wizard-step-link';\nimport { SvgIconComponent } from '../svg-icon/svg-icon.component';\n\n@Component({\n selector: 'mz-wizard-progress-tracker',\n templateUrl: './wizard-progress-tracker.component.html',\n styleUrls: ['./wizard-progress-tracker.component.scss'],\n standalone: true,\n imports: [CommonModule, SvgIconComponent]\n})\nexport class WizardProgressTrackerComponent {\n @Input() steps: WizardStepLink[] = [];\n @Input() currentStep = 0;\n @Output() stepChange = new EventEmitter<WizardStepLink>();\n toggled = true;\n subs = new SubSink();\n\n goToStep(step: WizardStepLink) {\n this.stepChange.emit(step);\n }\n\n toggle(): void {\n this.toggled = !this.toggled;\n }\n}\n","<div class=\"wizard-progress-tracker\">\n <div class=\"direction-container\">\n <span class=\"steps-count\">Step {{ currentStep + 1 }} of {{ steps.length }}</span>\n <div class=\"wizard-steps-container\" [ngClass]=\"{'toggled': toggled}\">\n <div *ngFor=\"let step of steps; index as i;\" class=\"wizard-step\"\n [ngClass]=\"{ 'previous': i < currentStep, 'current': i === currentStep, 'unvisited': i > currentStep }\">\n <ng-container>\n <div class=\"wizard-step-icon-container\">\n <div class=\"spacer left\">\n </div>\n <div *ngIf=\"i > 0\" class=\"step-line left\"></div>\n\n <div *ngIf=\"i < currentStep\" class=\"wizard-step-icon\">\n <mz-svg-icon key=\"check-circle\" type=\"solid\">\n </mz-svg-icon>\n </div>\n <div *ngIf=\"i === currentStep\" class=\"wizard-step-icon\">\n <div class=\"step-inner-circle\"></div>\n </div>\n <div *ngIf=\"i > currentStep\" class=\"wizard-step-icon\">\n </div>\n\n <div *ngIf=\"i < (steps.length - 1)\" class=\"step-line step-line-right\"></div>\n <div class=\"spacer right\"></div>\n </div>\n <a *ngIf=\"i < currentStep\" class=\"step-desc\" (click)=\"goToStep(step)\"> {{\n step.name\n }}</a>\n <div *ngIf=\" i === currentStep\" class=\"step-desc\"> {{ step.name }}\n </div>\n <div *ngIf=\" i > currentStep\" class=\"step-desc\"> {{ step.name }}\n </div>\n <div class=\"toggable-icon\">\n <button *ngIf=\"!toggled\" (click)=\"toggle()\">\n <mz-svg-icon key=\"chevron-down\"></mz-svg-icon>\n </button>\n <button *ngIf=\"toggled\" (click)=\"toggle()\">\n <mz-svg-icon key=\"chevron-up\"></mz-svg-icon>\n </button>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n</div>\n","import { ChangeDetectorRef, Component, forwardRef, Input, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MatDatepickerInputEvent, MatDatepickerModule } from '@angular/material/datepicker';\nimport { TimeValue } from './time-value';\nimport { MatDatepicker } from '@angular/material/datepicker';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'mz-datetime',\n templateUrl: './date-time.component.html',\n styleUrls: ['./date-time.component.css'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DateTimeComponent),\n multi: true,\n },\n ],\n imports: [CommonModule, MatDatepickerModule],\n standalone: true,\n})\nexport class DateTimeComponent implements ControlValueAccessor {\n date: Date | undefined;\n time: string | undefined;\n\n private lz = (n: number) => ('0' + n).slice(-2);\n private formatDate = (dt: Date) => `${dt.getMonth() + 1}/${dt.getDate()}/${dt.getFullYear()}`;\n private formatTime = (t: Date) => `${this.lz(t.getHours())}:${this.lz(t.getMinutes())}`;\n private formatDateTime = (dt: Date, t: string) => `${this.formatDate(dt)} ${t}`;\n private limitDate = (dt: Date) => {\n if (this.min) {\n dt = new Date(Math.max(dt.getTime(), this.min.getTime()));\n }\n\n if (this.max) {\n dt = new Date(Math.min(dt.getTime(), this.max.getTime()));\n }\n\n return dt;\n };\n private onTimeHourPending = false; \n\n type = 'outline';\n @ViewChild('datePicker') datepicker!: MatDatepicker<Date>;\n\n @Input()\n min?: Date | undefined;\n\n @Input()\n max?: Date | undefined;\n\n @Input()\n disabled = false;\n\n constructor(private _cd: ChangeDetectorRef) {}\n\n onChange = (_: any) => {};\n onTouched = () => {};\n\n writeValue(value: Date) {\n if (value) {\n const dt = new Date(value);\n\n this.date = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());\n this.time = this.formatTime(value);\n } else {\n this.date = undefined;\n this.time = undefined;\n }\n\n this._cd.markForCheck();\n }\n\n registerOnChange(fn: (value: any) => any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n updateDate(e: Event): void {\n const input = e.target as HTMLInputElement;\n\n let dt = new Date(input.value);\n\n if (!isNaN(dt.getTime())) {\n dt = this.limitDate(dt);\n\n this.date = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());\n\n if (this.time === undefined || this.time === '') {\n this.time = this.formatTime(new Date());\n }\n } else {\n this.date = undefined;\n this.time = undefined;\n }\n\n this.propagateModelChange();\n this._cd.markForCheck();\n }\n\n updateTime(e: Event): void {\n const input = e.target as HTMLInputElement;\n\n // this is just a listener event in case the end user types in \"0\". We wait for\n // the next entered value for the time input field to self fix the problem.\n if (!this.onTimeHourPending && !input.value) {\n this.onTimeHourPending = true;\n return;\n }\n\n this.onTimeHourPending = false;\n\n if (!input.value) {\n this.date = undefined;\n } else if (!this.date || isNaN(this.date.getTime())) {\n const dt = this.limitDate(this.min ?? new Date());\n\n this.date = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());\n }\n this.time = input.value;\n\n this.propagateModelChange();\n }\n\n updateDateEvent(event: MatDatepickerInputEvent<Date>) {\n if (event.value) {\n const dt = this.limitDate(new Date(event.value));\n\n this.date = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate());\n\n if (this.time === undefined || this.time === '') {\n this.time = this.formatTime(new Date());\n }\n } else {\n this.date = undefined;\n this.time = undefined;\n }\n\n this.propagateModelChange();\n this._cd.markForCheck();\n }\n\n focusOnDateInput() {\n this.datepicker.open();\n }\n\n private propagateModelChange(): void {\n if (this.time && this.date) {\n const dateString = this.formatDateTime(this.date, this.time);\n this.onChange(new Date(dateString));\n } else {\n this.onChange(undefined);\n }\n }\n}\n\nexport interface ScheduleInputModel {\n time: TimeValue;\n}\n","<div class=\"flex\">\n <div class=\"field-control-combo\">\n <input class=\"field-control\" type=\"text\" [value]=\"date\" (change)=\"updateDate($event)\" [min]=\"min\" [max]=\"max\"\n [matDatepicker]=\"datePicker\" (dateChange)=\"updateDateEvent($event)\" [disabled]=\"disabled\" ngDefaultControl>\n <div class=\"field-control-addon\">\n <button class=\"button button-secondary button-icon\" type=\"button\" (click)=\"datePicker.open()\"\n [disabled]=\"disabled\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"\n stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\"\n d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\" />\n </svg>\n </button>\n <mat-datepicker #datePicker></mat-datepicker>\n </div>\n </div>\n <div class=\"field-control-group mt-1 ml-6\">\n <input class=\"field-control\" type=\"time\" [value]=\"time\" (change)=\"updateTime($event)\"\n ngDefaultControl [disabled]=\"disabled\">\n </div>\n</div>\n","import { 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 { CdkDialogContainer, DialogConfig } from '@angular/cdk/dialog';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'mz-drawer-container',\n standalone: true,\n imports: [CdkPortalOutlet],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n templateUrl: './drawer-container.component.html',\n styleUrl: './drawer-container.component.scss'\n})\nexport class DrawerContainerComponent extends CdkDialogContainer<DialogConfig>{\n open = false;\n\n protected override _contentAttached(): void {\n super._contentAttached();\n this.open = true;\n }\n}\n","<div class=\"drawer-container\" [class.open]=\"open\">\n <ng-template cdkPortalOutlet />\n</div>","/*\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// drawer\nexport { DrawerContainerComponent } from './lib/drawer/drawer-container.component';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i1.SortDirective"],"mappings":"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"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { DatePipeConfig } from "@angular/common";
|
2
|
+
import { InjectionToken } from "@angular/core";
|
3
|
+
export declare const DATE_PIPE_CONFIG_OPTIONS: Readonly<{
|
4
|
+
formats: Map<string, string>;
|
5
|
+
dateFormat: string;
|
6
|
+
}>;
|
7
|
+
export interface MzDatePipeConfig extends DatePipeConfig {
|
8
|
+
formats: Map<string, string>;
|
9
|
+
}
|
10
|
+
export declare const MZ_DATE_PIPE_DEFAULT_OPTIONS: InjectionToken<MzDatePipeConfig>;
|
@@ -1,10 +1,13 @@
|
|
1
1
|
import { DatePipe } from '@angular/common';
|
2
2
|
import { PipeTransform } from '@angular/core';
|
3
3
|
import * as i0 from "@angular/core";
|
4
|
+
/**
|
5
|
+
* @deprecated use mzDate instead
|
6
|
+
*/
|
4
7
|
export declare class DateDisplayPipe implements PipeTransform {
|
5
8
|
private datePipe;
|
6
9
|
constructor(datePipe: DatePipe);
|
7
|
-
transform(value: Date | string, format
|
10
|
+
transform(value: Date | string, format?: string): string | null;
|
8
11
|
static ɵfac: i0.ɵɵFactoryDeclaration<DateDisplayPipe, never>;
|
9
12
|
static ɵpipe: i0.ɵɵPipeDeclaration<DateDisplayPipe, "mzDateDisplay", true>;
|
10
13
|
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { DatePipe } from '@angular/common';
|
2
|
+
import { MzDatePipeConfig } from './date-display-config';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
export declare class MzDatePipe extends DatePipe {
|
5
|
+
private options;
|
6
|
+
constructor(locale: string, defaultMzOptions?: MzDatePipeConfig | null);
|
7
|
+
transform(value: string | number | Date, format?: string | undefined, timezone?: string | undefined, locale?: string | undefined): string | null;
|
8
|
+
transform(value: null | undefined, format?: string | undefined, timezone?: string | undefined, locale?: string | undefined): null;
|
9
|
+
transform(value: string | number | Date | null | undefined, format?: string | undefined, timezone?: string | undefined, locale?: string | undefined): string | null;
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MzDatePipe, [null, { optional: true; }]>;
|
11
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<MzDatePipe, "mzDate", true>;
|
12
|
+
}
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
@@ -7,6 +7,8 @@ export { PageLoadingIndicatorComponent } from './lib/page-loading-indicator/page
|
|
7
7
|
export { PageHeaderComponent } from './lib/page-header/page-header.component';
|
8
8
|
export { PhoneNumberPipe } from './lib/phone-number/phone-number.pipe';
|
9
9
|
export { DateDisplayPipe } from './lib/date-display/date-display.pipe';
|
10
|
+
export { MzDatePipe } from './lib/date-display/date.pipe';
|
11
|
+
export { MzDatePipeConfig, MZ_DATE_PIPE_DEFAULT_OPTIONS } from './lib/date-display/date-display-config';
|
10
12
|
export { MzInlineEditComponent } from './lib/inline-edit/inline-edit.component';
|
11
13
|
export { SubjectDisplayPipe } from './lib/subject-display/subject-display.pipe';
|
12
14
|
export { Subject } from './lib/models/subject';
|