@stemy/ngx-utils 13.6.17 → 17.0.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/esm2022/ngx-utils/common-types.mjs +123 -0
- package/esm2022/ngx-utils/components/dynamic-table/dynamic-table.component.mjs +210 -0
- package/esm2022/ngx-utils/components/pagination-menu/pagination-menu.component.mjs +101 -0
- package/esm2022/ngx-utils/components/unordered-list/unordered-list.component.mjs +65 -0
- package/esm2022/ngx-utils/directives/async-method.base.mjs +82 -0
- package/{esm2020 → esm2022}/ngx-utils/directives/async-method.directive.mjs +21 -21
- package/esm2022/ngx-utils/directives/background.directive.mjs +51 -0
- package/{esm2020 → esm2022}/ngx-utils/directives/dynamic-table-template.directive.mjs +20 -20
- package/{esm2020 → esm2022}/ngx-utils/directives/global-template.directive.mjs +30 -30
- package/esm2022/ngx-utils/directives/icon.directive.mjs +67 -0
- package/esm2022/ngx-utils/directives/ngx-template-outlet.directive.mjs +90 -0
- package/{esm2020 → esm2022}/ngx-utils/directives/pagination-item.directive.mjs +34 -34
- package/esm2022/ngx-utils/directives/pagination.directive.mjs +84 -0
- package/esm2022/ngx-utils/directives/resource-if.directive.mjs +50 -0
- package/esm2022/ngx-utils/directives/sticky-class.directive.mjs +34 -0
- package/{esm2020 → esm2022}/ngx-utils/directives/sticky.directive.mjs +55 -55
- package/{esm2020 → esm2022}/ngx-utils/directives/unordered-list-item.directive.mjs +79 -79
- package/{esm2020 → esm2022}/ngx-utils/directives/unordered-list-template.directive.mjs +20 -20
- package/{esm2020 → esm2022}/ngx-utils/ngx-utils.imports.mjs +174 -174
- package/esm2022/ngx-utils/ngx-utils.module.mjs +202 -0
- package/esm2022/ngx-utils/pipes/chunk.pipe.mjs +25 -0
- package/{esm2020 → esm2022}/ngx-utils/pipes/entries.pipe.mjs +28 -28
- package/{esm2020 → esm2022}/ngx-utils/pipes/extra-item-properties.pipe.mjs +31 -31
- package/esm2022/ngx-utils/pipes/filter.pipe.mjs +37 -0
- package/esm2022/ngx-utils/pipes/find.pipe.mjs +29 -0
- package/{esm2020 → esm2022}/ngx-utils/pipes/format-number.pipe.mjs +21 -21
- package/{esm2020 → esm2022}/ngx-utils/pipes/get-offset.pipe.mjs +17 -17
- package/{esm2020 → esm2022}/ngx-utils/pipes/get-type.pipe.mjs +16 -16
- package/esm2022/ngx-utils/pipes/global-template.pipe.mjs +41 -0
- package/{esm2020 → esm2022}/ngx-utils/pipes/group-by.pipe.mjs +27 -27
- package/{esm2020 → esm2022}/ngx-utils/pipes/is-type.pipe.mjs +16 -16
- package/{esm2020 → esm2022}/ngx-utils/pipes/join.pipe.mjs +19 -19
- package/{esm2020 → esm2022}/ngx-utils/pipes/keys.pipe.mjs +22 -22
- package/{esm2020 → esm2022}/ngx-utils/pipes/map.pipe.mjs +29 -29
- package/{esm2020 → esm2022}/ngx-utils/pipes/max.pipe.mjs +26 -26
- package/{esm2020 → esm2022}/ngx-utils/pipes/min.pipe.mjs +26 -26
- package/{esm2020 → esm2022}/ngx-utils/pipes/pop.pipe.mjs +16 -16
- package/{esm2020 → esm2022}/ngx-utils/pipes/reduce.pipe.mjs +30 -30
- package/esm2022/ngx-utils/pipes/remap.pipe.mjs +32 -0
- package/{esm2020 → esm2022}/ngx-utils/pipes/replace.pipe.mjs +17 -17
- package/esm2022/ngx-utils/pipes/reverse.pipe.mjs +24 -0
- package/{esm2020 → esm2022}/ngx-utils/pipes/round.pipe.mjs +21 -21
- package/esm2022/ngx-utils/pipes/safe-html.pipe.mjs +34 -0
- package/{esm2020 → esm2022}/ngx-utils/pipes/shift.pipe.mjs +16 -16
- package/{esm2020 → esm2022}/ngx-utils/pipes/split.pipe.mjs +16 -16
- package/esm2022/ngx-utils/pipes/translate.pipe.mjs +86 -0
- package/{esm2020 → esm2022}/ngx-utils/pipes/values.pipe.mjs +22 -22
- package/esm2022/ngx-utils/plugins/resize-event.plugin.mjs +78 -0
- package/esm2022/ngx-utils/plugins/scroll-event.plugin.mjs +39 -0
- package/{esm2020 → esm2022}/ngx-utils/services/acl.service.mjs +84 -83
- package/esm2022/ngx-utils/services/api.service.mjs +42 -0
- package/{esm2020 → esm2022}/ngx-utils/services/auth.service.mjs +13 -13
- package/esm2022/ngx-utils/services/base-http.client.mjs +47 -0
- package/esm2022/ngx-utils/services/base-http.service.mjs +305 -0
- package/esm2022/ngx-utils/services/config.service.mjs +130 -0
- package/esm2022/ngx-utils/services/error-handler.service.mjs +49 -0
- package/{esm2020 → esm2022}/ngx-utils/services/events.service.mjs +26 -26
- package/{esm2020 → esm2022}/ngx-utils/services/formatter.service.mjs +49 -49
- package/esm2022/ngx-utils/services/global-template.service.mjs +37 -0
- package/esm2022/ngx-utils/services/icon.service.mjs +26 -0
- package/esm2022/ngx-utils/services/language.service.mjs +124 -0
- package/{esm2020 → esm2022}/ngx-utils/services/local-http.service.mjs +47 -47
- package/{esm2020 → esm2022}/ngx-utils/services/open-api.service.mjs +40 -40
- package/{esm2020 → esm2022}/ngx-utils/services/promise.service.mjs +55 -55
- package/esm2022/ngx-utils/services/state.service.mjs +177 -0
- package/{esm2020 → esm2022}/ngx-utils/services/static-language.service.mjs +166 -166
- package/esm2022/ngx-utils/services/storage.service.mjs +49 -0
- package/{esm2020 → esm2022}/ngx-utils/services/toaster.service.mjs +32 -32
- package/esm2022/ngx-utils/services/translated-url.serializer.mjs +73 -0
- package/esm2022/ngx-utils/services/universal.service.mjs +81 -0
- package/{esm2020 → esm2022}/ngx-utils/services/wasm.service.mjs +46 -46
- package/esm2022/ngx-utils/utils/ajax-request-handler.mjs +40 -0
- package/esm2022/ngx-utils/utils/array.utils.mjs +107 -0
- package/esm2022/ngx-utils/utils/auth.guard.mjs +181 -0
- package/esm2022/ngx-utils/utils/cached-factory.mjs +30 -0
- package/esm2022/ngx-utils/utils/canvas.utils.mjs +388 -0
- package/esm2022/ngx-utils/utils/date.utils.mjs +29 -0
- package/{esm2020 → esm2022}/ngx-utils/utils/file-system.mjs +24 -24
- package/esm2022/ngx-utils/utils/file.utils.mjs +90 -0
- package/{esm2020 → esm2022}/ngx-utils/utils/generic-value.mjs +20 -20
- package/esm2022/ngx-utils/utils/geometry.mjs +132 -0
- package/{esm2020 → esm2022}/ngx-utils/utils/initializer.mjs +20 -20
- package/esm2022/ngx-utils/utils/jsonfn.mjs +45 -0
- package/esm2022/ngx-utils/utils/loader.utils.mjs +55 -0
- package/esm2022/ngx-utils/utils/math.utils.mjs +44 -0
- package/esm2022/ngx-utils/utils/object.utils.mjs +320 -0
- package/{esm2020 → esm2022}/ngx-utils/utils/observable.utils.mjs +63 -63
- package/esm2022/ngx-utils/utils/reflect.utils.mjs +33 -0
- package/esm2022/ngx-utils/utils/set.utils.mjs +20 -0
- package/esm2022/ngx-utils/utils/string.utils.mjs +41 -0
- package/{esm2020 → esm2022}/ngx-utils/utils/timer.utils.mjs +51 -51
- package/esm2022/ngx-utils/utils/unique.utils.mjs +24 -0
- package/esm2022/ngx-utils/utils/vector.mjs +77 -0
- package/esm2022/ngx-utils/utils/wasi.mjs +159 -0
- package/esm2022/ngx-utils/utils/wasm-worker-proxy.mjs +99 -0
- package/{esm2020 → esm2022}/ngx-utils/utils/with-options-provider.mjs +23 -23
- package/{esm2020 → esm2022}/public_api.mjs +93 -93
- package/{esm2020 → esm2022}/stemy-ngx-utils.mjs +4 -4
- package/esm2022/tools/config.mjs +71 -0
- package/{esm2020 → esm2022}/tools/public_api.mjs +1 -1
- package/{esm2020 → esm2022}/tools/stemy-ngx-utils-tools.mjs +4 -4
- package/{fesm2020 → fesm2022}/stemy-ngx-utils-tools.mjs +71 -71
- package/{fesm2015 → fesm2022}/stemy-ngx-utils-tools.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/stemy-ngx-utils.mjs +5639 -5636
- package/fesm2022/stemy-ngx-utils.mjs.map +1 -0
- package/{stemy-ngx-utils.d.ts → index.d.ts} +5 -5
- package/ng.mjs +5 -0
- package/ngx-utils/common-types.d.ts +378 -378
- package/ngx-utils/components/dynamic-table/dynamic-table.component.d.ts +56 -56
- package/ngx-utils/components/pagination-menu/pagination-menu.component.d.ts +31 -31
- package/ngx-utils/components/unordered-list/unordered-list.component.d.ts +25 -25
- package/ngx-utils/directives/async-method.base.d.ts +19 -19
- package/ngx-utils/directives/async-method.directive.d.ts +9 -9
- package/ngx-utils/directives/background.directive.d.ts +17 -17
- package/ngx-utils/directives/dynamic-table-template.directive.d.ts +11 -11
- package/ngx-utils/directives/global-template.directive.d.ts +13 -13
- package/ngx-utils/directives/icon.directive.d.ts +23 -23
- package/ngx-utils/directives/ngx-template-outlet.directive.d.ts +17 -17
- package/ngx-utils/directives/pagination-item.directive.d.ts +15 -15
- package/ngx-utils/directives/pagination.directive.d.ts +25 -25
- package/ngx-utils/directives/resource-if.directive.d.ts +19 -19
- package/ngx-utils/directives/sticky-class.directive.d.ts +15 -15
- package/ngx-utils/directives/sticky.directive.d.ts +19 -19
- package/ngx-utils/directives/unordered-list-item.directive.d.ts +28 -28
- package/ngx-utils/directives/unordered-list-template.directive.d.ts +11 -11
- package/ngx-utils/ngx-utils.imports.d.ts +74 -0
- package/ngx-utils/ngx-utils.module.d.ts +58 -58
- package/ngx-utils/pipes/chunk.pipe.d.ts +7 -7
- package/ngx-utils/pipes/entries.pipe.d.ts +12 -12
- package/ngx-utils/pipes/extra-item-properties.pipe.d.ts +8 -8
- package/ngx-utils/pipes/filter.pipe.d.ts +8 -8
- package/ngx-utils/pipes/find.pipe.d.ts +8 -8
- package/ngx-utils/pipes/format-number.pipe.d.ts +10 -10
- package/ngx-utils/pipes/get-offset.pipe.d.ts +7 -7
- package/ngx-utils/pipes/get-type.pipe.d.ts +7 -7
- package/ngx-utils/pipes/global-template.pipe.d.ts +16 -16
- package/ngx-utils/pipes/group-by.pipe.d.ts +8 -8
- package/ngx-utils/pipes/is-type.pipe.d.ts +7 -7
- package/ngx-utils/pipes/join.pipe.d.ts +7 -7
- package/ngx-utils/pipes/keys.pipe.d.ts +7 -7
- package/ngx-utils/pipes/map.pipe.d.ts +8 -8
- package/ngx-utils/pipes/max.pipe.d.ts +7 -7
- package/ngx-utils/pipes/min.pipe.d.ts +7 -7
- package/ngx-utils/pipes/pop.pipe.d.ts +7 -7
- package/ngx-utils/pipes/reduce.pipe.d.ts +8 -8
- package/ngx-utils/pipes/remap.pipe.d.ts +7 -7
- package/ngx-utils/pipes/replace.pipe.d.ts +7 -7
- package/ngx-utils/pipes/reverse.pipe.d.ts +7 -7
- package/ngx-utils/pipes/round.pipe.d.ts +10 -10
- package/ngx-utils/pipes/safe-html.pipe.d.ts +10 -10
- package/ngx-utils/pipes/shift.pipe.d.ts +7 -7
- package/ngx-utils/pipes/split.pipe.d.ts +7 -7
- package/ngx-utils/pipes/translate.pipe.d.ts +19 -19
- package/ngx-utils/pipes/values.pipe.d.ts +7 -7
- package/ngx-utils/plugins/resize-event.plugin.d.ts +17 -17
- package/ngx-utils/plugins/scroll-event.plugin.d.ts +13 -13
- package/ngx-utils/services/acl.service.d.ts +14 -14
- package/ngx-utils/services/api.service.d.ts +17 -17
- package/ngx-utils/services/auth.service.d.ts +8 -8
- package/ngx-utils/services/base-http.client.d.ts +15 -15
- package/ngx-utils/services/base-http.service.d.ts +53 -53
- package/ngx-utils/services/config.service.d.ts +30 -30
- package/ngx-utils/services/error-handler.service.d.ts +13 -13
- package/ngx-utils/services/events.service.d.ts +14 -14
- package/ngx-utils/services/formatter.service.d.ts +15 -15
- package/ngx-utils/services/global-template.service.d.ts +19 -19
- package/ngx-utils/services/icon.service.d.ts +13 -13
- package/ngx-utils/services/language.service.d.ts +21 -21
- package/ngx-utils/services/local-http.service.d.ts +14 -14
- package/ngx-utils/services/open-api.service.d.ts +11 -11
- package/ngx-utils/services/promise.service.d.ts +19 -19
- package/ngx-utils/services/state.service.d.ts +49 -49
- package/ngx-utils/services/static-language.service.d.ts +46 -46
- package/ngx-utils/services/storage.service.d.ts +15 -15
- package/ngx-utils/services/toaster.service.d.ts +13 -13
- package/ngx-utils/services/translated-url.serializer.d.ts +19 -19
- package/ngx-utils/services/universal.service.d.ts +28 -28
- package/ngx-utils/services/wasm.service.d.ts +25 -25
- package/ngx-utils/utils/ajax-request-handler.d.ts +11 -11
- package/ngx-utils/utils/array.utils.d.ts +11 -11
- package/ngx-utils/utils/auth.guard.d.ts +29 -29
- package/ngx-utils/utils/cached-factory.d.ts +2 -2
- package/ngx-utils/utils/canvas.utils.d.ts +13 -13
- package/ngx-utils/utils/date.utils.d.ts +8 -8
- package/ngx-utils/utils/file-system.d.ts +16 -16
- package/ngx-utils/utils/file.utils.d.ts +14 -14
- package/ngx-utils/utils/generic-value.d.ts +8 -8
- package/ngx-utils/utils/geometry.d.ts +50 -50
- package/ngx-utils/utils/initializer.d.ts +12 -12
- package/ngx-utils/utils/jsonfn.d.ts +6 -6
- package/ngx-utils/utils/loader.utils.d.ts +7 -7
- package/ngx-utils/utils/math.utils.d.ts +8 -8
- package/ngx-utils/utils/object.utils.d.ts +35 -35
- package/ngx-utils/utils/observable.utils.d.ts +13 -13
- package/ngx-utils/utils/reflect.utils.d.ts +9 -9
- package/ngx-utils/utils/set.utils.d.ts +4 -4
- package/ngx-utils/utils/string.utils.d.ts +9 -9
- package/ngx-utils/utils/timer.utils.d.ts +6 -6
- package/ngx-utils/utils/unique.utils.d.ts +5 -5
- package/ngx-utils/utils/vector.d.ts +23 -23
- package/ngx-utils/utils/wasi.d.ts +26 -26
- package/ngx-utils/utils/wasm-worker-proxy.d.ts +17 -17
- package/ngx-utils/utils/with-options-provider.d.ts +3 -3
- package/package.json +21 -29
- package/public_api.d.ts +93 -93
- package/tools/config.d.ts +7 -7
- package/tools/{stemy-ngx-utils-tools.d.ts → index.d.ts} +5 -5
- package/tools/public_api.d.ts +1 -1
- package/esm2020/ngx-utils/common-types.mjs +0 -123
- package/esm2020/ngx-utils/components/dynamic-table/dynamic-table.component.mjs +0 -210
- package/esm2020/ngx-utils/components/pagination-menu/pagination-menu.component.mjs +0 -101
- package/esm2020/ngx-utils/components/unordered-list/unordered-list.component.mjs +0 -65
- package/esm2020/ngx-utils/directives/async-method.base.mjs +0 -82
- package/esm2020/ngx-utils/directives/background.directive.mjs +0 -51
- package/esm2020/ngx-utils/directives/icon.directive.mjs +0 -67
- package/esm2020/ngx-utils/directives/ngx-template-outlet.directive.mjs +0 -90
- package/esm2020/ngx-utils/directives/pagination.directive.mjs +0 -84
- package/esm2020/ngx-utils/directives/resource-if.directive.mjs +0 -50
- package/esm2020/ngx-utils/directives/sticky-class.directive.mjs +0 -34
- package/esm2020/ngx-utils/ngx-utils.module.mjs +0 -204
- package/esm2020/ngx-utils/pipes/chunk.pipe.mjs +0 -25
- package/esm2020/ngx-utils/pipes/filter.pipe.mjs +0 -37
- package/esm2020/ngx-utils/pipes/find.pipe.mjs +0 -29
- package/esm2020/ngx-utils/pipes/global-template.pipe.mjs +0 -41
- package/esm2020/ngx-utils/pipes/remap.pipe.mjs +0 -32
- package/esm2020/ngx-utils/pipes/reverse.pipe.mjs +0 -24
- package/esm2020/ngx-utils/pipes/safe-html.pipe.mjs +0 -34
- package/esm2020/ngx-utils/pipes/translate.pipe.mjs +0 -86
- package/esm2020/ngx-utils/plugins/resize-event.plugin.mjs +0 -78
- package/esm2020/ngx-utils/plugins/scroll-event.plugin.mjs +0 -39
- package/esm2020/ngx-utils/services/api.service.mjs +0 -42
- package/esm2020/ngx-utils/services/base-http.client.mjs +0 -47
- package/esm2020/ngx-utils/services/base-http.service.mjs +0 -305
- package/esm2020/ngx-utils/services/config.service.mjs +0 -130
- package/esm2020/ngx-utils/services/error-handler.service.mjs +0 -49
- package/esm2020/ngx-utils/services/global-template.service.mjs +0 -37
- package/esm2020/ngx-utils/services/icon.service.mjs +0 -26
- package/esm2020/ngx-utils/services/language.service.mjs +0 -124
- package/esm2020/ngx-utils/services/state.service.mjs +0 -173
- package/esm2020/ngx-utils/services/storage.service.mjs +0 -49
- package/esm2020/ngx-utils/services/translated-url.serializer.mjs +0 -73
- package/esm2020/ngx-utils/services/universal.service.mjs +0 -81
- package/esm2020/ngx-utils/utils/ajax-request-handler.mjs +0 -40
- package/esm2020/ngx-utils/utils/array.utils.mjs +0 -107
- package/esm2020/ngx-utils/utils/auth.guard.mjs +0 -181
- package/esm2020/ngx-utils/utils/cached-factory.mjs +0 -30
- package/esm2020/ngx-utils/utils/canvas.utils.mjs +0 -388
- package/esm2020/ngx-utils/utils/date.utils.mjs +0 -29
- package/esm2020/ngx-utils/utils/file.utils.mjs +0 -90
- package/esm2020/ngx-utils/utils/geometry.mjs +0 -132
- package/esm2020/ngx-utils/utils/jsonfn.mjs +0 -45
- package/esm2020/ngx-utils/utils/loader.utils.mjs +0 -55
- package/esm2020/ngx-utils/utils/math.utils.mjs +0 -44
- package/esm2020/ngx-utils/utils/object.utils.mjs +0 -320
- package/esm2020/ngx-utils/utils/reflect.utils.mjs +0 -33
- package/esm2020/ngx-utils/utils/set.utils.mjs +0 -20
- package/esm2020/ngx-utils/utils/string.utils.mjs +0 -41
- package/esm2020/ngx-utils/utils/unique.utils.mjs +0 -24
- package/esm2020/ngx-utils/utils/vector.mjs +0 -77
- package/esm2020/ngx-utils/utils/wasi.mjs +0 -159
- package/esm2020/ngx-utils/utils/wasm-worker-proxy.mjs +0 -99
- package/esm2020/tools/config.mjs +0 -71
- package/fesm2015/stemy-ngx-utils-tools.mjs +0 -77
- package/fesm2015/stemy-ngx-utils.mjs +0 -5894
- package/fesm2015/stemy-ngx-utils.mjs.map +0 -1
- package/fesm2020/stemy-ngx-utils-tools.mjs.map +0 -1
- package/fesm2020/stemy-ngx-utils.mjs.map +0 -1
- package/tools/package.json +0 -10
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import { EventEmitter, Injectable } from "@angular/core";
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class EventsService {
|
|
4
|
-
|
|
5
|
-
this.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
this.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
event(e) {
|
|
14
|
-
this.eventForwarded.emit(e);
|
|
15
|
-
}
|
|
16
|
-
updateSticky(sticky) {
|
|
17
|
-
this.sticky = sticky;
|
|
18
|
-
this.stickyUpdated.emit(sticky);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
24
|
-
type: Injectable
|
|
25
|
-
}], ctorParameters:
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { EventEmitter, Injectable } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class EventsService {
|
|
4
|
+
get isSticky() {
|
|
5
|
+
return this.sticky;
|
|
6
|
+
}
|
|
7
|
+
constructor() {
|
|
8
|
+
this.eventForwarded = new EventEmitter();
|
|
9
|
+
this.stickyUpdated = new EventEmitter();
|
|
10
|
+
this.languageChanged = new EventEmitter();
|
|
11
|
+
this.sticky = false;
|
|
12
|
+
}
|
|
13
|
+
event(e) {
|
|
14
|
+
this.eventForwarded.emit(e);
|
|
15
|
+
}
|
|
16
|
+
updateSticky(sticky) {
|
|
17
|
+
this.sticky = sticky;
|
|
18
|
+
this.stickyUpdated.emit(sticky);
|
|
19
|
+
}
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EventsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
21
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EventsService }); }
|
|
22
|
+
}
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EventsService, decorators: [{
|
|
24
|
+
type: Injectable
|
|
25
|
+
}], ctorParameters: () => [] });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQUd2RCxNQUFNLE9BQU8sYUFBYTtJQVF0QixJQUFXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVEO1FBQ0ksSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBQ2hELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUNqRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVELEtBQUssQ0FBQyxDQUFRO1FBQ1YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFlO1FBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7K0dBMUJRLGFBQWE7bUhBQWIsYUFBYTs7NEZBQWIsYUFBYTtrQkFEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRXZlbnRzU2VydmljZSB7XHJcblxyXG4gICAgcmVhZG9ubHkgZXZlbnRGb3J3YXJkZWQ6IEV2ZW50RW1pdHRlcjxFdmVudD47XHJcbiAgICByZWFkb25seSBzdGlja3lVcGRhdGVkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XHJcbiAgICByZWFkb25seSBsYW5ndWFnZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+O1xyXG5cclxuICAgIHByaXZhdGUgc3RpY2t5OiBib29sZWFuO1xyXG5cclxuICAgIHB1YmxpYyBnZXQgaXNTdGlja3koKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RpY2t5O1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMuZXZlbnRGb3J3YXJkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xyXG4gICAgICAgIHRoaXMuc3RpY2t5VXBkYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICAgICAgICB0aGlzLmxhbmd1YWdlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gICAgICAgIHRoaXMuc3RpY2t5ID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgZXZlbnQoZTogRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmV2ZW50Rm9yd2FyZGVkLmVtaXQoZSk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlU3RpY2t5KHN0aWNreTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3RpY2t5ID0gc3RpY2t5O1xyXG4gICAgICAgIHRoaXMuc3RpY2t5VXBkYXRlZC5lbWl0KHN0aWNreSk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
import { Inject, Injectable } from "@angular/core";
|
|
2
|
-
import { LANGUAGE_SERVICE } from "../common-types";
|
|
3
|
-
import { ObjectUtils } from "../utils/object.utils";
|
|
4
|
-
import { MathUtils } from "../utils/math.utils";
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class FormatterService {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
get
|
|
11
|
-
return
|
|
12
|
-
}
|
|
13
|
-
get
|
|
14
|
-
return
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
roundNumber(value, precision, divider) {
|
|
20
|
-
return MathUtils.round(value, this.getPrecision(precision), divider || this.defaultDivider);
|
|
21
|
-
}
|
|
22
|
-
formatNumber(value, format, precision, divider, minDigits) {
|
|
23
|
-
precision = this.getPrecision(precision);
|
|
24
|
-
minDigits = minDigits ?? precision;
|
|
25
|
-
divider = divider || this.defaultDivider;
|
|
26
|
-
const num = ObjectUtils.isNumber(value) ? value : parseFloat(value) || 0;
|
|
27
|
-
const str = (num / divider).toLocaleString(this.language.currentLanguage, {
|
|
28
|
-
minimumFractionDigits: minDigits,
|
|
29
|
-
maximumFractionDigits: precision,
|
|
30
|
-
useGrouping: false
|
|
31
|
-
});
|
|
32
|
-
return ObjectUtils.evaluate(format || this.defaultNumberFormat, { num: str });
|
|
33
|
-
}
|
|
34
|
-
formatMillimeter(value, precision, divider) {
|
|
35
|
-
return this.formatNumber(value, `num + ' mm'`, precision, divider);
|
|
36
|
-
}
|
|
37
|
-
getPrecision(precision) {
|
|
38
|
-
return ObjectUtils.isNumber(precision) ? precision : this.defaultPrecision;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
44
|
-
type: Injectable
|
|
45
|
-
}], ctorParameters:
|
|
46
|
-
type: Inject,
|
|
47
|
-
args: [LANGUAGE_SERVICE]
|
|
48
|
-
}] }]
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Inject, Injectable } from "@angular/core";
|
|
2
|
+
import { LANGUAGE_SERVICE } from "../common-types";
|
|
3
|
+
import { ObjectUtils } from "../utils/object.utils";
|
|
4
|
+
import { MathUtils } from "../utils/math.utils";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class FormatterService {
|
|
7
|
+
get defaultPrecision() {
|
|
8
|
+
return 2;
|
|
9
|
+
}
|
|
10
|
+
get defaultNumberFormat() {
|
|
11
|
+
return `num + ' mm'`;
|
|
12
|
+
}
|
|
13
|
+
get defaultDivider() {
|
|
14
|
+
return 1;
|
|
15
|
+
}
|
|
16
|
+
constructor(language) {
|
|
17
|
+
this.language = language;
|
|
18
|
+
}
|
|
19
|
+
roundNumber(value, precision, divider) {
|
|
20
|
+
return MathUtils.round(value, this.getPrecision(precision), divider || this.defaultDivider);
|
|
21
|
+
}
|
|
22
|
+
formatNumber(value, format, precision, divider, minDigits) {
|
|
23
|
+
precision = this.getPrecision(precision);
|
|
24
|
+
minDigits = minDigits ?? precision;
|
|
25
|
+
divider = divider || this.defaultDivider;
|
|
26
|
+
const num = ObjectUtils.isNumber(value) ? value : parseFloat(value) || 0;
|
|
27
|
+
const str = (num / divider).toLocaleString(this.language.currentLanguage, {
|
|
28
|
+
minimumFractionDigits: minDigits,
|
|
29
|
+
maximumFractionDigits: precision,
|
|
30
|
+
useGrouping: false
|
|
31
|
+
});
|
|
32
|
+
return ObjectUtils.evaluate(format || this.defaultNumberFormat, { num: str });
|
|
33
|
+
}
|
|
34
|
+
formatMillimeter(value, precision, divider) {
|
|
35
|
+
return this.formatNumber(value, `num + ' mm'`, precision, divider);
|
|
36
|
+
}
|
|
37
|
+
getPrecision(precision) {
|
|
38
|
+
return ObjectUtils.isNumber(precision) ? precision : this.defaultPrecision;
|
|
39
|
+
}
|
|
40
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormatterService, deps: [{ token: LANGUAGE_SERVICE }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
41
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormatterService }); }
|
|
42
|
+
}
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormatterService, decorators: [{
|
|
44
|
+
type: Injectable
|
|
45
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
46
|
+
type: Inject,
|
|
47
|
+
args: [LANGUAGE_SERVICE]
|
|
48
|
+
}] }] });
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL3NlcnZpY2VzL2Zvcm1hdHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBbUIsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHFCQUFxQixDQUFDOztBQUc5QyxNQUFNLE9BQU8sZ0JBQWdCO0lBRXpCLElBQUksZ0JBQWdCO1FBQ2hCLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ25CLE9BQU8sYUFBYSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDZCxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxZQUE2QyxRQUEwQjtRQUExQixhQUFRLEdBQVIsUUFBUSxDQUFrQjtJQUV2RSxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWEsRUFBRSxTQUFrQixFQUFFLE9BQWdCO1FBQzNELE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBc0IsRUFBRSxNQUFlLEVBQUUsU0FBa0IsRUFBRSxPQUFnQixFQUFFLFNBQWtCO1FBQzFHLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pDLFNBQVMsR0FBRyxTQUFTLElBQUksU0FBUyxDQUFDO1FBQ25DLE9BQU8sR0FBRyxPQUFPLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUN6QyxNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBUyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBUyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekYsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFO1lBQ3RFLHFCQUFxQixFQUFFLFNBQVM7WUFDaEMscUJBQXFCLEVBQUUsU0FBUztZQUNoQyxXQUFXLEVBQUUsS0FBSztTQUNyQixDQUFDLENBQUM7UUFDSCxPQUFPLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxFQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFhLEVBQUUsU0FBa0IsRUFBRSxPQUFnQjtRQUNoRSxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVTLFlBQVksQ0FBQyxTQUFpQjtRQUNwQyxPQUFPLFdBQVcsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9FLENBQUM7K0dBekNRLGdCQUFnQixrQkFjTCxnQkFBZ0I7bUhBZDNCLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVTs7MEJBZU0sTUFBTTsyQkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtJTGFuZ3VhZ2VTZXJ2aWNlLCBMQU5HVUFHRV9TRVJWSUNFfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7T2JqZWN0VXRpbHN9IGZyb20gXCIuLi91dGlscy9vYmplY3QudXRpbHNcIjtcclxuaW1wb3J0IHtNYXRoVXRpbHN9IGZyb20gXCIuLi91dGlscy9tYXRoLnV0aWxzXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBGb3JtYXR0ZXJTZXJ2aWNlIHtcclxuXHJcbiAgICBnZXQgZGVmYXVsdFByZWNpc2lvbigpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiAyO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZWZhdWx0TnVtYmVyRm9ybWF0KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGBudW0gKyAnIG1tJ2A7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRlZmF1bHREaXZpZGVyKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIDE7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChMQU5HVUFHRV9TRVJWSUNFKSBwdWJsaWMgbGFuZ3VhZ2U6IElMYW5ndWFnZVNlcnZpY2UpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgcm91bmROdW1iZXIodmFsdWU6IG51bWJlciwgcHJlY2lzaW9uPzogbnVtYmVyLCBkaXZpZGVyPzogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gTWF0aFV0aWxzLnJvdW5kKHZhbHVlLCB0aGlzLmdldFByZWNpc2lvbihwcmVjaXNpb24pLCBkaXZpZGVyIHx8IHRoaXMuZGVmYXVsdERpdmlkZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIGZvcm1hdE51bWJlcih2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBmb3JtYXQ/OiBzdHJpbmcsIHByZWNpc2lvbj86IG51bWJlciwgZGl2aWRlcj86IG51bWJlciwgbWluRGlnaXRzPzogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgICAgICBwcmVjaXNpb24gPSB0aGlzLmdldFByZWNpc2lvbihwcmVjaXNpb24pO1xyXG4gICAgICAgIG1pbkRpZ2l0cyA9IG1pbkRpZ2l0cyA/PyBwcmVjaXNpb247XHJcbiAgICAgICAgZGl2aWRlciA9IGRpdmlkZXIgfHwgdGhpcy5kZWZhdWx0RGl2aWRlcjtcclxuICAgICAgICBjb25zdCBudW0gPSBPYmplY3RVdGlscy5pc051bWJlcih2YWx1ZSkgPyA8bnVtYmVyPnZhbHVlIDogcGFyc2VGbG9hdCg8c3RyaW5nPnZhbHVlKSB8fCAwO1xyXG4gICAgICAgIGNvbnN0IHN0ciA9IChudW0gLyBkaXZpZGVyKS50b0xvY2FsZVN0cmluZyh0aGlzLmxhbmd1YWdlLmN1cnJlbnRMYW5ndWFnZSwge1xyXG4gICAgICAgICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IG1pbkRpZ2l0cyxcclxuICAgICAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiBwcmVjaXNpb24sXHJcbiAgICAgICAgICAgIHVzZUdyb3VwaW5nOiBmYWxzZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBPYmplY3RVdGlscy5ldmFsdWF0ZShmb3JtYXQgfHwgdGhpcy5kZWZhdWx0TnVtYmVyRm9ybWF0LCB7bnVtOiBzdHJ9KTtcclxuICAgIH1cclxuXHJcbiAgICBmb3JtYXRNaWxsaW1ldGVyKHZhbHVlOiBudW1iZXIsIHByZWNpc2lvbj86IG51bWJlciwgZGl2aWRlcj86IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0TnVtYmVyKHZhbHVlLCBgbnVtICsgJyBtbSdgLCBwcmVjaXNpb24sIGRpdmlkZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBnZXRQcmVjaXNpb24ocHJlY2lzaW9uOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBPYmplY3RVdGlscy5pc051bWJlcihwcmVjaXNpb24pID8gcHJlY2lzaW9uIDogdGhpcy5kZWZhdWx0UHJlY2lzaW9uO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { EventEmitter, Injectable } from "@angular/core";
|
|
2
|
+
import { ObjectUtils } from "../utils/object.utils";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class GlobalTemplateService {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.templatesUpdated = new EventEmitter();
|
|
7
|
+
this.globalTemplates = {};
|
|
8
|
+
this.componentModifiers = {};
|
|
9
|
+
}
|
|
10
|
+
get(id, component) {
|
|
11
|
+
const template = this.globalTemplates[id];
|
|
12
|
+
if (!template)
|
|
13
|
+
return undefined;
|
|
14
|
+
const modifier = this.componentModifiers[id];
|
|
15
|
+
if (ObjectUtils.isFunction(modifier) && component) {
|
|
16
|
+
modifier(component);
|
|
17
|
+
}
|
|
18
|
+
return template;
|
|
19
|
+
}
|
|
20
|
+
add(id, template) {
|
|
21
|
+
this.globalTemplates[id] = template;
|
|
22
|
+
this.templatesUpdated.emit();
|
|
23
|
+
}
|
|
24
|
+
remove(id) {
|
|
25
|
+
delete this.globalTemplates[id];
|
|
26
|
+
this.templatesUpdated.emit();
|
|
27
|
+
}
|
|
28
|
+
addComponentModifier(id, modifier) {
|
|
29
|
+
this.componentModifiers[id] = modifier;
|
|
30
|
+
}
|
|
31
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GlobalTemplateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
32
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GlobalTemplateService }); }
|
|
33
|
+
}
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GlobalTemplateService, decorators: [{
|
|
35
|
+
type: Injectable
|
|
36
|
+
}], ctorParameters: () => [] });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLXRlbXBsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL3NlcnZpY2VzL2dsb2JhbC10ZW1wbGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUUsVUFBVSxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7QUFJbEQsTUFBTSxPQUFPLHFCQUFxQjtJQU85QjtRQUNJLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2hELElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELEdBQUcsQ0FBQyxFQUFVLEVBQUUsU0FBZTtRQUMzQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDaEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNoRCxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEIsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxHQUFHLENBQUMsRUFBVSxFQUFFLFFBQTBCO1FBQ3RDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsTUFBTSxDQUFDLEVBQVU7UUFDYixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxFQUFVLEVBQUUsUUFBaUM7UUFDOUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQztJQUMzQyxDQUFDOytHQW5DUSxxQkFBcUI7bUhBQXJCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlLCBUZW1wbGF0ZVJlZn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtPYmplY3RVdGlsc30gZnJvbSBcIi4uL3V0aWxzL29iamVjdC51dGlsc1wiO1xyXG5pbXBvcnQge0dsb2JhbENvbXBvbmVudE1vZGlmaWVyLCBJR2xvYmFsVGVtcGxhdGVzfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBHbG9iYWxUZW1wbGF0ZVNlcnZpY2UgaW1wbGVtZW50cyBJR2xvYmFsVGVtcGxhdGVzIHtcclxuXHJcbiAgICByZWFkb25seSB0ZW1wbGF0ZXNVcGRhdGVkOiBFdmVudEVtaXR0ZXI8dm9pZD47XHJcblxyXG4gICAgcHJvdGVjdGVkIGdsb2JhbFRlbXBsYXRlczogeyBbaWQ6IHN0cmluZ106IFRlbXBsYXRlUmVmPGFueT4gfTtcclxuICAgIHByb3RlY3RlZCBjb21wb25lbnRNb2RpZmllcnM6IHsgW2lkOiBzdHJpbmddOiBHbG9iYWxDb21wb25lbnRNb2RpZmllciB9O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMudGVtcGxhdGVzVXBkYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gICAgICAgIHRoaXMuZ2xvYmFsVGVtcGxhdGVzID0ge307XHJcbiAgICAgICAgdGhpcy5jb21wb25lbnRNb2RpZmllcnMgPSB7fTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQoaWQ6IHN0cmluZywgY29tcG9uZW50PzogYW55KTogVGVtcGxhdGVSZWY8YW55PiB7XHJcbiAgICAgICAgY29uc3QgdGVtcGxhdGUgPSB0aGlzLmdsb2JhbFRlbXBsYXRlc1tpZF07XHJcbiAgICAgICAgaWYgKCF0ZW1wbGF0ZSkgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICBjb25zdCBtb2RpZmllciA9IHRoaXMuY29tcG9uZW50TW9kaWZpZXJzW2lkXTtcclxuICAgICAgICBpZiAoT2JqZWN0VXRpbHMuaXNGdW5jdGlvbihtb2RpZmllcikgJiYgY29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgIG1vZGlmaWVyKGNvbXBvbmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0ZW1wbGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBhZGQoaWQ6IHN0cmluZywgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmdsb2JhbFRlbXBsYXRlc1tpZF0gPSB0ZW1wbGF0ZTtcclxuICAgICAgICB0aGlzLnRlbXBsYXRlc1VwZGF0ZWQuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZShpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgZGVsZXRlIHRoaXMuZ2xvYmFsVGVtcGxhdGVzW2lkXTtcclxuICAgICAgICB0aGlzLnRlbXBsYXRlc1VwZGF0ZWQuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZENvbXBvbmVudE1vZGlmaWVyKGlkOiBzdHJpbmcsIG1vZGlmaWVyOiBHbG9iYWxDb21wb25lbnRNb2RpZmllcik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY29tcG9uZW50TW9kaWZpZXJzW2lkXSA9IG1vZGlmaWVyO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { EventEmitter, Injectable } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class IconService {
|
|
4
|
+
get isDisabled() {
|
|
5
|
+
return this.disabled;
|
|
6
|
+
}
|
|
7
|
+
set isDisabled(value) {
|
|
8
|
+
this.disabled = value;
|
|
9
|
+
this.iconsLoaded.emit();
|
|
10
|
+
}
|
|
11
|
+
constructor() {
|
|
12
|
+
this.iconsLoaded = new EventEmitter();
|
|
13
|
+
this.disabled = false;
|
|
14
|
+
}
|
|
15
|
+
getIcon(icon, activeIcon, active) {
|
|
16
|
+
icon = typeof icons == "undefined" ? icon : (icons[icon] || icon);
|
|
17
|
+
activeIcon = typeof icons == "undefined" ? activeIcon : (icons[activeIcon] || icon);
|
|
18
|
+
return Promise.resolve(active ? activeIcon : icon);
|
|
19
|
+
}
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IconService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
21
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IconService }); }
|
|
22
|
+
}
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IconService, decorators: [{
|
|
24
|
+
type: Injectable
|
|
25
|
+
}], ctorParameters: () => [] });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL25neC11dGlscy9zZXJ2aWNlcy9pY29uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBUXZELE1BQU0sT0FBTyxXQUFXO0lBRXBCLElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxVQUFVLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFNRDtRQUNJLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUMzQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQsT0FBTyxDQUFDLElBQVksRUFBRSxVQUFrQixFQUFFLE1BQWU7UUFDckQsSUFBSSxHQUFHLE9BQU8sS0FBSyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUNsRSxVQUFVLEdBQUcsT0FBTyxLQUFLLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQ3BGLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkQsQ0FBQzsrR0F4QlEsV0FBVzttSEFBWCxXQUFXOzs0RkFBWCxXQUFXO2tCQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFdmVudEVtaXR0ZXIsIEluamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7SUljb25TZXJ2aWNlfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XHJcblxyXG5kZWNsYXJlIGNvbnN0IGljb25zOiB7XHJcbiAgICBbaWNvbjogc3RyaW5nXTogc3RyaW5nO1xyXG59O1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgSWNvblNlcnZpY2UgaW1wbGVtZW50cyBJSWNvblNlcnZpY2Uge1xyXG5cclxuICAgIGdldCBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBpc0Rpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuaWNvbnNMb2FkZWQuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSBpY29uc0xvYWRlZDogRXZlbnRFbWl0dGVyPGFueT47XHJcblxyXG4gICAgcHJvdGVjdGVkIGRpc2FibGVkOiBib29sZWFuO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMuaWNvbnNMb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgICAgICB0aGlzLmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SWNvbihpY29uOiBzdHJpbmcsIGFjdGl2ZUljb246IHN0cmluZywgYWN0aXZlOiBib29sZWFuKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgICAgICBpY29uID0gdHlwZW9mIGljb25zID09IFwidW5kZWZpbmVkXCIgPyBpY29uIDogKGljb25zW2ljb25dIHx8IGljb24pO1xyXG4gICAgICAgIGFjdGl2ZUljb24gPSB0eXBlb2YgaWNvbnMgPT0gXCJ1bmRlZmluZWRcIiA/IGFjdGl2ZUljb24gOiAoaWNvbnNbYWN0aXZlSWNvbl0gfHwgaWNvbik7XHJcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShhY3RpdmUgPyBhY3RpdmVJY29uIDogaWNvbik7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import { BehaviorSubject, combineLatest } from "rxjs";
|
|
3
|
+
import { map } from "rxjs/operators";
|
|
4
|
+
import { StaticLanguageService } from "./static-language.service";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class LanguageService extends StaticLanguageService {
|
|
7
|
+
get currentLanguage() {
|
|
8
|
+
return this.currentLang || this.defaultLanguage;
|
|
9
|
+
}
|
|
10
|
+
set currentLanguage(lang) {
|
|
11
|
+
this.useLanguage(lang).then(() => {
|
|
12
|
+
this.events.languageChanged.emit(lang);
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
get settings() {
|
|
16
|
+
const settings = this.languageSettings.value;
|
|
17
|
+
return !settings ? {} : settings.settings[this.currentLanguage] || {};
|
|
18
|
+
}
|
|
19
|
+
get $settings() {
|
|
20
|
+
this.loadSettings().then(s => this.languageSettings.next(s));
|
|
21
|
+
return combineLatest([this.languageSettings, this.events.languageChanged]).pipe(map(([settings, lang]) => {
|
|
22
|
+
return !settings ? {} : settings.settings[lang] || {};
|
|
23
|
+
}));
|
|
24
|
+
}
|
|
25
|
+
initService() {
|
|
26
|
+
this.client.setExtraRequestParam("language", "de");
|
|
27
|
+
this.translationRequests = {};
|
|
28
|
+
this.languageSettings = new BehaviorSubject(null);
|
|
29
|
+
if (this.universal.isServer)
|
|
30
|
+
return;
|
|
31
|
+
window["setLanguage"] = (lang) => {
|
|
32
|
+
this.currentLanguage = lang;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
async initFromSettings() {
|
|
36
|
+
const defaultLanguage = this.defaultLanguage;
|
|
37
|
+
const settings = await this.loadSettings();
|
|
38
|
+
this.languageSettings.next(settings);
|
|
39
|
+
const devLanguages = settings.devLanguages || [];
|
|
40
|
+
this.languageList = (settings.languages || []).filter(lang => {
|
|
41
|
+
const unavailable = settings.settings[lang]?.unavailable;
|
|
42
|
+
if (unavailable) {
|
|
43
|
+
const parts = unavailable.split("/");
|
|
44
|
+
const value = parts[0] || parts[1];
|
|
45
|
+
const flags = parts.length > 1 ? parts[parts.length - 1] : "g";
|
|
46
|
+
if (new RegExp(value, flags).test(this.config.baseDomain))
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
return devLanguages.indexOf(lang) < 0;
|
|
50
|
+
});
|
|
51
|
+
if (this.languageList.length === 0) {
|
|
52
|
+
this.languageList = [defaultLanguage];
|
|
53
|
+
}
|
|
54
|
+
const lang = this.languages.indexOf(defaultLanguage) < 0 ? settings.defaultLanguage || this.languageList[0] : defaultLanguage;
|
|
55
|
+
await this.useLanguage(lang);
|
|
56
|
+
this.events.languageChanged.emit(lang);
|
|
57
|
+
}
|
|
58
|
+
async getTranslation(key, params = null) {
|
|
59
|
+
if (!key)
|
|
60
|
+
return "";
|
|
61
|
+
try {
|
|
62
|
+
const lowerKey = key.toLocaleLowerCase();
|
|
63
|
+
const dict = await this.loadDictionary();
|
|
64
|
+
if (lowerKey in dict) {
|
|
65
|
+
return this.interpolate(dict[lowerKey], params);
|
|
66
|
+
}
|
|
67
|
+
return this.interpolate(key, params);
|
|
68
|
+
}
|
|
69
|
+
catch (reason) {
|
|
70
|
+
console.log("ERROR IN TRANSLATIONS", reason);
|
|
71
|
+
return key;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
async useLanguage(lang) {
|
|
75
|
+
lang = this.languages.indexOf(lang) < 0 ? this.languages[0] : lang;
|
|
76
|
+
this.client.setExtraRequestParam("language", lang);
|
|
77
|
+
if (lang == this.currentLang)
|
|
78
|
+
return this.dictionary;
|
|
79
|
+
this.storage.set("language", lang);
|
|
80
|
+
this.currentLang = lang;
|
|
81
|
+
const dict = await this.loadDictionary();
|
|
82
|
+
this.translations[lang] = dict;
|
|
83
|
+
return dict;
|
|
84
|
+
}
|
|
85
|
+
loadDictionary() {
|
|
86
|
+
const lang = this.currentLanguage;
|
|
87
|
+
this.translationRequests[lang] = this.translationRequests[lang] || new Promise(resolve => {
|
|
88
|
+
this.httpClient.get(`${this.config.translationUrl}${lang}`).toPromise().then(response => {
|
|
89
|
+
response = response || {};
|
|
90
|
+
resolve(Object.keys(response).reduce((result, key) => {
|
|
91
|
+
result[key.toLocaleLowerCase()] = response[key];
|
|
92
|
+
return result;
|
|
93
|
+
}, {}));
|
|
94
|
+
}, () => {
|
|
95
|
+
resolve({});
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
return this.translationRequests[lang];
|
|
99
|
+
}
|
|
100
|
+
loadSettings() {
|
|
101
|
+
this.settingsPromise = this.settingsPromise || (this.client.get(`${this.config.translationUrl}languageSettings`).toPromise())
|
|
102
|
+
.then((settings) => {
|
|
103
|
+
return settings;
|
|
104
|
+
}, () => {
|
|
105
|
+
return {
|
|
106
|
+
languages: ["de", "en", "hu"],
|
|
107
|
+
devLanguages: [],
|
|
108
|
+
defaultLanguage: "de",
|
|
109
|
+
settings: {
|
|
110
|
+
de: {},
|
|
111
|
+
hu: {},
|
|
112
|
+
en: {}
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
});
|
|
116
|
+
return this.settingsPromise;
|
|
117
|
+
}
|
|
118
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LanguageService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
119
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LanguageService }); }
|
|
120
|
+
}
|
|
121
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LanguageService, decorators: [{
|
|
122
|
+
type: Injectable
|
|
123
|
+
}] });
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvc2VydmljZXMvbGFuZ3VhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQzs7QUFHaEUsTUFBTSxPQUFPLGVBQWdCLFNBQVEscUJBQXFCO0lBTXRELElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFJLGVBQWUsQ0FBQyxJQUFZO1FBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQztRQUM3QyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxRSxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0Is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QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFUyxZQUFZO1FBQ2xCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLGtCQUFrQixDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7YUFDeEgsSUFBSSxDQUNELENBQUMsUUFBMkIsRUFBRSxFQUFFO1lBQzVCLE9BQU8sUUFBUSxDQUFDO1FBQ3BCLENBQUMsRUFBRSxHQUFHLEVBQUU7WUFDSixPQUFPO2dCQUNILFNBQVMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO2dCQUM3QixZQUFZLEVBQUUsRUFBRTtnQkFDaEIsZUFBZSxFQUFFLElBQUk7Z0JBQ3JCLFFBQVEsRUFBRTtvQkFDTixFQUFFLEVBQUUsRUFBRTtvQkFDTixFQUFFLEVBQUUsRUFBRTtvQkFDTixFQUFFLEVBQUUsRUFBRTtpQkFDVDthQUNKLENBQUM7UUFDTixDQUFDLENBQ0osQ0FBQztRQUNOLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDOytHQTFIUSxlQUFlO21IQUFmLGVBQWU7OzRGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge21hcH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7SUxhbmd1YWdlU2V0dGluZywgSUxhbmd1YWdlU2V0dGluZ3MsIElUcmFuc2xhdGlvbnN9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuaW1wb3J0IHtTdGF0aWNMYW5ndWFnZVNlcnZpY2V9IGZyb20gXCIuL3N0YXRpYy1sYW5ndWFnZS5zZXJ2aWNlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBMYW5ndWFnZVNlcnZpY2UgZXh0ZW5kcyBTdGF0aWNMYW5ndWFnZVNlcnZpY2Uge1xyXG5cclxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGlvblJlcXVlc3RzOiBJVHJhbnNsYXRpb25zO1xyXG4gICAgcHJvdGVjdGVkIHNldHRpbmdzUHJvbWlzZTogUHJvbWlzZTxJTGFuZ3VhZ2VTZXR0aW5ncz47XHJcbiAgICBwcm90ZWN0ZWQgbGFuZ3VhZ2VTZXR0aW5nczogQmVoYXZpb3JTdWJqZWN0PElMYW5ndWFnZVNldHRpbmdzPjtcclxuXHJcbiAgICBnZXQgY3VycmVudExhbmd1YWdlKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudExhbmcgfHwgdGhpcy5kZWZhdWx0TGFuZ3VhZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGN1cnJlbnRMYW5ndWFnZShsYW5nOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnVzZUxhbmd1YWdlKGxhbmcpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50cy5sYW5ndWFnZUNoYW5nZWQuZW1pdChsYW5nKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgc2V0dGluZ3MoKTogSUxhbmd1YWdlU2V0dGluZyB7XHJcbiAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSB0aGlzLmxhbmd1YWdlU2V0dGluZ3MudmFsdWU7XHJcbiAgICAgICAgcmV0dXJuICFzZXR0aW5ncyA/IHt9IDogc2V0dGluZ3Muc2V0dGluZ3NbdGhpcy5jdXJyZW50TGFuZ3VhZ2VdIHx8IHt9O1xyXG4gICAgfVxyXG5cclxuICAgIGdldCAkc2V0dGluZ3MoKTogT2JzZXJ2YWJsZTxJTGFuZ3VhZ2VTZXR0aW5nPiB7XHJcbiAgICAgICAgdGhpcy5sb2FkU2V0dGluZ3MoKS50aGVuKHMgPT4gdGhpcy5sYW5ndWFnZVNldHRpbmdzLm5leHQocykpO1xyXG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFt0aGlzLmxhbmd1YWdlU2V0dGluZ3MsIHRoaXMuZXZlbnRzLmxhbmd1YWdlQ2hhbmdlZF0pLnBpcGUobWFwKChbc2V0dGluZ3MsIGxhbmddKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiAhc2V0dGluZ3MgPyB7fSA6IHNldHRpbmdzLnNldHRpbmdzW2xhbmcgYXMgc3RyaW5nXSB8fCB7fTtcclxuICAgICAgICB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGluaXRTZXJ2aWNlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2xpZW50LnNldEV4dHJhUmVxdWVzdFBhcmFtKFwibGFuZ3VhZ2VcIiwgXCJkZVwiKTtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0aW9uUmVxdWVzdHMgPSB7fTtcclxuICAgICAgICB0aGlzLmxhbmd1YWdlU2V0dGluZ3MgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElMYW5ndWFnZVNldHRpbmdzPihudWxsKTtcclxuICAgICAgICBpZiAodGhpcy51bml2ZXJzYWwuaXNTZXJ2ZXIpIHJldHVybjtcclxuICAgICAgICB3aW5kb3dbXCJzZXRMYW5ndWFnZVwiXSA9IChsYW5nOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGFuZ3VhZ2UgPSBsYW5nO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgaW5pdEZyb21TZXR0aW5ncygpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRMYW5ndWFnZSA9IHRoaXMuZGVmYXVsdExhbmd1YWdlO1xyXG4gICAgICAgIGNvbnN0IHNldHRpbmdzID0gYXdhaXQgdGhpcy5sb2FkU2V0dGluZ3MoKTtcclxuICAgICAgICB0aGlzLmxhbmd1YWdlU2V0dGluZ3MubmV4dChzZXR0aW5ncyk7XHJcbiAgICAgICAgY29uc3QgZGV2TGFuZ3VhZ2VzID0gc2V0dGluZ3MuZGV2TGFuZ3VhZ2VzIHx8IFtdO1xyXG4gICAgICAgIHRoaXMubGFuZ3VhZ2VMaXN0ID0gKHNldHRpbmdzLmxhbmd1YWdlcyB8fCBbXSkuZmlsdGVyKGxhbmcgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB1bmF2YWlsYWJsZSA9IHNldHRpbmdzLnNldHRpbmdzW2xhbmddPy51bmF2YWlsYWJsZTtcclxuICAgICAgICAgICAgaWYgKHVuYXZhaWxhYmxlKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJ0cyA9IHVuYXZhaWxhYmxlLnNwbGl0KFwiL1wiKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcGFydHNbMF0gfHwgcGFydHNbMV07XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmbGFncyA9IHBhcnRzLmxlbmd0aCA+IDEgPyBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXSA6IFwiZ1wiO1xyXG4gICAgICAgICAgICAgICAgaWYgKG5ldyBSZWdFeHAodmFsdWUsIGZsYWdzKS50ZXN0KHRoaXMuY29uZmlnLmJhc2VEb21haW4pKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIGRldkxhbmd1YWdlcy5pbmRleE9mKGxhbmcpIDwgMDtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAodGhpcy5sYW5ndWFnZUxpc3QubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VMaXN0ID0gW2RlZmF1bHRMYW5ndWFnZV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGxhbmcgPSB0aGlzLmxhbmd1YWdlcy5pbmRleE9mKGRlZmF1bHRMYW5ndWFnZSkgPCAwID8gc2V0dGluZ3MuZGVmYXVsdExhbmd1YWdlIHx8IHRoaXMubGFuZ3VhZ2VMaXN0WzBdIDogZGVmYXVsdExhbmd1YWdlO1xyXG4gICAgICAgIGF3YWl0IHRoaXMudXNlTGFuZ3VhZ2UobGFuZyk7XHJcbiAgICAgICAgdGhpcy5ldmVudHMubGFuZ3VhZ2VDaGFuZ2VkLmVtaXQobGFuZyk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZ2V0VHJhbnNsYXRpb24oa2V5OiBzdHJpbmcsIHBhcmFtczogYW55ID0gbnVsbCk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICAgICAgaWYgKCFrZXkpIHJldHVybiBcIlwiO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxvd2VyS2V5ID0ga2V5LnRvTG9jYWxlTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGRpY3QgPSBhd2FpdCB0aGlzLmxvYWREaWN0aW9uYXJ5KCk7XHJcbiAgICAgICAgICAgIGlmIChsb3dlcktleSBpbiBkaWN0KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pbnRlcnBvbGF0ZShkaWN0W2xvd2VyS2V5XSwgcGFyYW1zKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbnRlcnBvbGF0ZShrZXksIHBhcmFtcyk7XHJcbiAgICAgICAgfSBjYXRjaCAocmVhc29uKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiRVJST1IgSU4gVFJBTlNMQVRJT05TXCIsIHJlYXNvbik7XHJcbiAgICAgICAgICAgIHJldHVybiBrZXk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBhc3luYyB1c2VMYW5ndWFnZShsYW5nOiBzdHJpbmcpOiBQcm9taXNlPElUcmFuc2xhdGlvbnM+IHtcclxuICAgICAgICBsYW5nID0gdGhpcy5sYW5ndWFnZXMuaW5kZXhPZihsYW5nKSA8IDAgPyB0aGlzLmxhbmd1YWdlc1swXSA6IGxhbmc7XHJcbiAgICAgICAgdGhpcy5jbGllbnQuc2V0RXh0cmFSZXF1ZXN0UGFyYW0oXCJsYW5ndWFnZVwiLCBsYW5nKTtcclxuICAgICAgICBpZiAobGFuZyA9PSB0aGlzLmN1cnJlbnRMYW5nKSByZXR1cm4gdGhpcy5kaWN0aW9uYXJ5O1xyXG4gICAgICAgIHRoaXMuc3RvcmFnZS5zZXQoXCJsYW5ndWFnZVwiLCBsYW5nKTtcclxuICAgICAgICB0aGlzLmN1cnJlbnRMYW5nID0gbGFuZztcclxuICAgICAgICBjb25zdCBkaWN0ID0gYXdhaXQgdGhpcy5sb2FkRGljdGlvbmFyeSgpO1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRpb25zW2xhbmddID0gZGljdDtcclxuICAgICAgICByZXR1cm4gZGljdDtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgbG9hZERpY3Rpb25hcnkoKTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICBjb25zdCBsYW5nID0gdGhpcy5jdXJyZW50TGFuZ3VhZ2U7XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGlvblJlcXVlc3RzW2xhbmddID0gdGhpcy50cmFuc2xhdGlvblJlcXVlc3RzW2xhbmddIHx8IG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuY29uZmlnLnRyYW5zbGF0aW9uVXJsfSR7bGFuZ31gKS50b1Byb21pc2UoKS50aGVuKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gcmVzcG9uc2UgfHwge307XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKE9iamVjdC5rZXlzKHJlc3BvbnNlKS5yZWR1Y2UoKHJlc3VsdCwga2V5KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2tleS50b0xvY2FsZUxvd2VyQ2FzZSgpXSA9IHJlc3BvbnNlW2tleV07XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICAgICAgICAgIH0sIHt9KSk7XHJcbiAgICAgICAgICAgIH0sICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoe30pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvblJlcXVlc3RzW2xhbmddO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBsb2FkU2V0dGluZ3MoKTogUHJvbWlzZTxJTGFuZ3VhZ2VTZXR0aW5ncz4ge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ3NQcm9taXNlID0gdGhpcy5zZXR0aW5nc1Byb21pc2UgfHwgKHRoaXMuY2xpZW50LmdldChgJHt0aGlzLmNvbmZpZy50cmFuc2xhdGlvblVybH1sYW5ndWFnZVNldHRpbmdzYCkudG9Qcm9taXNlKCkpXHJcbiAgICAgICAgICAgIC50aGVuKFxyXG4gICAgICAgICAgICAgICAgKHNldHRpbmdzOiBJTGFuZ3VhZ2VTZXR0aW5ncykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzZXR0aW5ncztcclxuICAgICAgICAgICAgICAgIH0sICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZXM6IFtcImRlXCIsIFwiZW5cIiwgXCJodVwiXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGV2TGFuZ3VhZ2VzOiBbXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdExhbmd1YWdlOiBcImRlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZToge30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBodToge30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbjoge31cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0dGluZ3NQcm9taXNlO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
import { Injectable } from "@angular/core";
|
|
2
|
-
import { BaseHttpService } from "./base-http.service";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class LocalHttpService extends BaseHttpService {
|
|
5
|
-
get name() {
|
|
6
|
-
return "local-http";
|
|
7
|
-
}
|
|
8
|
-
get withCredentials() {
|
|
9
|
-
return false;
|
|
10
|
-
}
|
|
11
|
-
initService() {
|
|
12
|
-
this.images = {};
|
|
13
|
-
}
|
|
14
|
-
url(url) {
|
|
15
|
-
if (!url)
|
|
16
|
-
return url;
|
|
17
|
-
const config = this.configs.config;
|
|
18
|
-
const baseUrl = config.cdnUrl || config.baseUrl || "";
|
|
19
|
-
return url.startsWith("data:") || url.startsWith("http") || url.startsWith("//")
|
|
20
|
-
? url
|
|
21
|
-
: `${baseUrl}${url}`;
|
|
22
|
-
}
|
|
23
|
-
get(url, options) {
|
|
24
|
-
this.cache[url] = this.cache[url] || this.getPromise(url, options);
|
|
25
|
-
return this.cache[url];
|
|
26
|
-
}
|
|
27
|
-
getImage(url) {
|
|
28
|
-
if (this.universal.isServer)
|
|
29
|
-
return Promise.resolve(null);
|
|
30
|
-
if (!url)
|
|
31
|
-
return Promise.resolve(new Image());
|
|
32
|
-
this.images[url] = this.images[url] || new Promise((resolve, reject) => {
|
|
33
|
-
const image = new Image();
|
|
34
|
-
image.crossOrigin = "Anonymous";
|
|
35
|
-
image.src = this.url(url);
|
|
36
|
-
image.onload = () => resolve(image);
|
|
37
|
-
image.onerror = reject;
|
|
38
|
-
});
|
|
39
|
-
return this.images[url];
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
45
|
-
type: Injectable
|
|
46
|
-
}] });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import { BaseHttpService } from "./base-http.service";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class LocalHttpService extends BaseHttpService {
|
|
5
|
+
get name() {
|
|
6
|
+
return "local-http";
|
|
7
|
+
}
|
|
8
|
+
get withCredentials() {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
initService() {
|
|
12
|
+
this.images = {};
|
|
13
|
+
}
|
|
14
|
+
url(url) {
|
|
15
|
+
if (!url)
|
|
16
|
+
return url;
|
|
17
|
+
const config = this.configs.config;
|
|
18
|
+
const baseUrl = config.cdnUrl || config.baseUrl || "";
|
|
19
|
+
return url.startsWith("data:") || url.startsWith("http") || url.startsWith("//")
|
|
20
|
+
? url
|
|
21
|
+
: `${baseUrl}${url}`;
|
|
22
|
+
}
|
|
23
|
+
get(url, options) {
|
|
24
|
+
this.cache[url] = this.cache[url] || this.getPromise(url, options);
|
|
25
|
+
return this.cache[url];
|
|
26
|
+
}
|
|
27
|
+
getImage(url) {
|
|
28
|
+
if (this.universal.isServer)
|
|
29
|
+
return Promise.resolve(null);
|
|
30
|
+
if (!url)
|
|
31
|
+
return Promise.resolve(new Image());
|
|
32
|
+
this.images[url] = this.images[url] || new Promise((resolve, reject) => {
|
|
33
|
+
const image = new Image();
|
|
34
|
+
image.crossOrigin = "Anonymous";
|
|
35
|
+
image.src = this.url(url);
|
|
36
|
+
image.onload = () => resolve(image);
|
|
37
|
+
image.onerror = reject;
|
|
38
|
+
});
|
|
39
|
+
return this.images[url];
|
|
40
|
+
}
|
|
41
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LocalHttpService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
42
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LocalHttpService }); }
|
|
43
|
+
}
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LocalHttpService, decorators: [{
|
|
45
|
+
type: Injectable
|
|
46
|
+
}] });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL25neC11dGlscy9zZXJ2aWNlcy9sb2NhbC1odHRwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd6QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7O0FBR3BELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxlQUFlO0lBSWpELElBQUksSUFBSTtRQUNKLE9BQU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDekIsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVTLFdBQVc7UUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUFXO1FBQ1gsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPLEdBQUcsQ0FBQztRQUNyQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUNuQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3RELE9BQU8sR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQzVFLENBQUMsQ0FBQyxHQUFHO1lBQ0wsQ0FBQyxDQUFDLEdBQUcsT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxHQUFHLENBQUMsR0FBVyxFQUFFLE9BQXlCO1FBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNuRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFXO1FBQ2hCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRO1lBQ3ZCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsR0FBRztZQUNKLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFtQixDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyRixNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQzFCLEtBQUssQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1lBQ2hDLEtBQUssQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMxQixLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QixDQUFDOytHQTdDUSxnQkFBZ0I7bUhBQWhCLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7SVJlcXVlc3RPcHRpb25zfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7QmFzZUh0dHBTZXJ2aWNlfSBmcm9tIFwiLi9iYXNlLWh0dHAuc2VydmljZVwiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTG9jYWxIdHRwU2VydmljZSBleHRlbmRzIEJhc2VIdHRwU2VydmljZSB7XHJcblxyXG4gICAgcHJpdmF0ZSBpbWFnZXM6IHsgW3VybDogc3RyaW5nXTogUHJvbWlzZTxIVE1MSW1hZ2VFbGVtZW50PiB9O1xyXG5cclxuICAgIGdldCBuYW1lKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIFwibG9jYWwtaHR0cFwiO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBnZXQgd2l0aENyZWRlbnRpYWxzKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgaW5pdFNlcnZpY2UoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pbWFnZXMgPSB7fTtcclxuICAgIH1cclxuXHJcbiAgICB1cmwodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICghdXJsKSByZXR1cm4gdXJsO1xyXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlncy5jb25maWc7XHJcbiAgICAgICAgY29uc3QgYmFzZVVybCA9IGNvbmZpZy5jZG5VcmwgfHwgY29uZmlnLmJhc2VVcmwgfHwgXCJcIjtcclxuICAgICAgICByZXR1cm4gdXJsLnN0YXJ0c1dpdGgoXCJkYXRhOlwiKSB8fCB1cmwuc3RhcnRzV2l0aChcImh0dHBcIikgfHwgdXJsLnN0YXJ0c1dpdGgoXCIvL1wiKVxyXG4gICAgICAgICAgICA/IHVybFxyXG4gICAgICAgICAgICA6IGAke2Jhc2VVcmx9JHt1cmx9YDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQodXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBJUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIHRoaXMuY2FjaGVbdXJsXSA9IHRoaXMuY2FjaGVbdXJsXSB8fCB0aGlzLmdldFByb21pc2UodXJsLCBvcHRpb25zKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5jYWNoZVt1cmxdO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEltYWdlKHVybDogc3RyaW5nKTogUHJvbWlzZTxIVE1MSW1hZ2VFbGVtZW50PiB7XHJcbiAgICAgICAgaWYgKHRoaXMudW5pdmVyc2FsLmlzU2VydmVyKVxyXG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO1xyXG4gICAgICAgIGlmICghdXJsKVxyXG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBJbWFnZSgpKTtcclxuXHJcbiAgICAgICAgdGhpcy5pbWFnZXNbdXJsXSA9IHRoaXMuaW1hZ2VzW3VybF0gfHwgbmV3IFByb21pc2U8SFRNTEltYWdlRWxlbWVudD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gICAgICAgICAgICBpbWFnZS5jcm9zc09yaWdpbiA9IFwiQW5vbnltb3VzXCI7XHJcbiAgICAgICAgICAgIGltYWdlLnNyYyA9IHRoaXMudXJsKHVybCk7XHJcbiAgICAgICAgICAgIGltYWdlLm9ubG9hZCA9ICgpID0+IHJlc29sdmUoaW1hZ2UpO1xyXG4gICAgICAgICAgICBpbWFnZS5vbmVycm9yID0gcmVqZWN0O1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5pbWFnZXNbdXJsXTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
import { Inject, Injectable } from "@angular/core";
|
|
2
|
-
import { API_SERVICE } from "../common-types";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class OpenApiService {
|
|
5
|
-
constructor(api) {
|
|
6
|
-
this.api = api;
|
|
7
|
-
}
|
|
8
|
-
getSchemas() {
|
|
9
|
-
this.schemasPromise = this.schemasPromise || new Promise((resolve => {
|
|
10
|
-
this.api.get("api-docs").then(res => {
|
|
11
|
-
const schemas = res.components?.schemas || res.definitions || {};
|
|
12
|
-
Object.values(schemas).forEach(schema => {
|
|
13
|
-
Object.keys(schema.properties || {}).forEach(p => {
|
|
14
|
-
schema.properties[p].id = p;
|
|
15
|
-
});
|
|
16
|
-
});
|
|
17
|
-
resolve(schemas);
|
|
18
|
-
}, () => {
|
|
19
|
-
resolve({});
|
|
20
|
-
});
|
|
21
|
-
}));
|
|
22
|
-
return this.schemasPromise;
|
|
23
|
-
}
|
|
24
|
-
async getSchema(name) {
|
|
25
|
-
const schemas = await this.getSchemas();
|
|
26
|
-
const schema = schemas[name];
|
|
27
|
-
if (!schema)
|
|
28
|
-
return null;
|
|
29
|
-
return schemas[name];
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
35
|
-
type: Injectable
|
|
36
|
-
}], ctorParameters:
|
|
37
|
-
type: Inject,
|
|
38
|
-
args: [API_SERVICE]
|
|
39
|
-
}] }]
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Inject, Injectable } from "@angular/core";
|
|
2
|
+
import { API_SERVICE } from "../common-types";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class OpenApiService {
|
|
5
|
+
constructor(api) {
|
|
6
|
+
this.api = api;
|
|
7
|
+
}
|
|
8
|
+
getSchemas() {
|
|
9
|
+
this.schemasPromise = this.schemasPromise || new Promise((resolve => {
|
|
10
|
+
this.api.get("api-docs").then(res => {
|
|
11
|
+
const schemas = res.components?.schemas || res.definitions || {};
|
|
12
|
+
Object.values(schemas).forEach(schema => {
|
|
13
|
+
Object.keys(schema.properties || {}).forEach(p => {
|
|
14
|
+
schema.properties[p].id = p;
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
resolve(schemas);
|
|
18
|
+
}, () => {
|
|
19
|
+
resolve({});
|
|
20
|
+
});
|
|
21
|
+
}));
|
|
22
|
+
return this.schemasPromise;
|
|
23
|
+
}
|
|
24
|
+
async getSchema(name) {
|
|
25
|
+
const schemas = await this.getSchemas();
|
|
26
|
+
const schema = schemas[name];
|
|
27
|
+
if (!schema)
|
|
28
|
+
return null;
|
|
29
|
+
return schemas[name];
|
|
30
|
+
}
|
|
31
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OpenApiService, deps: [{ token: API_SERVICE }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
32
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OpenApiService }); }
|
|
33
|
+
}
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OpenApiService, decorators: [{
|
|
35
|
+
type: Injectable
|
|
36
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
37
|
+
type: Inject,
|
|
38
|
+
args: [API_SERVICE]
|
|
39
|
+
}] }] });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Blbi1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvc2VydmljZXMvb3Blbi1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUMsV0FBVyxFQUErQyxNQUFNLGlCQUFpQixDQUFDOztBQUcxRixNQUFNLE9BQU8sY0FBYztJQUl2QixZQUEwQyxHQUFnQjtRQUFoQixRQUFHLEdBQUgsR0FBRyxDQUFhO0lBRTFELENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDaEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNoQyxNQUFNLE9BQU8sR0FBb0IsR0FBRyxDQUFDLFVBQVUsRUFBRSxPQUFPLElBQUksR0FBRyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7Z0JBQ2xGLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUNwQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUM3QyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ2hDLENBQUMsQ0FBQyxDQUFDO2dCQUNQLENBQUMsQ0FBQyxDQUFDO2dCQUNILE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyQixDQUFDLEVBQUUsR0FBRyxFQUFFO2dCQUNKLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDSixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDL0IsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBWTtRQUN4QixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN4QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQztRQUN6QixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDOytHQTlCUSxjQUFjLGtCQUlILFdBQVc7bUhBSnRCLGNBQWM7OzRGQUFkLGNBQWM7a0JBRDFCLFVBQVU7OzBCQUtNLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0FQSV9TRVJWSUNFLCBJQXBpU2VydmljZSwgSU9wZW5BcGlTY2hlbWEsIElPcGVuQXBpU2NoZW1hc30gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgT3BlbkFwaVNlcnZpY2Uge1xyXG5cclxuICAgIHByaXZhdGUgc2NoZW1hc1Byb21pc2U6IFByb21pc2U8SU9wZW5BcGlTY2hlbWFzPjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KEFQSV9TRVJWSUNFKSByZWFkb25seSBhcGk6IElBcGlTZXJ2aWNlKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGdldFNjaGVtYXMoKTogUHJvbWlzZTxJT3BlbkFwaVNjaGVtYXM+IHtcclxuICAgICAgICB0aGlzLnNjaGVtYXNQcm9taXNlID0gdGhpcy5zY2hlbWFzUHJvbWlzZSB8fCBuZXcgUHJvbWlzZSgocmVzb2x2ZSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuYXBpLmdldChcImFwaS1kb2NzXCIpLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNjaGVtYXM6IElPcGVuQXBpU2NoZW1hcyA9IHJlcy5jb21wb25lbnRzPy5zY2hlbWFzIHx8IHJlcy5kZWZpbml0aW9ucyB8fCB7fTtcclxuICAgICAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoc2NoZW1hcykuZm9yRWFjaChzY2hlbWEgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHNjaGVtYS5wcm9wZXJ0aWVzIHx8IHt9KS5mb3JFYWNoKHAgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWEucHJvcGVydGllc1twXS5pZCA9IHA7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoc2NoZW1hcyk7XHJcbiAgICAgICAgICAgIH0sICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoe30pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NoZW1hc1Byb21pc2U7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZ2V0U2NoZW1hKG5hbWU6IHN0cmluZyk6IFByb21pc2U8SU9wZW5BcGlTY2hlbWE+IHtcclxuICAgICAgICBjb25zdCBzY2hlbWFzID0gYXdhaXQgdGhpcy5nZXRTY2hlbWFzKCk7XHJcbiAgICAgICAgY29uc3Qgc2NoZW1hID0gc2NoZW1hc1tuYW1lXTtcclxuICAgICAgICBpZiAoIXNjaGVtYSkgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgcmV0dXJuIHNjaGVtYXNbbmFtZV07XHJcbiAgICB9XHJcbn1cclxuIl19
|