@eui/core 15.4.0 → 15.4.1
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/LICENSE +296 -296
- package/README.md +26 -26
- package/assets/i18n-eui/bg.json +114 -114
- package/assets/i18n-eui/cs.json +114 -114
- package/assets/i18n-eui/da.json +114 -114
- package/assets/i18n-eui/de.json +114 -114
- package/assets/i18n-eui/el.json +114 -114
- package/assets/i18n-eui/en.json +113 -113
- package/assets/i18n-eui/es.json +114 -114
- package/assets/i18n-eui/et.json +114 -114
- package/assets/i18n-eui/fi.json +114 -114
- package/assets/i18n-eui/fr.json +114 -114
- package/assets/i18n-eui/ga.json +114 -114
- package/assets/i18n-eui/hr.json +114 -114
- package/assets/i18n-eui/hu.json +114 -114
- package/assets/i18n-eui/it.json +114 -114
- package/assets/i18n-eui/lt.json +114 -114
- package/assets/i18n-eui/lv.json +114 -114
- package/assets/i18n-eui/mt.json +114 -114
- package/assets/i18n-eui/nl.json +114 -114
- package/assets/i18n-eui/pl.json +114 -114
- package/assets/i18n-eui/pt.json +114 -114
- package/assets/i18n-eui/ro.json +114 -114
- package/assets/i18n-eui/sk.json +114 -114
- package/assets/i18n-eui/sl.json +114 -114
- package/assets/i18n-eui/sv.json +114 -114
- package/docs/classes/RouterMock.html +5 -5
- package/docs/dependencies.html +95 -7
- package/docs/index.html +36 -59
- package/docs/injectables/CoreAppEffects.html +51 -51
- package/docs/js/menu-wc.js +12 -7
- package/docs/js/menu-wc_es5.js +1 -1
- package/docs/js/search/search_index.js +2 -2
- package/docs/miscellaneous/variables.html +1211 -1211
- package/docs/overview.html +171 -0
- package/esm2020/eui-core.mjs +4 -4
- package/esm2020/index.mjs +13 -13
- package/esm2020/lib/eui-core.module.mjs +78 -78
- package/esm2020/lib/helpers/date-helpers.mjs +3 -3
- package/esm2020/lib/helpers/dom-helpers.mjs +87 -87
- package/esm2020/lib/helpers/event-helpers.mjs +9 -9
- package/esm2020/lib/helpers/form-helpers.mjs +42 -42
- package/esm2020/lib/helpers/format-helpers.mjs +66 -66
- package/esm2020/lib/helpers/http-helpers.mjs +7 -7
- package/esm2020/lib/helpers/index.mjs +8 -8
- package/esm2020/lib/helpers/utils.mjs +7 -7
- package/esm2020/lib/interceptors/add-lang-param.interceptor.mjs +35 -35
- package/esm2020/lib/interceptors/cache-prevention.interceptor.mjs +21 -21
- package/esm2020/lib/interceptors/cors-security.interceptor.mjs +15 -15
- package/esm2020/lib/interceptors/csrf-prevention.interceptor.mjs +15 -15
- package/esm2020/lib/interceptors/eu-login-session-timeout-handling.interceptor.mjs +72 -72
- package/esm2020/lib/interceptors/index.mjs +8 -8
- package/esm2020/lib/interceptors/openid/index.mjs +4 -4
- package/esm2020/lib/interceptors/openid/openid-connect.interceptor.mjs +149 -149
- package/esm2020/lib/interceptors/openid/openid-connect.service.mjs +56 -56
- package/esm2020/lib/interceptors/openid/openid-connect.service.mock.mjs +8 -8
- package/esm2020/lib/interceptors/ux-request-error-model.interceptor.mjs +31 -31
- package/esm2020/lib/services/app/eui-init-app.mjs +29 -29
- package/esm2020/lib/services/app/eui-pre-init-app.mjs +43 -43
- package/esm2020/lib/services/app/eui-startup.mjs +40 -40
- package/esm2020/lib/services/app/factories/log.mjs +55 -55
- package/esm2020/lib/services/app/index.mjs +2 -2
- package/esm2020/lib/services/config/defaults.mjs +68 -68
- package/esm2020/lib/services/config/tokens.mjs +74 -74
- package/esm2020/lib/services/errors/eui.error.mjs +38 -38
- package/esm2020/lib/services/errors/global-error-handler.mjs +24 -24
- package/esm2020/lib/services/errors/http-error-handler-callback-functions.mjs +17 -17
- package/esm2020/lib/services/errors/http-error-handler.interceptor.mjs +55 -55
- package/esm2020/lib/services/errors/index.mjs +5 -5
- package/esm2020/lib/services/i18n/i18n.loader.mjs +198 -198
- package/esm2020/lib/services/i18n/i18n.resource.mjs +43 -43
- package/esm2020/lib/services/i18n/i18n.service.mjs +228 -228
- package/esm2020/lib/services/i18n/i18n.service.mock.mjs +38 -38
- package/esm2020/lib/services/i18n/index.mjs +6 -6
- package/esm2020/lib/services/index.mjs +19 -19
- package/esm2020/lib/services/locale/index.mjs +3 -3
- package/esm2020/lib/services/locale/locale.service.mjs +232 -232
- package/esm2020/lib/services/locale/locale.service.mock.mjs +43 -43
- package/esm2020/lib/services/log/index.mjs +4 -4
- package/esm2020/lib/services/log/log.module.mjs +38 -38
- package/esm2020/lib/services/log/log.service.mjs +51 -51
- package/esm2020/lib/services/log/log.service.mock.mjs +7 -7
- package/esm2020/lib/services/permission/permission.service.mjs +110 -110
- package/esm2020/lib/services/queue/api-queue.service.mjs +137 -137
- package/esm2020/lib/services/queue/api-queue.service.mock.mjs +23 -23
- package/esm2020/lib/services/queue/index.mjs +3 -3
- package/esm2020/lib/services/storage/async-storage.service.mjs +17 -17
- package/esm2020/lib/services/storage/async-storage.service.mock.mjs +22 -22
- package/esm2020/lib/services/storage/index.mjs +8 -8
- package/esm2020/lib/services/storage/local-forage.service.mjs +93 -93
- package/esm2020/lib/services/storage/local-storage.service.mjs +75 -75
- package/esm2020/lib/services/storage/session-storage.service.mjs +75 -75
- package/esm2020/lib/services/storage/storage.service.mjs +6 -6
- package/esm2020/lib/services/storage/storage.service.mock.mjs +12 -12
- package/esm2020/lib/services/store/actions/app.actions.mjs +74 -74
- package/esm2020/lib/services/store/actions/i18n.actions.mjs +11 -11
- package/esm2020/lib/services/store/actions/index.mjs +6 -6
- package/esm2020/lib/services/store/actions/locale.actions.mjs +11 -11
- package/esm2020/lib/services/store/actions/notifications.actions.mjs +11 -11
- package/esm2020/lib/services/store/actions/user.actions.mjs +39 -39
- package/esm2020/lib/services/store/effects/app.effects.mjs +55 -55
- package/esm2020/lib/services/store/effects/index.mjs +4 -4
- package/esm2020/lib/services/store/index.mjs +6 -6
- package/esm2020/lib/services/store/reducers/app.reducers.mjs +56 -56
- package/esm2020/lib/services/store/reducers/core.reducers.mjs +13 -13
- package/esm2020/lib/services/store/reducers/i18n.reducers.mjs +16 -16
- package/esm2020/lib/services/store/reducers/index.mjs +8 -8
- package/esm2020/lib/services/store/reducers/locale.reducers.mjs +16 -16
- package/esm2020/lib/services/store/reducers/meta.reducers.mjs +89 -89
- package/esm2020/lib/services/store/reducers/notifications.reducers.mjs +13 -13
- package/esm2020/lib/services/store/reducers/user.reducers.mjs +43 -43
- package/esm2020/lib/services/store/store.service.mjs +112 -112
- package/esm2020/lib/services/store/store.service.mock.mjs +22 -22
- package/esm2020/lib/services/user/index.mjs +3 -3
- package/esm2020/lib/services/user/user.service.mjs +64 -64
- package/esm2020/lib/services/user/user.service.mock.mjs +32 -32
- package/esm2020/lib/services/ux-app-shell.service.mjs +690 -690
- package/esm2020/lib/services/ux-dynamic-component/ux-dynamic-component.service.mjs +63 -63
- package/esm2020/lib/services/ux-dynamic-menu/ux-dynamic-menu.service.mjs +66 -66
- package/esm2020/lib/services/ux-error-feedback/ux-error-feedback.service.mjs +99 -99
- package/esm2020/lib/services/ux-error-feedback/ux-error-handler.operator.mjs +16 -16
- package/esm2020/lib/services/ux-timezone.service.mjs +716 -716
- package/fesm2015/eui-core.mjs +4484 -4484
- package/fesm2015/eui-core.mjs.map +1 -1
- package/fesm2020/eui-core.mjs +4538 -4538
- package/fesm2020/eui-core.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/eui-core.module.d.ts +20 -20
- package/lib/helpers/date-helpers.d.ts +2 -2
- package/lib/helpers/dom-helpers.d.ts +26 -26
- package/lib/helpers/event-helpers.d.ts +1 -1
- package/lib/helpers/form-helpers.d.ts +10 -10
- package/lib/helpers/format-helpers.d.ts +12 -12
- package/lib/helpers/http-helpers.d.ts +2 -2
- package/lib/helpers/index.d.ts +7 -7
- package/lib/helpers/utils.d.ts +6 -6
- package/lib/interceptors/add-lang-param.interceptor.d.ts +16 -16
- package/lib/interceptors/cache-prevention.interceptor.d.ts +8 -8
- package/lib/interceptors/cors-security.interceptor.d.ts +8 -8
- package/lib/interceptors/csrf-prevention.interceptor.d.ts +8 -8
- package/lib/interceptors/eu-login-session-timeout-handling.interceptor.d.ts +12 -12
- package/lib/interceptors/index.d.ts +7 -7
- package/lib/interceptors/openid/index.d.ts +3 -3
- package/lib/interceptors/openid/openid-connect.interceptor.d.ts +14 -14
- package/lib/interceptors/openid/openid-connect.service.d.ts +17 -17
- package/lib/interceptors/openid/openid-connect.service.mock.d.ts +5 -5
- package/lib/interceptors/ux-request-error-model.interceptor.d.ts +13 -13
- package/lib/services/app/eui-init-app.d.ts +2 -2
- package/lib/services/app/eui-pre-init-app.d.ts +16 -16
- package/lib/services/app/eui-startup.d.ts +4 -4
- package/lib/services/app/factories/log.d.ts +25 -25
- package/lib/services/app/index.d.ts +1 -1
- package/lib/services/config/defaults.d.ts +11 -11
- package/lib/services/config/tokens.d.ts +19 -19
- package/lib/services/errors/eui.error.d.ts +15 -15
- package/lib/services/errors/global-error-handler.d.ts +10 -10
- package/lib/services/errors/http-error-handler-callback-functions.d.ts +6 -6
- package/lib/services/errors/http-error-handler.interceptor.d.ts +22 -22
- package/lib/services/errors/index.d.ts +4 -4
- package/lib/services/i18n/i18n.loader.d.ts +79 -79
- package/lib/services/i18n/i18n.resource.d.ts +35 -35
- package/lib/services/i18n/i18n.service.d.ts +73 -73
- package/lib/services/i18n/i18n.service.mock.d.ts +19 -19
- package/lib/services/i18n/index.d.ts +4 -4
- package/lib/services/index.d.ts +18 -18
- package/lib/services/locale/index.d.ts +2 -2
- package/lib/services/locale/locale.service.d.ts +68 -68
- package/lib/services/locale/locale.service.mock.d.ts +15 -15
- package/lib/services/log/index.d.ts +3 -3
- package/lib/services/log/log.module.d.ts +15 -15
- package/lib/services/log/log.service.d.ts +27 -27
- package/lib/services/log/log.service.mock.d.ts +4 -4
- package/lib/services/permission/permission.service.d.ts +52 -52
- package/lib/services/queue/api-queue.service.d.ts +76 -76
- package/lib/services/queue/api-queue.service.mock.d.ts +13 -13
- package/lib/services/queue/index.d.ts +2 -2
- package/lib/services/storage/async-storage.service.d.ts +44 -44
- package/lib/services/storage/async-storage.service.mock.d.ts +11 -11
- package/lib/services/storage/index.d.ts +7 -7
- package/lib/services/storage/local-forage.service.d.ts +48 -48
- package/lib/services/storage/local-storage.service.d.ts +34 -34
- package/lib/services/storage/session-storage.service.d.ts +34 -34
- package/lib/services/storage/storage.service.d.ts +28 -28
- package/lib/services/storage/storage.service.mock.d.ts +7 -7
- package/lib/services/store/actions/app.actions.d.ts +82 -82
- package/lib/services/store/actions/i18n.actions.d.ts +11 -11
- package/lib/services/store/actions/index.d.ts +5 -5
- package/lib/services/store/actions/locale.actions.d.ts +11 -11
- package/lib/services/store/actions/notifications.actions.d.ts +10 -10
- package/lib/services/store/actions/user.actions.d.ts +35 -35
- package/lib/services/store/effects/app.effects.d.ts +19 -19
- package/lib/services/store/effects/index.d.ts +3 -3
- package/lib/services/store/index.d.ts +5 -5
- package/lib/services/store/reducers/app.reducers.d.ts +3 -3
- package/lib/services/store/reducers/core.reducers.d.ts +3 -3
- package/lib/services/store/reducers/i18n.reducers.d.ts +3 -3
- package/lib/services/store/reducers/index.d.ts +7 -7
- package/lib/services/store/reducers/locale.reducers.d.ts +3 -3
- package/lib/services/store/reducers/meta.reducers.d.ts +17 -17
- package/lib/services/store/reducers/notifications.reducers.d.ts +3 -3
- package/lib/services/store/reducers/user.reducers.d.ts +3 -3
- package/lib/services/store/store.service.d.ts +43 -43
- package/lib/services/store/store.service.mock.d.ts +12 -12
- package/lib/services/user/index.d.ts +2 -2
- package/lib/services/user/user.service.d.ts +15 -15
- package/lib/services/user/user.service.mock.d.ts +16 -16
- package/lib/services/ux-app-shell.service.d.ts +155 -155
- package/lib/services/ux-dynamic-component/ux-dynamic-component.service.d.ts +36 -36
- package/lib/services/ux-dynamic-menu/ux-dynamic-menu.service.d.ts +14 -14
- package/lib/services/ux-error-feedback/ux-error-feedback.service.d.ts +35 -35
- package/lib/services/ux-error-feedback/ux-error-handler.operator.d.ts +3 -3
- package/lib/services/ux-timezone.service.d.ts +269 -269
- package/package.json +2 -2
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
import { FormArray, FormGroup } from '@angular/forms';
|
|
2
|
-
const forOwn = (object, iteratee) => {
|
|
3
|
-
object = Object(object);
|
|
4
|
-
Object.keys(object).forEach((key) => iteratee(object[key], key, object));
|
|
5
|
-
};
|
|
6
|
-
export const markFormGroupTouched = (FormControls) => {
|
|
7
|
-
const markFormGroupTouchedRecursive = (controls) => {
|
|
8
|
-
forOwn(controls, (c) => {
|
|
9
|
-
if (c instanceof FormGroup || c instanceof FormArray) {
|
|
10
|
-
markFormGroupTouchedRecursive(c.controls);
|
|
11
|
-
}
|
|
12
|
-
else {
|
|
13
|
-
c.markAsTouched();
|
|
14
|
-
c.updateValueAndValidity();
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
};
|
|
18
|
-
markFormGroupTouchedRecursive(FormControls);
|
|
19
|
-
};
|
|
20
|
-
export const markControlsTouched = (group) => {
|
|
21
|
-
Object.keys(group.controls).forEach((key) => {
|
|
22
|
-
const abstractControl = group.controls[key];
|
|
23
|
-
if (abstractControl instanceof FormGroup || abstractControl instanceof FormArray) {
|
|
24
|
-
markControlsTouched(abstractControl);
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
abstractControl.markAsTouched();
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
};
|
|
31
|
-
export const validateEmail = (c) => {
|
|
32
|
-
const EMAIL_REGEXP =
|
|
33
|
-
// eslint-disable-next-line max-len, no-useless-escape
|
|
34
|
-
/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
|
35
|
-
const error = {
|
|
36
|
-
validateEmail: {
|
|
37
|
-
valid: false,
|
|
38
|
-
},
|
|
39
|
-
};
|
|
40
|
-
return EMAIL_REGEXP.test(c.value) ? null : error;
|
|
41
|
-
};
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { FormArray, FormGroup } from '@angular/forms';
|
|
2
|
+
const forOwn = (object, iteratee) => {
|
|
3
|
+
object = Object(object);
|
|
4
|
+
Object.keys(object).forEach((key) => iteratee(object[key], key, object));
|
|
5
|
+
};
|
|
6
|
+
export const markFormGroupTouched = (FormControls) => {
|
|
7
|
+
const markFormGroupTouchedRecursive = (controls) => {
|
|
8
|
+
forOwn(controls, (c) => {
|
|
9
|
+
if (c instanceof FormGroup || c instanceof FormArray) {
|
|
10
|
+
markFormGroupTouchedRecursive(c.controls);
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
c.markAsTouched();
|
|
14
|
+
c.updateValueAndValidity();
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
markFormGroupTouchedRecursive(FormControls);
|
|
19
|
+
};
|
|
20
|
+
export const markControlsTouched = (group) => {
|
|
21
|
+
Object.keys(group.controls).forEach((key) => {
|
|
22
|
+
const abstractControl = group.controls[key];
|
|
23
|
+
if (abstractControl instanceof FormGroup || abstractControl instanceof FormArray) {
|
|
24
|
+
markControlsTouched(abstractControl);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
abstractControl.markAsTouched();
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
export const validateEmail = (c) => {
|
|
32
|
+
const EMAIL_REGEXP =
|
|
33
|
+
// eslint-disable-next-line max-len, no-useless-escape
|
|
34
|
+
/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
|
35
|
+
const error = {
|
|
36
|
+
validateEmail: {
|
|
37
|
+
valid: false,
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
return EMAIL_REGEXP.test(c.value) ? null : error;
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9oZWxwZXJzL2Zvcm0taGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1CLFNBQVMsRUFBZSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRixNQUFNLE1BQU0sR0FBRyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRTtJQUNoQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQzdFLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsWUFBb0UsRUFBUSxFQUFFO0lBQy9HLE1BQU0sNkJBQTZCLEdBQUcsQ0FBQyxRQUFnRSxFQUFRLEVBQUU7UUFDN0csTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ25CLElBQUksQ0FBQyxZQUFZLFNBQVMsSUFBSSxDQUFDLFlBQVksU0FBUyxFQUFFO2dCQUNsRCw2QkFBNkIsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDN0M7aUJBQU07Z0JBQ0gsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNsQixDQUFDLENBQUMsc0JBQXNCLEVBQUUsQ0FBQzthQUM5QjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDO0lBQ0YsNkJBQTZCLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDaEQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxLQUE0QixFQUFRLEVBQUU7SUFDdEUsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUU7UUFDaEQsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QyxJQUFJLGVBQWUsWUFBWSxTQUFTLElBQUksZUFBZSxZQUFZLFNBQVMsRUFBRTtZQUM5RSxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUN4QzthQUFNO1lBQ0gsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ25DO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFjLEVBQUUsRUFBRTtJQUM1QyxNQUFNLFlBQVk7SUFDZCxzREFBc0Q7SUFDdEQsd0pBQXdKLENBQUM7SUFFN0osTUFBTSxLQUFLLEdBQUc7UUFDVixhQUFhLEVBQUU7WUFDWCxLQUFLLEVBQUUsS0FBSztTQUNmO0tBQ0osQ0FBQztJQUNGLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQ3JELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuY29uc3QgZm9yT3duID0gKG9iamVjdCwgaXRlcmF0ZWUpID0+IHtcclxuICAgIG9iamVjdCA9IE9iamVjdChvYmplY3QpO1xyXG4gICAgT2JqZWN0LmtleXMob2JqZWN0KS5mb3JFYWNoKChrZXkpID0+IGl0ZXJhdGVlKG9iamVjdFtrZXldLCBrZXksIG9iamVjdCkpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IG1hcmtGb3JtR3JvdXBUb3VjaGVkID0gKEZvcm1Db250cm9sczogeyBba2V5OiBzdHJpbmddOiBBYnN0cmFjdENvbnRyb2wgfSB8IEFic3RyYWN0Q29udHJvbFtdKTogdm9pZCA9PiB7XHJcbiAgICBjb25zdCBtYXJrRm9ybUdyb3VwVG91Y2hlZFJlY3Vyc2l2ZSA9IChjb250cm9sczogeyBba2V5OiBzdHJpbmddOiBBYnN0cmFjdENvbnRyb2wgfSB8IEFic3RyYWN0Q29udHJvbFtdKTogdm9pZCA9PiB7XHJcbiAgICAgICAgZm9yT3duKGNvbnRyb2xzLCAoYykgPT4ge1xyXG4gICAgICAgICAgICBpZiAoYyBpbnN0YW5jZW9mIEZvcm1Hcm91cCB8fCBjIGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XHJcbiAgICAgICAgICAgICAgICBtYXJrRm9ybUdyb3VwVG91Y2hlZFJlY3Vyc2l2ZShjLmNvbnRyb2xzKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGMubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgICAgICAgICAgYy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH07XHJcbiAgICBtYXJrRm9ybUdyb3VwVG91Y2hlZFJlY3Vyc2l2ZShGb3JtQ29udHJvbHMpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IG1hcmtDb250cm9sc1RvdWNoZWQgPSAoZ3JvdXA6IEZvcm1Hcm91cCB8IEZvcm1BcnJheSk6IHZvaWQgPT4ge1xyXG4gICAgT2JqZWN0LmtleXMoZ3JvdXAuY29udHJvbHMpLmZvckVhY2goKGtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgY29uc3QgYWJzdHJhY3RDb250cm9sID0gZ3JvdXAuY29udHJvbHNba2V5XTtcclxuICAgICAgICBpZiAoYWJzdHJhY3RDb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwIHx8IGFic3RyYWN0Q29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xyXG4gICAgICAgICAgICBtYXJrQ29udHJvbHNUb3VjaGVkKGFic3RyYWN0Q29udHJvbCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgYWJzdHJhY3RDb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCB2YWxpZGF0ZUVtYWlsID0gKGM6IEZvcm1Db250cm9sKSA9PiB7XHJcbiAgICBjb25zdCBFTUFJTF9SRUdFWFAgPVxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuLCBuby11c2VsZXNzLWVzY2FwZVxyXG4gICAgICAgIC9eKChbXjw+KClcXFtcXF1cXFxcLiw7Olxcc0BcIl0rKFxcLltePD4oKVxcW1xcXVxcXFwuLDs6XFxzQFwiXSspKil8KFwiLitcIikpQCgoXFxbWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfV0pfCgoW2EtekEtWlxcLTAtOV0rXFwuKStbYS16QS1aXXsyLH0pKSQvO1xyXG5cclxuICAgIGNvbnN0IGVycm9yID0ge1xyXG4gICAgICAgIHZhbGlkYXRlRW1haWw6IHtcclxuICAgICAgICAgICAgdmFsaWQ6IGZhbHNlLFxyXG4gICAgICAgIH0sXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIEVNQUlMX1JFR0VYUC50ZXN0KGMudmFsdWUpID8gbnVsbCA6IGVycm9yO1xyXG59O1xyXG4iXX0=
|
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* returns a random string with radix=36
|
|
3
|
-
*/
|
|
4
|
-
export const uniqueId = () => Math.random().toString(36).substr(2, 9);
|
|
5
|
-
/**
|
|
6
|
-
* Its job is to parse number and format it based on given input.
|
|
7
|
-
* @param value can be a number or a string number
|
|
8
|
-
* @param fractionSize size of fraction of a number e.g. 1000.88 fraction is 2 (88) default is 2
|
|
9
|
-
* @param inDecimalSeparator separator for decimal part of the number default is ','
|
|
10
|
-
* @param inThousandSeparator separator for the whole part of the number default is ''
|
|
11
|
-
*/
|
|
12
|
-
export const formatNumber = (value, fractionSize = 2, inDecimalSeparator = ',', inThousandSeparator = '') => {
|
|
13
|
-
if (inDecimalSeparator || inThousandSeparator) {
|
|
14
|
-
console.warn('The inDecimalSeparator and inThousandSeparator are deprecated. They will be a ' +
|
|
15
|
-
'BREAKING CHANGE for eUI 9 and be replaced by localization strategy.');
|
|
16
|
-
}
|
|
17
|
-
let decimalSeparator = '';
|
|
18
|
-
let thousandsSeparator = '';
|
|
19
|
-
if (value === null || value === undefined) {
|
|
20
|
-
return null;
|
|
21
|
-
}
|
|
22
|
-
if (typeof value === 'string') {
|
|
23
|
-
// get all non characters
|
|
24
|
-
let nonChars = value.match(/[^0-9]+/g) || [];
|
|
25
|
-
// get all unique chars
|
|
26
|
-
let uniqueChars = nonChars.reduce((acc, e) => acc.set(e, (acc.get(e) || 0) + 1), new Map());
|
|
27
|
-
// get separators
|
|
28
|
-
let separators = Array.from(uniqueChars.keys());
|
|
29
|
-
// sense where decimal separator and where thousand separator is
|
|
30
|
-
if (separators.length > 1) {
|
|
31
|
-
// left detected separator will be thousand and second will be decimal
|
|
32
|
-
thousandsSeparator = separators[0];
|
|
33
|
-
decimalSeparator = separators[1];
|
|
34
|
-
}
|
|
35
|
-
else if (separators.length > 0) {
|
|
36
|
-
// in case there is only one separator you don't know exactly who this separator is.
|
|
37
|
-
// in case there are more than two occurrences means we have a thousand otherwise we'll
|
|
38
|
-
// agree by conventions that is decimal
|
|
39
|
-
if (nonChars.length > 1) {
|
|
40
|
-
return value
|
|
41
|
-
.split(separators[0])
|
|
42
|
-
.join('')
|
|
43
|
-
.replace(/\B(?=(\d{3})+(?!\d))/g, inThousandSeparator);
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
return value.replace(separators[0], inDecimalSeparator).replace(/\B(?=(\d{3})+(?!\d))/g, inThousandSeparator);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
// in case there are no separators then only format based on thousand one
|
|
51
|
-
return value.replace(/\B(?=(\d{3})+(?!\d))/g, inThousandSeparator);
|
|
52
|
-
}
|
|
53
|
-
// do the replacement of separators and parseInt
|
|
54
|
-
// Beware! Always replace thousand separator first and then decimal
|
|
55
|
-
value = value.split(thousandsSeparator).join('').replace(decimalSeparator, '.');
|
|
56
|
-
}
|
|
57
|
-
decimalSeparator = inDecimalSeparator;
|
|
58
|
-
thousandsSeparator = inThousandSeparator;
|
|
59
|
-
const maxFraction = '0'.repeat(fractionSize);
|
|
60
|
-
let [integer, fraction = maxFraction] = (value || '0').toString().split('.');
|
|
61
|
-
fraction = fractionSize > 0 ? (fraction + maxFraction).substring(0, fractionSize) : '';
|
|
62
|
-
// this rule makes sense only in number in case fraction is all zero
|
|
63
|
-
fraction = typeof value === 'number' && fraction === maxFraction ? '' : decimalSeparator + fraction;
|
|
64
|
-
return integer.replace(/\B(?=(\d{3})+(?!\d))/g, thousandsSeparator) + fraction;
|
|
65
|
-
};
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
/**
|
|
2
|
+
* returns a random string with radix=36
|
|
3
|
+
*/
|
|
4
|
+
export const uniqueId = () => Math.random().toString(36).substr(2, 9);
|
|
5
|
+
/**
|
|
6
|
+
* Its job is to parse number and format it based on given input.
|
|
7
|
+
* @param value can be a number or a string number
|
|
8
|
+
* @param fractionSize size of fraction of a number e.g. 1000.88 fraction is 2 (88) default is 2
|
|
9
|
+
* @param inDecimalSeparator separator for decimal part of the number default is ','
|
|
10
|
+
* @param inThousandSeparator separator for the whole part of the number default is ''
|
|
11
|
+
*/
|
|
12
|
+
export const formatNumber = (value, fractionSize = 2, inDecimalSeparator = ',', inThousandSeparator = '') => {
|
|
13
|
+
if (inDecimalSeparator || inThousandSeparator) {
|
|
14
|
+
console.warn('The inDecimalSeparator and inThousandSeparator are deprecated. They will be a ' +
|
|
15
|
+
'BREAKING CHANGE for eUI 9 and be replaced by localization strategy.');
|
|
16
|
+
}
|
|
17
|
+
let decimalSeparator = '';
|
|
18
|
+
let thousandsSeparator = '';
|
|
19
|
+
if (value === null || value === undefined) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
if (typeof value === 'string') {
|
|
23
|
+
// get all non characters
|
|
24
|
+
let nonChars = value.match(/[^0-9]+/g) || [];
|
|
25
|
+
// get all unique chars
|
|
26
|
+
let uniqueChars = nonChars.reduce((acc, e) => acc.set(e, (acc.get(e) || 0) + 1), new Map());
|
|
27
|
+
// get separators
|
|
28
|
+
let separators = Array.from(uniqueChars.keys());
|
|
29
|
+
// sense where decimal separator and where thousand separator is
|
|
30
|
+
if (separators.length > 1) {
|
|
31
|
+
// left detected separator will be thousand and second will be decimal
|
|
32
|
+
thousandsSeparator = separators[0];
|
|
33
|
+
decimalSeparator = separators[1];
|
|
34
|
+
}
|
|
35
|
+
else if (separators.length > 0) {
|
|
36
|
+
// in case there is only one separator you don't know exactly who this separator is.
|
|
37
|
+
// in case there are more than two occurrences means we have a thousand otherwise we'll
|
|
38
|
+
// agree by conventions that is decimal
|
|
39
|
+
if (nonChars.length > 1) {
|
|
40
|
+
return value
|
|
41
|
+
.split(separators[0])
|
|
42
|
+
.join('')
|
|
43
|
+
.replace(/\B(?=(\d{3})+(?!\d))/g, inThousandSeparator);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
return value.replace(separators[0], inDecimalSeparator).replace(/\B(?=(\d{3})+(?!\d))/g, inThousandSeparator);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
// in case there are no separators then only format based on thousand one
|
|
51
|
+
return value.replace(/\B(?=(\d{3})+(?!\d))/g, inThousandSeparator);
|
|
52
|
+
}
|
|
53
|
+
// do the replacement of separators and parseInt
|
|
54
|
+
// Beware! Always replace thousand separator first and then decimal
|
|
55
|
+
value = value.split(thousandsSeparator).join('').replace(decimalSeparator, '.');
|
|
56
|
+
}
|
|
57
|
+
decimalSeparator = inDecimalSeparator;
|
|
58
|
+
thousandsSeparator = inThousandSeparator;
|
|
59
|
+
const maxFraction = '0'.repeat(fractionSize);
|
|
60
|
+
let [integer, fraction = maxFraction] = (value || '0').toString().split('.');
|
|
61
|
+
fraction = fractionSize > 0 ? (fraction + maxFraction).substring(0, fractionSize) : '';
|
|
62
|
+
// this rule makes sense only in number in case fraction is all zero
|
|
63
|
+
fraction = typeof value === 'number' && fraction === maxFraction ? '' : decimalSeparator + fraction;
|
|
64
|
+
return integer.replace(/\B(?=(\d{3})+(?!\d))/g, thousandsSeparator) + fraction;
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2hlbHBlcnMvZm9ybWF0LWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsR0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRTlFOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUN4QixLQUFzQixFQUN0QixlQUF1QixDQUFDLEVBQ3hCLHFCQUE2QixHQUFHLEVBQ2hDLHNCQUE4QixFQUFFLEVBQzFCLEVBQUU7SUFDUixJQUFJLGtCQUFrQixJQUFJLG1CQUFtQixFQUFFO1FBQzNDLE9BQU8sQ0FBQyxJQUFJLENBQ1IsZ0ZBQWdGO1lBQzVFLHFFQUFxRSxDQUM1RSxDQUFDO0tBQ0w7SUFFRCxJQUFJLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztJQUMxQixJQUFJLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztJQUU1QixJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtRQUN2QyxPQUFPLElBQUksQ0FBQztLQUNmO0lBRUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDM0IseUJBQXlCO1FBQ3pCLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRTdDLHVCQUF1QjtRQUN2QixJQUFJLFdBQVcsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztRQUU1RixpQkFBaUI7UUFDakIsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBUyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUV4RCxnRUFBZ0U7UUFDaEUsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN2QixzRUFBc0U7WUFDdEUsa0JBQWtCLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25DLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNwQzthQUFNLElBQUksVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDOUIsb0ZBQW9GO1lBQ3BGLHVGQUF1RjtZQUN2Rix1Q0FBdUM7WUFDdkMsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDckIsT0FBTyxLQUFLO3FCQUNQLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQ3BCLElBQUksQ0FBQyxFQUFFLENBQUM7cUJBQ1IsT0FBTyxDQUFDLHVCQUF1QixFQUFFLG1CQUFtQixDQUFDLENBQUM7YUFDOUQ7aUJBQU07Z0JBQ0gsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO2FBQ2pIO1NBQ0o7YUFBTTtZQUNILHlFQUF5RTtZQUN6RSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztTQUN0RTtRQUVELGdEQUFnRDtRQUNoRCxtRUFBbUU7UUFDbkUsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxDQUFDO0tBQ25GO0lBRUQsZ0JBQWdCLEdBQUcsa0JBQWtCLENBQUM7SUFDdEMsa0JBQWtCLEdBQUcsbUJBQW1CLENBQUM7SUFFekMsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUU3QyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0UsUUFBUSxHQUFHLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUV2RixvRUFBb0U7SUFDcEUsUUFBUSxHQUFHLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxRQUFRLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQztJQUVwRyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsa0JBQWtCLENBQUMsR0FBRyxRQUFRLENBQUM7QUFDbkYsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIHJldHVybnMgYSByYW5kb20gc3RyaW5nIHdpdGggcmFkaXg9MzZcclxuICovXHJcbmV4cG9ydCBjb25zdCB1bmlxdWVJZCA9ICgpOiBzdHJpbmcgPT4gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDkpO1xyXG5cclxuLyoqXHJcbiAqIEl0cyBqb2IgaXMgdG8gcGFyc2UgbnVtYmVyIGFuZCBmb3JtYXQgaXQgYmFzZWQgb24gZ2l2ZW4gaW5wdXQuXHJcbiAqIEBwYXJhbSB2YWx1ZSBjYW4gYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcgbnVtYmVyXHJcbiAqIEBwYXJhbSBmcmFjdGlvblNpemUgc2l6ZSBvZiBmcmFjdGlvbiBvZiBhIG51bWJlciBlLmcuIDEwMDAuODggZnJhY3Rpb24gaXMgMiAoODgpICBkZWZhdWx0IGlzIDJcclxuICogQHBhcmFtIGluRGVjaW1hbFNlcGFyYXRvciBzZXBhcmF0b3IgZm9yIGRlY2ltYWwgcGFydCBvZiB0aGUgbnVtYmVyIGRlZmF1bHQgaXMgJywnXHJcbiAqIEBwYXJhbSBpblRob3VzYW5kU2VwYXJhdG9yIHNlcGFyYXRvciBmb3IgdGhlIHdob2xlIHBhcnQgb2YgdGhlIG51bWJlciBkZWZhdWx0IGlzICcnXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZm9ybWF0TnVtYmVyID0gKFxyXG4gICAgdmFsdWU6IG51bWJlciB8IHN0cmluZyxcclxuICAgIGZyYWN0aW9uU2l6ZTogbnVtYmVyID0gMixcclxuICAgIGluRGVjaW1hbFNlcGFyYXRvcjogc3RyaW5nID0gJywnLFxyXG4gICAgaW5UaG91c2FuZFNlcGFyYXRvcjogc3RyaW5nID0gJydcclxuKTogc3RyaW5nID0+IHtcclxuICAgIGlmIChpbkRlY2ltYWxTZXBhcmF0b3IgfHwgaW5UaG91c2FuZFNlcGFyYXRvcikge1xyXG4gICAgICAgIGNvbnNvbGUud2FybihcclxuICAgICAgICAgICAgJ1RoZSBpbkRlY2ltYWxTZXBhcmF0b3IgYW5kIGluVGhvdXNhbmRTZXBhcmF0b3IgYXJlIGRlcHJlY2F0ZWQuIFRoZXkgd2lsbCBiZSBhICcgK1xyXG4gICAgICAgICAgICAgICAgJ0JSRUFLSU5HIENIQU5HRSBmb3IgZVVJIDkgYW5kIGJlIHJlcGxhY2VkIGJ5IGxvY2FsaXphdGlvbiBzdHJhdGVneS4nXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgZGVjaW1hbFNlcGFyYXRvciA9ICcnO1xyXG4gICAgbGV0IHRob3VzYW5kc1NlcGFyYXRvciA9ICcnO1xyXG5cclxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAvLyBnZXQgYWxsIG5vbiBjaGFyYWN0ZXJzXHJcbiAgICAgICAgbGV0IG5vbkNoYXJzID0gdmFsdWUubWF0Y2goL1teMC05XSsvZykgfHwgW107XHJcblxyXG4gICAgICAgIC8vIGdldCBhbGwgdW5pcXVlIGNoYXJzXHJcbiAgICAgICAgbGV0IHVuaXF1ZUNoYXJzID0gbm9uQ2hhcnMucmVkdWNlKChhY2MsIGUpID0+IGFjYy5zZXQoZSwgKGFjYy5nZXQoZSkgfHwgMCkgKyAxKSwgbmV3IE1hcCgpKTtcclxuXHJcbiAgICAgICAgLy8gZ2V0IHNlcGFyYXRvcnNcclxuICAgICAgICBsZXQgc2VwYXJhdG9ycyA9IEFycmF5LmZyb208c3RyaW5nPih1bmlxdWVDaGFycy5rZXlzKCkpO1xyXG5cclxuICAgICAgICAvLyBzZW5zZSB3aGVyZSBkZWNpbWFsIHNlcGFyYXRvciBhbmQgd2hlcmUgdGhvdXNhbmQgc2VwYXJhdG9yIGlzXHJcbiAgICAgICAgaWYgKHNlcGFyYXRvcnMubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICAvLyBsZWZ0IGRldGVjdGVkIHNlcGFyYXRvciB3aWxsIGJlIHRob3VzYW5kIGFuZCBzZWNvbmQgd2lsbCBiZSBkZWNpbWFsXHJcbiAgICAgICAgICAgIHRob3VzYW5kc1NlcGFyYXRvciA9IHNlcGFyYXRvcnNbMF07XHJcbiAgICAgICAgICAgIGRlY2ltYWxTZXBhcmF0b3IgPSBzZXBhcmF0b3JzWzFdO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoc2VwYXJhdG9ycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIC8vIGluIGNhc2UgdGhlcmUgaXMgb25seSBvbmUgc2VwYXJhdG9yIHlvdSBkb24ndCBrbm93IGV4YWN0bHkgd2hvIHRoaXMgc2VwYXJhdG9yIGlzLlxyXG4gICAgICAgICAgICAvLyBpbiBjYXNlIHRoZXJlIGFyZSBtb3JlIHRoYW4gdHdvIG9jY3VycmVuY2VzIG1lYW5zIHdlIGhhdmUgYSB0aG91c2FuZCBvdGhlcndpc2Ugd2UnbGxcclxuICAgICAgICAgICAgLy8gYWdyZWUgYnkgY29udmVudGlvbnMgdGhhdCBpcyBkZWNpbWFsXHJcbiAgICAgICAgICAgIGlmIChub25DaGFycy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVcclxuICAgICAgICAgICAgICAgICAgICAuc3BsaXQoc2VwYXJhdG9yc1swXSlcclxuICAgICAgICAgICAgICAgICAgICAuam9pbignJylcclxuICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxCKD89KFxcZHszfSkrKD8hXFxkKSkvZywgaW5UaG91c2FuZFNlcGFyYXRvcik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUucmVwbGFjZShzZXBhcmF0b3JzWzBdLCBpbkRlY2ltYWxTZXBhcmF0b3IpLnJlcGxhY2UoL1xcQig/PShcXGR7M30pKyg/IVxcZCkpL2csIGluVGhvdXNhbmRTZXBhcmF0b3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gaW4gY2FzZSB0aGVyZSBhcmUgbm8gc2VwYXJhdG9ycyB0aGVuIG9ubHkgZm9ybWF0IGJhc2VkIG9uIHRob3VzYW5kIG9uZVxyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgvXFxCKD89KFxcZHszfSkrKD8hXFxkKSkvZywgaW5UaG91c2FuZFNlcGFyYXRvcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBkbyB0aGUgcmVwbGFjZW1lbnQgb2Ygc2VwYXJhdG9ycyBhbmQgcGFyc2VJbnRcclxuICAgICAgICAvLyBCZXdhcmUhIEFsd2F5cyByZXBsYWNlIHRob3VzYW5kIHNlcGFyYXRvciBmaXJzdCBhbmQgdGhlbiBkZWNpbWFsXHJcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCh0aG91c2FuZHNTZXBhcmF0b3IpLmpvaW4oJycpLnJlcGxhY2UoZGVjaW1hbFNlcGFyYXRvciwgJy4nKTtcclxuICAgIH1cclxuXHJcbiAgICBkZWNpbWFsU2VwYXJhdG9yID0gaW5EZWNpbWFsU2VwYXJhdG9yO1xyXG4gICAgdGhvdXNhbmRzU2VwYXJhdG9yID0gaW5UaG91c2FuZFNlcGFyYXRvcjtcclxuXHJcbiAgICBjb25zdCBtYXhGcmFjdGlvbiA9ICcwJy5yZXBlYXQoZnJhY3Rpb25TaXplKTtcclxuXHJcbiAgICBsZXQgW2ludGVnZXIsIGZyYWN0aW9uID0gbWF4RnJhY3Rpb25dID0gKHZhbHVlIHx8ICcwJykudG9TdHJpbmcoKS5zcGxpdCgnLicpO1xyXG4gICAgZnJhY3Rpb24gPSBmcmFjdGlvblNpemUgPiAwID8gKGZyYWN0aW9uICsgbWF4RnJhY3Rpb24pLnN1YnN0cmluZygwLCBmcmFjdGlvblNpemUpIDogJyc7XHJcblxyXG4gICAgLy8gdGhpcyBydWxlIG1ha2VzIHNlbnNlIG9ubHkgaW4gbnVtYmVyIGluIGNhc2UgZnJhY3Rpb24gaXMgYWxsIHplcm9cclxuICAgIGZyYWN0aW9uID0gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiBmcmFjdGlvbiA9PT0gbWF4RnJhY3Rpb24gPyAnJyA6IGRlY2ltYWxTZXBhcmF0b3IgKyBmcmFjdGlvbjtcclxuXHJcbiAgICByZXR1cm4gaW50ZWdlci5yZXBsYWNlKC9cXEIoPz0oXFxkezN9KSsoPyFcXGQpKS9nLCB0aG91c2FuZHNTZXBhcmF0b3IpICsgZnJhY3Rpb247XHJcbn07XHJcbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { throwError } from 'rxjs';
|
|
2
|
-
export const handleError = (error) => {
|
|
3
|
-
let errMsg = error.message ? error.message : error.status ? `${error.status} - ${error.statusText}` : 'Server error';
|
|
4
|
-
// console.error(errMsg);
|
|
5
|
-
return throwError(errMsg);
|
|
6
|
-
};
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { throwError } from 'rxjs';
|
|
2
|
+
export const handleError = (error) => {
|
|
3
|
+
let errMsg = error.message ? error.message : error.status ? `${error.status} - ${error.statusText}` : 'Server error';
|
|
4
|
+
// console.error(errMsg);
|
|
5
|
+
return throwError(errMsg);
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9oZWxwZXJzL2h0dHAtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTlDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQVUsRUFBcUIsRUFBRTtJQUN6RCxJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLE1BQU0sS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7SUFDckgseUJBQXlCO0lBQ3pCLE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcclxuXHJcbmV4cG9ydCBjb25zdCBoYW5kbGVFcnJvciA9IChlcnJvcjogYW55KTogT2JzZXJ2YWJsZTxuZXZlcj4gPT4ge1xyXG4gICAgbGV0IGVyck1zZyA9IGVycm9yLm1lc3NhZ2UgPyBlcnJvci5tZXNzYWdlIDogZXJyb3Iuc3RhdHVzID8gYCR7ZXJyb3Iuc3RhdHVzfSAtICR7ZXJyb3Iuc3RhdHVzVGV4dH1gIDogJ1NlcnZlciBlcnJvcic7XHJcbiAgICAvLyBjb25zb2xlLmVycm9yKGVyck1zZyk7XHJcbiAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJNc2cpO1xyXG59O1xyXG4iXX0=
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export * from './date-helpers';
|
|
2
|
-
export * from './dom-helpers';
|
|
3
|
-
export * from './event-helpers';
|
|
4
|
-
export * from './form-helpers';
|
|
5
|
-
export * from './format-helpers';
|
|
6
|
-
export * from './http-helpers';
|
|
7
|
-
export * from './utils';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export * from './date-helpers';
|
|
2
|
+
export * from './dom-helpers';
|
|
3
|
+
export * from './event-helpers';
|
|
4
|
+
export * from './form-helpers';
|
|
5
|
+
export * from './format-helpers';
|
|
6
|
+
export * from './http-helpers';
|
|
7
|
+
export * from './utils';
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2hlbHBlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kYXRlLWhlbHBlcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2RvbS1oZWxwZXJzJztcclxuZXhwb3J0ICogZnJvbSAnLi9ldmVudC1oZWxwZXJzJztcclxuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWhlbHBlcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Zvcm1hdC1oZWxwZXJzJztcclxuZXhwb3J0ICogZnJvbSAnLi9odHRwLWhlbHBlcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcclxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* check if a value is null or undefined. If it's not both returns true otherwise false
|
|
3
|
-
*
|
|
4
|
-
* @param value
|
|
5
|
-
*/
|
|
6
|
-
export const isDefined = (value) => value !== undefined && value !== null;
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
/**
|
|
2
|
+
* check if a value is null or undefined. If it's not both returns true otherwise false
|
|
3
|
+
*
|
|
4
|
+
* @param value
|
|
5
|
+
*/
|
|
6
|
+
export const isDefined = (value) => value !== undefined && value !== null;
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2hlbHBlcnMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFJLEtBQTJCLEVBQWMsRUFBRSxDQUFJLEtBQUssS0FBSyxTQUFTLElBQU8sS0FBSyxLQUFLLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBjaGVjayBpZiBhIHZhbHVlIGlzIG51bGwgb3IgdW5kZWZpbmVkLiBJZiBpdCdzIG5vdCBib3RoIHJldHVybnMgdHJ1ZSBvdGhlcndpc2UgZmFsc2VcclxuICpcclxuICogQHBhcmFtIHZhbHVlXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgaXNEZWZpbmVkID0gPFQ+KHZhbHVlOiBUIHwgdW5kZWZpbmVkIHwgbnVsbCk6IHZhbHVlIGlzIFQgPT4gPFQ+dmFsdWUgIT09IHVuZGVmaW5lZCAmJiA8VD52YWx1ZSAhPT0gbnVsbDtcclxuIl19
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@ngx-translate/core";
|
|
4
|
-
export const LANG_PARAM_KEY = 'X-Lang-Param';
|
|
5
|
-
/**
|
|
6
|
-
* Interceptor for adding the current language as parameter
|
|
7
|
-
* Add the header (LANG_PARAM_KEY, <language parameter>) to your request http headers
|
|
8
|
-
*/
|
|
9
|
-
export class AddLangParamInterceptor {
|
|
10
|
-
constructor(translateService) {
|
|
11
|
-
this.translateService = translateService;
|
|
12
|
-
}
|
|
13
|
-
intercept(req, next) {
|
|
14
|
-
// take the lang param name from header, if specified
|
|
15
|
-
const langParam = req.headers.get(LANG_PARAM_KEY);
|
|
16
|
-
// if not specified, do nothing
|
|
17
|
-
if (!langParam) {
|
|
18
|
-
return next.handle(req);
|
|
19
|
-
}
|
|
20
|
-
// take the current language from the translate service
|
|
21
|
-
const langValue = this.translateService.currentLang;
|
|
22
|
-
return next.handle(req.clone({
|
|
23
|
-
// remove the lang param header from headers
|
|
24
|
-
headers: req.headers.delete(LANG_PARAM_KEY),
|
|
25
|
-
// set the lang value as new parameter
|
|
26
|
-
params: req.params.set(langParam, langValue),
|
|
27
|
-
}));
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
/** @nocollapse */ AddLangParamInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AddLangParamInterceptor, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
31
|
-
/** @nocollapse */ AddLangParamInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AddLangParamInterceptor });
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AddLangParamInterceptor, decorators: [{
|
|
33
|
-
type: Injectable
|
|
34
|
-
}], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@ngx-translate/core";
|
|
4
|
+
export const LANG_PARAM_KEY = 'X-Lang-Param';
|
|
5
|
+
/**
|
|
6
|
+
* Interceptor for adding the current language as parameter
|
|
7
|
+
* Add the header (LANG_PARAM_KEY, <language parameter>) to your request http headers
|
|
8
|
+
*/
|
|
9
|
+
export class AddLangParamInterceptor {
|
|
10
|
+
constructor(translateService) {
|
|
11
|
+
this.translateService = translateService;
|
|
12
|
+
}
|
|
13
|
+
intercept(req, next) {
|
|
14
|
+
// take the lang param name from header, if specified
|
|
15
|
+
const langParam = req.headers.get(LANG_PARAM_KEY);
|
|
16
|
+
// if not specified, do nothing
|
|
17
|
+
if (!langParam) {
|
|
18
|
+
return next.handle(req);
|
|
19
|
+
}
|
|
20
|
+
// take the current language from the translate service
|
|
21
|
+
const langValue = this.translateService.currentLang;
|
|
22
|
+
return next.handle(req.clone({
|
|
23
|
+
// remove the lang param header from headers
|
|
24
|
+
headers: req.headers.delete(LANG_PARAM_KEY),
|
|
25
|
+
// set the lang value as new parameter
|
|
26
|
+
params: req.params.set(langParam, langValue),
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/** @nocollapse */ AddLangParamInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AddLangParamInterceptor, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
31
|
+
/** @nocollapse */ AddLangParamInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AddLangParamInterceptor });
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AddLangParamInterceptor, decorators: [{
|
|
33
|
+
type: Injectable
|
|
34
|
+
}], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWxhbmctcGFyYW0uaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2ludGVyY2VwdG9ycy9hZGQtbGFuZy1wYXJhbS5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFLM0MsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FBQztBQUU3Qzs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2hDLFlBQXNCLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBQUcsQ0FBQztJQUU1RCxTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUM5QyxxREFBcUQ7UUFDckQsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFbEQsK0JBQStCO1FBQy9CLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDM0I7UUFFRCx1REFBdUQ7UUFDdkQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQztRQUVwRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQ2QsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUNOLDRDQUE0QztZQUM1QyxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDO1lBQzNDLHNDQUFzQztZQUN0QyxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztTQUMvQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7O3VJQXZCUSx1QkFBdUI7MklBQXZCLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwRXZlbnQsIEh0dHBIYW5kbGVyLCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcbmV4cG9ydCBjb25zdCBMQU5HX1BBUkFNX0tFWSA9ICdYLUxhbmctUGFyYW0nO1xyXG5cclxuLyoqXHJcbiAqIEludGVyY2VwdG9yIGZvciBhZGRpbmcgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgYXMgcGFyYW1ldGVyXHJcbiAqIEFkZCB0aGUgaGVhZGVyIChMQU5HX1BBUkFNX0tFWSwgPGxhbmd1YWdlIHBhcmFtZXRlcj4pIHRvIHlvdXIgcmVxdWVzdCBodHRwIGhlYWRlcnNcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEFkZExhbmdQYXJhbUludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcclxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxyXG5cclxuICAgIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xyXG4gICAgICAgIC8vIHRha2UgdGhlIGxhbmcgcGFyYW0gbmFtZSBmcm9tIGhlYWRlciwgaWYgc3BlY2lmaWVkXHJcbiAgICAgICAgY29uc3QgbGFuZ1BhcmFtID0gcmVxLmhlYWRlcnMuZ2V0KExBTkdfUEFSQU1fS0VZKTtcclxuXHJcbiAgICAgICAgLy8gaWYgbm90IHNwZWNpZmllZCwgZG8gbm90aGluZ1xyXG4gICAgICAgIGlmICghbGFuZ1BhcmFtKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gdGFrZSB0aGUgY3VycmVudCBsYW5ndWFnZSBmcm9tIHRoZSB0cmFuc2xhdGUgc2VydmljZVxyXG4gICAgICAgIGNvbnN0IGxhbmdWYWx1ZSA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZztcclxuXHJcbiAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKFxyXG4gICAgICAgICAgICByZXEuY2xvbmUoe1xyXG4gICAgICAgICAgICAgICAgLy8gcmVtb3ZlIHRoZSBsYW5nIHBhcmFtIGhlYWRlciBmcm9tIGhlYWRlcnNcclxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHJlcS5oZWFkZXJzLmRlbGV0ZShMQU5HX1BBUkFNX0tFWSksXHJcbiAgICAgICAgICAgICAgICAvLyBzZXQgdGhlIGxhbmcgdmFsdWUgYXMgbmV3IHBhcmFtZXRlclxyXG4gICAgICAgICAgICAgICAgcGFyYW1zOiByZXEucGFyYW1zLnNldChsYW5nUGFyYW0sIGxhbmdWYWx1ZSksXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class CachePreventionInterceptor {
|
|
4
|
-
intercept(req, next) {
|
|
5
|
-
// if Cache-Control is already specified
|
|
6
|
-
if (req.headers.get('Cache-Control')) {
|
|
7
|
-
// keep the current configuration
|
|
8
|
-
return next.handle(req);
|
|
9
|
-
}
|
|
10
|
-
return next.handle(req.clone({
|
|
11
|
-
// prevent the cache
|
|
12
|
-
headers: req.headers.set('Cache-Control', 'No-Cache'),
|
|
13
|
-
}));
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
/** @nocollapse */ CachePreventionInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CachePreventionInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
17
|
-
/** @nocollapse */ CachePreventionInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CachePreventionInterceptor });
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CachePreventionInterceptor, decorators: [{
|
|
19
|
-
type: Injectable
|
|
20
|
-
}] });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class CachePreventionInterceptor {
|
|
4
|
+
intercept(req, next) {
|
|
5
|
+
// if Cache-Control is already specified
|
|
6
|
+
if (req.headers.get('Cache-Control')) {
|
|
7
|
+
// keep the current configuration
|
|
8
|
+
return next.handle(req);
|
|
9
|
+
}
|
|
10
|
+
return next.handle(req.clone({
|
|
11
|
+
// prevent the cache
|
|
12
|
+
headers: req.headers.set('Cache-Control', 'No-Cache'),
|
|
13
|
+
}));
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/** @nocollapse */ CachePreventionInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CachePreventionInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
17
|
+
/** @nocollapse */ CachePreventionInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CachePreventionInterceptor });
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CachePreventionInterceptor, decorators: [{
|
|
19
|
+
type: Injectable
|
|
20
|
+
}] });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtcHJldmVudGlvbi5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvaW50ZXJjZXB0b3JzL2NhY2hlLXByZXZlbnRpb24uaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLDBCQUEwQjtJQUNuQyxTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUM5Qyx3Q0FBd0M7UUFDeEMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUNsQyxpQ0FBaUM7WUFDakMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzNCO1FBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUNkLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDTixvQkFBb0I7WUFDcEIsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxVQUFVLENBQUM7U0FDeEQsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDOzswSUFkUSwwQkFBMEI7OElBQTFCLDBCQUEwQjsyRkFBMUIsMEJBQTBCO2tCQUR0QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwRXZlbnQsIEh0dHBIYW5kbGVyLCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDYWNoZVByZXZlbnRpb25JbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XHJcbiAgICBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcclxuICAgICAgICAvLyBpZiBDYWNoZS1Db250cm9sIGlzIGFscmVhZHkgc3BlY2lmaWVkXHJcbiAgICAgICAgaWYgKHJlcS5oZWFkZXJzLmdldCgnQ2FjaGUtQ29udHJvbCcpKSB7XHJcbiAgICAgICAgICAgIC8vIGtlZXAgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvblxyXG4gICAgICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShcclxuICAgICAgICAgICAgcmVxLmNsb25lKHtcclxuICAgICAgICAgICAgICAgIC8vIHByZXZlbnQgdGhlIGNhY2hlXHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiByZXEuaGVhZGVycy5zZXQoJ0NhY2hlLUNvbnRyb2wnLCAnTm8tQ2FjaGUnKSxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class CorsSecurityInterceptor {
|
|
4
|
-
intercept(request, next) {
|
|
5
|
-
return next.handle(request.clone({
|
|
6
|
-
withCredentials: true,
|
|
7
|
-
}));
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
/** @nocollapse */ CorsSecurityInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CorsSecurityInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
11
|
-
/** @nocollapse */ CorsSecurityInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CorsSecurityInterceptor });
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CorsSecurityInterceptor, decorators: [{
|
|
13
|
-
type: Injectable
|
|
14
|
-
}] });
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class CorsSecurityInterceptor {
|
|
4
|
+
intercept(request, next) {
|
|
5
|
+
return next.handle(request.clone({
|
|
6
|
+
withCredentials: true,
|
|
7
|
+
}));
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
/** @nocollapse */ CorsSecurityInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CorsSecurityInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
11
|
+
/** @nocollapse */ CorsSecurityInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CorsSecurityInterceptor });
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CorsSecurityInterceptor, decorators: [{
|
|
13
|
+
type: Injectable
|
|
14
|
+
}] });
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ycy1zZWN1cml0eS5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvaW50ZXJjZXB0b3JzL2NvcnMtc2VjdXJpdHkuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLHVCQUF1QjtJQUNoQyxTQUFTLENBQUMsT0FBeUIsRUFBRSxJQUFpQjtRQUNsRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUNWLGVBQWUsRUFBRSxJQUFJO1NBQ3hCLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQzs7dUlBUFEsdUJBQXVCOzJJQUF2Qix1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cEV2ZW50LCBIdHRwSGFuZGxlciwgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ29yc1NlY3VyaXR5SW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xyXG4gICAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xyXG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShcclxuICAgICAgICAgICAgcmVxdWVzdC5jbG9uZSh7XHJcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class CsrfPreventionInterceptor {
|
|
4
|
-
intercept(request, next) {
|
|
5
|
-
return next.handle(request.clone({
|
|
6
|
-
headers: request.headers.set('X-Requested-With', 'XMLHttpRequest'),
|
|
7
|
-
}));
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
/** @nocollapse */ CsrfPreventionInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CsrfPreventionInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
11
|
-
/** @nocollapse */ CsrfPreventionInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CsrfPreventionInterceptor });
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CsrfPreventionInterceptor, decorators: [{
|
|
13
|
-
type: Injectable
|
|
14
|
-
}] });
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class CsrfPreventionInterceptor {
|
|
4
|
+
intercept(request, next) {
|
|
5
|
+
return next.handle(request.clone({
|
|
6
|
+
headers: request.headers.set('X-Requested-With', 'XMLHttpRequest'),
|
|
7
|
+
}));
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
/** @nocollapse */ CsrfPreventionInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CsrfPreventionInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
11
|
+
/** @nocollapse */ CsrfPreventionInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CsrfPreventionInterceptor });
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CsrfPreventionInterceptor, decorators: [{
|
|
13
|
+
type: Injectable
|
|
14
|
+
}] });
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NyZi1wcmV2ZW50aW9uLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9pbnRlcmNlcHRvcnMvY3NyZi1wcmV2ZW50aW9uLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyx5QkFBeUI7SUFDbEMsU0FBUyxDQUFDLE9BQXlCLEVBQUUsSUFBaUI7UUFDbEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDVixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsZ0JBQWdCLENBQUM7U0FDckUsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDOzt5SUFQUSx5QkFBeUI7NklBQXpCLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwRXZlbnQsIEh0dHBIYW5kbGVyLCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDc3JmUHJldmVudGlvbkludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcclxuICAgIGludGVyY2VwdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcclxuICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUoXHJcbiAgICAgICAgICAgIHJlcXVlc3QuY2xvbmUoe1xyXG4gICAgICAgICAgICAgICAgaGVhZGVyczogcmVxdWVzdC5oZWFkZXJzLnNldCgnWC1SZXF1ZXN0ZWQtV2l0aCcsICdYTUxIdHRwUmVxdWVzdCcpLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuIl19
|