@rdlabo/ionic-angular-photo-editor 2.0.1 → 19.0.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/fesm2022/rdlabo-ionic-angular-photo-editor.mjs +14 -14
- package/fesm2022/rdlabo-ionic-angular-photo-editor.mjs.map +1 -1
- package/lib/ion-components.d.ts +1 -1
- package/lib/pages/photo-editor.page.d.ts +2 -2
- package/package.json +3 -5
- package/esm2022/lib/dictionaries.mjs +0 -27
- package/esm2022/lib/filter-preset.mjs +0 -43
- package/esm2022/lib/ion-components.mjs +0 -3
- package/esm2022/lib/pages/photo-editor.page.mjs +0 -187
- package/esm2022/lib/pages/photo-viewer.page.mjs +0 -101
- package/esm2022/lib/photoEditorErrors.mjs +0 -7
- package/esm2022/lib/service/helper.service.mjs +0 -44
- package/esm2022/lib/service/photo-file.service.mjs +0 -146
- package/esm2022/lib/types.mjs +0 -2
- package/esm2022/public-api.mjs +0 -8
- package/esm2022/rdlabo-ionic-angular-photo-editor.mjs +0 -5
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
import { inject, Injectable, signal } from '@angular/core';
|
|
2
|
-
import { ActionSheetController, Platform } from '@ionic/angular/standalone';
|
|
3
|
-
import { Camera, CameraResultType, CameraSource } from '@capacitor/camera';
|
|
4
|
-
import ImageEditor from 'tui-image-editor';
|
|
5
|
-
import { PhotoEditorErrors } from '../photoEditorErrors';
|
|
6
|
-
import { dictionaryForService } from '../dictionaries';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export class PhotoFileService {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.$photoMaxSize = signal(1000);
|
|
11
|
-
this.actionSheetCtrl = inject(ActionSheetController);
|
|
12
|
-
this.platform = inject(Platform);
|
|
13
|
-
this.dictionary = dictionaryForService();
|
|
14
|
-
}
|
|
15
|
-
set photoMaxSize(value) {
|
|
16
|
-
this.$photoMaxSize.set(value);
|
|
17
|
-
}
|
|
18
|
-
set labels(d) {
|
|
19
|
-
this.dictionary = Object.assign(this.dictionary, d);
|
|
20
|
-
}
|
|
21
|
-
async loadPhoto(limit) {
|
|
22
|
-
/**
|
|
23
|
-
* Using Input for browser
|
|
24
|
-
*/
|
|
25
|
-
if (!this.platform.is('capacitor')) {
|
|
26
|
-
return this.getPictureFromBrowser();
|
|
27
|
-
}
|
|
28
|
-
const actionSheet = await this.actionSheetCtrl.create({
|
|
29
|
-
buttons: [
|
|
30
|
-
{
|
|
31
|
-
text: this.dictionary.camera,
|
|
32
|
-
handler: () => {
|
|
33
|
-
actionSheet.dismiss('camera');
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
text: this.dictionary.album,
|
|
38
|
-
handler: () => {
|
|
39
|
-
actionSheet.dismiss('album');
|
|
40
|
-
},
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
text: this.dictionary.cancel,
|
|
44
|
-
role: 'cancel',
|
|
45
|
-
},
|
|
46
|
-
],
|
|
47
|
-
});
|
|
48
|
-
await actionSheet.present();
|
|
49
|
-
const { data } = await actionSheet.onDidDismiss();
|
|
50
|
-
if (!data) {
|
|
51
|
-
return Promise.reject(PhotoEditorErrors.cancel);
|
|
52
|
-
}
|
|
53
|
-
if (data === 'camera') {
|
|
54
|
-
const defaultCamera = {
|
|
55
|
-
quality: 100,
|
|
56
|
-
width: this.$photoMaxSize(),
|
|
57
|
-
allowEditing: false,
|
|
58
|
-
resultType: CameraResultType.DataUrl,
|
|
59
|
-
source: CameraSource.Camera,
|
|
60
|
-
presentationStyle: 'popover',
|
|
61
|
-
};
|
|
62
|
-
const image = await Camera.getPhoto(defaultCamera).catch(() => undefined);
|
|
63
|
-
if (!image?.dataUrl) {
|
|
64
|
-
return Promise.reject(PhotoEditorErrors.cancel);
|
|
65
|
-
}
|
|
66
|
-
if (!image.dataUrl.includes('capacitor://localhost')) {
|
|
67
|
-
return [image.dataUrl];
|
|
68
|
-
}
|
|
69
|
-
return Promise.all([image.dataUrl].map(async (image) => await this.loadPhotoFromFilePath(image)));
|
|
70
|
-
}
|
|
71
|
-
if (data === 'album') {
|
|
72
|
-
const images = await Camera.pickImages({
|
|
73
|
-
quality: 100,
|
|
74
|
-
width: this.$photoMaxSize(),
|
|
75
|
-
limit,
|
|
76
|
-
presentationStyle: 'popover',
|
|
77
|
-
}).catch(() => undefined);
|
|
78
|
-
if (!images) {
|
|
79
|
-
return Promise.reject(PhotoEditorErrors.cancel);
|
|
80
|
-
}
|
|
81
|
-
return Promise.all(images.photos.map(async (image) => await this.loadPhotoFromFilePath(image.webPath)));
|
|
82
|
-
}
|
|
83
|
-
// Not run on this line. This is for lint
|
|
84
|
-
return [];
|
|
85
|
-
}
|
|
86
|
-
getPictureFromBrowser() {
|
|
87
|
-
const inputFile = document.querySelector('input#browserPhotoUploader');
|
|
88
|
-
if (!inputFile) {
|
|
89
|
-
return Promise.reject(PhotoEditorErrors.initialize);
|
|
90
|
-
}
|
|
91
|
-
return new Promise((resolve, reject) => {
|
|
92
|
-
const cancelMethod = (e) => {
|
|
93
|
-
inputFile.removeEventListener('cancel', cancelMethod, false);
|
|
94
|
-
inputFile.removeEventListener('change', changeMethod, false);
|
|
95
|
-
reject(PhotoEditorErrors.cancel);
|
|
96
|
-
};
|
|
97
|
-
const changeMethod = (e) => {
|
|
98
|
-
inputFile.removeEventListener('cancel', cancelMethod, false);
|
|
99
|
-
inputFile.removeEventListener('change', changeMethod, false);
|
|
100
|
-
if (!e.target.files || !e.target.files[0]) {
|
|
101
|
-
reject(PhotoEditorErrors.cancel);
|
|
102
|
-
}
|
|
103
|
-
const file = e.target.files[0];
|
|
104
|
-
const reader = new FileReader();
|
|
105
|
-
reader.onload = (() => {
|
|
106
|
-
if (file.type.indexOf('image') < 0) {
|
|
107
|
-
reject(PhotoEditorErrors.type);
|
|
108
|
-
}
|
|
109
|
-
return async (event) => {
|
|
110
|
-
inputFile.value = '';
|
|
111
|
-
const result = event.target.result;
|
|
112
|
-
const data = await this.loadPhotoFromFilePath(result);
|
|
113
|
-
resolve([data]);
|
|
114
|
-
};
|
|
115
|
-
})();
|
|
116
|
-
reader.readAsDataURL(file);
|
|
117
|
-
};
|
|
118
|
-
inputFile.addEventListener('cancel', cancelMethod, false);
|
|
119
|
-
inputFile.addEventListener('change', changeMethod, false);
|
|
120
|
-
inputFile.click();
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
async loadPhotoFromFilePath(filePath) {
|
|
124
|
-
const defaultInstance = new ImageEditor(document.createElement('div'), {
|
|
125
|
-
cssMaxWidth: this.$photoMaxSize(),
|
|
126
|
-
cssMaxHeight: this.$photoMaxSize(),
|
|
127
|
-
});
|
|
128
|
-
const blob = await fetch(filePath).then((res) => res.blob());
|
|
129
|
-
const loaded = await defaultInstance.loadImageFromFile(new File([blob], 'data.png', { type: blob.type }));
|
|
130
|
-
const maxSize = Math.max(loaded.newWidth, loaded.newHeight);
|
|
131
|
-
const dataUrl = defaultInstance.toDataURL({
|
|
132
|
-
multiplier: this.$photoMaxSize() / maxSize,
|
|
133
|
-
});
|
|
134
|
-
defaultInstance.destroy();
|
|
135
|
-
return dataUrl;
|
|
136
|
-
}
|
|
137
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: PhotoFileService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
138
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: PhotoFileService, providedIn: 'root' }); }
|
|
139
|
-
}
|
|
140
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: PhotoFileService, decorators: [{
|
|
141
|
-
type: Injectable,
|
|
142
|
-
args: [{
|
|
143
|
-
providedIn: 'root',
|
|
144
|
-
}]
|
|
145
|
-
}], ctorParameters: () => [] });
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvdG8tZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGhvdG8tZWRpdG9yL3NyYy9saWIvc2VydmljZS9waG90by1maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBZ0IsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RixPQUFPLFdBQVcsTUFBTSxrQkFBa0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFNdkQsTUFBTSxPQUFPLGdCQUFnQjtJQU0zQjtRQUxpQixrQkFBYSxHQUFHLE1BQU0sQ0FBUyxJQUFJLENBQUMsQ0FBQztRQUNyQyxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ2hELGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckMsZUFBVSxHQUEwQixvQkFBb0IsRUFBRSxDQUFDO0lBRXBELENBQUM7SUFFaEIsSUFBSSxZQUFZLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsQ0FBd0I7UUFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELEtBQUssQ0FBQyxT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LENBQUM7SUFDTCxDQUFDO0lBRU8sS0FBSyxDQUFDLHFCQUFxQixDQUFDLFFBQWdCO1FBQ2xELE1BQU0sZUFBZSxHQUFHLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDckUsV0FBVyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDakMsWUFBWSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUU7U0FDbkMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxJQUFJLEdBQUcsTUFBTSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM3RCxNQUFNLE1BQU0sR0FBRyxNQUFNLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTFHLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDNUQsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQztZQUN4QyxVQUFVLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLE9BQU87U0FDM0MsQ0FBQyxDQUFDO1FBQ0gsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRTFCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7OEdBdEpVLGdCQUFnQjtrSEFBaEIsZ0JBQWdCLGNBRmYsTUFBTTs7MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb25TaGVldENvbnRyb2xsZXIsIFBsYXRmb3JtIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBDYW1lcmEsIENhbWVyYVJlc3VsdFR5cGUsIENhbWVyYVNvdXJjZSwgSW1hZ2VPcHRpb25zIH0gZnJvbSAnQGNhcGFjaXRvci9jYW1lcmEnO1xuaW1wb3J0IEltYWdlRWRpdG9yIGZyb20gJ3R1aS1pbWFnZS1lZGl0b3InO1xuaW1wb3J0IHsgUGhvdG9FZGl0b3JFcnJvcnMgfSBmcm9tICcuLi9waG90b0VkaXRvckVycm9ycyc7XG5pbXBvcnQgeyBkaWN0aW9uYXJ5Rm9yU2VydmljZSB9IGZyb20gJy4uL2RpY3Rpb25hcmllcyc7XG5pbXBvcnQgeyBJRGljdGlvbmFyeUZvclNlcnZpY2UgfSBmcm9tICcuLi90eXBlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQaG90b0ZpbGVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSAkcGhvdG9NYXhTaXplID0gc2lnbmFsPG51bWJlcj4oMTAwMCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWN0aW9uU2hlZXRDdHJsID0gaW5qZWN0KEFjdGlvblNoZWV0Q29udHJvbGxlcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhdGZvcm0gPSBpbmplY3QoUGxhdGZvcm0pO1xuICBwcml2YXRlIGRpY3Rpb25hcnk6IElEaWN0aW9uYXJ5Rm9yU2VydmljZSA9IGRpY3Rpb25hcnlGb3JTZXJ2aWNlKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHNldCBwaG90b01heFNpemUodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuJHBob3RvTWF4U2l6ZS5zZXQodmFsdWUpO1xuICB9XG5cbiAgc2V0IGxhYmVscyhkOiBJRGljdGlvbmFyeUZvclNlcnZpY2UpIHtcbiAgICB0aGlzLmRpY3Rpb25hcnkgPSBPYmplY3QuYXNzaWduKHRoaXMuZGljdGlvbmFyeSwgZCk7XG4gIH1cblxuICBhc3luYyBsb2FkUGhvdG8obGltaXQ6IG51bWJlcik6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAvKipcbiAgICAgKiBVc2luZyBJbnB1dCBmb3IgYnJvd3NlclxuICAgICAqL1xuICAgIGlmICghdGhpcy5wbGF0Zm9ybS5pcygnY2FwYWNpdG9yJykpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFBpY3R1cmVGcm9tQnJvd3NlcigpO1xuICAgIH1cblxuICAgIGNvbnN0IGFjdGlvblNoZWV0ID0gYXdhaXQgdGhpcy5hY3Rpb25TaGVldEN0cmwuY3JlYXRlKHtcbiAgICAgIGJ1dHRvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6IHRoaXMuZGljdGlvbmFyeS5jYW1lcmEsXG4gICAgICAgICAgaGFuZGxlcjogKCkgPT4ge1xuICAgICAgICAgICAgYWN0aW9uU2hlZXQuZGlzbWlzcygnY2FtZXJhJyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6IHRoaXMuZGljdGlvbmFyeS5hbGJ1bSxcbiAgICAgICAgICBoYW5kbGVyOiAoKSA9PiB7XG4gICAgICAgICAgICBhY3Rpb25TaGVldC5kaXNtaXNzKCdhbGJ1bScpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiB0aGlzLmRpY3Rpb25hcnkuY2FuY2VsLFxuICAgICAgICAgIHJvbGU6ICdjYW5jZWwnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgICBhd2FpdCBhY3Rpb25TaGVldC5wcmVzZW50KCk7XG4gICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCBhY3Rpb25TaGVldC5vbkRpZERpc21pc3M8J2NhbWVyYScgfCAnYWxidW0nPigpO1xuICAgIGlmICghZGF0YSkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KFBob3RvRWRpdG9yRXJyb3JzLmNhbmNlbCk7XG4gICAgfVxuXG4gICAgaWYgKGRhdGEgPT09ICdjYW1lcmEnKSB7XG4gICAgICBjb25zdCBkZWZhdWx0Q2FtZXJhOiBJbWFnZU9wdGlvbnMgPSB7XG4gICAgICAgIHF1YWxpdHk6IDEwMCxcbiAgICAgICAgd2lkdGg6IHRoaXMuJHBob3RvTWF4U2l6ZSgpLFxuICAgICAgICBhbGxvd0VkaXRpbmc6IGZhbHNlLFxuICAgICAgICByZXN1bHRUeXBlOiBDYW1lcmFSZXN1bHRUeXBlLkRhdGFVcmwsXG4gICAgICAgIHNvdXJjZTogQ2FtZXJhU291cmNlLkNhbWVyYSxcbiAgICAgICAgcHJlc2VudGF0aW9uU3R5bGU6ICdwb3BvdmVyJyxcbiAgICAgIH07XG4gICAgICBjb25zdCBpbWFnZSA9IGF3YWl0IENhbWVyYS5nZXRQaG90byhkZWZhdWx0Q2FtZXJhKS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpO1xuICAgICAgaWYgKCFpbWFnZT8uZGF0YVVybCkge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoUGhvdG9FZGl0b3JFcnJvcnMuY2FuY2VsKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFpbWFnZS5kYXRhVXJsLmluY2x1ZGVzKCdjYXBhY2l0b3I6Ly9sb2NhbGhvc3QnKSkge1xuICAgICAgICByZXR1cm4gW2ltYWdlLmRhdGFVcmxdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtpbWFnZS5kYXRhVXJsXS5tYXAoYXN5bmMgKGltYWdlKSA9PiBhd2FpdCB0aGlzLmxvYWRQaG90b0Zyb21GaWxlUGF0aChpbWFnZSkpKTtcbiAgICB9XG5cbiAgICBpZiAoZGF0YSA9PT0gJ2FsYnVtJykge1xuICAgICAgY29uc3QgaW1hZ2VzID0gYXdhaXQgQ2FtZXJhLnBpY2tJbWFnZXMoe1xuICAgICAgICBxdWFsaXR5OiAxMDAsXG4gICAgICAgIHdpZHRoOiB0aGlzLiRwaG90b01heFNpemUoKSxcbiAgICAgICAgbGltaXQsXG4gICAgICAgIHByZXNlbnRhdGlvblN0eWxlOiAncG9wb3ZlcicsXG4gICAgICB9KS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpO1xuXG4gICAgICBpZiAoIWltYWdlcykge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoUGhvdG9FZGl0b3JFcnJvcnMuY2FuY2VsKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFByb21pc2UuYWxsKGltYWdlcy5waG90b3MubWFwKGFzeW5jIChpbWFnZSkgPT4gYXdhaXQgdGhpcy5sb2FkUGhvdG9Gcm9tRmlsZVBhdGgoaW1hZ2Uud2ViUGF0aCkpKTtcbiAgICB9XG5cbiAgICAvLyBOb3QgcnVuIG9uIHRoaXMgbGluZS4gVGhpcyBpcyBmb3IgbGludFxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGljdHVyZUZyb21Ccm93c2VyKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBjb25zdCBpbnB1dEZpbGU6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQjYnJvd3NlclBob3RvVXBsb2FkZXInKTtcblxuICAgIGlmICghaW5wdXRGaWxlKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoUGhvdG9FZGl0b3JFcnJvcnMuaW5pdGlhbGl6ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IGNhbmNlbE1ldGhvZCA9IChlOiBFdmVudCkgPT4ge1xuICAgICAgICBpbnB1dEZpbGUhLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NhbmNlbCcsIGNhbmNlbE1ldGhvZCwgZmFsc2UpO1xuICAgICAgICBpbnB1dEZpbGUhLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGNoYW5nZU1ldGhvZCwgZmFsc2UpO1xuXG4gICAgICAgIHJlamVjdChQaG90b0VkaXRvckVycm9ycy5jYW5jZWwpO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGNoYW5nZU1ldGhvZCA9IChlOiBFdmVudCkgPT4ge1xuICAgICAgICBpbnB1dEZpbGUhLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NhbmNlbCcsIGNhbmNlbE1ldGhvZCwgZmFsc2UpO1xuICAgICAgICBpbnB1dEZpbGUhLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGNoYW5nZU1ldGhvZCwgZmFsc2UpO1xuXG4gICAgICAgIGlmICghKGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmZpbGVzIHx8ICEoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuZmlsZXMhWzBdKSB7XG4gICAgICAgICAgcmVqZWN0KFBob3RvRWRpdG9yRXJyb3JzLmNhbmNlbCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmlsZSA9IChlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5maWxlcyFbMF07XG4gICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG5cbiAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgoKSA9PiB7XG4gICAgICAgICAgaWYgKGZpbGUudHlwZS5pbmRleE9mKCdpbWFnZScpIDwgMCkge1xuICAgICAgICAgICAgcmVqZWN0KFBob3RvRWRpdG9yRXJyb3JzLnR5cGUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBhc3luYyAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlucHV0RmlsZS52YWx1ZSA9ICcnO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gZXZlbnQudGFyZ2V0IS5yZXN1bHQgYXMgc3RyaW5nO1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMubG9hZFBob3RvRnJvbUZpbGVQYXRoKHJlc3VsdCk7XG4gICAgICAgICAgICByZXNvbHZlKFtkYXRhXSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfSkoKTtcblxuICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICAgIH07XG5cbiAgICAgIGlucHV0RmlsZSEuYWRkRXZlbnRMaXN0ZW5lcignY2FuY2VsJywgY2FuY2VsTWV0aG9kLCBmYWxzZSk7XG4gICAgICBpbnB1dEZpbGUhLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGNoYW5nZU1ldGhvZCwgZmFsc2UpO1xuICAgICAgaW5wdXRGaWxlLmNsaWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWRQaG90b0Zyb21GaWxlUGF0aChmaWxlUGF0aDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBkZWZhdWx0SW5zdGFuY2UgPSBuZXcgSW1hZ2VFZGl0b3IoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksIHtcbiAgICAgIGNzc01heFdpZHRoOiB0aGlzLiRwaG90b01heFNpemUoKSxcbiAgICAgIGNzc01heEhlaWdodDogdGhpcy4kcGhvdG9NYXhTaXplKCksXG4gICAgfSk7XG4gICAgY29uc3QgYmxvYiA9IGF3YWl0IGZldGNoKGZpbGVQYXRoKS50aGVuKChyZXMpID0+IHJlcy5ibG9iKCkpO1xuICAgIGNvbnN0IGxvYWRlZCA9IGF3YWl0IGRlZmF1bHRJbnN0YW5jZS5sb2FkSW1hZ2VGcm9tRmlsZShuZXcgRmlsZShbYmxvYl0sICdkYXRhLnBuZycsIHsgdHlwZTogYmxvYi50eXBlIH0pKTtcblxuICAgIGNvbnN0IG1heFNpemUgPSBNYXRoLm1heChsb2FkZWQubmV3V2lkdGgsIGxvYWRlZC5uZXdIZWlnaHQpO1xuICAgIGNvbnN0IGRhdGFVcmwgPSBkZWZhdWx0SW5zdGFuY2UudG9EYXRhVVJMKHtcbiAgICAgIG11bHRpcGxpZXI6IHRoaXMuJHBob3RvTWF4U2l6ZSgpIC8gbWF4U2l6ZSxcbiAgICB9KTtcbiAgICBkZWZhdWx0SW5zdGFuY2UuZGVzdHJveSgpO1xuXG4gICAgcmV0dXJuIGRhdGFVcmw7XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/lib/types.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9waG90by1lZGl0b3Ivc3JjL2xpYi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJRmlsdGVyIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIG9wdGlvbjogYW55O1xuICBkYXRhOiBzdHJpbmc7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTaXplIHtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURpY3Rpb25hcnlGb3JFZGl0b3Ige1xuICBzYXZlOiBzdHJpbmc7XG4gIGNyb3A6IHN0cmluZztcbiAgZmlsdGVyOiBzdHJpbmc7XG4gIGJyaWdodG5lc3M6IHN0cmluZztcbiAgb3JpZ2luYWw6IHN0cmluZztcbiAgaW52ZXJ0OiBzdHJpbmc7XG4gIHNlcGlhOiBzdHJpbmc7XG4gIHZpbnRhZ2U6IHN0cmluZztcbiAgYmx1cjogc3RyaW5nO1xuICBncmF5c2NhbGU6IHN0cmluZztcbiAgc2hhcnBlbjogc3RyaW5nO1xuICBlbWJvc3M6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRmlsdGVyUHJlc2V0IHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIG9wdGlvbjogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQaG90b0VkaXRvckRpc21pc3Mge1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQaG90b1ZpZXdlckRpc21pc3Mge1xuICBkZWxldGU6IHtcbiAgICBpbmRleDogbnVtYmVyO1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURpY3Rpb25hcnlGb3JWaWV3ZXIge1xuICBkZWxldGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGljdGlvbmFyeUZvclNlcnZpY2Uge1xuICBjYW1lcmE6IHN0cmluZztcbiAgYWxidW06IHN0cmluZztcbiAgY2FuY2VsOiBzdHJpbmc7XG59XG4iXX0=
|
package/esm2022/public-api.mjs
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of photo-editor
|
|
3
|
-
*/
|
|
4
|
-
export * from './lib/pages/photo-editor.page';
|
|
5
|
-
export * from './lib/pages/photo-viewer.page';
|
|
6
|
-
export * from './lib/service/photo-file.service';
|
|
7
|
-
export * from './lib/types';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3Bob3RvLWVkaXRvci9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBwaG90by1lZGl0b3JcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYWdlcy9waG90by1lZGl0b3IucGFnZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYWdlcy9waG90by12aWV3ZXIucGFnZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3Bob3RvLWZpbGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90eXBlcyc7XG4iXX0=
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmRsYWJvLWlvbmljLWFuZ3VsYXItcGhvdG8tZWRpdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvcGhvdG8tZWRpdG9yL3NyYy9yZGxhYm8taW9uaWMtYW5ndWxhci1waG90by1lZGl0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|