@lenne.tech/ng-base 15.0.0-beta → 15.0.0-beta-3
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/base-components/base-components.module.d.ts +3 -1
- package/base-components/components/input/input.component.d.ts +2 -1
- package/base-components/components/model-table/model-table.component.d.ts +16 -4
- package/base-components/components/refence-input/refence-input.component.d.ts +10 -2
- package/base-components/components/select/select.component.d.ts +2 -1
- package/base-components/components/tags/tags.component.d.ts +2 -1
- package/base-components/components/textarea/textarea.component.d.ts +9 -2
- package/base-components/components/upload-image/upload-image.component.d.ts +19 -4
- package/base-components/directives/sort.directive.d.ts +3 -2
- package/base-prototype/pages/login/login.component.d.ts +5 -8
- package/base-prototype/pages/profile/profile.component.d.ts +5 -29
- package/base-prototype/pages/register/register.component.d.ts +6 -2
- package/esm2020/base-cms/base-cms-routing.module.mjs +4 -4
- package/esm2020/base-cms/base-cms.module.mjs +4 -4
- package/esm2020/base-cms/pages/base-cms/base-cms.component.mjs +5 -5
- package/esm2020/base-components/base-components.module.mjs +9 -7
- package/esm2020/base-components/components/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2020/base-components/components/change-password/change-password.component.mjs +3 -3
- package/esm2020/base-components/components/checkbox/checkbox.component.mjs +3 -3
- package/esm2020/base-components/components/delete-account/delete-account.component.mjs +3 -3
- package/esm2020/base-components/components/fab-button/fab-button.component.mjs +3 -3
- package/esm2020/base-components/components/input/input.component.mjs +8 -5
- package/esm2020/base-components/components/loading-bar/loading-bar.component.mjs +3 -3
- package/esm2020/base-components/components/model-form/model-form-base.component.mjs +3 -3
- package/esm2020/base-components/components/model-form/model-form.component.mjs +14 -14
- package/esm2020/base-components/components/model-form-sub/model-form-sub.component.mjs +5 -5
- package/esm2020/base-components/components/model-table/model-table.component.mjs +78 -19
- package/esm2020/base-components/components/refence-input/refence-input.component.mjs +24 -10
- package/esm2020/base-components/components/select/select.component.mjs +9 -6
- package/esm2020/base-components/components/skeleton-loader/skeleton-loader.component.mjs +3 -3
- package/esm2020/base-components/components/tags/tags.component.mjs +8 -5
- package/esm2020/base-components/components/textarea/textarea.component.mjs +41 -7
- package/esm2020/base-components/components/toast/toast.component.mjs +3 -3
- package/esm2020/base-components/components/upload-image/upload-image.component.mjs +100 -28
- package/esm2020/base-components/directives/back-button.directive.mjs +3 -3
- package/esm2020/base-components/directives/context-menu.directive.mjs +3 -3
- package/esm2020/base-components/directives/sort.directive.mjs +10 -7
- package/esm2020/base-components/directives/stop-propagation.directive.mjs +3 -3
- package/esm2020/base-components/pipes/ellipses.pipe.mjs +3 -3
- package/esm2020/base-prototype/base-prototype.module.mjs +4 -4
- package/esm2020/base-prototype/pages/email-verification/email-verification.component.mjs +3 -3
- package/esm2020/base-prototype/pages/forgot-password/forgot-password.component.mjs +3 -3
- package/esm2020/base-prototype/pages/login/login.component.mjs +17 -10
- package/esm2020/base-prototype/pages/profile/profile.component.mjs +15 -5
- package/esm2020/base-prototype/pages/register/register.component.mjs +15 -8
- package/esm2020/base-prototype/pages/set-password/set-password.component.mjs +3 -3
- package/esm2020/shared/classes/auth.class.mjs +2 -1
- package/esm2020/shared/interfaces/cms-field-config.interface.mjs +1 -1
- package/esm2020/shared/interfaces/cropping-options.interface.mjs +2 -0
- package/esm2020/shared/interfaces/login-config.interface.mjs +2 -0
- package/esm2020/shared/public-api.mjs +3 -1
- package/esm2020/shared/services/auth.service.mjs +88 -17
- package/esm2020/shared/services/breadcrumb.service.mjs +9 -9
- package/esm2020/shared/services/cms.service.mjs +3 -3
- package/esm2020/shared/services/file.service.mjs +3 -3
- package/esm2020/shared/services/forms.service.mjs +3 -3
- package/esm2020/shared/services/graphql-meta.service.mjs +3 -3
- package/esm2020/shared/services/graphql-plus.service.mjs +3 -3
- package/esm2020/shared/services/graphql.service.mjs +3 -3
- package/esm2020/shared/services/image.service.mjs +3 -3
- package/esm2020/shared/services/loader.service.mjs +3 -3
- package/esm2020/shared/services/navigation.service.mjs +3 -3
- package/esm2020/shared/services/scroll.service.mjs +3 -3
- package/esm2020/shared/services/storage.service.mjs +3 -3
- package/esm2020/shared/services/toast.service.mjs +3 -3
- package/esm2020/shared/services/user.service.mjs +12 -10
- package/esm2020/shared/services/ws.service.mjs +3 -3
- package/esm2020/src/base.module.mjs +4 -4
- package/esm2020/src/directives/lazy-load.directive.mjs +3 -3
- package/esm2020/src/directives/match-height.directive.mjs +9 -4
- package/esm2020/src/directives/resizable.directive.mjs +3 -3
- package/esm2020/src/factories/apollo-options.factory.mjs +47 -4
- package/esm2020/src/guards/auth.guard.mjs +28 -9
- package/esm2020/src/guards/can-deactivate.guard.mjs +3 -3
- package/esm2020/src/guards/logout.guard.mjs +3 -3
- package/esm2020/src/pipes/date-ago.pipe.mjs +3 -3
- package/esm2020/src/pipes/safe-html.pipe.mjs +3 -3
- package/esm2020/src/services/fullscreen.service.mjs +3 -3
- package/esm2020/src/services/seo.service.mjs +3 -3
- package/esm2020/src/services/theme.service.mjs +14 -14
- package/fesm2015/lenne.tech-ng-base-base-cms.mjs +13 -13
- package/fesm2015/lenne.tech-ng-base-base-cms.mjs.map +1 -1
- package/fesm2015/lenne.tech-ng-base-base-components.mjs +307 -130
- package/fesm2015/lenne.tech-ng-base-base-components.mjs.map +1 -1
- package/fesm2015/lenne.tech-ng-base-base-prototype.mjs +56 -33
- package/fesm2015/lenne.tech-ng-base-base-prototype.mjs.map +1 -1
- package/fesm2015/lenne.tech-ng-base-shared.mjs +354 -283
- package/fesm2015/lenne.tech-ng-base-shared.mjs.map +1 -1
- package/fesm2015/lenne.tech-ng-base.mjs +122 -58
- package/fesm2015/lenne.tech-ng-base.mjs.map +1 -1
- package/fesm2020/lenne.tech-ng-base-base-cms.mjs +13 -13
- package/fesm2020/lenne.tech-ng-base-base-cms.mjs.map +1 -1
- package/fesm2020/lenne.tech-ng-base-base-components.mjs +314 -130
- package/fesm2020/lenne.tech-ng-base-base-components.mjs.map +1 -1
- package/fesm2020/lenne.tech-ng-base-base-prototype.mjs +56 -33
- package/fesm2020/lenne.tech-ng-base-base-prototype.mjs.map +1 -1
- package/fesm2020/lenne.tech-ng-base-shared.mjs +351 -278
- package/fesm2020/lenne.tech-ng-base-shared.mjs.map +1 -1
- package/fesm2020/lenne.tech-ng-base.mjs +123 -57
- package/fesm2020/lenne.tech-ng-base.mjs.map +1 -1
- package/package.json +9 -7
- package/shared/classes/auth.class.d.ts +1 -0
- package/shared/interfaces/cms-field-config.interface.d.ts +6 -1
- package/shared/interfaces/cropping-options.interface.d.ts +12 -0
- package/shared/interfaces/field.interface.d.ts +1 -1
- package/shared/interfaces/login-config.interface.d.ts +6 -0
- package/shared/public-api.d.ts +2 -0
- package/shared/services/auth.service.d.ts +16 -4
- package/shared/types/graphql-fields.type.d.ts +1 -1
- package/shared/types/storage.type.d.ts +1 -1
- package/src/directives/match-height.directive.d.ts +1 -0
|
@@ -2,17 +2,18 @@ import { APOLLO_OPTIONS, ApolloModule } from 'apollo-angular';
|
|
|
2
2
|
import { HttpLink } from 'apollo-angular/http';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
4
|
import { Directive, HostBinding, Input, PLATFORM_ID, Inject, HostListener, Pipe, NgModule, Injectable } from '@angular/core';
|
|
5
|
-
import { ApolloLink, split, concat } from '@apollo/client/core';
|
|
5
|
+
import { ApolloLink, fromPromise, split, concat } from '@apollo/client/core';
|
|
6
6
|
import { InMemoryCache } from '@apollo/client/cache';
|
|
7
7
|
import { getMainDefinition } from '@apollo/client/utilities';
|
|
8
8
|
import * as i2 from '@lenne.tech/ng-base/shared';
|
|
9
9
|
import { createRestartableClient, BASE_MODULE_CONFIG, AuthService, WsService } from '@lenne.tech/ng-base/shared';
|
|
10
10
|
import { GraphQLWsLink } from '@apollo/client/link/subscriptions';
|
|
11
|
+
import { firstValueFrom, Observable, BehaviorSubject } from 'rxjs';
|
|
12
|
+
import { onError } from '@apollo/client/link/error';
|
|
11
13
|
import { __awaiter } from 'tslib';
|
|
12
14
|
import { isPlatformBrowser } from '@angular/common';
|
|
13
15
|
import * as i1 from '@angular/platform-browser';
|
|
14
16
|
import { HttpClientModule } from '@angular/common/http';
|
|
15
|
-
import { Observable, BehaviorSubject } from 'rxjs';
|
|
16
17
|
import * as i1$1 from '@angular/router';
|
|
17
18
|
|
|
18
19
|
/**
|
|
@@ -109,9 +110,17 @@ function apolloOptionsFactory(baseModuleConfig, httpLink, authService, wsService
|
|
|
109
110
|
extractFiles,
|
|
110
111
|
});
|
|
111
112
|
const authMiddleware = new ApolloLink((operation, forward) => {
|
|
113
|
+
var _a, _b, _c, _d;
|
|
112
114
|
const headers = {};
|
|
115
|
+
const operationName = (_d = (_c = (_b = (_a = operation.query.definitions[0]) === null || _a === void 0 ? void 0 : _a.selectionSet) === null || _b === void 0 ? void 0 : _b.selections[0]) === null || _c === void 0 ? void 0 : _c.name) === null || _d === void 0 ? void 0 : _d.value;
|
|
113
116
|
if (localStorage) {
|
|
114
|
-
|
|
117
|
+
let token;
|
|
118
|
+
if (operationName === 'refreshToken') {
|
|
119
|
+
token = authService.refreshToken || null;
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
token = authService.token || null;
|
|
123
|
+
}
|
|
115
124
|
if (token) {
|
|
116
125
|
headers.Authorization = 'Bearer ' + token;
|
|
117
126
|
}
|
|
@@ -119,6 +128,36 @@ function apolloOptionsFactory(baseModuleConfig, httpLink, authService, wsService
|
|
|
119
128
|
}
|
|
120
129
|
return forward(operation);
|
|
121
130
|
});
|
|
131
|
+
const errorLink = onError(({ graphQLErrors, networkError, operation, forward }) => {
|
|
132
|
+
if (graphQLErrors) {
|
|
133
|
+
for (const err of graphQLErrors) {
|
|
134
|
+
switch (err.extensions.code) {
|
|
135
|
+
case 'UNAUTHENTICATED': {
|
|
136
|
+
if (err.message !== 'Expired refresh token' &&
|
|
137
|
+
err.message !== 'Expired token' &&
|
|
138
|
+
err.message !== 'Invalid token') {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
if (err.message === 'Expired refresh token' || err.message === 'Invalid token') {
|
|
142
|
+
authService.clearSession();
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
return fromPromise(firstValueFrom(authService.requestNewToken()))
|
|
146
|
+
.filter((value) => Boolean(value))
|
|
147
|
+
.flatMap((response) => {
|
|
148
|
+
const oldHeaders = operation.getContext().headers;
|
|
149
|
+
// modify the operation context with a new token
|
|
150
|
+
operation.setContext({
|
|
151
|
+
headers: Object.assign(Object.assign({}, oldHeaders), { Authorization: `Bearer ${response.token}` }),
|
|
152
|
+
});
|
|
153
|
+
// retry the request, returning the new observable
|
|
154
|
+
return forward(operation);
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
});
|
|
122
161
|
if (baseModuleConfig.logging) {
|
|
123
162
|
console.log(baseModuleConfig);
|
|
124
163
|
}
|
|
@@ -141,10 +180,11 @@ function apolloOptionsFactory(baseModuleConfig, httpLink, authService, wsService
|
|
|
141
180
|
// @ts-ignore
|
|
142
181
|
const { kind, operation } = getMainDefinition(query);
|
|
143
182
|
return kind === 'OperationDefinition' && operation === 'subscription';
|
|
144
|
-
}, wsLink, concat(authMiddleware, http)));
|
|
183
|
+
}, wsLink, concat(concat(authMiddleware, errorLink), http)));
|
|
145
184
|
}
|
|
146
185
|
else {
|
|
147
186
|
links.push(authMiddleware);
|
|
187
|
+
links.push(errorLink);
|
|
148
188
|
links.push(http);
|
|
149
189
|
}
|
|
150
190
|
return {
|
|
@@ -187,9 +227,9 @@ class LazyLoadDirective {
|
|
|
187
227
|
this.srcAttr = this.src;
|
|
188
228
|
}
|
|
189
229
|
}
|
|
190
|
-
LazyLoadDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
191
|
-
LazyLoadDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.
|
|
192
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
230
|
+
LazyLoadDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LazyLoadDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
231
|
+
LazyLoadDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: LazyLoadDirective, selector: "img[ltLazyLoad]", inputs: { src: "src" }, host: { properties: { "attr.src": "this.srcAttr" } }, ngImport: i0 });
|
|
232
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LazyLoadDirective, decorators: [{
|
|
193
233
|
type: Directive,
|
|
194
234
|
args: [{
|
|
195
235
|
selector: 'img[ltLazyLoad]',
|
|
@@ -217,6 +257,11 @@ class MatchHeightDirective {
|
|
|
217
257
|
}
|
|
218
258
|
ngAfterViewInit() {
|
|
219
259
|
this.matchHeight(this.el.nativeElement, this.ltMatchHeight);
|
|
260
|
+
this.observer = new MutationObserver(() => {
|
|
261
|
+
this.matchHeight(this.el.nativeElement, this.ltMatchHeight);
|
|
262
|
+
});
|
|
263
|
+
//Observes if one or more elements get added to or removed from the childlist and applies matching heights
|
|
264
|
+
this.observer.observe(this.el.nativeElement, { childList: true });
|
|
220
265
|
}
|
|
221
266
|
matchHeight(parent, target) {
|
|
222
267
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -259,9 +304,9 @@ class MatchHeightDirective {
|
|
|
259
304
|
});
|
|
260
305
|
}
|
|
261
306
|
}
|
|
262
|
-
MatchHeightDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
263
|
-
MatchHeightDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.
|
|
264
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
307
|
+
MatchHeightDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MatchHeightDirective, deps: [{ token: i0.ElementRef }, { token: i2.ImageService }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive });
|
|
308
|
+
MatchHeightDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: MatchHeightDirective, selector: "[ltMatchHeight]", inputs: { ltMatchHeight: "ltMatchHeight", loadImages: "loadImages" }, host: { listeners: { "window:resize": "onResize()" } }, ngImport: i0 });
|
|
309
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MatchHeightDirective, decorators: [{
|
|
265
310
|
type: Directive,
|
|
266
311
|
args: [{
|
|
267
312
|
selector: '[ltMatchHeight]',
|
|
@@ -355,9 +400,9 @@ class ResizableDirective {
|
|
|
355
400
|
}, true);
|
|
356
401
|
}
|
|
357
402
|
}
|
|
358
|
-
ResizableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
359
|
-
ResizableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.
|
|
360
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
403
|
+
ResizableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ResizableDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
404
|
+
ResizableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: ResizableDirective, selector: "[ltResizable]", inputs: { resizableGrabWidth: "resizableGrabWidth", resizableMinWidth: "resizableMinWidth" }, ngImport: i0 });
|
|
405
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ResizableDirective, decorators: [{
|
|
361
406
|
type: Directive,
|
|
362
407
|
args: [{
|
|
363
408
|
selector: '[ltResizable]',
|
|
@@ -379,9 +424,9 @@ class SafeHtmlPipe {
|
|
|
379
424
|
return this.sanitized.bypassSecurityTrustHtml(value);
|
|
380
425
|
}
|
|
381
426
|
}
|
|
382
|
-
SafeHtmlPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
383
|
-
SafeHtmlPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.
|
|
384
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
427
|
+
SafeHtmlPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SafeHtmlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
428
|
+
SafeHtmlPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SafeHtmlPipe, name: "ltSafeHtml" });
|
|
429
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SafeHtmlPipe, decorators: [{
|
|
385
430
|
type: Pipe,
|
|
386
431
|
args: [{ name: 'ltSafeHtml' }]
|
|
387
432
|
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; } });
|
|
@@ -439,9 +484,9 @@ class DateAgoPipe {
|
|
|
439
484
|
return value;
|
|
440
485
|
}
|
|
441
486
|
}
|
|
442
|
-
DateAgoPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
443
|
-
DateAgoPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.
|
|
444
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
487
|
+
DateAgoPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DateAgoPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
488
|
+
DateAgoPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: DateAgoPipe, name: "dateAgo" });
|
|
489
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DateAgoPipe, decorators: [{
|
|
445
490
|
type: Pipe,
|
|
446
491
|
args: [{
|
|
447
492
|
name: 'dateAgo',
|
|
@@ -497,8 +542,8 @@ class BaseModule {
|
|
|
497
542
|
};
|
|
498
543
|
}
|
|
499
544
|
}
|
|
500
|
-
BaseModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
501
|
-
BaseModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.
|
|
545
|
+
BaseModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
546
|
+
BaseModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: BaseModule, declarations: [
|
|
502
547
|
// Directives
|
|
503
548
|
LazyLoadDirective,
|
|
504
549
|
MatchHeightDirective,
|
|
@@ -515,8 +560,8 @@ BaseModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15
|
|
|
515
560
|
SafeHtmlPipe,
|
|
516
561
|
DateAgoPipe, ApolloModule, HttpClientModule
|
|
517
562
|
] });
|
|
518
|
-
BaseModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.
|
|
519
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
563
|
+
BaseModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseModule, imports: [ApolloModule, HttpClientModule, ApolloModule, HttpClientModule] });
|
|
564
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseModule, decorators: [{
|
|
520
565
|
type: NgModule,
|
|
521
566
|
args: [{
|
|
522
567
|
imports: [ApolloModule, HttpClientModule],
|
|
@@ -565,14 +610,33 @@ class AuthGuard {
|
|
|
565
610
|
*/
|
|
566
611
|
canActivate(route, state) {
|
|
567
612
|
return new Observable((subscriber) => {
|
|
568
|
-
var _a, _b, _c, _d;
|
|
613
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
569
614
|
let allowed = false;
|
|
615
|
+
let redirected = false;
|
|
616
|
+
/* If the user is logged in and the route is not marked as opposite, then the user is allowed to access the route. */
|
|
570
617
|
const opposite = ((_a = route === null || route === void 0 ? void 0 : route.data) === null || _a === void 0 ? void 0 : _a.opposite) ? (_b = route === null || route === void 0 ? void 0 : route.data) === null || _b === void 0 ? void 0 : _b.opposite : false;
|
|
571
|
-
const
|
|
618
|
+
const redirectAuthUrl = ((_c = route === null || route === void 0 ? void 0 : route.data) === null || _c === void 0 ? void 0 : _c.redirectAuthUrl)
|
|
619
|
+
? route.data.redirectAuthUrl
|
|
620
|
+
: this.moduleConfig.authGuardRedirectUrl;
|
|
621
|
+
const redirectRoleUrl = ((_d = route === null || route === void 0 ? void 0 : route.data) === null || _d === void 0 ? void 0 : _d.redirectRoleUrl)
|
|
622
|
+
? route.data.redirectRoleUrl
|
|
623
|
+
: this.moduleConfig.authGuardRedirectUrl;
|
|
624
|
+
const disableQueryParams = (_f = (_e = route === null || route === void 0 ? void 0 : route.data) === null || _e === void 0 ? void 0 : _e.disableQueryParams) !== null && _f !== void 0 ? _f : false;
|
|
625
|
+
const queryParams = disableQueryParams
|
|
626
|
+
? {}
|
|
627
|
+
: {
|
|
628
|
+
queryParams: {
|
|
629
|
+
redirectUrl: route['_routerState'].url,
|
|
630
|
+
},
|
|
631
|
+
};
|
|
572
632
|
if (this.authService.token && !opposite) {
|
|
573
|
-
if (route.data.
|
|
633
|
+
if ((_g = route.data) === null || _g === void 0 ? void 0 : _g.roles) {
|
|
574
634
|
const user = this.authService.currentUser;
|
|
575
|
-
allowed = (
|
|
635
|
+
allowed = !!route.data.roles.find((role) => { var _a; return (_a = user.roles) === null || _a === void 0 ? void 0 : _a.includes(role); });
|
|
636
|
+
if (!allowed && redirectRoleUrl) {
|
|
637
|
+
this.router.navigate([redirectRoleUrl], queryParams);
|
|
638
|
+
redirected = true;
|
|
639
|
+
}
|
|
576
640
|
}
|
|
577
641
|
else {
|
|
578
642
|
allowed = true;
|
|
@@ -581,8 +645,8 @@ class AuthGuard {
|
|
|
581
645
|
else if (!this.authService.token && opposite) {
|
|
582
646
|
allowed = true;
|
|
583
647
|
}
|
|
584
|
-
if (!allowed) {
|
|
585
|
-
this.router.navigate([
|
|
648
|
+
if (!allowed && redirectAuthUrl && !redirected) {
|
|
649
|
+
this.router.navigate([redirectAuthUrl], queryParams);
|
|
586
650
|
}
|
|
587
651
|
subscriber.next(allowed);
|
|
588
652
|
subscriber.complete();
|
|
@@ -595,9 +659,9 @@ class AuthGuard {
|
|
|
595
659
|
return this.canActivate(route, state);
|
|
596
660
|
}
|
|
597
661
|
}
|
|
598
|
-
AuthGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
599
|
-
AuthGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.
|
|
600
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
662
|
+
AuthGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthGuard, deps: [{ token: i1$1.Router }, { token: i2.AuthService }, { token: BASE_MODULE_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
663
|
+
AuthGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthGuard });
|
|
664
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthGuard, decorators: [{
|
|
601
665
|
type: Injectable
|
|
602
666
|
}], ctorParameters: function () {
|
|
603
667
|
return [{ type: i1$1.Router }, { type: i2.AuthService }, { type: undefined, decorators: [{
|
|
@@ -614,9 +678,9 @@ class CanDeactivateGuard {
|
|
|
614
678
|
return component.canDeactivate ? component.canDeactivate() : true;
|
|
615
679
|
}
|
|
616
680
|
}
|
|
617
|
-
CanDeactivateGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
618
|
-
CanDeactivateGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.
|
|
619
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
681
|
+
CanDeactivateGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CanDeactivateGuard, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
682
|
+
CanDeactivateGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CanDeactivateGuard });
|
|
683
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CanDeactivateGuard, decorators: [{
|
|
620
684
|
type: Injectable
|
|
621
685
|
}] });
|
|
622
686
|
|
|
@@ -641,9 +705,9 @@ class LogoutGuard {
|
|
|
641
705
|
return this.canActivate(route, state);
|
|
642
706
|
}
|
|
643
707
|
}
|
|
644
|
-
LogoutGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
645
|
-
LogoutGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.
|
|
646
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
708
|
+
LogoutGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LogoutGuard, deps: [{ token: i1$1.Router }, { token: i2.AuthService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
709
|
+
LogoutGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LogoutGuard });
|
|
710
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: LogoutGuard, decorators: [{
|
|
647
711
|
type: Injectable
|
|
648
712
|
}], ctorParameters: function () { return [{ type: i1$1.Router }, { type: i2.AuthService }]; } });
|
|
649
713
|
|
|
@@ -686,9 +750,9 @@ class FullscreenService {
|
|
|
686
750
|
});
|
|
687
751
|
}
|
|
688
752
|
}
|
|
689
|
-
FullscreenService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
690
|
-
FullscreenService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.
|
|
691
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
753
|
+
FullscreenService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FullscreenService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
754
|
+
FullscreenService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FullscreenService, providedIn: 'root' });
|
|
755
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FullscreenService, decorators: [{
|
|
692
756
|
type: Injectable,
|
|
693
757
|
args: [{
|
|
694
758
|
providedIn: 'root',
|
|
@@ -780,9 +844,9 @@ class SEOService {
|
|
|
780
844
|
this.metaTagService.updateTag({ name: 'keywords', content: keywords });
|
|
781
845
|
}
|
|
782
846
|
}
|
|
783
|
-
SEOService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
784
|
-
SEOService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.
|
|
785
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
847
|
+
SEOService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SEOService, deps: [{ token: i1.Title }, { token: i1.Meta }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
848
|
+
SEOService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SEOService, providedIn: 'root' });
|
|
849
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SEOService, decorators: [{
|
|
786
850
|
type: Injectable,
|
|
787
851
|
args: [{
|
|
788
852
|
providedIn: 'root',
|
|
@@ -790,16 +854,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
790
854
|
}], ctorParameters: function () { return [{ type: i1.Title }, { type: i1.Meta }]; } });
|
|
791
855
|
|
|
792
856
|
class ThemeService {
|
|
793
|
-
constructor(storageService) {
|
|
794
|
-
this.storageService = storageService;
|
|
795
|
-
this._theme = new BehaviorSubject('light');
|
|
796
|
-
// Load from storage
|
|
797
|
-
this.theme = this.storageService.load('theme');
|
|
798
|
-
// Use system theme if no theme is set
|
|
799
|
-
if (!this.theme) {
|
|
800
|
-
this.checkSystemTheme();
|
|
801
|
-
}
|
|
802
|
-
}
|
|
803
857
|
get theme() {
|
|
804
858
|
return this._theme.value;
|
|
805
859
|
}
|
|
@@ -810,6 +864,16 @@ class ThemeService {
|
|
|
810
864
|
get themeObservable() {
|
|
811
865
|
return this._theme.asObservable();
|
|
812
866
|
}
|
|
867
|
+
constructor(storageService) {
|
|
868
|
+
this.storageService = storageService;
|
|
869
|
+
this._theme = new BehaviorSubject('light');
|
|
870
|
+
// Load from storage
|
|
871
|
+
this.theme = this.storageService.load('theme');
|
|
872
|
+
// Use system theme if no theme is set
|
|
873
|
+
if (!this.theme) {
|
|
874
|
+
this.checkSystemTheme();
|
|
875
|
+
}
|
|
876
|
+
}
|
|
813
877
|
/**
|
|
814
878
|
* Check theme from system
|
|
815
879
|
*/
|
|
@@ -819,9 +883,9 @@ class ThemeService {
|
|
|
819
883
|
}
|
|
820
884
|
}
|
|
821
885
|
}
|
|
822
|
-
ThemeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
823
|
-
ThemeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.
|
|
824
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
886
|
+
ThemeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ThemeService, deps: [{ token: i2.StorageService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
887
|
+
ThemeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ThemeService, providedIn: 'root' });
|
|
888
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ThemeService, decorators: [{
|
|
825
889
|
type: Injectable,
|
|
826
890
|
args: [{
|
|
827
891
|
providedIn: 'root',
|
|
@@ -831,6 +895,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
831
895
|
/**
|
|
832
896
|
* Exports for public API
|
|
833
897
|
*/
|
|
898
|
+
// Module
|
|
834
899
|
|
|
835
900
|
/**
|
|
836
901
|
* Generated bundle index. Do not edit.
|
|
@@ -838,4 +903,3 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
838
903
|
|
|
839
904
|
export { AuthGuard, AutoUnsubscribe, BaseModule, CanDeactivateGuard, DateAgoPipe, FullscreenService, LazyLoadDirective, LogoutGuard, MatchHeightDirective, ResizableDirective, SEOService, SafeHtmlPipe, ThemeService, apolloOptionsFactory };
|
|
840
905
|
//# sourceMappingURL=lenne.tech-ng-base.mjs.map
|
|
841
|
-
//# sourceMappingURL=lenne.tech-ng-base.mjs.map
|