@acorex/core 7.0.40 → 7.1.0
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/dateTime/src/datetime.class.d.ts +1 -1
- package/esm2022/config/src/configs.mjs +24 -0
- package/esm2022/dateTime/src/datetime.class.mjs +295 -0
- package/{esm2020 → esm2022}/dateTime/src/datetime.module.mjs +5 -5
- package/{esm2020 → esm2022}/dateTime/src/datetime.pipe.mjs +4 -4
- package/esm2022/dateTime/src/georgian.calendar.mjs +187 -0
- package/esm2022/dateTime/src/jalali.calendar.mjs +357 -0
- package/esm2022/events/src/event.service.mjs +34 -0
- package/esm2022/file/src/file-download-ref.class.mjs +13 -0
- package/esm2022/file/src/file-download-result.class.mjs +47 -0
- package/esm2022/file/src/file-upload-ref.class.mjs +13 -0
- package/esm2022/file/src/file.service.mjs +102 -0
- package/esm2022/http/src/http-result.class.mjs +25 -0
- package/{esm2020 → esm2022}/http/src/http.module.mjs +9 -9
- package/esm2022/http/src/http.service.mjs +151 -0
- package/{esm2020 → esm2022}/image/src/image.service.mjs +4 -4
- package/{esm2020 → esm2022}/pipes/src/pipes.module.mjs +5 -5
- package/esm2022/pipes/src/safe.pipe.mjs +31 -0
- package/esm2022/platform/src/platform.service.mjs +159 -0
- package/{esm2020 → esm2022}/translation/src/translation.module.mjs +5 -5
- package/esm2022/translation/src/translator.mjs +43 -0
- package/{esm2020 → esm2022}/translation/src/translator.pipe.mjs +4 -4
- package/{fesm2015 → fesm2022}/acorex-core-config.mjs +3 -4
- package/{fesm2015 → fesm2022}/acorex-core-config.mjs.map +1 -1
- package/{fesm2015 → fesm2022}/acorex-core-dateTime.mjs +88 -86
- package/{fesm2015 → fesm2022}/acorex-core-dateTime.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/acorex-core-events.mjs +4 -7
- package/fesm2022/acorex-core-events.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/acorex-core-file.mjs +15 -12
- package/{fesm2020 → fesm2022}/acorex-core-file.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/acorex-core-http.mjs +18 -12
- package/{fesm2015 → fesm2022}/acorex-core-http.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/acorex-core-image.mjs +3 -4
- package/{fesm2020 → fesm2022}/acorex-core-image.mjs.map +1 -1
- package/{fesm2015 → fesm2022}/acorex-core-pipes.mjs +8 -8
- package/{fesm2015 → fesm2022}/acorex-core-pipes.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/acorex-core-platform.mjs +39 -34
- package/fesm2022/acorex-core-platform.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/acorex-core-translation.mjs +12 -13
- package/{fesm2020 → fesm2022}/acorex-core-translation.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/acorex-core-utils.mjs +0 -1
- package/{fesm2015 → fesm2022}/acorex-core.mjs +0 -1
- package/package.json +42 -68
- package/platform/src/platform.service.d.ts +4 -4
- package/utils/src/color-util.d.ts +2 -2
- package/esm2020/config/src/configs.mjs +0 -24
- package/esm2020/dateTime/src/datetime.class.mjs +0 -288
- package/esm2020/dateTime/src/georgian.calendar.mjs +0 -189
- package/esm2020/dateTime/src/jalali.calendar.mjs +0 -359
- package/esm2020/events/src/event.service.mjs +0 -36
- package/esm2020/file/src/file-download-ref.class.mjs +0 -12
- package/esm2020/file/src/file-download-result.class.mjs +0 -46
- package/esm2020/file/src/file-upload-ref.class.mjs +0 -12
- package/esm2020/file/src/file.service.mjs +0 -101
- package/esm2020/http/src/http-result.class.mjs +0 -21
- package/esm2020/http/src/http.service.mjs +0 -148
- package/esm2020/pipes/src/safe.pipe.mjs +0 -30
- package/esm2020/platform/src/platform.service.mjs +0 -153
- package/esm2020/translation/src/translator.mjs +0 -43
- package/fesm2015/acorex-core-events.mjs +0 -44
- package/fesm2015/acorex-core-events.mjs.map +0 -1
- package/fesm2015/acorex-core-file.mjs +0 -176
- package/fesm2015/acorex-core-file.mjs.map +0 -1
- package/fesm2015/acorex-core-http.mjs +0 -203
- package/fesm2015/acorex-core-image.mjs +0 -54
- package/fesm2015/acorex-core-image.mjs.map +0 -1
- package/fesm2015/acorex-core-platform.mjs +0 -161
- package/fesm2015/acorex-core-platform.mjs.map +0 -1
- package/fesm2015/acorex-core-translation.mjs +0 -81
- package/fesm2015/acorex-core-translation.mjs.map +0 -1
- package/fesm2015/acorex-core-utils.mjs +0 -227
- package/fesm2020/acorex-core-config.mjs +0 -32
- package/fesm2020/acorex-core-config.mjs.map +0 -1
- package/fesm2020/acorex-core-dateTime.mjs +0 -899
- package/fesm2020/acorex-core-dateTime.mjs.map +0 -1
- package/fesm2020/acorex-core-events.mjs.map +0 -1
- package/fesm2020/acorex-core-http.mjs.map +0 -1
- package/fesm2020/acorex-core-pipes.mjs +0 -54
- package/fesm2020/acorex-core-pipes.mjs.map +0 -1
- package/fesm2020/acorex-core-platform.mjs.map +0 -1
- package/fesm2020/acorex-core-utils.mjs.map +0 -1
- package/fesm2020/acorex-core.mjs +0 -12
- package/fesm2020/acorex-core.mjs.map +0 -1
- /package/{esm2020 → esm2022}/acorex-core.mjs +0 -0
- /package/{esm2020 → esm2022}/config/acorex-core-config.mjs +0 -0
- /package/{esm2020 → esm2022}/config/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/dateTime/acorex-core-dateTime.mjs +0 -0
- /package/{esm2020 → esm2022}/dateTime/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/events/acorex-core-events.mjs +0 -0
- /package/{esm2020 → esm2022}/events/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/file/acorex-core-file.mjs +0 -0
- /package/{esm2020 → esm2022}/file/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/http/acorex-core-http.mjs +0 -0
- /package/{esm2020 → esm2022}/http/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/http/src/http-error.class.mjs +0 -0
- /package/{esm2020 → esm2022}/http/src/http-events.interceptor.mjs +0 -0
- /package/{esm2020 → esm2022}/http/src/http-request.class.mjs +0 -0
- /package/{esm2020 → esm2022}/image/acorex-core-image.mjs +0 -0
- /package/{esm2020 → esm2022}/image/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/pipes/acorex-core-pipes.mjs +0 -0
- /package/{esm2020 → esm2022}/pipes/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/platform/acorex-core-platform.mjs +0 -0
- /package/{esm2020 → esm2022}/platform/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/translation/acorex-core-translation.mjs +0 -0
- /package/{esm2020 → esm2022}/translation/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/acorex-core-utils.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/src/color-util.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/src/drawing-util.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/src/html-util.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/src/object-util.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/src/string-util.mjs +0 -0
- /package/{fesm2015 → fesm2022}/acorex-core-utils.mjs.map +0 -0
- /package/{fesm2015 → fesm2022}/acorex-core.mjs.map +0 -0
@@ -1,176 +0,0 @@
|
|
1
|
-
import * as i0 from '@angular/core';
|
2
|
-
import { Injectable } from '@angular/core';
|
3
|
-
import { Observable } from 'rxjs';
|
4
|
-
import * as i1 from '@angular/common/http';
|
5
|
-
|
6
|
-
class AXFileDownloadRef extends Promise {
|
7
|
-
constructor(executor) {
|
8
|
-
super(executor);
|
9
|
-
}
|
10
|
-
//abort the operation
|
11
|
-
abort() {
|
12
|
-
if (this.abortMethod) {
|
13
|
-
this.abortMethod();
|
14
|
-
}
|
15
|
-
}
|
16
|
-
}
|
17
|
-
|
18
|
-
class AXFileDownloadResult {
|
19
|
-
constructor(response) {
|
20
|
-
this._response = response;
|
21
|
-
}
|
22
|
-
save(filename) {
|
23
|
-
this._defaultBrowserDownload(filename);
|
24
|
-
return Promise.resolve();
|
25
|
-
// else {
|
26
|
-
// return new Promise((resolve, reject) => {
|
27
|
-
// const button = document.createElement("button");
|
28
|
-
// button.addEventListener('click', async () => {
|
29
|
-
// button.remove();
|
30
|
-
// const opts = {
|
31
|
-
// types: [{
|
32
|
-
// description: 'Save File',
|
33
|
-
// suggestedName: filename
|
34
|
-
// // accept: {'text/plain': ['.txt']},
|
35
|
-
// }],
|
36
|
-
// };
|
37
|
-
// const result = await window['showSaveFilePicker'](opts);
|
38
|
-
// console.log(result);
|
39
|
-
// resolve();
|
40
|
-
// });
|
41
|
-
// button.click();
|
42
|
-
// });
|
43
|
-
// }
|
44
|
-
}
|
45
|
-
blob() {
|
46
|
-
return this._response;
|
47
|
-
}
|
48
|
-
base64() {
|
49
|
-
return new Promise((resolve, reject) => {
|
50
|
-
var reader = new window.FileReader();
|
51
|
-
reader.onloadend = () => resolve(reader.result);
|
52
|
-
reader.onerror = e => reject(e);
|
53
|
-
reader.readAsDataURL(this._response);
|
54
|
-
});
|
55
|
-
}
|
56
|
-
_defaultBrowserDownload(filename = 'download') {
|
57
|
-
const link = document.createElement('a');
|
58
|
-
link.href = URL.createObjectURL(this._response);
|
59
|
-
link.download = filename;
|
60
|
-
link.click();
|
61
|
-
}
|
62
|
-
}
|
63
|
-
|
64
|
-
class AXFileUploadRef extends Promise {
|
65
|
-
constructor(executor) {
|
66
|
-
super(executor);
|
67
|
-
}
|
68
|
-
//abort the operation
|
69
|
-
abort() {
|
70
|
-
if (this.abortMethod) {
|
71
|
-
this.abortMethod();
|
72
|
-
}
|
73
|
-
}
|
74
|
-
}
|
75
|
-
|
76
|
-
class AXFileService {
|
77
|
-
constructor(_httpClient) {
|
78
|
-
this._httpClient = _httpClient;
|
79
|
-
this.blobToBase64 = (blob) => new Promise((resolve, reject) => {
|
80
|
-
const reader = new FileReader;
|
81
|
-
reader.onerror = reject;
|
82
|
-
reader.onload = () => {
|
83
|
-
resolve(reader.result);
|
84
|
-
};
|
85
|
-
reader.readAsDataURL(blob);
|
86
|
-
});
|
87
|
-
}
|
88
|
-
download(request) {
|
89
|
-
let s;
|
90
|
-
const promiseFunc = (resolve, reject) => {
|
91
|
-
//TODO: add custome http request
|
92
|
-
//const headers = new HttpHeaders().set('authorization','Bearer '+token);
|
93
|
-
let b;
|
94
|
-
if (typeof request === 'string') {
|
95
|
-
b = this._httpClient.get(request, { responseType: 'blob' });
|
96
|
-
}
|
97
|
-
else if (b instanceof (Observable)) {
|
98
|
-
b = request;
|
99
|
-
}
|
100
|
-
s = b === null || b === void 0 ? void 0 : b.subscribe({
|
101
|
-
next: (v) => resolve(new AXFileDownloadResult(v)),
|
102
|
-
error: (e) => reject(e)
|
103
|
-
});
|
104
|
-
};
|
105
|
-
const a = new AXFileDownloadRef(promiseFunc);
|
106
|
-
a.abort = () => {
|
107
|
-
s === null || s === void 0 ? void 0 : s.unsubscribe();
|
108
|
-
};
|
109
|
-
return a;
|
110
|
-
}
|
111
|
-
upload(url, files) {
|
112
|
-
let s;
|
113
|
-
let formData = new FormData();
|
114
|
-
files.forEach(f => {
|
115
|
-
formData.append("files", f);
|
116
|
-
});
|
117
|
-
const promiseFunc = (resolve, reject) => {
|
118
|
-
let b;
|
119
|
-
b = this._httpClient.post(url, formData);
|
120
|
-
s = b === null || b === void 0 ? void 0 : b.subscribe({
|
121
|
-
next: (v) => resolve(v),
|
122
|
-
error: (e) => reject(e)
|
123
|
-
});
|
124
|
-
};
|
125
|
-
const a = new AXFileUploadRef(promiseFunc);
|
126
|
-
a.abort = () => {
|
127
|
-
s === null || s === void 0 ? void 0 : s.unsubscribe();
|
128
|
-
};
|
129
|
-
return a;
|
130
|
-
}
|
131
|
-
choose(options) {
|
132
|
-
return new Promise((resolve, reject) => {
|
133
|
-
options = Object.assign({ multiple: false }, options);
|
134
|
-
const input = document.createElement("input");
|
135
|
-
input.style.display = 'none';
|
136
|
-
document.body.appendChild(input);
|
137
|
-
input.type = 'file';
|
138
|
-
input.accept = options.accept;
|
139
|
-
input.multiple = options.multiple;
|
140
|
-
//
|
141
|
-
const onError = (e) => {
|
142
|
-
reject(e);
|
143
|
-
document.body.removeChild(input);
|
144
|
-
input.remove();
|
145
|
-
input.removeEventListener('change', onChange);
|
146
|
-
input.removeEventListener('error', onError);
|
147
|
-
};
|
148
|
-
//
|
149
|
-
const onChange = () => {
|
150
|
-
resolve(Array.from(input.files));
|
151
|
-
document.body.removeChild(input);
|
152
|
-
input.remove();
|
153
|
-
input.removeEventListener('change', onChange);
|
154
|
-
input.removeEventListener('error', onError);
|
155
|
-
};
|
156
|
-
//
|
157
|
-
input.addEventListener('change', onChange);
|
158
|
-
input.addEventListener('error', onError);
|
159
|
-
input.click();
|
160
|
-
});
|
161
|
-
}
|
162
|
-
}
|
163
|
-
AXFileService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AXFileService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
164
|
-
AXFileService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AXFileService, providedIn: 'root' });
|
165
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AXFileService, decorators: [{
|
166
|
-
type: Injectable,
|
167
|
-
args: [{ providedIn: 'root' }]
|
168
|
-
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
169
|
-
|
170
|
-
/**
|
171
|
-
* Generated bundle index. Do not edit.
|
172
|
-
*/
|
173
|
-
|
174
|
-
export { AXFileDownloadRef, AXFileDownloadResult, AXFileService, AXFileUploadRef };
|
175
|
-
//# sourceMappingURL=acorex-core-file.mjs.map
|
176
|
-
//# sourceMappingURL=acorex-core-file.mjs.map
|
@@ -1 +0,0 @@
|
|
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/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 _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 // 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 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}\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({ providedIn: 'root' })\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.style.display = 'none';\r\n document.body.appendChild(input);\r\n input.type = 'file';\r\n input.accept = options.accept;\r\n input.multiple = options.multiple;\r\n //\r\n const onError = (e) => {\r\n reject(e);\r\n document.body.removeChild(input)\r\n input.remove();\r\n input.removeEventListener('change', onChange);\r\n input.removeEventListener('error', onError);\r\n }\r\n //\r\n const onChange = () => {\r\n resolve(Array.from(input.files));\r\n document.body.removeChild(input)\r\n input.remove();\r\n input.removeEventListener('change', onChange);\r\n input.removeEventListener('error', onError);\r\n }\r\n //\r\n input.addEventListener('change', onChange);\r\n input.addEventListener('error', onError);\r\n input.click();\r\n });\r\n }\r\n\r\n blobToBase64 = (blob: Blob) => new Promise<string>((resolve, reject) => {\r\n const reader = new FileReader;\r\n reader.onerror = reject;\r\n reader.onload = () => {\r\n resolve(reader.result as string);\r\n };\r\n reader.readAsDataURL(blob);\r\n });\r\n}\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAEM,MAAO,iBAAkB,SAAQ,OAA6B,CAAA;AAGhE,IAAA,WAAA,CAAY,QAAgH,EAAA;QACxH,KAAK,CAAC,QAAQ,CAAC,CAAC;KAEnB;;IAEM,KAAK,GAAA;QACR,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,EAAE,CAAC;AACtB,SAAA;KACJ;AACJ;;MCfY,oBAAoB,CAAA;AAG/B,IAAA,WAAA,CAAY,QAAc,EAAA;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;KAC3B;AAED,IAAA,IAAI,CAAC,QAAiB,EAAA;AACpB,QAAA,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;AACvC,QAAA,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;KAsB1B;IAED,IAAI,GAAA;QACF,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IAED,MAAM,GAAA;QACJ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC,YAAA,IAAI,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;AACrC,YAAA,MAAM,CAAC,SAAS,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,MAAgB,CAAC,CAAC;YAC1D,MAAM,CAAC,OAAO,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;AAChC,YAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACvC,SAAC,CAAC,CAAC;KACJ;IAEO,uBAAuB,CAAC,WAAmB,UAAU,EAAA;QAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAChD,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;AACF;;ACpDK,MAAO,eAAyB,SAAQ,OAAU,CAAA;AAGpD,IAAA,WAAA,CAAY,QAA6F,EAAA;QACrG,KAAK,CAAC,QAAQ,CAAC,CAAC;KAEnB;;IAEM,KAAK,GAAA;QACR,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,EAAE,CAAC;AACtB,SAAA;KACJ;AACJ;;MCJY,aAAa,CAAA;AACtB,IAAA,WAAA,CAAoB,WAAuB,EAAA;AAAvB,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;AAmF3C,QAAA,IAAA,CAAA,YAAY,GAAG,CAAC,IAAU,KAAK,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,KAAI;AACnE,YAAA,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC;AAC9B,YAAA,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;AACxB,YAAA,MAAM,CAAC,MAAM,GAAG,MAAK;AACjB,gBAAA,OAAO,CAAC,MAAM,CAAC,MAAgB,CAAC,CAAC;AACrC,aAAC,CAAC;AACF,YAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC/B,SAAC,CAAC,CAAC;KA1F6C;AAEzC,IAAA,QAAQ,CAAC,OAAkC,EAAA;AAC9C,QAAA,IAAI,CAAe,CAAC;AACpB,QAAA,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,MAAM,KAAI;;;AAGpC,YAAA,IAAI,CAAmB,CAAC;AACxB,YAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC7B,gBAAA,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;AAC/D,aAAA;AACI,iBAAA,IAAI,CAAC,aAAY,UAAgB,CAAA,EAAE;gBACpC,CAAC,GAAG,OAAO,CAAC;AACf,aAAA;YACD,CAAC,GAAG,CAAC,KAAD,IAAA,IAAA,CAAC,uBAAD,CAAC,CAAE,SAAS,CAAC;AACb,gBAAA,IAAI,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC;gBACjD,KAAK,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;AAC1B,aAAA,CAAC,CAAA;AACN,SAAC,CAAC;AAEF,QAAA,MAAM,CAAC,GAAG,IAAI,iBAAiB,CAAC,WAAW,CAAC,CAAC;AAC7C,QAAA,CAAC,CAAC,KAAK,GAAG,MAAK;AACX,YAAA,CAAC,aAAD,CAAC,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAD,CAAC,CAAE,WAAW,EAAE,CAAC;AACrB,SAAC,CAAC;AAEF,QAAA,OAAO,CAAC,CAAC;KACZ;IAEM,MAAM,CAAU,GAAW,EAAE,KAAa,EAAA;AAC7C,QAAA,IAAI,CAAe,CAAC;AACpB,QAAA,IAAI,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;AAC9B,QAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAG;AACd,YAAA,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAChC,SAAC,CAAC,CAAA;AACF,QAAA,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,MAAM,KAAI;AACpC,YAAA,IAAI,CAAgB,CAAC;YACrB,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAI,GAAG,EAAE,QAAQ,CAAC,CAAC;YAE5C,CAAC,GAAG,CAAC,KAAD,IAAA,IAAA,CAAC,uBAAD,CAAC,CAAE,SAAS,CAAC;gBACb,IAAI,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC;gBACvB,KAAK,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;AAC1B,aAAA,CAAC,CAAA;AACN,SAAC,CAAC;AAEF,QAAA,MAAM,CAAC,GAAG,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC;AAC3C,QAAA,CAAC,CAAC,KAAK,GAAG,MAAK;AACX,YAAA,CAAC,aAAD,CAAC,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAD,CAAC,CAAE,WAAW,EAAE,CAAC;AACrB,SAAC,CAAC;AACF,QAAA,OAAO,CAAC,CAAC;KACZ;AAEM,IAAA,MAAM,CAAC,OAAiD,EAAA;QAC3D,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,KAAI;AAC3C,YAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC9C,YAAA,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;AAC7B,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACjC,YAAA,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC;AACpB,YAAA,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AAC9B,YAAA,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;;AAElC,YAAA,MAAM,OAAO,GAAG,CAAC,CAAC,KAAI;gBAClB,MAAM,CAAC,CAAC,CAAC,CAAC;AACV,gBAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;gBAChC,KAAK,CAAC,MAAM,EAAE,CAAC;AACf,gBAAA,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC9C,gBAAA,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAChD,aAAC,CAAA;;YAED,MAAM,QAAQ,GAAG,MAAK;gBAClB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACjC,gBAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;gBAChC,KAAK,CAAC,MAAM,EAAE,CAAC;AACf,gBAAA,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC9C,gBAAA,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAChD,aAAC,CAAA;;AAED,YAAA,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC3C,YAAA,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACzC,KAAK,CAAC,KAAK,EAAE,CAAC;AAClB,SAAC,CAAC,CAAC;KACN;;0GAlFQ,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cADA,MAAM,EAAA,CAAA,CAAA;2FACnB,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;ACRlC;;AAEG;;;;"}
|
@@ -1,203 +0,0 @@
|
|
1
|
-
import * as i0 from '@angular/core';
|
2
|
-
import { InjectionToken, Injectable, NgModule } from '@angular/core';
|
3
|
-
import { CommonModule } from '@angular/common';
|
4
|
-
import * as i1 from '@angular/common/http';
|
5
|
-
import { HttpHeaders, HttpParams, HttpClientModule } from '@angular/common/http';
|
6
|
-
|
7
|
-
const AX_HTTP_EVENT_INTERCEPTOR = new InjectionToken('ax.http.events');
|
8
|
-
|
9
|
-
class HttpResult {
|
10
|
-
constructor(executor) {
|
11
|
-
this._executor = executor;
|
12
|
-
setTimeout(() => {
|
13
|
-
this._executor(this.resultAction, this.errorAction, this.completeAction);
|
14
|
-
}, 50);
|
15
|
-
}
|
16
|
-
result(action) {
|
17
|
-
this.resultAction = action;
|
18
|
-
return this;
|
19
|
-
}
|
20
|
-
error(action) {
|
21
|
-
this.errorAction = action;
|
22
|
-
return this;
|
23
|
-
}
|
24
|
-
complete(action) {
|
25
|
-
this.completeAction = action;
|
26
|
-
return this;
|
27
|
-
}
|
28
|
-
}
|
29
|
-
|
30
|
-
// import { catchError, retry, retryWhen, mergeMap, delay, switchMap, scan, takeWhile, flatMap } from 'rxjs/operators';
|
31
|
-
// import { of, concat, throwError } from 'rxjs';
|
32
|
-
class AXHttpService {
|
33
|
-
constructor(http, injector) {
|
34
|
-
this.http = http;
|
35
|
-
this.injector = injector;
|
36
|
-
this.interceptor = this.injector.get(AX_HTTP_EVENT_INTERCEPTOR);
|
37
|
-
}
|
38
|
-
get(url, config = {}) {
|
39
|
-
config.url = url;
|
40
|
-
config.method = "get";
|
41
|
-
return this.request(config);
|
42
|
-
}
|
43
|
-
post(url, config = {}) {
|
44
|
-
config.url = url;
|
45
|
-
config.method = "post";
|
46
|
-
return this.request(config);
|
47
|
-
}
|
48
|
-
delete(url, config = {}) {
|
49
|
-
config.url = url;
|
50
|
-
config.method = "delete";
|
51
|
-
return this.request(config);
|
52
|
-
}
|
53
|
-
put(url, config = {}) {
|
54
|
-
config.url = url;
|
55
|
-
config.method = "put";
|
56
|
-
return this.request(config);
|
57
|
-
}
|
58
|
-
request(config) {
|
59
|
-
return new HttpResult((result, error, complete) => {
|
60
|
-
this.handleBegin(config).then(c => {
|
61
|
-
this.http
|
62
|
-
//TODO: check ts error
|
63
|
-
//@ts-ignore
|
64
|
-
.request(config.method, config.url, this.mapOptions(config))
|
65
|
-
//.pipe(this.retry)
|
66
|
-
.subscribe(data => {
|
67
|
-
this.handleResult(data, result, complete, config);
|
68
|
-
}, c => {
|
69
|
-
this.handleError(c, error, complete, config);
|
70
|
-
});
|
71
|
-
});
|
72
|
-
});
|
73
|
-
}
|
74
|
-
handleResult(data, result, complete, config) {
|
75
|
-
if (this.interceptor) {
|
76
|
-
this.interceptor.success(config, data).then(c => {
|
77
|
-
if (result)
|
78
|
-
result(c);
|
79
|
-
this.handleComplete(complete, config);
|
80
|
-
});
|
81
|
-
}
|
82
|
-
else {
|
83
|
-
//
|
84
|
-
if (result)
|
85
|
-
result(data);
|
86
|
-
this.handleComplete(complete, config);
|
87
|
-
}
|
88
|
-
}
|
89
|
-
handleBegin(config) {
|
90
|
-
return new Promise((resolve) => {
|
91
|
-
if (!config.headers)
|
92
|
-
config.headers = {};
|
93
|
-
if (!config.params)
|
94
|
-
config.params = {};
|
95
|
-
//
|
96
|
-
if (this.interceptor) {
|
97
|
-
this.interceptor.begin(config).then(c => {
|
98
|
-
resolve(c);
|
99
|
-
});
|
100
|
-
}
|
101
|
-
else {
|
102
|
-
resolve(config);
|
103
|
-
}
|
104
|
-
});
|
105
|
-
}
|
106
|
-
handleComplete(complete, config) {
|
107
|
-
if (complete)
|
108
|
-
complete();
|
109
|
-
if (this.interceptor)
|
110
|
-
this.interceptor.complete(config);
|
111
|
-
}
|
112
|
-
handleError(c, error, complete, config) {
|
113
|
-
var _a;
|
114
|
-
let r = {
|
115
|
-
message: c.message,
|
116
|
-
status: c.status,
|
117
|
-
code: (_a = c.status) === null || _a === void 0 ? void 0 : _a.toString(),
|
118
|
-
handled: false,
|
119
|
-
error: c.error
|
120
|
-
};
|
121
|
-
if (error) {
|
122
|
-
error(r);
|
123
|
-
}
|
124
|
-
if (!r.handled) {
|
125
|
-
if (this.interceptor)
|
126
|
-
this.interceptor.error(config, r);
|
127
|
-
}
|
128
|
-
this.handleComplete(complete, config);
|
129
|
-
}
|
130
|
-
mapOptions(options) {
|
131
|
-
let headers = new HttpHeaders();
|
132
|
-
for (const key in options.headers) {
|
133
|
-
if (options.headers.hasOwnProperty(key)) {
|
134
|
-
const value = options.headers[key];
|
135
|
-
headers = headers.set(key, value);
|
136
|
-
}
|
137
|
-
}
|
138
|
-
let params = new HttpParams();
|
139
|
-
for (const key in options.params) {
|
140
|
-
if (options.params.hasOwnProperty(key)) {
|
141
|
-
const value = options.params[key];
|
142
|
-
params = params.set(key, value);
|
143
|
-
}
|
144
|
-
}
|
145
|
-
return {
|
146
|
-
headers: headers,
|
147
|
-
params: params,
|
148
|
-
body: options.body,
|
149
|
-
responseType: options.responseType || 'json'
|
150
|
-
};
|
151
|
-
// if (options.method == "get") {
|
152
|
-
// return {
|
153
|
-
// headers: headers,
|
154
|
-
// params: params
|
155
|
-
// };
|
156
|
-
// }
|
157
|
-
// else {
|
158
|
-
// return {
|
159
|
-
// headers: headers,
|
160
|
-
// params: params,
|
161
|
-
// body: options.body
|
162
|
-
// };
|
163
|
-
// }
|
164
|
-
}
|
165
|
-
}
|
166
|
-
AXHttpService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AXHttpService, deps: [{ token: i1.HttpClient }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
167
|
-
AXHttpService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AXHttpService, providedIn: 'root' });
|
168
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AXHttpService, decorators: [{
|
169
|
-
type: Injectable,
|
170
|
-
args: [{ providedIn: 'root' }]
|
171
|
-
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i0.Injector }]; } });
|
172
|
-
|
173
|
-
class AXHttpModule {
|
174
|
-
}
|
175
|
-
AXHttpModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AXHttpModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
176
|
-
AXHttpModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.4", ngImport: i0, type: AXHttpModule, imports: [CommonModule,
|
177
|
-
HttpClientModule], exports: [HttpClientModule] });
|
178
|
-
AXHttpModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AXHttpModule, providers: [
|
179
|
-
AXHttpService
|
180
|
-
], imports: [CommonModule,
|
181
|
-
HttpClientModule, HttpClientModule] });
|
182
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AXHttpModule, decorators: [{
|
183
|
-
type: NgModule,
|
184
|
-
args: [{
|
185
|
-
declarations: [],
|
186
|
-
imports: [
|
187
|
-
CommonModule,
|
188
|
-
HttpClientModule
|
189
|
-
],
|
190
|
-
exports: [HttpClientModule],
|
191
|
-
providers: [
|
192
|
-
AXHttpService
|
193
|
-
]
|
194
|
-
}]
|
195
|
-
}] });
|
196
|
-
|
197
|
-
/**
|
198
|
-
* Generated bundle index. Do not edit.
|
199
|
-
*/
|
200
|
-
|
201
|
-
export { AXHttpModule, AX_HTTP_EVENT_INTERCEPTOR, HttpResult };
|
202
|
-
//# sourceMappingURL=acorex-core-http.mjs.map
|
203
|
-
//# sourceMappingURL=acorex-core-http.mjs.map
|
@@ -1,54 +0,0 @@
|
|
1
|
-
import { __awaiter } from 'tslib';
|
2
|
-
import * as i0 from '@angular/core';
|
3
|
-
import { Injectable } from '@angular/core';
|
4
|
-
|
5
|
-
class AXImageService {
|
6
|
-
constructor() { }
|
7
|
-
resize(options) {
|
8
|
-
return __awaiter(this, void 0, void 0, function* () {
|
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
|
-
yield 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
|
-
}
|
41
|
-
AXImageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AXImageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
42
|
-
AXImageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AXImageService, providedIn: 'root' });
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AXImageService, decorators: [{
|
44
|
-
type: Injectable,
|
45
|
-
args: [{ providedIn: 'root' }]
|
46
|
-
}], ctorParameters: function () { return []; } });
|
47
|
-
|
48
|
-
/**
|
49
|
-
* Generated bundle index. Do not edit.
|
50
|
-
*/
|
51
|
-
|
52
|
-
export { AXImageService };
|
53
|
-
//# sourceMappingURL=acorex-core-image.mjs.map
|
54
|
-
//# sourceMappingURL=acorex-core-image.mjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"acorex-core-image.mjs","sources":["../../../../projects/acorex/core/image/src/image.service.ts","../../../../projects/acorex/core/image/acorex-core-image.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\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 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}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAGa,cAAc,CAAA;AACvB,IAAA,WAAA,GAAA,GAAiB;AAGX,IAAA,MAAM,CAAC,OAAiI,EAAA;;AAC1I,YAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AAEpE,YAAA,IAAI,KAAuB,CAAC;AAC5B,YAAA,IAAI,OAAO,CAAC,MAAM,YAAY,IAAI,EAAE;AAChC,gBAAA,IAAI,CAAC,GAAG,IAAI,KAAK,EAAE,CAAA;gBACnB,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC5C,gBAAA,MAAM,IAAI,OAAO,CAAQ,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;gBAClD,KAAK,GAAG,CAAC,CAAC;AACb,aAAA;AACI,iBAAA;AACD,gBAAA,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;AAC1B,aAAA;;YAGD,IAAI,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,EACzC,KAAK,GAAG,KAAK,CAAC,KAAK,EACnB,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC1B,IAAI,KAAK,GAAG,MAAM,EAAE;AAChB,gBAAA,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE;AACzB,oBAAA,MAAM,IAAI,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;AAClC,oBAAA,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;AAC3B,iBAAA;AACJ,aAAA;AAAM,iBAAA;AACH,gBAAA,IAAI,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE;AAC1B,oBAAA,KAAK,IAAI,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC;AAClC,oBAAA,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;AAC5B,iBAAA;AACJ,aAAA;AACD,YAAA,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;AACrB,YAAA,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;AACvB,YAAA,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAC9D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;SAC1F,CAAA,CAAA;AAAA,KAAA;;2GArCQ,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cADD,MAAM,EAAA,CAAA,CAAA;2FACnB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;ACFlC;;AAEG;;;;"}
|
@@ -1,161 +0,0 @@
|
|
1
|
-
import * as i0 from '@angular/core';
|
2
|
-
import { Injectable } from '@angular/core';
|
3
|
-
import { Subject, fromEvent } from 'rxjs';
|
4
|
-
import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
|
5
|
-
|
6
|
-
const isChrome = (win) => testUserAgent(win, /Chrome/i);
|
7
|
-
const isFirefox = (win) => testUserAgent(win, /Firefox/i);
|
8
|
-
const isEdge = (win) => testUserAgent(win, /Edge/i);
|
9
|
-
const isSafari = (win) => testUserAgent(win, /Safari/i);
|
10
|
-
const isOpera = (win) => testUserAgent(win, /Opera/i) || testUserAgent(win, /OPR/i);
|
11
|
-
const isMSIE = (win) => testUserAgent(win, /MSIE/i) || testUserAgent(win, /Trident/i);
|
12
|
-
const isMobileWeb = (win) => isMobile(win) && !isHybrid(win);
|
13
|
-
const isIpad = (win) => {
|
14
|
-
// iOS 12 and below
|
15
|
-
if (testUserAgent(win, /iPad/i)) {
|
16
|
-
return true;
|
17
|
-
}
|
18
|
-
// iOS 13+
|
19
|
-
if (testUserAgent(win, /Macintosh/i) && isMobile(win)) {
|
20
|
-
return true;
|
21
|
-
}
|
22
|
-
return false;
|
23
|
-
};
|
24
|
-
const isIphone = (win) => testUserAgent(win, /iPhone/i);
|
25
|
-
const isIOS = (win) => testUserAgent(win, /iPhone|iPod/i) || isIpad(win);
|
26
|
-
const isAndroid = (win) => testUserAgent(win, /android|sink/i);
|
27
|
-
const isAndroidTablet = (win) => {
|
28
|
-
return isAndroid(win) && !testUserAgent(win, /mobile/i);
|
29
|
-
};
|
30
|
-
const isPhablet = (win) => {
|
31
|
-
const width = win.innerWidth;
|
32
|
-
const height = win.innerHeight;
|
33
|
-
const smallest = Math.min(width, height);
|
34
|
-
const largest = Math.max(width, height);
|
35
|
-
return smallest > 390 && smallest < 520 && largest > 620 && largest < 800;
|
36
|
-
};
|
37
|
-
const isTablet = (win) => {
|
38
|
-
const width = win.innerWidth;
|
39
|
-
const height = win.innerHeight;
|
40
|
-
const smallest = Math.min(width, height);
|
41
|
-
const largest = Math.max(width, height);
|
42
|
-
return (isIpad(win) ||
|
43
|
-
isAndroidTablet(win) ||
|
44
|
-
(smallest > 460 && smallest < 820 && largest > 780 && largest < 1400));
|
45
|
-
};
|
46
|
-
const isMobile = (win) => matchMedia(win, '(any-pointer:coarse)');
|
47
|
-
const isTouch = (win) => matchMedia(win, '(any-pointer:coarse)');
|
48
|
-
const isDesktop = (win) => !isMobile(win);
|
49
|
-
const isHybrid = (win) => isCordova(win) || isCapacitorNative(win);
|
50
|
-
const isCordova = (win) => !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);
|
51
|
-
const isCapacitorNative = (win) => {
|
52
|
-
const capacitor = win['Capacitor'];
|
53
|
-
return !!(capacitor && capacitor.isNative);
|
54
|
-
};
|
55
|
-
const isElectron = (win) => testUserAgent(win, /electron/i);
|
56
|
-
const isPWA = (win) => !!(win.matchMedia('(display-mode: standalone)').matches ||
|
57
|
-
win.navigator.standalone);
|
58
|
-
const testUserAgent = (win, expr) => expr.test(win.navigator.userAgent);
|
59
|
-
const matchMedia = (win, query) => win.matchMedia(query).matches;
|
60
|
-
const isSMScreen = (win) => matchMedia(win, '(max-width: 640px)');
|
61
|
-
const isMDScreen = (win) => matchMedia(win, '(max-width: 768px)');
|
62
|
-
const isLGScreen = (win) => matchMedia(win, '(max-width: 1024px)');
|
63
|
-
const isXLScreen = (win) => matchMedia(win, '(max-width: 1280px)');
|
64
|
-
const is2XLScreen = (win) => matchMedia(win, '(max-width: 1536px)');
|
65
|
-
const PLATFORMS_MAP = {
|
66
|
-
Android: isAndroid,
|
67
|
-
iOS: isIOS,
|
68
|
-
Desktop: isDesktop,
|
69
|
-
Mobile: isMobile,
|
70
|
-
Touch: isTouch,
|
71
|
-
Chrome: isChrome,
|
72
|
-
Firefox: isFirefox,
|
73
|
-
Safari: isSafari,
|
74
|
-
Edge: isEdge,
|
75
|
-
Opera: isOpera,
|
76
|
-
Hybrid: isHybrid,
|
77
|
-
PWA: isPWA,
|
78
|
-
Electron: isElectron,
|
79
|
-
SM: isSMScreen,
|
80
|
-
MD: isMDScreen,
|
81
|
-
LG: isLGScreen,
|
82
|
-
XL: isXLScreen,
|
83
|
-
"2XL": is2XLScreen,
|
84
|
-
};
|
85
|
-
class AXPlatformEvent {
|
86
|
-
}
|
87
|
-
class AXPlatform {
|
88
|
-
constructor() {
|
89
|
-
this.resize = new Subject();
|
90
|
-
this.click = new Subject();
|
91
|
-
this.scroll = new Subject();
|
92
|
-
fromEvent(window, 'resize')
|
93
|
-
.pipe(debounceTime(100))
|
94
|
-
.pipe(distinctUntilChanged())
|
95
|
-
.subscribe((e) => {
|
96
|
-
this.resize.next({
|
97
|
-
nativeEvent: e,
|
98
|
-
source: this,
|
99
|
-
});
|
100
|
-
//
|
101
|
-
this._setFullHeightRatio();
|
102
|
-
});
|
103
|
-
document.addEventListener('click', (e) => {
|
104
|
-
this.click.next({
|
105
|
-
nativeEvent: e,
|
106
|
-
source: this,
|
107
|
-
});
|
108
|
-
}, true);
|
109
|
-
document.addEventListener('scroll', (e) => {
|
110
|
-
this.scroll.next({
|
111
|
-
nativeEvent: e,
|
112
|
-
source: this,
|
113
|
-
});
|
114
|
-
}, true);
|
115
|
-
// init functions
|
116
|
-
this._setFullHeightRatio();
|
117
|
-
}
|
118
|
-
isRtl() {
|
119
|
-
return (document.dir == 'rtl' ||
|
120
|
-
document.body.dir == 'rtl' ||
|
121
|
-
document.body.style.direction == 'rtl');
|
122
|
-
}
|
123
|
-
isLandscape() {
|
124
|
-
return window.innerHeight < window.innerWidth;
|
125
|
-
}
|
126
|
-
isPortrate() {
|
127
|
-
return !this.isLandscape();
|
128
|
-
}
|
129
|
-
is(name) {
|
130
|
-
return PLATFORMS_MAP[name](window) || false;
|
131
|
-
}
|
132
|
-
switchDarkMode() {
|
133
|
-
const _html = document.getElementsByTagName('html')[0];
|
134
|
-
_html.classList.add('ax-dark');
|
135
|
-
}
|
136
|
-
switchLightMode() {
|
137
|
-
const _html = document.getElementsByTagName('html')[0];
|
138
|
-
_html.classList.remove('ax-dark');
|
139
|
-
}
|
140
|
-
_setFullHeightRatio() {
|
141
|
-
var _a;
|
142
|
-
(_a = document
|
143
|
-
.querySelector(':root')) === null || _a === void 0 ? void 0 : _a.style.setProperty('--ax-vh', window.innerHeight / 100 + 'px');
|
144
|
-
}
|
145
|
-
}
|
146
|
-
AXPlatform.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AXPlatform, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
147
|
-
AXPlatform.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AXPlatform, providedIn: 'root' });
|
148
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AXPlatform, decorators: [{
|
149
|
-
type: Injectable,
|
150
|
-
args: [{
|
151
|
-
providedIn: 'root',
|
152
|
-
}]
|
153
|
-
}], ctorParameters: function () { return []; } });
|
154
|
-
|
155
|
-
/**
|
156
|
-
* Generated bundle index. Do not edit.
|
157
|
-
*/
|
158
|
-
|
159
|
-
export { AXPlatform, AXPlatformEvent, testUserAgent };
|
160
|
-
//# sourceMappingURL=acorex-core-platform.mjs.map
|
161
|
-
//# sourceMappingURL=acorex-core-platform.mjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"acorex-core-platform.mjs","sources":["../../../../projects/acorex/core/platform/src/platform.service.ts","../../../../projects/acorex/core/platform/acorex-core-platform.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { fromEvent, Subject } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\n\r\nexport type AXPlatforms = 'Android' | 'Desktop' | 'iOS' | 'Mobile';\r\nexport type AXBrowsers =\r\n | 'Chrome'\r\n | 'Safari'\r\n | 'Edge'\r\n | 'Firefox'\r\n | 'Opera'\r\n | 'MSIE';\r\nexport type AXTechnologies = 'PWA' | 'Hybrid' | 'Electron';\r\n\r\nexport type AXScreenSizes = 'SM' | 'MD' | 'LG' | 'XL' | '2XL';\r\n\r\nconst isChrome = (win: Window): boolean => testUserAgent(win, /Chrome/i);\r\n\r\nconst isFirefox = (win: Window): boolean => testUserAgent(win, /Firefox/i);\r\n\r\nconst isEdge = (win: Window): boolean => testUserAgent(win, /Edge/i);\r\n\r\nconst isSafari = (win: Window): boolean => testUserAgent(win, /Safari/i);\r\n\r\nconst isOpera = (win: Window): boolean =>\r\n testUserAgent(win, /Opera/i) || testUserAgent(win, /OPR/i);\r\n\r\nconst isMSIE = (win: Window): boolean =>\r\n testUserAgent(win, /MSIE/i) || testUserAgent(win, /Trident/i);\r\n\r\nconst isMobileWeb = (win: Window): boolean => isMobile(win) && !isHybrid(win);\r\n\r\nconst isIpad = (win: Window) => {\r\n // iOS 12 and below\r\n if (testUserAgent(win, /iPad/i)) {\r\n return true;\r\n }\r\n\r\n // iOS 13+\r\n if (testUserAgent(win, /Macintosh/i) && isMobile(win)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst isIphone = (win: Window) => testUserAgent(win, /iPhone/i);\r\n\r\nconst isIOS = (win: Window) =>\r\n testUserAgent(win, /iPhone|iPod/i) || isIpad(win);\r\n\r\nconst isAndroid = (win: Window) => testUserAgent(win, /android|sink/i);\r\n\r\nconst isAndroidTablet = (win: Window) => {\r\n return isAndroid(win) && !testUserAgent(win, /mobile/i);\r\n};\r\n\r\nconst isPhablet = (win: Window) => {\r\n const width = win.innerWidth;\r\n const height = win.innerHeight;\r\n const smallest = Math.min(width, height);\r\n const largest = Math.max(width, height);\r\n\r\n return smallest > 390 && smallest < 520 && largest > 620 && largest < 800;\r\n};\r\n\r\nconst isTablet = (win: Window) => {\r\n const width = win.innerWidth;\r\n const height = win.innerHeight;\r\n const smallest = Math.min(width, height);\r\n const largest = Math.max(width, height);\r\n\r\n return (\r\n isIpad(win) ||\r\n isAndroidTablet(win) ||\r\n (smallest > 460 && smallest < 820 && largest > 780 && largest < 1400)\r\n );\r\n};\r\n\r\nconst isMobile = (win: Window) => matchMedia(win, '(any-pointer:coarse)');\r\nconst isTouch = (win: Window) => matchMedia(win, '(any-pointer:coarse)');\r\n\r\nconst isDesktop = (win: Window) => !isMobile(win);\r\n\r\nconst isHybrid = (win: Window) => isCordova(win) || isCapacitorNative(win);\r\n\r\nconst isCordova = (win: any): boolean =>\r\n !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);\r\n\r\nconst isCapacitorNative = (win: any): boolean => {\r\n const capacitor = win['Capacitor'];\r\n return !!(capacitor && capacitor.isNative);\r\n};\r\n\r\nconst isElectron = (win: Window): boolean => testUserAgent(win, /electron/i);\r\n\r\nconst isPWA = (win: Window): boolean =>\r\n !!(\r\n win.matchMedia('(display-mode: standalone)').matches ||\r\n (win.navigator as any).standalone\r\n );\r\n\r\nexport const testUserAgent = (win: Window, expr: RegExp) =>\r\n expr.test(win.navigator.userAgent);\r\n\r\nconst matchMedia = (win: Window, query: string): boolean =>\r\n win.matchMedia(query).matches;\r\n\r\n\r\nconst isSMScreen = (win: Window) => matchMedia(win, '(max-width: 640px)');\r\nconst isMDScreen = (win: Window) => matchMedia(win, '(max-width: 768px)');\r\nconst isLGScreen = (win: Window) => matchMedia(win, '(max-width: 1024px)');\r\nconst isXLScreen = (win: Window) => matchMedia(win, '(max-width: 1280px)');\r\nconst is2XLScreen = (win: Window) => matchMedia(win, '(max-width: 1536px)');\r\n\r\nconst PLATFORMS_MAP: any = {\r\n Android: isAndroid,\r\n iOS: isIOS,\r\n Desktop: isDesktop,\r\n Mobile: isMobile,\r\n Touch: isTouch,\r\n Chrome: isChrome,\r\n Firefox: isFirefox,\r\n Safari: isSafari,\r\n Edge: isEdge,\r\n Opera: isOpera,\r\n Hybrid: isHybrid,\r\n PWA: isPWA,\r\n Electron: isElectron,\r\n SM: isSMScreen,\r\n MD: isMDScreen,\r\n LG: isLGScreen,\r\n XL: isXLScreen,\r\n \"2XL\": is2XLScreen,\r\n};\r\n\r\nexport class AXPlatformEvent<T extends Event = Event> {\r\n nativeEvent!: T;\r\n source!: AXPlatform;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AXPlatform {\r\n resize: Subject<AXPlatformEvent> = new Subject<AXPlatformEvent>();\r\n click: Subject<AXPlatformEvent> = new Subject<AXPlatformEvent>();\r\n scroll: Subject<AXPlatformEvent> = new Subject<AXPlatformEvent>();\r\n\r\n isRtl(): boolean {\r\n return (\r\n document.dir == 'rtl' ||\r\n document.body.dir == 'rtl' ||\r\n document.body.style.direction == 'rtl'\r\n );\r\n }\r\n\r\n isLandscape(): boolean {\r\n return window.innerHeight < window.innerWidth;\r\n }\r\n\r\n isPortrate(): boolean {\r\n return !this.isLandscape();\r\n }\r\n\r\n is(name: AXPlatforms | AXBrowsers | AXTechnologies | AXScreenSizes): boolean {\r\n return PLATFORMS_MAP[name](window) || false;\r\n }\r\n\r\n switchDarkMode() {\r\n const _html = document.getElementsByTagName('html')[0];\r\n _html.classList.add('ax-dark');\r\n }\r\n\r\n switchLightMode() {\r\n const _html = document.getElementsByTagName('html')[0];\r\n _html.classList.remove('ax-dark');\r\n }\r\n\r\n private _setFullHeightRatio() {\r\n document\r\n .querySelector<HTMLElement>(':root')\r\n ?.style.setProperty('--ax-vh', window.innerHeight / 100 + 'px');\r\n }\r\n\r\n constructor() {\r\n fromEvent<UIEvent>(window, 'resize')\r\n .pipe(debounceTime(100))\r\n .pipe(distinctUntilChanged())\r\n .subscribe((e) => {\r\n this.resize.next({\r\n nativeEvent: e,\r\n source: this,\r\n });\r\n //\r\n this._setFullHeightRatio();\r\n });\r\n\r\n document.addEventListener(\r\n 'click',\r\n (e) => {\r\n this.click.next({\r\n nativeEvent: e,\r\n source: this,\r\n });\r\n },\r\n true\r\n );\r\n\r\n document.addEventListener(\r\n 'scroll',\r\n (e) => {\r\n this.scroll.next({\r\n nativeEvent: e,\r\n source: this,\r\n });\r\n },\r\n true\r\n );\r\n // init functions\r\n this._setFullHeightRatio();\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|