@eui/base 16.0.0-next.1 → 16.0.0-next.2
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/docs/dependencies.html +59 -63
- package/docs/js/search/search_index.js +2 -2
- package/docs/properties.html +1 -1
- package/esm2022/lib/ux-models/ux-eu-languages.model.mjs +152 -0
- package/{fesm2020 → fesm2022}/eui-base.mjs +98 -98
- package/{fesm2020 → fesm2022}/eui-base.mjs.map +1 -1
- package/package.json +5 -11
- package/esm2020/lib/ux-models/ux-eu-languages.model.mjs +0 -152
- package/fesm2015/eui-base.mjs +0 -1219
- package/fesm2015/eui-base.mjs.map +0 -1
- /package/{esm2020 → esm2022}/eui-base.mjs +0 -0
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-config/eui-app-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-config/eui-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-config/eui-env-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-config/http-error-handler.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-config/i18n.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-config/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-config/locale.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-config/log.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-config/user.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-pagination/eui-pagination.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-pagination/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-service.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-store/eui-store-service.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-store/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-store/models/app.models.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-store/models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-store/models/user.models.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-store/selectors/app.selectors.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-store/selectors/core.selectors.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-store/selectors/i18n.selectors.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-store/selectors/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-store/selectors/notifications.selectors.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-store/selectors/user.selectors.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-store/state/app.state.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-store/state/core.state.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-store/state/i18n.state.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-store/state/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-store/state/locale.state.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-store/state/notifications.state.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/eui-store/state/user.state.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/log/console.appender.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/log/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/log/log.appender.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/log/log.logger.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/log/log.logger.mock.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/log/log.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/eui-models/log/url.appender.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/util/coerce-decorator/coerce.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/util/coerce-decorator/coercions.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/util/coerce-decorator/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/util/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/util/merge.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/util/xhr.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ux-models/auth-config.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ux-models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ux-models/ux-badge.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ux-models/ux-constants.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ux-models/ux-error-feedback.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ux-models/ux-language.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ux-models/ux-link.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ux-models/ux-message.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ux-models/ux-modal.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ux-models/ux-org-chart-node.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ux-models/ux-permission.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ux-models/ux-timezones.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ux-models/ux-validation-error.model.mjs +0 -0
package/fesm2015/eui-base.mjs
DELETED
|
@@ -1,1219 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from 'tslib';
|
|
2
|
-
import { coerceBooleanProperty, coerceArray as coerceArray$1, coerceCssPixelValue, coerceElement as coerceElement$1, coerceNumberProperty } from '@angular/cdk/coercion';
|
|
3
|
-
import { Subject } from 'rxjs';
|
|
4
|
-
import { createSelector } from 'reselect';
|
|
5
|
-
import { filter, switchMap } from 'rxjs/operators';
|
|
6
|
-
import { HttpClient } from '@angular/common/http';
|
|
7
|
-
|
|
8
|
-
const isObject = (item) => item && typeof item === 'object' && !Array.isArray(item);
|
|
9
|
-
function merge(target, ...sources) {
|
|
10
|
-
return mergeDeep(target, ...sources);
|
|
11
|
-
}
|
|
12
|
-
/* eslint-enable */
|
|
13
|
-
/**
|
|
14
|
-
* deep merge of two or more objects
|
|
15
|
-
*
|
|
16
|
-
* @param target immutable target
|
|
17
|
-
* @param sources immutable sources to apply to target
|
|
18
|
-
* @returns a new merged object
|
|
19
|
-
*/
|
|
20
|
-
const mergeDeep = (target, ...sources) => {
|
|
21
|
-
const output = Object.assign({}, target);
|
|
22
|
-
if (!sources.length) {
|
|
23
|
-
return output;
|
|
24
|
-
}
|
|
25
|
-
const source = sources.shift();
|
|
26
|
-
if (isObject(target) && isObject(source)) {
|
|
27
|
-
Object.keys(source).forEach((key) => {
|
|
28
|
-
if (isObject(source[key])) {
|
|
29
|
-
if (!(key in target)) {
|
|
30
|
-
Object.assign(output, { [key]: source[key] });
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
output[key] = mergeDeep(target[key], source[key]);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
Object.assign(output, { [key]: source[key] });
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
return mergeDeep(output, ...sources);
|
|
42
|
-
};
|
|
43
|
-
const mergeAll = (array) => array.reduce((prev, next) => mergeDeep(prev, next), {});
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Default xhr configuration
|
|
47
|
-
*/
|
|
48
|
-
const DEFAULT_XHR_CONFIG = {
|
|
49
|
-
url: null,
|
|
50
|
-
method: 'GET',
|
|
51
|
-
responseType: 'json',
|
|
52
|
-
headers: {},
|
|
53
|
-
body: null,
|
|
54
|
-
withCredentials: false,
|
|
55
|
-
timeout: 0,
|
|
56
|
-
};
|
|
57
|
-
function xhr(urlOrConfig) {
|
|
58
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
59
|
-
// create the configuration and apply the default values
|
|
60
|
-
let config = typeof urlOrConfig === 'string' ? { url: urlOrConfig } : urlOrConfig;
|
|
61
|
-
config = Object.assign({}, DEFAULT_XHR_CONFIG, config);
|
|
62
|
-
// create the promise
|
|
63
|
-
return new Promise((resolve, reject) => {
|
|
64
|
-
// configure and open the request
|
|
65
|
-
const request = new XMLHttpRequest();
|
|
66
|
-
request.open(config.method, config.url, true);
|
|
67
|
-
request.responseType = config.responseType;
|
|
68
|
-
Object.keys(config.headers || {}).map(name => request.setRequestHeader(name, config.headers[name]));
|
|
69
|
-
request.withCredentials = config.withCredentials;
|
|
70
|
-
request.timeout = config.timeout;
|
|
71
|
-
// called in case of timeout
|
|
72
|
-
request.ontimeout = function () {
|
|
73
|
-
reject(`Request timeout after ${request.timeout} milliseconds`);
|
|
74
|
-
};
|
|
75
|
-
// called after the response is received
|
|
76
|
-
request.onload = function () {
|
|
77
|
-
if (request.status === 200) {
|
|
78
|
-
// the response is loaded properly
|
|
79
|
-
resolve(request.response);
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
// status error
|
|
83
|
-
reject(`Request failed with status ${request.status} (${request.statusText})`);
|
|
84
|
-
}
|
|
85
|
-
};
|
|
86
|
-
// called in case of generic error
|
|
87
|
-
request.onerror = function () {
|
|
88
|
-
reject(`Request failed`);
|
|
89
|
-
};
|
|
90
|
-
// send the request
|
|
91
|
-
request.send(config.body);
|
|
92
|
-
});
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
/* eslint-enable */
|
|
96
|
-
|
|
97
|
-
/* eslint-disable */
|
|
98
|
-
function coerce(coerceFn, afterFn) {
|
|
99
|
-
return function (target, propertyKey) {
|
|
100
|
-
const _key = Symbol();
|
|
101
|
-
target[_key] = target[propertyKey];
|
|
102
|
-
Object.defineProperty(target, propertyKey, {
|
|
103
|
-
get: function () {
|
|
104
|
-
return this[_key];
|
|
105
|
-
},
|
|
106
|
-
set: afterFn
|
|
107
|
-
? function (v) {
|
|
108
|
-
this[_key] = coerceFn.call(this, v, this);
|
|
109
|
-
afterFn.call(this, this[_key], this);
|
|
110
|
-
}
|
|
111
|
-
: function (v) {
|
|
112
|
-
this[_key] = coerceFn.call(this, v, this);
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
const coerceBoolean = coerce(coerceBooleanProperty);
|
|
119
|
-
const coerceArray = coerce(coerceArray$1);
|
|
120
|
-
const coercePixel = coerce(coerceCssPixelValue);
|
|
121
|
-
const coerceElement = coerce(coerceElement$1);
|
|
122
|
-
const coerceNumber = coerce(coerceNumberProperty);
|
|
123
|
-
|
|
124
|
-
const DEFAULT_AUTH_CONFIG = {
|
|
125
|
-
isLoggedIn: true,
|
|
126
|
-
redirectUrl: '',
|
|
127
|
-
loginPageUrl: '',
|
|
128
|
-
};
|
|
129
|
-
|
|
130
|
-
class UxBadge {
|
|
131
|
-
constructor(values = {}) {
|
|
132
|
-
this.typeClass = 'secondary';
|
|
133
|
-
Object.assign(this, values);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
class UxErrorOutput {
|
|
138
|
-
constructor(info, errorFeedback, subErrors, errGroupMap) {
|
|
139
|
-
this.severity = UxMessageSeverity.danger;
|
|
140
|
-
if (!subErrors) {
|
|
141
|
-
Object.assign(this, Object.assign({}, info), Object.assign({}, errorFeedback));
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
Object.assign(this, Object.assign({}, info), Object.assign({}, errorFeedback), { subErrors }, { errGroupMap });
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
getFeedBacks(byKey) {
|
|
148
|
-
if (this.subErrors) {
|
|
149
|
-
return this.subErrors
|
|
150
|
-
.filter((err) => {
|
|
151
|
-
if (err instanceof UxValidationErrorClass) {
|
|
152
|
-
if (byKey && err.attributes) {
|
|
153
|
-
return this.checkAttribute(byKey, err.attributes);
|
|
154
|
-
}
|
|
155
|
-
else if (byKey && !err.attributes) {
|
|
156
|
-
return false;
|
|
157
|
-
}
|
|
158
|
-
else if (!byKey) {
|
|
159
|
-
return true;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
})
|
|
163
|
-
.map((err) => ({
|
|
164
|
-
msgId: err.msgId,
|
|
165
|
-
description: err.description,
|
|
166
|
-
severity: err.severity,
|
|
167
|
-
attributes: err.attributes,
|
|
168
|
-
errGroupId: err.errGroupId,
|
|
169
|
-
br: err.br,
|
|
170
|
-
doc: err.doc,
|
|
171
|
-
}));
|
|
172
|
-
}
|
|
173
|
-
else {
|
|
174
|
-
if (!byKey) {
|
|
175
|
-
return [{ msgId: this.msgId, description: this.description, severity: this.severity, doc: this.doc }];
|
|
176
|
-
}
|
|
177
|
-
else {
|
|
178
|
-
return [];
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
checkAttribute(key, attributes) {
|
|
183
|
-
return attributes.some((attr) => key === attr.key);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
class UxErrorGroupOnClickEvent {
|
|
187
|
-
constructor(groupId, err) {
|
|
188
|
-
this.groupId = groupId;
|
|
189
|
-
this.err = err;
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
var UxMessageSeverity;
|
|
193
|
-
(function (UxMessageSeverity) {
|
|
194
|
-
UxMessageSeverity["info"] = "info";
|
|
195
|
-
UxMessageSeverity["warning"] = "warning";
|
|
196
|
-
UxMessageSeverity["danger"] = "danger";
|
|
197
|
-
UxMessageSeverity["success"] = "success";
|
|
198
|
-
})(UxMessageSeverity || (UxMessageSeverity = {}));
|
|
199
|
-
var UxMessageSeverityMetrics;
|
|
200
|
-
(function (UxMessageSeverityMetrics) {
|
|
201
|
-
UxMessageSeverityMetrics[UxMessageSeverityMetrics["info"] = 0] = "info";
|
|
202
|
-
UxMessageSeverityMetrics[UxMessageSeverityMetrics["warning"] = 1] = "warning";
|
|
203
|
-
UxMessageSeverityMetrics[UxMessageSeverityMetrics["danger"] = 2] = "danger";
|
|
204
|
-
UxMessageSeverityMetrics[UxMessageSeverityMetrics["success"] = 3] = "success";
|
|
205
|
-
})(UxMessageSeverityMetrics || (UxMessageSeverityMetrics = {}));
|
|
206
|
-
class UxValidationErrorClass {
|
|
207
|
-
constructor(data) {
|
|
208
|
-
this.severity = UxMessageSeverity.danger;
|
|
209
|
-
Object.assign(this, data);
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
const transformToUxHttpResponse = (resp, mapper) => {
|
|
213
|
-
const updatedErr = resp;
|
|
214
|
-
updatedErr.uxHttpErrorOutput = mapper(resp.error);
|
|
215
|
-
return updatedErr;
|
|
216
|
-
};
|
|
217
|
-
class UxPublishErrorFeedbackEvent {
|
|
218
|
-
constructor(err, id, groupId, accumulate) {
|
|
219
|
-
this.err = err;
|
|
220
|
-
this.id = id;
|
|
221
|
-
this.groupId = groupId;
|
|
222
|
-
this.accumulate = accumulate;
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
class UxClearErrorFeedbackEvent {
|
|
226
|
-
constructor(id, groupId) {
|
|
227
|
-
this.id = id;
|
|
228
|
-
this.groupId = groupId;
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
class UxLink {
|
|
233
|
-
constructor(values = {}) {
|
|
234
|
-
this.urlExternalTarget = '_blank';
|
|
235
|
-
this.disabled = false;
|
|
236
|
-
this.hasIconBg = false;
|
|
237
|
-
this.active = false;
|
|
238
|
-
this.visible = true;
|
|
239
|
-
this.expanded = false;
|
|
240
|
-
this.hasMarker = false;
|
|
241
|
-
this.hasTag = false;
|
|
242
|
-
this.badgeTypeClass = 'secondary';
|
|
243
|
-
this.isHome = false;
|
|
244
|
-
this.isSeparator = false;
|
|
245
|
-
this.isScreenReaderClickable = false;
|
|
246
|
-
this.selected = false;
|
|
247
|
-
this.indeterminate = false;
|
|
248
|
-
Object.assign(this, values);
|
|
249
|
-
if (this.id === null || this.id === undefined) {
|
|
250
|
-
this.id = 'no_id';
|
|
251
|
-
}
|
|
252
|
-
this.e2eAttr = 'ux-link-e2e-' + this.id;
|
|
253
|
-
}
|
|
254
|
-
get hasChildren() {
|
|
255
|
-
return this.children != null;
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
class UxTimezones {
|
|
260
|
-
constructor() {
|
|
261
|
-
this.primary = 'Europe/Brussels';
|
|
262
|
-
this.secondary = 'Europe/Brussels';
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
class UxEuLanguages {
|
|
267
|
-
/**
|
|
268
|
-
* Matches the given string array to the EU languages and returns a UxLanguage array.
|
|
269
|
-
* In case that no codes provided it returns the EU Languages array.
|
|
270
|
-
*
|
|
271
|
-
* @param codes A string array of 2 char codes
|
|
272
|
-
*/
|
|
273
|
-
static getLanguages(codes = Object.keys(this.languages)) {
|
|
274
|
-
return this.filterInvalidLanguageCodes(codes).map((c) => (typeof c === 'string' ? this.languages[c] : c));
|
|
275
|
-
}
|
|
276
|
-
/**
|
|
277
|
-
* filters and removes language codes that are not part of the EULanguage
|
|
278
|
-
* e.g. 'ko' does not map to any EULanguage code on the array.
|
|
279
|
-
* { code: 'ko', label: 'whatever' } is valid though
|
|
280
|
-
*
|
|
281
|
-
* @param codes codes A string array of 2 char codescodes A string array of 2 char codes
|
|
282
|
-
*/
|
|
283
|
-
static filterInvalidLanguageCodes(codes) {
|
|
284
|
-
return codes.filter((c) => (typeof c === 'string' ? Object.keys(this.languages).indexOf(c) !== -1 : true));
|
|
285
|
-
}
|
|
286
|
-
/**
|
|
287
|
-
* return the given list ordered based on the EULanguage order
|
|
288
|
-
*
|
|
289
|
-
* @param codes codes A string array of 2 char codes
|
|
290
|
-
*/
|
|
291
|
-
static getOrderedLanguages(codes = Object.keys(this.languages)) {
|
|
292
|
-
return this.getLanguages(codes).sort((a, b) => Object.keys(this.languages).findIndex((c) => c === a.code) - Object.keys(this.languages).findIndex((c) => c === b.code));
|
|
293
|
-
}
|
|
294
|
-
/**
|
|
295
|
-
* retrieve language codes (string array) from a given array of string and UxLanguage items
|
|
296
|
-
*
|
|
297
|
-
* @param array It can be an mixed array of string and UxLanguage items
|
|
298
|
-
*/
|
|
299
|
-
static getLanguageCodes(array) {
|
|
300
|
-
return array.map((language) => (typeof language === 'string' ? language : language.code));
|
|
301
|
-
}
|
|
302
|
-
/**
|
|
303
|
-
* filter non EU languages from given array
|
|
304
|
-
*
|
|
305
|
-
* @param array An array of UxLanguage items
|
|
306
|
-
*/
|
|
307
|
-
static filterNonEULanguages(array) {
|
|
308
|
-
return array ? array.filter((lang) => !Object.keys(this.languages).includes(lang.code)) : [];
|
|
309
|
-
}
|
|
310
|
-
/**
|
|
311
|
-
* filter EU Languages from given array
|
|
312
|
-
*
|
|
313
|
-
* @param array An array of UxLanguage items
|
|
314
|
-
*/
|
|
315
|
-
static filterEULanguages(array) {
|
|
316
|
-
return array ? array.filter((lang) => Object.keys(this.languages).includes(lang.code)) : [];
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
UxEuLanguages.languages = {
|
|
320
|
-
bg: {
|
|
321
|
-
code: 'bg',
|
|
322
|
-
label: 'български',
|
|
323
|
-
},
|
|
324
|
-
cs: {
|
|
325
|
-
code: 'cs',
|
|
326
|
-
label: 'čeština',
|
|
327
|
-
},
|
|
328
|
-
da: {
|
|
329
|
-
code: 'da',
|
|
330
|
-
label: 'dansk',
|
|
331
|
-
},
|
|
332
|
-
de: {
|
|
333
|
-
code: 'de',
|
|
334
|
-
label: 'Deutsch',
|
|
335
|
-
},
|
|
336
|
-
et: {
|
|
337
|
-
code: 'et',
|
|
338
|
-
label: 'eesti keel',
|
|
339
|
-
},
|
|
340
|
-
el: {
|
|
341
|
-
code: 'el',
|
|
342
|
-
label: 'ελληνικά',
|
|
343
|
-
},
|
|
344
|
-
en: {
|
|
345
|
-
code: 'en',
|
|
346
|
-
label: 'English',
|
|
347
|
-
},
|
|
348
|
-
es: {
|
|
349
|
-
code: 'es',
|
|
350
|
-
label: 'español',
|
|
351
|
-
},
|
|
352
|
-
fr: {
|
|
353
|
-
code: 'fr',
|
|
354
|
-
label: 'français',
|
|
355
|
-
},
|
|
356
|
-
ga: {
|
|
357
|
-
code: 'ga',
|
|
358
|
-
label: 'Gaeilge',
|
|
359
|
-
},
|
|
360
|
-
hr: {
|
|
361
|
-
code: 'hr',
|
|
362
|
-
label: 'hrvatski',
|
|
363
|
-
},
|
|
364
|
-
it: {
|
|
365
|
-
code: 'it',
|
|
366
|
-
label: 'italiano',
|
|
367
|
-
},
|
|
368
|
-
lv: {
|
|
369
|
-
code: 'lv',
|
|
370
|
-
label: 'latviešu valoda',
|
|
371
|
-
},
|
|
372
|
-
lt: {
|
|
373
|
-
code: 'lt',
|
|
374
|
-
label: 'lietuvių kalba',
|
|
375
|
-
},
|
|
376
|
-
hu: {
|
|
377
|
-
code: 'hu',
|
|
378
|
-
label: 'magyar',
|
|
379
|
-
},
|
|
380
|
-
mt: {
|
|
381
|
-
code: 'mt',
|
|
382
|
-
label: 'Malti',
|
|
383
|
-
},
|
|
384
|
-
nl: {
|
|
385
|
-
code: 'nl',
|
|
386
|
-
label: 'Nederlands',
|
|
387
|
-
},
|
|
388
|
-
pl: {
|
|
389
|
-
code: 'pl',
|
|
390
|
-
label: 'polski',
|
|
391
|
-
},
|
|
392
|
-
pt: {
|
|
393
|
-
code: 'pt',
|
|
394
|
-
label: 'português',
|
|
395
|
-
},
|
|
396
|
-
ro: {
|
|
397
|
-
code: 'ro',
|
|
398
|
-
label: 'română',
|
|
399
|
-
},
|
|
400
|
-
sk: {
|
|
401
|
-
code: 'sk',
|
|
402
|
-
label: 'slovenčina',
|
|
403
|
-
},
|
|
404
|
-
sl: {
|
|
405
|
-
code: 'sl',
|
|
406
|
-
label: 'slovenščina',
|
|
407
|
-
},
|
|
408
|
-
fi: {
|
|
409
|
-
code: 'fi',
|
|
410
|
-
label: 'suomi',
|
|
411
|
-
},
|
|
412
|
-
sv: {
|
|
413
|
-
code: 'sv',
|
|
414
|
-
label: 'svenska',
|
|
415
|
-
},
|
|
416
|
-
};
|
|
417
|
-
|
|
418
|
-
const UX_COLORS = {
|
|
419
|
-
text: '#333333',
|
|
420
|
-
default: '#333333',
|
|
421
|
-
black: '#000000',
|
|
422
|
-
white: '#ffffff',
|
|
423
|
-
primary: '#004494',
|
|
424
|
-
primaryDark: '#003e8c',
|
|
425
|
-
primaryDarker: '#003581',
|
|
426
|
-
primaryDarkest: '#002d77',
|
|
427
|
-
primaryDarkester: '#001f65',
|
|
428
|
-
primaryDarkester2: '#00174c',
|
|
429
|
-
primaryLight: '#2660a4',
|
|
430
|
-
primaryLighter: '#4d7cb4',
|
|
431
|
-
primaryLightest: '#80a2ca',
|
|
432
|
-
primaryLightester: '#b3c7df',
|
|
433
|
-
primaryLightester2: '#e0e9f2 ',
|
|
434
|
-
accent: '#ffeb3b',
|
|
435
|
-
accentDark: '#ffd114',
|
|
436
|
-
accentDarker: '#fc1',
|
|
437
|
-
accentDarkest: '#ffc60d',
|
|
438
|
-
accentDarkester: '#ffbc07',
|
|
439
|
-
accentDarkester2: '#edad00',
|
|
440
|
-
accentLight: '#ffdc3a',
|
|
441
|
-
accentLighter: '#ffe25d',
|
|
442
|
-
accentLightest: '#ffeb8b',
|
|
443
|
-
accentLightester: '#fff3b9',
|
|
444
|
-
accentLightester2: '#fffae3',
|
|
445
|
-
info: '#03a9f4',
|
|
446
|
-
infoDark: '#039be5',
|
|
447
|
-
infoDarker: '#0288d1',
|
|
448
|
-
infoDarkest: '#0277bd',
|
|
449
|
-
infoDarkester: '#01579b',
|
|
450
|
-
infoDarkester2: '#003473',
|
|
451
|
-
infoLight: '#29b6f6',
|
|
452
|
-
infoLighter: '#4fc3f7',
|
|
453
|
-
infoLightest: '#81d4fa',
|
|
454
|
-
infoLightester: '#b3e5fc',
|
|
455
|
-
infoLightester2: '#e0eef6',
|
|
456
|
-
success: '#4caf50',
|
|
457
|
-
successDark: '#3f7233',
|
|
458
|
-
successDarker: '#37672c',
|
|
459
|
-
successDarkest: '#2f5d24',
|
|
460
|
-
successDarkester: '#204a17',
|
|
461
|
-
successDarkester2: '#183711',
|
|
462
|
-
successLight: '#628e57',
|
|
463
|
-
successLighter: '#7ea274',
|
|
464
|
-
successLightest: '#a3bd9c',
|
|
465
|
-
successLightester: '#c8d7c4',
|
|
466
|
-
successLightester2: '#e9efe7',
|
|
467
|
-
warning: '#ff9800',
|
|
468
|
-
warningDark: '#f08d23',
|
|
469
|
-
warningDarker: '#ee821d',
|
|
470
|
-
warningDarkest: '#ec7817',
|
|
471
|
-
warningDarkester: '#e8670e',
|
|
472
|
-
warningDarkester2: '#d05c0d',
|
|
473
|
-
warningLight: '#f4a547',
|
|
474
|
-
warningLighter: '#f6b568',
|
|
475
|
-
warningLightest: '#f9ca93',
|
|
476
|
-
warningLightester: '#fbdfbe',
|
|
477
|
-
warningLightester2: '#fdf2e5',
|
|
478
|
-
danger: '#f44336',
|
|
479
|
-
dangerDark: '#d61d2b',
|
|
480
|
-
dangerDarker: '#d01824',
|
|
481
|
-
dangerDarkest: '#cb141e',
|
|
482
|
-
dangerDarkester: '#c20b13',
|
|
483
|
-
dangerDarkester2: '#aa0a11',
|
|
484
|
-
dangerLight: '#e0424f',
|
|
485
|
-
dangerLighter: '#e5646e',
|
|
486
|
-
dangerLightest: '#ed9098',
|
|
487
|
-
dangerLightester: '#f4bcc1',
|
|
488
|
-
dangerLightester2: '#fbe4e6',
|
|
489
|
-
grey: '#9e9e9e',
|
|
490
|
-
greyDark: '#757575',
|
|
491
|
-
greyDarker: '#616161',
|
|
492
|
-
greyDarkest: '#424242',
|
|
493
|
-
greyDarkester: '#212121',
|
|
494
|
-
greyDarkester2: '#141414',
|
|
495
|
-
greyLight: '#bdbdbd',
|
|
496
|
-
greyLighter: '#d2d2d2',
|
|
497
|
-
greyLightest: '#eeeeee',
|
|
498
|
-
greyLightester: '#f5f5f5',
|
|
499
|
-
greyLightester2: '#fafafa',
|
|
500
|
-
};
|
|
501
|
-
|
|
502
|
-
const getAppState = (state) => state.app;
|
|
503
|
-
const getUserState = (state) => state.user;
|
|
504
|
-
const getNotificationsState = (state) => state.notifications;
|
|
505
|
-
const getI18nState = (state) => state.i18n;
|
|
506
|
-
const getLocaleState = (state) => state.locale;
|
|
507
|
-
|
|
508
|
-
const getAppVersion = createSelector(getAppState, (state) => state.version);
|
|
509
|
-
const getAppConnection = createSelector(getAppState, (state) => state.connected);
|
|
510
|
-
const getAppLoadedConfigModules = createSelector(getAppState, (state) => state.loadedConfigModules);
|
|
511
|
-
const getLastAddedModule = createSelector(getAppState, (state) => state.loadedConfigModules.lastAddedModule);
|
|
512
|
-
const getAppStatus = createSelector(getAppState, (state) => state.status);
|
|
513
|
-
const getCurrentModule = createSelector(getAppState, (state) => state.currentModule);
|
|
514
|
-
const getApiQueue = createSelector(getAppState, (state) => state.apiQueue);
|
|
515
|
-
const getApiQueueItem = (itemId) => createSelector(getAppState, (state) => state.apiQueue[itemId]);
|
|
516
|
-
|
|
517
|
-
const getActiveLang = createSelector(getI18nState, (state) => state.activeLang);
|
|
518
|
-
|
|
519
|
-
const getUserDetails = createSelector(getUserState, (state) => state);
|
|
520
|
-
const getUserPreferences = createSelector(getUserState, (state) => state.preferences);
|
|
521
|
-
const getUserId = createSelector(getUserDetails, (state) => state.userId);
|
|
522
|
-
const getUserFirstName = createSelector(getUserDetails, (state) => state.firstName);
|
|
523
|
-
const getUserLastName = createSelector(getUserDetails, (state) => state.lastName);
|
|
524
|
-
const getUserFullName = createSelector(getUserDetails, (state) => state.fullName);
|
|
525
|
-
const getUserLocale = createSelector(getUserPreferences, (state) => state.locale);
|
|
526
|
-
const getUserLang = createSelector(getUserPreferences, (state) => state.lang);
|
|
527
|
-
const getUserRights = createSelector(getUserState, (state) => state.rights);
|
|
528
|
-
const getUserRight = (rightId) => createSelector(getUserRights, (state) => state.find((right) => right && right.id === rightId));
|
|
529
|
-
const getUserRightPermissions = (rightId) => createSelector(getUserRight(rightId), (state) => state && state.permissions);
|
|
530
|
-
const getUserDashboard = createSelector(getUserPreferences, (state) => state.dashboard);
|
|
531
|
-
|
|
532
|
-
const getNotificationsList = createSelector(getNotificationsState, (state) => state.list);
|
|
533
|
-
|
|
534
|
-
class EuiService {
|
|
535
|
-
constructor(defaultState) {
|
|
536
|
-
this.onStateChange = new Subject();
|
|
537
|
-
this.stateInstance = defaultState;
|
|
538
|
-
}
|
|
539
|
-
initEuiService() {
|
|
540
|
-
this.unSubscribe();
|
|
541
|
-
this.$stateSubs = this.getState().subscribe((newState) => {
|
|
542
|
-
// set previous state of service
|
|
543
|
-
this.prevStateInstance = this.copy(this.stateInstance);
|
|
544
|
-
// update state before emit event
|
|
545
|
-
this.stateInstance = this.copy(newState);
|
|
546
|
-
// inform about state change
|
|
547
|
-
this.onStateChange.next(newState);
|
|
548
|
-
});
|
|
549
|
-
}
|
|
550
|
-
// updateStateProperty(property: keyof T, newVal) {
|
|
551
|
-
// if (typeof this.stateInstance === 'object') {
|
|
552
|
-
// this.updateState({
|
|
553
|
-
// ...this.stateInstance,
|
|
554
|
-
// [property]: {
|
|
555
|
-
// ...this.stateInstance[property],
|
|
556
|
-
// ...newVal,
|
|
557
|
-
// },
|
|
558
|
-
// });
|
|
559
|
-
// } else {
|
|
560
|
-
// console.log('This helper method can not be used except for objects');
|
|
561
|
-
// }
|
|
562
|
-
// }
|
|
563
|
-
unSubscribe() {
|
|
564
|
-
if (this.$stateSubs && this.$stateSubs.unsubscribe) {
|
|
565
|
-
this.$stateSubs.unsubscribe();
|
|
566
|
-
}
|
|
567
|
-
if (this.$stateLazyLoadSubs && this.$stateLazyLoadSubs.unsubscribe) {
|
|
568
|
-
this.$stateLazyLoadSubs.unsubscribe();
|
|
569
|
-
}
|
|
570
|
-
}
|
|
571
|
-
/**
|
|
572
|
-
* returns a copy of the given value whether this value is object or primitive. For the arrays it will cover
|
|
573
|
-
* multidimensional arrays, but it will not cover an object that contain functions. JSON.parse and JSON.stringify
|
|
574
|
-
* might have performance issues on large scale objects but that's an edge case scenario. In case that happens in
|
|
575
|
-
* the future follow the technique of NGRX with function caching.
|
|
576
|
-
*
|
|
577
|
-
* @param state
|
|
578
|
-
*/
|
|
579
|
-
copy(state) {
|
|
580
|
-
if (typeof state === 'undefined') {
|
|
581
|
-
return undefined;
|
|
582
|
-
}
|
|
583
|
-
return JSON.parse(JSON.stringify(state));
|
|
584
|
-
}
|
|
585
|
-
}
|
|
586
|
-
class EuiLazyService extends EuiService {
|
|
587
|
-
constructor(defaultState) {
|
|
588
|
-
super(defaultState);
|
|
589
|
-
}
|
|
590
|
-
// todo it should use abstract store service
|
|
591
|
-
initEuiService(storeForLazyLoad) {
|
|
592
|
-
super.initEuiService();
|
|
593
|
-
if (storeForLazyLoad) {
|
|
594
|
-
this.$stateLazyLoadSubs = storeForLazyLoad
|
|
595
|
-
.select(getAppLoadedConfigModules)
|
|
596
|
-
.pipe(filter((loadedConfigModules) => { var _a; return ((_a = loadedConfigModules === null || loadedConfigModules === void 0 ? void 0 : loadedConfigModules.modulesConfig) === null || _a === void 0 ? void 0 : _a[loadedConfigModules.lastAddedModule]) ? true : false; }), switchMap((loadedConfigModules) => this.lazyLoadInit(loadedConfigModules.modulesConfig[loadedConfigModules.lastAddedModule], loadedConfigModules.lastAddedModule)))
|
|
597
|
-
.subscribe(() => { });
|
|
598
|
-
}
|
|
599
|
-
}
|
|
600
|
-
}
|
|
601
|
-
|
|
602
|
-
/**
|
|
603
|
-
* Abstract Log Appender
|
|
604
|
-
*/
|
|
605
|
-
class LogAppender {
|
|
606
|
-
constructor(config, injector = null) {
|
|
607
|
-
this.config = config;
|
|
608
|
-
this.injector = injector;
|
|
609
|
-
}
|
|
610
|
-
/**
|
|
611
|
-
* Gets the config
|
|
612
|
-
*
|
|
613
|
-
* @returns the config
|
|
614
|
-
*/
|
|
615
|
-
getConfig() {
|
|
616
|
-
return this.config;
|
|
617
|
-
}
|
|
618
|
-
}
|
|
619
|
-
|
|
620
|
-
/** Log level */
|
|
621
|
-
var LogLevel;
|
|
622
|
-
(function (LogLevel) {
|
|
623
|
-
LogLevel[LogLevel["OFF"] = 0] = "OFF";
|
|
624
|
-
LogLevel[LogLevel["FATAL"] = 1] = "FATAL";
|
|
625
|
-
LogLevel[LogLevel["ERROR"] = 2] = "ERROR";
|
|
626
|
-
LogLevel[LogLevel["WARN"] = 3] = "WARN";
|
|
627
|
-
LogLevel[LogLevel["INFO"] = 4] = "INFO";
|
|
628
|
-
LogLevel[LogLevel["DEBUG"] = 5] = "DEBUG";
|
|
629
|
-
LogLevel[LogLevel["TRACE"] = 6] = "TRACE";
|
|
630
|
-
LogLevel[LogLevel["ALL"] = 7] = "ALL";
|
|
631
|
-
})(LogLevel || (LogLevel = {}));
|
|
632
|
-
/** Associated log level names */
|
|
633
|
-
var LogLevelName;
|
|
634
|
-
(function (LogLevelName) {
|
|
635
|
-
LogLevelName["FATAL"] = "FATAL";
|
|
636
|
-
LogLevelName["ERROR"] = "ERROR";
|
|
637
|
-
LogLevelName["WARN"] = "WARNING";
|
|
638
|
-
LogLevelName["INFO"] = "INFO";
|
|
639
|
-
LogLevelName["DEBUG"] = "DEBUG";
|
|
640
|
-
LogLevelName["TRACE"] = "TRACE";
|
|
641
|
-
})(LogLevelName || (LogLevelName = {}));
|
|
642
|
-
|
|
643
|
-
/** Default console prefix converters */
|
|
644
|
-
const DEFAULT_CONSOLE_APPENDER_PREFIX_CONVERTERS = {
|
|
645
|
-
'{level}': (event) => event.levelName,
|
|
646
|
-
'{logger}': (event) => event.loggerName,
|
|
647
|
-
'{date}': (event) => event.timestamp.toLocaleDateString(),
|
|
648
|
-
'{time}': (event) => event.timestamp.toLocaleTimeString(),
|
|
649
|
-
};
|
|
650
|
-
/**
|
|
651
|
-
* Console Appender
|
|
652
|
-
*/
|
|
653
|
-
class ConsoleAppender extends LogAppender {
|
|
654
|
-
constructor(config = {}) {
|
|
655
|
-
super(config);
|
|
656
|
-
this.config = config;
|
|
657
|
-
// apply the default prefix converters
|
|
658
|
-
config.prefixConverters = Object.assign({}, DEFAULT_CONSOLE_APPENDER_PREFIX_CONVERTERS, config.prefixConverters);
|
|
659
|
-
}
|
|
660
|
-
/**
|
|
661
|
-
* Logs an event in the console
|
|
662
|
-
*/
|
|
663
|
-
append(event) {
|
|
664
|
-
// retrieve the prefix
|
|
665
|
-
const prefix = this.getPrefix(event);
|
|
666
|
-
// append it to the message array
|
|
667
|
-
const messages = prefix ? [prefix, ...event.messages] : event.messages;
|
|
668
|
-
// log the event in the console
|
|
669
|
-
switch (event.level) {
|
|
670
|
-
case LogLevel.FATAL:
|
|
671
|
-
case LogLevel.ERROR:
|
|
672
|
-
console.error(...messages);
|
|
673
|
-
break;
|
|
674
|
-
case LogLevel.WARN:
|
|
675
|
-
console.warn(...messages);
|
|
676
|
-
break;
|
|
677
|
-
default:
|
|
678
|
-
console.log(...messages);
|
|
679
|
-
break;
|
|
680
|
-
}
|
|
681
|
-
}
|
|
682
|
-
/**
|
|
683
|
-
* Returns the prefix to be added to the messages
|
|
684
|
-
*
|
|
685
|
-
* @param event the log event
|
|
686
|
-
* @returns the formatted prefix, as string
|
|
687
|
-
*/
|
|
688
|
-
getPrefix(event) {
|
|
689
|
-
// in case of no prefixFormat, return null
|
|
690
|
-
if (!this.config || !this.config.prefixFormat) {
|
|
691
|
-
return null;
|
|
692
|
-
}
|
|
693
|
-
// start creating the prefix from the format
|
|
694
|
-
let prefix = this.config.prefixFormat;
|
|
695
|
-
// apply the prefix converters
|
|
696
|
-
Object.keys(this.config.prefixConverters).forEach((key) => {
|
|
697
|
-
prefix = this.convert(prefix, key, this.config.prefixConverters[key](event));
|
|
698
|
-
});
|
|
699
|
-
return prefix;
|
|
700
|
-
}
|
|
701
|
-
/**
|
|
702
|
-
* Utility method to replace a placeholder
|
|
703
|
-
*
|
|
704
|
-
* @param str the string with placeholders
|
|
705
|
-
* @param find the placeholder
|
|
706
|
-
* @param replace the string to replace the placeholder
|
|
707
|
-
* @returns the converted string
|
|
708
|
-
*/
|
|
709
|
-
convert(str, find, replace) {
|
|
710
|
-
return str.replace(new RegExp(find, 'g'), replace);
|
|
711
|
-
}
|
|
712
|
-
}
|
|
713
|
-
|
|
714
|
-
/**
|
|
715
|
-
* Logger
|
|
716
|
-
*/
|
|
717
|
-
class Logger {
|
|
718
|
-
constructor(name, level, appenders) {
|
|
719
|
-
this.name = name;
|
|
720
|
-
this.level = level;
|
|
721
|
-
this.appenders = appenders;
|
|
722
|
-
this.isDisabled = () => this.level === LogLevel.OFF;
|
|
723
|
-
this.isEnabledFor = (level) => Logger.isEnabledFor(this.level, level);
|
|
724
|
-
this.isFatalEnabled = () => this.isEnabledFor(LogLevel.FATAL);
|
|
725
|
-
this.isErrorEnabled = () => this.isEnabledFor(LogLevel.ERROR);
|
|
726
|
-
this.isWarnEnabled = () => this.isEnabledFor(LogLevel.WARN);
|
|
727
|
-
this.isInfoEnabled = () => this.isEnabledFor(LogLevel.INFO);
|
|
728
|
-
this.isDebugEnabled = () => this.isEnabledFor(LogLevel.DEBUG);
|
|
729
|
-
this.isTraceEnabled = () => this.isEnabledFor(LogLevel.TRACE);
|
|
730
|
-
this.isAllEnabled = () => this.isEnabledFor(LogLevel.ALL);
|
|
731
|
-
}
|
|
732
|
-
static isEnabledFor(enabledFromLevel, level) {
|
|
733
|
-
return enabledFromLevel >= level;
|
|
734
|
-
}
|
|
735
|
-
/**
|
|
736
|
-
* Gets the logger name
|
|
737
|
-
*
|
|
738
|
-
* @returns the logger name
|
|
739
|
-
*/
|
|
740
|
-
getName() {
|
|
741
|
-
return this.name;
|
|
742
|
-
}
|
|
743
|
-
/**
|
|
744
|
-
* Gets the log level
|
|
745
|
-
*
|
|
746
|
-
* @returns the log level
|
|
747
|
-
*/
|
|
748
|
-
getLevel() {
|
|
749
|
-
return this.level;
|
|
750
|
-
}
|
|
751
|
-
/**
|
|
752
|
-
* Sets the log level
|
|
753
|
-
*
|
|
754
|
-
* @param level log level
|
|
755
|
-
*/
|
|
756
|
-
setLevel(level) {
|
|
757
|
-
this.level = level;
|
|
758
|
-
}
|
|
759
|
-
/**
|
|
760
|
-
* Fatal log
|
|
761
|
-
*
|
|
762
|
-
* @param message mandatory message
|
|
763
|
-
* @param additionalMessages optional messages
|
|
764
|
-
*/
|
|
765
|
-
fatal(message, ...additionalMessages) {
|
|
766
|
-
return this.log({
|
|
767
|
-
level: LogLevel.FATAL,
|
|
768
|
-
levelName: LogLevelName.FATAL,
|
|
769
|
-
loggerName: this.name,
|
|
770
|
-
timestamp: new Date(),
|
|
771
|
-
messages: [message, ...additionalMessages],
|
|
772
|
-
});
|
|
773
|
-
}
|
|
774
|
-
/**
|
|
775
|
-
* Error log
|
|
776
|
-
*
|
|
777
|
-
* @param message mandatory message
|
|
778
|
-
* @param additionalMessages optional messages
|
|
779
|
-
*/
|
|
780
|
-
error(message, ...additionalMessages) {
|
|
781
|
-
return this.log({
|
|
782
|
-
level: LogLevel.ERROR,
|
|
783
|
-
levelName: LogLevelName.ERROR,
|
|
784
|
-
loggerName: this.name,
|
|
785
|
-
timestamp: new Date(),
|
|
786
|
-
messages: [message, ...additionalMessages],
|
|
787
|
-
});
|
|
788
|
-
}
|
|
789
|
-
/**
|
|
790
|
-
* Warning log
|
|
791
|
-
*
|
|
792
|
-
* @param message mandatory message
|
|
793
|
-
* @param additionalMessages optional messages
|
|
794
|
-
*/
|
|
795
|
-
warn(message, ...additionalMessages) {
|
|
796
|
-
return this.log({
|
|
797
|
-
level: LogLevel.WARN,
|
|
798
|
-
levelName: LogLevelName.WARN,
|
|
799
|
-
loggerName: this.name,
|
|
800
|
-
timestamp: new Date(),
|
|
801
|
-
messages: [message, ...additionalMessages],
|
|
802
|
-
});
|
|
803
|
-
}
|
|
804
|
-
/**
|
|
805
|
-
* Info log
|
|
806
|
-
*
|
|
807
|
-
* @param message mandatory message
|
|
808
|
-
* @param additionalMessages optional messages
|
|
809
|
-
*/
|
|
810
|
-
info(message, ...additionalMessages) {
|
|
811
|
-
return this.log({
|
|
812
|
-
level: LogLevel.INFO,
|
|
813
|
-
levelName: LogLevelName.INFO,
|
|
814
|
-
loggerName: this.name,
|
|
815
|
-
timestamp: new Date(),
|
|
816
|
-
messages: [message, ...additionalMessages],
|
|
817
|
-
});
|
|
818
|
-
}
|
|
819
|
-
/**
|
|
820
|
-
* Debug log
|
|
821
|
-
*
|
|
822
|
-
* @param message mandatory message
|
|
823
|
-
* @param additionalMessages optional messages
|
|
824
|
-
*/
|
|
825
|
-
debug(message, ...additionalMessages) {
|
|
826
|
-
return this.log({
|
|
827
|
-
level: LogLevel.DEBUG,
|
|
828
|
-
levelName: LogLevelName.DEBUG,
|
|
829
|
-
loggerName: this.name,
|
|
830
|
-
timestamp: new Date(),
|
|
831
|
-
messages: [message, ...additionalMessages],
|
|
832
|
-
});
|
|
833
|
-
}
|
|
834
|
-
/**
|
|
835
|
-
* Trace log
|
|
836
|
-
*
|
|
837
|
-
* @param message mandatory message
|
|
838
|
-
* @param additionalMessages optional messages
|
|
839
|
-
*/
|
|
840
|
-
trace(message, ...additionalMessages) {
|
|
841
|
-
return this.log({
|
|
842
|
-
level: LogLevel.TRACE,
|
|
843
|
-
levelName: LogLevelName.TRACE,
|
|
844
|
-
loggerName: this.name,
|
|
845
|
-
timestamp: new Date(),
|
|
846
|
-
messages: [message, ...additionalMessages],
|
|
847
|
-
});
|
|
848
|
-
}
|
|
849
|
-
/**
|
|
850
|
-
* Generic log method, checking the log level and calling the specified appenders
|
|
851
|
-
*
|
|
852
|
-
* @param event the log event
|
|
853
|
-
*/
|
|
854
|
-
log(event) {
|
|
855
|
-
this.appenders
|
|
856
|
-
// filter the appender by their custom logLevel or the logger (main) logLevel
|
|
857
|
-
.filter((appender) => Logger.isEnabledFor(appender.getConfig().logLevel || this.level, event.level), this)
|
|
858
|
-
// execute the remaining appenders
|
|
859
|
-
.forEach((appender) => appender.append(event));
|
|
860
|
-
}
|
|
861
|
-
}
|
|
862
|
-
|
|
863
|
-
class LoggerMock extends Logger {
|
|
864
|
-
constructor() {
|
|
865
|
-
super(null, null, null);
|
|
866
|
-
this.isDisabled = () => false;
|
|
867
|
-
this.isEnabledFor = () => false;
|
|
868
|
-
this.isFatalEnabled = () => false;
|
|
869
|
-
this.isErrorEnabled = () => false;
|
|
870
|
-
this.isWarnEnabled = () => false;
|
|
871
|
-
this.isInfoEnabled = () => false;
|
|
872
|
-
this.isDebugEnabled = () => false;
|
|
873
|
-
this.isTraceEnabled = () => false;
|
|
874
|
-
this.isAllEnabled = () => false;
|
|
875
|
-
}
|
|
876
|
-
getLevel() {
|
|
877
|
-
return null;
|
|
878
|
-
}
|
|
879
|
-
setLevel() { }
|
|
880
|
-
fatal() { }
|
|
881
|
-
error() { }
|
|
882
|
-
warn() { }
|
|
883
|
-
info() { }
|
|
884
|
-
debug() { }
|
|
885
|
-
trace() { }
|
|
886
|
-
}
|
|
887
|
-
|
|
888
|
-
/**
|
|
889
|
-
* Url Appender
|
|
890
|
-
*/
|
|
891
|
-
class UrlAppender extends LogAppender {
|
|
892
|
-
constructor(config, injector) {
|
|
893
|
-
super(config, injector);
|
|
894
|
-
this.config = config;
|
|
895
|
-
this.injector = injector;
|
|
896
|
-
// set the http client
|
|
897
|
-
this.http = injector && injector.get(HttpClient);
|
|
898
|
-
if (!this.http) {
|
|
899
|
-
console.error('UrlAppender needs HttpClient service to be defined as a provider.');
|
|
900
|
-
}
|
|
901
|
-
}
|
|
902
|
-
/**
|
|
903
|
-
* Logs an event to a server
|
|
904
|
-
*/
|
|
905
|
-
append(event) {
|
|
906
|
-
// eventual http errors will be caught by the HttpErrorHandlerInterceptor
|
|
907
|
-
if (this.http) {
|
|
908
|
-
this.http.post(this.config.url, this.toUrlEvent(event)).subscribe();
|
|
909
|
-
}
|
|
910
|
-
}
|
|
911
|
-
/**
|
|
912
|
-
* Maps a LogEvent into a UrlLogEvent
|
|
913
|
-
*/
|
|
914
|
-
toUrlEvent(event) {
|
|
915
|
-
// check if the urlEventFromLevel allows the mapping to url log event
|
|
916
|
-
const toUrlEvent = this.config.detailedEventFromLevel && Logger.isEnabledFor(this.config.detailedEventFromLevel, event.level);
|
|
917
|
-
// returns the url event or the regular log event
|
|
918
|
-
return toUrlEvent
|
|
919
|
-
? Object.assign({}, this.filterErrorType(event), {
|
|
920
|
-
position: this.getPosition(),
|
|
921
|
-
location: this.getLocation(),
|
|
922
|
-
})
|
|
923
|
-
: event;
|
|
924
|
-
}
|
|
925
|
-
/**
|
|
926
|
-
* returns the code position from where the log has been triggered
|
|
927
|
-
*/
|
|
928
|
-
getPosition() {
|
|
929
|
-
// create a dummy error, just for the stack trace
|
|
930
|
-
const error = new Error();
|
|
931
|
-
try {
|
|
932
|
-
// throw it ...
|
|
933
|
-
throw error;
|
|
934
|
-
}
|
|
935
|
-
catch (e) {
|
|
936
|
-
// ... and catch it
|
|
937
|
-
try {
|
|
938
|
-
// extract the correct stack line
|
|
939
|
-
let stackLine = error.stack.split('\n')[3].trim();
|
|
940
|
-
if (stackLine.startsWith('at ')) {
|
|
941
|
-
stackLine = stackLine.substring('at '.length);
|
|
942
|
-
}
|
|
943
|
-
// if the path is specified in parentheses
|
|
944
|
-
if (stackLine.lastIndexOf('(') > 0) {
|
|
945
|
-
stackLine = stackLine.substring(stackLine.lastIndexOf('(') + 1, stackLine.indexOf(')'));
|
|
946
|
-
}
|
|
947
|
-
// strip base path, then parse file, line and column
|
|
948
|
-
const data = stackLine.substring(stackLine.lastIndexOf('/') + 1).split(':');
|
|
949
|
-
// if the data is parsed correctly
|
|
950
|
-
if (data.length === 3) {
|
|
951
|
-
return {
|
|
952
|
-
file: data[0],
|
|
953
|
-
line: +data[1],
|
|
954
|
-
column: +data[2],
|
|
955
|
-
};
|
|
956
|
-
}
|
|
957
|
-
}
|
|
958
|
-
catch (err) { }
|
|
959
|
-
}
|
|
960
|
-
return null;
|
|
961
|
-
}
|
|
962
|
-
/**
|
|
963
|
-
* returns the url of the current page
|
|
964
|
-
*/
|
|
965
|
-
getLocation() {
|
|
966
|
-
return window && window.location && window.location.href;
|
|
967
|
-
}
|
|
968
|
-
/**
|
|
969
|
-
* check messages if object type is Error and make its properties enumerable
|
|
970
|
-
*/
|
|
971
|
-
filterErrorType(event) {
|
|
972
|
-
event.messages = event.messages.map((m) => (m instanceof Error ? Object.getOwnPropertyDescriptors(m) : m));
|
|
973
|
-
return event;
|
|
974
|
-
}
|
|
975
|
-
}
|
|
976
|
-
|
|
977
|
-
const getI18nServiceConfigFromBase = (baseGlobalConfig) => {
|
|
978
|
-
const i18nServiceConfig = baseGlobalConfig && baseGlobalConfig.i18n && baseGlobalConfig.i18n.i18nService;
|
|
979
|
-
const { languages, defaultLanguage } = getI18nServiceConfig(i18nServiceConfig);
|
|
980
|
-
return { languages, defaultLanguage };
|
|
981
|
-
};
|
|
982
|
-
const getI18nServiceConfig = (config) => Object.assign({}, config);
|
|
983
|
-
const getI18nLoaderConfig = (config) => {
|
|
984
|
-
const { i18nFolders, i18nServices, i18nResources } = Object.assign({}, config);
|
|
985
|
-
return { i18nFolders, i18nServices, i18nResources };
|
|
986
|
-
};
|
|
987
|
-
/**
|
|
988
|
-
* returns a language code based on https://tools.ietf.org/rfc/bcp/bcp47.txt specification. To get the Browser's
|
|
989
|
-
* it's using the navigator.language, splits by hyphen and get the first part.
|
|
990
|
-
*/
|
|
991
|
-
const getBrowserDefaultLanguage = () => navigator.language.split('-')[0];
|
|
992
|
-
/**
|
|
993
|
-
* returns an array of DOMStrings representing the user's preferred languages. The language is described using BCP 47
|
|
994
|
-
* language tags. In the returned array they are ordered by preference with the most preferred language first.
|
|
995
|
-
* The array languages will be lower cased 2 char code.
|
|
996
|
-
*/
|
|
997
|
-
const getBrowserPreferredLanguages = () => navigator.languages.map((lang) => lang.split('-')[0]);
|
|
998
|
-
|
|
999
|
-
/**
|
|
1000
|
-
* responsible to extract the attributes "available" and "id" from the locale configuration
|
|
1001
|
-
*/
|
|
1002
|
-
const getLocaleServiceConfigFromBase = (baseGlobalConfig) => {
|
|
1003
|
-
const { available, id, bindWithTranslate, affectGlobalLocale } = baseGlobalConfig.locale;
|
|
1004
|
-
return { available, id, bindWithTranslate, affectGlobalLocale };
|
|
1005
|
-
};
|
|
1006
|
-
|
|
1007
|
-
// TODO: move this to externals since Dashboard functionality moved there
|
|
1008
|
-
// export interface UserDashboard extends WidgetDashboard {}
|
|
1009
|
-
const initialUserPreferences = Object.assign({}, {
|
|
1010
|
-
lang: null,
|
|
1011
|
-
dashboard: null,
|
|
1012
|
-
});
|
|
1013
|
-
|
|
1014
|
-
const initialAppState = Object.assign({}, {
|
|
1015
|
-
version: '0.0.0',
|
|
1016
|
-
connected: true,
|
|
1017
|
-
loadedConfigModules: {
|
|
1018
|
-
modulesConfig: {},
|
|
1019
|
-
},
|
|
1020
|
-
status: 'idle',
|
|
1021
|
-
currentModule: '',
|
|
1022
|
-
apiQueue: {},
|
|
1023
|
-
});
|
|
1024
|
-
|
|
1025
|
-
const initialUserState = Object.assign({}, {
|
|
1026
|
-
userId: '',
|
|
1027
|
-
firstName: '',
|
|
1028
|
-
lastName: '',
|
|
1029
|
-
fullName: '',
|
|
1030
|
-
preferences: initialUserPreferences,
|
|
1031
|
-
rights: [],
|
|
1032
|
-
});
|
|
1033
|
-
|
|
1034
|
-
const initialNotificationsState = {
|
|
1035
|
-
list: [],
|
|
1036
|
-
};
|
|
1037
|
-
|
|
1038
|
-
const initialI18nState = {
|
|
1039
|
-
activeLang: null,
|
|
1040
|
-
};
|
|
1041
|
-
|
|
1042
|
-
const initialLocaleState = {
|
|
1043
|
-
id: 'en',
|
|
1044
|
-
};
|
|
1045
|
-
|
|
1046
|
-
const initialCoreState = Object.assign({}, {
|
|
1047
|
-
app: initialAppState,
|
|
1048
|
-
user: initialUserState,
|
|
1049
|
-
notifications: initialNotificationsState,
|
|
1050
|
-
i18n: initialI18nState,
|
|
1051
|
-
locale: initialLocaleState,
|
|
1052
|
-
});
|
|
1053
|
-
|
|
1054
|
-
const DefaultConfig = {
|
|
1055
|
-
totalItems: 0,
|
|
1056
|
-
pageSize: 10,
|
|
1057
|
-
currentPage: 1,
|
|
1058
|
-
pageWindowSize: 5,
|
|
1059
|
-
};
|
|
1060
|
-
class EuiPagination {
|
|
1061
|
-
constructor(totalItems = DefaultConfig.totalItems, pageSize = DefaultConfig.pageSize, currentPage = DefaultConfig.currentPage, pageWindowSize = DefaultConfig.pageWindowSize) {
|
|
1062
|
-
this.totalItems = totalItems;
|
|
1063
|
-
this.pageSize = pageSize;
|
|
1064
|
-
this.currentPage = currentPage;
|
|
1065
|
-
this.pageWindowSize = pageWindowSize;
|
|
1066
|
-
}
|
|
1067
|
-
static create(config = DefaultConfig) {
|
|
1068
|
-
if (config.totalItems < 0) {
|
|
1069
|
-
throw new Error('total items cannot be negative');
|
|
1070
|
-
}
|
|
1071
|
-
if (config.pageSize <= 0) {
|
|
1072
|
-
throw new Error('page size must be bigger than zero');
|
|
1073
|
-
}
|
|
1074
|
-
if (config.pageWindowSize <= 0) {
|
|
1075
|
-
throw new Error('page window size must be bigger than zero');
|
|
1076
|
-
}
|
|
1077
|
-
return new EuiPagination(config.totalItems, config.pageSize, config.currentPage, config.pageWindowSize);
|
|
1078
|
-
}
|
|
1079
|
-
getFirstPage() {
|
|
1080
|
-
return 1;
|
|
1081
|
-
}
|
|
1082
|
-
getLastPage() {
|
|
1083
|
-
return this.getPagesCount();
|
|
1084
|
-
}
|
|
1085
|
-
isFirstPageActive() {
|
|
1086
|
-
return this.getCurrentPage() === 1;
|
|
1087
|
-
}
|
|
1088
|
-
isLastPageActive() {
|
|
1089
|
-
return this.getCurrentPage() === this.getPagesCount();
|
|
1090
|
-
}
|
|
1091
|
-
hasItems() {
|
|
1092
|
-
return this.getTotalItems() > 0;
|
|
1093
|
-
}
|
|
1094
|
-
getPagesCount() {
|
|
1095
|
-
const pagesCount = Math.ceil(this.totalItems / this.pageSize);
|
|
1096
|
-
return Math.max(pagesCount, 1);
|
|
1097
|
-
}
|
|
1098
|
-
getPages() {
|
|
1099
|
-
const pageWindowSize = this.getPageWindowSize();
|
|
1100
|
-
const pagesCount = this.getPagesCount();
|
|
1101
|
-
const currentPage = this.getCurrentPage();
|
|
1102
|
-
let leftPageWindowSize;
|
|
1103
|
-
let rightPageWindowSize;
|
|
1104
|
-
let startPage;
|
|
1105
|
-
let endPage;
|
|
1106
|
-
// should not be bigger than pages count
|
|
1107
|
-
const truncatedPageWindowSize = Math.min(...[this.getPageWindowSize(), this.getPagesCount()]);
|
|
1108
|
-
if (truncatedPageWindowSize % 2 === 0) {
|
|
1109
|
-
// nonsymetrical pager (...*....)
|
|
1110
|
-
leftPageWindowSize = truncatedPageWindowSize / 2 - 1;
|
|
1111
|
-
rightPageWindowSize = leftPageWindowSize + 1;
|
|
1112
|
-
}
|
|
1113
|
-
else {
|
|
1114
|
-
// symmetrical pager (...*...)
|
|
1115
|
-
leftPageWindowSize = rightPageWindowSize = Math.floor(pageWindowSize / 2);
|
|
1116
|
-
}
|
|
1117
|
-
if (currentPage <= leftPageWindowSize) {
|
|
1118
|
-
// start
|
|
1119
|
-
startPage = 1;
|
|
1120
|
-
endPage = truncatedPageWindowSize;
|
|
1121
|
-
}
|
|
1122
|
-
else if (currentPage > pagesCount - rightPageWindowSize) {
|
|
1123
|
-
// end
|
|
1124
|
-
startPage = pagesCount - truncatedPageWindowSize + 1;
|
|
1125
|
-
endPage = pagesCount;
|
|
1126
|
-
}
|
|
1127
|
-
else {
|
|
1128
|
-
// middle
|
|
1129
|
-
startPage = currentPage - leftPageWindowSize;
|
|
1130
|
-
endPage = currentPage + rightPageWindowSize;
|
|
1131
|
-
}
|
|
1132
|
-
return range(startPage, endPage + 1);
|
|
1133
|
-
}
|
|
1134
|
-
goToPage(page) {
|
|
1135
|
-
const pagesCount = this.getPagesCount();
|
|
1136
|
-
const upperTrunc = Math.min(...[page, pagesCount]);
|
|
1137
|
-
const truncated = Math.max(...[upperTrunc, 1]);
|
|
1138
|
-
this.currentPage = truncated;
|
|
1139
|
-
}
|
|
1140
|
-
goToFirstPage() {
|
|
1141
|
-
this.goToPage(1);
|
|
1142
|
-
}
|
|
1143
|
-
goToLastPage() {
|
|
1144
|
-
const lastPage = this.getPagesCount();
|
|
1145
|
-
this.goToPage(lastPage);
|
|
1146
|
-
}
|
|
1147
|
-
goToNextPage() {
|
|
1148
|
-
const nextPage = this.getCurrentPage() + 1;
|
|
1149
|
-
this.goToPage(nextPage);
|
|
1150
|
-
}
|
|
1151
|
-
goToPreviousPage() {
|
|
1152
|
-
const previousPage = this.getCurrentPage() - 1;
|
|
1153
|
-
this.goToPage(previousPage);
|
|
1154
|
-
}
|
|
1155
|
-
hasPreviousPage() {
|
|
1156
|
-
return this.getCurrentPage() > 1;
|
|
1157
|
-
}
|
|
1158
|
-
hasNextPage() {
|
|
1159
|
-
return this.getCurrentPage() < this.getPagesCount();
|
|
1160
|
-
}
|
|
1161
|
-
getTotalItems() {
|
|
1162
|
-
return this.totalItems;
|
|
1163
|
-
}
|
|
1164
|
-
getPageSize() {
|
|
1165
|
-
return this.pageSize;
|
|
1166
|
-
}
|
|
1167
|
-
setPageSize(size) {
|
|
1168
|
-
const truncated = Math.max(...[size, 1]);
|
|
1169
|
-
this.pageSize = truncated;
|
|
1170
|
-
}
|
|
1171
|
-
getCurrentPage() {
|
|
1172
|
-
return this.currentPage;
|
|
1173
|
-
}
|
|
1174
|
-
getPageWindowSize() {
|
|
1175
|
-
return this.pageWindowSize;
|
|
1176
|
-
}
|
|
1177
|
-
setPageWindowSize(size) {
|
|
1178
|
-
const truncated = Math.max(...[size, 1]);
|
|
1179
|
-
this.pageWindowSize = truncated;
|
|
1180
|
-
}
|
|
1181
|
-
getShowingFrom() {
|
|
1182
|
-
const startingIndex = (this.getCurrentPage() - 1) * this.getPageSize();
|
|
1183
|
-
let startingPage = startingIndex + 1;
|
|
1184
|
-
if (!this.hasItems()) {
|
|
1185
|
-
startingPage = 0;
|
|
1186
|
-
}
|
|
1187
|
-
return startingPage;
|
|
1188
|
-
}
|
|
1189
|
-
getShowingTo() {
|
|
1190
|
-
const displayStartItem = this.getShowingFrom();
|
|
1191
|
-
const pageSize = this.getPageSize();
|
|
1192
|
-
const totalItems = this.getTotalItems();
|
|
1193
|
-
if (!this.hasItems()) {
|
|
1194
|
-
return 0;
|
|
1195
|
-
}
|
|
1196
|
-
const pageEnd = Math.min(...[displayStartItem + pageSize - 1, totalItems]);
|
|
1197
|
-
return pageEnd;
|
|
1198
|
-
}
|
|
1199
|
-
}
|
|
1200
|
-
const range = (start, end, step = 1) => {
|
|
1201
|
-
const output = [];
|
|
1202
|
-
if (typeof end === 'undefined') {
|
|
1203
|
-
end = start;
|
|
1204
|
-
start = 0;
|
|
1205
|
-
}
|
|
1206
|
-
for (let i = start; i < end; i += step) {
|
|
1207
|
-
output.push(i);
|
|
1208
|
-
}
|
|
1209
|
-
return output;
|
|
1210
|
-
};
|
|
1211
|
-
|
|
1212
|
-
// export * from './lib/base.module';
|
|
1213
|
-
|
|
1214
|
-
/**
|
|
1215
|
-
* Generated bundle index. Do not edit.
|
|
1216
|
-
*/
|
|
1217
|
-
|
|
1218
|
-
export { ConsoleAppender, DEFAULT_AUTH_CONFIG, DEFAULT_CONSOLE_APPENDER_PREFIX_CONVERTERS, DEFAULT_XHR_CONFIG, DefaultConfig, EuiLazyService, EuiPagination, EuiService, LogAppender, LogLevel, LogLevelName, Logger, LoggerMock, UX_COLORS, UrlAppender, UxBadge, UxClearErrorFeedbackEvent, UxErrorGroupOnClickEvent, UxErrorOutput, UxEuLanguages, UxLink, UxMessageSeverity, UxMessageSeverityMetrics, UxPublishErrorFeedbackEvent, UxTimezones, UxValidationErrorClass, coerce, coerceArray, coerceBoolean, coerceElement, coerceNumber, coercePixel, getActiveLang, getApiQueue, getApiQueueItem, getAppConnection, getAppLoadedConfigModules, getAppState, getAppStatus, getAppVersion, getBrowserDefaultLanguage, getBrowserPreferredLanguages, getCurrentModule, getI18nLoaderConfig, getI18nServiceConfig, getI18nServiceConfigFromBase, getI18nState, getLastAddedModule, getLocaleServiceConfigFromBase, getLocaleState, getNotificationsList, getNotificationsState, getUserDashboard, getUserDetails, getUserFirstName, getUserFullName, getUserId, getUserLang, getUserLastName, getUserLocale, getUserPreferences, getUserRight, getUserRightPermissions, getUserRights, getUserState, initialAppState, initialCoreState, initialI18nState, initialLocaleState, initialNotificationsState, initialUserPreferences, initialUserState, isObject, merge, mergeAll, mergeDeep, range, transformToUxHttpResponse, xhr };
|
|
1219
|
-
//# sourceMappingURL=eui-base.mjs.map
|