@stemy/ngx-utils 17.1.4 → 19.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/fesm2022/stemy-ngx-utils-tools.mjs.map +1 -1
- package/fesm2022/stemy-ngx-utils.mjs +285 -222
- package/fesm2022/stemy-ngx-utils.mjs.map +1 -1
- package/ngx-utils/ngx-utils.module.d.ts +1 -1
- package/ngx-utils/utils/promise.utils.d.ts +5 -0
- package/package.json +13 -19
- package/public_api.d.ts +1 -0
- package/esm2022/ngx-utils/common-types.mjs +0 -122
- package/esm2022/ngx-utils/components/dynamic-table/dynamic-table.component.mjs +0 -210
- package/esm2022/ngx-utils/components/pagination-menu/pagination-menu.component.mjs +0 -101
- package/esm2022/ngx-utils/components/unordered-list/unordered-list.component.mjs +0 -65
- package/esm2022/ngx-utils/directives/async-method.base.mjs +0 -90
- package/esm2022/ngx-utils/directives/async-method.directive.mjs +0 -21
- package/esm2022/ngx-utils/directives/background.directive.mjs +0 -51
- package/esm2022/ngx-utils/directives/dynamic-table-template.directive.mjs +0 -20
- package/esm2022/ngx-utils/directives/global-template.directive.mjs +0 -28
- package/esm2022/ngx-utils/directives/icon.directive.mjs +0 -67
- package/esm2022/ngx-utils/directives/ngx-template-outlet.directive.mjs +0 -90
- package/esm2022/ngx-utils/directives/pagination-item.directive.mjs +0 -34
- package/esm2022/ngx-utils/directives/pagination.directive.mjs +0 -84
- package/esm2022/ngx-utils/directives/resource-if.directive.mjs +0 -50
- package/esm2022/ngx-utils/directives/sticky-class.directive.mjs +0 -34
- package/esm2022/ngx-utils/directives/sticky.directive.mjs +0 -55
- package/esm2022/ngx-utils/directives/unordered-list-item.directive.mjs +0 -79
- package/esm2022/ngx-utils/directives/unordered-list-template.directive.mjs +0 -20
- package/esm2022/ngx-utils/ngx-utils.imports.mjs +0 -178
- package/esm2022/ngx-utils/ngx-utils.module.mjs +0 -204
- package/esm2022/ngx-utils/pipes/chunk.pipe.mjs +0 -25
- package/esm2022/ngx-utils/pipes/entries.pipe.mjs +0 -28
- package/esm2022/ngx-utils/pipes/extra-item-properties.pipe.mjs +0 -31
- package/esm2022/ngx-utils/pipes/filter.pipe.mjs +0 -37
- package/esm2022/ngx-utils/pipes/find.pipe.mjs +0 -29
- package/esm2022/ngx-utils/pipes/format-number.pipe.mjs +0 -21
- package/esm2022/ngx-utils/pipes/get-offset.pipe.mjs +0 -17
- package/esm2022/ngx-utils/pipes/get-type.pipe.mjs +0 -16
- package/esm2022/ngx-utils/pipes/get-value.pipe.mjs +0 -17
- package/esm2022/ngx-utils/pipes/global-template.pipe.mjs +0 -39
- package/esm2022/ngx-utils/pipes/group-by.pipe.mjs +0 -27
- package/esm2022/ngx-utils/pipes/is-type.pipe.mjs +0 -16
- package/esm2022/ngx-utils/pipes/join.pipe.mjs +0 -19
- package/esm2022/ngx-utils/pipes/keys.pipe.mjs +0 -22
- package/esm2022/ngx-utils/pipes/map.pipe.mjs +0 -29
- package/esm2022/ngx-utils/pipes/max.pipe.mjs +0 -26
- package/esm2022/ngx-utils/pipes/min.pipe.mjs +0 -26
- package/esm2022/ngx-utils/pipes/pop.pipe.mjs +0 -16
- package/esm2022/ngx-utils/pipes/reduce.pipe.mjs +0 -30
- package/esm2022/ngx-utils/pipes/remap.pipe.mjs +0 -32
- package/esm2022/ngx-utils/pipes/replace.pipe.mjs +0 -17
- package/esm2022/ngx-utils/pipes/reverse.pipe.mjs +0 -24
- package/esm2022/ngx-utils/pipes/round.pipe.mjs +0 -21
- package/esm2022/ngx-utils/pipes/safe-html.pipe.mjs +0 -34
- package/esm2022/ngx-utils/pipes/shift.pipe.mjs +0 -16
- package/esm2022/ngx-utils/pipes/split.pipe.mjs +0 -16
- package/esm2022/ngx-utils/pipes/translate.pipe.mjs +0 -86
- package/esm2022/ngx-utils/pipes/values.pipe.mjs +0 -22
- package/esm2022/ngx-utils/plugins/resize-event.plugin.mjs +0 -78
- package/esm2022/ngx-utils/plugins/scroll-event.plugin.mjs +0 -39
- package/esm2022/ngx-utils/services/acl.service.mjs +0 -84
- package/esm2022/ngx-utils/services/api.service.mjs +0 -42
- package/esm2022/ngx-utils/services/auth.service.mjs +0 -14
- package/esm2022/ngx-utils/services/base-http.client.mjs +0 -47
- package/esm2022/ngx-utils/services/base-http.service.mjs +0 -305
- package/esm2022/ngx-utils/services/config.service.mjs +0 -130
- package/esm2022/ngx-utils/services/error-handler.service.mjs +0 -49
- package/esm2022/ngx-utils/services/events.service.mjs +0 -26
- package/esm2022/ngx-utils/services/formatter.service.mjs +0 -49
- package/esm2022/ngx-utils/services/global-template.service.mjs +0 -37
- package/esm2022/ngx-utils/services/icon.service.mjs +0 -26
- package/esm2022/ngx-utils/services/language.service.mjs +0 -124
- package/esm2022/ngx-utils/services/local-http.service.mjs +0 -47
- package/esm2022/ngx-utils/services/open-api.service.mjs +0 -40
- package/esm2022/ngx-utils/services/promise.service.mjs +0 -55
- package/esm2022/ngx-utils/services/state.service.mjs +0 -185
- package/esm2022/ngx-utils/services/static-language.service.mjs +0 -166
- package/esm2022/ngx-utils/services/storage.service.mjs +0 -49
- package/esm2022/ngx-utils/services/toaster.service.mjs +0 -32
- package/esm2022/ngx-utils/services/translated-url.serializer.mjs +0 -73
- package/esm2022/ngx-utils/services/universal.service.mjs +0 -81
- package/esm2022/ngx-utils/services/wasm.service.mjs +0 -46
- package/esm2022/ngx-utils/utils/ajax-request-handler.mjs +0 -40
- package/esm2022/ngx-utils/utils/array.utils.mjs +0 -107
- package/esm2022/ngx-utils/utils/auth.guard.mjs +0 -181
- package/esm2022/ngx-utils/utils/cached-factory.mjs +0 -30
- package/esm2022/ngx-utils/utils/canvas.utils.mjs +0 -388
- package/esm2022/ngx-utils/utils/date.utils.mjs +0 -29
- package/esm2022/ngx-utils/utils/file-system.mjs +0 -25
- package/esm2022/ngx-utils/utils/file.utils.mjs +0 -90
- package/esm2022/ngx-utils/utils/generic-value.mjs +0 -20
- package/esm2022/ngx-utils/utils/geometry.mjs +0 -132
- package/esm2022/ngx-utils/utils/initializer.mjs +0 -20
- package/esm2022/ngx-utils/utils/jsonfn.mjs +0 -45
- package/esm2022/ngx-utils/utils/loader.utils.mjs +0 -55
- package/esm2022/ngx-utils/utils/math.utils.mjs +0 -44
- package/esm2022/ngx-utils/utils/object.utils.mjs +0 -320
- package/esm2022/ngx-utils/utils/observable.utils.mjs +0 -59
- package/esm2022/ngx-utils/utils/reflect.utils.mjs +0 -33
- package/esm2022/ngx-utils/utils/set.utils.mjs +0 -20
- package/esm2022/ngx-utils/utils/string.utils.mjs +0 -41
- package/esm2022/ngx-utils/utils/timer.utils.mjs +0 -52
- package/esm2022/ngx-utils/utils/unique.utils.mjs +0 -24
- package/esm2022/ngx-utils/utils/vector.mjs +0 -77
- package/esm2022/ngx-utils/utils/wasi.mjs +0 -159
- package/esm2022/ngx-utils/utils/wasm-worker-proxy.mjs +0 -99
- package/esm2022/ngx-utils/utils/with-options-provider.mjs +0 -24
- package/esm2022/public_api.mjs +0 -95
- package/esm2022/stemy-ngx-utils.mjs +0 -5
- package/esm2022/tools/config.mjs +0 -71
- package/esm2022/tools/public_api.mjs +0 -2
- package/esm2022/tools/stemy-ngx-utils-tools.mjs +0 -5
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
import { Injectable, Injector, NgZone, Optional } from "@angular/core";
|
|
2
|
-
import { ActivatedRouteSnapshot, ChildrenOutletContexts, NavigationEnd, Router, Scroll } from "@angular/router";
|
|
3
|
-
import { BehaviorSubject, firstValueFrom, Observable } from "rxjs";
|
|
4
|
-
import { debounceTime, distinctUntilChanged, filter, map, skipWhile, } from "rxjs/operators";
|
|
5
|
-
import { ObjectUtils } from "../utils/object.utils";
|
|
6
|
-
import { UniversalService } from "./universal.service";
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "./universal.service";
|
|
9
|
-
import * as i2 from "@angular/router";
|
|
10
|
-
export const emptySnapshot = new ActivatedRouteSnapshot();
|
|
11
|
-
export const emptyData = { id: "" };
|
|
12
|
-
export const emptyParams = {};
|
|
13
|
-
export const emptySegments = [];
|
|
14
|
-
export const emptyComponents = [];
|
|
15
|
-
export class StateService {
|
|
16
|
-
static toPath(route, params) {
|
|
17
|
-
let path = route.path || "";
|
|
18
|
-
ObjectUtils.iterate(params, (value, key) => {
|
|
19
|
-
path = path.replace(`:${key}`, `${value}`);
|
|
20
|
-
});
|
|
21
|
-
return path;
|
|
22
|
-
}
|
|
23
|
-
get snapshot() {
|
|
24
|
-
return this.$snapshot.value;
|
|
25
|
-
}
|
|
26
|
-
get component() {
|
|
27
|
-
return this.$component.value;
|
|
28
|
-
}
|
|
29
|
-
get route() {
|
|
30
|
-
return this.snapshot.routeConfig;
|
|
31
|
-
}
|
|
32
|
-
get data() {
|
|
33
|
-
return this.snapshot.data || emptyData;
|
|
34
|
-
}
|
|
35
|
-
get params() {
|
|
36
|
-
return this.snapshot.params || emptyParams;
|
|
37
|
-
}
|
|
38
|
-
get queryParams() {
|
|
39
|
-
return this.snapshot.queryParams || emptyParams;
|
|
40
|
-
}
|
|
41
|
-
get url() {
|
|
42
|
-
return this.stateInfo.url || "";
|
|
43
|
-
}
|
|
44
|
-
get urlSegments() {
|
|
45
|
-
return this.stateInfo.segments || emptySegments;
|
|
46
|
-
}
|
|
47
|
-
get components() {
|
|
48
|
-
return this.stateInfo.components || emptyComponents;
|
|
49
|
-
}
|
|
50
|
-
get routerConfig() {
|
|
51
|
-
return this.router.config;
|
|
52
|
-
}
|
|
53
|
-
get $observable() {
|
|
54
|
-
return this.$snapshot.pipe(skipWhile(snapshot => snapshot === emptySnapshot), debounceTime(25));
|
|
55
|
-
}
|
|
56
|
-
constructor(injector, zone, universal, router = null, contexts = null) {
|
|
57
|
-
this.injector = injector;
|
|
58
|
-
this.zone = zone;
|
|
59
|
-
this.universal = universal;
|
|
60
|
-
this.router = router;
|
|
61
|
-
this.contexts = contexts;
|
|
62
|
-
this.globalExtras = {
|
|
63
|
-
queryParamsHandling: "merge"
|
|
64
|
-
};
|
|
65
|
-
this.$snapshot = new BehaviorSubject(emptySnapshot);
|
|
66
|
-
this.$component = new BehaviorSubject(null);
|
|
67
|
-
this.stateInfo = {
|
|
68
|
-
url: "",
|
|
69
|
-
segments: [],
|
|
70
|
-
components: []
|
|
71
|
-
};
|
|
72
|
-
this.router?.events
|
|
73
|
-
.pipe(distinctUntilChanged(), map(event => {
|
|
74
|
-
if (event instanceof Scroll) {
|
|
75
|
-
return event.routerEvent;
|
|
76
|
-
}
|
|
77
|
-
return event;
|
|
78
|
-
}), filter(e => e instanceof NavigationEnd))
|
|
79
|
-
.subscribe(() => {
|
|
80
|
-
const routerStateSnapshot = this.router.routerState.snapshot;
|
|
81
|
-
let snapshot = routerStateSnapshot.root;
|
|
82
|
-
let context = this.contexts?.getContext("primary");
|
|
83
|
-
let segments = snapshot.url;
|
|
84
|
-
const components = [];
|
|
85
|
-
const snapshots = [];
|
|
86
|
-
while (snapshot) {
|
|
87
|
-
snapshots.push(snapshot);
|
|
88
|
-
segments = segments.concat(snapshot.url);
|
|
89
|
-
if (context) {
|
|
90
|
-
if (context.outlet && context.outlet.component)
|
|
91
|
-
components.push(context.outlet.component);
|
|
92
|
-
context = context.children.getContext("primary");
|
|
93
|
-
}
|
|
94
|
-
snapshot = snapshot.firstChild;
|
|
95
|
-
}
|
|
96
|
-
this.stateInfo = {
|
|
97
|
-
url: routerStateSnapshot.url,
|
|
98
|
-
segments: segments,
|
|
99
|
-
components: components
|
|
100
|
-
};
|
|
101
|
-
this.$snapshot.next(snapshots[snapshots.length - 1]);
|
|
102
|
-
this.$component.next(components[components.length - 1]);
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
async reload() {
|
|
106
|
-
const routerStateSnapshot = this.router.routerState.snapshot;
|
|
107
|
-
const resolvers = this.route.resolve || {};
|
|
108
|
-
const keys = Object.keys(resolvers);
|
|
109
|
-
for (const key of keys) {
|
|
110
|
-
const resolver = this.injector.get(resolvers[key]);
|
|
111
|
-
let resolved = resolver.resolve(this.snapshot, routerStateSnapshot);
|
|
112
|
-
if (resolved instanceof Observable) {
|
|
113
|
-
resolved = firstValueFrom(resolved);
|
|
114
|
-
}
|
|
115
|
-
if (resolved instanceof Promise) {
|
|
116
|
-
resolved = await resolved;
|
|
117
|
-
}
|
|
118
|
-
this.data[key] = resolved;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
async navigateByUrl(url, navigationExtras = {}) {
|
|
122
|
-
return this.navigate(url, navigationExtras);
|
|
123
|
-
}
|
|
124
|
-
async navigate(url, navigationExtras = {}) {
|
|
125
|
-
if (!this.router)
|
|
126
|
-
return false;
|
|
127
|
-
const [tree, extras] = this.createUrlTree(url, navigationExtras);
|
|
128
|
-
return this.zone.run(() => {
|
|
129
|
-
return this.router.navigateByUrl(tree, extras);
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
async open(url, target = "_blank", navigationExtras = {}) {
|
|
133
|
-
if (!this.router)
|
|
134
|
-
return false;
|
|
135
|
-
const [tree, extras] = this.createUrlTree(url, navigationExtras);
|
|
136
|
-
return this.zone.run(() => {
|
|
137
|
-
return this.openInNewWindow(tree, target) || this.router.navigateByUrl(tree, extras);
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
subscribeImmediately(next, error) {
|
|
141
|
-
return this.subscribe({
|
|
142
|
-
next, error
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
subscribe(osOrNext) {
|
|
146
|
-
return this.$observable.subscribe(osOrNext);
|
|
147
|
-
}
|
|
148
|
-
openInNewWindow(tree, target) {
|
|
149
|
-
if (!this.universal.isBrowser)
|
|
150
|
-
return false;
|
|
151
|
-
const baseUrl = window.location.href.replace(this.router.url, "");
|
|
152
|
-
try {
|
|
153
|
-
const serialized = this.router.serializeUrl(tree);
|
|
154
|
-
const separator = serialized.startsWith("/") ? "" : "/";
|
|
155
|
-
window.open(baseUrl + separator + serialized, target);
|
|
156
|
-
return true;
|
|
157
|
-
}
|
|
158
|
-
catch (e) {
|
|
159
|
-
console.log(`Can't open new window: ${e}`);
|
|
160
|
-
return false;
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
createUrlTree(url, extras) {
|
|
164
|
-
if (!this.router)
|
|
165
|
-
return null;
|
|
166
|
-
extras = Object.assign(extras, this.globalExtras, extras || {});
|
|
167
|
-
if (ObjectUtils.isArray(url)) {
|
|
168
|
-
return [this.router.createUrlTree(url, extras), extras];
|
|
169
|
-
}
|
|
170
|
-
if (ObjectUtils.isString(url)) {
|
|
171
|
-
return [this.router.parseUrl(url), extras];
|
|
172
|
-
}
|
|
173
|
-
return [url, extras];
|
|
174
|
-
}
|
|
175
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StateService, deps: [{ token: i0.Injector }, { token: i0.NgZone }, { token: i1.UniversalService }, { token: i2.Router, optional: true }, { token: i2.ChildrenOutletContexts, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
176
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StateService }); }
|
|
177
|
-
}
|
|
178
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StateService, decorators: [{
|
|
179
|
-
type: Injectable
|
|
180
|
-
}], ctorParameters: () => [{ type: i0.Injector }, { type: i0.NgZone }, { type: i1.UniversalService }, { type: i2.Router, decorators: [{
|
|
181
|
-
type: Optional
|
|
182
|
-
}] }, { type: i2.ChildrenOutletContexts, decorators: [{
|
|
183
|
-
type: Optional
|
|
184
|
-
}] }] });
|
|
185
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvc2VydmljZXMvc3RhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFDSCxzQkFBc0IsRUFDdEIsc0JBQXNCLEVBRXRCLGFBQWEsRUFNYixNQUFNLEVBQ04sTUFBTSxFQUdULE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFDLGVBQWUsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUF5QixNQUFNLE1BQU0sQ0FBQztBQUN6RixPQUFPLEVBQUMsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxHQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0YsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRWxELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDOzs7O0FBRXJELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLHNCQUFzQixFQUFFLENBQUM7QUFDMUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFTLEVBQUMsRUFBRSxFQUFFLEVBQUUsRUFBQyxDQUFDO0FBQ3hDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBVyxFQUFFLENBQUM7QUFDdEMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFpQixFQUFFLENBQUM7QUFDOUMsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFVLEVBQUUsQ0FBQztBQVN6QyxNQUFNLE9BQU8sWUFBWTtJQVFyQixNQUFNLENBQUMsTUFBTSxDQUFDLEtBQVksRUFBRSxNQUFXO1FBQ25DLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzVCLFdB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LENBQUE7UUFDM0QsQ0FBQztRQUNELElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzVCLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBQ0QsT0FBTyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN6QixDQUFDOytHQTlMUSxZQUFZO21IQUFaLFlBQVk7OzRGQUFaLFlBQVk7a0JBRHhCLFVBQVU7OzBCQW1FTSxRQUFROzswQkFDUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBJbmplY3RvciwgTmdab25lLCBPcHRpb25hbH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtcclxuICAgIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgICBDaGlsZHJlbk91dGxldENvbnRleHRzLFxyXG4gICAgRGF0YSxcclxuICAgIE5hdmlnYXRpb25FbmQsXHJcbiAgICBOYXZpZ2F0aW9uRXh0cmFzLFxyXG4gICAgT3V0bGV0Q29udGV4dCxcclxuICAgIFBhcmFtcyxcclxuICAgIFJlc29sdmUsXHJcbiAgICBSb3V0ZSxcclxuICAgIFJvdXRlcixcclxuICAgIFNjcm9sbCxcclxuICAgIFVybFNlZ21lbnQsXHJcbiAgICBVcmxUcmVlXHJcbn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgZmlyc3RWYWx1ZUZyb20sIE9ic2VydmFibGUsIE9ic2VydmVyLCBTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIHNraXBXaGlsZSx9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQge09iamVjdFV0aWxzfSBmcm9tIFwiLi4vdXRpbHMvb2JqZWN0LnV0aWxzXCI7XHJcbmltcG9ydCB7SVJvdXRlLCBOYXZpZ2F0aW9uVXJsUGFyYW19IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuaW1wb3J0IHtVbml2ZXJzYWxTZXJ2aWNlfSBmcm9tIFwiLi91bml2ZXJzYWwuc2VydmljZVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IGVtcHR5U25hcHNob3QgPSBuZXcgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCgpO1xyXG5leHBvcnQgY29uc3QgZW1wdHlEYXRhOiBEYXRhID0ge2lkOiBcIlwifTtcclxuZXhwb3J0IGNvbnN0IGVtcHR5UGFyYW1zOiBQYXJhbXMgPSB7fTtcclxuZXhwb3J0IGNvbnN0IGVtcHR5U2VnbWVudHM6IFVybFNlZ21lbnRbXSA9IFtdO1xyXG5leHBvcnQgY29uc3QgZW1wdHlDb21wb25lbnRzOiBhbnlbXSA9IFtdO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJU3RhdGVJbmZvIHtcclxuICAgIHVybDogc3RyaW5nO1xyXG4gICAgc2VnbWVudHM6IFVybFNlZ21lbnRbXTtcclxuICAgIGNvbXBvbmVudHM6IGFueVtdO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTdGF0ZVNlcnZpY2Uge1xyXG5cclxuICAgIHJlYWRvbmx5IGdsb2JhbEV4dHJhczogTmF2aWdhdGlvbkV4dHJhcztcclxuXHJcbiAgICBwcm90ZWN0ZWQgJHNuYXBzaG90OiBCZWhhdmlvclN1YmplY3Q8QWN0aXZhdGVkUm91dGVTbmFwc2hvdD47XHJcbiAgICBwcm90ZWN0ZWQgJGNvbXBvbmVudDogQmVoYXZpb3JTdWJqZWN0PGFueT47XHJcbiAgICBwcm90ZWN0ZWQgc3RhdGVJbmZvOiBJU3RhdGVJbmZvO1xyXG5cclxuICAgIHN0YXRpYyB0b1BhdGgocm91dGU6IFJvdXRlLCBwYXJhbXM6IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IHBhdGggPSByb3V0ZS5wYXRoIHx8IFwiXCI7XHJcbiAgICAgICAgT2JqZWN0VXRpbHMuaXRlcmF0ZShwYXJhbXMsICh2YWx1ZTogYW55LCBrZXk6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICBwYXRoID0gcGF0aC5yZXBsYWNlKGA6JHtrZXl9YCwgYCR7dmFsdWV9YCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHBhdGg7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHNuYXBzaG90KCk6IEFjdGl2YXRlZFJvdXRlU25hcHNob3Qge1xyXG4gICAgICAgIHJldHVybiB0aGlzLiRzbmFwc2hvdC52YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29tcG9uZW50KCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuJGNvbXBvbmVudC52YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgcm91dGUoKTogSVJvdXRlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zbmFwc2hvdC5yb3V0ZUNvbmZpZztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGF0YSgpOiBEYXRhIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zbmFwc2hvdC5kYXRhIHx8IGVtcHR5RGF0YTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgcGFyYW1zKCk6IFBhcmFtcyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc25hcHNob3QucGFyYW1zIHx8IGVtcHR5UGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBxdWVyeVBhcmFtcygpOiBQYXJhbXMge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNuYXBzaG90LnF1ZXJ5UGFyYW1zIHx8IGVtcHR5UGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCB1cmwoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZUluZm8udXJsIHx8IFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHVybFNlZ21lbnRzKCk6IFVybFNlZ21lbnRbXSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGVJbmZvLnNlZ21lbnRzIHx8IGVtcHR5U2VnbWVudHM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvbXBvbmVudHMoKTogYW55W10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlSW5mby5jb21wb25lbnRzIHx8IGVtcHR5Q29tcG9uZW50cztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgcm91dGVyQ29uZmlnKCk6IElSb3V0ZVtdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZXIuY29uZmlnO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCAkb2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPEFjdGl2YXRlZFJvdXRlU25hcHNob3Q+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy4kc25hcHNob3QucGlwZShcclxuICAgICAgICAgICAgc2tpcFdoaWxlKHNuYXBzaG90ID0+IHNuYXBzaG90ID09PSBlbXB0eVNuYXBzaG90KSxcclxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDI1KVxyXG4gICAgICAgIClcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgICAgICAgICByZWFkb25seSB6b25lOiBOZ1pvbmUsXHJcbiAgICAgICAgICAgICAgICByZWFkb25seSB1bml2ZXJzYWw6IFVuaXZlcnNhbFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSByZWFkb25seSByb3V0ZXI6IFJvdXRlciA9IG51bGwsXHJcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSByZWFkb25seSBjb250ZXh0czogQ2hpbGRyZW5PdXRsZXRDb250ZXh0cyA9IG51bGwpIHtcclxuICAgICAgICB0aGlzLmdsb2JhbEV4dHJhcyA9IHtcclxuICAgICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogXCJtZXJnZVwiXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLiRzbmFwc2hvdCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZW1wdHlTbmFwc2hvdCk7XHJcbiAgICAgICAgdGhpcy4kY29tcG9uZW50ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcclxuICAgICAgICB0aGlzLnN0YXRlSW5mbyA9IHtcclxuICAgICAgICAgICAgdXJsOiBcIlwiLFxyXG4gICAgICAgICAgICBzZWdtZW50czogW10sXHJcbiAgICAgICAgICAgIGNvbXBvbmVudHM6IFtdXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLnJvdXRlcj8uZXZlbnRzXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICAgICAgICAgIG1hcChldmVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgU2Nyb2xsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBldmVudC5yb3V0ZXJFdmVudDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50O1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXIoZSA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByb3V0ZXJTdGF0ZVNuYXBzaG90ID0gdGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3Q7XHJcbiAgICAgICAgICAgICAgICBsZXQgc25hcHNob3QgPSByb3V0ZXJTdGF0ZVNuYXBzaG90LnJvb3Q7XHJcbiAgICAgICAgICAgICAgICBsZXQgY29udGV4dDogT3V0bGV0Q29udGV4dCA9IHRoaXMuY29udGV4dHM/LmdldENvbnRleHQoXCJwcmltYXJ5XCIpO1xyXG4gICAgICAgICAgICAgICAgbGV0IHNlZ21lbnRzID0gc25hcHNob3QudXJsO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29tcG9uZW50czogYW55W10gPSBbXTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNuYXBzaG90czogQWN0aXZhdGVkUm91dGVTbmFwc2hvdFtdID0gW107XHJcbiAgICAgICAgICAgICAgICB3aGlsZSAoc25hcHNob3QpIHtcclxuICAgICAgICAgICAgICAgICAgICBzbmFwc2hvdHMucHVzaChzbmFwc2hvdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgc2VnbWVudHMgPSBzZWdtZW50cy5jb25jYXQoc25hcHNob3QudXJsKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoY29udGV4dCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29udGV4dC5vdXRsZXQgJiYgY29udGV4dC5vdXRsZXQuY29tcG9uZW50KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50cy5wdXNoKGNvbnRleHQub3V0bGV0LmNvbXBvbmVudCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQgPSBjb250ZXh0LmNoaWxkcmVuLmdldENvbnRleHQoXCJwcmltYXJ5XCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBzbmFwc2hvdCA9IHNuYXBzaG90LmZpcnN0Q2hpbGQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXRlSW5mbyA9IHtcclxuICAgICAgICAgICAgICAgICAgICB1cmw6IHJvdXRlclN0YXRlU25hcHNob3QudXJsLFxyXG4gICAgICAgICAgICAgICAgICAgIHNlZ21lbnRzOiBzZWdtZW50cyxcclxuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRzOiBjb21wb25lbnRzXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgdGhpcy4kc25hcHNob3QubmV4dChzbmFwc2hvdHNbc25hcHNob3RzLmxlbmd0aCAtIDFdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuJGNvbXBvbmVudC5uZXh0KGNvbXBvbmVudHNbY29tcG9uZW50cy5sZW5ndGggLSAxXSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHJlbG9hZCgpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIGNvbnN0IHJvdXRlclN0YXRlU25hcHNob3QgPSB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdDtcclxuICAgICAgICBjb25zdCByZXNvbHZlcnMgPSB0aGlzLnJvdXRlLnJlc29sdmUgfHwge307XHJcbiAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHJlc29sdmVycyk7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xyXG4gICAgICAgICAgICBjb25zdCByZXNvbHZlciA9IHRoaXMuaW5qZWN0b3IuZ2V0KHJlc29sdmVyc1trZXldKSBhcyBSZXNvbHZlPGFueT47XHJcbiAgICAgICAgICAgIGxldCByZXNvbHZlZCA9IHJlc29sdmVyLnJlc29sdmUodGhpcy5zbmFwc2hvdCwgcm91dGVyU3RhdGVTbmFwc2hvdCk7XHJcbiAgICAgICAgICAgIGlmIChyZXNvbHZlZCBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcclxuICAgICAgICAgICAgICAgIHJlc29sdmVkID0gZmlyc3RWYWx1ZUZyb20ocmVzb2x2ZWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChyZXNvbHZlZCBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgICAgICAgICAgIHJlc29sdmVkID0gYXdhaXQgcmVzb2x2ZWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5kYXRhW2tleV0gPSByZXNvbHZlZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgbmF2aWdhdGVCeVVybCh1cmw6IHN0cmluZyB8IFVybFRyZWUsIG5hdmlnYXRpb25FeHRyYXM6IE5hdmlnYXRpb25FeHRyYXMgPSB7fSk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm5hdmlnYXRlKHVybCwgbmF2aWdhdGlvbkV4dHJhcyk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgbmF2aWdhdGUodXJsOiBOYXZpZ2F0aW9uVXJsUGFyYW0sIG5hdmlnYXRpb25FeHRyYXM6IE5hdmlnYXRpb25FeHRyYXMgPSB7fSk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgICAgIGlmICghdGhpcy5yb3V0ZXIpIHJldHVybiBmYWxzZTtcclxuICAgICAgICBjb25zdCBbdHJlZSwgZXh0cmFzXSA9IHRoaXMuY3JlYXRlVXJsVHJlZSh1cmwsIG5hdmlnYXRpb25FeHRyYXMpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodHJlZSwgZXh0cmFzKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBvcGVuKHVybDogTmF2aWdhdGlvblVybFBhcmFtLCB0YXJnZXQgPSBcIl9ibGFua1wiLCBuYXZpZ2F0aW9uRXh0cmFzOiBOYXZpZ2F0aW9uRXh0cmFzID0ge30pOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgICAgICBpZiAoIXRoaXMucm91dGVyKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgY29uc3QgW3RyZWUsIGV4dHJhc10gPSB0aGlzLmNyZWF0ZVVybFRyZWUodXJsLCBuYXZpZ2F0aW9uRXh0cmFzKTtcclxuICAgICAgICByZXR1cm4gdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm9wZW5Jbk5ld1dpbmRvdyh0cmVlLCB0YXJnZXQpIHx8IHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodHJlZSwgZXh0cmFzKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzdWJzY3JpYmVJbW1lZGlhdGVseShcclxuICAgICAgICBuZXh0PzogKHZhbHVlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KSA9PiB2b2lkLFxyXG4gICAgICAgIGVycm9yPzogKGVycm9yOiBhbnkpID0+IHZvaWRcclxuICAgICk6IFN1YnNjcmlwdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgbmV4dCwgZXJyb3JcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzdWJzY3JpYmUob3NPck5leHQ/OiBQYXJ0aWFsPE9ic2VydmVyPEFjdGl2YXRlZFJvdXRlU25hcHNob3Q+PiB8ICgodmFsdWU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpID0+IHZvaWQpKTogU3Vic2NyaXB0aW9uIHtcclxuICAgICAgICByZXR1cm4gdGhpcy4kb2JzZXJ2YWJsZS5zdWJzY3JpYmUob3NPck5leHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvcGVuSW5OZXdXaW5kb3codHJlZTogVXJsVHJlZSwgdGFyZ2V0OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIXRoaXMudW5pdmVyc2FsLmlzQnJvd3NlcikgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IGJhc2VVcmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZi5yZXBsYWNlKHRoaXMucm91dGVyLnVybCwgXCJcIik7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uc3Qgc2VyaWFsaXplZCA9IHRoaXMucm91dGVyLnNlcmlhbGl6ZVVybCh0cmVlKTtcclxuICAgICAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gc2VyaWFsaXplZC5zdGFydHNXaXRoKFwiL1wiKSA/IFwiXCIgOiBcIi9cIjtcclxuICAgICAgICAgICAgd2luZG93Lm9wZW4oYmFzZVVybCArIHNlcGFyYXRvciArIHNlcmlhbGl6ZWQsIHRhcmdldCk7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coYENhbid0IG9wZW4gbmV3IHdpbmRvdzogJHtlfWApO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBjcmVhdGVVcmxUcmVlKHVybDogTmF2aWdhdGlvblVybFBhcmFtLCBleHRyYXM/OiBOYXZpZ2F0aW9uRXh0cmFzKTogW1VybFRyZWUsIE5hdmlnYXRpb25FeHRyYXNdIHtcclxuICAgICAgICBpZiAoIXRoaXMucm91dGVyKSByZXR1cm4gbnVsbDtcclxuICAgICAgICBleHRyYXMgPSBPYmplY3QuYXNzaWduKGV4dHJhcywgdGhpcy5nbG9iYWxFeHRyYXMsIGV4dHJhcyB8fCB7fSk7XHJcbiAgICAgICAgaWYgKE9iamVjdFV0aWxzLmlzQXJyYXkodXJsKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gW3RoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUodXJsLCBleHRyYXMpLCBleHRyYXNdXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChPYmplY3RVdGlscy5pc1N0cmluZyh1cmwpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBbdGhpcy5yb3V0ZXIucGFyc2VVcmwodXJsKSwgZXh0cmFzXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIFt1cmwsIGV4dHJhc107XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable } from "@angular/core";
|
|
2
|
-
import { CONFIG_SERVICE, PROMISE_SERVICE } from "../common-types";
|
|
3
|
-
import { ObjectUtils } from "../utils/object.utils";
|
|
4
|
-
import { EventsService } from "./events.service";
|
|
5
|
-
import { StorageService } from "./storage.service";
|
|
6
|
-
import { BaseHttpClient } from "./base-http.client";
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "./events.service";
|
|
9
|
-
import * as i2 from "./storage.service";
|
|
10
|
-
import * as i3 from "./base-http.client";
|
|
11
|
-
export class StaticLanguageService {
|
|
12
|
-
get defaultLanguage() {
|
|
13
|
-
return this.configs.getQueryParameter("lang") || this.storage.get("language", this.getDefaultLanguage());
|
|
14
|
-
}
|
|
15
|
-
get dictionary() {
|
|
16
|
-
return this.translations[this.currentLanguage] || {};
|
|
17
|
-
}
|
|
18
|
-
set dictionary(value) {
|
|
19
|
-
this.translations[this.currentLanguage] = value;
|
|
20
|
-
}
|
|
21
|
-
get languages() {
|
|
22
|
-
return this.languageList;
|
|
23
|
-
}
|
|
24
|
-
get currentLanguage() {
|
|
25
|
-
return this.currentLang || this.defaultLanguage;
|
|
26
|
-
}
|
|
27
|
-
set currentLanguage(lang) {
|
|
28
|
-
this.currentLang = lang;
|
|
29
|
-
this.events.languageChanged.emit(lang);
|
|
30
|
-
}
|
|
31
|
-
get editLanguage() {
|
|
32
|
-
return this.editLang || this.currentLanguage;
|
|
33
|
-
}
|
|
34
|
-
set editLanguage(lang) {
|
|
35
|
-
this.editLang = lang || this.currentLanguage;
|
|
36
|
-
}
|
|
37
|
-
get disableTranslations() {
|
|
38
|
-
return this.disableTrans;
|
|
39
|
-
}
|
|
40
|
-
set disableTranslations(value) {
|
|
41
|
-
this.disableTrans = value;
|
|
42
|
-
this.events.languageChanged.emit(this.currentLang);
|
|
43
|
-
}
|
|
44
|
-
get httpClient() {
|
|
45
|
-
return this.client;
|
|
46
|
-
}
|
|
47
|
-
get config() {
|
|
48
|
-
return this.configs.config;
|
|
49
|
-
}
|
|
50
|
-
get universal() {
|
|
51
|
-
return this.storage.universal;
|
|
52
|
-
}
|
|
53
|
-
constructor(events, storage, configs, promises, client) {
|
|
54
|
-
this.events = events;
|
|
55
|
-
this.storage = storage;
|
|
56
|
-
this.configs = configs;
|
|
57
|
-
this.promises = promises;
|
|
58
|
-
this.client = client;
|
|
59
|
-
this.editLang = null;
|
|
60
|
-
this.currentLang = null;
|
|
61
|
-
this.disableTrans = false;
|
|
62
|
-
this.languageList = [];
|
|
63
|
-
this.translations = {
|
|
64
|
-
none: {}
|
|
65
|
-
};
|
|
66
|
-
this.initService();
|
|
67
|
-
}
|
|
68
|
-
initService() {
|
|
69
|
-
}
|
|
70
|
-
replaceLanguages(languages) {
|
|
71
|
-
languages = Array.isArray(languages) && languages.length > 0 ? languages : this.languageList;
|
|
72
|
-
this.languageList = Array.from(new Set(languages));
|
|
73
|
-
this.languageList.forEach(lang => {
|
|
74
|
-
this.translations[lang] = this.translations[lang] || {};
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
addLanguages(languages) {
|
|
78
|
-
if (!Array.isArray(languages) || languages.length == 0)
|
|
79
|
-
return;
|
|
80
|
-
this.replaceLanguages(this.languageList.concat(languages));
|
|
81
|
-
}
|
|
82
|
-
getTranslationSync(key, params = null) {
|
|
83
|
-
const lowerKey = (key || "").toLocaleLowerCase();
|
|
84
|
-
const translation = this.dictionary[lowerKey] || lowerKey;
|
|
85
|
-
return this.interpolate(translation == lowerKey ? key : translation, params);
|
|
86
|
-
}
|
|
87
|
-
getTranslation(key, params) {
|
|
88
|
-
if (!ObjectUtils.isString(key) || !key.length) {
|
|
89
|
-
throw new Error(`Parameter "key" required`);
|
|
90
|
-
}
|
|
91
|
-
const translation = ObjectUtils.getValue(this.dictionary, key, key) || key;
|
|
92
|
-
return this.promises.resolve(this.interpolate(translation, params));
|
|
93
|
-
}
|
|
94
|
-
getTranslations(...keys) {
|
|
95
|
-
return this.promises.create(resolve => {
|
|
96
|
-
this.promises.all(keys.map(key => this.getTranslation(key))).then(translations => {
|
|
97
|
-
resolve(keys.reduce((result, key, i) => {
|
|
98
|
-
result[key] = translations[i];
|
|
99
|
-
return result;
|
|
100
|
-
}, {}));
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
getTranslationFromObject(translations, params, lang) {
|
|
105
|
-
lang = lang || this.currentLanguage;
|
|
106
|
-
return this.interpolate(translations ? (translations[lang] || "") : "");
|
|
107
|
-
}
|
|
108
|
-
getTranslationFromArray(translations, params, lang) {
|
|
109
|
-
lang = lang || this.currentLanguage;
|
|
110
|
-
const translation = translations ? translations.find(t => t.lang == lang) : null;
|
|
111
|
-
return this.interpolate(translation ? translation.translation : "", params);
|
|
112
|
-
}
|
|
113
|
-
interpolate(expr, params) {
|
|
114
|
-
if (typeof expr === "string") {
|
|
115
|
-
return this.interpolateString(expr, params);
|
|
116
|
-
}
|
|
117
|
-
if (typeof expr === "function") {
|
|
118
|
-
return expr(params);
|
|
119
|
-
}
|
|
120
|
-
return expr;
|
|
121
|
-
}
|
|
122
|
-
interpolateString(expr, params) {
|
|
123
|
-
if (!expr || !params)
|
|
124
|
-
return expr;
|
|
125
|
-
return expr.replace(/{{\s?([^{}\s]*)\s?}}/g, (substring, b) => {
|
|
126
|
-
const r = ObjectUtils.getValue(params, b);
|
|
127
|
-
return ObjectUtils.isDefined(r) ? r : substring;
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
getDefaultLanguage() {
|
|
131
|
-
if (!this.universal.isBrowser || typeof window.navigator === "undefined") {
|
|
132
|
-
return "de";
|
|
133
|
-
}
|
|
134
|
-
let browserLang = (window.navigator.languages ? window.navigator.languages[0] : null)
|
|
135
|
-
|| window.navigator.language || window.navigator["browserLanguage"] || window.navigator["userLanguage"] || null;
|
|
136
|
-
if (!browserLang)
|
|
137
|
-
return browserLang;
|
|
138
|
-
["-", "_"].forEach(splitter => {
|
|
139
|
-
if (browserLang.indexOf(splitter) >= 0) {
|
|
140
|
-
browserLang = browserLang.split(splitter)[0];
|
|
141
|
-
}
|
|
142
|
-
});
|
|
143
|
-
return browserLang;
|
|
144
|
-
}
|
|
145
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StaticLanguageService, deps: [{ token: EventsService }, { token: StorageService }, { token: CONFIG_SERVICE }, { token: PROMISE_SERVICE }, { token: BaseHttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
146
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StaticLanguageService }); }
|
|
147
|
-
}
|
|
148
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StaticLanguageService, decorators: [{
|
|
149
|
-
type: Injectable
|
|
150
|
-
}], ctorParameters: () => [{ type: i1.EventsService, decorators: [{
|
|
151
|
-
type: Inject,
|
|
152
|
-
args: [EventsService]
|
|
153
|
-
}] }, { type: i2.StorageService, decorators: [{
|
|
154
|
-
type: Inject,
|
|
155
|
-
args: [StorageService]
|
|
156
|
-
}] }, { type: undefined, decorators: [{
|
|
157
|
-
type: Inject,
|
|
158
|
-
args: [CONFIG_SERVICE]
|
|
159
|
-
}] }, { type: undefined, decorators: [{
|
|
160
|
-
type: Inject,
|
|
161
|
-
args: [PROMISE_SERVICE]
|
|
162
|
-
}] }, { type: i3.BaseHttpClient, decorators: [{
|
|
163
|
-
type: Inject,
|
|
164
|
-
args: [BaseHttpClient]
|
|
165
|
-
}] }] });
|
|
166
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGljLWxhbmd1YWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL3NlcnZpY2VzL3N0YXRpYy1sYW5ndWFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFDSCxjQUFjLEVBT2QsZUFBZSxFQUNsQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRWpELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7QUFJbEQsTUFBTSxPQUFPLHFCQUFxQjtJQUU5QixJQUFJLGVBQWU7UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7SUFDN0csQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pELENBQUM7SUFFRCxJQUFJLFVBQVUsQ0FBQyxLQUFvQjtRQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2YsT0FBTyxJQUFJLENB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Q0FBQztRQUVyQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDMUIsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxXQUFXLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqRCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUE7UUFDRixPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDOytHQWxLUSxxQkFBcUIsa0JBOERWLGFBQWEsYUFDYixjQUFjLGFBQ2QsY0FBYyxhQUNkLGVBQWUsYUFDZixjQUFjO21IQWxFekIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQURqQyxVQUFVOzswQkErRE0sTUFBTTsyQkFBQyxhQUFhOzswQkFDcEIsTUFBTTsyQkFBQyxjQUFjOzswQkFDckIsTUFBTTsyQkFBQyxjQUFjOzswQkFDckIsTUFBTTsyQkFBQyxlQUFlOzswQkFDdEIsTUFBTTsyQkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7XHJcbiAgICBDT05GSUdfU0VSVklDRSxcclxuICAgIElDb25maWdTZXJ2aWNlLFxyXG4gICAgSUNvbmZpZ3VyYXRpb24sXHJcbiAgICBJTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgSVByb21pc2VTZXJ2aWNlLFxyXG4gICAgSVRyYW5zbGF0aW9uLFxyXG4gICAgSVRyYW5zbGF0aW9ucyxcclxuICAgIFBST01JU0VfU0VSVklDRVxyXG59IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuaW1wb3J0IHtPYmplY3RVdGlsc30gZnJvbSBcIi4uL3V0aWxzL29iamVjdC51dGlsc1wiO1xyXG5pbXBvcnQge0V2ZW50c1NlcnZpY2V9IGZyb20gXCIuL2V2ZW50cy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7U3RvcmFnZVNlcnZpY2V9IGZyb20gXCIuL3N0b3JhZ2Uuc2VydmljZVwiO1xyXG5pbXBvcnQge1VuaXZlcnNhbFNlcnZpY2V9IGZyb20gXCIuL3VuaXZlcnNhbC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7QmFzZUh0dHBDbGllbnR9IGZyb20gXCIuL2Jhc2UtaHR0cC5jbGllbnRcIjtcclxuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFN0YXRpY0xhbmd1YWdlU2VydmljZSBpbXBsZW1lbnRzIElMYW5ndWFnZVNlcnZpY2Uge1xyXG5cclxuICAgIGdldCBkZWZhdWx0TGFuZ3VhZ2UoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb25maWdzLmdldFF1ZXJ5UGFyYW1ldGVyKFwibGFuZ1wiKSB8fCB0aGlzLnN0b3JhZ2UuZ2V0KFwibGFuZ3VhZ2VcIiwgdGhpcy5nZXREZWZhdWx0TGFuZ3VhZ2UoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRpY3Rpb25hcnkoKTogSVRyYW5zbGF0aW9ucyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRpb25zW3RoaXMuY3VycmVudExhbmd1YWdlXSB8fCB7fTtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgZGljdGlvbmFyeSh2YWx1ZTogSVRyYW5zbGF0aW9ucykge1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRpb25zW3RoaXMuY3VycmVudExhbmd1YWdlXSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBsYW5ndWFnZXMoKTogUmVhZG9ubHlBcnJheTxzdHJpbmc+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5sYW5ndWFnZUxpc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGN1cnJlbnRMYW5ndWFnZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRMYW5nIHx8IHRoaXMuZGVmYXVsdExhbmd1YWdlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBjdXJyZW50TGFuZ3VhZ2UobGFuZzogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50TGFuZyA9IGxhbmc7XHJcbiAgICAgICAgdGhpcy5ldmVudHMubGFuZ3VhZ2VDaGFuZ2VkLmVtaXQobGFuZyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGVkaXRMYW5ndWFnZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVkaXRMYW5nIHx8IHRoaXMuY3VycmVudExhbmd1YWdlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBlZGl0TGFuZ3VhZ2UobGFuZzogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0TGFuZyA9IGxhbmcgfHwgdGhpcy5jdXJyZW50TGFuZ3VhZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRpc2FibGVUcmFuc2xhdGlvbnMoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZVRyYW5zO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBkaXNhYmxlVHJhbnNsYXRpb25zKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlVHJhbnMgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmV2ZW50cy5sYW5ndWFnZUNoYW5nZWQuZW1pdCh0aGlzLmN1cnJlbnRMYW5nKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaHR0cENsaWVudCgpOiBIdHRwQ2xpZW50IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jbGllbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvbmZpZygpOiBJQ29uZmlndXJhdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlncy5jb25maWc7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHVuaXZlcnNhbCgpOiBVbml2ZXJzYWxTZXJ2aWNlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdG9yYWdlLnVuaXZlcnNhbDtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZWRpdExhbmc6IHN0cmluZztcclxuICAgIHByb3RlY3RlZCBjdXJyZW50TGFuZzogc3RyaW5nO1xyXG4gICAgcHJvdGVjdGVkIGRpc2FibGVUcmFuczogYm9vbGVhbjtcclxuICAgIHByb3RlY3RlZCBsYW5ndWFnZUxpc3Q6IHN0cmluZ1tdO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRyYW5zbGF0aW9uczogSVRyYW5zbGF0aW9ucztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KEV2ZW50c1NlcnZpY2UpIHJlYWRvbmx5IGV2ZW50czogRXZlbnRzU2VydmljZSxcclxuICAgICAgICAgICAgICAgIEBJbmplY3QoU3RvcmFnZVNlcnZpY2UpIHJlYWRvbmx5IHN0b3JhZ2U6IFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgQEluamVjdChDT05GSUdfU0VSVklDRSkgcmVhZG9ubHkgY29uZmlnczogSUNvbmZpZ1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBASW5qZWN0KFBST01JU0VfU0VSVklDRSkgcHJvdGVjdGVkIHByb21pc2VzOiBJUHJvbWlzZVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICBASW5qZWN0KEJhc2VIdHRwQ2xpZW50KSBwcm90ZWN0ZWQgY2xpZW50OiBCYXNlSHR0cENsaWVudCkge1xyXG4gICAgICAgIHRoaXMuZWRpdExhbmcgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuY3VycmVudExhbmcgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZVRyYW5zID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5sYW5ndWFnZUxpc3QgPSBbXTtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0aW9ucyA9IHtcclxuICAgICAgICAgICAgbm9uZToge31cclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuaW5pdFNlcnZpY2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgaW5pdFNlcnZpY2UoKTogdm9pZCB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHJlcGxhY2VMYW5ndWFnZXMobGFuZ3VhZ2VzOiBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgICAgIGxhbmd1YWdlcyA9IEFycmF5LmlzQXJyYXkobGFuZ3VhZ2VzKSAmJiBsYW5ndWFnZXMubGVuZ3RoID4gMCA/IGxhbmd1YWdlcyA6IHRoaXMubGFuZ3VhZ2VMaXN0O1xyXG4gICAgICAgIHRoaXMubGFuZ3VhZ2VMaXN0ID0gQXJyYXkuZnJvbShuZXcgU2V0PHN0cmluZz4obGFuZ3VhZ2VzKSk7XHJcbiAgICAgICAgdGhpcy5sYW5ndWFnZUxpc3QuZm9yRWFjaChsYW5nID0+IHtcclxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGlvbnNbbGFuZ10gPSB0aGlzLnRyYW5zbGF0aW9uc1tsYW5nXSB8fCB7fTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRMYW5ndWFnZXMobGFuZ3VhZ2VzOiBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShsYW5ndWFnZXMpIHx8IGxhbmd1YWdlcy5sZW5ndGggPT0gMCkgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMucmVwbGFjZUxhbmd1YWdlcyh0aGlzLmxhbmd1YWdlTGlzdC5jb25jYXQobGFuZ3VhZ2VzKSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VHJhbnNsYXRpb25TeW5jKGtleTogc3RyaW5nLCBwYXJhbXM6IGFueSA9IG51bGwpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGxvd2VyS2V5ID0gKGtleSB8fCBcIlwiKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xyXG4gICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uID0gdGhpcy5kaWN0aW9uYXJ5W2xvd2VyS2V5XSB8fCBsb3dlcktleTtcclxuICAgICAgICByZXR1cm4gdGhpcy5pbnRlcnBvbGF0ZSh0cmFuc2xhdGlvbiA9PSBsb3dlcktleSA/IGtleSA6IHRyYW5zbGF0aW9uLCBwYXJhbXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFRyYW5zbGF0aW9uKGtleTogc3RyaW5nLCBwYXJhbXM/OiBhbnkpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgICAgIGlmICghT2JqZWN0VXRpbHMuaXNTdHJpbmcoa2V5KSB8fCAha2V5Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhcmFtZXRlciBcImtleVwiIHJlcXVpcmVkYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uID0gT2JqZWN0VXRpbHMuZ2V0VmFsdWUodGhpcy5kaWN0aW9uYXJ5LCBrZXksIGtleSkgfHwga2V5O1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByb21pc2VzLnJlc29sdmUodGhpcy5pbnRlcnBvbGF0ZSh0cmFuc2xhdGlvbiwgcGFyYW1zKSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VHJhbnNsYXRpb25zKC4uLmtleXM6IHN0cmluZ1tdKTogUHJvbWlzZTxJVHJhbnNsYXRpb25zPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvbWlzZXMuY3JlYXRlPElUcmFuc2xhdGlvbnM+KHJlc29sdmUgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnByb21pc2VzLmFsbChrZXlzLm1hcChrZXkgPT4gdGhpcy5nZXRUcmFuc2xhdGlvbihrZXkpKSkudGhlbih0cmFuc2xhdGlvbnMgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShrZXlzLnJlZHVjZSgocmVzdWx0LCBrZXksIGkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IHRyYW5zbGF0aW9uc1tpXTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgfSwge30pKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VHJhbnNsYXRpb25Gcm9tT2JqZWN0KHRyYW5zbGF0aW9uczogSVRyYW5zbGF0aW9ucywgcGFyYW1zPzogYW55LCBsYW5nPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBsYW5nID0gbGFuZyB8fCB0aGlzLmN1cnJlbnRMYW5ndWFnZTtcclxuICAgICAgICByZXR1cm4gdGhpcy5pbnRlcnBvbGF0ZSh0cmFuc2xhdGlvbnMgPyAodHJhbnNsYXRpb25zW2xhbmddIHx8IFwiXCIpIDogXCJcIilcclxuICAgIH1cclxuXHJcbiAgICBnZXRUcmFuc2xhdGlvbkZyb21BcnJheSh0cmFuc2xhdGlvbnM6IElUcmFuc2xhdGlvbltdLCBwYXJhbXM/OiBhbnksIGxhbmc/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGxhbmcgPSBsYW5nIHx8IHRoaXMuY3VycmVudExhbmd1YWdlO1xyXG4gICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uID0gdHJhbnNsYXRpb25zID8gdHJhbnNsYXRpb25zLmZpbmQodCA9PiB0LmxhbmcgPT0gbGFuZykgOiBudWxsO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmludGVycG9sYXRlKHRyYW5zbGF0aW9uID8gdHJhbnNsYXRpb24udHJhbnNsYXRpb24gOiBcIlwiLCBwYXJhbXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBpbnRlcnBvbGF0ZShleHByOiBzdHJpbmcgfCBGdW5jdGlvbiwgcGFyYW1zPzogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodHlwZW9mIGV4cHIgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJwb2xhdGVTdHJpbmcoZXhwciwgcGFyYW1zKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHR5cGVvZiBleHByID09PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGV4cHIocGFyYW1zKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGV4cHIgYXMgc3RyaW5nO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBpbnRlcnBvbGF0ZVN0cmluZyhleHByOiBzdHJpbmcsIHBhcmFtcz86IGFueSkge1xyXG4gICAgICAgIGlmICghZXhwciB8fCAhcGFyYW1zKSByZXR1cm4gZXhwcjtcclxuICAgICAgICByZXR1cm4gZXhwci5yZXBsYWNlKC97e1xccz8oW157fVxcc10qKVxccz99fS9nLCAoc3Vic3RyaW5nOiBzdHJpbmcsIGI6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCByID0gT2JqZWN0VXRpbHMuZ2V0VmFsdWUocGFyYW1zLCBiKTtcclxuICAgICAgICAgICAgcmV0dXJuIE9iamVjdFV0aWxzLmlzRGVmaW5lZChyKSA/IHIgOiBzdWJzdHJpbmc7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGdldERlZmF1bHRMYW5ndWFnZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICghdGhpcy51bml2ZXJzYWwuaXNCcm93c2VyIHx8IHR5cGVvZiB3aW5kb3cubmF2aWdhdG9yID09PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBcImRlXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBicm93c2VyTGFuZzogc3RyaW5nID0gKHdpbmRvdy5uYXZpZ2F0b3IubGFuZ3VhZ2VzID8gd2luZG93Lm5hdmlnYXRvci5sYW5ndWFnZXNbMF0gOiBudWxsKVxyXG4gICAgICAgICAgICB8fCB3aW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlIHx8IHdpbmRvdy5uYXZpZ2F0b3JbXCJicm93c2VyTGFuZ3VhZ2VcIl0gfHwgd2luZG93Lm5hdmlnYXRvcltcInVzZXJMYW5ndWFnZVwiXSB8fCBudWxsO1xyXG4gICAgICAgIGlmICghYnJvd3NlckxhbmcpIHJldHVybiBicm93c2VyTGFuZztcclxuXHJcbiAgICAgICAgW1wiLVwiLCBcIl9cIl0uZm9yRWFjaChzcGxpdHRlciA9PiB7XHJcbiAgICAgICAgICAgIGlmIChicm93c2VyTGFuZy5pbmRleE9mKHNwbGl0dGVyKSA+PSAwKSB7XHJcbiAgICAgICAgICAgICAgICBicm93c2VyTGFuZyA9IGJyb3dzZXJMYW5nLnNwbGl0KHNwbGl0dGVyKVswXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgcmV0dXJuIGJyb3dzZXJMYW5nO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { Injectable } from "@angular/core";
|
|
2
|
-
import { StorageMode } from "../common-types";
|
|
3
|
-
import { UniversalService } from "./universal.service";
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "./universal.service";
|
|
6
|
-
/**
|
|
7
|
-
* Use this service instead of Storage to avoid Angular Universal breaks on server environment
|
|
8
|
-
*/
|
|
9
|
-
export class StorageService {
|
|
10
|
-
constructor(universal) {
|
|
11
|
-
this.universal = universal;
|
|
12
|
-
}
|
|
13
|
-
get(key, defaultValue, mode = StorageMode.Local) {
|
|
14
|
-
if (!this.universal.isBrowser)
|
|
15
|
-
return defaultValue;
|
|
16
|
-
const storage = mode == StorageMode.Local ? localStorage : sessionStorage;
|
|
17
|
-
const item = storage.getItem(key);
|
|
18
|
-
if (!item)
|
|
19
|
-
return defaultValue;
|
|
20
|
-
try {
|
|
21
|
-
return JSON.parse(item);
|
|
22
|
-
}
|
|
23
|
-
catch (e) {
|
|
24
|
-
return item;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
set(key, value, mode = StorageMode.Local) {
|
|
28
|
-
if (!this.universal.isBrowser)
|
|
29
|
-
return;
|
|
30
|
-
const storage = mode == StorageMode.Local ? localStorage : sessionStorage;
|
|
31
|
-
if (typeof value == "string") {
|
|
32
|
-
storage.setItem(key, value);
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
storage.setItem(key, JSON.stringify(value));
|
|
36
|
-
}
|
|
37
|
-
remove(key, mode = StorageMode.Local) {
|
|
38
|
-
if (!this.universal.isBrowser)
|
|
39
|
-
return;
|
|
40
|
-
const storage = mode == StorageMode.Local ? localStorage : sessionStorage;
|
|
41
|
-
storage.removeItem(key);
|
|
42
|
-
}
|
|
43
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StorageService, deps: [{ token: i1.UniversalService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
44
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StorageService }); }
|
|
45
|
-
}
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StorageService, decorators: [{
|
|
47
|
-
type: Injectable
|
|
48
|
-
}], ctorParameters: () => [{ type: i1.UniversalService }] });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL25neC11dGlscy9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7OztBQUVyRDs7R0FFRztBQUVILE1BQU0sT0FBTyxjQUFjO0lBRXZCLFlBQXFCLFNBQTJCO1FBQTNCLGNBQVMsR0FBVCxTQUFTLENBQWtCO0lBQ2hELENBQUM7SUFFRCxHQUFHLENBQUMsR0FBVyxFQUFFLFlBQWtCLEVBQUUsT0FBb0IsV0FBVyxDQUFDLEtBQUs7UUFDdEUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUztZQUFFLE9BQU8sWUFBWSxDQUFDO1FBQ25ELE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztRQUMxRSxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxZQUFZLENBQUM7UUFDL0IsSUFBSSxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1QsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztJQUNMLENBQUM7SUFFRCxHQUFHLENBQUMsR0FBVyxFQUFFLEtBQVUsRUFBRSxPQUFvQixXQUFXLENBQUMsS0FBSztRQUM5RCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUN0QyxNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7UUFDMUUsSUFBSSxPQUFPLEtBQUssSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUMzQixPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM1QixPQUFPO1FBQ1gsQ0FBQztRQUNELE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVcsRUFBRSxPQUFvQixXQUFXLENBQUMsS0FBSztRQUNyRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUN0QyxNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7UUFDMUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QixDQUFDOytHQS9CUSxjQUFjO21IQUFkLGNBQWM7OzRGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7U3RvcmFnZU1vZGV9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuaW1wb3J0IHtVbml2ZXJzYWxTZXJ2aWNlfSBmcm9tIFwiLi91bml2ZXJzYWwuc2VydmljZVwiO1xyXG5cclxuLyoqXHJcbiAqIFVzZSB0aGlzIHNlcnZpY2UgaW5zdGVhZCBvZiBTdG9yYWdlIHRvIGF2b2lkIEFuZ3VsYXIgVW5pdmVyc2FsIGJyZWFrcyBvbiBzZXJ2ZXIgZW52aXJvbm1lbnRcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFN0b3JhZ2VTZXJ2aWNlIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSB1bml2ZXJzYWw6IFVuaXZlcnNhbFNlcnZpY2UpIHtcclxuICAgIH1cclxuXHJcbiAgICBnZXQoa2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IGFueSwgbW9kZTogU3RvcmFnZU1vZGUgPSBTdG9yYWdlTW9kZS5Mb2NhbCk6IGFueSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnVuaXZlcnNhbC5pc0Jyb3dzZXIpIHJldHVybiBkZWZhdWx0VmFsdWU7XHJcbiAgICAgICAgY29uc3Qgc3RvcmFnZSA9IG1vZGUgPT0gU3RvcmFnZU1vZGUuTG9jYWwgPyBsb2NhbFN0b3JhZ2UgOiBzZXNzaW9uU3RvcmFnZTtcclxuICAgICAgICBjb25zdCBpdGVtID0gc3RvcmFnZS5nZXRJdGVtKGtleSk7XHJcbiAgICAgICAgaWYgKCFpdGVtKSByZXR1cm4gZGVmYXVsdFZhbHVlO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGl0ZW0pO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGl0ZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNldChrZXk6IHN0cmluZywgdmFsdWU6IGFueSwgbW9kZTogU3RvcmFnZU1vZGUgPSBTdG9yYWdlTW9kZS5Mb2NhbCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy51bml2ZXJzYWwuaXNCcm93c2VyKSByZXR1cm47XHJcbiAgICAgICAgY29uc3Qgc3RvcmFnZSA9IG1vZGUgPT0gU3RvcmFnZU1vZGUuTG9jYWwgPyBsb2NhbFN0b3JhZ2UgOiBzZXNzaW9uU3RvcmFnZTtcclxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAgICAgc3RvcmFnZS5zZXRJdGVtKGtleSwgdmFsdWUpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHN0b3JhZ2Uuc2V0SXRlbShrZXksIEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlKGtleTogc3RyaW5nLCBtb2RlOiBTdG9yYWdlTW9kZSA9IFN0b3JhZ2VNb2RlLkxvY2FsKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnVuaXZlcnNhbC5pc0Jyb3dzZXIpIHJldHVybjtcclxuICAgICAgICBjb25zdCBzdG9yYWdlID0gbW9kZSA9PSBTdG9yYWdlTW9kZS5Mb2NhbCA/IGxvY2FsU3RvcmFnZSA6IHNlc3Npb25TdG9yYWdlO1xyXG4gICAgICAgIHN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable } from "@angular/core";
|
|
2
|
-
import { LANGUAGE_SERVICE } from "../common-types";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class ConsoleToasterService {
|
|
5
|
-
constructor(language) {
|
|
6
|
-
this.language = language;
|
|
7
|
-
}
|
|
8
|
-
error(message, params, title) {
|
|
9
|
-
this.translateMessage(message, params, str => console.log(str, title, "background: #BD362F; color: #ffffff"));
|
|
10
|
-
}
|
|
11
|
-
info(message, params, title) {
|
|
12
|
-
this.translateMessage(message, params, str => console.log(str, title, "background: #2F96B4; color: #ffffff"));
|
|
13
|
-
}
|
|
14
|
-
success(message, params, title) {
|
|
15
|
-
this.translateMessage(message, params, str => console.log(str, title, "background: #51A351; color: #ffffff"));
|
|
16
|
-
}
|
|
17
|
-
warning(message, params, title) {
|
|
18
|
-
this.translateMessage(message, params, str => console.log(str, title, "background: #F89406; color: #ffffff"));
|
|
19
|
-
}
|
|
20
|
-
translateMessage(message, params, callback) {
|
|
21
|
-
this.language.getTranslation(message, params).then(callback);
|
|
22
|
-
}
|
|
23
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ConsoleToasterService, deps: [{ token: LANGUAGE_SERVICE }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
24
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ConsoleToasterService }); }
|
|
25
|
-
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ConsoleToasterService, decorators: [{
|
|
27
|
-
type: Injectable
|
|
28
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
29
|
-
type: Inject,
|
|
30
|
-
args: [LANGUAGE_SERVICE]
|
|
31
|
-
}] }] });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Rlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL25neC11dGlscy9zZXJ2aWNlcy90b2FzdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFvQyxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDOztBQUdwRixNQUFNLE9BQU8scUJBQXFCO0lBRTlCLFlBQThDLFFBQTBCO1FBQTFCLGFBQVEsR0FBUixRQUFRLENBQWtCO0lBRXhFLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBZSxFQUFFLE1BQVksRUFBRSxLQUFjO1FBQy9DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLHFDQUFxQyxDQUFDLENBQUMsQ0FBQztJQUNsSCxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQWUsRUFBRSxNQUFZLEVBQUUsS0FBYztRQUM5QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxxQ0FBcUMsQ0FBQyxDQUFDLENBQUM7SUFDbEgsQ0FBQztJQUVELE9BQU8sQ0FBQyxPQUFlLEVBQUUsTUFBWSxFQUFFLEtBQWM7UUFDakQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUscUNBQXFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xILENBQUM7SUFFRCxPQUFPLENBQUMsT0FBZSxFQUFFLE1BQVksRUFBRSxLQUFjO1FBQ2pELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLHFDQUFxQyxDQUFDLENBQUMsQ0FBQztJQUNsSCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsT0FBZSxFQUFFLE1BQVcsRUFBRSxRQUFtQztRQUN0RixJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7K0dBeEJRLHFCQUFxQixrQkFFVixnQkFBZ0I7bUhBRjNCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVTs7MEJBR00sTUFBTTsyQkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtJTGFuZ3VhZ2VTZXJ2aWNlLCBJVG9hc3RlclNlcnZpY2UsIExBTkdVQUdFX1NFUlZJQ0V9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENvbnNvbGVUb2FzdGVyU2VydmljZSBpbXBsZW1lbnRzIElUb2FzdGVyU2VydmljZSB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChMQU5HVUFHRV9TRVJWSUNFKSBwcml2YXRlIGxhbmd1YWdlOiBJTGFuZ3VhZ2VTZXJ2aWNlKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGVycm9yKG1lc3NhZ2U6IHN0cmluZywgcGFyYW1zPzogYW55LCB0aXRsZT86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRlTWVzc2FnZShtZXNzYWdlLCBwYXJhbXMsIHN0ciA9PiBjb25zb2xlLmxvZyhzdHIsIHRpdGxlLCBcImJhY2tncm91bmQ6ICNCRDM2MkY7IGNvbG9yOiAjZmZmZmZmXCIpKTtcclxuICAgIH1cclxuXHJcbiAgICBpbmZvKG1lc3NhZ2U6IHN0cmluZywgcGFyYW1zPzogYW55LCB0aXRsZT86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRlTWVzc2FnZShtZXNzYWdlLCBwYXJhbXMsIHN0ciA9PiBjb25zb2xlLmxvZyhzdHIsIHRpdGxlLCBcImJhY2tncm91bmQ6ICMyRjk2QjQ7IGNvbG9yOiAjZmZmZmZmXCIpKTtcclxuICAgIH1cclxuXHJcbiAgICBzdWNjZXNzKG1lc3NhZ2U6IHN0cmluZywgcGFyYW1zPzogYW55LCB0aXRsZT86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRlTWVzc2FnZShtZXNzYWdlLCBwYXJhbXMsIHN0ciA9PiBjb25zb2xlLmxvZyhzdHIsIHRpdGxlLCBcImJhY2tncm91bmQ6ICM1MUEzNTE7IGNvbG9yOiAjZmZmZmZmXCIpKTtcclxuICAgIH1cclxuXHJcbiAgICB3YXJuaW5nKG1lc3NhZ2U6IHN0cmluZywgcGFyYW1zPzogYW55LCB0aXRsZT86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRlTWVzc2FnZShtZXNzYWdlLCBwYXJhbXMsIHN0ciA9PiBjb25zb2xlLmxvZyhzdHIsIHRpdGxlLCBcImJhY2tncm91bmQ6ICNGODk0MDY7IGNvbG9yOiAjZmZmZmZmXCIpKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZU1lc3NhZ2UobWVzc2FnZTogc3RyaW5nLCBwYXJhbXM6IGFueSwgY2FsbGJhY2s6IChtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmxhbmd1YWdlLmdldFRyYW5zbGF0aW9uKG1lc3NhZ2UsIHBhcmFtcykudGhlbihjYWxsYmFjayk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable } from "@angular/core";
|
|
2
|
-
import { DefaultUrlSerializer, UrlSegment, UrlSegmentGroup, UrlTree } from "@angular/router";
|
|
3
|
-
import { LANGUAGE_SERVICE } from "../common-types";
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class TranslatedUrlSerializer extends DefaultUrlSerializer {
|
|
6
|
-
constructor(language) {
|
|
7
|
-
super();
|
|
8
|
-
this.language = language;
|
|
9
|
-
this.cache = {};
|
|
10
|
-
}
|
|
11
|
-
serialize(tree) {
|
|
12
|
-
const copy = new UrlTree();
|
|
13
|
-
const dictionary = this.getDictionary(true);
|
|
14
|
-
copy.root = this.modifyTreeRecursive(tree.root, segment => {
|
|
15
|
-
segment.path = dictionary[segment.path] || segment.path;
|
|
16
|
-
});
|
|
17
|
-
copy.queryParams = tree.queryParams;
|
|
18
|
-
return super.serialize(copy);
|
|
19
|
-
}
|
|
20
|
-
parse(url) {
|
|
21
|
-
const tree = super.parse(url);
|
|
22
|
-
const dictionary = this.getDictionary(false);
|
|
23
|
-
tree.root = this.modifyTreeRecursive(tree.root, segment => {
|
|
24
|
-
segment.path = dictionary[segment.path] || segment.path;
|
|
25
|
-
});
|
|
26
|
-
return tree;
|
|
27
|
-
}
|
|
28
|
-
getDictionary(serialize) {
|
|
29
|
-
const method = serialize ? `serialize` : `parse`;
|
|
30
|
-
const key = `${this.language.currentLanguage}-${method}`;
|
|
31
|
-
if (!this.cache[key]) {
|
|
32
|
-
const dict = this.language.dictionary;
|
|
33
|
-
this.cache[key] = Object.keys(dict).reduce((res, key) => {
|
|
34
|
-
if (!key.startsWith("route."))
|
|
35
|
-
return res;
|
|
36
|
-
const value = dict[key];
|
|
37
|
-
key = key.replace("route.", "");
|
|
38
|
-
res[serialize ? key : value] = serialize ? value : key;
|
|
39
|
-
return res;
|
|
40
|
-
}, {});
|
|
41
|
-
}
|
|
42
|
-
return this.cache[key];
|
|
43
|
-
}
|
|
44
|
-
modifyTreeRecursive(segmentGroup, cb) {
|
|
45
|
-
if (!segmentGroup)
|
|
46
|
-
return null;
|
|
47
|
-
const childrenArr = [];
|
|
48
|
-
const children = Object.keys(segmentGroup.children || {}).reduce((res, key) => {
|
|
49
|
-
const child = this.modifyTreeRecursive(segmentGroup.children[key], cb);
|
|
50
|
-
childrenArr.push(child);
|
|
51
|
-
res[key] = child;
|
|
52
|
-
return res;
|
|
53
|
-
}, {});
|
|
54
|
-
const newGroup = new UrlSegmentGroup(segmentGroup.segments.map(s => {
|
|
55
|
-
s = new UrlSegment(s.path, Object.assign({}, s.parameters));
|
|
56
|
-
cb(s);
|
|
57
|
-
return s;
|
|
58
|
-
}), children);
|
|
59
|
-
childrenArr.forEach(c => {
|
|
60
|
-
c.parent = newGroup;
|
|
61
|
-
});
|
|
62
|
-
return newGroup;
|
|
63
|
-
}
|
|
64
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TranslatedUrlSerializer, deps: [{ token: LANGUAGE_SERVICE }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
65
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TranslatedUrlSerializer }); }
|
|
66
|
-
}
|
|
67
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TranslatedUrlSerializer, decorators: [{
|
|
68
|
-
type: Injectable
|
|
69
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
70
|
-
type: Inject,
|
|
71
|
-
args: [LANGUAGE_SERVICE]
|
|
72
|
-
}] }] });
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlZC11cmwuc2VyaWFsaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvc2VydmljZXMvdHJhbnNsYXRlZC11cmwuc2VyaWFsaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRixPQUFPLEVBQW1CLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7O0FBT25FLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxvQkFBb0I7SUFJN0QsWUFBK0MsUUFBMEI7UUFDckUsS0FBSyxFQUFFLENBQUM7UUFEbUMsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFFckUsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFhO1FBQ25CLE1BQU0sSUFBSSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDM0IsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFO1lBQ3RELE9BQU8sQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQzVELENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3BDLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsS0FB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QyxDQUFDLENBQUM7WUFDTixPQUFPLENBQUMsQ0FBQztRQUNiLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2QsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNwQixDQUFDLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7K0dBOURRLHVCQUF1QixrQkFJWixnQkFBZ0I7bUhBSjNCLHVCQUF1Qjs7NEZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVTs7MEJBS00sTUFBTTsyQkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtEZWZhdWx0VXJsU2VyaWFsaXplciwgVXJsU2VnbWVudCwgVXJsU2VnbWVudEdyb3VwLCBVcmxUcmVlfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7SUxhbmd1YWdlU2VydmljZSwgTEFOR1VBR0VfU0VSVklDRX0gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJVXJsRGljdGlvbmFyeSB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmdcclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRlZFVybFNlcmlhbGl6ZXIgZXh0ZW5kcyBEZWZhdWx0VXJsU2VyaWFsaXplciB7XHJcblxyXG4gICAgcHJvdGVjdGVkIGNhY2hlOiB7W2xhbmc6IHN0cmluZ106IElVcmxEaWN0aW9uYXJ5fTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KExBTkdVQUdFX1NFUlZJQ0UpIHJlYWRvbmx5IGxhbmd1YWdlOiBJTGFuZ3VhZ2VTZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLmNhY2hlID0ge307XHJcbiAgICB9XHJcblxyXG4gICAgc2VyaWFsaXplKHRyZWU6IFVybFRyZWUpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGNvcHkgPSBuZXcgVXJsVHJlZSgpO1xyXG4gICAgICAgIGNvbnN0IGRpY3Rpb25hcnkgPSB0aGlzLmdldERpY3Rpb25hcnkodHJ1ZSk7XHJcbiAgICAgICAgY29weS5yb290ID0gdGhpcy5tb2RpZnlUcmVlUmVjdXJzaXZlKHRyZWUucm9vdCwgc2VnbWVudCA9PiB7XHJcbiAgICAgICAgICAgIHNlZ21lbnQucGF0aCA9IGRpY3Rpb25hcnlbc2VnbWVudC5wYXRoXSB8fCBzZWdtZW50LnBhdGg7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29weS5xdWVyeVBhcmFtcyA9IHRyZWUucXVlcnlQYXJhbXM7XHJcbiAgICAgICAgcmV0dXJuIHN1cGVyLnNlcmlhbGl6ZShjb3B5KTtcclxuICAgIH1cclxuXHJcbiAgICBwYXJzZSh1cmw6IHN0cmluZyk6IFVybFRyZWUge1xyXG4gICAgICAgIGNvbnN0IHRyZWUgPSBzdXBlci5wYXJzZSh1cmwpO1xyXG4gICAgICAgIGNvbnN0IGRpY3Rpb25hcnkgPSB0aGlzLmdldERpY3Rpb25hcnkoZmFsc2UpO1xyXG4gICAgICAgIHRyZWUucm9vdCA9IHRoaXMubW9kaWZ5VHJlZVJlY3Vyc2l2ZSh0cmVlLnJvb3QsIHNlZ21lbnQgPT4ge1xyXG4gICAgICAgICAgICBzZWdtZW50LnBhdGggPSBkaWN0aW9uYXJ5W3NlZ21lbnQucGF0aF0gfHwgc2VnbWVudC5wYXRoO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiB0cmVlO1xyXG4gICAgfVxyXG5cclxuICAgIGdldERpY3Rpb25hcnkoc2VyaWFsaXplOiBib29sZWFuKTogSVVybERpY3Rpb25hcnkge1xyXG4gICAgICAgIGNvbnN0IG1ldGhvZCA9IHNlcmlhbGl6ZSA/IGBzZXJpYWxpemVgIDogYHBhcnNlYDtcclxuICAgICAgICBjb25zdCBrZXkgPSBgJHt0aGlzLmxhbmd1YWdlLmN1cnJlbnRMYW5ndWFnZX0tJHttZXRob2R9YDtcclxuICAgICAgICBpZiAoIXRoaXMuY2FjaGVba2V5XSkge1xyXG4gICAgICAgICAgICBjb25zdCBkaWN0ID0gdGhpcy5sYW5ndWFnZS5kaWN0aW9uYXJ5O1xyXG4gICAgICAgICAgICB0aGlzLmNhY2hlW2tleV0gPSBPYmplY3Qua2V5cyhkaWN0KS5yZWR1Y2UoKHJlcywga2V5KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWtleS5zdGFydHNXaXRoKFwicm91dGUuXCIpKSByZXR1cm4gcmVzO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkaWN0W2tleV07XHJcbiAgICAgICAgICAgICAgICBrZXkgPSBrZXkucmVwbGFjZShcInJvdXRlLlwiLCBcIlwiKTtcclxuICAgICAgICAgICAgICAgIHJlc1tzZXJpYWxpemUgPyBrZXkgOiB2YWx1ZV0gPSBzZXJpYWxpemUgPyB2YWx1ZSA6IGtleTtcclxuICAgICAgICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICAgICAgIH0sIHt9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FjaGVba2V5XTtcclxuICAgIH1cclxuXHJcbiAgICBtb2RpZnlUcmVlUmVjdXJzaXZlKHNlZ21lbnRHcm91cDogVXJsU2VnbWVudEdyb3VwLCBjYjogKHNlZ21lbnQ6IFVybFNlZ21lbnQpID0+IHZvaWQpOiBVcmxTZWdtZW50R3JvdXAge1xyXG4gICAgICAgIGlmICghc2VnbWVudEdyb3VwKSByZXR1cm4gbnVsbDtcclxuICAgICAgICBjb25zdCBjaGlsZHJlbkFyciA9IFtdO1xyXG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gT2JqZWN0LmtleXMoc2VnbWVudEdyb3VwLmNoaWxkcmVuIHx8IHt9KS5yZWR1Y2UoKHJlcywga2V5KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gdGhpcy5tb2RpZnlUcmVlUmVjdXJzaXZlKHNlZ21lbnRHcm91cC5jaGlsZHJlbltrZXldLCBjYik7XHJcbiAgICAgICAgICAgIGNoaWxkcmVuQXJyLnB1c2goY2hpbGQpO1xyXG4gICAgICAgICAgICByZXNba2V5XSA9IGNoaWxkO1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICAgIH0sIHt9KTtcclxuICAgICAgICBjb25zdCBuZXdHcm91cCA9IG5ldyBVcmxTZWdtZW50R3JvdXAoc2VnbWVudEdyb3VwLnNlZ21lbnRzLm1hcChzID0+IHtcclxuICAgICAgICAgICAgcyA9IG5ldyBVcmxTZWdtZW50KHMucGF0aCwgT2JqZWN0LmFzc2lnbih7fSwgcy5wYXJhbWV0ZXJzKSk7XHJcbiAgICAgICAgICAgIGNiKHMpO1xyXG4gICAgICAgICAgICByZXR1cm4gcztcclxuICAgICAgICB9KSwgY2hpbGRyZW4pO1xyXG4gICAgICAgIGNoaWxkcmVuQXJyLmZvckVhY2goYyA9PiB7XHJcbiAgICAgICAgICAgIGMucGFyZW50ID0gbmV3R3JvdXA7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIG5ld0dyb3VwO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|