@craftsjs/alert 3.0.0 → 5.0.0

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.
Files changed (51) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +145 -143
  3. package/_craftsjs-alert.theme.scss +296 -296
  4. package/{esm2015/craftsjs-alert.js → esm2020/craftsjs-alert.mjs} +4 -4
  5. package/esm2020/lib/alert.module.mjs +67 -0
  6. package/esm2020/lib/components/dialog-alert/components/alert-info/alert-info.component.mjs +13 -0
  7. package/esm2020/lib/components/dialog-alert/components/alert-success/alert-success.component.mjs +13 -0
  8. package/esm2020/lib/components/dialog-alert/components/buttons/alert-cancel-button/alert-cancel-button.component.mjs +18 -0
  9. package/esm2020/lib/components/dialog-alert/components/buttons/alert-ok-button/alert-ok-button.component.mjs +18 -0
  10. package/{esm2015/lib/components/dialog-alert/components/components.js → esm2020/lib/components/dialog-alert/components/components.mjs} +24 -24
  11. package/esm2020/lib/components/dialog-alert/components/error/error.component.mjs +13 -0
  12. package/esm2020/lib/components/dialog-alert/components/warning/warning.component.mjs +13 -0
  13. package/esm2020/lib/components/dialog-alert/dialog-alert.component.mjs +74 -0
  14. package/{esm2015/lib/models/alert-enum.model.js → esm2020/lib/models/alert-enum.model.mjs} +8 -8
  15. package/esm2020/lib/models/alert.model.mjs +2 -0
  16. package/esm2020/lib/services/alert.service.mjs +64 -0
  17. package/{esm2015/public-api.js → esm2020/public-api.mjs} +16 -16
  18. package/fesm2015/craftsjs-alert.mjs +299 -0
  19. package/fesm2015/craftsjs-alert.mjs.map +1 -0
  20. package/fesm2020/craftsjs-alert.mjs +297 -0
  21. package/fesm2020/craftsjs-alert.mjs.map +1 -0
  22. package/{craftsjs-alert.d.ts → index.d.ts} +5 -4
  23. package/lib/alert.module.d.ts +20 -4
  24. package/lib/components/dialog-alert/components/alert-info/alert-info.component.d.ts +5 -2
  25. package/lib/components/dialog-alert/components/alert-success/alert-success.component.d.ts +5 -2
  26. package/lib/components/dialog-alert/components/buttons/alert-cancel-button/alert-cancel-button.component.d.ts +7 -4
  27. package/lib/components/dialog-alert/components/buttons/alert-ok-button/alert-ok-button.component.d.ts +7 -4
  28. package/lib/components/dialog-alert/components/components.d.ts +6 -6
  29. package/lib/components/dialog-alert/components/error/error.component.d.ts +5 -2
  30. package/lib/components/dialog-alert/components/warning/warning.component.d.ts +5 -2
  31. package/lib/components/dialog-alert/dialog-alert.component.d.ts +20 -18
  32. package/lib/models/alert-enum.model.d.ts +6 -6
  33. package/lib/models/alert.model.d.ts +12 -12
  34. package/lib/services/alert.service.d.ts +16 -13
  35. package/package.json +27 -15
  36. package/public-api.d.ts +12 -12
  37. package/bundles/craftsjs-alert.umd.js +0 -334
  38. package/bundles/craftsjs-alert.umd.js.map +0 -1
  39. package/craftsjs-alert.metadata.json +0 -1
  40. package/esm2015/lib/alert.module.js +0 -55
  41. package/esm2015/lib/components/dialog-alert/components/alert-info/alert-info.component.js +0 -16
  42. package/esm2015/lib/components/dialog-alert/components/alert-success/alert-success.component.js +0 -16
  43. package/esm2015/lib/components/dialog-alert/components/buttons/alert-cancel-button/alert-cancel-button.component.js +0 -18
  44. package/esm2015/lib/components/dialog-alert/components/buttons/alert-ok-button/alert-ok-button.component.js +0 -18
  45. package/esm2015/lib/components/dialog-alert/components/error/error.component.js +0 -16
  46. package/esm2015/lib/components/dialog-alert/components/warning/warning.component.js +0 -16
  47. package/esm2015/lib/components/dialog-alert/dialog-alert.component.js +0 -67
  48. package/esm2015/lib/models/alert.model.js +0 -2
  49. package/esm2015/lib/services/alert.service.js +0 -64
  50. package/fesm2015/craftsjs-alert.js +0 -302
  51. package/fesm2015/craftsjs-alert.js.map +0 -1
@@ -1,297 +1,297 @@
1
- @mixin alert-info($variables) {
2
- .alert-icon-info {
3
- display: block;
4
- border-color: map-get($variables, color-info) ;
5
-
6
- &::before {
7
- content: "";
8
- position: absolute;
9
- width: 5px;
10
- height: 29px;
11
- left: 50%;
12
- bottom: 17px;
13
- border-radius: 2px;
14
- margin-left: -2px;
15
- background-color: map-get($variables, color-info);
16
- }
17
- &::after {
18
- content: "";
19
- position: absolute;
20
- width: 7px;
21
- height: 7px;
22
- border-radius: 50%;
23
- margin-left: -3px;
24
- top: 19px;
25
- background-color: map-get($variables, color-info);
26
- left: 50%;
27
- }
28
- }
29
- }
30
- @mixin alert-success($variables) {
31
-
32
- $green-light: rgba(165, 220, 134, 0.2);
33
-
34
- .alert-icon-success {
35
- border-color: map-get($variables, color-success);
36
- display: block;
37
- margin: 30px auto;
38
-
39
- &::before,
40
- &::after {
41
- content: '';
42
- border-radius: 50%;
43
- position: absolute;
44
- width: 65px;
45
- height: 120px;
46
- background: white;
47
- transform: rotate(45deg);
48
- }
49
-
50
- &::before {
51
- border-radius: 120px 0 0 120px;
52
- top: -7px;
53
- left: -33px;
54
- transform: rotate(-45deg);
55
- transform-origin: 60px 60px;
56
- }
57
-
58
- &::after {
59
- border-radius: 0 120px 120px 0;
60
- top: -11px;
61
- left: 30px;
62
- transform: rotate(-45deg);
63
- transform-origin: 0px 60px;
64
- animation: rotatePlaceholder 4.25s ease-in;
65
- }
66
-
67
- &-ring {
68
- width: 80px;
69
- height: 80px;
70
- border: 4px solid $green-light;
71
- border-radius: 50%;
72
- box-sizing: content-box;
73
- position: absolute;
74
- left: -4px;
75
- top: -4px;
76
- z-index: 2;
77
- }
78
-
79
- &-hide-corners {
80
- width: 5px;
81
- height: 90px;
82
- background-color: map-get($variables, text);
83
- padding: 1px;
84
- position: absolute;
85
- left: 28px;
86
- top: 8px;
87
- z-index: 1;
88
- transform: rotate(-45deg);
89
- }
90
-
91
- &-line {
92
- height: 5px;
93
- background-color: map-get($variables, color-success);
94
- display: block;
95
- border-radius: 2px;
96
- position: absolute;
97
- z-index: 2;
98
-
99
- &-tip {
100
- width: 25px;
101
- left: 14px;
102
- top: 46px;
103
- transform: rotate(45deg);
104
- animation: animateSuccessTip 0.75s;
105
- }
106
- &-long {
107
- width: 47px;
108
- right: 8px;
109
- top: 38px;
110
- transform: rotate(-45deg);
111
- animation: animateSuccessLong 0.75s;
112
- }
113
- }
114
- }
115
-
116
- @keyframes rotatePlaceholder {
117
- 0% {
118
- transform: rotate(-45deg);
119
- }
120
- 5% {
121
- transform: rotate(-45deg);
122
- }
123
- 12% {
124
- transform: rotate(-405deg);
125
- }
126
- 100% {
127
- transform: rotate(-405deg);
128
- }
129
- }
130
-
131
- @keyframes animateSuccessTip {
132
- 0% {
133
- width: 0;
134
- left: 1px;
135
- top: 19px;
136
- }
137
- 54% {
138
- width: 0;
139
- left: 1px;
140
- top: 19px;
141
- }
142
- 70% {
143
- width: 50px;
144
- left: -8px;
145
- top: 37px;
146
- }
147
- 84% {
148
- width: 17px;
149
- left: 21px;
150
- top: 48px;
151
- }
152
- 100% {
153
- width: 25px;
154
- left: 14px;
155
- top: 45px;
156
- }
157
- }
158
-
159
- @keyframes animateSuccessLong {
160
- 0% {
161
- width: 0;
162
- right: 46px;
163
- top: 54px;
164
- }
165
- 65% {
166
- width: 0;
167
- right: 46px;
168
- top: 54px;
169
- }
170
- 84% {
171
- width: 55px;
172
- right: 0px;
173
- top: 35px;
174
- }
175
- 100% {
176
- width: 47px;
177
- right: 8px;
178
- top: 38px;
179
- }
180
- }
181
- }
182
-
183
- @mixin alert-error($variables) {
184
-
185
- .alert-icon-error {
186
- border-color: map-get($variables, color-danger);
187
- animation: animateErrorIcon 0.5s;
188
- display: block;
189
-
190
- &-x-mark {
191
- position: relative;
192
- display: block;
193
- animation: animateXMark 0.5s;
194
- }
195
-
196
- &-line {
197
- position: absolute;
198
- height: 5px;
199
- width: 47px;
200
- background-color: map-get($variables, color-danger);
201
- display: block;
202
- top: 37px;
203
- border-radius: 2px;
204
-
205
- &-left {
206
- transform: rotate(45deg);
207
- left: 17px;
208
- }
209
-
210
- &-right {
211
- transform: rotate(-45deg);
212
- transform: rotate(-45deg);
213
- right: 16px;
214
- }
215
- }
216
- }
217
-
218
- @keyframes animateErrorIcon {
219
- from {
220
- transform: rotateX(100deg);
221
- opacity: 0;
222
- }
223
- to {
224
- transform: rotateX(0deg);
225
- opacity: 1;
226
- }
227
- }
228
-
229
- @keyframes animateXMark {
230
- 0% {
231
- transform: scale(0.4);
232
- margin-top: 26px;
233
- opacity: 0;
234
- }
235
- 50% {
236
- transform: scale(0.4);
237
- margin-top: 26px;
238
- opacity: 0;
239
- }
240
- 80% {
241
- transform: scale(1.15);
242
- margin-top: -6px;
243
- }
244
- 100% {
245
- transform: scale(1);
246
- margin-top: 0;
247
- opacity: 1;
248
- }
249
- }
250
- }
251
-
252
- @mixin alert-warning($variables) {
253
- .alert-icon-warning {
254
- border-color: map-get($variables, color-warning);
255
- animation: pulseWarning 0.75s infinite alternate;
256
- display: block;
257
-
258
- &-body {
259
- position: absolute;
260
- width: 5px;
261
- height: 47px;
262
- left: 50%;
263
- top: 10px;
264
- border-radius: 2px;
265
- margin-left: -2px;
266
- background-color: map-get($variables, color-warning);
267
- }
268
-
269
- &-dot {
270
- position: absolute;
271
- width: 7px;
272
- height: 7px;
273
- border-radius: 50%;
274
- margin-left: -4px;
275
- left: 50%;
276
- bottom: -11px;
277
- background-color: map-get($variables, color-warning);
278
- }
279
- }
280
-
281
- @keyframes pulseWarning {
282
- from {
283
- border-color: map-get($variables, color-warning);
284
- }
285
- to {
286
- border-color: map-get($variables, color-warning);
287
- }
288
- }
289
- }
290
-
291
-
292
- @mixin alert($variables) {
293
- @include alert-error($variables);
294
- @include alert-warning($variables);
295
- @include alert-info($variables);
296
- @include alert-success($variables);
1
+ @mixin alert-info($variables) {
2
+ .alert-icon-info {
3
+ display: block;
4
+ border-color: map-get($variables, color-info) ;
5
+
6
+ &::before {
7
+ content: "";
8
+ position: absolute;
9
+ width: 5px;
10
+ height: 29px;
11
+ left: 50%;
12
+ bottom: 17px;
13
+ border-radius: 2px;
14
+ margin-left: -2px;
15
+ background-color: map-get($variables, color-info);
16
+ }
17
+ &::after {
18
+ content: "";
19
+ position: absolute;
20
+ width: 7px;
21
+ height: 7px;
22
+ border-radius: 50%;
23
+ margin-left: -3px;
24
+ top: 19px;
25
+ background-color: map-get($variables, color-info);
26
+ left: 50%;
27
+ }
28
+ }
29
+ }
30
+ @mixin alert-success($variables) {
31
+
32
+ $green-light: rgba(165, 220, 134, 0.2);
33
+
34
+ .alert-icon-success {
35
+ border-color: map-get($variables, color-success);
36
+ display: block;
37
+ margin: 30px auto;
38
+
39
+ &::before,
40
+ &::after {
41
+ content: '';
42
+ border-radius: 50%;
43
+ position: absolute;
44
+ width: 65px;
45
+ height: 120px;
46
+ background: white;
47
+ transform: rotate(45deg);
48
+ }
49
+
50
+ &::before {
51
+ border-radius: 120px 0 0 120px;
52
+ top: -7px;
53
+ left: -33px;
54
+ transform: rotate(-45deg);
55
+ transform-origin: 60px 60px;
56
+ }
57
+
58
+ &::after {
59
+ border-radius: 0 120px 120px 0;
60
+ top: -11px;
61
+ left: 30px;
62
+ transform: rotate(-45deg);
63
+ transform-origin: 0px 60px;
64
+ animation: rotatePlaceholder 4.25s ease-in;
65
+ }
66
+
67
+ &-ring {
68
+ width: 80px;
69
+ height: 80px;
70
+ border: 4px solid $green-light;
71
+ border-radius: 50%;
72
+ box-sizing: content-box;
73
+ position: absolute;
74
+ left: -4px;
75
+ top: -4px;
76
+ z-index: 2;
77
+ }
78
+
79
+ &-hide-corners {
80
+ width: 5px;
81
+ height: 90px;
82
+ background-color: map-get($variables, text);
83
+ padding: 1px;
84
+ position: absolute;
85
+ left: 28px;
86
+ top: 8px;
87
+ z-index: 1;
88
+ transform: rotate(-45deg);
89
+ }
90
+
91
+ &-line {
92
+ height: 5px;
93
+ background-color: map-get($variables, color-success);
94
+ display: block;
95
+ border-radius: 2px;
96
+ position: absolute;
97
+ z-index: 2;
98
+
99
+ &-tip {
100
+ width: 25px;
101
+ left: 14px;
102
+ top: 46px;
103
+ transform: rotate(45deg);
104
+ animation: animateSuccessTip 0.75s;
105
+ }
106
+ &-long {
107
+ width: 47px;
108
+ right: 8px;
109
+ top: 38px;
110
+ transform: rotate(-45deg);
111
+ animation: animateSuccessLong 0.75s;
112
+ }
113
+ }
114
+ }
115
+
116
+ @keyframes rotatePlaceholder {
117
+ 0% {
118
+ transform: rotate(-45deg);
119
+ }
120
+ 5% {
121
+ transform: rotate(-45deg);
122
+ }
123
+ 12% {
124
+ transform: rotate(-405deg);
125
+ }
126
+ 100% {
127
+ transform: rotate(-405deg);
128
+ }
129
+ }
130
+
131
+ @keyframes animateSuccessTip {
132
+ 0% {
133
+ width: 0;
134
+ left: 1px;
135
+ top: 19px;
136
+ }
137
+ 54% {
138
+ width: 0;
139
+ left: 1px;
140
+ top: 19px;
141
+ }
142
+ 70% {
143
+ width: 50px;
144
+ left: -8px;
145
+ top: 37px;
146
+ }
147
+ 84% {
148
+ width: 17px;
149
+ left: 21px;
150
+ top: 48px;
151
+ }
152
+ 100% {
153
+ width: 25px;
154
+ left: 14px;
155
+ top: 45px;
156
+ }
157
+ }
158
+
159
+ @keyframes animateSuccessLong {
160
+ 0% {
161
+ width: 0;
162
+ right: 46px;
163
+ top: 54px;
164
+ }
165
+ 65% {
166
+ width: 0;
167
+ right: 46px;
168
+ top: 54px;
169
+ }
170
+ 84% {
171
+ width: 55px;
172
+ right: 0px;
173
+ top: 35px;
174
+ }
175
+ 100% {
176
+ width: 47px;
177
+ right: 8px;
178
+ top: 38px;
179
+ }
180
+ }
181
+ }
182
+
183
+ @mixin alert-error($variables) {
184
+
185
+ .alert-icon-error {
186
+ border-color: map-get($variables, color-danger);
187
+ animation: animateErrorIcon 0.5s;
188
+ display: block;
189
+
190
+ &-x-mark {
191
+ position: relative;
192
+ display: block;
193
+ animation: animateXMark 0.5s;
194
+ }
195
+
196
+ &-line {
197
+ position: absolute;
198
+ height: 5px;
199
+ width: 47px;
200
+ background-color: map-get($variables, color-danger);
201
+ display: block;
202
+ top: 37px;
203
+ border-radius: 2px;
204
+
205
+ &-left {
206
+ transform: rotate(45deg);
207
+ left: 17px;
208
+ }
209
+
210
+ &-right {
211
+ transform: rotate(-45deg);
212
+ transform: rotate(-45deg);
213
+ right: 16px;
214
+ }
215
+ }
216
+ }
217
+
218
+ @keyframes animateErrorIcon {
219
+ from {
220
+ transform: rotateX(100deg);
221
+ opacity: 0;
222
+ }
223
+ to {
224
+ transform: rotateX(0deg);
225
+ opacity: 1;
226
+ }
227
+ }
228
+
229
+ @keyframes animateXMark {
230
+ 0% {
231
+ transform: scale(0.4);
232
+ margin-top: 26px;
233
+ opacity: 0;
234
+ }
235
+ 50% {
236
+ transform: scale(0.4);
237
+ margin-top: 26px;
238
+ opacity: 0;
239
+ }
240
+ 80% {
241
+ transform: scale(1.15);
242
+ margin-top: -6px;
243
+ }
244
+ 100% {
245
+ transform: scale(1);
246
+ margin-top: 0;
247
+ opacity: 1;
248
+ }
249
+ }
250
+ }
251
+
252
+ @mixin alert-warning($variables) {
253
+ .alert-icon-warning {
254
+ border-color: map-get($variables, color-warning);
255
+ animation: pulseWarning 0.75s infinite alternate;
256
+ display: block;
257
+
258
+ &-body {
259
+ position: absolute;
260
+ width: 5px;
261
+ height: 47px;
262
+ left: 50%;
263
+ top: 10px;
264
+ border-radius: 2px;
265
+ margin-left: -2px;
266
+ background-color: map-get($variables, color-warning);
267
+ }
268
+
269
+ &-dot {
270
+ position: absolute;
271
+ width: 7px;
272
+ height: 7px;
273
+ border-radius: 50%;
274
+ margin-left: -4px;
275
+ left: 50%;
276
+ bottom: -11px;
277
+ background-color: map-get($variables, color-warning);
278
+ }
279
+ }
280
+
281
+ @keyframes pulseWarning {
282
+ from {
283
+ border-color: map-get($variables, color-warning);
284
+ }
285
+ to {
286
+ border-color: map-get($variables, color-warning);
287
+ }
288
+ }
289
+ }
290
+
291
+
292
+ @mixin alert($variables) {
293
+ @include alert-error($variables);
294
+ @include alert-warning($variables);
295
+ @include alert-info($variables);
296
+ @include alert-success($variables);
297
297
  }
@@ -1,5 +1,5 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
5
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JhZnRzanMtYWxlcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmFmdHNqcy9hbGVydC9zcmMvY3JhZnRzanMtYWxlcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,67 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { MatButtonModule } from '@angular/material/button';
3
+ import { MatDialogModule } from '@angular/material/dialog';
4
+ import { TranslateModule } from '@ngx-translate/core';
5
+ import { CommonModule } from '@angular/common';
6
+ import { CoreModule } from '@craftsjs/core';
7
+ import { DialogAlertComponent } from './components/dialog-alert/dialog-alert.component';
8
+ import { AlertSuccessComponent } from './components/dialog-alert/components/alert-success/alert-success.component';
9
+ import { AlertInfoComponent } from './components/dialog-alert/components/alert-info/alert-info.component';
10
+ import { WarningComponent } from './components/dialog-alert/components/warning/warning.component';
11
+ import { ErrorComponent } from './components/dialog-alert/components/error/error.component';
12
+ import { AlertOkButtonComponent } from './components/dialog-alert/components/buttons/alert-ok-button/alert-ok-button.component';
13
+ import { AlertCancelButtonComponent } from './components/dialog-alert/components/buttons/alert-cancel-button/alert-cancel-button.component';
14
+ import { AlertService } from './services/alert.service';
15
+ import * as i0 from "@angular/core";
16
+ export class AlertModule {
17
+ static forRoot() {
18
+ return {
19
+ ngModule: AlertModule,
20
+ providers: [
21
+ AlertService
22
+ ]
23
+ };
24
+ }
25
+ }
26
+ AlertModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AlertModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
27
+ AlertModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: AlertModule, declarations: [DialogAlertComponent,
28
+ AlertSuccessComponent,
29
+ AlertInfoComponent,
30
+ WarningComponent,
31
+ ErrorComponent,
32
+ AlertOkButtonComponent,
33
+ AlertCancelButtonComponent], imports: [CommonModule,
34
+ TranslateModule,
35
+ MatButtonModule,
36
+ CoreModule,
37
+ MatDialogModule], exports: [DialogAlertComponent] });
38
+ AlertModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AlertModule, imports: [CommonModule,
39
+ TranslateModule,
40
+ MatButtonModule,
41
+ CoreModule,
42
+ MatDialogModule] });
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AlertModule, decorators: [{
44
+ type: NgModule,
45
+ args: [{
46
+ imports: [
47
+ CommonModule,
48
+ TranslateModule,
49
+ MatButtonModule,
50
+ CoreModule,
51
+ MatDialogModule
52
+ ],
53
+ declarations: [
54
+ DialogAlertComponent,
55
+ AlertSuccessComponent,
56
+ AlertInfoComponent,
57
+ WarningComponent,
58
+ ErrorComponent,
59
+ AlertOkButtonComponent,
60
+ AlertCancelButtonComponent
61
+ ],
62
+ exports: [
63
+ DialogAlertComponent
64
+ ]
65
+ }]
66
+ }] });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JhZnRzanMvYWxlcnQvc3JjL2xpYi9hbGVydC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0RUFBNEUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQztBQUMxRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUNsRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDNUYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0ZBQXdGLENBQUM7QUFDaEksT0FBTyxFQUNMLDBCQUEwQixFQUMzQixNQUFNLGdHQUFnRyxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUF1QnhELE1BQU0sT0FBTyxXQUFXO0lBQ3RCLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxXQUFXO1lBQ3JCLFNBQVMsRUFBRTtnQkFDVCxZQUFZO2FBQ2I7U0FDRixDQUFDO0lBQ0osQ0FBQzs7d0dBUlUsV0FBVzt5R0FBWCxXQUFXLGlCQVpoQixvQkFBb0I7UUFDcEIscUJBQXFCO1FBQ3JCLGtCQUFrQjtRQUNsQixnQkFBZ0I7UUFDaEIsY0FBYztRQUNkLHNCQUFzQjtRQUN0QiwwQkFBMEIsYUFiMUIsWUFBWTtRQUNaLGVBQWU7UUFDZixlQUFlO1FBQ2YsVUFBVTtRQUNWLGVBQWUsYUFZZixvQkFBb0I7eUdBR2YsV0FBVyxZQW5CaEIsWUFBWTtRQUNaLGVBQWU7UUFDZixlQUFlO1FBQ2YsVUFBVTtRQUNWLGVBQWU7MkZBZVYsV0FBVztrQkFyQnZCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixlQUFlO3dCQUNmLFVBQVU7d0JBQ1YsZUFBZTtxQkFDbEI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNWLG9CQUFvQjt3QkFDcEIscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxzQkFBc0I7d0JBQ3RCLDBCQUEwQjtxQkFDN0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLG9CQUFvQjtxQkFDdkI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQGNyYWZ0c2pzL2NvcmUnO1xuaW1wb3J0IHsgRGlhbG9nQWxlcnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGlhbG9nLWFsZXJ0L2RpYWxvZy1hbGVydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWxlcnRTdWNjZXNzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RpYWxvZy1hbGVydC9jb21wb25lbnRzL2FsZXJ0LXN1Y2Nlc3MvYWxlcnQtc3VjY2Vzcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWxlcnRJbmZvQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RpYWxvZy1hbGVydC9jb21wb25lbnRzL2FsZXJ0LWluZm8vYWxlcnQtaW5mby5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2FybmluZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kaWFsb2ctYWxlcnQvY29tcG9uZW50cy93YXJuaW5nL3dhcm5pbmcuY29tcG9uZW50JztcbmltcG9ydCB7IEVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RpYWxvZy1hbGVydC9jb21wb25lbnRzL2Vycm9yL2Vycm9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGVydE9rQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RpYWxvZy1hbGVydC9jb21wb25lbnRzL2J1dHRvbnMvYWxlcnQtb2stYnV0dG9uL2FsZXJ0LW9rLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQWxlcnRDYW5jZWxCdXR0b25Db21wb25lbnRcbn0gZnJvbSAnLi9jb21wb25lbnRzL2RpYWxvZy1hbGVydC9jb21wb25lbnRzL2J1dHRvbnMvYWxlcnQtY2FuY2VsLWJ1dHRvbi9hbGVydC1jYW5jZWwtYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2FsZXJ0LnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgQ29yZU1vZHVsZSxcbiAgICAgICAgTWF0RGlhbG9nTW9kdWxlXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgRGlhbG9nQWxlcnRDb21wb25lbnQsXG4gICAgICAgIEFsZXJ0U3VjY2Vzc0NvbXBvbmVudCxcbiAgICAgICAgQWxlcnRJbmZvQ29tcG9uZW50LFxuICAgICAgICBXYXJuaW5nQ29tcG9uZW50LFxuICAgICAgICBFcnJvckNvbXBvbmVudCxcbiAgICAgICAgQWxlcnRPa0J1dHRvbkNvbXBvbmVudCxcbiAgICAgICAgQWxlcnRDYW5jZWxCdXR0b25Db21wb25lbnRcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgRGlhbG9nQWxlcnRDb21wb25lbnRcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEFsZXJ0TW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxBbGVydE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQWxlcnRNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgQWxlcnRTZXJ2aWNlXG4gICAgICBdXG4gICAgfTtcbiAgfVxufVxuIl19