@acorex/core 6.0.9 → 6.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/esm2020/file/acorex-core-file.mjs +5 -0
  2. package/esm2020/file/public-api.mjs +6 -0
  3. package/esm2020/file/src/file-download-ref.class.mjs +12 -0
  4. package/esm2020/file/src/file-download-result.class.mjs +47 -0
  5. package/esm2020/file/src/file-upload-ref.class.mjs +12 -0
  6. package/esm2020/file/src/file.module.mjs +19 -0
  7. package/esm2020/file/src/file.service.mjs +79 -0
  8. package/esm2020/image/acorex-core-image.mjs +5 -0
  9. package/esm2020/image/public-api.mjs +3 -0
  10. package/esm2020/image/src/image.module.mjs +19 -0
  11. package/esm2020/image/src/image.service.mjs +43 -0
  12. package/fesm2015/acorex-core-file.mjs +170 -0
  13. package/fesm2015/acorex-core-file.mjs.map +1 -0
  14. package/fesm2015/acorex-core-image.mjs +69 -0
  15. package/fesm2015/acorex-core-image.mjs.map +1 -0
  16. package/fesm2020/acorex-core-file.mjs +170 -0
  17. package/fesm2020/acorex-core-file.mjs.map +1 -0
  18. package/fesm2020/acorex-core-image.mjs +66 -0
  19. package/fesm2020/acorex-core-image.mjs.map +1 -0
  20. package/file/acorex-core-file.d.ts.map +1 -0
  21. package/file/index.d.ts +5 -0
  22. package/file/public-api.d.ts +5 -0
  23. package/file/public-api.d.ts.map +1 -0
  24. package/file/src/file-download-ref.class.d.ts +6 -0
  25. package/file/src/file-download-ref.class.d.ts.map +1 -0
  26. package/file/src/file-download-result.class.d.ts +8 -0
  27. package/file/src/file-download-result.class.d.ts.map +1 -0
  28. package/file/src/file-upload-ref.class.d.ts +5 -0
  29. package/file/src/file-upload-ref.class.d.ts.map +1 -0
  30. package/file/src/file.module.d.ts +7 -0
  31. package/file/src/file.module.d.ts.map +1 -0
  32. package/file/src/file.service.d.ts +17 -0
  33. package/file/src/file.service.d.ts.map +1 -0
  34. package/image/index.d.ts +5 -0
  35. package/image/public-api.d.ts +2 -0
  36. package/image/src/image.module.d.ts +7 -0
  37. package/image/src/image.service.d.ts +12 -0
  38. package/package.json +17 -1
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvcmUtZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb3JlL2ZpbGUvYWNvcmV4LWNvcmUtZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,6 @@
1
+ export * from './src/file-download-ref.class';
2
+ export * from './src/file-download-result.class';
3
+ export * from './src/file-upload-ref.class';
4
+ export * from './src/file.service';
5
+ export * from './src/file.module';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb3JlL2ZpbGUvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIgZXhwb3J0ICogZnJvbSAnLi9zcmMvZmlsZS1kb3dubG9hZC1yZWYuY2xhc3MnO1xyXG4gZXhwb3J0ICogZnJvbSAnLi9zcmMvZmlsZS1kb3dubG9hZC1yZXN1bHQuY2xhc3MnO1xyXG4gZXhwb3J0ICogZnJvbSAnLi9zcmMvZmlsZS11cGxvYWQtcmVmLmNsYXNzJztcclxuIGV4cG9ydCAqIGZyb20gJy4vc3JjL2ZpbGUuc2VydmljZSc7XHJcbiBleHBvcnQgKiBmcm9tICcuL3NyYy9maWxlLm1vZHVsZSc7Il19
@@ -0,0 +1,12 @@
1
+ export class AXFileDownloadRef extends Promise {
2
+ constructor(executor) {
3
+ super(executor);
4
+ }
5
+ //abort the operation
6
+ abort() {
7
+ if (this.abortMethod) {
8
+ this.abortMethod();
9
+ }
10
+ }
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kb3dubG9hZC1yZWYuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9maWxlL3NyYy9maWxlLWRvd25sb2FkLXJlZi5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8saUJBQWtCLFNBQVEsT0FBNkI7SUFHaEUsWUFBWSxRQUFnSDtRQUN4SCxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFcEIsQ0FBQztJQUNELHFCQUFxQjtJQUNkLEtBQUs7UUFDUixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3RCO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhGaWxlRG93bmxvYWRSZXN1bHQgfSBmcm9tIFwiLi9maWxlLWRvd25sb2FkLXJlc3VsdC5jbGFzc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFYRmlsZURvd25sb2FkUmVmIGV4dGVuZHMgUHJvbWlzZTxBWEZpbGVEb3dubG9hZFJlc3VsdD5cclxue1xyXG4gICAgcHVibGljIGFib3J0TWV0aG9kOiAoKSA9PiB2b2lkO1xyXG4gICAgY29uc3RydWN0b3IoZXhlY3V0b3I6IChyZXNvbHZlOiAodmFsdWU/OiBQcm9taXNlTGlrZTxBWEZpbGVEb3dubG9hZFJlc3VsdD4pID0+IHZvaWQsIHJlamVjdDogKHJlYXNvbj86IGFueSkgPT4gdm9pZCkgPT4gdm9pZCkge1xyXG4gICAgICAgIHN1cGVyKGV4ZWN1dG9yKTtcclxuXHJcbiAgICB9XHJcbiAgICAvL2Fib3J0IHRoZSBvcGVyYXRpb25cclxuICAgIHB1YmxpYyBhYm9ydCgpIHtcclxuICAgICAgICBpZiAodGhpcy5hYm9ydE1ldGhvZCkge1xyXG4gICAgICAgICAgICB0aGlzLmFib3J0TWV0aG9kKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
@@ -0,0 +1,47 @@
1
+ export class AXFileDownloadResult {
2
+ constructor(response) {
3
+ this._response = response;
4
+ }
5
+ save(filename) {
6
+ this._defaultBrowserDownload(filename);
7
+ return Promise.resolve();
8
+ // else {
9
+ // return new Promise((resolve, reject) => {
10
+ // const button = document.createElement("button");
11
+ // button.addEventListener('click', async () => {
12
+ // debugger
13
+ // button.remove();
14
+ // const opts = {
15
+ // types: [{
16
+ // description: 'Save File',
17
+ // suggestedName: filename
18
+ // // accept: {'text/plain': ['.txt']},
19
+ // }],
20
+ // };
21
+ // const result = await window['showSaveFilePicker'](opts);
22
+ // console.log(result);
23
+ // resolve();
24
+ // });
25
+ // button.click();
26
+ // });
27
+ // }
28
+ }
29
+ blob() {
30
+ return this._response;
31
+ }
32
+ base64() {
33
+ return new Promise((resolve, reject) => {
34
+ var reader = new window.FileReader();
35
+ reader.onloadend = () => resolve(reader.result);
36
+ reader.onerror = (e) => reject(e);
37
+ reader.readAsDataURL(this._response);
38
+ });
39
+ }
40
+ _defaultBrowserDownload(filename = 'download') {
41
+ const link = document.createElement("a");
42
+ link.href = URL.createObjectURL(this._response);
43
+ link.download = filename;
44
+ link.click();
45
+ }
46
+ }
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kb3dubG9hZC1yZXN1bHQuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9maWxlL3NyYy9maWxlLWRvd25sb2FkLXJlc3VsdC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sb0JBQW9CO0lBSTdCLFlBQVksUUFBYztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxDQUFDLFFBQWlCO1FBQ2xCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2QyxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN6QixTQUFTO1FBQ1QsNENBQTRDO1FBQzVDLHVEQUF1RDtRQUN2RCxxREFBcUQ7UUFDckQsbUJBQW1CO1FBQ25CLDJCQUEyQjtRQUMzQix5QkFBeUI7UUFDekIsd0JBQXdCO1FBQ3hCLDRDQUE0QztRQUM1QywwQ0FBMEM7UUFDMUMseURBQXlEO1FBQ3pELGtCQUFrQjtRQUNsQixhQUFhO1FBQ2IsbUVBQW1FO1FBQ25FLCtCQUErQjtRQUUvQixxQkFBcUI7UUFDckIsVUFBVTtRQUNWLHNCQUFzQjtRQUN0QixNQUFNO1FBRU4sSUFBSTtJQUNSLENBQUM7SUFHRCxJQUFJO1FBQ0EsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxNQUFNO1FBQ0YsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNuQyxJQUFJLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNyQyxNQUFNLENBQUMsU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBZ0IsQ0FBQyxDQUFDO1lBQzFELE1BQU0sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxXQUFtQixVQUFVO1FBQ3pELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEFYRmlsZURvd25sb2FkUmVzdWx0IHtcclxuXHJcbiAgICBfcmVzcG9uc2U6IEJsb2I7XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVzcG9uc2U6IEJsb2IpIHtcclxuICAgICAgICB0aGlzLl9yZXNwb25zZSA9IHJlc3BvbnNlO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmUoZmlsZW5hbWU/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICB0aGlzLl9kZWZhdWx0QnJvd3NlckRvd25sb2FkKGZpbGVuYW1lKTtcclxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XHJcbiAgICAgICAgLy8gZWxzZSB7XHJcbiAgICAgICAgLy8gcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAvLyAgICAgY29uc3QgYnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiKTtcclxuICAgICAgICAvLyAgICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIC8vICAgICAgICAgZGVidWdnZXJcclxuICAgICAgICAvLyAgICAgICAgIGJ1dHRvbi5yZW1vdmUoKTtcclxuICAgICAgICAvLyAgICAgICAgIGNvbnN0IG9wdHMgPSB7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgdHlwZXM6IFt7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnU2F2ZSBGaWxlJyxcclxuICAgICAgICAvLyAgICAgICAgICAgICAgICAgc3VnZ2VzdGVkTmFtZTogZmlsZW5hbWVcclxuICAgICAgICAvLyAgICAgICAgICAgICAgICAgLy8gICBhY2NlcHQ6IHsndGV4dC9wbGFpbic6IFsnLnR4dCddfSxcclxuICAgICAgICAvLyAgICAgICAgICAgICB9XSxcclxuICAgICAgICAvLyAgICAgICAgIH07XHJcbiAgICAgICAgLy8gICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB3aW5kb3dbJ3Nob3dTYXZlRmlsZVBpY2tlciddKG9wdHMpO1xyXG4gICAgICAgIC8vICAgICAgICAgY29uc29sZS5sb2cocmVzdWx0KTtcclxuXHJcbiAgICAgICAgLy8gICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgICAgLy8gICAgIH0pO1xyXG4gICAgICAgIC8vICAgICBidXR0b24uY2xpY2soKTtcclxuICAgICAgICAvLyB9KTtcclxuXHJcbiAgICAgICAgLy8gfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBibG9iKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNwb25zZTtcclxuICAgIH1cclxuXHJcbiAgICBiYXNlNjQoKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICB2YXIgcmVhZGVyID0gbmV3IHdpbmRvdy5GaWxlUmVhZGVyKCk7XHJcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWRlbmQgPSAoKSA9PiByZXNvbHZlKHJlYWRlci5yZXN1bHQgYXMgc3RyaW5nKTtcclxuICAgICAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSAoZSkgPT4gcmVqZWN0KGUpO1xyXG4gICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTCh0aGlzLl9yZXNwb25zZSk7XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9kZWZhdWx0QnJvd3NlckRvd25sb2FkKGZpbGVuYW1lOiBzdHJpbmcgPSAnZG93bmxvYWQnKSB7XHJcbiAgICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO1xyXG4gICAgICAgIGxpbmsuaHJlZiA9IFVSTC5jcmVhdGVPYmplY3RVUkwodGhpcy5fcmVzcG9uc2UpO1xyXG4gICAgICAgIGxpbmsuZG93bmxvYWQgPSBmaWxlbmFtZTtcclxuICAgICAgICBsaW5rLmNsaWNrKCk7XHJcbiAgICB9XHJcbn0iXX0=
@@ -0,0 +1,12 @@
1
+ export class AXFileUploadRef extends Promise {
2
+ constructor(executor) {
3
+ super(executor);
4
+ }
5
+ //abort the operation
6
+ abort() {
7
+ if (this.abortMethod) {
8
+ this.abortMethod();
9
+ }
10
+ }
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQtcmVmLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvZmlsZS9zcmMvZmlsZS11cGxvYWQtcmVmLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxlQUF5QixTQUFRLE9BQVU7SUFHcEQsWUFBWSxRQUE2RjtRQUNyRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFcEIsQ0FBQztJQUNELHFCQUFxQjtJQUNkLEtBQUs7UUFDUixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3RCO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEFYRmlsZVVwbG9hZFJlZjxUID0gYW55PiBleHRlbmRzIFByb21pc2U8VD5cclxue1xyXG4gICAgcHVibGljIGFib3J0TWV0aG9kOiAoKSA9PiB2b2lkO1xyXG4gICAgY29uc3RydWN0b3IoZXhlY3V0b3I6IChyZXNvbHZlOiAodmFsdWU/OiBQcm9taXNlTGlrZTxUPikgPT4gdm9pZCwgcmVqZWN0OiAocmVhc29uPzogYW55KSA9PiB2b2lkKSA9PiB2b2lkKSB7XHJcbiAgICAgICAgc3VwZXIoZXhlY3V0b3IpO1xyXG5cclxuICAgIH1cclxuICAgIC8vYWJvcnQgdGhlIG9wZXJhdGlvblxyXG4gICAgcHVibGljIGFib3J0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLmFib3J0TWV0aG9kKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWJvcnRNZXRob2QoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iXX0=
@@ -0,0 +1,19 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { AXFileService } from './file.service';
4
+ import * as i0 from "@angular/core";
5
+ export class AXFileModule {
6
+ }
7
+ AXFileModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXFileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ AXFileModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: AXFileModule, imports: [CommonModule] });
9
+ AXFileModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXFileModule, providers: [AXFileService], imports: [CommonModule] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXFileModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ declarations: [],
14
+ imports: [CommonModule],
15
+ exports: [],
16
+ providers: [AXFileService],
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9maWxlL3NyYy9maWxlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBVS9DLE1BQU0sT0FBTyxZQUFZOzt5R0FBWixZQUFZOzBHQUFaLFlBQVksWUFKWCxZQUFZOzBHQUliLFlBQVksYUFGVixDQUFDLGFBQWEsQ0FBQyxZQUZoQixZQUFZOzJGQUliLFlBQVk7a0JBTnhCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsU0FBUyxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUM3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFYRmlsZVNlcnZpY2UgfSBmcm9tICcuL2ZpbGUuc2VydmljZSc7XHJcblxyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFtdLFxyXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgICBleHBvcnRzOiBbXSxcclxuICAgIHByb3ZpZGVyczogW0FYRmlsZVNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhGaWxlTW9kdWxlIHsgfSJdfQ==
@@ -0,0 +1,79 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ import { AXFileDownloadRef } from './file-download-ref.class';
4
+ import { AXFileDownloadResult } from './file-download-result.class';
5
+ import { AXFileUploadRef } from './file-upload-ref.class';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common/http";
8
+ export class AXFileService {
9
+ constructor(_httpClient) {
10
+ this._httpClient = _httpClient;
11
+ }
12
+ download(request) {
13
+ let s;
14
+ const promiseFunc = (resolve, reject) => {
15
+ //TODO: add custome http request
16
+ //const headers = new HttpHeaders().set('authorization','Bearer '+token);
17
+ let b;
18
+ if (typeof request === 'string') {
19
+ b = this._httpClient.get(request, { responseType: 'blob' });
20
+ }
21
+ else if (b instanceof (Observable)) {
22
+ b = request;
23
+ }
24
+ s = b?.subscribe({
25
+ next: (v) => resolve(new AXFileDownloadResult(v)),
26
+ error: (e) => reject(e)
27
+ });
28
+ };
29
+ const a = new AXFileDownloadRef(promiseFunc);
30
+ a.abort = () => {
31
+ s?.unsubscribe();
32
+ };
33
+ return a;
34
+ }
35
+ upload(url, files) {
36
+ let s;
37
+ let formData = new FormData();
38
+ files.forEach(f => {
39
+ formData.append("files", f);
40
+ });
41
+ const promiseFunc = (resolve, reject) => {
42
+ let b;
43
+ b = this._httpClient.post(url, formData);
44
+ s = b?.subscribe({
45
+ next: (v) => resolve(v),
46
+ error: (e) => reject(e)
47
+ });
48
+ };
49
+ const a = new AXFileUploadRef(promiseFunc);
50
+ a.abort = () => {
51
+ s?.unsubscribe();
52
+ };
53
+ return a;
54
+ }
55
+ choose(options) {
56
+ return new Promise((resolve, reject) => {
57
+ options = Object.assign({ multiple: false }, options);
58
+ const input = document.createElement("input");
59
+ input.type = 'file';
60
+ input.accept = options.accept;
61
+ input.multiple = options.multiple;
62
+ input.onchange = () => {
63
+ resolve(Array.from(input.files));
64
+ input.remove();
65
+ };
66
+ input.onerror = (e) => {
67
+ reject(e);
68
+ input.remove();
69
+ };
70
+ input.click();
71
+ });
72
+ }
73
+ }
74
+ AXFileService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXFileService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
75
+ AXFileService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXFileService });
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXFileService, decorators: [{
77
+ type: Injectable
78
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvZmlsZS9zcmMvZmlsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFJMUQsTUFBTSxPQUFPLGFBQWE7SUFDdEIsWUFBb0IsV0FBdUI7UUFBdkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7SUFBSSxDQUFDO0lBRXpDLFFBQVEsQ0FBQyxPQUFrQztRQUM5QyxJQUFJLENBQWUsQ0FBQztRQUNwQixNQUFNLFdBQVcsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNwQyxnQ0FBZ0M7WUFDaEMseUVBQXlFO1lBQ3pFLElBQUksQ0FBbUIsQ0FBQztZQUN4QixJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRTtnQkFDN0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO2FBQy9EO2lCQUNJLElBQUksQ0FBQyxhQUFZLFVBQWdCLENBQUEsRUFBRTtnQkFDcEMsQ0FBQyxHQUFHLE9BQU8sQ0FBQzthQUNmO1lBQ0QsQ0FBQyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUM7Z0JBQ2IsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDakQsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2FBQzFCLENBQUMsQ0FBQTtRQUNOLENBQUMsQ0FBQztRQUVGLE1BQU0sQ0FBQyxHQUFHLElBQUksaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0MsQ0FBQyxDQUFDLEtBQUssR0FBRyxHQUFHLEVBQUU7WUFDWCxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDO1FBRUYsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRU0sTUFBTSxDQUFVLEdBQVcsRUFBRSxLQUFhO1FBQzdDLElBQUksQ0FBZSxDQUFDO1FBQ3BCLElBQUksUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDOUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNkLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFBO1FBQ0YsTUFBTSxXQUFXLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDcEMsSUFBSSxDQUFnQixDQUFDO1lBQ3JCLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBSSxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFFNUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUM7Z0JBQ2IsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDMUIsQ0FBQyxDQUFBO1FBQ04sQ0FBQyxDQUFDO1FBRUYsTUFBTSxDQUFDLEdBQUcsSUFBSSxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLEtBQUssR0FBRyxHQUFHLEVBQUU7WUFDWCxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDO1FBQ0YsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQWlEO1FBQzNELE9BQU8sSUFBSSxPQUFPLENBQVMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDM0MsT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDdEQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5QyxLQUFLLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztZQUNwQixLQUFLLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDOUIsS0FBSyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1lBQ2xDLEtBQUssQ0FBQyxRQUFRLEdBQUcsR0FBRyxFQUFFO2dCQUNsQixPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDakMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25CLENBQUMsQ0FBQTtZQUNELEtBQUssQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDbEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNWLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuQixDQUFDLENBQUM7WUFDRixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzswR0FyRVEsYUFBYTs4R0FBYixhQUFhOzJGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwQ29udGV4dCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFYRmlsZURvd25sb2FkUmVmIH0gZnJvbSAnLi9maWxlLWRvd25sb2FkLXJlZi5jbGFzcyc7XHJcbmltcG9ydCB7IEFYRmlsZURvd25sb2FkUmVzdWx0IH0gZnJvbSAnLi9maWxlLWRvd25sb2FkLXJlc3VsdC5jbGFzcyc7XHJcbmltcG9ydCB7IEFYRmlsZVVwbG9hZFJlZiB9IGZyb20gJy4vZmlsZS11cGxvYWQtcmVmLmNsYXNzJztcclxuXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBWEZpbGVTZXJ2aWNlIHtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2h0dHBDbGllbnQ6IEh0dHBDbGllbnQpIHsgfVxyXG5cclxuICAgIHB1YmxpYyBkb3dubG9hZChyZXF1ZXN0OiBzdHJpbmcgfCBPYnNlcnZhYmxlPEJsb2I+KTogQVhGaWxlRG93bmxvYWRSZWYge1xyXG4gICAgICAgIGxldCBzOiBTdWJzY3JpcHRpb247XHJcbiAgICAgICAgY29uc3QgcHJvbWlzZUZ1bmMgPSAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIC8vVE9ETzogYWRkIGN1c3RvbWUgaHR0cCByZXF1ZXN0XHJcbiAgICAgICAgICAgIC8vY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgnYXV0aG9yaXphdGlvbicsJ0JlYXJlciAnK3Rva2VuKTtcclxuICAgICAgICAgICAgbGV0IGI6IE9ic2VydmFibGU8QmxvYj47XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcmVxdWVzdCA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgIGIgPSB0aGlzLl9odHRwQ2xpZW50LmdldChyZXF1ZXN0LCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGIgaW5zdGFuY2VvZiBPYnNlcnZhYmxlPEJsb2I+KSB7XHJcbiAgICAgICAgICAgICAgICBiID0gcmVxdWVzdDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzID0gYj8uc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICAgIG5leHQ6ICh2KSA9PiByZXNvbHZlKG5ldyBBWEZpbGVEb3dubG9hZFJlc3VsdCh2KSksXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogKGUpID0+IHJlamVjdChlKVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGNvbnN0IGEgPSBuZXcgQVhGaWxlRG93bmxvYWRSZWYocHJvbWlzZUZ1bmMpO1xyXG4gICAgICAgIGEuYWJvcnQgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIHM/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGE7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHVwbG9hZDxUID0gYW55Pih1cmw6IHN0cmluZywgZmlsZXM6IEZpbGVbXSk6IEFYRmlsZVVwbG9hZFJlZjxUPiB7XHJcbiAgICAgICAgbGV0IHM6IFN1YnNjcmlwdGlvbjtcclxuICAgICAgICBsZXQgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgICAgICBmaWxlcy5mb3JFYWNoKGYgPT4ge1xyXG4gICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoXCJmaWxlc1wiLCBmKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIGNvbnN0IHByb21pc2VGdW5jID0gKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgYjogT2JzZXJ2YWJsZTxUPjtcclxuICAgICAgICAgICAgYiA9IHRoaXMuX2h0dHBDbGllbnQucG9zdDxUPih1cmwsIGZvcm1EYXRhKTtcclxuXHJcbiAgICAgICAgICAgIHMgPSBiPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgbmV4dDogKHYpID0+IHJlc29sdmUodiksXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogKGUpID0+IHJlamVjdChlKVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGNvbnN0IGEgPSBuZXcgQVhGaWxlVXBsb2FkUmVmKHByb21pc2VGdW5jKTtcclxuICAgICAgICBhLmFib3J0ID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBzPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIGE7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNob29zZShvcHRpb25zPzogeyBhY2NlcHQ/OiBzdHJpbmcsIG11bHRpcGxlPzogYm9vbGVhbiB9KTogUHJvbWlzZTxGaWxlW10+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8RmlsZVtdPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIG9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHsgbXVsdGlwbGU6IGZhbHNlIH0sIG9wdGlvbnMpO1xyXG4gICAgICAgICAgICBjb25zdCBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiKTtcclxuICAgICAgICAgICAgaW5wdXQudHlwZSA9ICdmaWxlJztcclxuICAgICAgICAgICAgaW5wdXQuYWNjZXB0ID0gb3B0aW9ucy5hY2NlcHQ7XHJcbiAgICAgICAgICAgIGlucHV0Lm11bHRpcGxlID0gb3B0aW9ucy5tdWx0aXBsZTtcclxuICAgICAgICAgICAgaW5wdXQub25jaGFuZ2UgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKEFycmF5LmZyb20oaW5wdXQuZmlsZXMpKTtcclxuICAgICAgICAgICAgICAgIGlucHV0LnJlbW92ZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlucHV0Lm9uZXJyb3IgPSAoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmVqZWN0KGUpO1xyXG4gICAgICAgICAgICAgICAgaW5wdXQucmVtb3ZlKCk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIGlucHV0LmNsaWNrKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvcmUtaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29yZS9pbWFnZS9hY29yZXgtY29yZS1pbWFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,3 @@
1
+ export * from './src/image.service';
2
+ export * from './src/image.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb3JlL2ltYWdlL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIGV4cG9ydCAqIGZyb20gJy4vc3JjL2ltYWdlLnNlcnZpY2UnO1xyXG4gZXhwb3J0ICogZnJvbSAnLi9zcmMvaW1hZ2UubW9kdWxlJzsiXX0=
@@ -0,0 +1,19 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { AXImageService } from './image.service';
4
+ import * as i0 from "@angular/core";
5
+ export class AXImageModule {
6
+ }
7
+ AXImageModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXImageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ AXImageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: AXImageModule, imports: [CommonModule] });
9
+ AXImageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXImageModule, providers: [AXImageService], imports: [CommonModule] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXImageModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ declarations: [],
14
+ imports: [CommonModule],
15
+ exports: [],
16
+ providers: [AXImageService],
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvcmUvaW1hZ2Uvc3JjL2ltYWdlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBVWpELE1BQU0sT0FBTyxhQUFhOzswR0FBYixhQUFhOzJHQUFiLGFBQWEsWUFKWixZQUFZOzJHQUliLGFBQWEsYUFGWCxDQUFDLGNBQWMsQ0FBQyxZQUZqQixZQUFZOzJGQUliLGFBQWE7a0JBTnpCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsU0FBUyxFQUFFLENBQUMsY0FBYyxDQUFDO2lCQUM5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQVhJbWFnZVNlcnZpY2UgfSBmcm9tICcuL2ltYWdlLnNlcnZpY2UnO1xuXG5cblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtdLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtdLFxuICAgIHByb3ZpZGVyczogW0FYSW1hZ2VTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhJbWFnZU1vZHVsZSB7IH0iXX0=
@@ -0,0 +1,43 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class AXImageService {
4
+ constructor() { }
5
+ async resize(options) {
6
+ debugger;
7
+ options = Object.assign({ type: 'image/png', quality: 1 }, options);
8
+ let image;
9
+ if (options.source instanceof File) {
10
+ var a = new Image();
11
+ a.src = URL.createObjectURL(options.source);
12
+ await new Promise((res) => a.onload = res);
13
+ image = a;
14
+ }
15
+ else {
16
+ image = options.source;
17
+ }
18
+ // Resize the image
19
+ var canvas = document.createElement('canvas'), width = image.width, height = image.height;
20
+ if (width > height) {
21
+ if (width > options.maxSize) {
22
+ height *= options.maxSize / width;
23
+ width = options.maxSize;
24
+ }
25
+ }
26
+ else {
27
+ if (height > options.maxSize) {
28
+ width *= options.maxSize / height;
29
+ height = options.maxSize;
30
+ }
31
+ }
32
+ canvas.width = width;
33
+ canvas.height = height;
34
+ canvas.getContext('2d').drawImage(image, 0, 0, width, height);
35
+ return new Promise((resolve) => canvas.toBlob(resolve, options.type, options.quality));
36
+ }
37
+ }
38
+ AXImageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXImageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
39
+ AXImageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXImageService });
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXImageService, decorators: [{
41
+ type: Injectable
42
+ }], ctorParameters: function () { return []; } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb3JlL2ltYWdlL3NyYy9pbWFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDLE1BQU0sT0FBTyxjQUFjO0lBQ3ZCLGdCQUFnQixDQUFDO0lBR2pCLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBaUk7UUFDMUksUUFBUSxDQUFBO1FBQ1IsT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVwRSxJQUFJLEtBQXVCLENBQUM7UUFDNUIsSUFBSSxPQUFPLENBQUMsTUFBTSxZQUFZLElBQUksRUFBRTtZQUNoQyxJQUFJLENBQUMsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFBO1lBQ25CLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUMsTUFBTSxJQUFJLE9BQU8sQ0FBUSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQztZQUNsRCxLQUFLLEdBQUcsQ0FBQyxDQUFDO1NBQ2I7YUFDSTtZQUNELEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1NBQzFCO1FBRUQsbUJBQW1CO1FBQ25CLElBQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQ3pDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxFQUNuQixNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMxQixJQUFJLEtBQUssR0FBRyxNQUFNLEVBQUU7WUFDaEIsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRTtnQkFDekIsTUFBTSxJQUFJLE9BQU8sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNsQyxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQzthQUMzQjtTQUNKO2FBQU07WUFDSCxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFO2dCQUMxQixLQUFLLElBQUksT0FBTyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7Z0JBQ2xDLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO2FBQzVCO1NBQ0o7UUFDRCxNQUFNLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNyQixNQUFNLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUN2QixNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDOUQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMzRixDQUFDOzsyR0F0Q1EsY0FBYzsrR0FBZCxjQUFjOzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBBWEltYWdlU2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuXHJcbiAgICBhc3luYyByZXNpemUob3B0aW9uczogeyBtYXhTaXplOiBudW1iZXIsIHNvdXJjZTogSFRNTEltYWdlRWxlbWVudCB8IEZpbGUsIHR5cGU/OiAnaW1hZ2UvcG5nJyB8ICdpbWFnZS9qcGVnJyB8ICdpbWFnZS93ZWJwJywgcXVhbGl0eT86IG51bWJlciB9KTogUHJvbWlzZTxCbG9iPiB7XHJcbiAgICAgICAgZGVidWdnZXJcclxuICAgICAgICBvcHRpb25zID0gT2JqZWN0LmFzc2lnbih7IHR5cGU6ICdpbWFnZS9wbmcnLCBxdWFsaXR5OiAxIH0sIG9wdGlvbnMpO1xyXG5cclxuICAgICAgICBsZXQgaW1hZ2U6IEhUTUxJbWFnZUVsZW1lbnQ7XHJcbiAgICAgICAgaWYgKG9wdGlvbnMuc291cmNlIGluc3RhbmNlb2YgRmlsZSkge1xyXG4gICAgICAgICAgICB2YXIgYSA9IG5ldyBJbWFnZSgpXHJcbiAgICAgICAgICAgIGEuc3JjID0gVVJMLmNyZWF0ZU9iamVjdFVSTChvcHRpb25zLnNvdXJjZSk7XHJcbiAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlPEV2ZW50PigocmVzKSA9PiBhLm9ubG9hZCA9IHJlcyk7XHJcbiAgICAgICAgICAgIGltYWdlID0gYTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGltYWdlID0gb3B0aW9ucy5zb3VyY2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBSZXNpemUgdGhlIGltYWdlXHJcbiAgICAgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpLFxyXG4gICAgICAgICAgICB3aWR0aCA9IGltYWdlLndpZHRoLFxyXG4gICAgICAgICAgICBoZWlnaHQgPSBpbWFnZS5oZWlnaHQ7XHJcbiAgICAgICAgaWYgKHdpZHRoID4gaGVpZ2h0KSB7XHJcbiAgICAgICAgICAgIGlmICh3aWR0aCA+IG9wdGlvbnMubWF4U2l6ZSkge1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0ICo9IG9wdGlvbnMubWF4U2l6ZSAvIHdpZHRoO1xyXG4gICAgICAgICAgICAgICAgd2lkdGggPSBvcHRpb25zLm1heFNpemU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoaGVpZ2h0ID4gb3B0aW9ucy5tYXhTaXplKSB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aCAqPSBvcHRpb25zLm1heFNpemUgLyBoZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQgPSBvcHRpb25zLm1heFNpemU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY2FudmFzLndpZHRoID0gd2lkdGg7XHJcbiAgICAgICAgY2FudmFzLmhlaWdodCA9IGhlaWdodDtcclxuICAgICAgICBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKS5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDAsIHdpZHRoLCBoZWlnaHQpO1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gY2FudmFzLnRvQmxvYihyZXNvbHZlLCBvcHRpb25zLnR5cGUsIG9wdGlvbnMucXVhbGl0eSkpO1xyXG4gICAgfVxyXG59Il19
@@ -0,0 +1,170 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, NgModule } from '@angular/core';
3
+ import { Observable } from 'rxjs';
4
+ import * as i1 from '@angular/common/http';
5
+ import { CommonModule } from '@angular/common';
6
+
7
+ class AXFileDownloadRef extends Promise {
8
+ constructor(executor) {
9
+ super(executor);
10
+ }
11
+ //abort the operation
12
+ abort() {
13
+ if (this.abortMethod) {
14
+ this.abortMethod();
15
+ }
16
+ }
17
+ }
18
+
19
+ class AXFileDownloadResult {
20
+ constructor(response) {
21
+ this._response = response;
22
+ }
23
+ save(filename) {
24
+ this._defaultBrowserDownload(filename);
25
+ return Promise.resolve();
26
+ // else {
27
+ // return new Promise((resolve, reject) => {
28
+ // const button = document.createElement("button");
29
+ // button.addEventListener('click', async () => {
30
+ // debugger
31
+ // button.remove();
32
+ // const opts = {
33
+ // types: [{
34
+ // description: 'Save File',
35
+ // suggestedName: filename
36
+ // // accept: {'text/plain': ['.txt']},
37
+ // }],
38
+ // };
39
+ // const result = await window['showSaveFilePicker'](opts);
40
+ // console.log(result);
41
+ // resolve();
42
+ // });
43
+ // button.click();
44
+ // });
45
+ // }
46
+ }
47
+ blob() {
48
+ return this._response;
49
+ }
50
+ base64() {
51
+ return new Promise((resolve, reject) => {
52
+ var reader = new window.FileReader();
53
+ reader.onloadend = () => resolve(reader.result);
54
+ reader.onerror = (e) => reject(e);
55
+ reader.readAsDataURL(this._response);
56
+ });
57
+ }
58
+ _defaultBrowserDownload(filename = 'download') {
59
+ const link = document.createElement("a");
60
+ link.href = URL.createObjectURL(this._response);
61
+ link.download = filename;
62
+ link.click();
63
+ }
64
+ }
65
+
66
+ class AXFileUploadRef extends Promise {
67
+ constructor(executor) {
68
+ super(executor);
69
+ }
70
+ //abort the operation
71
+ abort() {
72
+ if (this.abortMethod) {
73
+ this.abortMethod();
74
+ }
75
+ }
76
+ }
77
+
78
+ class AXFileService {
79
+ constructor(_httpClient) {
80
+ this._httpClient = _httpClient;
81
+ }
82
+ download(request) {
83
+ let s;
84
+ const promiseFunc = (resolve, reject) => {
85
+ //TODO: add custome http request
86
+ //const headers = new HttpHeaders().set('authorization','Bearer '+token);
87
+ let b;
88
+ if (typeof request === 'string') {
89
+ b = this._httpClient.get(request, { responseType: 'blob' });
90
+ }
91
+ else if (b instanceof (Observable)) {
92
+ b = request;
93
+ }
94
+ s = b === null || b === void 0 ? void 0 : b.subscribe({
95
+ next: (v) => resolve(new AXFileDownloadResult(v)),
96
+ error: (e) => reject(e)
97
+ });
98
+ };
99
+ const a = new AXFileDownloadRef(promiseFunc);
100
+ a.abort = () => {
101
+ s === null || s === void 0 ? void 0 : s.unsubscribe();
102
+ };
103
+ return a;
104
+ }
105
+ upload(url, files) {
106
+ let s;
107
+ let formData = new FormData();
108
+ files.forEach(f => {
109
+ formData.append("files", f);
110
+ });
111
+ const promiseFunc = (resolve, reject) => {
112
+ let b;
113
+ b = this._httpClient.post(url, formData);
114
+ s = b === null || b === void 0 ? void 0 : b.subscribe({
115
+ next: (v) => resolve(v),
116
+ error: (e) => reject(e)
117
+ });
118
+ };
119
+ const a = new AXFileUploadRef(promiseFunc);
120
+ a.abort = () => {
121
+ s === null || s === void 0 ? void 0 : s.unsubscribe();
122
+ };
123
+ return a;
124
+ }
125
+ choose(options) {
126
+ return new Promise((resolve, reject) => {
127
+ options = Object.assign({ multiple: false }, options);
128
+ const input = document.createElement("input");
129
+ input.type = 'file';
130
+ input.accept = options.accept;
131
+ input.multiple = options.multiple;
132
+ input.onchange = () => {
133
+ resolve(Array.from(input.files));
134
+ input.remove();
135
+ };
136
+ input.onerror = (e) => {
137
+ reject(e);
138
+ input.remove();
139
+ };
140
+ input.click();
141
+ });
142
+ }
143
+ }
144
+ AXFileService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXFileService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
145
+ AXFileService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXFileService });
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXFileService, decorators: [{
147
+ type: Injectable
148
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
149
+
150
+ class AXFileModule {
151
+ }
152
+ AXFileModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXFileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
153
+ AXFileModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: AXFileModule, imports: [CommonModule] });
154
+ AXFileModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXFileModule, providers: [AXFileService], imports: [CommonModule] });
155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXFileModule, decorators: [{
156
+ type: NgModule,
157
+ args: [{
158
+ declarations: [],
159
+ imports: [CommonModule],
160
+ exports: [],
161
+ providers: [AXFileService],
162
+ }]
163
+ }] });
164
+
165
+ /**
166
+ * Generated bundle index. Do not edit.
167
+ */
168
+
169
+ export { AXFileDownloadRef, AXFileDownloadResult, AXFileModule, AXFileService, AXFileUploadRef };
170
+ //# sourceMappingURL=acorex-core-file.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-core-file.mjs","sources":["../../../../projects/acorex/core/file/src/file-download-ref.class.ts","../../../../projects/acorex/core/file/src/file-download-result.class.ts","../../../../projects/acorex/core/file/src/file-upload-ref.class.ts","../../../../projects/acorex/core/file/src/file.service.ts","../../../../projects/acorex/core/file/src/file.module.ts","../../../../projects/acorex/core/file/acorex-core-file.ts"],"sourcesContent":["import { AXFileDownloadResult } from \"./file-download-result.class\";\r\n\r\nexport class AXFileDownloadRef extends Promise<AXFileDownloadResult>\r\n{\r\n public abortMethod: () => void;\r\n constructor(executor: (resolve: (value?: PromiseLike<AXFileDownloadResult>) => void, reject: (reason?: any) => void) => void) {\r\n super(executor);\r\n\r\n }\r\n //abort the operation\r\n public abort() {\r\n if (this.abortMethod) {\r\n this.abortMethod();\r\n }\r\n }\r\n}","export class AXFileDownloadResult {\r\n\r\n _response: Blob;\r\n\r\n constructor(response: Blob) {\r\n this._response = response;\r\n }\r\n\r\n save(filename?: string): Promise<void> {\r\n this._defaultBrowserDownload(filename);\r\n return Promise.resolve();\r\n // else {\r\n // return new Promise((resolve, reject) => {\r\n // const button = document.createElement(\"button\");\r\n // button.addEventListener('click', async () => {\r\n // debugger\r\n // button.remove();\r\n // const opts = {\r\n // types: [{\r\n // description: 'Save File',\r\n // suggestedName: filename\r\n // // accept: {'text/plain': ['.txt']},\r\n // }],\r\n // };\r\n // const result = await window['showSaveFilePicker'](opts);\r\n // console.log(result);\r\n\r\n // resolve();\r\n // });\r\n // button.click();\r\n // });\r\n\r\n // }\r\n }\r\n\r\n\r\n blob() {\r\n return this._response;\r\n }\r\n\r\n base64(): Promise<string> {\r\n return new Promise((resolve, reject) => {\r\n var reader = new window.FileReader();\r\n reader.onloadend = () => resolve(reader.result as string);\r\n reader.onerror = (e) => reject(e);\r\n reader.readAsDataURL(this._response);\r\n })\r\n }\r\n\r\n private _defaultBrowserDownload(filename: string = 'download') {\r\n const link = document.createElement(\"a\");\r\n link.href = URL.createObjectURL(this._response);\r\n link.download = filename;\r\n link.click();\r\n }\r\n}","export class AXFileUploadRef<T = any> extends Promise<T>\r\n{\r\n public abortMethod: () => void;\r\n constructor(executor: (resolve: (value?: PromiseLike<T>) => void, reject: (reason?: any) => void) => void) {\r\n super(executor);\r\n\r\n }\r\n //abort the operation\r\n public abort() {\r\n if (this.abortMethod) {\r\n this.abortMethod();\r\n }\r\n }\r\n}","import { HttpClient, HttpContext, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { AXFileDownloadRef } from './file-download-ref.class';\r\nimport { AXFileDownloadResult } from './file-download-result.class';\r\nimport { AXFileUploadRef } from './file-upload-ref.class';\r\n\r\n\r\n@Injectable()\r\nexport class AXFileService {\r\n constructor(private _httpClient: HttpClient) { }\r\n\r\n public download(request: string | Observable<Blob>): AXFileDownloadRef {\r\n let s: Subscription;\r\n const promiseFunc = (resolve, reject) => {\r\n //TODO: add custome http request\r\n //const headers = new HttpHeaders().set('authorization','Bearer '+token);\r\n let b: Observable<Blob>;\r\n if (typeof request === 'string') {\r\n b = this._httpClient.get(request, { responseType: 'blob' });\r\n }\r\n else if (b instanceof Observable<Blob>) {\r\n b = request;\r\n }\r\n s = b?.subscribe({\r\n next: (v) => resolve(new AXFileDownloadResult(v)),\r\n error: (e) => reject(e)\r\n })\r\n };\r\n\r\n const a = new AXFileDownloadRef(promiseFunc);\r\n a.abort = () => {\r\n s?.unsubscribe();\r\n };\r\n\r\n return a;\r\n }\r\n\r\n public upload<T = any>(url: string, files: File[]): AXFileUploadRef<T> {\r\n let s: Subscription;\r\n let formData = new FormData();\r\n files.forEach(f => {\r\n formData.append(\"files\", f);\r\n })\r\n const promiseFunc = (resolve, reject) => {\r\n let b: Observable<T>;\r\n b = this._httpClient.post<T>(url, formData);\r\n\r\n s = b?.subscribe({\r\n next: (v) => resolve(v),\r\n error: (e) => reject(e)\r\n })\r\n };\r\n\r\n const a = new AXFileUploadRef(promiseFunc);\r\n a.abort = () => {\r\n s?.unsubscribe();\r\n };\r\n return a;\r\n }\r\n\r\n public choose(options?: { accept?: string, multiple?: boolean }): Promise<File[]> {\r\n return new Promise<File[]>((resolve, reject) => {\r\n options = Object.assign({ multiple: false }, options);\r\n const input = document.createElement(\"input\");\r\n input.type = 'file';\r\n input.accept = options.accept;\r\n input.multiple = options.multiple;\r\n input.onchange = () => {\r\n resolve(Array.from(input.files));\r\n input.remove();\r\n }\r\n input.onerror = (e) => {\r\n reject(e);\r\n input.remove();\r\n };\r\n input.click();\r\n });\r\n }\r\n}\r\n\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXFileService } from './file.service';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [CommonModule],\r\n exports: [],\r\n providers: [AXFileService],\r\n})\r\nexport class AXFileModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import { __awaiter } from 'tslib';
2
+ import * as i0 from '@angular/core';
3
+ import { Injectable, NgModule } from '@angular/core';
4
+ import { CommonModule } from '@angular/common';
5
+
6
+ class AXImageService {
7
+ constructor() { }
8
+ resize(options) {
9
+ return __awaiter(this, void 0, void 0, function* () {
10
+ debugger;
11
+ options = Object.assign({ type: 'image/png', quality: 1 }, options);
12
+ let image;
13
+ if (options.source instanceof File) {
14
+ var a = new Image();
15
+ a.src = URL.createObjectURL(options.source);
16
+ yield new Promise((res) => a.onload = res);
17
+ image = a;
18
+ }
19
+ else {
20
+ image = options.source;
21
+ }
22
+ // Resize the image
23
+ var canvas = document.createElement('canvas'), width = image.width, height = image.height;
24
+ if (width > height) {
25
+ if (width > options.maxSize) {
26
+ height *= options.maxSize / width;
27
+ width = options.maxSize;
28
+ }
29
+ }
30
+ else {
31
+ if (height > options.maxSize) {
32
+ width *= options.maxSize / height;
33
+ height = options.maxSize;
34
+ }
35
+ }
36
+ canvas.width = width;
37
+ canvas.height = height;
38
+ canvas.getContext('2d').drawImage(image, 0, 0, width, height);
39
+ return new Promise((resolve) => canvas.toBlob(resolve, options.type, options.quality));
40
+ });
41
+ }
42
+ }
43
+ AXImageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXImageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
44
+ AXImageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXImageService });
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXImageService, decorators: [{
46
+ type: Injectable
47
+ }], ctorParameters: function () { return []; } });
48
+
49
+ class AXImageModule {
50
+ }
51
+ AXImageModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXImageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
52
+ AXImageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: AXImageModule, imports: [CommonModule] });
53
+ AXImageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXImageModule, providers: [AXImageService], imports: [CommonModule] });
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXImageModule, decorators: [{
55
+ type: NgModule,
56
+ args: [{
57
+ declarations: [],
58
+ imports: [CommonModule],
59
+ exports: [],
60
+ providers: [AXImageService],
61
+ }]
62
+ }] });
63
+
64
+ /**
65
+ * Generated bundle index. Do not edit.
66
+ */
67
+
68
+ export { AXImageModule, AXImageService };
69
+ //# sourceMappingURL=acorex-core-image.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-core-image.mjs","sources":["../../../../projects/acorex/core/image/src/image.service.ts","../../../../projects/acorex/core/image/src/image.module.ts","../../../../projects/acorex/core/image/acorex-core-image.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class AXImageService {\r\n constructor() { }\r\n\r\n\r\n async resize(options: { maxSize: number, source: HTMLImageElement | File, type?: 'image/png' | 'image/jpeg' | 'image/webp', quality?: number }): Promise<Blob> {\r\n debugger\r\n options = Object.assign({ type: 'image/png', quality: 1 }, options);\r\n\r\n let image: HTMLImageElement;\r\n if (options.source instanceof File) {\r\n var a = new Image()\r\n a.src = URL.createObjectURL(options.source);\r\n await new Promise<Event>((res) => a.onload = res);\r\n image = a;\r\n }\r\n else {\r\n image = options.source;\r\n }\r\n\r\n // Resize the image\r\n var canvas = document.createElement('canvas'),\r\n width = image.width,\r\n height = image.height;\r\n if (width > height) {\r\n if (width > options.maxSize) {\r\n height *= options.maxSize / width;\r\n width = options.maxSize;\r\n }\r\n } else {\r\n if (height > options.maxSize) {\r\n width *= options.maxSize / height;\r\n height = options.maxSize;\r\n }\r\n }\r\n canvas.width = width;\r\n canvas.height = height;\r\n canvas.getContext('2d').drawImage(image, 0, 0, width, height);\r\n return new Promise((resolve) => canvas.toBlob(resolve, options.type, options.quality));\r\n }\r\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXImageService } from './image.service';\n\n\n\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n exports: [],\n providers: [AXImageService],\n})\nexport class AXImageModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,170 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, NgModule } from '@angular/core';
3
+ import { Observable } from 'rxjs';
4
+ import * as i1 from '@angular/common/http';
5
+ import { CommonModule } from '@angular/common';
6
+
7
+ class AXFileDownloadRef extends Promise {
8
+ constructor(executor) {
9
+ super(executor);
10
+ }
11
+ //abort the operation
12
+ abort() {
13
+ if (this.abortMethod) {
14
+ this.abortMethod();
15
+ }
16
+ }
17
+ }
18
+
19
+ class AXFileDownloadResult {
20
+ constructor(response) {
21
+ this._response = response;
22
+ }
23
+ save(filename) {
24
+ this._defaultBrowserDownload(filename);
25
+ return Promise.resolve();
26
+ // else {
27
+ // return new Promise((resolve, reject) => {
28
+ // const button = document.createElement("button");
29
+ // button.addEventListener('click', async () => {
30
+ // debugger
31
+ // button.remove();
32
+ // const opts = {
33
+ // types: [{
34
+ // description: 'Save File',
35
+ // suggestedName: filename
36
+ // // accept: {'text/plain': ['.txt']},
37
+ // }],
38
+ // };
39
+ // const result = await window['showSaveFilePicker'](opts);
40
+ // console.log(result);
41
+ // resolve();
42
+ // });
43
+ // button.click();
44
+ // });
45
+ // }
46
+ }
47
+ blob() {
48
+ return this._response;
49
+ }
50
+ base64() {
51
+ return new Promise((resolve, reject) => {
52
+ var reader = new window.FileReader();
53
+ reader.onloadend = () => resolve(reader.result);
54
+ reader.onerror = (e) => reject(e);
55
+ reader.readAsDataURL(this._response);
56
+ });
57
+ }
58
+ _defaultBrowserDownload(filename = 'download') {
59
+ const link = document.createElement("a");
60
+ link.href = URL.createObjectURL(this._response);
61
+ link.download = filename;
62
+ link.click();
63
+ }
64
+ }
65
+
66
+ class AXFileUploadRef extends Promise {
67
+ constructor(executor) {
68
+ super(executor);
69
+ }
70
+ //abort the operation
71
+ abort() {
72
+ if (this.abortMethod) {
73
+ this.abortMethod();
74
+ }
75
+ }
76
+ }
77
+
78
+ class AXFileService {
79
+ constructor(_httpClient) {
80
+ this._httpClient = _httpClient;
81
+ }
82
+ download(request) {
83
+ let s;
84
+ const promiseFunc = (resolve, reject) => {
85
+ //TODO: add custome http request
86
+ //const headers = new HttpHeaders().set('authorization','Bearer '+token);
87
+ let b;
88
+ if (typeof request === 'string') {
89
+ b = this._httpClient.get(request, { responseType: 'blob' });
90
+ }
91
+ else if (b instanceof (Observable)) {
92
+ b = request;
93
+ }
94
+ s = b?.subscribe({
95
+ next: (v) => resolve(new AXFileDownloadResult(v)),
96
+ error: (e) => reject(e)
97
+ });
98
+ };
99
+ const a = new AXFileDownloadRef(promiseFunc);
100
+ a.abort = () => {
101
+ s?.unsubscribe();
102
+ };
103
+ return a;
104
+ }
105
+ upload(url, files) {
106
+ let s;
107
+ let formData = new FormData();
108
+ files.forEach(f => {
109
+ formData.append("files", f);
110
+ });
111
+ const promiseFunc = (resolve, reject) => {
112
+ let b;
113
+ b = this._httpClient.post(url, formData);
114
+ s = b?.subscribe({
115
+ next: (v) => resolve(v),
116
+ error: (e) => reject(e)
117
+ });
118
+ };
119
+ const a = new AXFileUploadRef(promiseFunc);
120
+ a.abort = () => {
121
+ s?.unsubscribe();
122
+ };
123
+ return a;
124
+ }
125
+ choose(options) {
126
+ return new Promise((resolve, reject) => {
127
+ options = Object.assign({ multiple: false }, options);
128
+ const input = document.createElement("input");
129
+ input.type = 'file';
130
+ input.accept = options.accept;
131
+ input.multiple = options.multiple;
132
+ input.onchange = () => {
133
+ resolve(Array.from(input.files));
134
+ input.remove();
135
+ };
136
+ input.onerror = (e) => {
137
+ reject(e);
138
+ input.remove();
139
+ };
140
+ input.click();
141
+ });
142
+ }
143
+ }
144
+ AXFileService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXFileService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
145
+ AXFileService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXFileService });
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXFileService, decorators: [{
147
+ type: Injectable
148
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
149
+
150
+ class AXFileModule {
151
+ }
152
+ AXFileModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXFileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
153
+ AXFileModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: AXFileModule, imports: [CommonModule] });
154
+ AXFileModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXFileModule, providers: [AXFileService], imports: [CommonModule] });
155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXFileModule, decorators: [{
156
+ type: NgModule,
157
+ args: [{
158
+ declarations: [],
159
+ imports: [CommonModule],
160
+ exports: [],
161
+ providers: [AXFileService],
162
+ }]
163
+ }] });
164
+
165
+ /**
166
+ * Generated bundle index. Do not edit.
167
+ */
168
+
169
+ export { AXFileDownloadRef, AXFileDownloadResult, AXFileModule, AXFileService, AXFileUploadRef };
170
+ //# sourceMappingURL=acorex-core-file.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-core-file.mjs","sources":["../../../../projects/acorex/core/file/src/file-download-ref.class.ts","../../../../projects/acorex/core/file/src/file-download-result.class.ts","../../../../projects/acorex/core/file/src/file-upload-ref.class.ts","../../../../projects/acorex/core/file/src/file.service.ts","../../../../projects/acorex/core/file/src/file.module.ts","../../../../projects/acorex/core/file/acorex-core-file.ts"],"sourcesContent":["import { AXFileDownloadResult } from \"./file-download-result.class\";\r\n\r\nexport class AXFileDownloadRef extends Promise<AXFileDownloadResult>\r\n{\r\n public abortMethod: () => void;\r\n constructor(executor: (resolve: (value?: PromiseLike<AXFileDownloadResult>) => void, reject: (reason?: any) => void) => void) {\r\n super(executor);\r\n\r\n }\r\n //abort the operation\r\n public abort() {\r\n if (this.abortMethod) {\r\n this.abortMethod();\r\n }\r\n }\r\n}","export class AXFileDownloadResult {\r\n\r\n _response: Blob;\r\n\r\n constructor(response: Blob) {\r\n this._response = response;\r\n }\r\n\r\n save(filename?: string): Promise<void> {\r\n this._defaultBrowserDownload(filename);\r\n return Promise.resolve();\r\n // else {\r\n // return new Promise((resolve, reject) => {\r\n // const button = document.createElement(\"button\");\r\n // button.addEventListener('click', async () => {\r\n // debugger\r\n // button.remove();\r\n // const opts = {\r\n // types: [{\r\n // description: 'Save File',\r\n // suggestedName: filename\r\n // // accept: {'text/plain': ['.txt']},\r\n // }],\r\n // };\r\n // const result = await window['showSaveFilePicker'](opts);\r\n // console.log(result);\r\n\r\n // resolve();\r\n // });\r\n // button.click();\r\n // });\r\n\r\n // }\r\n }\r\n\r\n\r\n blob() {\r\n return this._response;\r\n }\r\n\r\n base64(): Promise<string> {\r\n return new Promise((resolve, reject) => {\r\n var reader = new window.FileReader();\r\n reader.onloadend = () => resolve(reader.result as string);\r\n reader.onerror = (e) => reject(e);\r\n reader.readAsDataURL(this._response);\r\n })\r\n }\r\n\r\n private _defaultBrowserDownload(filename: string = 'download') {\r\n const link = document.createElement(\"a\");\r\n link.href = URL.createObjectURL(this._response);\r\n link.download = filename;\r\n link.click();\r\n }\r\n}","export class AXFileUploadRef<T = any> extends Promise<T>\r\n{\r\n public abortMethod: () => void;\r\n constructor(executor: (resolve: (value?: PromiseLike<T>) => void, reject: (reason?: any) => void) => void) {\r\n super(executor);\r\n\r\n }\r\n //abort the operation\r\n public abort() {\r\n if (this.abortMethod) {\r\n this.abortMethod();\r\n }\r\n }\r\n}","import { HttpClient, HttpContext, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { AXFileDownloadRef } from './file-download-ref.class';\r\nimport { AXFileDownloadResult } from './file-download-result.class';\r\nimport { AXFileUploadRef } from './file-upload-ref.class';\r\n\r\n\r\n@Injectable()\r\nexport class AXFileService {\r\n constructor(private _httpClient: HttpClient) { }\r\n\r\n public download(request: string | Observable<Blob>): AXFileDownloadRef {\r\n let s: Subscription;\r\n const promiseFunc = (resolve, reject) => {\r\n //TODO: add custome http request\r\n //const headers = new HttpHeaders().set('authorization','Bearer '+token);\r\n let b: Observable<Blob>;\r\n if (typeof request === 'string') {\r\n b = this._httpClient.get(request, { responseType: 'blob' });\r\n }\r\n else if (b instanceof Observable<Blob>) {\r\n b = request;\r\n }\r\n s = b?.subscribe({\r\n next: (v) => resolve(new AXFileDownloadResult(v)),\r\n error: (e) => reject(e)\r\n })\r\n };\r\n\r\n const a = new AXFileDownloadRef(promiseFunc);\r\n a.abort = () => {\r\n s?.unsubscribe();\r\n };\r\n\r\n return a;\r\n }\r\n\r\n public upload<T = any>(url: string, files: File[]): AXFileUploadRef<T> {\r\n let s: Subscription;\r\n let formData = new FormData();\r\n files.forEach(f => {\r\n formData.append(\"files\", f);\r\n })\r\n const promiseFunc = (resolve, reject) => {\r\n let b: Observable<T>;\r\n b = this._httpClient.post<T>(url, formData);\r\n\r\n s = b?.subscribe({\r\n next: (v) => resolve(v),\r\n error: (e) => reject(e)\r\n })\r\n };\r\n\r\n const a = new AXFileUploadRef(promiseFunc);\r\n a.abort = () => {\r\n s?.unsubscribe();\r\n };\r\n return a;\r\n }\r\n\r\n public choose(options?: { accept?: string, multiple?: boolean }): Promise<File[]> {\r\n return new Promise<File[]>((resolve, reject) => {\r\n options = Object.assign({ multiple: false }, options);\r\n const input = document.createElement(\"input\");\r\n input.type = 'file';\r\n input.accept = options.accept;\r\n input.multiple = options.multiple;\r\n input.onchange = () => {\r\n resolve(Array.from(input.files));\r\n input.remove();\r\n }\r\n input.onerror = (e) => {\r\n reject(e);\r\n input.remove();\r\n };\r\n input.click();\r\n });\r\n }\r\n}\r\n\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXFileService } from './file.service';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [CommonModule],\r\n exports: [],\r\n providers: [AXFileService],\r\n})\r\nexport class AXFileModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, NgModule } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+
5
+ class AXImageService {
6
+ constructor() { }
7
+ async resize(options) {
8
+ debugger;
9
+ options = Object.assign({ type: 'image/png', quality: 1 }, options);
10
+ let image;
11
+ if (options.source instanceof File) {
12
+ var a = new Image();
13
+ a.src = URL.createObjectURL(options.source);
14
+ await new Promise((res) => a.onload = res);
15
+ image = a;
16
+ }
17
+ else {
18
+ image = options.source;
19
+ }
20
+ // Resize the image
21
+ var canvas = document.createElement('canvas'), width = image.width, height = image.height;
22
+ if (width > height) {
23
+ if (width > options.maxSize) {
24
+ height *= options.maxSize / width;
25
+ width = options.maxSize;
26
+ }
27
+ }
28
+ else {
29
+ if (height > options.maxSize) {
30
+ width *= options.maxSize / height;
31
+ height = options.maxSize;
32
+ }
33
+ }
34
+ canvas.width = width;
35
+ canvas.height = height;
36
+ canvas.getContext('2d').drawImage(image, 0, 0, width, height);
37
+ return new Promise((resolve) => canvas.toBlob(resolve, options.type, options.quality));
38
+ }
39
+ }
40
+ AXImageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXImageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
41
+ AXImageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXImageService });
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXImageService, decorators: [{
43
+ type: Injectable
44
+ }], ctorParameters: function () { return []; } });
45
+
46
+ class AXImageModule {
47
+ }
48
+ AXImageModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXImageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
49
+ AXImageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: AXImageModule, imports: [CommonModule] });
50
+ AXImageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXImageModule, providers: [AXImageService], imports: [CommonModule] });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXImageModule, decorators: [{
52
+ type: NgModule,
53
+ args: [{
54
+ declarations: [],
55
+ imports: [CommonModule],
56
+ exports: [],
57
+ providers: [AXImageService],
58
+ }]
59
+ }] });
60
+
61
+ /**
62
+ * Generated bundle index. Do not edit.
63
+ */
64
+
65
+ export { AXImageModule, AXImageService };
66
+ //# sourceMappingURL=acorex-core-image.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-core-image.mjs","sources":["../../../../projects/acorex/core/image/src/image.service.ts","../../../../projects/acorex/core/image/src/image.module.ts","../../../../projects/acorex/core/image/acorex-core-image.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class AXImageService {\r\n constructor() { }\r\n\r\n\r\n async resize(options: { maxSize: number, source: HTMLImageElement | File, type?: 'image/png' | 'image/jpeg' | 'image/webp', quality?: number }): Promise<Blob> {\r\n debugger\r\n options = Object.assign({ type: 'image/png', quality: 1 }, options);\r\n\r\n let image: HTMLImageElement;\r\n if (options.source instanceof File) {\r\n var a = new Image()\r\n a.src = URL.createObjectURL(options.source);\r\n await new Promise<Event>((res) => a.onload = res);\r\n image = a;\r\n }\r\n else {\r\n image = options.source;\r\n }\r\n\r\n // Resize the image\r\n var canvas = document.createElement('canvas'),\r\n width = image.width,\r\n height = image.height;\r\n if (width > height) {\r\n if (width > options.maxSize) {\r\n height *= options.maxSize / width;\r\n width = options.maxSize;\r\n }\r\n } else {\r\n if (height > options.maxSize) {\r\n width *= options.maxSize / height;\r\n height = options.maxSize;\r\n }\r\n }\r\n canvas.width = width;\r\n canvas.height = height;\r\n canvas.getContext('2d').drawImage(image, 0, 0, width, height);\r\n return new Promise((resolve) => canvas.toBlob(resolve, options.type, options.quality));\r\n }\r\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXImageService } from './image.service';\n\n\n\n@NgModule({\n declarations: [],\n imports: [CommonModule],\n exports: [],\n providers: [AXImageService],\n})\nexport class AXImageModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-core-file.d.ts","sourceRoot":"","sources":["../../../../projects/acorex/core/file/acorex-core-file.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,cAAc,cAAc,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@acorex/core/file" />
5
+ export * from './public-api';
@@ -0,0 +1,5 @@
1
+ export * from './src/file-download-ref.class';
2
+ export * from './src/file-download-result.class';
3
+ export * from './src/file-upload-ref.class';
4
+ export * from './src/file.service';
5
+ export * from './src/file.module';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../../../projects/acorex/core/file/public-api.ts"],"names":[],"mappings":"AAAC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { AXFileDownloadResult } from "./file-download-result.class";
2
+ export declare class AXFileDownloadRef extends Promise<AXFileDownloadResult> {
3
+ abortMethod: () => void;
4
+ constructor(executor: (resolve: (value?: PromiseLike<AXFileDownloadResult>) => void, reject: (reason?: any) => void) => void);
5
+ abort(): void;
6
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-download-ref.class.d.ts","sourceRoot":"","sources":["../../../../../projects/acorex/core/file/src/file-download-ref.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,qBAAa,iBAAkB,SAAQ,OAAO,CAAC,oBAAoB,CAAC;IAEzD,WAAW,EAAE,MAAM,IAAI,CAAC;gBACnB,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,oBAAoB,CAAC,KAAK,IAAI,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI;IAKrH,KAAK;CAKf"}
@@ -0,0 +1,8 @@
1
+ export declare class AXFileDownloadResult {
2
+ _response: Blob;
3
+ constructor(response: Blob);
4
+ save(filename?: string): Promise<void>;
5
+ blob(): Blob;
6
+ base64(): Promise<string>;
7
+ private _defaultBrowserDownload;
8
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-download-result.class.d.ts","sourceRoot":"","sources":["../../../../../projects/acorex/core/file/src/file-download-result.class.ts"],"names":[],"mappings":"AAAA,qBAAa,oBAAoB;IAE7B,SAAS,EAAE,IAAI,CAAC;gBAEJ,QAAQ,EAAE,IAAI;IAI1B,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BtC,IAAI;IAIJ,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IASzB,OAAO,CAAC,uBAAuB;CAMlC"}
@@ -0,0 +1,5 @@
1
+ export declare class AXFileUploadRef<T = any> extends Promise<T> {
2
+ abortMethod: () => void;
3
+ constructor(executor: (resolve: (value?: PromiseLike<T>) => void, reject: (reason?: any) => void) => void);
4
+ abort(): void;
5
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-upload-ref.class.d.ts","sourceRoot":"","sources":["../../../../../projects/acorex/core/file/src/file-upload-ref.class.ts"],"names":[],"mappings":"AAAA,qBAAa,eAAe,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAC;IAE7C,WAAW,EAAE,MAAM,IAAI,CAAC;gBACnB,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI;IAKlG,KAAK;CAKf"}
@@ -0,0 +1,7 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "@angular/common";
3
+ export declare class AXFileModule {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXFileModule, never>;
5
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXFileModule, never, [typeof i1.CommonModule], never>;
6
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXFileModule>;
7
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.module.d.ts","sourceRoot":"","sources":["../../../../../projects/acorex/core/file/src/file.module.ts"],"names":[],"mappings":";;AAMA,qBAMa,YAAY;yCAAZ,YAAY;0CAAZ,YAAY;0CAAZ,YAAY;CAAI"}
@@ -0,0 +1,17 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { Observable } from 'rxjs';
3
+ import { AXFileDownloadRef } from './file-download-ref.class';
4
+ import { AXFileUploadRef } from './file-upload-ref.class';
5
+ import * as i0 from "@angular/core";
6
+ export declare class AXFileService {
7
+ private _httpClient;
8
+ constructor(_httpClient: HttpClient);
9
+ download(request: string | Observable<Blob>): AXFileDownloadRef;
10
+ upload<T = any>(url: string, files: File[]): AXFileUploadRef<T>;
11
+ choose(options?: {
12
+ accept?: string;
13
+ multiple?: boolean;
14
+ }): Promise<File[]>;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXFileService, never>;
16
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXFileService>;
17
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.service.d.ts","sourceRoot":"","sources":["../../../../../projects/acorex/core/file/src/file.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAwC,MAAM,sBAAsB,CAAC;AAExF,OAAO,EAAE,UAAU,EAAgB,MAAM,MAAM,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;;AAG1D,qBACa,aAAa;IACV,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,UAAU;IAEpC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,iBAAiB;IA0B/D,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC;IAuB/D,MAAM,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;yCApDxE,aAAa;6CAAb,aAAa;CAsEzB"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@acorex/core/image" />
5
+ export * from './public-api';
@@ -0,0 +1,2 @@
1
+ export * from './src/image.service';
2
+ export * from './src/image.module';
@@ -0,0 +1,7 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "@angular/common";
3
+ export declare class AXImageModule {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXImageModule, never>;
5
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXImageModule, never, [typeof i1.CommonModule], never>;
6
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXImageModule>;
7
+ }
@@ -0,0 +1,12 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class AXImageService {
3
+ constructor();
4
+ resize(options: {
5
+ maxSize: number;
6
+ source: HTMLImageElement | File;
7
+ type?: 'image/png' | 'image/jpeg' | 'image/webp';
8
+ quality?: number;
9
+ }): Promise<Blob>;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXImageService, never>;
11
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXImageService>;
12
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex/core",
3
- "version": "6.0.9",
3
+ "version": "6.0.10",
4
4
  "dependencies": {
5
5
  "tslib": "^2.3.0"
6
6
  },
@@ -61,6 +61,14 @@
61
61
  "node": "./fesm2015/acorex-core-events.mjs",
62
62
  "default": "./fesm2020/acorex-core-events.mjs"
63
63
  },
64
+ "./file": {
65
+ "types": "./file/index.d.ts",
66
+ "esm2020": "./esm2020/file/acorex-core-file.mjs",
67
+ "es2020": "./fesm2020/acorex-core-file.mjs",
68
+ "es2015": "./fesm2015/acorex-core-file.mjs",
69
+ "node": "./fesm2015/acorex-core-file.mjs",
70
+ "default": "./fesm2020/acorex-core-file.mjs"
71
+ },
64
72
  "./http": {
65
73
  "types": "./http/index.d.ts",
66
74
  "esm2020": "./esm2020/http/acorex-core-http.mjs",
@@ -69,6 +77,14 @@
69
77
  "node": "./fesm2015/acorex-core-http.mjs",
70
78
  "default": "./fesm2020/acorex-core-http.mjs"
71
79
  },
80
+ "./image": {
81
+ "types": "./image/index.d.ts",
82
+ "esm2020": "./esm2020/image/acorex-core-image.mjs",
83
+ "es2020": "./fesm2020/acorex-core-image.mjs",
84
+ "es2015": "./fesm2015/acorex-core-image.mjs",
85
+ "node": "./fesm2015/acorex-core-image.mjs",
86
+ "default": "./fesm2020/acorex-core-image.mjs"
87
+ },
72
88
  "./pipes": {
73
89
  "types": "./pipes/index.d.ts",
74
90
  "esm2020": "./esm2020/pipes/acorex-core-pipes.mjs",