@lenne.tech/ng-base 16.2.0 → 17.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/base-cms/base-cms-routing.module.mjs +6 -7
- package/esm2022/base-cms/base-cms.module.mjs +6 -7
- package/esm2022/base-cms/pages/base-cms/base-cms.component.mjs +7 -8
- package/esm2022/base-components/base-components.module.mjs +6 -7
- package/esm2022/base-components/components/breadcrumb/breadcrumb.component.mjs +6 -7
- package/esm2022/base-components/components/change-password/change-password.component.mjs +6 -7
- package/esm2022/base-components/components/checkbox/checkbox.component.mjs +5 -6
- package/esm2022/base-components/components/delete-account/delete-account.component.mjs +6 -7
- package/esm2022/base-components/components/fab-button/fab-button.component.mjs +5 -6
- package/esm2022/base-components/components/input/input.component.mjs +5 -6
- package/esm2022/base-components/components/loading-bar/loading-bar.component.mjs +6 -7
- package/esm2022/base-components/components/model-form/model-form-base.component.mjs +6 -7
- package/esm2022/base-components/components/model-form/model-form.component.mjs +6 -7
- package/esm2022/base-components/components/model-form-sub/model-form-sub.component.mjs +6 -7
- package/esm2022/base-components/components/model-table/model-table.component.mjs +6 -7
- package/esm2022/base-components/components/refence-input/refence-input.component.mjs +6 -7
- package/esm2022/base-components/components/select/select.component.mjs +5 -6
- package/esm2022/base-components/components/skeleton-loader/skeleton-loader.component.mjs +5 -6
- package/esm2022/base-components/components/tags/tags.component.mjs +5 -6
- package/esm2022/base-components/components/textarea/textarea.component.mjs +5 -6
- package/esm2022/base-components/components/toast/toast.component.mjs +6 -7
- package/esm2022/base-components/components/upload-image/upload-image.component.mjs +6 -7
- package/esm2022/base-components/directives/back-button.directive.mjs +6 -7
- package/esm2022/base-components/directives/context-menu.directive.mjs +6 -7
- package/esm2022/base-components/directives/sort.directive.mjs +7 -8
- package/esm2022/base-components/directives/stop-propagation.directive.mjs +5 -6
- package/esm2022/base-components/pipes/ellipses.pipe.mjs +5 -6
- package/esm2022/base-prototype/base-prototype.module.mjs +6 -7
- package/esm2022/base-prototype/pages/email-verification/email-verification.component.mjs +6 -7
- package/esm2022/base-prototype/pages/forgot-password/forgot-password.component.mjs +6 -7
- package/esm2022/base-prototype/pages/login/login.component.mjs +6 -7
- package/esm2022/base-prototype/pages/profile/profile.component.mjs +6 -7
- package/esm2022/base-prototype/pages/register/register.component.mjs +6 -7
- package/esm2022/base-prototype/pages/set-password/set-password.component.mjs +6 -7
- package/esm2022/shared/services/auth.service.mjs +6 -7
- package/esm2022/shared/services/breadcrumb.service.mjs +6 -7
- package/esm2022/shared/services/cms.service.mjs +6 -7
- package/esm2022/shared/services/file.service.mjs +6 -7
- package/esm2022/shared/services/forms.service.mjs +7 -8
- package/esm2022/shared/services/graphql-meta.service.mjs +6 -7
- package/esm2022/shared/services/graphql-plus.service.mjs +7 -8
- package/esm2022/shared/services/graphql.service.mjs +7 -8
- package/esm2022/shared/services/image.service.mjs +5 -6
- package/esm2022/shared/services/loader.service.mjs +5 -6
- package/esm2022/shared/services/navigation.service.mjs +6 -7
- package/esm2022/shared/services/scroll.service.mjs +7 -8
- package/esm2022/shared/services/storage.service.mjs +7 -8
- package/esm2022/shared/services/toast.service.mjs +5 -6
- package/esm2022/shared/services/user.service.mjs +7 -8
- package/esm2022/shared/services/ws.service.mjs +5 -6
- package/esm2022/src/base.module.mjs +6 -7
- package/esm2022/src/directives/lazy-load.directive.mjs +6 -7
- package/esm2022/src/directives/match-height.directive.mjs +7 -8
- package/esm2022/src/directives/resizable.directive.mjs +6 -7
- package/esm2022/src/guards/auth.guard.mjs +7 -8
- package/esm2022/src/guards/can-deactivate.guard.mjs +5 -6
- package/esm2022/src/guards/logout.guard.mjs +6 -7
- package/esm2022/src/pipes/date-ago.pipe.mjs +5 -6
- package/esm2022/src/pipes/safe-html.pipe.mjs +6 -7
- package/esm2022/src/services/fullscreen.service.mjs +6 -7
- package/esm2022/src/services/seo.service.mjs +6 -7
- package/esm2022/src/services/theme.service.mjs +6 -7
- package/fesm2022/lenne.tech-ng-base-base-cms.mjs +13 -13
- package/fesm2022/lenne.tech-ng-base-base-cms.mjs.map +1 -1
- package/fesm2022/lenne.tech-ng-base-base-components.mjs +89 -89
- package/fesm2022/lenne.tech-ng-base-base-components.mjs.map +1 -1
- package/fesm2022/lenne.tech-ng-base-base-prototype.mjs +29 -29
- package/fesm2022/lenne.tech-ng-base-base-prototype.mjs.map +1 -1
- package/fesm2022/lenne.tech-ng-base-shared.mjs +66 -66
- package/fesm2022/lenne.tech-ng-base-shared.mjs.map +1 -1
- package/fesm2022/lenne.tech-ng-base.mjs +49 -49
- package/fesm2022/lenne.tech-ng-base.mjs.map +1 -1
- package/package.json +7 -7
|
@@ -2,7 +2,7 @@ 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, fromPromise,
|
|
5
|
+
import { ApolloLink, fromPromise, concat, split } 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';
|
|
@@ -232,15 +232,15 @@ class LazyLoadDirective {
|
|
|
232
232
|
loadImage() {
|
|
233
233
|
this.srcAttr = this.src;
|
|
234
234
|
}
|
|
235
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
236
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
235
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: LazyLoadDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
236
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: LazyLoadDirective, selector: "img[ltLazyLoad]", inputs: { src: "src" }, host: { properties: { "attr.src": "this.srcAttr" } }, ngImport: i0 });
|
|
237
237
|
}
|
|
238
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
238
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: LazyLoadDirective, decorators: [{
|
|
239
239
|
type: Directive,
|
|
240
240
|
args: [{
|
|
241
241
|
selector: 'img[ltLazyLoad]',
|
|
242
242
|
}]
|
|
243
|
-
}], ctorParameters:
|
|
243
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { srcAttr: [{
|
|
244
244
|
type: HostBinding,
|
|
245
245
|
args: ['attr.src']
|
|
246
246
|
}], src: [{
|
|
@@ -314,18 +314,18 @@ class MatchHeightDirective {
|
|
|
314
314
|
Array.from(children).forEach((element) => (element.style.height = `${maxHeight}px`));
|
|
315
315
|
}
|
|
316
316
|
}
|
|
317
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
318
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
317
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatchHeightDirective, deps: [{ token: i0.ElementRef }, { token: i2.ImageService }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive });
|
|
318
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: MatchHeightDirective, selector: "[ltMatchHeight]", inputs: { ltMatchHeight: "ltMatchHeight", loadImages: "loadImages" }, host: { listeners: { "window:resize": "onResize()" } }, ngImport: i0 });
|
|
319
319
|
}
|
|
320
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
320
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatchHeightDirective, decorators: [{
|
|
321
321
|
type: Directive,
|
|
322
322
|
args: [{
|
|
323
323
|
selector: '[ltMatchHeight]',
|
|
324
324
|
}]
|
|
325
|
-
}], ctorParameters:
|
|
325
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i2.ImageService }, { type: undefined, decorators: [{
|
|
326
326
|
type: Inject,
|
|
327
327
|
args: [PLATFORM_ID]
|
|
328
|
-
}] }]
|
|
328
|
+
}] }], propDecorators: { ltMatchHeight: [{
|
|
329
329
|
type: Input
|
|
330
330
|
}], loadImages: [{
|
|
331
331
|
type: Input
|
|
@@ -409,15 +409,15 @@ class ResizableDirective {
|
|
|
409
409
|
this.mouseMove(e);
|
|
410
410
|
}, true);
|
|
411
411
|
}
|
|
412
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
413
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
412
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ResizableDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
413
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: ResizableDirective, selector: "[ltResizable]", inputs: { resizableGrabWidth: "resizableGrabWidth", resizableMinWidth: "resizableMinWidth" }, ngImport: i0 });
|
|
414
414
|
}
|
|
415
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
415
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ResizableDirective, decorators: [{
|
|
416
416
|
type: Directive,
|
|
417
417
|
args: [{
|
|
418
418
|
selector: '[ltResizable]',
|
|
419
419
|
}]
|
|
420
|
-
}], ctorParameters:
|
|
420
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { resizableGrabWidth: [{
|
|
421
421
|
type: Input
|
|
422
422
|
}], resizableMinWidth: [{
|
|
423
423
|
type: Input
|
|
@@ -434,13 +434,13 @@ class SafeHtmlPipe {
|
|
|
434
434
|
transform(value) {
|
|
435
435
|
return this.sanitized.bypassSecurityTrustHtml(value);
|
|
436
436
|
}
|
|
437
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
438
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
437
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SafeHtmlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
438
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: SafeHtmlPipe, name: "ltSafeHtml" });
|
|
439
439
|
}
|
|
440
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
440
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SafeHtmlPipe, decorators: [{
|
|
441
441
|
type: Pipe,
|
|
442
442
|
args: [{ name: 'ltSafeHtml' }]
|
|
443
|
-
}], ctorParameters:
|
|
443
|
+
}], ctorParameters: () => [{ type: i1.DomSanitizer }] });
|
|
444
444
|
|
|
445
445
|
class DateAgoPipe {
|
|
446
446
|
intervals = {
|
|
@@ -492,10 +492,10 @@ class DateAgoPipe {
|
|
|
492
492
|
}
|
|
493
493
|
return value;
|
|
494
494
|
}
|
|
495
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
496
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
495
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DateAgoPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
496
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: DateAgoPipe, name: "dateAgo" });
|
|
497
497
|
}
|
|
498
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
498
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DateAgoPipe, decorators: [{
|
|
499
499
|
type: Pipe,
|
|
500
500
|
args: [{
|
|
501
501
|
name: 'dateAgo',
|
|
@@ -561,8 +561,8 @@ class BaseModule {
|
|
|
561
561
|
providers,
|
|
562
562
|
};
|
|
563
563
|
}
|
|
564
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
565
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
564
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: BaseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
565
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: BaseModule, declarations: [
|
|
566
566
|
// Directives
|
|
567
567
|
LazyLoadDirective,
|
|
568
568
|
MatchHeightDirective,
|
|
@@ -577,9 +577,9 @@ class BaseModule {
|
|
|
577
577
|
// Pipes
|
|
578
578
|
SafeHtmlPipe,
|
|
579
579
|
DateAgoPipe, ApolloModule, HttpClientModule] });
|
|
580
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
580
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: BaseModule, imports: [ApolloModule, HttpClientModule, ApolloModule, HttpClientModule] });
|
|
581
581
|
}
|
|
582
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
582
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: BaseModule, decorators: [{
|
|
583
583
|
type: NgModule,
|
|
584
584
|
args: [{
|
|
585
585
|
imports: [ApolloModule, HttpClientModule],
|
|
@@ -682,18 +682,18 @@ class AuthGuard {
|
|
|
682
682
|
canActivateChild(route, state) {
|
|
683
683
|
return this.canActivate(route, state);
|
|
684
684
|
}
|
|
685
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
686
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
685
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AuthGuard, deps: [{ token: i1$1.Router }, { token: i2.AuthService }, { token: BASE_MODULE_CONFIG }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
686
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AuthGuard });
|
|
687
687
|
}
|
|
688
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
688
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AuthGuard, decorators: [{
|
|
689
689
|
type: Injectable
|
|
690
|
-
}], ctorParameters:
|
|
690
|
+
}], ctorParameters: () => [{ type: i1$1.Router }, { type: i2.AuthService }, { type: undefined, decorators: [{
|
|
691
691
|
type: Inject,
|
|
692
692
|
args: [BASE_MODULE_CONFIG]
|
|
693
693
|
}] }, { type: undefined, decorators: [{
|
|
694
694
|
type: Inject,
|
|
695
695
|
args: [PLATFORM_ID]
|
|
696
|
-
}] }]
|
|
696
|
+
}] }] });
|
|
697
697
|
|
|
698
698
|
/**
|
|
699
699
|
* Guard to check if a component can be deactivated
|
|
@@ -702,10 +702,10 @@ class CanDeactivateGuard {
|
|
|
702
702
|
canDeactivate(component) {
|
|
703
703
|
return component.canDeactivate ? component.canDeactivate() : true;
|
|
704
704
|
}
|
|
705
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
706
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
705
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: CanDeactivateGuard, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
706
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: CanDeactivateGuard });
|
|
707
707
|
}
|
|
708
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
708
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: CanDeactivateGuard, decorators: [{
|
|
709
709
|
type: Injectable
|
|
710
710
|
}] });
|
|
711
711
|
|
|
@@ -731,12 +731,12 @@ class LogoutGuard {
|
|
|
731
731
|
canActivateChild(route, state) {
|
|
732
732
|
return this.canActivate(route, state);
|
|
733
733
|
}
|
|
734
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
735
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
734
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: LogoutGuard, deps: [{ token: i1$1.Router }, { token: i2.AuthService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
735
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: LogoutGuard });
|
|
736
736
|
}
|
|
737
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
737
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: LogoutGuard, decorators: [{
|
|
738
738
|
type: Injectable
|
|
739
|
-
}], ctorParameters:
|
|
739
|
+
}], ctorParameters: () => [{ type: i1$1.Router }, { type: i2.AuthService }] });
|
|
740
740
|
|
|
741
741
|
/**
|
|
742
742
|
* Fullscreen service
|
|
@@ -776,15 +776,15 @@ class FullscreenService {
|
|
|
776
776
|
}
|
|
777
777
|
});
|
|
778
778
|
}
|
|
779
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
780
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
779
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: FullscreenService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
780
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: FullscreenService, providedIn: 'root' });
|
|
781
781
|
}
|
|
782
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
782
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: FullscreenService, decorators: [{
|
|
783
783
|
type: Injectable,
|
|
784
784
|
args: [{
|
|
785
785
|
providedIn: 'root',
|
|
786
786
|
}]
|
|
787
|
-
}], ctorParameters:
|
|
787
|
+
}], ctorParameters: () => [] });
|
|
788
788
|
|
|
789
789
|
/**
|
|
790
790
|
* SEO service for setting HTML meta data
|
|
@@ -872,15 +872,15 @@ class SEOService {
|
|
|
872
872
|
setPageKeywords(keywords) {
|
|
873
873
|
this.metaTagService.updateTag({ name: 'keywords', content: keywords });
|
|
874
874
|
}
|
|
875
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
876
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
875
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SEOService, deps: [{ token: i1.Title }, { token: i1.Meta }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
876
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SEOService, providedIn: 'root' });
|
|
877
877
|
}
|
|
878
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
878
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SEOService, decorators: [{
|
|
879
879
|
type: Injectable,
|
|
880
880
|
args: [{
|
|
881
881
|
providedIn: 'root',
|
|
882
882
|
}]
|
|
883
|
-
}], ctorParameters:
|
|
883
|
+
}], ctorParameters: () => [{ type: i1.Title }, { type: i1.Meta }] });
|
|
884
884
|
|
|
885
885
|
class ThemeService {
|
|
886
886
|
storageService;
|
|
@@ -912,15 +912,15 @@ class ThemeService {
|
|
|
912
912
|
this.theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
|
|
913
913
|
}
|
|
914
914
|
}
|
|
915
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
916
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
915
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ThemeService, deps: [{ token: i2.StorageService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
916
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ThemeService, providedIn: 'root' });
|
|
917
917
|
}
|
|
918
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
918
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ThemeService, decorators: [{
|
|
919
919
|
type: Injectable,
|
|
920
920
|
args: [{
|
|
921
921
|
providedIn: 'root',
|
|
922
922
|
}]
|
|
923
|
-
}], ctorParameters:
|
|
923
|
+
}], ctorParameters: () => [{ type: i2.StorageService }] });
|
|
924
924
|
|
|
925
925
|
/**
|
|
926
926
|
* Exports for public API
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lenne.tech-ng-base.mjs","sources":["../../../projects/ng-base/src/functions/extract-files.function.ts","../../../projects/ng-base/src/factories/apollo-options.factory.ts","../../../projects/ng-base/src/directives/lazy-load.directive.ts","../../../projects/ng-base/src/directives/match-height.directive.ts","../../../projects/ng-base/src/directives/resizable.directive.ts","../../../projects/ng-base/src/pipes/safe-html.pipe.ts","../../../projects/ng-base/src/pipes/date-ago.pipe.ts","../../../projects/ng-base/src/base.module.ts","../../../projects/ng-base/src/decorators/auto-unsubscribe.decorator.ts","../../../projects/ng-base/src/guards/auth.guard.ts","../../../projects/ng-base/src/guards/can-deactivate.guard.ts","../../../projects/ng-base/src/guards/logout.guard.ts","../../../projects/ng-base/src/services/fullscreen.service.ts","../../../projects/ng-base/src/services/seo.service.ts","../../../projects/ng-base/src/services/theme.service.ts","../../../projects/ng-base/public-api.ts","../../../projects/ng-base/lenne.tech-ng-base.ts"],"sourcesContent":["/**\n * Inspired by Inpspired by https://github.com/jaydenseric/extract-files/releases/tag/v11.0.0\n */\n\n/**\n * Reactive native file\n */\nclass ReactNativeFile {\n constructor(public uri: string, public name: string, public type: string) {}\n}\n\n/**\n * Check whether value is an extractable file\n */\nfunction isExtractableFile(value) {\n return (\n (typeof File !== 'undefined' && value instanceof File) ||\n (typeof Blob !== 'undefined' && value instanceof Blob) ||\n value instanceof ReactNativeFile\n );\n}\n\n/**\n * Clones a value, recursively extracting\n */\nexport default function extractFiles(value, path = '', isExtractableFileFunc = isExtractableFile) {\n // Map of extracted files and their object paths within the input value.\n const files = new Map();\n\n // Map of arrays and objects recursed within the input value and their clones,\n // for reusing clones of values that are referenced multiple times within the\n // input value.\n const clones = new Map();\n\n /**\n * Recursively clones the value, extracting files.\n */\n function recurse(recurseValue, recursePath, recursed) {\n let clone = recurseValue;\n\n if (isExtractableFileFunc(recurseValue)) {\n clone = null;\n\n const filePaths = files.get(recurseValue);\n\n filePaths ? filePaths.push(recursePath) : files.set(recurseValue, [recursePath]);\n } else {\n const isList =\n Array.isArray(recurseValue) || (typeof FileList !== 'undefined' && recurseValue instanceof FileList);\n const isObject = recurseValue && recurseValue.constructor === Object;\n\n if (isList || isObject) {\n const hasClone = clones.has(recurseValue);\n\n if (hasClone) {\n clone = clones.get(recurseValue);\n } else {\n clone = isList ? [] : {};\n\n clones.set(recurseValue, clone);\n }\n\n if (!recursed.has(recurseValue)) {\n const pathPrefix = recursePath ? `${recursePath}.` : '';\n const recursedDeeper = new Set(recursed).add(recurseValue);\n\n if (isList) {\n let index = 0;\n\n for (const item of recurseValue as any) {\n const itemClone = recurse(item, pathPrefix + index++, recursedDeeper);\n\n if (!hasClone) {\n clone.push(itemClone);\n }\n }\n } else {\n for (const key of Object.keys(recurseValue)) {\n const propertyClone = recurse(recurseValue[key], pathPrefix + key, recursedDeeper);\n\n if (!hasClone) {\n clone[key] = propertyClone;\n }\n }\n }\n }\n }\n }\n\n return clone;\n }\n\n return {\n clone: recurse(value, path, new Set()),\n files,\n };\n}\n","import { HttpLink } from 'apollo-angular/http';\nimport { ApolloLink, concat, fromPromise, split } from '@apollo/client/core';\nimport { InMemoryCache } from '@apollo/client/cache';\nimport { getMainDefinition } from '@apollo/client/utilities';\nimport {\n AuthService,\n BaseModuleConfig,\n createRestartableClient,\n RestartableClient,\n WsService,\n} from '@lenne.tech/ng-base/shared';\nimport { GraphQLWsLink } from '@apollo/client/link/subscriptions';\nimport extractFiles from '../functions/extract-files.function';\nimport { firstValueFrom } from 'rxjs';\nimport { onError } from '@apollo/client/link/error';\n\n/**\n * Factory for apollo-angular options\n */\nexport function apolloOptionsFactory(\n baseModuleConfig: BaseModuleConfig,\n httpLink: HttpLink,\n authService: AuthService,\n wsService: WsService\n) {\n const links = [];\n\n const http = httpLink.create({\n uri: baseModuleConfig.apiUrl,\n extractFiles,\n });\n\n const authMiddleware = new ApolloLink((operation, forward) => {\n const headers: any = {};\n const operationName = (operation.query.definitions[0] as any)?.selectionSet?.selections[0]?.name?.value;\n\n if (localStorage) {\n let token: string;\n\n if (operationName === 'refreshToken') {\n token = authService.refreshToken || null;\n } else {\n token = authService.token || null;\n }\n\n if (token) {\n headers.Authorization = 'Bearer ' + token;\n }\n\n operation.setContext(() => ({ headers }));\n }\n return forward(operation);\n });\n\n const errorLink = onError(({ graphQLErrors, networkError, operation, forward }) => {\n if (graphQLErrors) {\n for (const err of graphQLErrors) {\n switch (err.extensions.code) {\n case 'UNAUTHENTICATED': {\n if (\n err.message !== 'Expired refresh token' &&\n err.message !== 'Expired token' &&\n err.message !== 'Invalid token'\n ) {\n return;\n }\n\n if (err.message === 'Expired refresh token' || err.message === 'Invalid token') {\n authService.clearSession();\n return;\n }\n\n return fromPromise(firstValueFrom(authService.requestNewToken()))\n .filter((value) => Boolean(value))\n .flatMap((response) => {\n const oldHeaders = operation.getContext().headers;\n // modify the operation context with a new token\n operation.setContext({\n headers: {\n ...oldHeaders,\n Authorization: `Bearer ${response.token}`,\n },\n });\n\n // retry the request, returning the new observable\n return forward(operation);\n });\n }\n }\n }\n }\n });\n\n if (baseModuleConfig.logging) {\n console.log(baseModuleConfig);\n }\n\n if (baseModuleConfig.wsUrl) {\n const wsLink = new GraphQLWsLink(\n createRestartableClient({\n url: baseModuleConfig.wsUrl,\n connectionParams: () => {\n return {\n Authorization: authService.token ? 'Bearer ' + authService.token : undefined,\n };\n },\n }) as any\n ) as any;\n\n // Set client for reconnection on logout/login\n wsService.client = wsLink.client as RestartableClient;\n\n // using the ability to split links, you can send data to each link\n // depending on what kind of operation is being sent\n links.push(\n split(\n // split based on operation type\n ({ query }) => {\n // @ts-ignore\n const { kind, operation } = getMainDefinition(query);\n return kind === 'OperationDefinition' && operation === 'subscription';\n },\n wsLink,\n concat(concat(authMiddleware, errorLink), http)\n )\n );\n } else {\n links.push(authMiddleware);\n links.push(errorLink);\n links.push(http);\n }\n\n return {\n link: ApolloLink.from(links),\n cache: new InMemoryCache(),\n defaultOptions: {\n query: {\n fetchPolicy: 'network-only',\n },\n },\n };\n}\n","import { AfterViewInit, Directive, ElementRef, HostBinding, Input } from '@angular/core';\n\n/**\n * Directive for lazy loading images\n */\n@Directive({\n selector: 'img[ltLazyLoad]',\n})\nexport class LazyLoadDirective implements AfterViewInit {\n @HostBinding('attr.src') srcAttr = null;\n @Input() src: string;\n\n constructor(private el: ElementRef) {}\n\n ngAfterViewInit() {\n this.canLazyLoad() ? this.lazyLoadImage() : this.loadImage();\n }\n\n private canLazyLoad() {\n return window && 'IntersectionObserver' in window;\n }\n\n private lazyLoadImage() {\n const obs = new IntersectionObserver((entries) => {\n entries.forEach(({ isIntersecting }) => {\n if (isIntersecting) {\n this.loadImage();\n obs.unobserve(this.el.nativeElement);\n }\n });\n });\n obs.observe(this.el.nativeElement);\n }\n\n private loadImage() {\n this.srcAttr = this.src;\n }\n}\n","import { AfterViewInit, Directive, ElementRef, HostListener, Inject, Input, PLATFORM_ID } from '@angular/core';\nimport { ImageService } from '@lenne.tech/ng-base/shared';\nimport { isPlatformBrowser } from '@angular/common';\n\n/**\n * Set same height (maximum) to different elements\n */\n@Directive({\n selector: '[ltMatchHeight]',\n})\nexport class MatchHeightDirective implements AfterViewInit {\n // class name to match height\n @Input()\n ltMatchHeight: string | string[];\n\n // Replace lazy loading images with immediate loading images\n @Input()\n loadImages = true;\n\n // Wether current platform is a browser\n readonly isBrowser: boolean;\n\n observer: MutationObserver;\n\n constructor(protected el: ElementRef, protected imageService: ImageService, @Inject(PLATFORM_ID) platformId: string) {\n this.isBrowser = isPlatformBrowser(platformId);\n }\n\n @HostListener('window:resize')\n onResize() {\n this.matchHeight(this.el.nativeElement, this.ltMatchHeight);\n }\n\n ngAfterViewInit() {\n this.matchHeight(this.el.nativeElement, this.ltMatchHeight);\n this.observer = new MutationObserver(() => {\n this.matchHeight(this.el.nativeElement, this.ltMatchHeight);\n });\n\n //Observes if one or more elements get added to or removed from the childlist and applies matching heights\n this.observer.observe(this.el.nativeElement, { childList: true });\n }\n\n async matchHeight(parent: HTMLElement, target: string | string[]) {\n if (!parent) {\n return;\n }\n\n let classNames;\n if (!Array.isArray(target)) {\n classNames = [target];\n } else {\n classNames = target;\n }\n\n for (const className of classNames) {\n // find all child structureElements with the selected class name\n const children = parent.getElementsByClassName(className);\n\n if (!children || children.length < 2) {\n continue;\n }\n\n // Load images of children\n if (this.loadImages) {\n await this.imageService.preLoadImages({ elements: children });\n }\n\n // reset all children height\n Array.from(children).forEach((element: HTMLElement) => {\n element.style.height = 'initial';\n });\n\n // get all the child structureElements heights\n const itemHeights = Array.from(children).map((element) => {\n if (element.getBoundingClientRect) {\n return element.getBoundingClientRect().height;\n }\n return 0;\n });\n\n // find out the tallest one\n const maxHeight = itemHeights.reduce((prev, curr) => (curr > prev ? curr : prev), 0);\n\n // update the child structureElements height to the tallest one\n Array.from(children).forEach((element: HTMLElement) => (element.style.height = `${maxHeight}px`));\n }\n }\n}\n","import { Directive, ElementRef, Input, OnInit } from '@angular/core';\n\n/**\n * Reszise detection\n * (inpsired by: https://stackblitz.com/edit/angular-resizable)\n */\n@Directive({\n selector: '[ltResizable]',\n})\nexport class ResizableDirective implements OnInit {\n @Input() resizableGrabWidth = 8;\n @Input() resizableMinWidth = 10;\n\n dragging = false;\n\n constructor(private el: ElementRef) {}\n\n ngOnInit(): void {\n this.addListenerToDocument();\n this.addListenerToElement();\n }\n\n mouseMoveG(evt) {\n if (!this.dragging) {\n return;\n }\n this.newWidth(evt.clientX - this.el.nativeElement.offsetLeft);\n evt.stopPropagation();\n }\n\n newWidth(wid) {\n const result = Math.max(this.resizableMinWidth, wid);\n this.el.nativeElement.style.width = result + 'px';\n }\n\n mouseDown(evt) {\n if (this.inDragRegion(evt)) {\n this.dragging = true;\n this.preventGlobalMouseEvents();\n evt.stopPropagation();\n }\n }\n\n restoreGlobalMouseEvents() {\n document.body.style['pointer-events'] = 'auto';\n }\n\n mouseUpG(evt: Event) {\n if (!this.dragging) {\n return;\n }\n this.restoreGlobalMouseEvents();\n this.dragging = false;\n evt.stopPropagation();\n }\n\n mouseMove(evt) {\n if (this.inDragRegion(evt) || this.dragging) {\n this.el.nativeElement.style.cursor = 'col-resize';\n } else {\n this.el.nativeElement.style.cursor = 'default';\n }\n }\n\n preventGlobalMouseEvents() {\n document.body.style['pointer-events'] = 'none';\n }\n\n inDragRegion(evt) {\n return this.el.nativeElement.clientWidth - evt.clientX + this.el.nativeElement.offsetLeft < this.resizableGrabWidth;\n }\n\n private addListenerToDocument() {\n document.addEventListener(\n 'mousemove',\n (e) => {\n this.mouseMoveG(e);\n },\n true\n );\n\n document.addEventListener(\n 'mouseup',\n (e) => {\n this.mouseUpG(e);\n },\n true\n );\n }\n\n private addListenerToElement() {\n this.el.nativeElement.addEventListener(\n 'mousedown',\n (e) => {\n this.mouseDown(e);\n },\n true\n );\n\n this.el.nativeElement.addEventListener(\n 'mousemove',\n (e) => {\n this.mouseMove(e);\n },\n true\n );\n }\n}\n","import { DomSanitizer } from '@angular/platform-browser';\nimport { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * Declarate html as safe\n */\n@Pipe({ name: 'ltSafeHtml' })\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private sanitized: DomSanitizer) {}\n\n transform(value) {\n return this.sanitized.bypassSecurityTrustHtml(value);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'dateAgo',\n pure: true,\n})\nexport class DateAgoPipe implements PipeTransform {\n intervals = {\n year: 31536000,\n month: 2592000,\n week: 604800,\n day: 86400,\n hour: 3600,\n minute: 60,\n second: 1,\n };\n\n singular = {\n year: 'Jahr',\n month: 'Monat',\n week: 'Woche',\n day: 'Tag',\n hour: 'Stunde',\n minute: 'Minute',\n second: 'Sekunde',\n };\n\n plural = {\n year: 'Jahren',\n month: 'Monaten',\n week: 'Wochen',\n day: 'Tagen',\n hour: 'Stunden',\n minute: 'Minuten',\n second: 'Sekunden',\n };\n\n transform(value: any, currentDate?: Date): any {\n const now = currentDate ?? new Date();\n if (value) {\n const seconds = Math.floor((+now - +new Date(value)) / 1000);\n if (seconds < 29) {\n return 'gerade eben'; // less than 30 seconds ago will show as 'Just now'\n }\n\n let counter;\n for (const i of Object.keys(this.intervals)) {\n counter = Math.floor(seconds / this.intervals[i]);\n if (counter > 0) {\n if (counter === 1) {\n return 'vor ' + counter + ' ' + this.singular[i]; // singular (1 day ago)\n } else {\n return 'vor ' + counter + ' ' + this.plural[i]; // plural (2 days ago)\n }\n }\n }\n }\n return value;\n }\n}\n","import { APOLLO_OPTIONS, ApolloModule } from 'apollo-angular';\nimport { HttpLink } from 'apollo-angular/http';\nimport { ModuleWithProviders, NgModule, Provider } from '@angular/core';\n\nimport { apolloOptionsFactory } from './factories/apollo-options.factory';\nimport { LazyLoadDirective } from './directives/lazy-load.directive';\nimport { MatchHeightDirective } from './directives/match-height.directive';\nimport { ResizableDirective } from './directives/resizable.directive';\nimport { SafeHtmlPipe } from './pipes/safe-html.pipe';\nimport { DateAgoPipe } from './pipes/date-ago.pipe';\nimport { AuthService, BASE_MODULE_CONFIG, BaseModuleConfig, WsService } from '@lenne.tech/ng-base/shared';\nimport { HttpClientModule } from '@angular/common/http';\n\n// Imported and exported elements\nconst elements = [\n // Directives\n LazyLoadDirective,\n MatchHeightDirective,\n ResizableDirective,\n\n // Pipes\n SafeHtmlPipe,\n DateAgoPipe,\n];\n\n/**\n * Base module\n */\n@NgModule({\n imports: [ApolloModule, HttpClientModule],\n declarations: elements,\n exports: [...elements, ApolloModule, HttpClientModule],\n})\nexport class BaseModule {\n /**\n * Set configuration of base module in root module of the app\n */\n static forRoot(baseModuleConfig: BaseModuleConfig = {}, AppAuthService?): ModuleWithProviders<BaseModule> {\n // Default config\n const config = {\n apiUrl: '',\n authGuardRedirectUrl: '/auth',\n logging: false,\n version: null,\n prefix: null,\n scrollDetectionOffset: 200,\n scrollOffset: 100,\n storageType: 'local',\n securePasswordTransfer: true,\n ...baseModuleConfig,\n };\n\n if (config.logging) {\n console.log('Config:', config);\n }\n\n // Prepare providers\n const providers: Provider[] = [\n {\n provide: BASE_MODULE_CONFIG,\n useValue: config,\n },\n ];\n\n // Add apollo features if API URL is set\n if (baseModuleConfig.apiUrl) {\n providers.push({\n provide: APOLLO_OPTIONS,\n useFactory: apolloOptionsFactory,\n deps: [BASE_MODULE_CONFIG, HttpLink, AppAuthService ? AppAuthService : AuthService, WsService],\n });\n } else if (config.logging) {\n console.log('apiUrl is missing, ApolloLink is not initialized');\n }\n\n // Return root module\n return {\n ngModule: BaseModule,\n providers,\n };\n }\n}\n","/**\n * Decorator for automatically unsubscribe subscriptions\n * Inspired by https://codereacter.medium.com/angular-advanced-features-and-tips-you-may-not-know-about-cae3b8527184#9bd6\n */\nexport function AutoUnsubscribe(blackList: string[] = []) {\n return function (constructor: any) {\n const original = constructor.prototype.ngOnDestroy;\n\n constructor.prototype.ngOnDestroy = function () {\n for (const prop of Object.keys(this)) {\n if (!blackList.includes(prop)) {\n const property = this[prop];\n if (property && typeof property.unsubscribe === 'function') {\n property.unsubscribe();\n }\n }\n }\n if (original && typeof original === 'function') {\n original.apply(this, arguments);\n }\n };\n };\n}\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { AuthService, BASE_MODULE_CONFIG, BaseModuleConfig } from '@lenne.tech/ng-base/shared';\nimport { isPlatformBrowser } from '@angular/common';\n\n/**\n * Authentication guard\n */\n@Injectable()\nexport class AuthGuard {\n /**\n * Imports\n */\n constructor(\n private router: Router,\n private authService: AuthService,\n @Inject(BASE_MODULE_CONFIG) private moduleConfig: BaseModuleConfig,\n @Inject(PLATFORM_ID) private platformId: object\n ) {}\n\n /**\n * Can activate main route\n */\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\n if (isPlatformBrowser(this.platformId)) {\n return new Observable((subscriber) => {\n let allowed = false;\n let redirected = false;\n /* If the user is logged in and the route is not marked as opposite, then the user is allowed to access the route. */\n const opposite = route?.data?.opposite ? route?.data?.opposite : false;\n const redirectAuthUrl = route?.data?.redirectAuthUrl\n ? route.data.redirectAuthUrl\n : this.moduleConfig.authGuardRedirectUrl;\n const redirectRoleUrl = route?.data?.redirectRoleUrl\n ? route.data.redirectRoleUrl\n : this.moduleConfig.authGuardRedirectUrl;\n const disableQueryParams = route?.data?.disableQueryParams ?? false;\n const queryParams = disableQueryParams\n ? {}\n : {\n queryParams: {\n redirectUrl: route['_routerState'].url,\n },\n };\n\n if (this.authService.token && !opposite) {\n if (route.data?.roles) {\n const user = this.authService.currentUser;\n allowed = !!route.data.roles.find((role) => user.roles?.includes(role));\n\n if (!allowed && redirectRoleUrl) {\n this.router.navigate([redirectRoleUrl], queryParams);\n redirected = true;\n }\n } else {\n allowed = true;\n }\n } else if (!this.authService.token && opposite) {\n allowed = true;\n }\n\n if (!allowed && redirectAuthUrl && !redirected) {\n this.router.navigate([redirectAuthUrl], queryParams);\n }\n\n subscriber.next(allowed);\n subscriber.complete();\n });\n }\n }\n\n /**\n * Can activate child route\n */\n canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\n return this.canActivate(route, state);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ICanComponentDeactivate } from '@lenne.tech/ng-base/shared';\n\n/**\n * Guard to check if a component can be deactivated\n */\n@Injectable()\nexport class CanDeactivateGuard {\n canDeactivate(component: ICanComponentDeactivate) {\n return component.canDeactivate ? component.canDeactivate() : true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { AuthService } from '@lenne.tech/ng-base/shared';\n\n/**\n * Logout guard\n */\n@Injectable()\nexport class LogoutGuard {\n constructor(private router: Router, private authService: AuthService) {}\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\n return new Observable((subscriber) => {\n if (this.authService.token) {\n this.authService.logout();\n }\n\n subscriber.next(true);\n subscriber.complete();\n });\n }\n\n canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\n return this.canActivate(route, state);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n/**\n * Fullscreen service\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class FullscreenService {\n private _isFullscreenActive: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n constructor() {\n this.listenToFullscreenEvent();\n }\n\n get fullscreenState(): boolean {\n return this._isFullscreenActive.value;\n }\n\n get fullscreenStateAsObservable(): Observable<boolean> {\n return this._isFullscreenActive.asObservable();\n }\n\n public toggleFullscreen() {\n const elem = document.documentElement;\n if (!this._isFullscreenActive.value) {\n elem.requestFullscreen();\n this._isFullscreenActive.next(true);\n } else {\n document.exitFullscreen();\n this._isFullscreenActive.next(false);\n }\n }\n\n /**\n * Event Listener for fullscreen toggle\n */\n private listenToFullscreenEvent() {\n document.addEventListener('fullscreenchange', () => {\n if (document.fullscreenElement) {\n this._isFullscreenActive.next(true);\n } else {\n this._isFullscreenActive.next(false);\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Meta, Title } from '@angular/platform-browser';\n\ninterface SEOData {\n title: string;\n description: string;\n image?: string;\n url?: string;\n keywords?: string;\n}\n\n/**\n * SEO service for setting HTML meta data\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SEOService {\n constructor(private titleService: Title, private metaTagService: Meta) {}\n\n public initPageForSEO(input: SEOData) {\n this.setGeneralData(input);\n this.setTwitterData(input);\n this.setTwitterData(input);\n this.setFacebookData(input);\n\n if (input.keywords) {\n this.setPageKeywords(input.keywords);\n }\n }\n\n /**\n * Set general metadata\n *\n * @param data\n * @private\n */\n private setGeneralData(data: SEOData) {\n this.titleService.setTitle(data.title);\n this.metaTagService.updateTag({ name: 'description', content: data.description });\n }\n\n /**\n * Set metadata for twitter\n *\n * @param data\n * @private\n */\n private setTwitterData(data: SEOData) {\n this.metaTagService.updateTag({ name: 'twitter:title', content: data.title });\n this.metaTagService.updateTag({ name: 'twitter:description', content: data.description });\n this.metaTagService.updateTag({\n property: 'twitter:url',\n content: data.url ? data.url : window?.location.href,\n });\n\n if (data.image) {\n this.metaTagService.updateTag({\n property: 'twitter:image',\n content: data.image,\n });\n\n this.metaTagService.updateTag({\n property: 'twitter:card',\n content: 'summary_large_image',\n });\n }\n }\n\n /**\n * Set metadata for facebook\n *\n * @param data\n * @private\n */\n private setFacebookData(data: SEOData) {\n this.metaTagService.updateTag({ property: 'og:title', content: data.title });\n this.metaTagService.updateTag({ property: 'og:description', content: data.description });\n this.metaTagService.updateTag({\n property: 'og:type',\n content: 'website',\n });\n this.metaTagService.updateTag({\n property: 'og:url',\n content: data.url ? data.url : window?.location.href,\n });\n\n if (data.image) {\n this.metaTagService.updateTag({\n property: 'og:image',\n content: data.image,\n });\n }\n }\n\n /**\n * Set page keywords\n *\n * @param keywords\n * @private\n */\n private setPageKeywords(keywords: string) {\n this.metaTagService.updateTag({ name: 'keywords', content: keywords });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { StorageService } from '@lenne.tech/ng-base/shared';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ThemeService {\n _theme = new BehaviorSubject<string>('light');\n\n get theme(): string {\n return this._theme.value;\n }\n\n set theme(theme: string) {\n this._theme.next(theme);\n this.storageService.save('theme', theme);\n }\n\n get themeObservable(): Observable<string> {\n return this._theme.asObservable();\n }\n\n constructor(private storageService: StorageService) {\n // Load from storage\n this.theme = this.storageService.load('theme') as string;\n\n // Use system theme if no theme is set\n if (!this.theme) {\n this.checkSystemTheme();\n }\n }\n\n /**\n * Check theme from system\n */\n checkSystemTheme() {\n if (window?.matchMedia) {\n this.theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n }\n }\n}\n","/**\n * Exports for public API\n */\n\n// Module\nexport * from './src/base.module';\n\n// Decorators\nexport * from './src/decorators/auto-unsubscribe.decorator';\n\n// Directives\nexport * from './src/directives/lazy-load.directive';\nexport * from './src/directives/match-height.directive';\nexport * from './src/directives/resizable.directive';\n\n// Factories\nexport * from './src/factories/apollo-options.factory';\n\n// Guards\nexport * from './src/guards/auth.guard';\nexport * from './src/guards/can-deactivate.guard';\nexport * from './src/guards/logout.guard';\n\n// Pipes\nexport * from './src/pipes/safe-html.pipe';\nexport * from './src/pipes/date-ago.pipe';\n\n// Services\nexport * from './src/services/fullscreen.service';\nexport * from './src/services/seo.service';\nexport * from './src/services/theme.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lenne.tech-ng-base.mjs","sources":["../../../projects/ng-base/src/functions/extract-files.function.ts","../../../projects/ng-base/src/factories/apollo-options.factory.ts","../../../projects/ng-base/src/directives/lazy-load.directive.ts","../../../projects/ng-base/src/directives/match-height.directive.ts","../../../projects/ng-base/src/directives/resizable.directive.ts","../../../projects/ng-base/src/pipes/safe-html.pipe.ts","../../../projects/ng-base/src/pipes/date-ago.pipe.ts","../../../projects/ng-base/src/base.module.ts","../../../projects/ng-base/src/decorators/auto-unsubscribe.decorator.ts","../../../projects/ng-base/src/guards/auth.guard.ts","../../../projects/ng-base/src/guards/can-deactivate.guard.ts","../../../projects/ng-base/src/guards/logout.guard.ts","../../../projects/ng-base/src/services/fullscreen.service.ts","../../../projects/ng-base/src/services/seo.service.ts","../../../projects/ng-base/src/services/theme.service.ts","../../../projects/ng-base/public-api.ts","../../../projects/ng-base/lenne.tech-ng-base.ts"],"sourcesContent":["/**\n * Inspired by Inpspired by https://github.com/jaydenseric/extract-files/releases/tag/v11.0.0\n */\n\n/**\n * Reactive native file\n */\nclass ReactNativeFile {\n constructor(public uri: string, public name: string, public type: string) {}\n}\n\n/**\n * Check whether value is an extractable file\n */\nfunction isExtractableFile(value) {\n return (\n (typeof File !== 'undefined' && value instanceof File) ||\n (typeof Blob !== 'undefined' && value instanceof Blob) ||\n value instanceof ReactNativeFile\n );\n}\n\n/**\n * Clones a value, recursively extracting\n */\nexport default function extractFiles(value, path = '', isExtractableFileFunc = isExtractableFile) {\n // Map of extracted files and their object paths within the input value.\n const files = new Map();\n\n // Map of arrays and objects recursed within the input value and their clones,\n // for reusing clones of values that are referenced multiple times within the\n // input value.\n const clones = new Map();\n\n /**\n * Recursively clones the value, extracting files.\n */\n function recurse(recurseValue, recursePath, recursed) {\n let clone = recurseValue;\n\n if (isExtractableFileFunc(recurseValue)) {\n clone = null;\n\n const filePaths = files.get(recurseValue);\n\n filePaths ? filePaths.push(recursePath) : files.set(recurseValue, [recursePath]);\n } else {\n const isList =\n Array.isArray(recurseValue) || (typeof FileList !== 'undefined' && recurseValue instanceof FileList);\n const isObject = recurseValue && recurseValue.constructor === Object;\n\n if (isList || isObject) {\n const hasClone = clones.has(recurseValue);\n\n if (hasClone) {\n clone = clones.get(recurseValue);\n } else {\n clone = isList ? [] : {};\n\n clones.set(recurseValue, clone);\n }\n\n if (!recursed.has(recurseValue)) {\n const pathPrefix = recursePath ? `${recursePath}.` : '';\n const recursedDeeper = new Set(recursed).add(recurseValue);\n\n if (isList) {\n let index = 0;\n\n for (const item of recurseValue as any) {\n const itemClone = recurse(item, pathPrefix + index++, recursedDeeper);\n\n if (!hasClone) {\n clone.push(itemClone);\n }\n }\n } else {\n for (const key of Object.keys(recurseValue)) {\n const propertyClone = recurse(recurseValue[key], pathPrefix + key, recursedDeeper);\n\n if (!hasClone) {\n clone[key] = propertyClone;\n }\n }\n }\n }\n }\n }\n\n return clone;\n }\n\n return {\n clone: recurse(value, path, new Set()),\n files,\n };\n}\n","import { HttpLink } from 'apollo-angular/http';\nimport { ApolloLink, concat, fromPromise, split } from '@apollo/client/core';\nimport { InMemoryCache } from '@apollo/client/cache';\nimport { getMainDefinition } from '@apollo/client/utilities';\nimport {\n AuthService,\n BaseModuleConfig,\n createRestartableClient,\n RestartableClient,\n WsService,\n} from '@lenne.tech/ng-base/shared';\nimport { GraphQLWsLink } from '@apollo/client/link/subscriptions';\nimport extractFiles from '../functions/extract-files.function';\nimport { firstValueFrom } from 'rxjs';\nimport { onError } from '@apollo/client/link/error';\n\n/**\n * Factory for apollo-angular options\n */\nexport function apolloOptionsFactory(\n baseModuleConfig: BaseModuleConfig,\n httpLink: HttpLink,\n authService: AuthService,\n wsService: WsService\n) {\n const links = [];\n\n const http = httpLink.create({\n uri: baseModuleConfig.apiUrl,\n extractFiles,\n });\n\n const authMiddleware = new ApolloLink((operation, forward) => {\n const headers: any = {};\n const operationName = (operation.query.definitions[0] as any)?.selectionSet?.selections[0]?.name?.value;\n\n if (localStorage) {\n let token: string;\n\n if (operationName === 'refreshToken') {\n token = authService.refreshToken || null;\n } else {\n token = authService.token || null;\n }\n\n if (token) {\n headers.Authorization = 'Bearer ' + token;\n }\n\n operation.setContext(() => ({ headers }));\n }\n return forward(operation);\n });\n\n const errorLink = onError(({ graphQLErrors, networkError, operation, forward }) => {\n if (graphQLErrors) {\n for (const err of graphQLErrors) {\n switch (err.extensions.code) {\n case 'UNAUTHENTICATED': {\n if (\n err.message !== 'Expired refresh token' &&\n err.message !== 'Expired token' &&\n err.message !== 'Invalid token'\n ) {\n return;\n }\n\n if (err.message === 'Expired refresh token' || err.message === 'Invalid token') {\n authService.clearSession();\n return;\n }\n\n return fromPromise(firstValueFrom(authService.requestNewToken()))\n .filter((value) => Boolean(value))\n .flatMap((response) => {\n const oldHeaders = operation.getContext().headers;\n // modify the operation context with a new token\n operation.setContext({\n headers: {\n ...oldHeaders,\n Authorization: `Bearer ${response.token}`,\n },\n });\n\n // retry the request, returning the new observable\n return forward(operation);\n });\n }\n }\n }\n }\n });\n\n if (baseModuleConfig.logging) {\n console.log(baseModuleConfig);\n }\n\n if (baseModuleConfig.wsUrl) {\n const wsLink = new GraphQLWsLink(\n createRestartableClient({\n url: baseModuleConfig.wsUrl,\n connectionParams: () => {\n return {\n Authorization: authService.token ? 'Bearer ' + authService.token : undefined,\n };\n },\n }) as any\n ) as any;\n\n // Set client for reconnection on logout/login\n wsService.client = wsLink.client as RestartableClient;\n\n // using the ability to split links, you can send data to each link\n // depending on what kind of operation is being sent\n links.push(\n split(\n // split based on operation type\n ({ query }) => {\n // @ts-ignore\n const { kind, operation } = getMainDefinition(query);\n return kind === 'OperationDefinition' && operation === 'subscription';\n },\n wsLink,\n concat(concat(authMiddleware, errorLink), http)\n )\n );\n } else {\n links.push(authMiddleware);\n links.push(errorLink);\n links.push(http);\n }\n\n return {\n link: ApolloLink.from(links),\n cache: new InMemoryCache(),\n defaultOptions: {\n query: {\n fetchPolicy: 'network-only',\n },\n },\n };\n}\n","import { AfterViewInit, Directive, ElementRef, HostBinding, Input } from '@angular/core';\n\n/**\n * Directive for lazy loading images\n */\n@Directive({\n selector: 'img[ltLazyLoad]',\n})\nexport class LazyLoadDirective implements AfterViewInit {\n @HostBinding('attr.src') srcAttr = null;\n @Input() src: string;\n\n constructor(private el: ElementRef) {}\n\n ngAfterViewInit() {\n this.canLazyLoad() ? this.lazyLoadImage() : this.loadImage();\n }\n\n private canLazyLoad() {\n return window && 'IntersectionObserver' in window;\n }\n\n private lazyLoadImage() {\n const obs = new IntersectionObserver((entries) => {\n entries.forEach(({ isIntersecting }) => {\n if (isIntersecting) {\n this.loadImage();\n obs.unobserve(this.el.nativeElement);\n }\n });\n });\n obs.observe(this.el.nativeElement);\n }\n\n private loadImage() {\n this.srcAttr = this.src;\n }\n}\n","import { AfterViewInit, Directive, ElementRef, HostListener, Inject, Input, PLATFORM_ID } from '@angular/core';\nimport { ImageService } from '@lenne.tech/ng-base/shared';\nimport { isPlatformBrowser } from '@angular/common';\n\n/**\n * Set same height (maximum) to different elements\n */\n@Directive({\n selector: '[ltMatchHeight]',\n})\nexport class MatchHeightDirective implements AfterViewInit {\n // class name to match height\n @Input()\n ltMatchHeight: string | string[];\n\n // Replace lazy loading images with immediate loading images\n @Input()\n loadImages = true;\n\n // Wether current platform is a browser\n readonly isBrowser: boolean;\n\n observer: MutationObserver;\n\n constructor(protected el: ElementRef, protected imageService: ImageService, @Inject(PLATFORM_ID) platformId: string) {\n this.isBrowser = isPlatformBrowser(platformId);\n }\n\n @HostListener('window:resize')\n onResize() {\n this.matchHeight(this.el.nativeElement, this.ltMatchHeight);\n }\n\n ngAfterViewInit() {\n this.matchHeight(this.el.nativeElement, this.ltMatchHeight);\n this.observer = new MutationObserver(() => {\n this.matchHeight(this.el.nativeElement, this.ltMatchHeight);\n });\n\n //Observes if one or more elements get added to or removed from the childlist and applies matching heights\n this.observer.observe(this.el.nativeElement, { childList: true });\n }\n\n async matchHeight(parent: HTMLElement, target: string | string[]) {\n if (!parent) {\n return;\n }\n\n let classNames;\n if (!Array.isArray(target)) {\n classNames = [target];\n } else {\n classNames = target;\n }\n\n for (const className of classNames) {\n // find all child structureElements with the selected class name\n const children = parent.getElementsByClassName(className);\n\n if (!children || children.length < 2) {\n continue;\n }\n\n // Load images of children\n if (this.loadImages) {\n await this.imageService.preLoadImages({ elements: children });\n }\n\n // reset all children height\n Array.from(children).forEach((element: HTMLElement) => {\n element.style.height = 'initial';\n });\n\n // get all the child structureElements heights\n const itemHeights = Array.from(children).map((element) => {\n if (element.getBoundingClientRect) {\n return element.getBoundingClientRect().height;\n }\n return 0;\n });\n\n // find out the tallest one\n const maxHeight = itemHeights.reduce((prev, curr) => (curr > prev ? curr : prev), 0);\n\n // update the child structureElements height to the tallest one\n Array.from(children).forEach((element: HTMLElement) => (element.style.height = `${maxHeight}px`));\n }\n }\n}\n","import { Directive, ElementRef, Input, OnInit } from '@angular/core';\n\n/**\n * Reszise detection\n * (inpsired by: https://stackblitz.com/edit/angular-resizable)\n */\n@Directive({\n selector: '[ltResizable]',\n})\nexport class ResizableDirective implements OnInit {\n @Input() resizableGrabWidth = 8;\n @Input() resizableMinWidth = 10;\n\n dragging = false;\n\n constructor(private el: ElementRef) {}\n\n ngOnInit(): void {\n this.addListenerToDocument();\n this.addListenerToElement();\n }\n\n mouseMoveG(evt) {\n if (!this.dragging) {\n return;\n }\n this.newWidth(evt.clientX - this.el.nativeElement.offsetLeft);\n evt.stopPropagation();\n }\n\n newWidth(wid) {\n const result = Math.max(this.resizableMinWidth, wid);\n this.el.nativeElement.style.width = result + 'px';\n }\n\n mouseDown(evt) {\n if (this.inDragRegion(evt)) {\n this.dragging = true;\n this.preventGlobalMouseEvents();\n evt.stopPropagation();\n }\n }\n\n restoreGlobalMouseEvents() {\n document.body.style['pointer-events'] = 'auto';\n }\n\n mouseUpG(evt: Event) {\n if (!this.dragging) {\n return;\n }\n this.restoreGlobalMouseEvents();\n this.dragging = false;\n evt.stopPropagation();\n }\n\n mouseMove(evt) {\n if (this.inDragRegion(evt) || this.dragging) {\n this.el.nativeElement.style.cursor = 'col-resize';\n } else {\n this.el.nativeElement.style.cursor = 'default';\n }\n }\n\n preventGlobalMouseEvents() {\n document.body.style['pointer-events'] = 'none';\n }\n\n inDragRegion(evt) {\n return this.el.nativeElement.clientWidth - evt.clientX + this.el.nativeElement.offsetLeft < this.resizableGrabWidth;\n }\n\n private addListenerToDocument() {\n document.addEventListener(\n 'mousemove',\n (e) => {\n this.mouseMoveG(e);\n },\n true\n );\n\n document.addEventListener(\n 'mouseup',\n (e) => {\n this.mouseUpG(e);\n },\n true\n );\n }\n\n private addListenerToElement() {\n this.el.nativeElement.addEventListener(\n 'mousedown',\n (e) => {\n this.mouseDown(e);\n },\n true\n );\n\n this.el.nativeElement.addEventListener(\n 'mousemove',\n (e) => {\n this.mouseMove(e);\n },\n true\n );\n }\n}\n","import { DomSanitizer } from '@angular/platform-browser';\nimport { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * Declarate html as safe\n */\n@Pipe({ name: 'ltSafeHtml' })\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private sanitized: DomSanitizer) {}\n\n transform(value) {\n return this.sanitized.bypassSecurityTrustHtml(value);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'dateAgo',\n pure: true,\n})\nexport class DateAgoPipe implements PipeTransform {\n intervals = {\n year: 31536000,\n month: 2592000,\n week: 604800,\n day: 86400,\n hour: 3600,\n minute: 60,\n second: 1,\n };\n\n singular = {\n year: 'Jahr',\n month: 'Monat',\n week: 'Woche',\n day: 'Tag',\n hour: 'Stunde',\n minute: 'Minute',\n second: 'Sekunde',\n };\n\n plural = {\n year: 'Jahren',\n month: 'Monaten',\n week: 'Wochen',\n day: 'Tagen',\n hour: 'Stunden',\n minute: 'Minuten',\n second: 'Sekunden',\n };\n\n transform(value: any, currentDate?: Date): any {\n const now = currentDate ?? new Date();\n if (value) {\n const seconds = Math.floor((+now - +new Date(value)) / 1000);\n if (seconds < 29) {\n return 'gerade eben'; // less than 30 seconds ago will show as 'Just now'\n }\n\n let counter;\n for (const i of Object.keys(this.intervals)) {\n counter = Math.floor(seconds / this.intervals[i]);\n if (counter > 0) {\n if (counter === 1) {\n return 'vor ' + counter + ' ' + this.singular[i]; // singular (1 day ago)\n } else {\n return 'vor ' + counter + ' ' + this.plural[i]; // plural (2 days ago)\n }\n }\n }\n }\n return value;\n }\n}\n","import { APOLLO_OPTIONS, ApolloModule } from 'apollo-angular';\nimport { HttpLink } from 'apollo-angular/http';\nimport { ModuleWithProviders, NgModule, Provider } from '@angular/core';\n\nimport { apolloOptionsFactory } from './factories/apollo-options.factory';\nimport { LazyLoadDirective } from './directives/lazy-load.directive';\nimport { MatchHeightDirective } from './directives/match-height.directive';\nimport { ResizableDirective } from './directives/resizable.directive';\nimport { SafeHtmlPipe } from './pipes/safe-html.pipe';\nimport { DateAgoPipe } from './pipes/date-ago.pipe';\nimport { AuthService, BASE_MODULE_CONFIG, BaseModuleConfig, WsService } from '@lenne.tech/ng-base/shared';\nimport { HttpClientModule } from '@angular/common/http';\n\n// Imported and exported elements\nconst elements = [\n // Directives\n LazyLoadDirective,\n MatchHeightDirective,\n ResizableDirective,\n\n // Pipes\n SafeHtmlPipe,\n DateAgoPipe,\n];\n\n/**\n * Base module\n */\n@NgModule({\n imports: [ApolloModule, HttpClientModule],\n declarations: elements,\n exports: [...elements, ApolloModule, HttpClientModule],\n})\nexport class BaseModule {\n /**\n * Set configuration of base module in root module of the app\n */\n static forRoot(baseModuleConfig: BaseModuleConfig = {}, AppAuthService?): ModuleWithProviders<BaseModule> {\n // Default config\n const config = {\n apiUrl: '',\n authGuardRedirectUrl: '/auth',\n logging: false,\n version: null,\n prefix: null,\n scrollDetectionOffset: 200,\n scrollOffset: 100,\n storageType: 'local',\n securePasswordTransfer: true,\n ...baseModuleConfig,\n };\n\n if (config.logging) {\n console.log('Config:', config);\n }\n\n // Prepare providers\n const providers: Provider[] = [\n {\n provide: BASE_MODULE_CONFIG,\n useValue: config,\n },\n ];\n\n // Add apollo features if API URL is set\n if (baseModuleConfig.apiUrl) {\n providers.push({\n provide: APOLLO_OPTIONS,\n useFactory: apolloOptionsFactory,\n deps: [BASE_MODULE_CONFIG, HttpLink, AppAuthService ? AppAuthService : AuthService, WsService],\n });\n } else if (config.logging) {\n console.log('apiUrl is missing, ApolloLink is not initialized');\n }\n\n // Return root module\n return {\n ngModule: BaseModule,\n providers,\n };\n }\n}\n","/**\n * Decorator for automatically unsubscribe subscriptions\n * Inspired by https://codereacter.medium.com/angular-advanced-features-and-tips-you-may-not-know-about-cae3b8527184#9bd6\n */\nexport function AutoUnsubscribe(blackList: string[] = []) {\n return function (constructor: any) {\n const original = constructor.prototype.ngOnDestroy;\n\n constructor.prototype.ngOnDestroy = function () {\n for (const prop of Object.keys(this)) {\n if (!blackList.includes(prop)) {\n const property = this[prop];\n if (property && typeof property.unsubscribe === 'function') {\n property.unsubscribe();\n }\n }\n }\n if (original && typeof original === 'function') {\n original.apply(this, arguments);\n }\n };\n };\n}\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { AuthService, BASE_MODULE_CONFIG, BaseModuleConfig } from '@lenne.tech/ng-base/shared';\nimport { isPlatformBrowser } from '@angular/common';\n\n/**\n * Authentication guard\n */\n@Injectable()\nexport class AuthGuard {\n /**\n * Imports\n */\n constructor(\n private router: Router,\n private authService: AuthService,\n @Inject(BASE_MODULE_CONFIG) private moduleConfig: BaseModuleConfig,\n @Inject(PLATFORM_ID) private platformId: object\n ) {}\n\n /**\n * Can activate main route\n */\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\n if (isPlatformBrowser(this.platformId)) {\n return new Observable((subscriber) => {\n let allowed = false;\n let redirected = false;\n /* If the user is logged in and the route is not marked as opposite, then the user is allowed to access the route. */\n const opposite = route?.data?.opposite ? route?.data?.opposite : false;\n const redirectAuthUrl = route?.data?.redirectAuthUrl\n ? route.data.redirectAuthUrl\n : this.moduleConfig.authGuardRedirectUrl;\n const redirectRoleUrl = route?.data?.redirectRoleUrl\n ? route.data.redirectRoleUrl\n : this.moduleConfig.authGuardRedirectUrl;\n const disableQueryParams = route?.data?.disableQueryParams ?? false;\n const queryParams = disableQueryParams\n ? {}\n : {\n queryParams: {\n redirectUrl: route['_routerState'].url,\n },\n };\n\n if (this.authService.token && !opposite) {\n if (route.data?.roles) {\n const user = this.authService.currentUser;\n allowed = !!route.data.roles.find((role) => user.roles?.includes(role));\n\n if (!allowed && redirectRoleUrl) {\n this.router.navigate([redirectRoleUrl], queryParams);\n redirected = true;\n }\n } else {\n allowed = true;\n }\n } else if (!this.authService.token && opposite) {\n allowed = true;\n }\n\n if (!allowed && redirectAuthUrl && !redirected) {\n this.router.navigate([redirectAuthUrl], queryParams);\n }\n\n subscriber.next(allowed);\n subscriber.complete();\n });\n }\n }\n\n /**\n * Can activate child route\n */\n canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\n return this.canActivate(route, state);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ICanComponentDeactivate } from '@lenne.tech/ng-base/shared';\n\n/**\n * Guard to check if a component can be deactivated\n */\n@Injectable()\nexport class CanDeactivateGuard {\n canDeactivate(component: ICanComponentDeactivate) {\n return component.canDeactivate ? component.canDeactivate() : true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { AuthService } from '@lenne.tech/ng-base/shared';\n\n/**\n * Logout guard\n */\n@Injectable()\nexport class LogoutGuard {\n constructor(private router: Router, private authService: AuthService) {}\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\n return new Observable((subscriber) => {\n if (this.authService.token) {\n this.authService.logout();\n }\n\n subscriber.next(true);\n subscriber.complete();\n });\n }\n\n canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {\n return this.canActivate(route, state);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n/**\n * Fullscreen service\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class FullscreenService {\n private _isFullscreenActive: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n constructor() {\n this.listenToFullscreenEvent();\n }\n\n get fullscreenState(): boolean {\n return this._isFullscreenActive.value;\n }\n\n get fullscreenStateAsObservable(): Observable<boolean> {\n return this._isFullscreenActive.asObservable();\n }\n\n public toggleFullscreen() {\n const elem = document.documentElement;\n if (!this._isFullscreenActive.value) {\n elem.requestFullscreen();\n this._isFullscreenActive.next(true);\n } else {\n document.exitFullscreen();\n this._isFullscreenActive.next(false);\n }\n }\n\n /**\n * Event Listener for fullscreen toggle\n */\n private listenToFullscreenEvent() {\n document.addEventListener('fullscreenchange', () => {\n if (document.fullscreenElement) {\n this._isFullscreenActive.next(true);\n } else {\n this._isFullscreenActive.next(false);\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Meta, Title } from '@angular/platform-browser';\n\ninterface SEOData {\n title: string;\n description: string;\n image?: string;\n url?: string;\n keywords?: string;\n}\n\n/**\n * SEO service for setting HTML meta data\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SEOService {\n constructor(private titleService: Title, private metaTagService: Meta) {}\n\n public initPageForSEO(input: SEOData) {\n this.setGeneralData(input);\n this.setTwitterData(input);\n this.setTwitterData(input);\n this.setFacebookData(input);\n\n if (input.keywords) {\n this.setPageKeywords(input.keywords);\n }\n }\n\n /**\n * Set general metadata\n *\n * @param data\n * @private\n */\n private setGeneralData(data: SEOData) {\n this.titleService.setTitle(data.title);\n this.metaTagService.updateTag({ name: 'description', content: data.description });\n }\n\n /**\n * Set metadata for twitter\n *\n * @param data\n * @private\n */\n private setTwitterData(data: SEOData) {\n this.metaTagService.updateTag({ name: 'twitter:title', content: data.title });\n this.metaTagService.updateTag({ name: 'twitter:description', content: data.description });\n this.metaTagService.updateTag({\n property: 'twitter:url',\n content: data.url ? data.url : window?.location.href,\n });\n\n if (data.image) {\n this.metaTagService.updateTag({\n property: 'twitter:image',\n content: data.image,\n });\n\n this.metaTagService.updateTag({\n property: 'twitter:card',\n content: 'summary_large_image',\n });\n }\n }\n\n /**\n * Set metadata for facebook\n *\n * @param data\n * @private\n */\n private setFacebookData(data: SEOData) {\n this.metaTagService.updateTag({ property: 'og:title', content: data.title });\n this.metaTagService.updateTag({ property: 'og:description', content: data.description });\n this.metaTagService.updateTag({\n property: 'og:type',\n content: 'website',\n });\n this.metaTagService.updateTag({\n property: 'og:url',\n content: data.url ? data.url : window?.location.href,\n });\n\n if (data.image) {\n this.metaTagService.updateTag({\n property: 'og:image',\n content: data.image,\n });\n }\n }\n\n /**\n * Set page keywords\n *\n * @param keywords\n * @private\n */\n private setPageKeywords(keywords: string) {\n this.metaTagService.updateTag({ name: 'keywords', content: keywords });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { StorageService } from '@lenne.tech/ng-base/shared';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ThemeService {\n _theme = new BehaviorSubject<string>('light');\n\n get theme(): string {\n return this._theme.value;\n }\n\n set theme(theme: string) {\n this._theme.next(theme);\n this.storageService.save('theme', theme);\n }\n\n get themeObservable(): Observable<string> {\n return this._theme.asObservable();\n }\n\n constructor(private storageService: StorageService) {\n // Load from storage\n this.theme = this.storageService.load('theme') as string;\n\n // Use system theme if no theme is set\n if (!this.theme) {\n this.checkSystemTheme();\n }\n }\n\n /**\n * Check theme from system\n */\n checkSystemTheme() {\n if (window?.matchMedia) {\n this.theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n }\n }\n}\n","/**\n * Exports for public API\n */\n\n// Module\nexport * from './src/base.module';\n\n// Decorators\nexport * from './src/decorators/auto-unsubscribe.decorator';\n\n// Directives\nexport * from './src/directives/lazy-load.directive';\nexport * from './src/directives/match-height.directive';\nexport * from './src/directives/resizable.directive';\n\n// Factories\nexport * from './src/factories/apollo-options.factory';\n\n// Guards\nexport * from './src/guards/auth.guard';\nexport * from './src/guards/can-deactivate.guard';\nexport * from './src/guards/logout.guard';\n\n// Pipes\nexport * from './src/pipes/safe-html.pipe';\nexport * from './src/pipes/date-ago.pipe';\n\n// Services\nexport * from './src/services/fullscreen.service';\nexport * from './src/services/seo.service';\nexport * from './src/services/theme.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"angular-library",
|
|
11
11
|
"angular13+"
|
|
12
12
|
],
|
|
13
|
-
"version": "
|
|
13
|
+
"version": "17.0.0",
|
|
14
14
|
"author": "lenne.Tech <info@lenne.tech> (https://lenne.tech)",
|
|
15
15
|
"homepage": "https://github.com/lenneTech/ng-base",
|
|
16
16
|
"license": "MIT",
|
|
@@ -19,18 +19,18 @@
|
|
|
19
19
|
"url": "https://github.com/lenneTech/ng-base"
|
|
20
20
|
},
|
|
21
21
|
"peerDependencies": {
|
|
22
|
-
"@angular/common": "
|
|
23
|
-
"@angular/core": "
|
|
24
|
-
"@angular/forms": "
|
|
25
|
-
"@angular/platform-browser": "
|
|
26
|
-
"@angular/router": "
|
|
22
|
+
"@angular/common": "17.*.*",
|
|
23
|
+
"@angular/core": "17.*.*",
|
|
24
|
+
"@angular/forms": "17.*.*",
|
|
25
|
+
"@angular/platform-browser": "17.*.*",
|
|
26
|
+
"@angular/router": "17.*.*",
|
|
27
27
|
"bootstrap": "5.*.*",
|
|
28
28
|
"compressorjs": "1.1.*",
|
|
29
29
|
"js-sha256": "*",
|
|
30
30
|
"rxjs": "7.*.*",
|
|
31
31
|
"ngx-image-cropper": "6.3.*",
|
|
32
32
|
"@apollo/client": "3.7.*",
|
|
33
|
-
"apollo-angular": "
|
|
33
|
+
"apollo-angular": "6.0.*",
|
|
34
34
|
"graphql": "16.6.*",
|
|
35
35
|
"graphql-ws": "5.*.*"
|
|
36
36
|
},
|