@rdlabo/ionic-angular-photo-editor 0.0.2 → 0.0.4

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.
@@ -0,0 +1,137 @@
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
+ inputFile.addEventListener('change', (e) => {
93
+ if (!e.target.files || !e.target.files[0]) {
94
+ reject(PhotoEditorErrors.cancel);
95
+ }
96
+ const file = e.target.files[0];
97
+ const reader = new FileReader();
98
+ reader.onload = (() => {
99
+ if (file.type.indexOf('image') < 0) {
100
+ reject(PhotoEditorErrors.type);
101
+ }
102
+ return async (event) => {
103
+ inputFile.value = '';
104
+ const result = event.target.result;
105
+ const data = await this.loadPhotoFromFilePath(result);
106
+ resolve([data]);
107
+ };
108
+ })();
109
+ reader.readAsDataURL(file);
110
+ }, false);
111
+ inputFile.click();
112
+ });
113
+ }
114
+ async loadPhotoFromFilePath(filePath) {
115
+ const defaultInstance = new ImageEditor(document.createElement('div'), {
116
+ cssMaxWidth: this.$photoMaxSize(),
117
+ cssMaxHeight: this.$photoMaxSize(),
118
+ });
119
+ const blob = await fetch(filePath).then((res) => res.blob());
120
+ const loaded = await defaultInstance.loadImageFromFile(new File([blob], 'data.png', { type: blob.type }));
121
+ const maxSize = Math.max(loaded.newWidth, loaded.newHeight);
122
+ const dataUrl = defaultInstance.toDataURL({
123
+ multiplier: this.$photoMaxSize() / maxSize,
124
+ });
125
+ defaultInstance.destroy();
126
+ return dataUrl;
127
+ }
128
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: PhotoFileService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
129
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: PhotoFileService, providedIn: 'root' }); }
130
+ }
131
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: PhotoFileService, decorators: [{
132
+ type: Injectable,
133
+ args: [{
134
+ providedIn: 'root',
135
+ }]
136
+ }], ctorParameters: () => [] });
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvdG8tZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGhvdG8tZWRpdG9yL3NyYy9saWIvc2VydmljZS9waG90by1maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBZ0IsTUFBTSxtQkFBbUIsQ0FBQztBQUV6RixPQUFPLFdBQVcsTUFBTSxrQkFBa0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFNdkQsTUFBTSxPQUFPLGdCQUFnQjtJQU0zQjtRQUxpQixrQkFBYSxHQUFHLE1BQU0sQ0FBUyxJQUFJLENBQUMsQ0FBQztRQUNyQyxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ2hELGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckMsZUFBVSxHQUEwQixvQkFBb0IsRUFBRSxDQUFDO0lBRXBELENBQUM7SUFFaEIsSUFBSSxZQUFZLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsQ0FBd0I7UUFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELEtBQUssQ0FBQyxT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QztRQUM1RCxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsU0FBUyxDQUFDO1lBQ3hDLFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsT0FBTztTQUMzQyxDQUFDLENBQUM7UUFDSCxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFMUIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs4R0E5SVUsZ0JBQWdCO2tIQUFoQixnQkFBZ0IsY0FGZixNQUFNOzsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvblNoZWV0Q29udHJvbGxlciwgUGxhdGZvcm0gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IENhbWVyYSwgQ2FtZXJhUmVzdWx0VHlwZSwgQ2FtZXJhU291cmNlLCBJbWFnZU9wdGlvbnMgfSBmcm9tICdAY2FwYWNpdG9yL2NhbWVyYSc7XG5pbXBvcnQgeyBHYWxsZXJ5UGhvdG9zIH0gZnJvbSAnQGNhcGFjaXRvci9jYW1lcmEvZGlzdC9lc20vZGVmaW5pdGlvbnMnO1xuaW1wb3J0IEltYWdlRWRpdG9yIGZyb20gJ3R1aS1pbWFnZS1lZGl0b3InO1xuaW1wb3J0IHsgUGhvdG9FZGl0b3JFcnJvcnMgfSBmcm9tICcuLi9waG90b0VkaXRvckVycm9ycyc7XG5pbXBvcnQgeyBkaWN0aW9uYXJ5Rm9yU2VydmljZSB9IGZyb20gJy4uL2RpY3Rpb25hcmllcyc7XG5pbXBvcnQgeyBJRGljdGlvbmFyeUZvclNlcnZpY2UgfSBmcm9tICcuLi90eXBlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQaG90b0ZpbGVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSAkcGhvdG9NYXhTaXplID0gc2lnbmFsPG51bWJlcj4oMTAwMCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWN0aW9uU2hlZXRDdHJsID0gaW5qZWN0KEFjdGlvblNoZWV0Q29udHJvbGxlcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhdGZvcm0gPSBpbmplY3QoUGxhdGZvcm0pO1xuICBwcml2YXRlIGRpY3Rpb25hcnk6IElEaWN0aW9uYXJ5Rm9yU2VydmljZSA9IGRpY3Rpb25hcnlGb3JTZXJ2aWNlKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHNldCBwaG90b01heFNpemUodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuJHBob3RvTWF4U2l6ZS5zZXQodmFsdWUpO1xuICB9XG5cbiAgc2V0IGxhYmVscyhkOiBJRGljdGlvbmFyeUZvclNlcnZpY2UpIHtcbiAgICB0aGlzLmRpY3Rpb25hcnkgPSBPYmplY3QuYXNzaWduKHRoaXMuZGljdGlvbmFyeSwgZCk7XG4gIH1cblxuICBhc3luYyBsb2FkUGhvdG8obGltaXQ6IG51bWJlcik6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAvKipcbiAgICAgKiBVc2luZyBJbnB1dCBmb3IgYnJvd3NlclxuICAgICAqL1xuICAgIGlmICghdGhpcy5wbGF0Zm9ybS5pcygnY2FwYWNpdG9yJykpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFBpY3R1cmVGcm9tQnJvd3NlcigpO1xuICAgIH1cblxuICAgIGNvbnN0IGFjdGlvblNoZWV0ID0gYXdhaXQgdGhpcy5hY3Rpb25TaGVldEN0cmwuY3JlYXRlKHtcbiAgICAgIGJ1dHRvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6IHRoaXMuZGljdGlvbmFyeS5jYW1lcmEsXG4gICAgICAgICAgaGFuZGxlcjogKCkgPT4ge1xuICAgICAgICAgICAgYWN0aW9uU2hlZXQuZGlzbWlzcygnY2FtZXJhJyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6IHRoaXMuZGljdGlvbmFyeS5hbGJ1bSxcbiAgICAgICAgICBoYW5kbGVyOiAoKSA9PiB7XG4gICAgICAgICAgICBhY3Rpb25TaGVldC5kaXNtaXNzKCdhbGJ1bScpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiB0aGlzLmRpY3Rpb25hcnkuY2FuY2VsLFxuICAgICAgICAgIHJvbGU6ICdjYW5jZWwnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgICBhd2FpdCBhY3Rpb25TaGVldC5wcmVzZW50KCk7XG4gICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCBhY3Rpb25TaGVldC5vbkRpZERpc21pc3M8J2NhbWVyYScgfCAnYWxidW0nPigpO1xuICAgIGlmICghZGF0YSkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KFBob3RvRWRpdG9yRXJyb3JzLmNhbmNlbCk7XG4gICAgfVxuXG4gICAgaWYgKGRhdGEgPT09ICdjYW1lcmEnKSB7XG4gICAgICBjb25zdCBkZWZhdWx0Q2FtZXJhOiBJbWFnZU9wdGlvbnMgPSB7XG4gICAgICAgIHF1YWxpdHk6IDEwMCxcbiAgICAgICAgd2lkdGg6IHRoaXMuJHBob3RvTWF4U2l6ZSgpLFxuICAgICAgICBhbGxvd0VkaXRpbmc6IGZhbHNlLFxuICAgICAgICByZXN1bHRUeXBlOiBDYW1lcmFSZXN1bHRUeXBlLkRhdGFVcmwsXG4gICAgICAgIHNvdXJjZTogQ2FtZXJhU291cmNlLkNhbWVyYSxcbiAgICAgICAgcHJlc2VudGF0aW9uU3R5bGU6ICdwb3BvdmVyJyxcbiAgICAgIH07XG4gICAgICBjb25zdCBpbWFnZSA9IGF3YWl0IENhbWVyYS5nZXRQaG90byhkZWZhdWx0Q2FtZXJhKS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpO1xuICAgICAgaWYgKCFpbWFnZT8uZGF0YVVybCkge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoUGhvdG9FZGl0b3JFcnJvcnMuY2FuY2VsKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFpbWFnZS5kYXRhVXJsLmluY2x1ZGVzKCdjYXBhY2l0b3I6Ly9sb2NhbGhvc3QnKSkge1xuICAgICAgICByZXR1cm4gW2ltYWdlLmRhdGFVcmxdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtpbWFnZS5kYXRhVXJsXS5tYXAoYXN5bmMgKGltYWdlKSA9PiBhd2FpdCB0aGlzLmxvYWRQaG90b0Zyb21GaWxlUGF0aChpbWFnZSkpKTtcbiAgICB9XG5cbiAgICBpZiAoZGF0YSA9PT0gJ2FsYnVtJykge1xuICAgICAgY29uc3QgaW1hZ2VzID0gYXdhaXQgQ2FtZXJhLnBpY2tJbWFnZXMoe1xuICAgICAgICBxdWFsaXR5OiAxMDAsXG4gICAgICAgIHdpZHRoOiB0aGlzLiRwaG90b01heFNpemUoKSxcbiAgICAgICAgbGltaXQsXG4gICAgICAgIHByZXNlbnRhdGlvblN0eWxlOiAncG9wb3ZlcicsXG4gICAgICB9KS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpO1xuXG4gICAgICBpZiAoIWltYWdlcykge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoUGhvdG9FZGl0b3JFcnJvcnMuY2FuY2VsKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFByb21pc2UuYWxsKGltYWdlcy5waG90b3MubWFwKGFzeW5jIChpbWFnZSkgPT4gYXdhaXQgdGhpcy5sb2FkUGhvdG9Gcm9tRmlsZVBhdGgoaW1hZ2Uud2ViUGF0aCkpKTtcbiAgICB9XG5cbiAgICAvLyBOb3QgcnVuIG9uIHRoaXMgbGluZS4gVGhpcyBpcyBmb3IgbGludFxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGljdHVyZUZyb21Ccm93c2VyKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBjb25zdCBpbnB1dEZpbGU6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQjYnJvd3NlclBob3RvVXBsb2FkZXInKTtcblxuICAgIGlmICghaW5wdXRGaWxlKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoUGhvdG9FZGl0b3JFcnJvcnMuaW5pdGlhbGl6ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlucHV0RmlsZSEuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgJ2NoYW5nZScsXG4gICAgICAgIChlOiBFdmVudCkgPT4ge1xuICAgICAgICAgIGlmICghKGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmZpbGVzIHx8ICEoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuZmlsZXMhWzBdKSB7XG4gICAgICAgICAgICByZWplY3QoUGhvdG9FZGl0b3JFcnJvcnMuY2FuY2VsKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgZmlsZSA9IChlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5maWxlcyFbMF07XG4gICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcblxuICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGZpbGUudHlwZS5pbmRleE9mKCdpbWFnZScpIDwgMCkge1xuICAgICAgICAgICAgICByZWplY3QoUGhvdG9FZGl0b3JFcnJvcnMudHlwZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBhc3luYyAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgaW5wdXRGaWxlLnZhbHVlID0gJyc7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGV2ZW50LnRhcmdldCEucmVzdWx0IGFzIHN0cmluZztcbiAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMubG9hZFBob3RvRnJvbUZpbGVQYXRoKHJlc3VsdCk7XG4gICAgICAgICAgICAgIHJlc29sdmUoW2RhdGFdKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSkoKTtcblxuICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICAgICAgICB9LFxuICAgICAgICBmYWxzZSxcbiAgICAgICk7XG4gICAgICBpbnB1dEZpbGUuY2xpY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZFBob3RvRnJvbUZpbGVQYXRoKGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGRlZmF1bHRJbnN0YW5jZSA9IG5ldyBJbWFnZUVkaXRvcihkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSwge1xuICAgICAgY3NzTWF4V2lkdGg6IHRoaXMuJHBob3RvTWF4U2l6ZSgpLFxuICAgICAgY3NzTWF4SGVpZ2h0OiB0aGlzLiRwaG90b01heFNpemUoKSxcbiAgICB9KTtcbiAgICBjb25zdCBibG9iID0gYXdhaXQgZmV0Y2goZmlsZVBhdGgpLnRoZW4oKHJlcykgPT4gcmVzLmJsb2IoKSk7XG4gICAgY29uc3QgbG9hZGVkID0gYXdhaXQgZGVmYXVsdEluc3RhbmNlLmxvYWRJbWFnZUZyb21GaWxlKG5ldyBGaWxlKFtibG9iXSwgJ2RhdGEucG5nJywgeyB0eXBlOiBibG9iLnR5cGUgfSkpO1xuXG4gICAgY29uc3QgbWF4U2l6ZSA9IE1hdGgubWF4KGxvYWRlZC5uZXdXaWR0aCwgbG9hZGVkLm5ld0hlaWdodCk7XG4gICAgY29uc3QgZGF0YVVybCA9IGRlZmF1bHRJbnN0YW5jZS50b0RhdGFVUkwoe1xuICAgICAgbXVsdGlwbGllcjogdGhpcy4kcGhvdG9NYXhTaXplKCkgLyBtYXhTaXplLFxuICAgIH0pO1xuICAgIGRlZmF1bHRJbnN0YW5jZS5kZXN0cm95KCk7XG5cbiAgICByZXR1cm4gZGF0YVVybDtcbiAgfVxufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9waG90by1lZGl0b3Ivc3JjL2xpYi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJRmlsdGVyIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIG9wdGlvbjogYW55O1xuICBkYXRhOiBzdHJpbmc7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTaXplIHtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURpY3Rpb25hcnkge1xuICBzYXZlOiBzdHJpbmc7XG4gIGNyb3A6IHN0cmluZztcbiAgZmlsdGVyOiBzdHJpbmc7XG4gIGJyaWdodG5lc3M6IHN0cmluZztcbiAgb3JpZ2luYWw6IHN0cmluZztcbiAgaW52ZXJ0OiBzdHJpbmc7XG4gIHNlcGlhOiBzdHJpbmc7XG4gIHZpbnRhZ2U6IHN0cmluZztcbiAgYmx1cjogc3RyaW5nO1xuICBncmF5c2NhbGU6IHN0cmluZztcbiAgc2hhcnBlbjogc3RyaW5nO1xuICBlbWJvc3M6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRmlsdGVyUHJlc2V0IHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIG9wdGlvbjogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQaG90b0VkaXRvckRpc21pc3Mge1xuICB2YWx1ZTogc3RyaW5nO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9waG90by1lZGl0b3Ivc3JjL2xpYi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJRmlsdGVyIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIG9wdGlvbjogYW55O1xuICBkYXRhOiBzdHJpbmc7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTaXplIHtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURpY3Rpb25hcnlGb3JFZGl0b3Ige1xuICBzYXZlOiBzdHJpbmc7XG4gIGNyb3A6IHN0cmluZztcbiAgZmlsdGVyOiBzdHJpbmc7XG4gIGJyaWdodG5lc3M6IHN0cmluZztcbiAgb3JpZ2luYWw6IHN0cmluZztcbiAgaW52ZXJ0OiBzdHJpbmc7XG4gIHNlcGlhOiBzdHJpbmc7XG4gIHZpbnRhZ2U6IHN0cmluZztcbiAgYmx1cjogc3RyaW5nO1xuICBncmF5c2NhbGU6IHN0cmluZztcbiAgc2hhcnBlbjogc3RyaW5nO1xuICBlbWJvc3M6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRmlsdGVyUHJlc2V0IHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIG9wdGlvbjogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQaG90b0VkaXRvckRpc21pc3Mge1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQaG90b1ZpZXdlckRpc21pc3Mge1xuICBkZWxldGU6IHtcbiAgICBpbmRleDogbnVtYmVyO1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURpY3Rpb25hcnlGb3JWaWV3ZXIge1xuICBkZWxldGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGljdGlvbmFyeUZvclNlcnZpY2Uge1xuICBjYW1lcmE6IHN0cmluZztcbiAgYWxidW06IHN0cmluZztcbiAgY2FuY2VsOiBzdHJpbmc7XG59XG4iXX0=
@@ -1,6 +1,8 @@
1
1
  /*
2
2
  * Public API Surface of photo-editor
3
3
  */
4
- export * from './lib/page/photo-editor.page';
4
+ export * from './lib/pages/photo-editor.page';
5
+ export * from './lib/pages/photo-viewer.page';
6
+ export * from './lib/service/photo-file.service';
5
7
  export * from './lib/types';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3Bob3RvLWVkaXRvci9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHBob3RvLWVkaXRvclxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhZ2UvcGhvdG8tZWRpdG9yLnBhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHlwZXMnO1xuIl19
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3Bob3RvLWVkaXRvci9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBwaG90by1lZGl0b3JcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYWdlcy9waG90by1lZGl0b3IucGFnZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYWdlcy9waG90by12aWV3ZXIucGFnZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3Bob3RvLWZpbGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90eXBlcyc7XG4iXX0=