@bravobit/bb-foundation 0.42.0 → 0.42.1
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/auth/lib/auth.interceptor.d.ts +3 -6
- package/dialog/lib/dialog-confirm/dialog-confirm.component.d.ts +2 -5
- package/dialog/lib/dialog-container/dialog-container.component.d.ts +4 -6
- package/dialog/lib/dialog-overlay/dialog-overlay.component.d.ts +5 -7
- package/esm2022/auth/lib/auth.interceptor.mjs +36 -42
- package/esm2022/auth/lib/auth.module.mjs +4 -4
- package/esm2022/auth/lib/auth.service.mjs +18 -7
- package/esm2022/auth/lib/auth.session.mjs +26 -22
- package/esm2022/auth/lib/directives/authenticated.directive.mjs +16 -12
- package/esm2022/auth/lib/helpers/jwt.helper.mjs +29 -31
- package/esm2022/auth/lib/providers/email.provider.mjs +4 -1
- package/esm2022/auth/lib/providers/verify.provider.mjs +4 -1
- package/esm2022/collections/lib/collection.mjs +17 -7
- package/esm2022/collections/lib/collections.module.mjs +6 -6
- package/esm2022/collections/lib/components/collections-actions/collections-actions.component.mjs +7 -9
- package/esm2022/collections/lib/components/collections-grid/collections-grid.component.mjs +11 -11
- package/esm2022/collections/lib/components/collections-pager/collections-pager.component.mjs +10 -10
- package/esm2022/collections/lib/components/collections-table/collections-table.component.mjs +16 -16
- package/esm2022/collections/lib/components/collections-table-label/collections-table-label.component.mjs +9 -11
- package/esm2022/collections/lib/components/collections-table-sorting/collections-table-sorting.component.mjs +12 -9
- package/esm2022/collections/lib/components/collections-viewer/collections-viewer.component.mjs +10 -7
- package/esm2022/collections/lib/directives/collections-data-row.directive.mjs +6 -3
- package/esm2022/collections/lib/directives/collections-data.directive.mjs +6 -3
- package/esm2022/collections/lib/directives/collections-empty.directive.mjs +6 -3
- package/esm2022/collections/lib/directives/collections-error.directive.mjs +6 -3
- package/esm2022/collections/lib/directives/collections-initial.directive.mjs +4 -3
- package/esm2022/collections/lib/directives/collections-item.directive.mjs +6 -3
- package/esm2022/collections/lib/providers/api-collection.provider.mjs +6 -4
- package/esm2022/collections/lib/providers/local-collection.provider.mjs +2 -2
- package/esm2022/combobox/combobox/combobox-container.directive.mjs +12 -7
- package/esm2022/combobox/combobox/combobox.component.mjs +23 -20
- package/esm2022/combobox/combobox-label.directive.mjs +3 -3
- package/esm2022/combobox/combobox-option.directive.mjs +3 -3
- package/esm2022/combobox/combobox-panel/combobox-panel.component.mjs +10 -6
- package/esm2022/dashboard/lib/dashboard/dashboard.component.mjs +13 -13
- package/esm2022/dashboard/lib/dashboard-header/dashboard-header.component.mjs +5 -7
- package/esm2022/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +8 -10
- package/esm2022/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +5 -7
- package/esm2022/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +12 -13
- package/esm2022/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +13 -12
- package/esm2022/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +7 -5
- package/esm2022/dashboard/lib/dashboard.module.mjs +5 -5
- package/esm2022/dialog/lib/dialog-actions/dialog-actions.component.mjs +3 -3
- package/esm2022/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +21 -20
- package/esm2022/dialog/lib/dialog-container/dialog-container.component.mjs +19 -24
- package/esm2022/dialog/lib/dialog-header/dialog-header.component.mjs +5 -7
- package/esm2022/dialog/lib/dialog-link/dialog-link.component.mjs +3 -3
- package/esm2022/dialog/lib/dialog-modal/dialog-modal.component.mjs +9 -6
- package/esm2022/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +19 -26
- package/esm2022/dialog/lib/dialog.insertion.mjs +4 -3
- package/esm2022/dialog/lib/dialog.interfaces.mjs +4 -1
- package/esm2022/dialog/lib/dialog.module.mjs +6 -6
- package/esm2022/dialog/lib/dialog.ref.mjs +4 -6
- package/esm2022/dialog/lib/dialog.service.mjs +5 -3
- package/esm2022/dialog/lib/directives/confirm.directive.mjs +12 -14
- package/esm2022/elements/lib/avatar/avatar.component.mjs +75 -77
- package/esm2022/elements/lib/button/button.component.mjs +12 -10
- package/esm2022/elements/lib/checkbox/checkbox.component.mjs +21 -17
- package/esm2022/elements/lib/checkbox-group/checkbox-group.component.mjs +8 -10
- package/esm2022/elements/lib/date-picker/date-picker.component.mjs +82 -76
- package/esm2022/elements/lib/directives/addon.directive.mjs +5 -5
- package/esm2022/elements/lib/directives/extra-error-controls.directive.mjs +7 -9
- package/esm2022/elements/lib/directives/form-submit.directive.mjs +6 -3
- package/esm2022/elements/lib/directives/form-submitter.directive.mjs +5 -7
- package/esm2022/elements/lib/directives/image-upload.directive.mjs +14 -11
- package/esm2022/elements/lib/directives/input.directive.mjs +6 -4
- package/esm2022/elements/lib/elements.module.mjs +6 -6
- package/esm2022/elements/lib/file-picker/file-picker.component.mjs +52 -51
- package/esm2022/elements/lib/form-control/form-control.component.mjs +14 -14
- package/esm2022/elements/lib/form-error/form-error.component.mjs +16 -8
- package/esm2022/elements/lib/form-group/form-group.component.mjs +5 -7
- package/esm2022/elements/lib/icon/icon.component.mjs +14 -13
- package/esm2022/elements/lib/image-picker/image-picker.component.mjs +20 -17
- package/esm2022/elements/lib/multi-file-control/multi-file-control.component.mjs +28 -24
- package/esm2022/elements/lib/pipes/date.pipe.mjs +6 -8
- package/esm2022/elements/lib/pipes/file-image.pipe.mjs +6 -3
- package/esm2022/elements/lib/pipes/file-size.pipe.mjs +13 -15
- package/esm2022/elements/lib/pipes/relative-time.pipe.mjs +37 -35
- package/esm2022/elements/lib/radio-button/radio-button.component.mjs +8 -7
- package/esm2022/elements/lib/radio-group/radio-group.component.mjs +21 -20
- package/esm2022/elements/lib/spinner/spinner.component.mjs +7 -9
- package/esm2022/http/lib/classes/http.config.mjs +19 -15
- package/esm2022/http/lib/http.interfaces.mjs +1 -1
- package/esm2022/http/lib/http.module.mjs +5 -4
- package/esm2022/http/lib/interceptors/base-url.interceptor.mjs +12 -20
- package/esm2022/http/lib/interceptors/error.interceptor.mjs +9 -14
- package/esm2022/lib/core/services/exif.service.mjs +102 -100
- package/esm2022/lib/core/services/file-loader.service.mjs +15 -17
- package/esm2022/lib/core/services/files.service.mjs +7 -3
- package/esm2022/lib/core/services/image-converter.service.mjs +33 -30
- package/esm2022/lib/core/services/languages.service.mjs +25 -24
- package/esm2022/lib/core/services/network.service.mjs +8 -5
- package/esm2022/lib/core/services/patch.service.mjs +9 -6
- package/esm2022/localize/lib/dictionary/dictionary.class.mjs +7 -1
- package/esm2022/localize/lib/dictionary/dictionary.context.mjs +2 -4
- package/esm2022/localize/lib/dictionary/dictionary.data.mjs +2 -1
- package/esm2022/localize/lib/handlers/missing.handler.mjs +2 -4
- package/esm2022/localize/lib/localize.module.mjs +5 -5
- package/esm2022/localize/lib/localize.pipe.mjs +4 -3
- package/esm2022/localize/lib/localize.service.mjs +30 -21
- package/esm2022/localize/lib/transforms/interpolate.transform.mjs +5 -1
- package/esm2022/localize/lib/transforms/plural.transform.mjs +6 -4
- package/esm2022/localize/lib/transforms/reference.transform.mjs +3 -1
- package/esm2022/localize/lib/views/localize-string/localize-string.component.mjs +14 -11
- package/esm2022/localize/lib/views/localize-template.directive.mjs +6 -5
- package/esm2022/masking/lib/directives/currency-mask.directive.mjs +11 -6
- package/esm2022/masking/lib/directives/date-mask.directive.mjs +11 -6
- package/esm2022/masking/lib/directives/input-mask.directive.mjs +21 -14
- package/esm2022/masking/lib/masking.module.mjs +5 -5
- package/esm2022/masking/lib/masking.service.mjs +4 -3
- package/esm2022/notifications/lib/notifications-item/notifications-item.component.mjs +50 -36
- package/esm2022/notifications/lib/notifications-list/notifications-list.component.mjs +8 -7
- package/esm2022/notifications/lib/notifications.interfaces.mjs +10 -1
- package/esm2022/notifications/lib/notifications.module.mjs +4 -4
- package/esm2022/notifications/lib/notifications.service.mjs +24 -10
- package/esm2022/permissions/lib/directives/permission.directive.mjs +20 -14
- package/esm2022/permissions/lib/handlers/local.handler.mjs +3 -1
- package/esm2022/permissions/lib/permissions.interface.mjs +4 -1
- package/esm2022/permissions/lib/permissions.module.mjs +4 -4
- package/esm2022/permissions/lib/permissions.service.mjs +8 -7
- package/esm2022/recaptcha/lib/recaptcha/recaptcha.component.mjs +34 -27
- package/esm2022/recaptcha/lib/recaptcha-loader.service.mjs +15 -15
- package/esm2022/recaptcha/lib/recaptcha.module.mjs +4 -4
- package/esm2022/select/lib/select/select.component.mjs +52 -47
- package/esm2022/select/lib/select-label.directive.mjs +4 -3
- package/esm2022/select/lib/select-multi-label.directive.mjs +4 -3
- package/esm2022/select/lib/select-option-group.directive.mjs +4 -3
- package/esm2022/select/lib/select-option.directive.mjs +4 -3
- package/esm2022/select/lib/select.module.mjs +5 -5
- package/esm2022/storage/lib/storage.service.mjs +25 -21
- package/esm2022/storage/lib/strategies/cookie-storage.strategy.mjs +66 -64
- package/esm2022/storage/lib/strategies/memory-storage.strategy.mjs +16 -18
- package/esm2022/storage/lib/strategies/polyfill-storage.strategy.mjs +31 -30
- package/esm2022/table/lib/components/table/table.component.mjs +30 -20
- package/esm2022/table/lib/components/table-cell/table-cell.component.mjs +3 -3
- package/esm2022/table/lib/components/table-header-cell/table-header-cell.component.mjs +15 -11
- package/esm2022/table/lib/components/table-pager/table-pager.component.mjs +18 -16
- package/esm2022/table/lib/data/datasource.data.mjs +4 -6
- package/esm2022/table/lib/data/generic.data.mjs +38 -36
- package/esm2022/table/lib/table.module.mjs +6 -6
- package/esm2022/tooltip/lib/tooltip-container/tooltip-container.component.mjs +5 -7
- package/esm2022/tooltip/lib/tooltip.directive.mjs +15 -15
- package/esm2022/tooltip/lib/tooltip.module.mjs +4 -4
- package/esm2022/utils/lib/directives/autosize.directive.mjs +9 -7
- package/esm2022/utils/lib/directives/focus-trap.directive.mjs +24 -22
- package/esm2022/utils/lib/directives/focus.directive.mjs +8 -5
- package/esm2022/utils/lib/directives/template.directive.mjs +7 -3
- package/esm2022/utils/lib/utils.module.mjs +5 -5
- package/fesm2022/bravobit-bb-foundation-auth.mjs +127 -110
- package/fesm2022/bravobit-bb-foundation-auth.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-collections.mjs +123 -93
- package/fesm2022/bravobit-bb-foundation-collections.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-combobox.mjs +46 -34
- package/fesm2022/bravobit-bb-foundation-combobox.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-dashboard.mjs +60 -64
- package/fesm2022/bravobit-bb-foundation-dashboard.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-dialog.mjs +97 -103
- package/fesm2022/bravobit-bb-foundation-dialog.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-elements.mjs +468 -440
- package/fesm2022/bravobit-bb-foundation-elements.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-http.mjs +40 -46
- package/fesm2022/bravobit-bb-foundation-http.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-localize.mjs +74 -49
- package/fesm2022/bravobit-bb-foundation-localize.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-masking.mjs +47 -29
- package/fesm2022/bravobit-bb-foundation-masking.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-notifications.mjs +91 -53
- package/fesm2022/bravobit-bb-foundation-notifications.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-permissions.mjs +34 -22
- package/fesm2022/bravobit-bb-foundation-permissions.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-recaptcha.mjs +50 -43
- package/fesm2022/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-select.mjs +67 -58
- package/fesm2022/bravobit-bb-foundation-select.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-storage.mjs +134 -129
- package/fesm2022/bravobit-bb-foundation-storage.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-table.mjs +107 -91
- package/fesm2022/bravobit-bb-foundation-table.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-tooltip.mjs +21 -23
- package/fesm2022/bravobit-bb-foundation-tooltip.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation-utils.mjs +48 -37
- package/fesm2022/bravobit-bb-foundation-utils.mjs.map +1 -1
- package/fesm2022/bravobit-bb-foundation.mjs +192 -178
- package/fesm2022/bravobit-bb-foundation.mjs.map +1 -1
- package/http/lib/http.interfaces.d.ts +2 -1
- package/http/lib/interceptors/base-url.interceptor.d.ts +2 -4
- package/http/lib/interceptors/error.interceptor.d.ts +1 -3
- package/package.json +13 -13
|
@@ -3,106 +3,11 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
import * as i1 from "@angular/cdk/platform";
|
|
4
4
|
import * as i2 from "./file-loader.service";
|
|
5
5
|
export class Exif {
|
|
6
|
+
_platform;
|
|
7
|
+
_fileLoader;
|
|
6
8
|
constructor(_platform, _fileLoader) {
|
|
7
9
|
this._platform = _platform;
|
|
8
10
|
this._fileLoader = _fileLoader;
|
|
9
|
-
this.transformImage = (image, type, orientation, quality = 100) => {
|
|
10
|
-
// Create the canvas and context.
|
|
11
|
-
const canvas = document.createElement('canvas');
|
|
12
|
-
const context = canvas.getContext('2d');
|
|
13
|
-
// Validate the context exists.
|
|
14
|
-
if (!context) {
|
|
15
|
-
return null;
|
|
16
|
-
}
|
|
17
|
-
// Set the canvas size based on the image.
|
|
18
|
-
const { width, height } = image;
|
|
19
|
-
canvas.width = width;
|
|
20
|
-
canvas.height = height;
|
|
21
|
-
// Validate the orientation is correct
|
|
22
|
-
// else flip the canvas sizes.
|
|
23
|
-
if (4 < orientation && orientation < 9) {
|
|
24
|
-
canvas.width = height;
|
|
25
|
-
canvas.height = width;
|
|
26
|
-
}
|
|
27
|
-
// Transform the context based on the orientation.
|
|
28
|
-
switch (orientation) {
|
|
29
|
-
case 2:
|
|
30
|
-
context.transform(-1, 0, 0, 1, width, 0);
|
|
31
|
-
break;
|
|
32
|
-
case 3:
|
|
33
|
-
context.transform(-1, 0, 0, -1, width, height);
|
|
34
|
-
break;
|
|
35
|
-
case 4:
|
|
36
|
-
context.transform(1, 0, 0, -1, 0, height);
|
|
37
|
-
break;
|
|
38
|
-
case 5:
|
|
39
|
-
context.transform(0, 1, 1, 0, 0, 0);
|
|
40
|
-
break;
|
|
41
|
-
case 6:
|
|
42
|
-
context.transform(0, 1, -1, 0, height, 0);
|
|
43
|
-
break;
|
|
44
|
-
case 7:
|
|
45
|
-
context.transform(0, -1, -1, 0, height, width);
|
|
46
|
-
break;
|
|
47
|
-
case 8:
|
|
48
|
-
context.transform(0, -1, 1, 0, 0, width);
|
|
49
|
-
break;
|
|
50
|
-
default:
|
|
51
|
-
break;
|
|
52
|
-
}
|
|
53
|
-
// Draw the image on the context and return the data URL.
|
|
54
|
-
context.drawImage(image, 0, 0, width, height);
|
|
55
|
-
return canvas.toDataURL(type, quality / 100);
|
|
56
|
-
};
|
|
57
|
-
this.getSupportedCanvasType = (fileType) => {
|
|
58
|
-
switch (fileType) {
|
|
59
|
-
case 'image/jpeg':
|
|
60
|
-
case 'image/jpg':
|
|
61
|
-
return 'image/jpeg';
|
|
62
|
-
case 'image/x-windows-bmp':
|
|
63
|
-
case 'image/bmp':
|
|
64
|
-
return 'image/bmp';
|
|
65
|
-
default:
|
|
66
|
-
return 'image/png';
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
this.getOrientation = (buffer) => {
|
|
70
|
-
// Create a new data view.
|
|
71
|
-
const view = new DataView(buffer);
|
|
72
|
-
if (view.getUint16(0, false) !== 0xFFD8) {
|
|
73
|
-
return -2;
|
|
74
|
-
}
|
|
75
|
-
const length = view.byteLength;
|
|
76
|
-
let offset = 2;
|
|
77
|
-
while (offset < length) {
|
|
78
|
-
if (view.getUint16(offset + 2, false) <= 8) {
|
|
79
|
-
return -1;
|
|
80
|
-
}
|
|
81
|
-
const marker = view.getUint16(offset, false);
|
|
82
|
-
offset += 2;
|
|
83
|
-
if (marker === 0xFFE1) {
|
|
84
|
-
if (view.getUint32(offset += 2, false) !== 0x45786966) {
|
|
85
|
-
return -1;
|
|
86
|
-
}
|
|
87
|
-
const little = view.getUint16(offset += 6, false) === 0x4949;
|
|
88
|
-
offset += view.getUint32(offset + 4, little);
|
|
89
|
-
const tags = view.getUint16(offset, little);
|
|
90
|
-
offset += 2;
|
|
91
|
-
for (let index = 0; index < tags; index++) {
|
|
92
|
-
if (view.getUint16(offset + index * 12, little) === 0x0112) {
|
|
93
|
-
return view.getUint16(offset + index * 12 + 8, little);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
else if ((marker & 0xFF00) !== 0xFF00) {
|
|
98
|
-
break;
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
offset += view.getUint16(offset, false);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
return -1;
|
|
105
|
-
};
|
|
106
11
|
}
|
|
107
12
|
async strip(file, quality = 100) {
|
|
108
13
|
// Validate we are on a browser.
|
|
@@ -151,8 +56,105 @@ export class Exif {
|
|
|
151
56
|
image.onload = () => resolve(image);
|
|
152
57
|
});
|
|
153
58
|
}
|
|
154
|
-
|
|
155
|
-
|
|
59
|
+
transformImage = (image, type, orientation, quality = 100) => {
|
|
60
|
+
// Create the canvas and context.
|
|
61
|
+
const canvas = document.createElement('canvas');
|
|
62
|
+
const context = canvas.getContext('2d');
|
|
63
|
+
// Validate the context exists.
|
|
64
|
+
if (!context) {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
// Set the canvas size based on the image.
|
|
68
|
+
const { width, height } = image;
|
|
69
|
+
canvas.width = width;
|
|
70
|
+
canvas.height = height;
|
|
71
|
+
// Validate the orientation is correct
|
|
72
|
+
// else flip the canvas sizes.
|
|
73
|
+
if (4 < orientation && orientation < 9) {
|
|
74
|
+
canvas.width = height;
|
|
75
|
+
canvas.height = width;
|
|
76
|
+
}
|
|
77
|
+
// Transform the context based on the orientation.
|
|
78
|
+
switch (orientation) {
|
|
79
|
+
case 2:
|
|
80
|
+
context.transform(-1, 0, 0, 1, width, 0);
|
|
81
|
+
break;
|
|
82
|
+
case 3:
|
|
83
|
+
context.transform(-1, 0, 0, -1, width, height);
|
|
84
|
+
break;
|
|
85
|
+
case 4:
|
|
86
|
+
context.transform(1, 0, 0, -1, 0, height);
|
|
87
|
+
break;
|
|
88
|
+
case 5:
|
|
89
|
+
context.transform(0, 1, 1, 0, 0, 0);
|
|
90
|
+
break;
|
|
91
|
+
case 6:
|
|
92
|
+
context.transform(0, 1, -1, 0, height, 0);
|
|
93
|
+
break;
|
|
94
|
+
case 7:
|
|
95
|
+
context.transform(0, -1, -1, 0, height, width);
|
|
96
|
+
break;
|
|
97
|
+
case 8:
|
|
98
|
+
context.transform(0, -1, 1, 0, 0, width);
|
|
99
|
+
break;
|
|
100
|
+
default:
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
// Draw the image on the context and return the data URL.
|
|
104
|
+
context.drawImage(image, 0, 0, width, height);
|
|
105
|
+
return canvas.toDataURL(type, quality / 100);
|
|
106
|
+
};
|
|
107
|
+
getSupportedCanvasType = (fileType) => {
|
|
108
|
+
switch (fileType) {
|
|
109
|
+
case 'image/jpeg':
|
|
110
|
+
case 'image/jpg':
|
|
111
|
+
return 'image/jpeg';
|
|
112
|
+
case 'image/x-windows-bmp':
|
|
113
|
+
case 'image/bmp':
|
|
114
|
+
return 'image/bmp';
|
|
115
|
+
default:
|
|
116
|
+
return 'image/png';
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
getOrientation = (buffer) => {
|
|
120
|
+
// Create a new data view.
|
|
121
|
+
const view = new DataView(buffer);
|
|
122
|
+
if (view.getUint16(0, false) !== 0xFFD8) {
|
|
123
|
+
return -2;
|
|
124
|
+
}
|
|
125
|
+
const length = view.byteLength;
|
|
126
|
+
let offset = 2;
|
|
127
|
+
while (offset < length) {
|
|
128
|
+
if (view.getUint16(offset + 2, false) <= 8) {
|
|
129
|
+
return -1;
|
|
130
|
+
}
|
|
131
|
+
const marker = view.getUint16(offset, false);
|
|
132
|
+
offset += 2;
|
|
133
|
+
if (marker === 0xFFE1) {
|
|
134
|
+
if (view.getUint32(offset += 2, false) !== 0x45786966) {
|
|
135
|
+
return -1;
|
|
136
|
+
}
|
|
137
|
+
const little = view.getUint16(offset += 6, false) === 0x4949;
|
|
138
|
+
offset += view.getUint32(offset + 4, little);
|
|
139
|
+
const tags = view.getUint16(offset, little);
|
|
140
|
+
offset += 2;
|
|
141
|
+
for (let index = 0; index < tags; index++) {
|
|
142
|
+
if (view.getUint16(offset + index * 12, little) === 0x0112) {
|
|
143
|
+
return view.getUint16(offset + index * 12 + 8, little);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
else if ((marker & 0xFF00) !== 0xFF00) {
|
|
148
|
+
break;
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
offset += view.getUint16(offset, false);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return -1;
|
|
155
|
+
};
|
|
156
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: Exif, deps: [{ token: i1.Platform }, { token: i2.FileLoader }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
157
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: Exif, providedIn: 'root' });
|
|
156
158
|
}
|
|
157
159
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: Exif, decorators: [{
|
|
158
160
|
type: Injectable,
|
|
@@ -160,4 +162,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
160
162
|
providedIn: 'root'
|
|
161
163
|
}]
|
|
162
164
|
}], ctorParameters: () => [{ type: i1.Platform }, { type: i2.FileLoader }] });
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhpZi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9zcmMvbGliL2NvcmUvc2VydmljZXMvZXhpZi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7QUFLekMsTUFBTSxPQUFPLElBQUk7SUFFYixZQUFvQixTQUFtQixFQUNuQixXQUF1QjtRQUR2QixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBMkRuQyxtQkFBYyxHQUFHLENBQUMsS0FBdUIsRUFBRSxJQUFZLEVBQUUsV0FBbUIsRUFBRSxVQUFrQixHQUFHLEVBQUUsRUFBRTtZQUMzRyxpQ0FBaUM7WUFDakMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXhDLCtCQUErQjtZQUMvQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ1gsT0FBTyxJQUFJLENBQUM7WUFDaEIsQ0FBQztZQUVELDBDQUEwQztZQUMxQyxNQUFNLEVBQUMsS0FBSyxFQUFFLE1BQU0sRUFBQyxHQUFHLEtBQUssQ0FBQztZQUM5QixNQUFNLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNyQixNQUFNLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUV2QixzQ0FBc0M7WUFDdEMsOEJBQThCO1lBQzlCLElBQUksQ0FBQyxHQUFHLFdBQVcsSUFBSSxXQUFXLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO2dCQUN0QixNQUFNLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUMxQixDQUFDO1lBRUQs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QUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFFckYsaUNBQWlDO1lBQ2pDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDWixPQUFPLElBQUksQ0FBQztZQUNoQixDQUFDO1lBRUQscUNBQXFDO1lBQ3JDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ0wsK0JBQStCO1lBQy9CLGdDQUFnQztZQUNoQyxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO0lBQ0wsQ0FBQztJQUVPLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxPQUFlO1FBQzVDLE9BQU8sSUFBSSxPQUFPLENBQW1CLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JELE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7WUFDMUIsS0FBSyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUM7WUFDcEIsS0FBSyxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUNuRCxLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ25ELEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0E1RFEsSUFBSTtrSEFBSixJQUFJLGNBRkQsTUFBTTs7MkZBRVQsSUFBSTtrQkFIaEIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0ZpbGVMb2FkZXJ9IGZyb20gJy4vZmlsZS1sb2FkZXIuc2VydmljZSc7XG5pbXBvcnQge1BsYXRmb3JtfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBFeGlmIHtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX3BsYXRmb3JtOiBQbGF0Zm9ybSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9maWxlTG9hZGVyOiBGaWxlTG9hZGVyKSB7XG4gICAgfVxuXG4gICAgYXN5bmMgc3RyaXAoZmlsZTogRmlsZSwgcXVhbGl0eTogbnVtYmVyID0gMTAwKSB7XG4gICAgICAgIC8vIFZhbGlkYXRlIHdlIGFyZSBvbiBhIGJyb3dzZXIuXG4gICAgICAgIGlmICghdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyKSB7XG4gICAgICAgICAgICByZXR1cm4gZmlsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFZhbGlkYXRlIHRoZSBmaWxlIGV4aXN0cyBhbmQgaXNcbiAgICAgICAgLy8gYW4gaW5zdGFuY2Ugb2YgYSBGaWxlIG9iamVjdC5cbiAgICAgICAgaWYgKCFmaWxlIHx8ICEoZmlsZSBpbnN0YW5jZW9mIEZpbGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmlsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9ubHkganBlZyBpbWFnZXMgbmVlZCBjb3JyZWN0aW9uLlxuICAgICAgICBpZiAoIVsnaW1hZ2UvanBlZyddLmluY2x1ZGVzKGZpbGUudHlwZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmaWxlO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIFJlYWQgdGhlIGZpbGUgYXMgYW4gYXJyYXkgYnVmZmVyIGFuZCBkYXRhIHVybC5cbiAgICAgICAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0gYXdhaXQgdGhpcy5fZmlsZUxvYWRlci5hc0FycmF5QnVmZmVyKGZpbGUpO1xuICAgICAgICAgICAgY29uc3QgZGF0YVVybCA9IGF3YWl0IHRoaXMuX2ZpbGVMb2FkZXIuYXNEYXRhVXJsKGZpbGUpO1xuXG4gICAgICAgICAgICAvLyBDcmVhdGUgYW4gaW1hZ2UgZWxlbWVudC5cbiAgICAgICAgICAgIGNvbnN0IGltYWdlRWxlbWVudCA9IGF3YWl0IHRoaXMuY3JlYXRlSW1hZ2VFbGVtZW50KGRhdGFVcmwpO1xuXG4gICAgICAgICAgICAvLyBHZXQgdGhlIG9yaWVudGF0aW9uIGJ5IHVzaW5nIHRoZSBidWZmZXIuXG4gICAgICAgICAgICBjb25zdCBvcmllbnRhdGlvbiA9IHRoaXMuZ2V0T3JpZW50YXRpb24oYXJyYXlCdWZmZXIpO1xuXG4gICAgICAgICAgICAvLyBUcmFuc2Zvcm0gdGhlIGltYWdlIHRvIHJlbW92ZSB0aGUgb3JpZW50YXRpb24uXG4gICAgICAgICAgICBjb25zdCBjYW52YXNUeXBlID0gdGhpcy5nZXRTdXBwb3J0ZWRDYW52YXNUeXBlKGZpbGUudHlwZSk7XG4gICAgICAgICAgICBjb25zdCBpbWFnZVVybCA9IHRoaXMudHJhbnNmb3JtSW1hZ2UoaW1hZ2VFbGVtZW50LCBjYW52YXNUeXBlLCBvcmllbnRhdGlvbiwgcXVhbGl0eSk7XG5cbiAgICAgICAgICAgIC8vIFZhbGlkYXRlIHRoZSBpbWFnZSB1cmwgZXhpc3RzLlxuICAgICAgICAgICAgaWYgKCFpbWFnZVVybCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmaWxlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBUcmFuc2Zvcm0gdGhlIGltYWdlIHVybCB0byBhIGZpbGUuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZmlsZUxvYWRlci5mcm9tRGF0YVVybChpbWFnZVVybCwgZmlsZS5uYW1lKTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAvLyBXaGVuIHNvbWV0aGluZyBnb2VzIHdyb25nIHdlXG4gICAgICAgICAgICAvLyBqdXN0IHJldHVybiB0aGUgZGVmYXVsdCBmaWxlLlxuICAgICAgICAgICAgcmV0dXJuIGZpbGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGNyZWF0ZUltYWdlRWxlbWVudChkYXRhVXJsOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPEhUTUxJbWFnZUVsZW1lbnQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XG4gICAgICAgICAgICBpbWFnZS5zcmMgPSBkYXRhVXJsO1xuICAgICAgICAgICAgaW1hZ2Uub25lcnJvciA9ICgpID0+IHJlamVjdCgnRXJyb3IgaW1hZ2UgY3JlYXRlJyk7XG4gICAgICAgICAgICBpbWFnZS5vbmFib3J0ID0gKCkgPT4gcmVqZWN0KCdBYm9ydCBpbWFnZSBjcmVhdGUnKTtcbiAgICAgICAgICAgIGltYWdlLm9ubG9hZCA9ICgpID0+IHJlc29sdmUoaW1hZ2UpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRyYW5zZm9ybUltYWdlID0gKGltYWdlOiBIVE1MSW1hZ2VFbGVtZW50LCB0eXBlOiBzdHJpbmcsIG9yaWVudGF0aW9uOiBudW1iZXIsIHF1YWxpdHk6IG51bWJlciA9IDEwMCkgPT4ge1xuICAgICAgICAvLyBDcmVhdGUgdGhlIGNhbnZhcyBhbmQgY29udGV4dC5cbiAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgICAgIGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcblxuICAgICAgICAvLyBWYWxpZGF0ZSB0aGUgY29udGV4dCBleGlzdHMuXG4gICAgICAgIGlmICghY29udGV4dCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgdGhlIGNhbnZhcyBzaXplIGJhc2VkIG9uIHRoZSBpbWFnZS5cbiAgICAgICAgY29uc3Qge3dpZHRoLCBoZWlnaHR9ID0gaW1hZ2U7XG4gICAgICAgIGNhbnZhcy53aWR0aCA9IHdpZHRoO1xuICAgICAgICBjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0O1xuXG4gICAgICAgIC8vIFZhbGlkYXRlIHRoZSBvcmllbnRhdGlvbiBpcyBjb3JyZWN0XG4gICAgICAgIC8vIGVsc2UgZmxpcCB0aGUgY2FudmFzIHNpemVzLlxuICAgICAgICBpZiAoNCA8IG9yaWVudGF0aW9uICYmIG9yaWVudGF0aW9uIDwgOSkge1xuICAgICAgICAgICAgY2FudmFzLndpZHRoID0gaGVpZ2h0O1xuICAgICAgICAgICAgY2FudmFzLmhlaWdodCA9IHdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVHJhbnNmb3JtIHRoZSBjb250ZXh0IGJhc2VkIG9uIHRoZSBvcmllbnRhdGlvbi5cbiAgICAgICAgc3dpdGNoIChvcmllbnRhdGlvbikge1xuICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgIGNvbnRleHQudHJhbnNmb3JtKC0xLCAwLCAwLCAxLCB3aWR0aCwgMCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgY29udGV4dC50cmFuc2Zvcm0oLTEsIDAsIDAsIC0xLCB3aWR0aCwgaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICBjb250ZXh0LnRyYW5zZm9ybSgxLCAwLCAwLCAtMSwgMCwgaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICBjb250ZXh0LnRyYW5zZm9ybSgwLCAxLCAxLCAwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICBjb250ZXh0LnRyYW5zZm9ybSgwLCAxLCAtMSwgMCwgaGVpZ2h0LCAwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgICAgICBjb250ZXh0LnRyYW5zZm9ybSgwLCAtMSwgLTEsIDAsIGhlaWdodCwgd2lkdGgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSA4OlxuICAgICAgICAgICAgICAgIGNvbnRleHQudHJhbnNmb3JtKDAsIC0xLCAxLCAwLCAwLCB3aWR0aCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRHJhdyB0aGUgaW1hZ2Ugb24gdGhlIGNvbnRleHQgYW5kIHJldHVybiB0aGUgZGF0YSBVUkwuXG4gICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCAwLCAwLCB3aWR0aCwgaGVpZ2h0KTtcbiAgICAgICAgcmV0dXJuIGNhbnZhcy50b0RhdGFVUkwodHlwZSwgcXVhbGl0eSAvIDEwMCk7XG4gICAgfTtcblxuICAgIHByaXZhdGUgZ2V0U3VwcG9ydGVkQ2FudmFzVHlwZSA9IChmaWxlVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHN3aXRjaCAoZmlsZVR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2ltYWdlL2pwZWcnOlxuICAgICAgICAgICAgY2FzZSAnaW1hZ2UvanBnJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2ltYWdlL2pwZWcnO1xuICAgICAgICAgICAgY2FzZSAnaW1hZ2UveC13aW5kb3dzLWJtcCc6XG4gICAgICAgICAgICBjYXNlICdpbWFnZS9ibXAnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnaW1hZ2UvYm1wJztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdpbWFnZS9wbmcnO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHByaXZhdGUgZ2V0T3JpZW50YXRpb24gPSAoYnVmZmVyOiBBcnJheUJ1ZmZlcikgPT4ge1xuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgZGF0YSB2aWV3LlxuICAgICAgICBjb25zdCB2aWV3ID0gbmV3IERhdGFWaWV3KGJ1ZmZlcik7XG5cbiAgICAgICAgaWYgKHZpZXcuZ2V0VWludDE2KDAsIGZhbHNlKSAhPT0gMHhGRkQ4KSB7XG4gICAgICAgICAgICByZXR1cm4gLTI7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsZW5ndGggPSB2aWV3LmJ5dGVMZW5ndGg7XG4gICAgICAgIGxldCBvZmZzZXQgPSAyO1xuXG4gICAgICAgIHdoaWxlIChvZmZzZXQgPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIGlmICh2aWV3LmdldFVpbnQxNihvZmZzZXQgKyAyLCBmYWxzZSkgPD0gOCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgbWFya2VyID0gdmlldy5nZXRVaW50MTYob2Zmc2V0LCBmYWxzZSk7XG4gICAgICAgICAgICBvZmZzZXQgKz0gMjtcblxuICAgICAgICAgICAgaWYgKG1hcmtlciA9PT0gMHhGRkUxKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZpZXcuZ2V0VWludDMyKG9mZnNldCArPSAyLCBmYWxzZSkgIT09IDB4NDU3ODY5NjYpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IGxpdHRsZSA9IHZpZXcuZ2V0VWludDE2KG9mZnNldCArPSA2LCBmYWxzZSkgPT09IDB4NDk0OTtcbiAgICAgICAgICAgICAgICBvZmZzZXQgKz0gdmlldy5nZXRVaW50MzIob2Zmc2V0ICsgNCwgbGl0dGxlKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHRhZ3MgPSB2aWV3LmdldFVpbnQxNihvZmZzZXQsIGxpdHRsZSk7XG4gICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDI7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGFnczsgaW5kZXgrKykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodmlldy5nZXRVaW50MTYob2Zmc2V0ICsgaW5kZXggKiAxMiwgbGl0dGxlKSA9PT0gMHgwMTEyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmlldy5nZXRVaW50MTYob2Zmc2V0ICsgaW5kZXggKiAxMiArIDgsIGxpdHRsZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKChtYXJrZXIgJiAweEZGMDApICE9PSAweEZGMDApIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0ICs9IHZpZXcuZ2V0VWludDE2KG9mZnNldCwgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIC0xO1xuICAgIH07XG5cbn1cbiJdfQ==
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhpZi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9zcmMvbGliL2NvcmUvc2VydmljZXMvZXhpZi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7QUFLekMsTUFBTSxPQUFPLElBQUk7SUFFTztJQUNBO0lBRHBCLFlBQW9CLFNBQW1CLEVBQ25CLFdBQXVCO1FBRHZCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7SUFDM0MsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBVSxFQUFFLFVBQWtCLEdBQUc7UUFDekMsZ0NBQWdDO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzVCLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxrQ0FBa0M7UUFDbEMsZ0NBQWdDO1FBQ2hDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksWUFBWSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ25DLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxvQ0FBb0M7UUFDcEMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxJQUFJLENBQUM7WUFDRCxpREFBaUQ7WUFDakQsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvRCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXZELDJC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LENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxNQUFNLENBQUM7Z0JBQzdELE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBRTdDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUM1QyxNQUFNLElBQUksQ0FBQyxDQUFDO2dCQUVaLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztvQkFDeEMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxLQUFLLEdBQUcsRUFBRSxFQUFFLE1BQU0sQ0FBQyxLQUFLLE1BQU0sRUFBRSxDQUFDO3dCQUN6RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO29CQUMzRCxDQUFDO2dCQUNMLENBQUM7WUFDTCxDQUFDO2lCQUFNLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssTUFBTSxFQUFFLENBQUM7Z0JBQ3RDLE1BQU07WUFDVixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osTUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzVDLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNkLENBQUMsQ0FBQzt1R0E1S08sSUFBSTsyR0FBSixJQUFJLGNBRkQsTUFBTTs7MkZBRVQsSUFBSTtrQkFIaEIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0ZpbGVMb2FkZXJ9IGZyb20gJy4vZmlsZS1sb2FkZXIuc2VydmljZSc7XG5pbXBvcnQge1BsYXRmb3JtfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBFeGlmIHtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX3BsYXRmb3JtOiBQbGF0Zm9ybSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9maWxlTG9hZGVyOiBGaWxlTG9hZGVyKSB7XG4gICAgfVxuXG4gICAgYXN5bmMgc3RyaXAoZmlsZTogRmlsZSwgcXVhbGl0eTogbnVtYmVyID0gMTAwKSB7XG4gICAgICAgIC8vIFZhbGlkYXRlIHdlIGFyZSBvbiBhIGJyb3dzZXIuXG4gICAgICAgIGlmICghdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyKSB7XG4gICAgICAgICAgICByZXR1cm4gZmlsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFZhbGlkYXRlIHRoZSBmaWxlIGV4aXN0cyBhbmQgaXNcbiAgICAgICAgLy8gYW4gaW5zdGFuY2Ugb2YgYSBGaWxlIG9iamVjdC5cbiAgICAgICAgaWYgKCFmaWxlIHx8ICEoZmlsZSBpbnN0YW5jZW9mIEZpbGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmlsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9ubHkganBlZyBpbWFnZXMgbmVlZCBjb3JyZWN0aW9uLlxuICAgICAgICBpZiAoIVsnaW1hZ2UvanBlZyddLmluY2x1ZGVzKGZpbGUudHlwZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmaWxlO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIFJlYWQgdGhlIGZpbGUgYXMgYW4gYXJyYXkgYnVmZmVyIGFuZCBkYXRhIHVybC5cbiAgICAgICAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0gYXdhaXQgdGhpcy5fZmlsZUxvYWRlci5hc0FycmF5QnVmZmVyKGZpbGUpO1xuICAgICAgICAgICAgY29uc3QgZGF0YVVybCA9IGF3YWl0IHRoaXMuX2ZpbGVMb2FkZXIuYXNEYXRhVXJsKGZpbGUpO1xuXG4gICAgICAgICAgICAvLyBDcmVhdGUgYW4gaW1hZ2UgZWxlbWVudC5cbiAgICAgICAgICAgIGNvbnN0IGltYWdlRWxlbWVudCA9IGF3YWl0IHRoaXMuY3JlYXRlSW1hZ2VFbGVtZW50KGRhdGFVcmwpO1xuXG4gICAgICAgICAgICAvLyBHZXQgdGhlIG9yaWVudGF0aW9uIGJ5IHVzaW5nIHRoZSBidWZmZXIuXG4gICAgICAgICAgICBjb25zdCBvcmllbnRhdGlvbiA9IHRoaXMuZ2V0T3JpZW50YXRpb24oYXJyYXlCdWZmZXIpO1xuXG4gICAgICAgICAgICAvLyBUcmFuc2Zvcm0gdGhlIGltYWdlIHRvIHJlbW92ZSB0aGUgb3JpZW50YXRpb24uXG4gICAgICAgICAgICBjb25zdCBjYW52YXNUeXBlID0gdGhpcy5nZXRTdXBwb3J0ZWRDYW52YXNUeXBlKGZpbGUudHlwZSk7XG4gICAgICAgICAgICBjb25zdCBpbWFnZVVybCA9IHRoaXMudHJhbnNmb3JtSW1hZ2UoaW1hZ2VFbGVtZW50LCBjYW52YXNUeXBlLCBvcmllbnRhdGlvbiwgcXVhbGl0eSk7XG5cbiAgICAgICAgICAgIC8vIFZhbGlkYXRlIHRoZSBpbWFnZSB1cmwgZXhpc3RzLlxuICAgICAgICAgICAgaWYgKCFpbWFnZVVybCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmaWxlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBUcmFuc2Zvcm0gdGhlIGltYWdlIHVybCB0byBhIGZpbGUuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZmlsZUxvYWRlci5mcm9tRGF0YVVybChpbWFnZVVybCwgZmlsZS5uYW1lKTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAvLyBXaGVuIHNvbWV0aGluZyBnb2VzIHdyb25nIHdlXG4gICAgICAgICAgICAvLyBqdXN0IHJldHVybiB0aGUgZGVmYXVsdCBmaWxlLlxuICAgICAgICAgICAgcmV0dXJuIGZpbGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGNyZWF0ZUltYWdlRWxlbWVudChkYXRhVXJsOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPEhUTUxJbWFnZUVsZW1lbnQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XG4gICAgICAgICAgICBpbWFnZS5zcmMgPSBkYXRhVXJsO1xuICAgICAgICAgICAgaW1hZ2Uub25lcnJvciA9ICgpID0+IHJlamVjdCgnRXJyb3IgaW1hZ2UgY3JlYXRlJyk7XG4gICAgICAgICAgICBpbWFnZS5vbmFib3J0ID0gKCkgPT4gcmVqZWN0KCdBYm9ydCBpbWFnZSBjcmVhdGUnKTtcbiAgICAgICAgICAgIGltYWdlLm9ubG9hZCA9ICgpID0+IHJlc29sdmUoaW1hZ2UpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRyYW5zZm9ybUltYWdlID0gKGltYWdlOiBIVE1MSW1hZ2VFbGVtZW50LCB0eXBlOiBzdHJpbmcsIG9yaWVudGF0aW9uOiBudW1iZXIsIHF1YWxpdHk6IG51bWJlciA9IDEwMCkgPT4ge1xuICAgICAgICAvLyBDcmVhdGUgdGhlIGNhbnZhcyBhbmQgY29udGV4dC5cbiAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgICAgIGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcblxuICAgICAgICAvLyBWYWxpZGF0ZSB0aGUgY29udGV4dCBleGlzdHMuXG4gICAgICAgIGlmICghY29udGV4dCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgdGhlIGNhbnZhcyBzaXplIGJhc2VkIG9uIHRoZSBpbWFnZS5cbiAgICAgICAgY29uc3Qge3dpZHRoLCBoZWlnaHR9ID0gaW1hZ2U7XG4gICAgICAgIGNhbnZhcy53aWR0aCA9IHdpZHRoO1xuICAgICAgICBjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0O1xuXG4gICAgICAgIC8vIFZhbGlkYXRlIHRoZSBvcmllbnRhdGlvbiBpcyBjb3JyZWN0XG4gICAgICAgIC8vIGVsc2UgZmxpcCB0aGUgY2FudmFzIHNpemVzLlxuICAgICAgICBpZiAoNCA8IG9yaWVudGF0aW9uICYmIG9yaWVudGF0aW9uIDwgOSkge1xuICAgICAgICAgICAgY2FudmFzLndpZHRoID0gaGVpZ2h0O1xuICAgICAgICAgICAgY2FudmFzLmhlaWdodCA9IHdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVHJhbnNmb3JtIHRoZSBjb250ZXh0IGJhc2VkIG9uIHRoZSBvcmllbnRhdGlvbi5cbiAgICAgICAgc3dpdGNoIChvcmllbnRhdGlvbikge1xuICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgIGNvbnRleHQudHJhbnNmb3JtKC0xLCAwLCAwLCAxLCB3aWR0aCwgMCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgY29udGV4dC50cmFuc2Zvcm0oLTEsIDAsIDAsIC0xLCB3aWR0aCwgaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICBjb250ZXh0LnRyYW5zZm9ybSgxLCAwLCAwLCAtMSwgMCwgaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICBjb250ZXh0LnRyYW5zZm9ybSgwLCAxLCAxLCAwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICBjb250ZXh0LnRyYW5zZm9ybSgwLCAxLCAtMSwgMCwgaGVpZ2h0LCAwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgICAgICBjb250ZXh0LnRyYW5zZm9ybSgwLCAtMSwgLTEsIDAsIGhlaWdodCwgd2lkdGgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSA4OlxuICAgICAgICAgICAgICAgIGNvbnRleHQudHJhbnNmb3JtKDAsIC0xLCAxLCAwLCAwLCB3aWR0aCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRHJhdyB0aGUgaW1hZ2Ugb24gdGhlIGNvbnRleHQgYW5kIHJldHVybiB0aGUgZGF0YSBVUkwuXG4gICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCAwLCAwLCB3aWR0aCwgaGVpZ2h0KTtcbiAgICAgICAgcmV0dXJuIGNhbnZhcy50b0RhdGFVUkwodHlwZSwgcXVhbGl0eSAvIDEwMCk7XG4gICAgfTtcblxuICAgIHByaXZhdGUgZ2V0U3VwcG9ydGVkQ2FudmFzVHlwZSA9IChmaWxlVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHN3aXRjaCAoZmlsZVR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2ltYWdlL2pwZWcnOlxuICAgICAgICAgICAgY2FzZSAnaW1hZ2UvanBnJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2ltYWdlL2pwZWcnO1xuICAgICAgICAgICAgY2FzZSAnaW1hZ2UveC13aW5kb3dzLWJtcCc6XG4gICAgICAgICAgICBjYXNlICdpbWFnZS9ibXAnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnaW1hZ2UvYm1wJztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdpbWFnZS9wbmcnO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHByaXZhdGUgZ2V0T3JpZW50YXRpb24gPSAoYnVmZmVyOiBBcnJheUJ1ZmZlcikgPT4ge1xuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgZGF0YSB2aWV3LlxuICAgICAgICBjb25zdCB2aWV3ID0gbmV3IERhdGFWaWV3KGJ1ZmZlcik7XG5cbiAgICAgICAgaWYgKHZpZXcuZ2V0VWludDE2KDAsIGZhbHNlKSAhPT0gMHhGRkQ4KSB7XG4gICAgICAgICAgICByZXR1cm4gLTI7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsZW5ndGggPSB2aWV3LmJ5dGVMZW5ndGg7XG4gICAgICAgIGxldCBvZmZzZXQgPSAyO1xuXG4gICAgICAgIHdoaWxlIChvZmZzZXQgPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIGlmICh2aWV3LmdldFVpbnQxNihvZmZzZXQgKyAyLCBmYWxzZSkgPD0gOCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgbWFya2VyID0gdmlldy5nZXRVaW50MTYob2Zmc2V0LCBmYWxzZSk7XG4gICAgICAgICAgICBvZmZzZXQgKz0gMjtcblxuICAgICAgICAgICAgaWYgKG1hcmtlciA9PT0gMHhGRkUxKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZpZXcuZ2V0VWludDMyKG9mZnNldCArPSAyLCBmYWxzZSkgIT09IDB4NDU3ODY5NjYpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IGxpdHRsZSA9IHZpZXcuZ2V0VWludDE2KG9mZnNldCArPSA2LCBmYWxzZSkgPT09IDB4NDk0OTtcbiAgICAgICAgICAgICAgICBvZmZzZXQgKz0gdmlldy5nZXRVaW50MzIob2Zmc2V0ICsgNCwgbGl0dGxlKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHRhZ3MgPSB2aWV3LmdldFVpbnQxNihvZmZzZXQsIGxpdHRsZSk7XG4gICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDI7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGFnczsgaW5kZXgrKykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodmlldy5nZXRVaW50MTYob2Zmc2V0ICsgaW5kZXggKiAxMiwgbGl0dGxlKSA9PT0gMHgwMTEyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmlldy5nZXRVaW50MTYob2Zmc2V0ICsgaW5kZXggKiAxMiArIDgsIGxpdHRsZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKChtYXJrZXIgJiAweEZGMDApICE9PSAweEZGMDApIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0ICs9IHZpZXcuZ2V0VWludDE2KG9mZnNldCwgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIC0xO1xuICAgIH07XG5cbn1cbiJdfQ==
|
|
@@ -1,20 +1,6 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class FileLoader {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.isFile = (input) => {
|
|
6
|
-
return 'File' in window && input instanceof File;
|
|
7
|
-
};
|
|
8
|
-
this.isBlob = (input) => {
|
|
9
|
-
return 'Blob' in window && input instanceof Blob;
|
|
10
|
-
};
|
|
11
|
-
this.blobToFile = (blob, fileName) => {
|
|
12
|
-
const anyBlob = blob;
|
|
13
|
-
anyBlob.lastModifiedDate = new Date();
|
|
14
|
-
anyBlob.name = fileName;
|
|
15
|
-
return anyBlob;
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
4
|
fromDataUrl(value, name = 'file') {
|
|
19
5
|
if (!value) {
|
|
20
6
|
return null;
|
|
@@ -68,6 +54,12 @@ export class FileLoader {
|
|
|
68
54
|
}
|
|
69
55
|
});
|
|
70
56
|
}
|
|
57
|
+
isFile = (input) => {
|
|
58
|
+
return 'File' in window && input instanceof File;
|
|
59
|
+
};
|
|
60
|
+
isBlob = (input) => {
|
|
61
|
+
return 'Blob' in window && input instanceof Blob;
|
|
62
|
+
};
|
|
71
63
|
createFile(blob, name) {
|
|
72
64
|
if (!navigator['msSaveBlob']) {
|
|
73
65
|
return new File([blob], name, { lastModified: Date.now(), type: blob?.type });
|
|
@@ -75,8 +67,14 @@ export class FileLoader {
|
|
|
75
67
|
const blobFile = new Blob([blob], { type: blob?.type });
|
|
76
68
|
return this.blobToFile(blobFile, name);
|
|
77
69
|
}
|
|
78
|
-
|
|
79
|
-
|
|
70
|
+
blobToFile = (blob, fileName) => {
|
|
71
|
+
const anyBlob = blob;
|
|
72
|
+
anyBlob.lastModifiedDate = new Date();
|
|
73
|
+
anyBlob.name = fileName;
|
|
74
|
+
return anyBlob;
|
|
75
|
+
};
|
|
76
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FileLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
77
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FileLoader, providedIn: 'root' });
|
|
80
78
|
}
|
|
81
79
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FileLoader, decorators: [{
|
|
82
80
|
type: Injectable,
|
|
@@ -84,4 +82,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
84
82
|
providedIn: 'root'
|
|
85
83
|
}]
|
|
86
84
|
}] });
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1sb2FkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2ZpbGUtbG9hZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFLekMsTUFBTSxPQUFPLFVBQVU7SUFFbkIsV0FBVyxDQUFDLEtBQWEsRUFBRSxPQUFlLE1BQU07UUFDNUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1QsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUVELElBQUksQ0FBQztZQUNELHNEQUFzRDtZQUN0RCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVwRCxtQ0FBbUM7WUFDbkMsTUFBTSxVQUFVLEdBQUcsS0FBSztpQkFDbkIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDYixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNiLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVuQixtREFBbUQ7WUFDbkQsTUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZELE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQy9DLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQ3JELFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLEtB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QztRQUN0RCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTyxVQUFVLEdBQUcsQ0FBQyxJQUFVLEVBQUUsUUFBZ0IsRUFBRSxFQUFFO1FBQ2xELE1BQU0sT0FBTyxHQUFRLElBQUksQ0FBQztRQUMxQixPQUFPLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN0QyxPQUFPLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztRQUN4QixPQUFPLE9BQWUsQ0FBQztJQUMzQixDQUFDLENBQUM7dUdBdEZPLFVBQVU7MkdBQVYsVUFBVSxjQUZQLE1BQU07OzJGQUVULFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGaWxlTG9hZGVyIHtcblxuICAgIGZyb21EYXRhVXJsKHZhbHVlOiBzdHJpbmcsIG5hbWU6IHN0cmluZyA9ICdmaWxlJykge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBDb252ZXJ0IGJhc2U2NCB0byByYXcgYmluYXJ5IGRhdGEgaGVsZCBpbiBhIHN0cmluZy5cbiAgICAgICAgICAgIGNvbnN0IGJ5dGVTdHJpbmcgPSB3aW5kb3cuYXRvYih2YWx1ZS5zcGxpdCgnLCcpWzFdKTtcblxuICAgICAgICAgICAgLy8gU2VwYXJhdGUgb3V0IHRoZSBtaW1lIGNvbXBvbmVudC5cbiAgICAgICAgICAgIGNvbnN0IG1pbWVTdHJpbmcgPSB2YWx1ZVxuICAgICAgICAgICAgICAgIC5zcGxpdCgnLCcpWzBdXG4gICAgICAgICAgICAgICAgLnNwbGl0KCc6JylbMV1cbiAgICAgICAgICAgICAgICAuc3BsaXQoJzsnKVswXTtcblxuICAgICAgICAgICAgLy8gV3JpdGUgdGhlIGJ5dGVzIG9mIHRoZSBzdHJpbmcgdG8gYW4gQXJyYXlCdWZmZXIuXG4gICAgICAgICAgICBjb25zdCBhcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihieXRlU3RyaW5nLmxlbmd0aCk7XG4gICAgICAgICAgICBjb25zdCB1aW50OEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpO1xuICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGJ5dGVTdHJpbmcubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICAgICAgdWludDhBcnJheVtpbmRleF0gPSBieXRlU3RyaW5nLmNoYXJDb2RlQXQoaW5kZXgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBkYXRhVmlldyA9IG5ldyBEYXRhVmlldyhhcnJheUJ1ZmZlcik7XG4gICAgICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2RhdGFWaWV3LmJ1ZmZlcl0sIHt0eXBlOiBtaW1lU3RyaW5nfSk7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUZpbGUoYmxvYiwgbmFtZSk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc0RhdGFVcmwoZmlsZTogRmlsZSB8IEJsb2IpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZDxzdHJpbmc+KGZpbGUsICdkYXRhdXJsJyk7XG4gICAgfVxuXG4gICAgYXNBcnJheUJ1ZmZlcihmaWxlOiBGaWxlIHwgQmxvYikge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkPEFycmF5QnVmZmVyPihmaWxlLCAnYXJyYXlidWZmZXInKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIHJlYWQ8VCA9IHN0cmluZyB8IEFycmF5QnVmZmVyPihmaWxlOiBGaWxlIHwgQmxvYiwgdHlwZTogJ2RhdGF1cmwnIHwgJ2FycmF5YnVmZmVyJykge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8VD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNGaWxlTGlrZSA9IHRoaXMuaXNGaWxlKGZpbGUpIHx8IHRoaXMuaXNCbG9iKGZpbGUpO1xuICAgICAgICAgICAgaWYgKCFmaWxlIHx8ICFpc0ZpbGVMaWtlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlamVjdCgnSW52YWxpZCBmaWxlJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgICAgICByZWFkZXIub25lcnJvciA9ICgpID0+IHJlamVjdCgnRXJyb3IgZmlsZSByZWFkJyk7XG4gICAgICAgICAgICByZWFkZXIub25hYm9ydCA9ICgpID0+IHJlamVjdCgnQWJvcnQgZmlsZSByZWFkJyk7XG4gICAgICAgICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHJlYWRlci5yZXN1bHQgYXMgdW5rbm93bjtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZShyZXN1bHQgYXMgVCk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBpZiAodHlwZSA9PT0gJ2RhdGF1cmwnKSB7XG4gICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdhcnJheWJ1ZmZlcicpIHtcbiAgICAgICAgICAgICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNGaWxlID0gKGlucHV0OiB1bmtub3duKSA9PiB7XG4gICAgICAgIHJldHVybiAnRmlsZScgaW4gd2luZG93ICYmIGlucHV0IGluc3RhbmNlb2YgRmlsZTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBpc0Jsb2IgPSAoaW5wdXQ6IHVua25vd24pID0+IHtcbiAgICAgICAgcmV0dXJuICdCbG9iJyBpbiB3aW5kb3cgJiYgaW5wdXQgaW5zdGFuY2VvZiBCbG9iO1xuICAgIH07XG5cbiAgICBwcml2YXRlIGNyZWF0ZUZpbGUoYmxvYjogQmxvYiwgbmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghbmF2aWdhdG9yWydtc1NhdmVCbG9iJ10pIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRmlsZShbYmxvYl0sIG5hbWUsIHtsYXN0TW9kaWZpZWQ6IERhdGUubm93KCksIHR5cGU6IGJsb2I/LnR5cGV9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGJsb2JGaWxlID0gbmV3IEJsb2IoW2Jsb2JdLCB7dHlwZTogYmxvYj8udHlwZX0pO1xuICAgICAgICByZXR1cm4gdGhpcy5ibG9iVG9GaWxlKGJsb2JGaWxlLCBuYW1lKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJsb2JUb0ZpbGUgPSAoYmxvYjogQmxvYiwgZmlsZU5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCBhbnlCbG9iOiBhbnkgPSBibG9iO1xuICAgICAgICBhbnlCbG9iLmxhc3RNb2RpZmllZERhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICBhbnlCbG9iLm5hbWUgPSBmaWxlTmFtZTtcbiAgICAgICAgcmV0dXJuIGFueUJsb2IgYXMgRmlsZTtcbiAgICB9O1xuXG59XG4iXX0=
|
|
@@ -3,6 +3,10 @@ import { WINDOW } from '../tokens/window.token';
|
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@angular/cdk/platform";
|
|
5
5
|
export class Files {
|
|
6
|
+
_platform;
|
|
7
|
+
_rendererFactory;
|
|
8
|
+
_window;
|
|
9
|
+
_renderer;
|
|
6
10
|
constructor(_platform, _rendererFactory, _window) {
|
|
7
11
|
this._platform = _platform;
|
|
8
12
|
this._rendererFactory = _rendererFactory;
|
|
@@ -69,8 +73,8 @@ export class Files {
|
|
|
69
73
|
anchor.click();
|
|
70
74
|
}
|
|
71
75
|
}
|
|
72
|
-
static
|
|
73
|
-
static
|
|
76
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: Files, deps: [{ token: i1.Platform }, { token: i0.RendererFactory2 }, { token: WINDOW, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
77
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: Files, providedIn: 'root' });
|
|
74
78
|
}
|
|
75
79
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: Files, decorators: [{
|
|
76
80
|
type: Injectable,
|
|
@@ -83,4 +87,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
83
87
|
type: Inject,
|
|
84
88
|
args: [WINDOW]
|
|
85
89
|
}] }] });
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2ZpbGVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUE4QixNQUFNLGVBQWUsQ0FBQztBQUV4RixPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7OztBQUs5QyxNQUFNLE9BQU8sS0FBSztJQUlNO0lBQ0E7SUFDNEI7SUFKL0IsU0FBUyxDQUFZO0lBRXRDLFlBQW9CLFNBQW1CLEVBQ25CLGdCQUFrQyxFQUNOLE9BQWU7UUFGM0MsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ04sWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUMzRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFJRCxRQUFRLENBQUMsVUFBdUIsRUFBRSxJQUFhO1FBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzVCLE9BQU87UUFDWCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFlLEVBQUUsSUFBWTtRQUNyQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDWCxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO1FBRUQsSUFBSSxDQUFDO1lBQ0QsTUFBTSxVQUFVLEdBQUcs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QUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTyxXQUFXLENBQUMsTUFBeUI7UUFDekMsSUFBSSxDQUFDO1lBQ0QsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFBQyxNQUFNLENBQUM7WUFDTCxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkIsQ0FBQztJQUNMLENBQUM7dUdBaEZRLEtBQUssMEVBTWtCLE1BQU07MkdBTjdCLEtBQUssY0FGRixNQUFNOzsyRkFFVCxLQUFLO2tCQUhqQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBT2dCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UGxhdGZvcm19IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSc7XG5pbXBvcnQge1dJTkRPV30gZnJvbSAnLi4vdG9rZW5zL3dpbmRvdy50b2tlbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRmlsZXMge1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcmVuZGVyZXI6IFJlbmRlcmVyMjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX3BsYXRmb3JtOiBQbGF0Zm9ybSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9yZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTIsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChXSU5ET1cpIHByaXZhdGUgX3dpbmRvdzogV2luZG93KSB7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyID0gdGhpcy5fcmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKG51bGwsIG51bGwpO1xuICAgIH1cblxuICAgIGRvd25sb2FkKGZpbGU6IEZpbGUsIG5hbWU/OiBzdHJpbmcpOiB2b2lkO1xuICAgIGRvd25sb2FkKGJsb2I6IEJsb2IsIG5hbWU6IHN0cmluZyk6IHZvaWQ7XG4gICAgZG93bmxvYWQoYmxvYk9yRmlsZTogRmlsZSB8IEJsb2IsIG5hbWU/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFuY2hvciA9IHRoaXMuY3JlYXRlQW5jaG9yRWxlbWVudChibG9iT3JGaWxlLCBuYW1lKTtcbiAgICAgICAgdGhpcy5yZXZva2VVcmxBbmRQcmVzc0FuY2hvcihhbmNob3IpO1xuICAgIH1cblxuICAgIGZyb21EYXRhVXJpKGRhdGFVcmk6IHN0cmluZywgbmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghZGF0YVVyaSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgYnl0ZVN0cmluZyA9IHRoaXMuX3dpbmRvdy5hdG9iKGRhdGFVcmkuc3BsaXQoJywnKVsxXSk7XG5cbiAgICAgICAgICAgIC8vIFNlcGFyYXRlIG91dCB0aGUgbWltZSBjb21wb25lbnQuXG4gICAgICAgICAgICBjb25zdCBtaW1lU3RyaW5nID0gZGF0YVVyaVxuICAgICAgICAgICAgICAgIC5zcGxpdCgnLCcpWzBdXG4gICAgICAgICAgICAgICAgLnNwbGl0KCc6JylbMV1cbiAgICAgICAgICAgICAgICAuc3BsaXQoJzsnKVswXTtcblxuICAgICAgICAgICAgLy8gV3JpdGUgdGhlIGJ5dGVzIG9mIHRoZSBzdHJpbmcgdG8gYW4gQXJyYXlCdWZmZXIuXG4gICAgICAgICAgICBjb25zdCBhcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihieXRlU3RyaW5nLmxlbmd0aCk7XG4gICAgICAgICAgICBjb25zdCB1aW50OEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpO1xuICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGJ5dGVTdHJpbmcubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICAgICAgdWludDhBcnJheVtpbmRleF0gPSBieXRlU3RyaW5nLmNoYXJDb2RlQXQoaW5kZXgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBkYXRhVmlldyA9IG5ldyBEYXRhVmlldyhhcnJheUJ1ZmZlcik7XG4gICAgICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2RhdGFWaWV3LmJ1ZmZlcl0sIHt0eXBlOiBtaW1lU3RyaW5nfSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGUoYmxvYiwgbmFtZSk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjcmVhdGUoYmxvYjogQmxvYiwgbmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghbmF2aWdhdG9yWydtc1NhdmVCbG9iJ10pIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRmlsZShbYmxvYl0sIG5hbWUsIHtsYXN0TW9kaWZpZWQ6IERhdGUubm93KCksIHR5cGU6IGJsb2I/LnR5cGV9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFueUJsb2I6IGFueSA9IG5ldyBCbG9iKFtibG9iXSwge3R5cGU6IGJsb2I/LnR5cGV9KTtcbiAgICAgICAgYW55QmxvYi5sYXN0TW9kaWZpZWREYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgYW55QmxvYi5uYW1lID0gbmFtZTtcbiAgICAgICAgcmV0dXJuIGFueUJsb2IgYXMgRmlsZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUFuY2hvckVsZW1lbnQoYmxvYk9yRmlsZTogRmlsZSB8IEJsb2IsIG5hbWU/OiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgYW5jaG9yID0gdGhpcy5fcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eShhbmNob3IsICdkb3dubG9hZCcsIG5hbWUgPz8gYmxvYk9yRmlsZT8uWyduYW1lJ10pO1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eShhbmNob3IsICdyZWwnLCAnbm9vcGVuZXInKTtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkoYW5jaG9yLCAnaHJlZicsIFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYk9yRmlsZSkpO1xuICAgICAgICByZXR1cm4gYW5jaG9yO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmV2b2tlVXJsQW5kUHJlc3NBbmNob3IoYW5jaG9yOiBIVE1MQW5jaG9yRWxlbWVudCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IFVSTC5yZXZva2VPYmplY3RVUkwoYW5jaG9yPy5ocmVmKSwgNDBfMDAwKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnByZXNzQW5jaG9yKGFuY2hvciksIDApO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJlc3NBbmNob3IoYW5jaG9yOiBIVE1MQW5jaG9yRWxlbWVudCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYW5jaG9yLmRpc3BhdGNoRXZlbnQobmV3IE1vdXNlRXZlbnQoJ2NsaWNrJykpO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIGFuY2hvci5jbGljaygpO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iXX0=
|
|
@@ -4,37 +4,15 @@ import * as i1 from "./exif.service";
|
|
|
4
4
|
import * as i2 from "@angular/cdk/platform";
|
|
5
5
|
import * as i3 from "./file-loader.service";
|
|
6
6
|
export class ImageConverter {
|
|
7
|
+
_exif;
|
|
8
|
+
_platform;
|
|
9
|
+
_fileLoader;
|
|
10
|
+
// Data.
|
|
11
|
+
_types = ['image/png', 'image/jpeg', 'image/webp'];
|
|
7
12
|
constructor(_exif, _platform, _fileLoader) {
|
|
8
13
|
this._exif = _exif;
|
|
9
14
|
this._platform = _platform;
|
|
10
15
|
this._fileLoader = _fileLoader;
|
|
11
|
-
// Data.
|
|
12
|
-
this._types = ['image/png', 'image/jpeg', 'image/webp'];
|
|
13
|
-
this.calculateOffsetAndDimensions = (image, canvasWidth, canvasHeight) => {
|
|
14
|
-
const originalWidth = image.width;
|
|
15
|
-
const originalHeight = image.height;
|
|
16
|
-
const widthRatio = canvasWidth / originalWidth;
|
|
17
|
-
const heightRatio = canvasHeight / originalHeight;
|
|
18
|
-
let width;
|
|
19
|
-
let height;
|
|
20
|
-
if (originalWidth > originalHeight) {
|
|
21
|
-
height = originalHeight * heightRatio;
|
|
22
|
-
width = (originalWidth / originalHeight) * height;
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
width = originalWidth * widthRatio;
|
|
26
|
-
height = (originalHeight / originalWidth) * width;
|
|
27
|
-
}
|
|
28
|
-
let xOffset = 0;
|
|
29
|
-
let yOffset = 0;
|
|
30
|
-
if (canvasHeight === height) {
|
|
31
|
-
xOffset = -((width - canvasWidth) / 2);
|
|
32
|
-
}
|
|
33
|
-
else if (canvasWidth === width) {
|
|
34
|
-
yOffset = -((height - canvasHeight) / 2);
|
|
35
|
-
}
|
|
36
|
-
return { xOffset, yOffset, width, height };
|
|
37
|
-
};
|
|
38
16
|
}
|
|
39
17
|
async toDataUri(contents, options = null) {
|
|
40
18
|
// Check if the current platform is a browser.
|
|
@@ -111,8 +89,33 @@ export class ImageConverter {
|
|
|
111
89
|
// If the contents is a string convert it to an HTML image element.
|
|
112
90
|
return this.stringToImage(contents);
|
|
113
91
|
}
|
|
114
|
-
|
|
115
|
-
|
|
92
|
+
calculateOffsetAndDimensions = (image, canvasWidth, canvasHeight) => {
|
|
93
|
+
const originalWidth = image.width;
|
|
94
|
+
const originalHeight = image.height;
|
|
95
|
+
const widthRatio = canvasWidth / originalWidth;
|
|
96
|
+
const heightRatio = canvasHeight / originalHeight;
|
|
97
|
+
let width;
|
|
98
|
+
let height;
|
|
99
|
+
if (originalWidth > originalHeight) {
|
|
100
|
+
height = originalHeight * heightRatio;
|
|
101
|
+
width = (originalWidth / originalHeight) * height;
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
width = originalWidth * widthRatio;
|
|
105
|
+
height = (originalHeight / originalWidth) * width;
|
|
106
|
+
}
|
|
107
|
+
let xOffset = 0;
|
|
108
|
+
let yOffset = 0;
|
|
109
|
+
if (canvasHeight === height) {
|
|
110
|
+
xOffset = -((width - canvasWidth) / 2);
|
|
111
|
+
}
|
|
112
|
+
else if (canvasWidth === width) {
|
|
113
|
+
yOffset = -((height - canvasHeight) / 2);
|
|
114
|
+
}
|
|
115
|
+
return { xOffset, yOffset, width, height };
|
|
116
|
+
};
|
|
117
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ImageConverter, deps: [{ token: i1.Exif }, { token: i2.Platform }, { token: i3.FileLoader }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
118
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ImageConverter, providedIn: 'root' });
|
|
116
119
|
}
|
|
117
120
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ImageConverter, decorators: [{
|
|
118
121
|
type: Injectable,
|
|
@@ -120,4 +123,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
120
123
|
providedIn: 'root'
|
|
121
124
|
}]
|
|
122
125
|
}], ctorParameters: () => [{ type: i1.Exif }, { type: i2.Platform }, { type: i3.FileLoader }] });
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtY29udmVydGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9pbWFnZS1jb252ZXJ0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7OztBQU16QyxNQUFNLE9BQU8sY0FBYztJQUt2QixZQUFvQixLQUFXLEVBQ1gsU0FBbUIsRUFDbkIsV0FBdUI7UUFGdkIsVUFBSyxHQUFMLEtBQUssQ0FBTTtRQUNYLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFMM0MsUUFBUTtRQUNTLFdBQU0sR0FBRyxDQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFxRzVELGlDQUE0QixHQUFHLENBQUMsS0FBdUIsRUFBRSxXQUFtQixFQUFFLFlBQW9CLEVBQUUsRUFBRTtZQUMxRyxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ2xDLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFFcEMsTUFBTSxVQUFVLEdBQUcsV0FBVyxHQUFHLGFBQWEsQ0FBQztZQUMvQyxNQUFNLFdBQVcsR0FBRyxZQUFZLEdBQUcsY0FBYyxDQUFDO1lBRWxELElBQUksS0FBYSxDQUFDO1lBQ2xCLElBQUksTUFBYyxDQUFDO1lBRW5CLElBQUksYUFBYSxHQUFHLGNBQWMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNLEdBQUcsY0FBYyxHQUFHLFdBQVcsQ0FBQztnQkFDdEMsS0FBSyxHQUFHLENBQUMsYUFBYSxHQUFHLGNBQWMsQ0FBQyxHQUFHLE1BQU0sQ0FBQztZQUN0RCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osS0FBSyxHQUFHLGFBQWEsR0FBRyxVQUFVLENBQUM7Z0JB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UUFBUSxZQUFZLGdCQUFnQixFQUFFLENBQUM7WUFDdkMsT0FBTyxRQUFRLENBQUM7UUFDcEIsQ0FBQztRQUVELGlFQUFpRTtRQUNqRSxJQUFJLFFBQVEsWUFBWSxJQUFJLEVBQUUsQ0FBQztZQUMzQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUVELG1FQUFtRTtRQUNuRSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEMsQ0FBQzs4R0F0R1EsY0FBYztrSEFBZCxjQUFjLGNBRlgsTUFBTTs7MkZBRVQsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0ZpbGVMb2FkZXJ9IGZyb20gJy4vZmlsZS1sb2FkZXIuc2VydmljZSc7XG5pbXBvcnQge1BsYXRmb3JtfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RXhpZn0gZnJvbSAnLi9leGlmLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEltYWdlQ29udmVydGVyIHtcblxuICAgIC8vIERhdGEuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdHlwZXMgPSBbJ2ltYWdlL3BuZycsICdpbWFnZS9qcGVnJywgJ2ltYWdlL3dlYnAnXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2V4aWY6IEV4aWYsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfcGxhdGZvcm06IFBsYXRmb3JtLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2ZpbGVMb2FkZXI6IEZpbGVMb2FkZXIpIHtcbiAgICB9XG5cbiAgICBhc3luYyB0b0RhdGFVcmkoY29udGVudHM6IHN0cmluZyB8IEZpbGUgfCBIVE1MSW1hZ2VFbGVtZW50LCBvcHRpb25zOiB7IHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyIH0gfCBudWxsID0gbnVsbCkge1xuICAgICAgICAvLyBDaGVjayBpZiB0aGUgY3VycmVudCBwbGF0Zm9ybSBpcyBhIGJyb3dzZXIuXG4gICAgICAgIGlmICghdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEdldCB0aGUgaW1hZ2UuXG4gICAgICAgIGNvbnN0IGltYWdlID0gYXdhaXQgdGhpcy5nZXRJbWFnZShjb250ZW50cyk7XG5cbiAgICAgICAgLy8gR2V0IHRoZSBjYW52YXMgd2lkdGggYW5kIGhlaWdodC5cbiAgICAgICAgY29uc3QgY2FudmFzV2lkdGggPSBvcHRpb25zPy53aWR0aCB8fCBpbWFnZT8ud2lkdGg7XG4gICAgICAgIGNvbnN0IGNhbnZhc0hlaWdodCA9IG9wdGlvbnM/LmhlaWdodCB8fCBpbWFnZT8uaGVpZ2h0O1xuXG4gICAgICAgIC8vIEdldCB0aGUgY2FudmFzIGFuZCBjb250ZXh0LlxuICAgICAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgICAgICAgY29uc3QgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuXG4gICAgICAgIC8vIFZhbGlkYXRlIHRoZSBjb250ZXh0IGV4aXN0cy5cbiAgICAgICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNldCB0aGUgd2lkdGggYW5kIGhlaWdodC5cbiAgICAgICAgY2FudmFzLndpZHRoID0gY2FudmFzV2lkdGg7XG4gICAgICAgIGNhbnZhcy5oZWlnaHQgPSBjYW52YXNIZWlnaHQ7XG5cbiAgICAgICAgLy8gV2hlbiB0aGUgY2FudmFzIHNpemVzIGFyZSAwIHdlIGhhdmUgZmFpbGVkLlxuICAgICAgICBpZiAoY2FudmFzPy53aWR0aCA9PT0gMCAmJiBjYW52YXM/LmhlaWdodCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBpZiBkaW1lbnNpb25zIHdoZXJlIHN1cHBsaWVkLCBlbHNlIGNyZWF0ZSB0aGUgaW1hZ2UuXG4gICAgICAgIGlmICghb3B0aW9ucykge1xuICAgICAgICAgICAgLy8gRHJhdyB0aGUgaW1hZ2UuXG4gICAgICAgICAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZSwgMCwgMCk7XG5cbiAgICAgICAgICAgIC8vIENvbnZlcnQgdGhlIGNhbnZhcyB0byBhIGRhdGEgdXJsLlxuICAgICAgICAgICAgcmV0dXJuIGNhbnZhcy50b0RhdGFVUkwodGhpcy5fdHlwZXNbMF0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gR2V0IHRoZSBkaW1lbnNpb25zIGFuZCBvZmZzZXRzLlxuICAgICAgICBjb25zdCB7d2lkdGgsIGhlaWdodCwgeE9mZnNldCwgeU9mZnNldH0gPSB0aGlzLmNhbGN1bGF0ZU9mZnNldEFuZERpbWVuc2lvbnMoaW1hZ2UsIGNhbnZhc1dpZHRoLCBjYW52YXNIZWlnaHQpO1xuXG4gICAgICAgIC8vIERyYXcgdGhlIGltYWdlLlxuICAgICAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZSwgMCwgMCwgaW1hZ2Uud2lkdGgsIGltYWdlLmhlaWdodCwgeE9mZnNldCwgeU9mZnNldCwgd2lkdGgsIGhlaWdodCk7XG5cbiAgICAgICAgLy8gQ29udmVydCB0aGUgY2FudmFzIHRvIGEgZGF0YSB1cmwuXG4gICAgICAgIHJldHVybiBjYW52YXMudG9EYXRhVVJMKHRoaXMuX3R5cGVzWzBdKTtcbiAgICB9XG5cbiAgICBhc3luYyBmaWxlVG9JbWFnZShmaWxlOiBGaWxlLCB0eXBlczogc3RyaW5nW10gPSB0aGlzLl90eXBlcykge1xuICAgICAgICAvLyBDaGVjayBpZiB0aGUgZmlsZSBtYXRjaGVzIGFuIGltYWdlLlxuICAgICAgICBpZiAoIXR5cGVzLmluY2x1ZGVzKGZpbGUudHlwZSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIHNlbGVjdGVkIGZpbGUgZG9lcyBub3QgbWVldCB0aGUgcmVxdWlyZWQgZm9ybWF0LicpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHN0cmlwcGVkOiBGaWxlIHwgbnVsbCA9IG51bGw7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBzdHJpcHBlZCA9IGF3YWl0IHRoaXMuX2V4aWYuc3RyaXAoZmlsZSwgOTApO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIC8vIERvIG5vdGhpbmcuXG4gICAgICAgIH1cblxuICAgICAgICAvLyBHZSB0aGUgZGF0YSB1cmkuXG4gICAgICAgIGNvbnN0IGRhdGFVcmkgPSBhd2FpdCB0aGlzLl9maWxlTG9hZGVyLmFzRGF0YVVybChzdHJpcHBlZCA/PyBmaWxlKTtcblxuICAgICAgICAvLyBDb252ZXJ0IHRoZSBkYXRhIFVSSSB0byBhIGltYWdlIGVsZW1lbnQuXG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnN0cmluZ1RvSW1hZ2UoZGF0YVVyaSk7XG4gICAgfVxuXG4gICAgc3RyaW5nVG9JbWFnZShzcmM6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8SFRNTEltYWdlRWxlbWVudD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcbiAgICAgICAgICAgIGltYWdlLnNyYyA9IHNyYztcbiAgICAgICAgICAgIGltYWdlLm9ubG9hZCA9ICgpID0+IHJlc29sdmUoaW1hZ2UpO1xuICAgICAgICAgICAgaW1hZ2Uub25lcnJvciA9IGVycm9yID0+IHJlamVjdChlcnJvcik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgZ2V0SW1hZ2UoY29udGVudHM6IHN0cmluZyB8IEZpbGUgfCBIVE1MSW1hZ2VFbGVtZW50KSB7XG4gICAgICAgIC8vIElmIHRoZSBjb250ZW50cyBpcyBhbHJlYWR5IGFuIEhUTUwgaW1hZ2UgZWxlbWVudCBqdXN0IHJldHVybiBpdC5cbiAgICAgICAgaWYgKGNvbnRlbnRzIGluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnRzO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgdGhlIGNvbnRlbnRzIGlzIGEgZmlsZSBjb252ZXJ0IGl0IHRvIGFuIEhUTUwgaW1hZ2UgZWxlbWVudC5cbiAgICAgICAgaWYgKGNvbnRlbnRzIGluc3RhbmNlb2YgRmlsZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmlsZVRvSW1hZ2UoY29udGVudHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgdGhlIGNvbnRlbnRzIGlzIGEgc3RyaW5nIGNvbnZlcnQgaXQgdG8gYW4gSFRNTCBpbWFnZSBlbGVtZW50LlxuICAgICAgICByZXR1cm4gdGhpcy5zdHJpbmdUb0ltYWdlKGNvbnRlbnRzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbGN1bGF0ZU9mZnNldEFuZERpbWVuc2lvbnMgPSAoaW1hZ2U6IEhUTUxJbWFnZUVsZW1lbnQsIGNhbnZhc1dpZHRoOiBudW1iZXIsIGNhbnZhc0hlaWdodDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsV2lkdGggPSBpbWFnZS53aWR0aDtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxIZWlnaHQgPSBpbWFnZS5oZWlnaHQ7XG5cbiAgICAgICAgY29uc3Qgd2lkdGhSYXRpbyA9IGNhbnZhc1dpZHRoIC8gb3JpZ2luYWxXaWR0aDtcbiAgICAgICAgY29uc3QgaGVpZ2h0UmF0aW8gPSBjYW52YXNIZWlnaHQgLyBvcmlnaW5hbEhlaWdodDtcblxuICAgICAgICBsZXQgd2lkdGg6IG51bWJlcjtcbiAgICAgICAgbGV0IGhlaWdodDogbnVtYmVyO1xuXG4gICAgICAgIGlmIChvcmlnaW5hbFdpZHRoID4gb3JpZ2luYWxIZWlnaHQpIHtcbiAgICAgICAgICAgIGhlaWdodCA9IG9yaWdpbmFsSGVpZ2h0ICogaGVpZ2h0UmF0aW87XG4gICAgICAgICAgICB3aWR0aCA9IChvcmlnaW5hbFdpZHRoIC8gb3JpZ2luYWxIZWlnaHQpICogaGVpZ2h0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgd2lkdGggPSBvcmlnaW5hbFdpZHRoICogd2lkdGhSYXRpbztcbiAgICAgICAgICAgIGhlaWdodCA9IChvcmlnaW5hbEhlaWdodCAvIG9yaWdpbmFsV2lkdGgpICogd2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgeE9mZnNldCA9IDA7XG4gICAgICAgIGxldCB5T2Zmc2V0ID0gMDtcblxuICAgICAgICBpZiAoY2FudmFzSGVpZ2h0ID09PSBoZWlnaHQpIHtcbiAgICAgICAgICAgIHhPZmZzZXQgPSAtKCh3aWR0aCAtIGNhbnZhc1dpZHRoKSAvIDIpO1xuICAgICAgICB9IGVsc2UgaWYgKGNhbnZhc1dpZHRoID09PSB3aWR0aCkge1xuICAgICAgICAgICAgeU9mZnNldCA9IC0oKGhlaWdodCAtIGNhbnZhc0hlaWdodCkgLyAyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7eE9mZnNldCwgeU9mZnNldCwgd2lkdGgsIGhlaWdodH07XG4gICAgfTtcblxufVxuIl19
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtY29udmVydGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9pbWFnZS1jb252ZXJ0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7OztBQU16QyxNQUFNLE9BQU8sY0FBYztJQUtIO0lBQ0E7SUFDQTtJQUxwQixRQUFRO0lBQ1MsTUFBTSxHQUFHLENBQUMsV0FBVyxFQUFFLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQztJQUVwRSxZQUFvQixLQUFXLEVBQ1gsU0FBbUIsRUFDbkIsV0FBdUI7UUFGdkIsVUFBSyxHQUFMLEtBQUssQ0FBTTtRQUNYLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7SUFDM0MsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBMEMsRUFBRSxVQUFvRCxJQUFJO1FBQ2hILDhDQUE4QztRQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM1QixPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO1FBRUQsaUJBQWlCO1FBQ2pCLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU1QyxtQ0FBbUM7UUFDbkMsTUFBTSxXQUFXLEdBQUcsT0FBTyxFQUFFLEtBQUssSUFBSSxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQ25ELE1BQU0sWUFBWSxHQUFHLE9BQU8sRUFBRSxNQUFNLElBQUksS0FBSyxFQUFFLE1BQU0sQ0FBQztRQUV0RCw4QkFBOEI7UUFDOUIsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXhDLCtCQUErQjtRQUMvQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDWCxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO1FBRUQsNEJBQTRCO1FBQzVCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDO1FBQzNCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDO1FBRTdCLDhDQUE4QztRQUM5QyxJQUFJLE1BQU0sRUFBRSxLQUFLLEtBQUssQ0FBQyxJQUFJLE1BQU0sRUFBRSxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDOUMsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUVELDZEQUE2RDtRQUM3RCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDWCxrQkFBa0I7WUFDbEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRS9CLG9DQUFvQztZQUNwQyxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVDLENBQUM7UUFFRCxrQ0FBa0M7UUFDbEMsTUFBTSxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBQyxHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRTlHLGtCQUFrQjtRQUNsQixPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUzRixvQ0FBb0M7UUFDcEMsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFVLEVBQUUsUUFBa0IsSUFBSSxDQUFDLE1BQU07UUFDdkQsc0NBQXNDO1FBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztRQUM1RSxDQUFDO1FBRUQsSUFBSSxRQUFRLEdBQWdCLElBQUksQ0FBQztRQUNqQyxJQUFJLENBQUM7WUFDRCxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNMLGNBQWM7UUFDbEIsQ0FBQztRQUVELG1CQUFtQjtRQUNuQixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUVuRSwyQ0FBMkM7UUFDM0MsT0FBTyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGFBQWEsQ0FBQyxHQUFXO1FBQ3JCLE9BQU8sSUFBSSxPQUFPLENBQW1CLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JELE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7WUFDMUIsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7WUFDaEIsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEMsS0FBSyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQTBDO1FBQzdELG1FQUFtRTtRQUNuRSxJQUFJLFFBQVEsWUFBWSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sUUFBUSxDQUFDO1FBQ3BCLENBQUM7UUFFRCxpRUFBaUU7UUFDakUsSUFBSSxRQUFRLFlBQVksSUFBSSxFQUFFLENBQUM7WUFDM0IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFFRCxtRUFBbUU7UUFDbkUsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFTyw0QkFBNEIsR0FBRyxDQUFDLEtBQXVCLEVBQUUsV0FBbUIsRUFBRSxZQUFvQixFQUFFLEVBQUU7UUFDMUcsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNsQyxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBRXBDLE1BQU0sVUFBVSxHQUFHLFdBQVcsR0FBRyxhQUFhLENBQUM7UUFDL0MsTUFBTSxXQUFXLEdBQUcsWUFBWSxHQUFHLGNBQWMsQ0FBQztRQUVsRCxJQUFJLEtBQWEsQ0FBQztRQUNsQixJQUFJLE1BQWMsQ0FBQztRQUVuQixJQUFJLGFBQWEsR0FBRyxjQUFjLEVBQUUsQ0FBQztZQUNqQyxNQUFNLEdBQUcsY0FBYyxHQUFHLFdBQVcsQ0FBQztZQUN0QyxLQUFLLEdBQUcsQ0FBQyxhQUFhLEdBQUcsY0FBYyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ3RELENBQUM7YUFBTSxDQUFDO1lBQ0osS0FBSyxHQUFHLGFBQWEsR0FBRyxVQUFVLENBQUM7WUFDbkMsTUFBTSxHQUFHLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN0RCxDQUFDO1FBRUQsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztRQUVoQixJQUFJLFlBQVksS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUMxQixPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNDLENBQUM7YUFBTSxJQUFJLFdBQVcsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUMvQixPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFFRCxPQUFPLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLENBQUM7SUFDN0MsQ0FBQyxDQUFDO3VHQXBJTyxjQUFjOzJHQUFkLGNBQWMsY0FGWCxNQUFNOzsyRkFFVCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RmlsZUxvYWRlcn0gZnJvbSAnLi9maWxlLWxvYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7UGxhdGZvcm19IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSc7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFeGlmfSBmcm9tICcuL2V4aWYuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VDb252ZXJ0ZXIge1xuXG4gICAgLy8gRGF0YS5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF90eXBlcyA9IFsnaW1hZ2UvcG5nJywgJ2ltYWdlL2pwZWcnLCAnaW1hZ2Uvd2VicCddO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZXhpZjogRXhpZixcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9wbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfZmlsZUxvYWRlcjogRmlsZUxvYWRlcikge1xuICAgIH1cblxuICAgIGFzeW5jIHRvRGF0YVVyaShjb250ZW50czogc3RyaW5nIHwgRmlsZSB8IEhUTUxJbWFnZUVsZW1lbnQsIG9wdGlvbnM6IHsgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIgfSB8IG51bGwgPSBudWxsKSB7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBjdXJyZW50IHBsYXRmb3JtIGlzIGEgYnJvd3Nlci5cbiAgICAgICAgaWYgKCF0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gR2V0IHRoZSBpbWFnZS5cbiAgICAgICAgY29uc3QgaW1hZ2UgPSBhd2FpdCB0aGlzLmdldEltYWdlKGNvbnRlbnRzKTtcblxuICAgICAgICAvLyBHZXQgdGhlIGNhbnZhcyB3aWR0aCBhbmQgaGVpZ2h0LlxuICAgICAgICBjb25zdCBjYW52YXNXaWR0aCA9IG9wdGlvbnM/LndpZHRoIHx8IGltYWdlPy53aWR0aDtcbiAgICAgICAgY29uc3QgY2FudmFzSGVpZ2h0ID0gb3B0aW9ucz8uaGVpZ2h0IHx8IGltYWdlPy5oZWlnaHQ7XG5cbiAgICAgICAgLy8gR2V0IHRoZSBjYW52YXMgYW5kIGNvbnRleHQuXG4gICAgICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG5cbiAgICAgICAgLy8gVmFsaWRhdGUgdGhlIGNvbnRleHQgZXhpc3RzLlxuICAgICAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2V0IHRoZSB3aWR0aCBhbmQgaGVpZ2h0LlxuICAgICAgICBjYW52YXMud2lkdGggPSBjYW52YXNXaWR0aDtcbiAgICAgICAgY2FudmFzLmhlaWdodCA9IGNhbnZhc0hlaWdodDtcblxuICAgICAgICAvLyBXaGVuIHRoZSBjYW52YXMgc2l6ZXMgYXJlIDAgd2UgaGF2ZSBmYWlsZWQuXG4gICAgICAgIGlmIChjYW52YXM/LndpZHRoID09PSAwICYmIGNhbnZhcz8uaGVpZ2h0ID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrIGlmIGRpbWVuc2lvbnMgd2hlcmUgc3VwcGxpZWQsIGVsc2UgY3JlYXRlIHRoZSBpbWFnZS5cbiAgICAgICAgaWYgKCFvcHRpb25zKSB7XG4gICAgICAgICAgICAvLyBEcmF3IHRoZSBpbWFnZS5cbiAgICAgICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCAwLCAwKTtcblxuICAgICAgICAgICAgLy8gQ29udmVydCB0aGUgY2FudmFzIHRvIGEgZGF0YSB1cmwuXG4gICAgICAgICAgICByZXR1cm4gY2FudmFzLnRvRGF0YVVSTCh0aGlzLl90eXBlc1swXSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBHZXQgdGhlIGRpbWVuc2lvbnMgYW5kIG9mZnNldHMuXG4gICAgICAgIGNvbnN0IHt3aWR0aCwgaGVpZ2h0LCB4T2Zmc2V0LCB5T2Zmc2V0fSA9IHRoaXMuY2FsY3VsYXRlT2Zmc2V0QW5kRGltZW5zaW9ucyhpbWFnZSwgY2FudmFzV2lkdGgsIGNhbnZhc0hlaWdodCk7XG5cbiAgICAgICAgLy8gRHJhdyB0aGUgaW1hZ2UuXG4gICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCAwLCAwLCBpbWFnZS53aWR0aCwgaW1hZ2UuaGVpZ2h0LCB4T2Zmc2V0LCB5T2Zmc2V0LCB3aWR0aCwgaGVpZ2h0KTtcblxuICAgICAgICAvLyBDb252ZXJ0IHRoZSBjYW52YXMgdG8gYSBkYXRhIHVybC5cbiAgICAgICAgcmV0dXJuIGNhbnZhcy50b0RhdGFVUkwodGhpcy5fdHlwZXNbMF0pO1xuICAgIH1cblxuICAgIGFzeW5jIGZpbGVUb0ltYWdlKGZpbGU6IEZpbGUsIHR5cGVzOiBzdHJpbmdbXSA9IHRoaXMuX3R5cGVzKSB7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBmaWxlIG1hdGNoZXMgYW4gaW1hZ2UuXG4gICAgICAgIGlmICghdHlwZXMuaW5jbHVkZXMoZmlsZS50eXBlKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgc2VsZWN0ZWQgZmlsZSBkb2VzIG5vdCBtZWV0IHRoZSByZXF1aXJlZCBmb3JtYXQuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgc3RyaXBwZWQ6IEZpbGUgfCBudWxsID0gbnVsbDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHN0cmlwcGVkID0gYXdhaXQgdGhpcy5fZXhpZi5zdHJpcChmaWxlLCA5MCk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgLy8gRG8gbm90aGluZy5cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEdlIHRoZSBkYXRhIHVyaS5cbiAgICAgICAgY29uc3QgZGF0YVVyaSA9IGF3YWl0IHRoaXMuX2ZpbGVMb2FkZXIuYXNEYXRhVXJsKHN0cmlwcGVkID8/IGZpbGUpO1xuXG4gICAgICAgIC8vIENvbnZlcnQgdGhlIGRhdGEgVVJJIHRvIGEgaW1hZ2UgZWxlbWVudC5cbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuc3RyaW5nVG9JbWFnZShkYXRhVXJpKTtcbiAgICB9XG5cbiAgICBzdHJpbmdUb0ltYWdlKHNyYzogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxIVE1MSW1hZ2VFbGVtZW50PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xuICAgICAgICAgICAgaW1hZ2Uuc3JjID0gc3JjO1xuICAgICAgICAgICAgaW1hZ2Uub25sb2FkID0gKCkgPT4gcmVzb2x2ZShpbWFnZSk7XG4gICAgICAgICAgICBpbWFnZS5vbmVycm9yID0gZXJyb3IgPT4gcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBnZXRJbWFnZShjb250ZW50czogc3RyaW5nIHwgRmlsZSB8IEhUTUxJbWFnZUVsZW1lbnQpIHtcbiAgICAgICAgLy8gSWYgdGhlIGNvbnRlbnRzIGlzIGFscmVhZHkgYW4gSFRNTCBpbWFnZSBlbGVtZW50IGp1c3QgcmV0dXJuIGl0LlxuICAgICAgICBpZiAoY29udGVudHMgaW5zdGFuY2VvZiBIVE1MSW1hZ2VFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gY29udGVudHM7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiB0aGUgY29udGVudHMgaXMgYSBmaWxlIGNvbnZlcnQgaXQgdG8gYW4gSFRNTCBpbWFnZSBlbGVtZW50LlxuICAgICAgICBpZiAoY29udGVudHMgaW5zdGFuY2VvZiBGaWxlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5maWxlVG9JbWFnZShjb250ZW50cyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiB0aGUgY29udGVudHMgaXMgYSBzdHJpbmcgY29udmVydCBpdCB0byBhbiBIVE1MIGltYWdlIGVsZW1lbnQuXG4gICAgICAgIHJldHVybiB0aGlzLnN0cmluZ1RvSW1hZ2UoY29udGVudHMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlT2Zmc2V0QW5kRGltZW5zaW9ucyA9IChpbWFnZTogSFRNTEltYWdlRWxlbWVudCwgY2FudmFzV2lkdGg6IG51bWJlciwgY2FudmFzSGVpZ2h0OiBudW1iZXIpID0+IHtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxXaWR0aCA9IGltYWdlLndpZHRoO1xuICAgICAgICBjb25zdCBvcmlnaW5hbEhlaWdodCA9IGltYWdlLmhlaWdodDtcblxuICAgICAgICBjb25zdCB3aWR0aFJhdGlvID0gY2FudmFzV2lkdGggLyBvcmlnaW5hbFdpZHRoO1xuICAgICAgICBjb25zdCBoZWlnaHRSYXRpbyA9IGNhbnZhc0hlaWdodCAvIG9yaWdpbmFsSGVpZ2h0O1xuXG4gICAgICAgIGxldCB3aWR0aDogbnVtYmVyO1xuICAgICAgICBsZXQgaGVpZ2h0OiBudW1iZXI7XG5cbiAgICAgICAgaWYgKG9yaWdpbmFsV2lkdGggPiBvcmlnaW5hbEhlaWdodCkge1xuICAgICAgICAgICAgaGVpZ2h0ID0gb3JpZ2luYWxIZWlnaHQgKiBoZWlnaHRSYXRpbztcbiAgICAgICAgICAgIHdpZHRoID0gKG9yaWdpbmFsV2lkdGggLyBvcmlnaW5hbEhlaWdodCkgKiBoZWlnaHQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3aWR0aCA9IG9yaWdpbmFsV2lkdGggKiB3aWR0aFJhdGlvO1xuICAgICAgICAgICAgaGVpZ2h0ID0gKG9yaWdpbmFsSGVpZ2h0IC8gb3JpZ2luYWxXaWR0aCkgKiB3aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCB4T2Zmc2V0ID0gMDtcbiAgICAgICAgbGV0IHlPZmZzZXQgPSAwO1xuXG4gICAgICAgIGlmIChjYW52YXNIZWlnaHQgPT09IGhlaWdodCkge1xuICAgICAgICAgICAgeE9mZnNldCA9IC0oKHdpZHRoIC0gY2FudmFzV2lkdGgpIC8gMik7XG4gICAgICAgIH0gZWxzZSBpZiAoY2FudmFzV2lkdGggPT09IHdpZHRoKSB7XG4gICAgICAgICAgICB5T2Zmc2V0ID0gLSgoaGVpZ2h0IC0gY2FudmFzSGVpZ2h0KSAvIDIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHt4T2Zmc2V0LCB5T2Zmc2V0LCB3aWR0aCwgaGVpZ2h0fTtcbiAgICB9O1xuXG59XG4iXX0=
|