monkey-style-guide 2.0.201 → 2.0.203
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/assets/scss/partials/_index.scss +1 -0
- package/assets/scss/partials/_loading.scss +35 -0
- package/esm2020/lib/components/file-upload/file-upload.component.mjs +11 -8
- package/esm2020/lib/core/utils/utils.mjs +2 -2
- package/fesm2015/monkey-style-guide.mjs +11 -8
- package/fesm2015/monkey-style-guide.mjs.map +1 -1
- package/fesm2020/monkey-style-guide.mjs +11 -8
- package/fesm2020/monkey-style-guide.mjs.map +1 -1
- package/lib/components/file-upload/file-upload.component.d.ts +2 -1
- package/monkey-style-guide-2.0.203.tgz +0 -0
- package/package.json +1 -1
- package/monkey-style-guide-2.0.201.tgz +0 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**************************
|
|
2
|
+
* Copyright Monkey Exchange. All Rights Reserved
|
|
3
|
+
* This style guide was developed by Monkey Exchange Team
|
|
4
|
+
* MIT Licence
|
|
5
|
+
**************************/
|
|
6
|
+
.mecx-skeleton {
|
|
7
|
+
animation: mecx-skeleton-loading 1s linear infinite alternate;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
@keyframes mecx-skeleton-loading {
|
|
11
|
+
0% {
|
|
12
|
+
background-color: #d1dbe0;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
100% {
|
|
16
|
+
background-color: #f0f3f5;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.mecx-loading {
|
|
21
|
+
@extend .mecx-skeleton;
|
|
22
|
+
|
|
23
|
+
width: 100%;
|
|
24
|
+
height: 12px;
|
|
25
|
+
margin-bottom: 8px;
|
|
26
|
+
border-radius: 8px;
|
|
27
|
+
|
|
28
|
+
&.md {
|
|
29
|
+
height: 30px;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
&.lg {
|
|
33
|
+
height: 48px;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -19,7 +19,8 @@ export class MonkeyFileUploadComponent {
|
|
|
19
19
|
this._id = `mecx-file-upload-${MonkeyUtils.getRandomString(10)}`;
|
|
20
20
|
this._disabled = false;
|
|
21
21
|
this._progress = null;
|
|
22
|
-
this.
|
|
22
|
+
this._showMaxSizeErrorMessage = false;
|
|
23
|
+
this._maxSizeErrorMessage = '';
|
|
23
24
|
this._allowedExtensionErrorMessage = false;
|
|
24
25
|
this._uploadErrorMessage = '';
|
|
25
26
|
}
|
|
@@ -39,7 +40,9 @@ export class MonkeyFileUploadComponent {
|
|
|
39
40
|
}
|
|
40
41
|
if (configFiles.maxSize) {
|
|
41
42
|
if (size > configFiles.maxSize) {
|
|
42
|
-
this.
|
|
43
|
+
this._showMaxSizeErrorMessage = true;
|
|
44
|
+
const formated = MonkeyUtils.formatFileSize(configFiles.maxSize);
|
|
45
|
+
this._maxSizeErrorMessage = `${this.maxSizeErrorMessage}${formated}`;
|
|
43
46
|
return false;
|
|
44
47
|
}
|
|
45
48
|
}
|
|
@@ -97,7 +100,7 @@ export class MonkeyFileUploadComponent {
|
|
|
97
100
|
onChangeValue(event) {
|
|
98
101
|
const { listenFiles } = this;
|
|
99
102
|
this._allowedExtensionErrorMessage = false;
|
|
100
|
-
this.
|
|
103
|
+
this._showMaxSizeErrorMessage = false;
|
|
101
104
|
for (let index = 0; index < event.length; index++) {
|
|
102
105
|
const file = event[index];
|
|
103
106
|
if (this.validateFile(file)) {
|
|
@@ -139,7 +142,7 @@ MonkeyFileUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
|
|
|
139
142
|
{{ helperMessage }}
|
|
140
143
|
</helper>
|
|
141
144
|
</mecx-form-field-header>
|
|
142
|
-
<mecx-form-field-body [class.error]="errorMessage?.trim() || _uploadErrorMessage?.trim() ||
|
|
145
|
+
<mecx-form-field-body [class.error]="errorMessage?.trim() || _uploadErrorMessage?.trim() || _showMaxSizeErrorMessage">
|
|
143
146
|
<input
|
|
144
147
|
#fileInput
|
|
145
148
|
hidden
|
|
@@ -178,7 +181,7 @@ MonkeyFileUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
|
|
|
178
181
|
<error>
|
|
179
182
|
{{ errorMessage }}
|
|
180
183
|
{{ _uploadErrorMessage }}
|
|
181
|
-
{{
|
|
184
|
+
{{ _showMaxSizeErrorMessage ? _maxSizeErrorMessage : null }}
|
|
182
185
|
{{
|
|
183
186
|
_allowedExtensionErrorMessage ? allowedExtensionErrorMessage : null
|
|
184
187
|
}}
|
|
@@ -200,7 +203,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
200
203
|
{{ helperMessage }}
|
|
201
204
|
</helper>
|
|
202
205
|
</mecx-form-field-header>
|
|
203
|
-
<mecx-form-field-body [class.error]="errorMessage?.trim() || _uploadErrorMessage?.trim() ||
|
|
206
|
+
<mecx-form-field-body [class.error]="errorMessage?.trim() || _uploadErrorMessage?.trim() || _showMaxSizeErrorMessage">
|
|
204
207
|
<input
|
|
205
208
|
#fileInput
|
|
206
209
|
hidden
|
|
@@ -239,7 +242,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
239
242
|
<error>
|
|
240
243
|
{{ errorMessage }}
|
|
241
244
|
{{ _uploadErrorMessage }}
|
|
242
|
-
{{
|
|
245
|
+
{{ _showMaxSizeErrorMessage ? _maxSizeErrorMessage : null }}
|
|
243
246
|
{{
|
|
244
247
|
_allowedExtensionErrorMessage ? allowedExtensionErrorMessage : null
|
|
245
248
|
}}
|
|
@@ -296,4 +299,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
296
299
|
type: HostListener,
|
|
297
300
|
args: ['click', ['$event']]
|
|
298
301
|
}] } });
|
|
299
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LXN0eWxlLWd1aWRlL3NyYy9saWIvY29tcG9uZW50cy9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NEJBSTRCO0FBQzVCLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLEtBQUssRUFDTCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixZQUFZLEdBRWIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQXNFL0MsTUFBTSxPQUFPLHlCQUF5QjtJQStCcEM7UUFoQlMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNoQixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNuQyx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBSWhELGtCQUFhLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUNuQyxtQkFBYyxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFFckMsUUFBRyxHQUFXLG9CQUFvQixXQUFXLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDcEUsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixjQUFTLEdBQVcsSUFBSSxDQUFDO1FBQ3pCLHlCQUFvQixHQUFZLEtBQUssQ0FBQztRQUN0QyxrQ0FBNkIsR0FBWSxLQUFLLENBQUM7UUFDL0Msd0JBQW1CLEdBQVcsRUFBRSxDQUFDO0lBRXpCLENBQUM7SUFFUixZQUFZLENBQUMsSUFBVTtRQUM3QixNQUFNLEVBQUUsV0FBVyxF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Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csNEJBQTRCO3NCQUFwQyxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkE0RkgsS0FBSztzQkFEUixLQUFLO2dCQWtDTixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBDb3B5cmlnaHQgTW9ua2V5IEV4Y2hhbmdlLiBBbGwgUmlnaHRzIFJlc2VydmVkXG4gKiBUaGlzIHN0eWxlIGd1aWRlIHdhcyBkZXZlbG9wZWQgYnkgTW9ua2V5IEV4Y2hhbmdlIFRlYW1cbiAqIE1JVCBMaWNlbmNlXG4gKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBJbnB1dCxcbiAgZm9yd2FyZFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1vbmtleVV0aWxzIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vbmtleS1maWxlLXVwbG9hZCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG1lY3gtZm9ybS1maWVsZCBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBfZGlzYWJsZWQgfVwiPlxuICAgICAgPG1lY3gtZm9ybS1maWVsZC1oZWFkZXI+XG4gICAgICAgIDxsYWJlbD5cbiAgICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8aGVscGVyPlxuICAgICAgICAgIHt7IGhlbHBlck1lc3NhZ2UgfX1cbiAgICAgICAgPC9oZWxwZXI+XG4gICAgICA8L21lY3gtZm9ybS1maWVsZC1oZWFkZXI+XG4gICAgICA8bWVjeC1mb3JtLWZpZWxkLWJvZHkgW2NsYXNzLmVycm9yXT1cImVycm9yTWVzc2FnZT8udHJpbSgpIHx8IF91cGxvYWRFcnJvck1lc3NhZ2U/LnRyaW0oKSB8fCBfbWF4U2l6ZUVycm9yTWVzc2FnZVwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAjZmlsZUlucHV0XG4gICAgICAgICAgaGlkZGVuXG4gICAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2VWYWx1ZSgkZXZlbnQudGFyZ2V0LmZpbGVzKVwiXG4gICAgICAgICAgW2lkXT1cIl9pZFwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIl9kaXNhYmxlZFwiXG4gICAgICAgICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHNwYW4+e3tcbiAgICAgICAgICB2YWx1ZT8uZmlsZU5hbWVcbiAgICAgICAgICAgID8gdmFsdWUuZmlsZU5hbWVcbiAgICAgICAgICAgIDogdXBsb2FkT25nb2luZ01lc3NhZ2VcbiAgICAgICAgICAgID8gdXBsb2FkT25nb2luZ01lc3NhZ2VcbiAgICAgICAgICAgIDogcGxhY2Vob2xkZXJcbiAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIDxtb25rZXktaWNvblxuICAgICAgICAgIGljb249XCJ1cGxvYWQtMTZcIlxuICAgICAgICAgIFtjb2xvcl09XCInIzRCNEE1MydcIlxuICAgICAgICAgICpuZ0lmPVwiIXZhbHVlPy5maWxlTmFtZVwiXG4gICAgICAgID48L21vbmtleS1pY29uPlxuICAgICAgICA8bW9ua2V5LWljb25cbiAgICAgICAgICBpY29uPVwiY2xvc2UtMTZcIlxuICAgICAgICAgICpuZ0lmPVwidmFsdWU/LmZpbGVOYW1lXCJcbiAgICAgICAgICAoY2xpY2spPVwib25DbGVhcigkZXZlbnQpXCJcbiAgICAgICAgPjwvbW9ua2V5LWljb24+XG4gICAgICA8L21lY3gtZm9ybS1maWVsZC1ib2R5PlxuICAgICAgPG1lY3gtZm9ybS1maWVsZC11cGxvYWQtaW5mbyAqbmdJZj1cIl9wcm9ncmVzc1wiPlxuICAgICAgICA8c3BhbiBbc3R5bGUud2lkdGguJV09XCJfcHJvZ3Jlc3NcIj4ge3sgX3Byb2dyZXNzIH19JTwvc3Bhbj5cbiAgICAgIDwvbWVjeC1mb3JtLWZpZWxkLXVwbG9hZC1pbmZvPlxuICAgICAgPG1lY3gtZm9ybS1maWVsZC1mb290ZXI+XG4gICAgICAgIDxpbmZvPlxuICAgICAgICAgIHt7IGluZm9NZXNzYWdlIH19XG4gICAgICAgIDwvaW5mbz5cbiAgICAgICAgPGVycm9yPlxuICAgICAgICAgIHt7IGVycm9yTWVzc2FnZSB9fVxuICAgICAgICAgIHt7IF91cGxvYWRFcnJvck1lc3NhZ2UgfX1cbiAgICAgICAgICB7eyBfbWF4U2l6ZUVycm9yTWVzc2FnZSA/IG1heFNpemVFcnJvck1lc3NhZ2UgOiBudWxsIH19XG4gICAgICAgICAge3tcbiAgICAgICAgICAgIF9hbGxvd2VkRXh0ZW5zaW9uRXJyb3JNZXNzYWdlID8gYWxsb3dlZEV4dGVuc2lvbkVycm9yTWVzc2FnZSA6IG51bGxcbiAgICAgICAgICB9fVxuICAgICAgICA8L2Vycm9yPlxuICAgICAgPC9tZWN4LWZvcm0tZmllbGQtZm9vdGVyPlxuICAgIDwvbWVjeC1mb3JtLWZpZWxkPlxuICBgLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE1vbmtleUZpbGVVcGxvYWRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9ua2V5RmlsZVVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xuICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGhlbHBlck1lc3NhZ2U6IHN0cmluZztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgQElucHV0KCkgaWNvbjogc3RyaW5nO1xuICBASW5wdXQoKSBpbmZvTWVzc2FnZTogc3RyaW5nO1xuICBASW5wdXQoKSB1cGxvYWRPbmdvaW5nTWVzc2FnZTogc3RyaW5nO1xuICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgQElucHV0KCkgbGlzdGVuRmlsZXM6IGJvb2xlYW47XG4gIEBJbnB1dCgpIG1heFNpemU6IG51bWJlcjtcbiAgQElucHV0KCkgYWxsb3dlZEV4dGVuc2lvbnM6IHN0cmluZ1tdO1xuICBASW5wdXQoKSBtYXhTaXplRXJyb3JNZXNzYWdlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFsbG93ZWRFeHRlbnNpb25FcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgQElucHV0KCkgZmlsZVVwbG9hZDogRnVuY3Rpb247XG4gIEBJbnB1dCgpIG11bHRpcGxlID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgb25IYW5kbGVGaWxlc1JlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlPigpO1xuXG4gIHByaXZhdGUgY29uZmlnRmlsZXM6IENvbmZpZ0ZpbGVzO1xuICBwcml2YXRlIGhhbmRsZWRWYWx1ZTogYW55O1xuICBwcml2YXRlIG9uTW9kZWxDaGFuZ2UgPSAodmFsdWU6IGFueSkgPT4ge307XG4gIHByaXZhdGUgb25Nb2RlbFRvdWNoZWQgPSAodmFsdWU6IGFueSkgPT4ge307XG5cbiAgcHVibGljIF9pZDogc3RyaW5nID0gYG1lY3gtZmlsZS11cGxvYWQtJHtNb25rZXlVdGlscy5nZXRSYW5kb21TdHJpbmcoMTApfWA7XG4gIHB1YmxpYyBfZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIF9wcm9ncmVzczogbnVtYmVyID0gbnVsbDtcbiAgcHVibGljIF9tYXhTaXplRXJyb3JNZXNzYWdlOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBfYWxsb3dlZEV4dGVuc2lvbkVycm9yTWVzc2FnZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgX3VwbG9hZEVycm9yTWVzc2FnZTogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHByaXZhdGUgdmFsaWRhdGVGaWxlKGZpbGU6IEZpbGUpOiBib29sZWFuIHtcbiAgICBjb25zdCB7IGNvbmZpZ0ZpbGVzIH0gPSB0aGlzO1xuICAgIGNvbnN0IHsgbmFtZSwgc2l6ZSB9ID0gZmlsZTtcblxuICAgIGlmIChjb25maWdGaWxlcy5hbGxvd2VkRXh0ZW5zaW9ucykge1xuICAgICAgY29uc3QgaGFzQWxsb3dlZEV4dGVuc2lvbnMgPVxuICAgICAgICBjb25maWdGaWxlcy5hbGxvd2VkRXh0ZW5zaW9ucy5maWx0ZXIoKGFsbG93KSA9PiB7XG4gICAgICAgICAgY29uc3QgZXh0ZW5zaW9uID0gbmFtZS5zdWJzdHJpbmcobmFtZS5sYXN0SW5kZXhPZignLicpLCBuYW1lLmxlbmd0aCk7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGFsbG93LmV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpID09PSBleHRlbnNpb24udG9Mb3dlckNhc2UoKSB8fFxuICAgICAgICAgICAgIU1vbmtleVV0aWxzLnBlcnNpc3ROdWxsRW1wdHlVbmRlZmluZWQoZXh0ZW5zaW9uKVxuICAgICAgICAgICk7XG4gICAgICAgIH0pLmxlbmd0aCA+IDA7XG4gICAgICBpZiAoIWhhc0FsbG93ZWRFeHRlbnNpb25zKSB7XG4gICAgICAgIHRoaXMuX2FsbG93ZWRFeHRlbnNpb25FcnJvck1lc3NhZ2UgPSB0cnVlO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZ0ZpbGVzLm1heFNpemUpIHtcbiAgICAgIGlmIChzaXplID4gY29uZmlnRmlsZXMubWF4U2l6ZSkge1xuICAgICAgICB0aGlzLl9tYXhTaXplRXJyb3JNZXNzYWdlID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVDYWxsYmFjayhcbiAgICBwcm9ncmVzczogbnVtYmVyLFxuICAgIHJlc3BVcGxvYWRlZDogYW55LFxuICAgIHVwbG9hZEVycm9yOiBzdHJpbmdcbiAgKSB7XG4gICAgdGhpcy5fcHJvZ3Jlc3MgPSBwcm9ncmVzcztcbiAgICB0aGlzLnZhbHVlID0gcmVzcFVwbG9hZGVkO1xuICAgIHRoaXMuX3VwbG9hZEVycm9yTWVzc2FnZSA9IHVwbG9hZEVycm9yO1xuICAgIHRoaXMub25DaGFuZ2UubmV4dCh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuYWxsb3dlZEV4dGVuc2lvbnMgPSB0aGlzLmFsbG93ZWRFeHRlbnNpb25zIHx8IFtcbiAgICAgICcuanBnJyxcbiAgICAgICcuanBlZycsXG4gICAgICAnLnBuZycsXG4gICAgICAnLnBkZicsXG4gICAgICAnLnR4dCcsXG4gICAgICAnLnhscycsXG4gICAgICAnLnhsc3gnLFxuICAgIF07XG4gICAgbGV0IGFsbG93OiBBbGxvd2VkRmlsZVtdID0gbnVsbDtcbiAgICBpZiAodGhpcy5hbGxvd2VkRXh0ZW5zaW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBhbGxvdyA9IHRoaXMuYWxsb3dlZEV4dGVuc2lvbnMubWFwKCh2YWwpID0+IHtcbiAgICAgICAgcmV0dXJuIHsgZXh0ZW5zaW9uOiB2YWwgfTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuY29uZmlnRmlsZXMgPSB7XG4gICAgICBtYXhTaXplOiB0aGlzLm1heFNpemUgfHwgNSAqIDEwMjQgKiAxMDI0LFxuICAgICAgYWxsb3dlZEV4dGVuc2lvbnM6IGFsbG93LFxuICAgIH07XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uTW9kZWxDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uTW9kZWxUb3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmhhbmRsZWRWYWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuaGFuZGxlZFZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLm9uTW9kZWxDaGFuZ2UodmFsdWUpO1xuICAgICAgdGhpcy5vbk1vZGVsVG91Y2hlZCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlZFZhbHVlO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgb25DaGFuZ2VWYWx1ZShldmVudDogYW55KSB7XG4gICAgY29uc3QgeyBsaXN0ZW5GaWxlcyB9ID0gdGhpcztcbiAgICB0aGlzLl9hbGxvd2VkRXh0ZW5zaW9uRXJyb3JNZXNzYWdlID0gZmFsc2U7XG4gICAgdGhpcy5fbWF4U2l6ZUVycm9yTWVzc2FnZSA9IGZhbHNlO1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBldmVudC5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgIGNvbnN0IGZpbGU6IEZpbGUgPSBldmVudFtpbmRleF07XG4gICAgICBpZiAodGhpcy52YWxpZGF0ZUZpbGUoZmlsZSkpIHtcbiAgICAgICAgaWYgKGxpc3RlbkZpbGVzKSB7XG4gICAgICAgICAgdGhpcy5vbkhhbmRsZUZpbGVzUmVhZHkubmV4dChmaWxlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmZpbGVVcGxvYWQoZmlsZSwgdGhpcy5oYW5kbGVDYWxsYmFjay5iaW5kKHRoaXMpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgb25DbGljayhldmVudDogYW55KSB7XG4gICAgY29uc3QgeyBfaWQgfSA9IHRoaXM7XG4gICAgKDxIVE1MSW5wdXRFbGVtZW50PmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKF9pZCkpLnZhbHVlID0gbnVsbDtcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChfaWQpLmNsaWNrKCk7XG4gIH1cblxuICBvbkNsZWFyKGV2ZW50OiBhbnkpIHtcbiAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgdGhpcy5vbkNoYW5nZS5uZXh0KHRoaXMudmFsdWUpO1xuICB9XG59XG5cbmludGVyZmFjZSBBbGxvd2VkRmlsZSB7XG4gIGV4dGVuc2lvbjogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQ29uZmlnRmlsZXMge1xuICBtYXhTaXplOiBudW1iZXI7XG4gIGFsbG93ZWRFeHRlbnNpb25zOiBBbGxvd2VkRmlsZVtdO1xufVxuIl19
|
|
302
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LXN0eWxlLWd1aWRlL3NyYy9saWIvY29tcG9uZW50cy9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NEJBSTRCO0FBQzVCLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLEtBQUssRUFDTCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixZQUFZLEdBRWIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQXNFL0MsTUFBTSxPQUFPLHlCQUF5QjtJQWdDcEM7UUFqQlMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNoQixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNuQyx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBSWhELGtCQUFhLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUNuQyxtQkFBYyxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFFckMsUUFBRyxHQUFXLG9CQUFvQixXQUFXLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDcEUsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixjQUFTLEdBQVcsSUFBSSxDQUFDO1FBQ3pCLDZCQUF3QixHQUFZLEtBQUssQ0FBQztRQUMxQyx5QkFBb0IsR0FBRyxFQUFFLENBQUM7UUFDMUIsa0NBQTZCLEdBQVksS0FBSyxDQUFDO1FBQy9DLHdCQUFtQixHQUFXLEVBQUUsQ0FBQztJQUV6QixDQUFDO0lBRVIsWUFBWSxDQUFD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QUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLDRCQUE0QjtzQkFBcEMsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBK0ZILEtBQUs7c0JBRFIsS0FBSztnQkFrQ04sT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogQ29weXJpZ2h0IE1vbmtleSBFeGNoYW5nZS4gQWxsIFJpZ2h0cyBSZXNlcnZlZFxuICogVGhpcyBzdHlsZSBndWlkZSB3YXMgZGV2ZWxvcGVkIGJ5IE1vbmtleSBFeGNoYW5nZSBUZWFtXG4gKiBNSVQgTGljZW5jZVxuICoqKioqKioqKioqKioqKioqKioqKioqKioqL1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgSW5wdXQsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNb25rZXlVdGlscyB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtb25rZXktZmlsZS11cGxvYWQnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxtZWN4LWZvcm0tZmllbGQgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogX2Rpc2FibGVkIH1cIj5cbiAgICAgIDxtZWN4LWZvcm0tZmllbGQtaGVhZGVyPlxuICAgICAgICA8bGFiZWw+XG4gICAgICAgICAge3sgbGFiZWwgfX1cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGhlbHBlcj5cbiAgICAgICAgICB7eyBoZWxwZXJNZXNzYWdlIH19XG4gICAgICAgIDwvaGVscGVyPlxuICAgICAgPC9tZWN4LWZvcm0tZmllbGQtaGVhZGVyPlxuICAgICAgPG1lY3gtZm9ybS1maWVsZC1ib2R5IFtjbGFzcy5lcnJvcl09XCJlcnJvck1lc3NhZ2U/LnRyaW0oKSB8fCBfdXBsb2FkRXJyb3JNZXNzYWdlPy50cmltKCkgfHwgX3Nob3dNYXhTaXplRXJyb3JNZXNzYWdlXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICNmaWxlSW5wdXRcbiAgICAgICAgICBoaWRkZW5cbiAgICAgICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZVZhbHVlKCRldmVudC50YXJnZXQuZmlsZXMpXCJcbiAgICAgICAgICBbaWRdPVwiX2lkXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiX2Rpc2FibGVkXCJcbiAgICAgICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgICAgICAvPlxuICAgICAgICA8c3Bhbj57e1xuICAgICAgICAgIHZhbHVlPy5maWxlTmFtZVxuICAgICAgICAgICAgPyB2YWx1ZS5maWxlTmFtZVxuICAgICAgICAgICAgOiB1cGxvYWRPbmdvaW5nTWVzc2FnZVxuICAgICAgICAgICAgPyB1cGxvYWRPbmdvaW5nTWVzc2FnZVxuICAgICAgICAgICAgOiBwbGFjZWhvbGRlclxuICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgPG1vbmtleS1pY29uXG4gICAgICAgICAgaWNvbj1cInVwbG9hZC0xNlwiXG4gICAgICAgICAgW2NvbG9yXT1cIicjNEI0QTUzJ1wiXG4gICAgICAgICAgKm5nSWY9XCIhdmFsdWU/LmZpbGVOYW1lXCJcbiAgICAgICAgPjwvbW9ua2V5LWljb24+XG4gICAgICAgIDxtb25rZXktaWNvblxuICAgICAgICAgIGljb249XCJjbG9zZS0xNlwiXG4gICAgICAgICAgKm5nSWY9XCJ2YWx1ZT8uZmlsZU5hbWVcIlxuICAgICAgICAgIChjbGljayk9XCJvbkNsZWFyKCRldmVudClcIlxuICAgICAgICA+PC9tb25rZXktaWNvbj5cbiAgICAgIDwvbWVjeC1mb3JtLWZpZWxkLWJvZHk+XG4gICAgICA8bWVjeC1mb3JtLWZpZWxkLXVwbG9hZC1pbmZvICpuZ0lmPVwiX3Byb2dyZXNzXCI+XG4gICAgICAgIDxzcGFuIFtzdHlsZS53aWR0aC4lXT1cIl9wcm9ncmVzc1wiPiB7eyBfcHJvZ3Jlc3MgfX0lPC9zcGFuPlxuICAgICAgPC9tZWN4LWZvcm0tZmllbGQtdXBsb2FkLWluZm8+XG4gICAgICA8bWVjeC1mb3JtLWZpZWxkLWZvb3Rlcj5cbiAgICAgICAgPGluZm8+XG4gICAgICAgICAge3sgaW5mb01lc3NhZ2UgfX1cbiAgICAgICAgPC9pbmZvPlxuICAgICAgICA8ZXJyb3I+XG4gICAgICAgICAge3sgZXJyb3JNZXNzYWdlIH19XG4gICAgICAgICAge3sgX3VwbG9hZEVycm9yTWVzc2FnZSB9fVxuICAgICAgICAgIHt7IF9zaG93TWF4U2l6ZUVycm9yTWVzc2FnZSA/IF9tYXhTaXplRXJyb3JNZXNzYWdlIDogbnVsbCB9fVxuICAgICAgICAgIHt7XG4gICAgICAgICAgICBfYWxsb3dlZEV4dGVuc2lvbkVycm9yTWVzc2FnZSA/IGFsbG93ZWRFeHRlbnNpb25FcnJvck1lc3NhZ2UgOiBudWxsXG4gICAgICAgICAgfX1cbiAgICAgICAgPC9lcnJvcj5cbiAgICAgIDwvbWVjeC1mb3JtLWZpZWxkLWZvb3Rlcj5cbiAgICA8L21lY3gtZm9ybS1maWVsZD5cbiAgYCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBNb25rZXlGaWxlVXBsb2FkQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE1vbmtleUZpbGVVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBoZWxwZXJNZXNzYWdlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGljb246IHN0cmluZztcbiAgQElucHV0KCkgaW5mb01lc3NhZ2U6IHN0cmluZztcbiAgQElucHV0KCkgdXBsb2FkT25nb2luZ01lc3NhZ2U6IHN0cmluZztcbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxpc3RlbkZpbGVzOiBib29sZWFuO1xuICBASW5wdXQoKSBtYXhTaXplOiBudW1iZXI7XG4gIEBJbnB1dCgpIGFsbG93ZWRFeHRlbnNpb25zOiBzdHJpbmdbXTtcbiAgQElucHV0KCkgbWF4U2l6ZUVycm9yTWVzc2FnZTogc3RyaW5nO1xuICBASW5wdXQoKSBhbGxvd2VkRXh0ZW5zaW9uRXJyb3JNZXNzYWdlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGZpbGVVcGxvYWQ6IEZ1bmN0aW9uO1xuICBASW5wdXQoKSBtdWx0aXBsZSA9IGZhbHNlO1xuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIG9uSGFuZGxlRmlsZXNSZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZT4oKTtcblxuICBwcml2YXRlIGNvbmZpZ0ZpbGVzOiBDb25maWdGaWxlcztcbiAgcHJpdmF0ZSBoYW5kbGVkVmFsdWU6IGFueTtcbiAgcHJpdmF0ZSBvbk1vZGVsQ2hhbmdlID0gKHZhbHVlOiBhbnkpID0+IHt9O1xuICBwcml2YXRlIG9uTW9kZWxUb3VjaGVkID0gKHZhbHVlOiBhbnkpID0+IHt9O1xuXG4gIHB1YmxpYyBfaWQ6IHN0cmluZyA9IGBtZWN4LWZpbGUtdXBsb2FkLSR7TW9ua2V5VXRpbHMuZ2V0UmFuZG9tU3RyaW5nKDEwKX1gO1xuICBwdWJsaWMgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBfcHJvZ3Jlc3M6IG51bWJlciA9IG51bGw7XG4gIHB1YmxpYyBfc2hvd01heFNpemVFcnJvck1lc3NhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIF9tYXhTaXplRXJyb3JNZXNzYWdlID0gJyc7XG4gIHB1YmxpYyBfYWxsb3dlZEV4dGVuc2lvbkVycm9yTWVzc2FnZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgX3VwbG9hZEVycm9yTWVzc2FnZTogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHByaXZhdGUgdmFsaWRhdGVGaWxlKGZpbGU6IEZpbGUpOiBib29sZWFuIHtcbiAgICBjb25zdCB7IGNvbmZpZ0ZpbGVzIH0gPSB0aGlzO1xuICAgIGNvbnN0IHsgbmFtZSwgc2l6ZSB9ID0gZmlsZTtcblxuICAgIGlmIChjb25maWdGaWxlcy5hbGxvd2VkRXh0ZW5zaW9ucykge1xuICAgICAgY29uc3QgaGFzQWxsb3dlZEV4dGVuc2lvbnMgPVxuICAgICAgICBjb25maWdGaWxlcy5hbGxvd2VkRXh0ZW5zaW9ucy5maWx0ZXIoKGFsbG93KSA9PiB7XG4gICAgICAgICAgY29uc3QgZXh0ZW5zaW9uID0gbmFtZS5zdWJzdHJpbmcobmFtZS5sYXN0SW5kZXhPZignLicpLCBuYW1lLmxlbmd0aCk7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGFsbG93LmV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpID09PSBleHRlbnNpb24udG9Mb3dlckNhc2UoKSB8fFxuICAgICAgICAgICAgIU1vbmtleVV0aWxzLnBlcnNpc3ROdWxsRW1wdHlVbmRlZmluZWQoZXh0ZW5zaW9uKVxuICAgICAgICAgICk7XG4gICAgICAgIH0pLmxlbmd0aCA+IDA7XG4gICAgICBpZiAoIWhhc0FsbG93ZWRFeHRlbnNpb25zKSB7XG4gICAgICAgIHRoaXMuX2FsbG93ZWRFeHRlbnNpb25FcnJvck1lc3NhZ2UgPSB0cnVlO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZ0ZpbGVzLm1heFNpemUpIHtcbiAgICAgIGlmIChzaXplID4gY29uZmlnRmlsZXMubWF4U2l6ZSkge1xuICAgICAgICB0aGlzLl9zaG93TWF4U2l6ZUVycm9yTWVzc2FnZSA9IHRydWU7XG4gICAgICAgIGNvbnN0IGZvcm1hdGVkID0gTW9ua2V5VXRpbHMuZm9ybWF0RmlsZVNpemUoY29uZmlnRmlsZXMubWF4U2l6ZSk7XG4gICAgICAgIHRoaXMuX21heFNpemVFcnJvck1lc3NhZ2UgPSBgJHt0aGlzLm1heFNpemVFcnJvck1lc3NhZ2V9JHtmb3JtYXRlZH1gO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUNhbGxiYWNrKFxuICAgIHByb2dyZXNzOiBudW1iZXIsXG4gICAgcmVzcFVwbG9hZGVkOiBhbnksXG4gICAgdXBsb2FkRXJyb3I6IHN0cmluZ1xuICApIHtcbiAgICB0aGlzLl9wcm9ncmVzcyA9IHByb2dyZXNzO1xuICAgIHRoaXMudmFsdWUgPSByZXNwVXBsb2FkZWQ7XG4gICAgdGhpcy5fdXBsb2FkRXJyb3JNZXNzYWdlID0gdXBsb2FkRXJyb3I7XG4gICAgdGhpcy5vbkNoYW5nZS5uZXh0KHRoaXMudmFsdWUpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5hbGxvd2VkRXh0ZW5zaW9ucyA9IHRoaXMuYWxsb3dlZEV4dGVuc2lvbnMgfHwgW1xuICAgICAgJy5qcGcnLFxuICAgICAgJy5qcGVnJyxcbiAgICAgICcucG5nJyxcbiAgICAgICcucGRmJyxcbiAgICAgICcudHh0JyxcbiAgICAgICcueGxzJyxcbiAgICAgICcueGxzeCcsXG4gICAgXTtcbiAgICBsZXQgYWxsb3c6IEFsbG93ZWRGaWxlW10gPSBudWxsO1xuICAgIGlmICh0aGlzLmFsbG93ZWRFeHRlbnNpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGFsbG93ID0gdGhpcy5hbGxvd2VkRXh0ZW5zaW9ucy5tYXAoKHZhbCkgPT4ge1xuICAgICAgICByZXR1cm4geyBleHRlbnNpb246IHZhbCB9O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5jb25maWdGaWxlcyA9IHtcbiAgICAgIG1heFNpemU6IHRoaXMubWF4U2l6ZSB8fCA1ICogMTAyNCAqIDEwMjQsXG4gICAgICBhbGxvd2VkRXh0ZW5zaW9uczogYWxsb3csXG4gICAgfTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Nb2RlbENoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Nb2RlbFRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuaGFuZGxlZFZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy5oYW5kbGVkVmFsdWUgPSB2YWx1ZTtcbiAgICAgIHRoaXMub25Nb2RlbENoYW5nZSh2YWx1ZSk7XG4gICAgICB0aGlzLm9uTW9kZWxUb3VjaGVkKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVkVmFsdWU7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBvbkNoYW5nZVZhbHVlKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCB7IGxpc3RlbkZpbGVzIH0gPSB0aGlzO1xuICAgIHRoaXMuX2FsbG93ZWRFeHRlbnNpb25FcnJvck1lc3NhZ2UgPSBmYWxzZTtcbiAgICB0aGlzLl9zaG93TWF4U2l6ZUVycm9yTWVzc2FnZSA9IGZhbHNlO1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBldmVudC5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgIGNvbnN0IGZpbGU6IEZpbGUgPSBldmVudFtpbmRleF07XG4gICAgICBpZiAodGhpcy52YWxpZGF0ZUZpbGUoZmlsZSkpIHtcbiAgICAgICAgaWYgKGxpc3RlbkZpbGVzKSB7XG4gICAgICAgICAgdGhpcy5vbkhhbmRsZUZpbGVzUmVhZHkubmV4dChmaWxlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmZpbGVVcGxvYWQoZmlsZSwgdGhpcy5oYW5kbGVDYWxsYmFjay5iaW5kKHRoaXMpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgb25DbGljayhldmVudDogYW55KSB7XG4gICAgY29uc3QgeyBfaWQgfSA9IHRoaXM7XG4gICAgKDxIVE1MSW5wdXRFbGVtZW50PmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKF9pZCkpLnZhbHVlID0gbnVsbDtcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChfaWQpLmNsaWNrKCk7XG4gIH1cblxuICBvbkNsZWFyKGV2ZW50OiBhbnkpIHtcbiAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgdGhpcy5vbkNoYW5nZS5uZXh0KHRoaXMudmFsdWUpO1xuICB9XG59XG5cbmludGVyZmFjZSBBbGxvd2VkRmlsZSB7XG4gIGV4dGVuc2lvbjogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQ29uZmlnRmlsZXMge1xuICBtYXhTaXplOiBudW1iZXI7XG4gIGFsbG93ZWRFeHRlbnNpb25zOiBBbGxvd2VkRmlsZVtdO1xufVxuIl19
|
|
@@ -114,7 +114,7 @@ export class MonkeyUtils {
|
|
|
114
114
|
return `${formated}`;
|
|
115
115
|
}
|
|
116
116
|
static formatFileSize(size) {
|
|
117
|
-
let units = ['
|
|
117
|
+
let units = ['b', 'kb', 'mb', 'gb', 'tb', 'pb', 'eb', 'zb', 'yb'];
|
|
118
118
|
let l = 0;
|
|
119
119
|
while (size >= 1024 && ++l) {
|
|
120
120
|
size = size / 1024;
|
|
@@ -237,4 +237,4 @@ export class MonkeyUtils {
|
|
|
237
237
|
return false;
|
|
238
238
|
}
|
|
239
239
|
}
|
|
240
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUvc3JjL2xpYi9jb3JlL3V0aWxzL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV4RCxNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7QUFFaEQsTUFBTSxPQUFPLFdBQVc7SUFDZixNQUFNLENBQUMseUJBQXlCLENBQUMsRUFBTztRQUM3QyxPQUFPLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxLQUFLLFNBQVMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQVc7UUFDdkMsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNwQixPQUFPLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMzQyxDQUFDO0lBRU0sTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFZO1FBQ3hDLElBQUksSUFBSSxLQUFLLEtBQUs7WUFBRSxPQUFPLGdCQUFnQixDQUFDO1FBQzVDLE9BQU8sb0JBQW9CLENBQUM7SUFDOUIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxHQUFXLEVBQUUsUUFBa0I7UUFDbEUsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPLEdBQUcsQ0FBQztRQUNyQixJQUFJLFFBQVEsR0FBVyxFQUFFLENBQUM7UUFDMUIsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEVBQUU7WUFDbkIsUUFBUSxHQUFHLEdBQUc7aUJBQ1gsT0FBTyxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUM7aUJBQ2hDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxVQUFVLENB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QUUsT0FBTyxLQUFLLENBQUM7UUFDekIsSUFBSTtZQUNGLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQzNFLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQy9DLE9BQU8sU0FBUyxDQUFDLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUMxRDtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsV0FBVztTQUNaO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaG9uZU51bWJlclV0aWwgfSBmcm9tICdnb29nbGUtbGlicGhvbmVudW1iZXInO1xuXG5jb25zdCBwaG9uZVV0aWwgPSBQaG9uZU51bWJlclV0aWwuZ2V0SW5zdGFuY2UoKTtcblxuZXhwb3J0IGNsYXNzIE1vbmtleVV0aWxzIHtcbiAgcHVibGljIHN0YXRpYyBwZXJzaXN0TnVsbEVtcHR5VW5kZWZpbmVkKHRwOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHAgIT09IG51bGwgJiYgdHAgIT09IHVuZGVmaW5lZCAmJiB0cCAhPT0gJyc7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldERvY3VtZW50VHlwZShkb2M6IHN0cmluZykge1xuICAgIGlmICghZG9jKSByZXR1cm4gJyc7XG4gICAgcmV0dXJuIGRvYy5sZW5ndGggPD0gMTEgPyAnQ1BGJyA6ICdDTlBKJztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0RG9jdW1lbnRNYXNrKHR5cGU6IHN0cmluZykge1xuICAgIGlmICh0eXBlID09PSAnQ1BGJykgcmV0dXJuICcwMDAuMDAwLjAwMC0wMCc7XG4gICAgcmV0dXJuICcwMC4wMDAuMDAwLzAwMDAtMDAnO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmb3JtYXREb2N1bWVudFdpdGhNYXNrKGRvYzogc3RyaW5nLCB3aXRoVHlwZT86IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgIGlmICghZG9jKSByZXR1cm4gZG9jO1xuICAgIGxldCBmb3JtYXRlZDogc3RyaW5nID0gJyc7XG4gICAgaWYgKGRvYy5sZW5ndGggPT09IDE0KVxuICAgICAgZm9ybWF0ZWQgPSBkb2NcbiAgICAgICAgLnJlcGxhY2UoL14oXFxkezJ9KShcXGQpLywgJyQxLiQyJylcbiAgICAgICAgLnJlcGxhY2UoL14oXFxkezJ9KVxcLihcXGR7M30pKFxcZCkvLCAnJDEuJDIuJDMnKVxuICAgICAgICAucmVwbGFjZSgvXFwuKFxcZHszfSkoXFxkKS8sICcuJDEvJDInKVxuICAgICAgICAucmVwbGFjZSgvKFxcZHs0fSkoXFxkKS8sICckMS0kMicpO1xuICAgIGVsc2VcbiAgICAgIGZvcm1hdGVkID0gZG9jXG4gICAgICAgIC5yZXBsYWNlKC9eKFxcZHszfSkoXFxkKS8sICckMS4kMicpXG4gICAgICAgIC5yZXBsYWNlKC9eKFxcZHszfSlcXC4oXFxkezN9KShcXGQpLywgJyQxLiQyLiQzJylcbiAgICAgICAgLnJlcGxhY2UoL1xcLihcXGR7M30pKFxcZCkvLCAnLiQxLSQyJyk7XG5cbiAgICByZXR1cm4gYCR7d2l0aFR5cGUgPyBgJHt0aGlzLmdldERvY3VtZW50VHlwZShkb2MpfTpgIDogJyd9ICR7Zm9ybWF0ZWR9YDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3V0Rmlyc3RMYXN0TmFtZSh2YWx1ZTogc3RyaW5nLCB0cDogc3RyaW5nID0gJ2ZpcnN0Jykge1xuICAgIGNvbnN0IHNwbGl0ID0gdmFsdWU/LnRyaW0oKT8uc3BsaXQoJyAnKTtcblxuICAgIGlmICh0cCA9PT0gJ2ZpcnN0JykgcmV0dXJuIHNwbGl0WzBdO1xuICAgIHJldHVybiBzcGxpdD8uc3BsaWNlKDEsIHNwbGl0Lmxlbmd0aCk/LmpvaW4oJyAnKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNDUEZDTlBKVmFsaWQoZG9jdW1lbnQ6IGFueSk6IGJvb2xlYW4ge1xuICAgIGRvY3VtZW50ID0gZG9jdW1lbnQucmVwbGFjZSgvW15cXGRdL2csICcnKTtcbiAgICBpZiAoZG9jdW1lbnQubGVuZ3RoID09PSAxMSkge1xuICAgICAgbGV0IGJhc2UgPSBbMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDBdO1xuICAgICAgZm9yICh2YXIgaSA9IDAsIG4gPSAwOyBpIDwgOTsgbiArPSBkb2N1bWVudFtpXSAqIGJhc2VbaSsrXSk7XG4gICAgICBpZiAoZG9jdW1lbnRbOV0gIT0gKChuICU9IDExKSA8PSAxID8gMCA6IDExIC0gbikpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgYmFzZSA9IFsxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDBdO1xuICAgICAgZm9yICh2YXIgaSA9IDAsIG4gPSAwOyBpIDw9IDk7IG4gKz0gZG9jdW1lbnRbaV0gKiBiYXNlW2krK10pO1xuICAgICAgaWYgKGRvY3VtZW50WzEwXSAhPSAoKG4gJT0gMTEpIDw9IDEgPyAwIDogMTEgLSBuKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKGRvY3VtZW50Lmxlbmd0aCA9PT0gMTQgfHwgLzB7MTR9Ly50ZXN0KGRvY3VtZW50KSkge1xuICAgICAgbGV0IGJhc2UgPSBbNiwgNSwgNCwgMywgMiwgOSwgOCwgNywgNiwgNSwgNCwgMywgMl07XG4gICAgICBmb3IgKHZhciBpID0gMCwgbiA9IDA7IGkgPCAxMjsgbiArPSBkb2N1bWVudFtpXSAqIGJhc2VbKytpXSk7XG4gICAgICBpZiAoZG9jdW1lbnRbMTJdICE9ICgobiAlPSAxMSkgPCAyID8gMCA6IDExIC0gbikpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBmb3IgKHZhciBpID0gMCwgbiA9IDA7IGkgPD0gMTI7IG4gKz0gZG9jdW1lbnRbaV0gKiBiYXNlW2krK10pO1xuICAgICAgaWYgKGRvY3VtZW50WzEzXSAhPSAoKG4gJT0gMTEpIDwgMiA/IDAgOiAxMSAtIG4pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNWYWxpZFVybCh0eHQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgICAgIC9eKGh0dHA6XFwvXFwvd3d3XFwufGh0dHBzOlxcL1xcL3d3d1xcLnxodHRwOlxcL1xcL3xodHRwczpcXC9cXC8pK1thLXowLTldKyhbXFwtXFwuXXsxfVthLXowLTldKykqXFwuW2Etel17MiwxMH0oOlswLTldezEsNX0pPyhcXC8uKik/JC9nbVxuICAgICk7XG4gICAgcmV0dXJuIHJlZ2V4LnRlc3QodHh0KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNWYWxpZFppcENvZGUoemlwQ29kZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGAke3RoaXMuaGFuZGxlT25seU51bWJlcnMoemlwQ29kZSl9YC5sZW5ndGggPT09IDg7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldFJhbmRvbVN0cmluZyhsZW46IG51bWJlciwgY2hhclNldD86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY2hhclNldCA9IGNoYXJTZXQgfHwgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5JztcbiAgICBsZXQgcmFuZG9tU3RyaW5nOiBzdHJpbmcgPSBBcnJheS5hcHBseShudWxsLCBBcnJheShsZW4pKVxuICAgICAgLm1hcChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBjaGFyU2V0LmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyU2V0Lmxlbmd0aCkpO1xuICAgICAgfSlcbiAgICAgIC5qb2luKCcnKTtcbiAgICByZXR1cm4gcmFuZG9tU3RyaW5nO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBoYW5kbGVPbmx5TnVtYmVyc0N1cnJlbmN5KHZhbHVlOiBhbnkpIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKC9bXjAtOS5dL2cpLCAnJyk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGhhbmRsZU9ubHlOdW1iZXJzKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKC9bXjAtOV0vZyksICcnKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaGFuZGxlT25seUFscGhhTnVtZXJpYyh2YWx1ZTogYW55KSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuICcnO1xuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKG5ldyBSZWdFeHAoL1teMC05QS1aYS16XS8sICdnJyksICcnKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY2FwaXRhbGl6ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGAke3ZhbHVlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpfSR7dmFsdWUuc2xpY2UoMSl9YDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZm9ybWF0WmlwQ29kZSh6aXBDb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghemlwQ29kZSkgcmV0dXJuIHppcENvZGU7XG4gICAgY29uc3QgZm9ybWF0ZWQ6IHN0cmluZyA9IHppcENvZGVcbiAgICAgIC5yZXBsYWNlKC9eKFxcZHs1fSkoXFxkKS8sICckMS0kMicpXG4gICAgICAucmVwbGFjZSgvXFwuKFxcZHszfSkoXFxkKS8sICcuJDEtJDInKTtcblxuICAgIHJldHVybiBgJHtmb3JtYXRlZH1gO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmb3JtYXRGaWxlU2l6ZShzaXplOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGxldCB1bml0cyA9IFsnQicsICdLQicsICdNQicsICdHQicsICdUQicsICdQQicsICdFQicsICdaQicsICdZQiddO1xuICAgIGxldCBsID0gMDtcbiAgICB3aGlsZSAoc2l6ZSA+PSAxMDI0ICYmICsrbCkge1xuICAgICAgc2l6ZSA9IHNpemUgLyAxMDI0O1xuICAgIH1cbiAgICByZXR1cm4gc2l6ZS50b0ZpeGVkKHNpemUgPCAxMCAmJiBsID4gMCA/IDEgOiAwKSArICcgJyArIHVuaXRzW2xdO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzdWZmbHVlKGRhdGE6IGFueVtdKTogYW55W10ge1xuICAgIGZvciAobGV0IGkgPSBkYXRhLmxlbmd0aCAtIDE7IGkgPiAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IGogPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBpKTtcbiAgICAgIGNvbnN0IHRlbXAgPSBkYXRhW2ldO1xuICAgICAgZGF0YVtpXSA9IGRhdGFbal07XG4gICAgICBkYXRhW2pdID0gdGVtcDtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGhhbmRsZUJsb2JGaWxlKHRoZUJsb2I6IGFueSwgZmlsZU5hbWU6IHN0cmluZywgZmlsZVR5cGU6IHN0cmluZykge1xuICAgIGZ1bmN0aW9uIGJsb2JUb0ZpbGUodGhlQmxvYiwgZmlsZU5hbWUpIHtcbiAgICAgIGNvbnN0IGIgPSB0aGVCbG9iO1xuICAgICAgYi5sYXN0TW9kaWZpZWREYXRlID0gbmV3IERhdGUoKTtcbiAgICAgIGIubmFtZSA9IGZpbGVOYW1lO1xuICAgICAgcmV0dXJuIGI7XG4gICAgfVxuXG4gICAgbGV0IGZpbGU6IGFueTtcbiAgICBpZiAoIShuYXZpZ2F0b3IgYXMgYW55KS5tc1NhdmVCbG9iKSB7XG4gICAgICBmaWxlID0gbmV3IEZpbGUoW3RoZUJsb2JdLCBmaWxlTmFtZSwgeyB0eXBlOiBmaWxlVHlwZSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmlsZSA9IG5ldyBCbG9iKFt0aGVCbG9iXSwgeyB0eXBlOiBmaWxlVHlwZSB9KTtcbiAgICAgIGZpbGUgPSBibG9iVG9GaWxlKGZpbGUsIGZpbGVOYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIGZpbGU7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHRydW5jYXRlKHRleHQ6IHN0cmluZywgbWF4TGVuZ3RoOiBudW1iZXIgPSAyNSk6IHN0cmluZyB7XG4gICAgY29uc3QgbWlkQ2hhciA9ICcuLi4nO1xuICAgIGlmICghdGV4dCkgcmV0dXJuIG1pZENoYXI7XG4gICAgaWYgKHRleHQgJiYgdGV4dC5sZW5ndGggPD0gbWF4TGVuZ3RoKSByZXR1cm4gdGV4dDtcblxuICAgIGNvbnN0IGxlZnQgPSBNYXRoLmNlaWwobWF4TGVuZ3RoIC8gMik7XG4gICAgY29uc3QgcmlnaHQgPSB0ZXh0Lmxlbmd0aCAtIGxlZnQgKyAxO1xuXG4gICAgcmV0dXJuIGAke3RleHQuc3Vic3RyKDAsIGxlZnQpfSAke21pZENoYXJ9ICR7dGV4dC5zdWJzdHJpbmcocmlnaHQpfWA7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzTG9jYWxob3N0KCkge1xuICAgIGNvbnN0IHsgaHJlZiB9ID0gd2luZG93Py5sb2NhdGlvbjtcbiAgICBpZiAoIWhyZWYpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gaHJlZj8uc2VhcmNoKCdsb2NhbGhvc3QnKSA+PSAwO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXRQaG9uZVJlZ2lvbnMoKSB7XG4gICAgcmV0dXJuIHBob25lVXRpbFxuICAgICAgLmdldFN1cHBvcnRlZFJlZ2lvbnMoKVxuICAgICAgLm1hcCgoY29kZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHJldHVybiBwaG9uZVV0aWwuZ2V0Q291bnRyeUNvZGVGb3JSZWdpb24oY29kZSk7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKVxuICAgICAgLnNvcnQoKGEsIGIpID0+IChhIDwgYiA/IC0xIDogMSkpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXRQaG9uZUhhbmRsZShpbnRlcm5hdGlvbmFsTnVtYmVyID0gNTUpIHtcbiAgICBsZXQgbWF4TGVuZ3RoID0gMTQ7XG4gICAgbGV0IG1hc2sgPSAnWFggWFhYWFgtWFhYWCc7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvdW50cnkgPSBwaG9uZVV0aWwuZ2V0UmVnaW9uQ29kZUZvckNvdW50cnlDb2RlKGludGVybmF0aW9uYWxOdW1iZXIpO1xuICAgICAgY29uc3QgZXhhbXBsZU51bWJlciA9IHBob25lVXRpbC5nZXRFeGFtcGxlTnVtYmVyKGNvdW50cnkpWyd2YWx1ZXNfJ11bJzInXTtcblxuICAgICAgY29uc3QgbnVtYmVyID0gcGhvbmVVdGlsLnBhcnNlKGAke2V4YW1wbGVOdW1iZXJ9YCwgY291bnRyeSk7XG4gICAgICBjb25zdCBmb3JtYXRlZCA9IHBob25lVXRpbC5mb3JtYXQobnVtYmVyLCBudWxsKTtcbiAgICAgIGlmIChmb3JtYXRlZCkge1xuICAgICAgICBtYXhMZW5ndGggPSBgJHtmb3JtYXRlZH1gLmxlbmd0aDtcbiAgICAgICAgbWFzayA9IGAke2Zvcm1hdGVkfWAucmVwbGFjZShuZXcgUmVnRXhwKC9bXjAtOV0vZyksICcwJyk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy9ub3QgdG8gZG9cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIG1heExlbmd0aCxcbiAgICAgIG1hc2ssXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0UGhvbmVDb3VudHJ5Q29kZShwaG9uZTogc3RyaW5nKSB7XG4gICAgaWYgKCFwaG9uZSkgcmV0dXJuICcnO1xuICAgIGxldCBjYyA9IGAke3RoaXMuaGFuZGxlT25seU51bWJlcnMocGhvbmUpfWA/LnN1YnN0cmluZygwLCAyKTtcbiAgICBsZXQgY29kZTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbnVtYmVyID0gcGhvbmVVdGlsLnBhcnNlKHBob25lKTtcbiAgICAgIGNvZGUgPSBudW1iZXIuZ2V0Q291bnRyeUNvZGVPckRlZmF1bHQoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvL25vdCB0byBkb1xuICAgIH1cbiAgICByZXR1cm4gY29kZSB8fCBjYztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0UGhvbmVOdW1iZXJGb3JtYXRlZChwaG9uZTogc3RyaW5nLCBpbnRlcm5hdGlvbmFsTnVtYmVyID0gNTUpIHtcbiAgICBpZiAoIXBob25lKSByZXR1cm4gJyc7XG4gICAgcGhvbmUgPSBwaG9uZS5yZXBsYWNlKG5ldyBSZWdFeHAoYFxcXFwrJHtpbnRlcm5hdGlvbmFsTnVtYmVyfWAsJ2cnKSwnJyk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvdW50cnkgPSBwaG9uZVV0aWwuZ2V0UmVnaW9uQ29kZUZvckNvdW50cnlDb2RlKGludGVybmF0aW9uYWxOdW1iZXIpO1xuICAgICAgY29uc3QgbnVtYmVyID0gcGhvbmVVdGlsLnBhcnNlKHBob25lLCBjb3VudHJ5KTtcbiAgICAgIGlmIChwaG9uZVV0aWwuaXNQb3NzaWJsZU51bWJlcihudW1iZXIpKSB7XG4gICAgICAgIHJldHVybiBwaG9uZVV0aWwuZm9ybWF0KG51bWJlciwgbnVsbCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy9ub3QgdG8gZG9cbiAgICB9XG4gICAgcmV0dXJuIHBob25lO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpc1Bob25lTnVtYmVyVmFsaWQocGhvbmU6IHN0cmluZywgaW50ZXJuYXRpb25hbE51bWJlciA9IDU1KSB7XG4gICAgaWYgKCFwaG9uZSkgcmV0dXJuIGZhbHNlO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjb3VudHJ5ID0gcGhvbmVVdGlsLmdldFJlZ2lvbkNvZGVGb3JDb3VudHJ5Q29kZShpbnRlcm5hdGlvbmFsTnVtYmVyKTtcbiAgICAgIGNvbnN0IG51bWJlciA9IHBob25lVXRpbC5wYXJzZShwaG9uZSwgY291bnRyeSk7XG4gICAgICByZXR1cm4gcGhvbmVVdGlsLmlzVmFsaWROdW1iZXJGb3JSZWdpb24obnVtYmVyLCBjb3VudHJ5KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvL25vdCB0byBkb1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
|
|
240
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUvc3JjL2xpYi9jb3JlL3V0aWxzL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV4RCxNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7QUFFaEQsTUFBTSxPQUFPLFdBQVc7SUFDZixNQUFNLENBQUMseUJBQXlCLENBQUMsRUFBTztRQUM3QyxPQUFPLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxLQUFLLFNBQVMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQVc7UUFDdkMsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNwQixPQUFPLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMzQyxDQUFDO0lBRU0sTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFZO1FBQ3hDLElBQUksSUFBSSxLQUFLLEtBQUs7WUFBRSxPQUFPLGdCQUFnQixDQUFDO1FBQzVDLE9BQU8sb0JBQW9CLENBQUM7SUFDOUIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxHQUFXLEVBQUUsUUFBa0I7UUFDbEUsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPLEdBQUcsQ0FBQztRQUNyQixJQUFJLFFBQVEsR0FBVyxFQUFFLENBQUM7UUFDMUIsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEVBQUU7WUFDbkIsUUFBUSxHQUFHLEdBQUc7aUJBQ1gsT0FBTyxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUM7aUJBQ2hDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxVQUFVLENB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QUUsT0FBTyxLQUFLLENBQUM7UUFDekIsSUFBSTtZQUNGLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQzNFLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQy9DLE9BQU8sU0FBUyxDQUFDLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUMxRDtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsV0FBVztTQUNaO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaG9uZU51bWJlclV0aWwgfSBmcm9tICdnb29nbGUtbGlicGhvbmVudW1iZXInO1xuXG5jb25zdCBwaG9uZVV0aWwgPSBQaG9uZU51bWJlclV0aWwuZ2V0SW5zdGFuY2UoKTtcblxuZXhwb3J0IGNsYXNzIE1vbmtleVV0aWxzIHtcbiAgcHVibGljIHN0YXRpYyBwZXJzaXN0TnVsbEVtcHR5VW5kZWZpbmVkKHRwOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHAgIT09IG51bGwgJiYgdHAgIT09IHVuZGVmaW5lZCAmJiB0cCAhPT0gJyc7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldERvY3VtZW50VHlwZShkb2M6IHN0cmluZykge1xuICAgIGlmICghZG9jKSByZXR1cm4gJyc7XG4gICAgcmV0dXJuIGRvYy5sZW5ndGggPD0gMTEgPyAnQ1BGJyA6ICdDTlBKJztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0RG9jdW1lbnRNYXNrKHR5cGU6IHN0cmluZykge1xuICAgIGlmICh0eXBlID09PSAnQ1BGJykgcmV0dXJuICcwMDAuMDAwLjAwMC0wMCc7XG4gICAgcmV0dXJuICcwMC4wMDAuMDAwLzAwMDAtMDAnO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmb3JtYXREb2N1bWVudFdpdGhNYXNrKGRvYzogc3RyaW5nLCB3aXRoVHlwZT86IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgIGlmICghZG9jKSByZXR1cm4gZG9jO1xuICAgIGxldCBmb3JtYXRlZDogc3RyaW5nID0gJyc7XG4gICAgaWYgKGRvYy5sZW5ndGggPT09IDE0KVxuICAgICAgZm9ybWF0ZWQgPSBkb2NcbiAgICAgICAgLnJlcGxhY2UoL14oXFxkezJ9KShcXGQpLywgJyQxLiQyJylcbiAgICAgICAgLnJlcGxhY2UoL14oXFxkezJ9KVxcLihcXGR7M30pKFxcZCkvLCAnJDEuJDIuJDMnKVxuICAgICAgICAucmVwbGFjZSgvXFwuKFxcZHszfSkoXFxkKS8sICcuJDEvJDInKVxuICAgICAgICAucmVwbGFjZSgvKFxcZHs0fSkoXFxkKS8sICckMS0kMicpO1xuICAgIGVsc2VcbiAgICAgIGZvcm1hdGVkID0gZG9jXG4gICAgICAgIC5yZXBsYWNlKC9eKFxcZHszfSkoXFxkKS8sICckMS4kMicpXG4gICAgICAgIC5yZXBsYWNlKC9eKFxcZHszfSlcXC4oXFxkezN9KShcXGQpLywgJyQxLiQyLiQzJylcbiAgICAgICAgLnJlcGxhY2UoL1xcLihcXGR7M30pKFxcZCkvLCAnLiQxLSQyJyk7XG5cbiAgICByZXR1cm4gYCR7d2l0aFR5cGUgPyBgJHt0aGlzLmdldERvY3VtZW50VHlwZShkb2MpfTpgIDogJyd9ICR7Zm9ybWF0ZWR9YDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3V0Rmlyc3RMYXN0TmFtZSh2YWx1ZTogc3RyaW5nLCB0cDogc3RyaW5nID0gJ2ZpcnN0Jykge1xuICAgIGNvbnN0IHNwbGl0ID0gdmFsdWU/LnRyaW0oKT8uc3BsaXQoJyAnKTtcblxuICAgIGlmICh0cCA9PT0gJ2ZpcnN0JykgcmV0dXJuIHNwbGl0WzBdO1xuICAgIHJldHVybiBzcGxpdD8uc3BsaWNlKDEsIHNwbGl0Lmxlbmd0aCk/LmpvaW4oJyAnKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNDUEZDTlBKVmFsaWQoZG9jdW1lbnQ6IGFueSk6IGJvb2xlYW4ge1xuICAgIGRvY3VtZW50ID0gZG9jdW1lbnQucmVwbGFjZSgvW15cXGRdL2csICcnKTtcbiAgICBpZiAoZG9jdW1lbnQubGVuZ3RoID09PSAxMSkge1xuICAgICAgbGV0IGJhc2UgPSBbMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDBdO1xuICAgICAgZm9yICh2YXIgaSA9IDAsIG4gPSAwOyBpIDwgOTsgbiArPSBkb2N1bWVudFtpXSAqIGJhc2VbaSsrXSk7XG4gICAgICBpZiAoZG9jdW1lbnRbOV0gIT0gKChuICU9IDExKSA8PSAxID8gMCA6IDExIC0gbikpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgYmFzZSA9IFsxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDBdO1xuICAgICAgZm9yICh2YXIgaSA9IDAsIG4gPSAwOyBpIDw9IDk7IG4gKz0gZG9jdW1lbnRbaV0gKiBiYXNlW2krK10pO1xuICAgICAgaWYgKGRvY3VtZW50WzEwXSAhPSAoKG4gJT0gMTEpIDw9IDEgPyAwIDogMTEgLSBuKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKGRvY3VtZW50Lmxlbmd0aCA9PT0gMTQgfHwgLzB7MTR9Ly50ZXN0KGRvY3VtZW50KSkge1xuICAgICAgbGV0IGJhc2UgPSBbNiwgNSwgNCwgMywgMiwgOSwgOCwgNywgNiwgNSwgNCwgMywgMl07XG4gICAgICBmb3IgKHZhciBpID0gMCwgbiA9IDA7IGkgPCAxMjsgbiArPSBkb2N1bWVudFtpXSAqIGJhc2VbKytpXSk7XG4gICAgICBpZiAoZG9jdW1lbnRbMTJdICE9ICgobiAlPSAxMSkgPCAyID8gMCA6IDExIC0gbikpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBmb3IgKHZhciBpID0gMCwgbiA9IDA7IGkgPD0gMTI7IG4gKz0gZG9jdW1lbnRbaV0gKiBiYXNlW2krK10pO1xuICAgICAgaWYgKGRvY3VtZW50WzEzXSAhPSAoKG4gJT0gMTEpIDwgMiA/IDAgOiAxMSAtIG4pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNWYWxpZFVybCh0eHQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgICAgIC9eKGh0dHA6XFwvXFwvd3d3XFwufGh0dHBzOlxcL1xcL3d3d1xcLnxodHRwOlxcL1xcL3xodHRwczpcXC9cXC8pK1thLXowLTldKyhbXFwtXFwuXXsxfVthLXowLTldKykqXFwuW2Etel17MiwxMH0oOlswLTldezEsNX0pPyhcXC8uKik/JC9nbVxuICAgICk7XG4gICAgcmV0dXJuIHJlZ2V4LnRlc3QodHh0KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNWYWxpZFppcENvZGUoemlwQ29kZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGAke3RoaXMuaGFuZGxlT25seU51bWJlcnMoemlwQ29kZSl9YC5sZW5ndGggPT09IDg7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldFJhbmRvbVN0cmluZyhsZW46IG51bWJlciwgY2hhclNldD86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY2hhclNldCA9IGNoYXJTZXQgfHwgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5JztcbiAgICBsZXQgcmFuZG9tU3RyaW5nOiBzdHJpbmcgPSBBcnJheS5hcHBseShudWxsLCBBcnJheShsZW4pKVxuICAgICAgLm1hcChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBjaGFyU2V0LmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyU2V0Lmxlbmd0aCkpO1xuICAgICAgfSlcbiAgICAgIC5qb2luKCcnKTtcbiAgICByZXR1cm4gcmFuZG9tU3RyaW5nO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBoYW5kbGVPbmx5TnVtYmVyc0N1cnJlbmN5KHZhbHVlOiBhbnkpIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKC9bXjAtOS5dL2cpLCAnJyk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGhhbmRsZU9ubHlOdW1iZXJzKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKC9bXjAtOV0vZyksICcnKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaGFuZGxlT25seUFscGhhTnVtZXJpYyh2YWx1ZTogYW55KSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuICcnO1xuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKG5ldyBSZWdFeHAoL1teMC05QS1aYS16XS8sICdnJyksICcnKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY2FwaXRhbGl6ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGAke3ZhbHVlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpfSR7dmFsdWUuc2xpY2UoMSl9YDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZm9ybWF0WmlwQ29kZSh6aXBDb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghemlwQ29kZSkgcmV0dXJuIHppcENvZGU7XG4gICAgY29uc3QgZm9ybWF0ZWQ6IHN0cmluZyA9IHppcENvZGVcbiAgICAgIC5yZXBsYWNlKC9eKFxcZHs1fSkoXFxkKS8sICckMS0kMicpXG4gICAgICAucmVwbGFjZSgvXFwuKFxcZHszfSkoXFxkKS8sICcuJDEtJDInKTtcblxuICAgIHJldHVybiBgJHtmb3JtYXRlZH1gO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmb3JtYXRGaWxlU2l6ZShzaXplOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGxldCB1bml0cyA9IFsnYicsICdrYicsICdtYicsICdnYicsICd0YicsICdwYicsICdlYicsICd6YicsICd5YiddO1xuICAgIGxldCBsID0gMDtcbiAgICB3aGlsZSAoc2l6ZSA+PSAxMDI0ICYmICsrbCkge1xuICAgICAgc2l6ZSA9IHNpemUgLyAxMDI0O1xuICAgIH1cbiAgICByZXR1cm4gc2l6ZS50b0ZpeGVkKHNpemUgPCAxMCAmJiBsID4gMCA/IDEgOiAwKSArICcgJyArIHVuaXRzW2xdO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzdWZmbHVlKGRhdGE6IGFueVtdKTogYW55W10ge1xuICAgIGZvciAobGV0IGkgPSBkYXRhLmxlbmd0aCAtIDE7IGkgPiAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IGogPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBpKTtcbiAgICAgIGNvbnN0IHRlbXAgPSBkYXRhW2ldO1xuICAgICAgZGF0YVtpXSA9IGRhdGFbal07XG4gICAgICBkYXRhW2pdID0gdGVtcDtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGhhbmRsZUJsb2JGaWxlKHRoZUJsb2I6IGFueSwgZmlsZU5hbWU6IHN0cmluZywgZmlsZVR5cGU6IHN0cmluZykge1xuICAgIGZ1bmN0aW9uIGJsb2JUb0ZpbGUodGhlQmxvYiwgZmlsZU5hbWUpIHtcbiAgICAgIGNvbnN0IGIgPSB0aGVCbG9iO1xuICAgICAgYi5sYXN0TW9kaWZpZWREYXRlID0gbmV3IERhdGUoKTtcbiAgICAgIGIubmFtZSA9IGZpbGVOYW1lO1xuICAgICAgcmV0dXJuIGI7XG4gICAgfVxuXG4gICAgbGV0IGZpbGU6IGFueTtcbiAgICBpZiAoIShuYXZpZ2F0b3IgYXMgYW55KS5tc1NhdmVCbG9iKSB7XG4gICAgICBmaWxlID0gbmV3IEZpbGUoW3RoZUJsb2JdLCBmaWxlTmFtZSwgeyB0eXBlOiBmaWxlVHlwZSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmlsZSA9IG5ldyBCbG9iKFt0aGVCbG9iXSwgeyB0eXBlOiBmaWxlVHlwZSB9KTtcbiAgICAgIGZpbGUgPSBibG9iVG9GaWxlKGZpbGUsIGZpbGVOYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIGZpbGU7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHRydW5jYXRlKHRleHQ6IHN0cmluZywgbWF4TGVuZ3RoOiBudW1iZXIgPSAyNSk6IHN0cmluZyB7XG4gICAgY29uc3QgbWlkQ2hhciA9ICcuLi4nO1xuICAgIGlmICghdGV4dCkgcmV0dXJuIG1pZENoYXI7XG4gICAgaWYgKHRleHQgJiYgdGV4dC5sZW5ndGggPD0gbWF4TGVuZ3RoKSByZXR1cm4gdGV4dDtcblxuICAgIGNvbnN0IGxlZnQgPSBNYXRoLmNlaWwobWF4TGVuZ3RoIC8gMik7XG4gICAgY29uc3QgcmlnaHQgPSB0ZXh0Lmxlbmd0aCAtIGxlZnQgKyAxO1xuXG4gICAgcmV0dXJuIGAke3RleHQuc3Vic3RyKDAsIGxlZnQpfSAke21pZENoYXJ9ICR7dGV4dC5zdWJzdHJpbmcocmlnaHQpfWA7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzTG9jYWxob3N0KCkge1xuICAgIGNvbnN0IHsgaHJlZiB9ID0gd2luZG93Py5sb2NhdGlvbjtcbiAgICBpZiAoIWhyZWYpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gaHJlZj8uc2VhcmNoKCdsb2NhbGhvc3QnKSA+PSAwO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXRQaG9uZVJlZ2lvbnMoKSB7XG4gICAgcmV0dXJuIHBob25lVXRpbFxuICAgICAgLmdldFN1cHBvcnRlZFJlZ2lvbnMoKVxuICAgICAgLm1hcCgoY29kZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHJldHVybiBwaG9uZVV0aWwuZ2V0Q291bnRyeUNvZGVGb3JSZWdpb24oY29kZSk7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKVxuICAgICAgLnNvcnQoKGEsIGIpID0+IChhIDwgYiA/IC0xIDogMSkpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXRQaG9uZUhhbmRsZShpbnRlcm5hdGlvbmFsTnVtYmVyID0gNTUpIHtcbiAgICBsZXQgbWF4TGVuZ3RoID0gMTQ7XG4gICAgbGV0IG1hc2sgPSAnWFggWFhYWFgtWFhYWCc7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvdW50cnkgPSBwaG9uZVV0aWwuZ2V0UmVnaW9uQ29kZUZvckNvdW50cnlDb2RlKGludGVybmF0aW9uYWxOdW1iZXIpO1xuICAgICAgY29uc3QgZXhhbXBsZU51bWJlciA9IHBob25lVXRpbC5nZXRFeGFtcGxlTnVtYmVyKGNvdW50cnkpWyd2YWx1ZXNfJ11bJzInXTtcblxuICAgICAgY29uc3QgbnVtYmVyID0gcGhvbmVVdGlsLnBhcnNlKGAke2V4YW1wbGVOdW1iZXJ9YCwgY291bnRyeSk7XG4gICAgICBjb25zdCBmb3JtYXRlZCA9IHBob25lVXRpbC5mb3JtYXQobnVtYmVyLCBudWxsKTtcbiAgICAgIGlmIChmb3JtYXRlZCkge1xuICAgICAgICBtYXhMZW5ndGggPSBgJHtmb3JtYXRlZH1gLmxlbmd0aDtcbiAgICAgICAgbWFzayA9IGAke2Zvcm1hdGVkfWAucmVwbGFjZShuZXcgUmVnRXhwKC9bXjAtOV0vZyksICcwJyk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy9ub3QgdG8gZG9cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIG1heExlbmd0aCxcbiAgICAgIG1hc2ssXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0UGhvbmVDb3VudHJ5Q29kZShwaG9uZTogc3RyaW5nKSB7XG4gICAgaWYgKCFwaG9uZSkgcmV0dXJuICcnO1xuICAgIGxldCBjYyA9IGAke3RoaXMuaGFuZGxlT25seU51bWJlcnMocGhvbmUpfWA/LnN1YnN0cmluZygwLCAyKTtcbiAgICBsZXQgY29kZTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbnVtYmVyID0gcGhvbmVVdGlsLnBhcnNlKHBob25lKTtcbiAgICAgIGNvZGUgPSBudW1iZXIuZ2V0Q291bnRyeUNvZGVPckRlZmF1bHQoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvL25vdCB0byBkb1xuICAgIH1cbiAgICByZXR1cm4gY29kZSB8fCBjYztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0UGhvbmVOdW1iZXJGb3JtYXRlZChwaG9uZTogc3RyaW5nLCBpbnRlcm5hdGlvbmFsTnVtYmVyID0gNTUpIHtcbiAgICBpZiAoIXBob25lKSByZXR1cm4gJyc7XG4gICAgcGhvbmUgPSBwaG9uZS5yZXBsYWNlKG5ldyBSZWdFeHAoYFxcXFwrJHtpbnRlcm5hdGlvbmFsTnVtYmVyfWAsJ2cnKSwnJyk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvdW50cnkgPSBwaG9uZVV0aWwuZ2V0UmVnaW9uQ29kZUZvckNvdW50cnlDb2RlKGludGVybmF0aW9uYWxOdW1iZXIpO1xuICAgICAgY29uc3QgbnVtYmVyID0gcGhvbmVVdGlsLnBhcnNlKHBob25lLCBjb3VudHJ5KTtcbiAgICAgIGlmIChwaG9uZVV0aWwuaXNQb3NzaWJsZU51bWJlcihudW1iZXIpKSB7XG4gICAgICAgIHJldHVybiBwaG9uZVV0aWwuZm9ybWF0KG51bWJlciwgbnVsbCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy9ub3QgdG8gZG9cbiAgICB9XG4gICAgcmV0dXJuIHBob25lO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpc1Bob25lTnVtYmVyVmFsaWQocGhvbmU6IHN0cmluZywgaW50ZXJuYXRpb25hbE51bWJlciA9IDU1KSB7XG4gICAgaWYgKCFwaG9uZSkgcmV0dXJuIGZhbHNlO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjb3VudHJ5ID0gcGhvbmVVdGlsLmdldFJlZ2lvbkNvZGVGb3JDb3VudHJ5Q29kZShpbnRlcm5hdGlvbmFsTnVtYmVyKTtcbiAgICAgIGNvbnN0IG51bWJlciA9IHBob25lVXRpbC5wYXJzZShwaG9uZSwgY291bnRyeSk7XG4gICAgICByZXR1cm4gcGhvbmVVdGlsLmlzVmFsaWROdW1iZXJGb3JSZWdpb24obnVtYmVyLCBjb3VudHJ5KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvL25vdCB0byBkb1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -249,7 +249,7 @@ class MonkeyUtils {
|
|
|
249
249
|
return `${formated}`;
|
|
250
250
|
}
|
|
251
251
|
static formatFileSize(size) {
|
|
252
|
-
let units = ['
|
|
252
|
+
let units = ['b', 'kb', 'mb', 'gb', 'tb', 'pb', 'eb', 'zb', 'yb'];
|
|
253
253
|
let l = 0;
|
|
254
254
|
while (size >= 1024 && ++l) {
|
|
255
255
|
size = size / 1024;
|
|
@@ -6781,7 +6781,8 @@ class MonkeyFileUploadComponent {
|
|
|
6781
6781
|
this._id = `mecx-file-upload-${MonkeyUtils.getRandomString(10)}`;
|
|
6782
6782
|
this._disabled = false;
|
|
6783
6783
|
this._progress = null;
|
|
6784
|
-
this.
|
|
6784
|
+
this._showMaxSizeErrorMessage = false;
|
|
6785
|
+
this._maxSizeErrorMessage = '';
|
|
6785
6786
|
this._allowedExtensionErrorMessage = false;
|
|
6786
6787
|
this._uploadErrorMessage = '';
|
|
6787
6788
|
}
|
|
@@ -6801,7 +6802,9 @@ class MonkeyFileUploadComponent {
|
|
|
6801
6802
|
}
|
|
6802
6803
|
if (configFiles.maxSize) {
|
|
6803
6804
|
if (size > configFiles.maxSize) {
|
|
6804
|
-
this.
|
|
6805
|
+
this._showMaxSizeErrorMessage = true;
|
|
6806
|
+
const formated = MonkeyUtils.formatFileSize(configFiles.maxSize);
|
|
6807
|
+
this._maxSizeErrorMessage = `${this.maxSizeErrorMessage}${formated}`;
|
|
6805
6808
|
return false;
|
|
6806
6809
|
}
|
|
6807
6810
|
}
|
|
@@ -6859,7 +6862,7 @@ class MonkeyFileUploadComponent {
|
|
|
6859
6862
|
onChangeValue(event) {
|
|
6860
6863
|
const { listenFiles } = this;
|
|
6861
6864
|
this._allowedExtensionErrorMessage = false;
|
|
6862
|
-
this.
|
|
6865
|
+
this._showMaxSizeErrorMessage = false;
|
|
6863
6866
|
for (let index = 0; index < event.length; index++) {
|
|
6864
6867
|
const file = event[index];
|
|
6865
6868
|
if (this.validateFile(file)) {
|
|
@@ -6901,7 +6904,7 @@ MonkeyFileUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
|
|
|
6901
6904
|
{{ helperMessage }}
|
|
6902
6905
|
</helper>
|
|
6903
6906
|
</mecx-form-field-header>
|
|
6904
|
-
<mecx-form-field-body [class.error]="errorMessage?.trim() || _uploadErrorMessage?.trim() ||
|
|
6907
|
+
<mecx-form-field-body [class.error]="errorMessage?.trim() || _uploadErrorMessage?.trim() || _showMaxSizeErrorMessage">
|
|
6905
6908
|
<input
|
|
6906
6909
|
#fileInput
|
|
6907
6910
|
hidden
|
|
@@ -6940,7 +6943,7 @@ MonkeyFileUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
|
|
|
6940
6943
|
<error>
|
|
6941
6944
|
{{ errorMessage }}
|
|
6942
6945
|
{{ _uploadErrorMessage }}
|
|
6943
|
-
{{
|
|
6946
|
+
{{ _showMaxSizeErrorMessage ? _maxSizeErrorMessage : null }}
|
|
6944
6947
|
{{
|
|
6945
6948
|
_allowedExtensionErrorMessage ? allowedExtensionErrorMessage : null
|
|
6946
6949
|
}}
|
|
@@ -6962,7 +6965,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
6962
6965
|
{{ helperMessage }}
|
|
6963
6966
|
</helper>
|
|
6964
6967
|
</mecx-form-field-header>
|
|
6965
|
-
<mecx-form-field-body [class.error]="errorMessage?.trim() || _uploadErrorMessage?.trim() ||
|
|
6968
|
+
<mecx-form-field-body [class.error]="errorMessage?.trim() || _uploadErrorMessage?.trim() || _showMaxSizeErrorMessage">
|
|
6966
6969
|
<input
|
|
6967
6970
|
#fileInput
|
|
6968
6971
|
hidden
|
|
@@ -7001,7 +7004,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
7001
7004
|
<error>
|
|
7002
7005
|
{{ errorMessage }}
|
|
7003
7006
|
{{ _uploadErrorMessage }}
|
|
7004
|
-
{{
|
|
7007
|
+
{{ _showMaxSizeErrorMessage ? _maxSizeErrorMessage : null }}
|
|
7005
7008
|
{{
|
|
7006
7009
|
_allowedExtensionErrorMessage ? allowedExtensionErrorMessage : null
|
|
7007
7010
|
}}
|