@lenne.tech/ng-base 0.3.12 → 13.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/{esm2015/lenne.tech-ng-base.js → esm2020/lenne.tech-ng-base.mjs} +0 -0
- package/esm2020/lib/base/base.module.mjs +97 -0
- package/{esm2015/lib/base/classes/basic-user.class.js → esm2020/lib/base/classes/basic-user.class.mjs} +0 -0
- package/{esm2015/lib/base/classes/graphql-enum.class.js → esm2020/lib/base/classes/graphql-enum.class.mjs} +0 -0
- package/esm2020/lib/base/classes/graphql-meta.class.mjs +171 -0
- package/{esm2015/lib/base/classes/graphql-type.class.js → esm2020/lib/base/classes/graphql-type.class.mjs} +0 -0
- package/esm2020/lib/base/classes/helper.class.mjs +295 -0
- package/{esm2015/lib/base/classes/standard.class.js → esm2020/lib/base/classes/standard.class.mjs} +0 -0
- package/esm2020/lib/base/directives/context-menu.directive.mjs +109 -0
- package/esm2020/lib/base/directives/lazy-load.directive.mjs +45 -0
- package/esm2020/lib/base/directives/match-height.directive.mjs +79 -0
- package/esm2020/lib/base/directives/resizable.directive.mjs +90 -0
- package/{esm2015/lib/base/enums/comparison-operator.enum.js → esm2020/lib/base/enums/comparison-operator.enum.mjs} +0 -0
- package/{esm2015/lib/base/enums/graphql-request-type.enum.js → esm2020/lib/base/enums/graphql-request-type.enum.mjs} +0 -0
- package/{esm2015/lib/base/enums/logical-operator.enum.js → esm2020/lib/base/enums/logical-operator.enum.mjs} +0 -0
- package/{esm2015/lib/base/enums/sort-order.enum.js → esm2020/lib/base/enums/sort-order.enum.mjs} +0 -0
- package/{esm2015/lib/base/factories/apollo-options.factory.js → esm2020/lib/base/factories/apollo-options.factory.mjs} +0 -0
- package/esm2020/lib/base/guards/auth.guard.mjs +61 -0
- package/esm2020/lib/base/guards/can-deactivate.guard.mjs +16 -0
- package/esm2020/lib/base/guards/logout.guard.mjs +32 -0
- package/{esm2015/lib/base/index.js → esm2020/lib/base/index.mjs} +0 -0
- package/{esm2015/lib/base/interfaces/base-module-config.interface.js → esm2020/lib/base/interfaces/base-module-config.interface.mjs} +0 -0
- package/{esm2015/lib/base/interfaces/can-component-deactivate.interface.js → esm2020/lib/base/interfaces/can-component-deactivate.interface.mjs} +0 -0
- package/{esm2015/lib/base/interfaces/combined-filter-input.interface.js → esm2020/lib/base/interfaces/combined-filter-input.interface.mjs} +0 -0
- package/{esm2015/lib/base/interfaces/field-object.interface.js → esm2020/lib/base/interfaces/field-object.interface.mjs} +0 -0
- package/{esm2015/lib/base/interfaces/field.interface.js → esm2020/lib/base/interfaces/field.interface.mjs} +0 -0
- package/{esm2015/lib/base/interfaces/filter-input.interface.js → esm2020/lib/base/interfaces/filter-input.interface.mjs} +0 -0
- package/{esm2015/lib/base/interfaces/find-args.interface.js → esm2020/lib/base/interfaces/find-args.interface.mjs} +0 -0
- package/{esm2015/lib/base/interfaces/graphql-options.interface.js → esm2020/lib/base/interfaces/graphql-options.interface.mjs} +0 -0
- package/{esm2015/lib/base/interfaces/graphql-plus-options.interfacen.js → esm2020/lib/base/interfaces/graphql-plus-options.interfacen.mjs} +0 -0
- package/{esm2015/lib/base/interfaces/graphql-type-collection.interface.js → esm2020/lib/base/interfaces/graphql-type-collection.interface.mjs} +0 -0
- package/{esm2015/lib/base/interfaces/single-filter-input.interface.js → esm2020/lib/base/interfaces/single-filter-input.interface.mjs} +0 -0
- package/{esm2015/lib/base/interfaces/sort-input.interface.js → esm2020/lib/base/interfaces/sort-input.interface.mjs} +0 -0
- package/esm2020/lib/base/pipes/ellipses.pipe.mjs +22 -0
- package/esm2020/lib/base/pipes/safe-html.pipe.mjs +21 -0
- package/{esm2015/lib/base/public-api.js → esm2020/lib/base/public-api.mjs} +2 -1
- package/{esm2015/lib/base/services/auth.service.js → esm2020/lib/base/services/auth.service.mjs} +14 -17
- package/{esm2015/lib/base/services/fullscreen.service.js → esm2020/lib/base/services/fullscreen.service.mjs} +9 -8
- package/esm2020/lib/base/services/graphql-meta.service.mjs +123 -0
- package/esm2020/lib/base/services/graphql-plus.service.mjs +84 -0
- package/esm2020/lib/base/services/graphql.service.mjs +441 -0
- package/esm2020/lib/base/services/image.service.mjs +102 -0
- package/esm2020/lib/base/services/loader.service.mjs +29 -0
- package/esm2020/lib/base/services/scroll.service.mjs +179 -0
- package/esm2020/lib/base/services/seo.service.mjs +97 -0
- package/esm2020/lib/base/services/storage.service.mjs +132 -0
- package/esm2020/lib/base/services/ws.service.mjs +17 -0
- package/{esm2015/lib/base/types/storage.type.js → esm2020/lib/base/types/storage.type.mjs} +0 -0
- package/{esm2015/lib/base/validators/must-match.validator.js → esm2020/lib/base/validators/must-match.validator.mjs} +0 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/esm2020/src/lib/base/base.module.mjs +97 -0
- package/{esm2015/src/lib/base/classes/basic-user.class.js → esm2020/src/lib/base/classes/basic-user.class.mjs} +0 -0
- package/{esm2015/src/lib/base/classes/graphql-enum.class.js → esm2020/src/lib/base/classes/graphql-enum.class.mjs} +0 -0
- package/esm2020/src/lib/base/classes/graphql-meta.class.mjs +171 -0
- package/{esm2015/src/lib/base/classes/graphql-type.class.js → esm2020/src/lib/base/classes/graphql-type.class.mjs} +0 -0
- package/esm2020/src/lib/base/classes/helper.class.mjs +295 -0
- package/{esm2015/src/lib/base/classes/standard.class.js → esm2020/src/lib/base/classes/standard.class.mjs} +0 -0
- package/esm2020/src/lib/base/directives/context-menu.directive.mjs +109 -0
- package/esm2020/src/lib/base/directives/lazy-load.directive.mjs +45 -0
- package/esm2020/src/lib/base/directives/match-height.directive.mjs +79 -0
- package/esm2020/src/lib/base/directives/resizable.directive.mjs +90 -0
- package/{esm2015/src/lib/base/enums/comparison-operator.enum.js → esm2020/src/lib/base/enums/comparison-operator.enum.mjs} +0 -0
- package/{esm2015/src/lib/base/enums/graphql-request-type.enum.js → esm2020/src/lib/base/enums/graphql-request-type.enum.mjs} +0 -0
- package/{esm2015/src/lib/base/enums/logical-operator.enum.js → esm2020/src/lib/base/enums/logical-operator.enum.mjs} +0 -0
- package/{esm2015/src/lib/base/enums/sort-order.enum.js → esm2020/src/lib/base/enums/sort-order.enum.mjs} +0 -0
- package/{esm2015/src/lib/base/factories/apollo-options.factory.js → esm2020/src/lib/base/factories/apollo-options.factory.mjs} +0 -0
- package/esm2020/src/lib/base/guards/auth.guard.mjs +61 -0
- package/esm2020/src/lib/base/guards/can-deactivate.guard.mjs +16 -0
- package/esm2020/src/lib/base/guards/logout.guard.mjs +32 -0
- package/{esm2015/src/lib/base/interfaces/base-module-config.interface.js → esm2020/src/lib/base/interfaces/base-module-config.interface.mjs} +0 -0
- package/{esm2015/src/lib/base/interfaces/can-component-deactivate.interface.js → esm2020/src/lib/base/interfaces/can-component-deactivate.interface.mjs} +0 -0
- package/{esm2015/src/lib/base/interfaces/combined-filter-input.interface.js → esm2020/src/lib/base/interfaces/combined-filter-input.interface.mjs} +0 -0
- package/{esm2015/src/lib/base/interfaces/field-object.interface.js → esm2020/src/lib/base/interfaces/field-object.interface.mjs} +0 -0
- package/{esm2015/src/lib/base/interfaces/field.interface.js → esm2020/src/lib/base/interfaces/field.interface.mjs} +0 -0
- package/{esm2015/src/lib/base/interfaces/filter-input.interface.js → esm2020/src/lib/base/interfaces/filter-input.interface.mjs} +0 -0
- package/{esm2015/src/lib/base/interfaces/find-args.interface.js → esm2020/src/lib/base/interfaces/find-args.interface.mjs} +0 -0
- package/{esm2015/src/lib/base/interfaces/graphql-options.interface.js → esm2020/src/lib/base/interfaces/graphql-options.interface.mjs} +0 -0
- package/{esm2015/src/lib/base/interfaces/graphql-plus-options.interfacen.js → esm2020/src/lib/base/interfaces/graphql-plus-options.interfacen.mjs} +0 -0
- package/{esm2015/src/lib/base/interfaces/graphql-type-collection.interface.js → esm2020/src/lib/base/interfaces/graphql-type-collection.interface.mjs} +0 -0
- package/{esm2015/src/lib/base/interfaces/single-filter-input.interface.js → esm2020/src/lib/base/interfaces/single-filter-input.interface.mjs} +0 -0
- package/{esm2015/src/lib/base/interfaces/sort-input.interface.js → esm2020/src/lib/base/interfaces/sort-input.interface.mjs} +0 -0
- package/{esm2015/src/lib/base/lenne.tech-ng-base-src-lib-base.js → esm2020/src/lib/base/lenne.tech-ng-base-src-lib-base.mjs} +1 -2
- package/esm2020/src/lib/base/pipes/ellipses.pipe.mjs +22 -0
- package/esm2020/src/lib/base/pipes/safe-html.pipe.mjs +21 -0
- package/{esm2015/src/lib/base/public-api.js → esm2020/src/lib/base/public-api.mjs} +2 -1
- package/{esm2015/src/lib/base/services/auth.service.js → esm2020/src/lib/base/services/auth.service.mjs} +14 -17
- package/{esm2015/src/lib/base/services/fullscreen.service.js → esm2020/src/lib/base/services/fullscreen.service.mjs} +9 -8
- package/esm2020/src/lib/base/services/graphql-meta.service.mjs +123 -0
- package/esm2020/src/lib/base/services/graphql-plus.service.mjs +84 -0
- package/esm2020/src/lib/base/services/graphql.service.mjs +441 -0
- package/esm2020/src/lib/base/services/image.service.mjs +102 -0
- package/esm2020/src/lib/base/services/loader.service.mjs +29 -0
- package/esm2020/src/lib/base/services/scroll.service.mjs +179 -0
- package/esm2020/src/lib/base/services/seo.service.mjs +97 -0
- package/esm2020/src/lib/base/services/storage.service.mjs +132 -0
- package/esm2020/src/lib/base/services/ws.service.mjs +17 -0
- package/{esm2015/src/lib/base/types/storage.type.js → esm2020/src/lib/base/types/storage.type.mjs} +0 -0
- package/{esm2015/src/lib/base/validators/must-match.validator.js → esm2020/src/lib/base/validators/must-match.validator.mjs} +0 -0
- package/fesm2015/{lenne.tech-ng-base-src-lib-base.js → lenne.tech-ng-base-src-lib-base.mjs} +241 -198
- package/fesm2015/lenne.tech-ng-base-src-lib-base.mjs.map +1 -0
- package/fesm2015/{lenne.tech-ng-base.js → lenne.tech-ng-base.mjs} +241 -198
- package/fesm2015/lenne.tech-ng-base.mjs.map +1 -0
- package/fesm2020/lenne.tech-ng-base-src-lib-base.mjs +2524 -0
- package/fesm2020/lenne.tech-ng-base-src-lib-base.mjs.map +1 -0
- package/fesm2020/lenne.tech-ng-base.mjs +2526 -0
- package/fesm2020/lenne.tech-ng-base.mjs.map +1 -0
- package/lenne.tech-ng-base.d.ts +1 -0
- package/lib/base/base.module.d.ts +11 -1
- package/lib/base/classes/graphql-meta.class.d.ts +2 -4
- package/lib/base/directives/context-menu.directive.d.ts +3 -0
- package/lib/base/directives/lazy-load.directive.d.ts +3 -0
- package/lib/base/directives/match-height.directive.d.ts +3 -0
- package/lib/base/directives/resizable.directive.d.ts +3 -0
- package/lib/base/guards/auth.guard.d.ts +3 -0
- package/lib/base/guards/can-deactivate.guard.d.ts +3 -0
- package/lib/base/guards/logout.guard.d.ts +3 -0
- package/lib/base/pipes/ellipses.pipe.d.ts +3 -0
- package/lib/base/pipes/safe-html.pipe.d.ts +3 -0
- package/lib/base/public-api.d.ts +1 -0
- package/lib/base/services/auth.service.d.ts +3 -0
- package/lib/base/services/fullscreen.service.d.ts +3 -0
- package/lib/base/services/graphql-meta.service.d.ts +3 -0
- package/lib/base/services/graphql-plus.service.d.ts +3 -0
- package/lib/base/services/graphql.service.d.ts +3 -0
- package/lib/base/services/image.service.d.ts +3 -0
- package/lib/base/services/loader.service.d.ts +3 -0
- package/lib/base/services/scroll.service.d.ts +3 -0
- package/lib/base/services/seo.service.d.ts +3 -0
- package/lib/base/services/storage.service.d.ts +3 -0
- package/lib/base/services/ws.service.d.ts +3 -0
- package/package.json +34 -14
- package/src/lib/base/base.module.d.ts +11 -1
- package/src/lib/base/classes/graphql-meta.class.d.ts +2 -4
- package/src/lib/base/directives/context-menu.directive.d.ts +3 -0
- package/src/lib/base/directives/lazy-load.directive.d.ts +3 -0
- package/src/lib/base/directives/match-height.directive.d.ts +3 -0
- package/src/lib/base/directives/resizable.directive.d.ts +3 -0
- package/src/lib/base/guards/auth.guard.d.ts +3 -0
- package/src/lib/base/guards/can-deactivate.guard.d.ts +3 -0
- package/src/lib/base/guards/logout.guard.d.ts +3 -0
- package/src/lib/base/lenne.tech-ng-base-src-lib-base.d.ts +1 -1
- package/src/lib/base/package.json +5 -6
- package/src/lib/base/pipes/ellipses.pipe.d.ts +3 -0
- package/src/lib/base/pipes/safe-html.pipe.d.ts +3 -0
- package/src/lib/base/public-api.d.ts +1 -0
- package/src/lib/base/services/auth.service.d.ts +3 -0
- package/src/lib/base/services/fullscreen.service.d.ts +3 -0
- package/src/lib/base/services/graphql-meta.service.d.ts +3 -0
- package/src/lib/base/services/graphql-plus.service.d.ts +3 -0
- package/src/lib/base/services/graphql.service.d.ts +3 -0
- package/src/lib/base/services/image.service.d.ts +3 -0
- package/src/lib/base/services/loader.service.d.ts +3 -0
- package/src/lib/base/services/scroll.service.d.ts +3 -0
- package/src/lib/base/services/seo.service.d.ts +3 -0
- package/src/lib/base/services/storage.service.d.ts +3 -0
- package/src/lib/base/services/ws.service.d.ts +3 -0
- package/bundles/lenne.tech-ng-base-src-lib-base.umd.js +0 -3152
- package/bundles/lenne.tech-ng-base-src-lib-base.umd.js.map +0 -1
- package/bundles/lenne.tech-ng-base.umd.js +0 -3153
- package/bundles/lenne.tech-ng-base.umd.js.map +0 -1
- package/esm2015/lib/base/base.module.js +0 -66
- package/esm2015/lib/base/classes/graphql-meta.class.js +0 -156
- package/esm2015/lib/base/classes/helper.class.js +0 -290
- package/esm2015/lib/base/directives/context-menu.directive.js +0 -104
- package/esm2015/lib/base/directives/lazy-load.directive.js +0 -43
- package/esm2015/lib/base/directives/match-height.directive.js +0 -78
- package/esm2015/lib/base/directives/resizable.directive.js +0 -89
- package/esm2015/lib/base/guards/auth.guard.js +0 -61
- package/esm2015/lib/base/guards/can-deactivate.guard.js +0 -13
- package/esm2015/lib/base/guards/logout.guard.js +0 -33
- package/esm2015/lib/base/pipes/ellipses.pipe.js +0 -18
- package/esm2015/lib/base/pipes/safe-html.pipe.js +0 -20
- package/esm2015/lib/base/services/graphql-meta.service.js +0 -116
- package/esm2015/lib/base/services/graphql-plus.service.js +0 -90
- package/esm2015/lib/base/services/graphql.service.js +0 -423
- package/esm2015/lib/base/services/image.service.js +0 -99
- package/esm2015/lib/base/services/loader.service.js +0 -27
- package/esm2015/lib/base/services/scroll.service.js +0 -172
- package/esm2015/lib/base/services/seo.service.js +0 -100
- package/esm2015/lib/base/services/storage.service.js +0 -131
- package/esm2015/lib/base/services/ws.service.js +0 -16
- package/esm2015/src/lib/base/base.module.js +0 -66
- package/esm2015/src/lib/base/classes/graphql-meta.class.js +0 -156
- package/esm2015/src/lib/base/classes/helper.class.js +0 -290
- package/esm2015/src/lib/base/directives/context-menu.directive.js +0 -104
- package/esm2015/src/lib/base/directives/lazy-load.directive.js +0 -43
- package/esm2015/src/lib/base/directives/match-height.directive.js +0 -78
- package/esm2015/src/lib/base/directives/resizable.directive.js +0 -89
- package/esm2015/src/lib/base/guards/auth.guard.js +0 -61
- package/esm2015/src/lib/base/guards/can-deactivate.guard.js +0 -13
- package/esm2015/src/lib/base/guards/logout.guard.js +0 -33
- package/esm2015/src/lib/base/pipes/ellipses.pipe.js +0 -18
- package/esm2015/src/lib/base/pipes/safe-html.pipe.js +0 -20
- package/esm2015/src/lib/base/services/graphql-meta.service.js +0 -116
- package/esm2015/src/lib/base/services/graphql-plus.service.js +0 -90
- package/esm2015/src/lib/base/services/graphql.service.js +0 -423
- package/esm2015/src/lib/base/services/image.service.js +0 -99
- package/esm2015/src/lib/base/services/loader.service.js +0 -27
- package/esm2015/src/lib/base/services/scroll.service.js +0 -172
- package/esm2015/src/lib/base/services/seo.service.js +0 -100
- package/esm2015/src/lib/base/services/storage.service.js +0 -131
- package/esm2015/src/lib/base/services/ws.service.js +0 -16
- package/fesm2015/lenne.tech-ng-base-src-lib-base.js.map +0 -1
- package/fesm2015/lenne.tech-ng-base.js.map +0 -1
- package/lenne.tech-ng-base.metadata.json +0 -1
- package/src/lib/base/lenne.tech-ng-base-src-lib-base.metadata.json +0 -1
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { Directive, ElementRef, HostBinding, Input } from '@angular/core';
|
|
2
|
-
/**
|
|
3
|
-
* Directive for lazy loading images
|
|
4
|
-
*/
|
|
5
|
-
export class LazyLoadDirective {
|
|
6
|
-
constructor(el) {
|
|
7
|
-
this.el = el;
|
|
8
|
-
this.srcAttr = null;
|
|
9
|
-
}
|
|
10
|
-
ngAfterViewInit() {
|
|
11
|
-
this.canLazyLoad() ? this.lazyLoadImage() : this.loadImage();
|
|
12
|
-
}
|
|
13
|
-
canLazyLoad() {
|
|
14
|
-
return window && 'IntersectionObserver' in window;
|
|
15
|
-
}
|
|
16
|
-
lazyLoadImage() {
|
|
17
|
-
const obs = new IntersectionObserver((entries) => {
|
|
18
|
-
entries.forEach(({ isIntersecting }) => {
|
|
19
|
-
if (isIntersecting) {
|
|
20
|
-
this.loadImage();
|
|
21
|
-
obs.unobserve(this.el.nativeElement);
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
obs.observe(this.el.nativeElement);
|
|
26
|
-
}
|
|
27
|
-
loadImage() {
|
|
28
|
-
this.srcAttr = this.src;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
LazyLoadDirective.decorators = [
|
|
32
|
-
{ type: Directive, args: [{
|
|
33
|
-
selector: 'img[ltLazyLoad]',
|
|
34
|
-
},] }
|
|
35
|
-
];
|
|
36
|
-
LazyLoadDirective.ctorParameters = () => [
|
|
37
|
-
{ type: ElementRef }
|
|
38
|
-
];
|
|
39
|
-
LazyLoadDirective.propDecorators = {
|
|
40
|
-
srcAttr: [{ type: HostBinding, args: ['attr.src',] }],
|
|
41
|
-
src: [{ type: Input }]
|
|
42
|
-
};
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1sb2FkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc3JjL2xpYi9iYXNlL2RpcmVjdGl2ZXMvbGF6eS1sb2FkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6Rjs7R0FFRztBQUlILE1BQU0sT0FBTyxpQkFBaUI7SUFJNUIsWUFBb0IsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7UUFIVCxZQUFPLEdBQUcsSUFBSSxDQUFDO0lBR0gsQ0FBQztJQUV0QyxlQUFlO1FBQ2IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMvRCxDQUFDO0lBRU8sV0FBVztRQUNqQixPQUFPLE1BQU0sSUFBSSxzQkFBc0IsSUFBSSxNQUFNLENBQUM7SUFDcEQsQ0FBQztJQUVPLGFBQWE7UUFDbkIsTUFBTSxHQUFHLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQy9DLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFDLGNBQWMsRUFBQyxFQUFFLEVBQUU7Z0JBQ25DLElBQUksY0FBYyxFQUFFO29CQUNsQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQ2pCLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztpQkFDdEM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTyxTQUFTO1FBQ2YsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQzFCLENBQUM7OztZQS9CRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjthQUM1Qjs7O1lBUGtDLFVBQVU7OztzQkFTMUMsV0FBVyxTQUFDLFVBQVU7a0JBQ3RCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIERpcmVjdGl2ZSBmb3IgbGF6eSBsb2FkaW5nIGltYWdlc1xuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdpbWdbbHRMYXp5TG9hZF0nLFxufSlcbmV4cG9ydCBjbGFzcyBMYXp5TG9hZERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuc3JjJykgc3JjQXR0ciA9IG51bGw7XG4gIEBJbnB1dCgpIHNyYzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuY2FuTGF6eUxvYWQoKSA/IHRoaXMubGF6eUxvYWRJbWFnZSgpIDogdGhpcy5sb2FkSW1hZ2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2FuTGF6eUxvYWQoKSB7XG4gICAgcmV0dXJuIHdpbmRvdyAmJiAnSW50ZXJzZWN0aW9uT2JzZXJ2ZXInIGluIHdpbmRvdztcbiAgfVxuXG4gIHByaXZhdGUgbGF6eUxvYWRJbWFnZSgpIHtcbiAgICBjb25zdCBvYnMgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKGVudHJpZXMpID0+IHtcbiAgICAgIGVudHJpZXMuZm9yRWFjaCgoe2lzSW50ZXJzZWN0aW5nfSkgPT4ge1xuICAgICAgICBpZiAoaXNJbnRlcnNlY3RpbmcpIHtcbiAgICAgICAgICB0aGlzLmxvYWRJbWFnZSgpO1xuICAgICAgICAgIG9icy51bm9ic2VydmUodGhpcy5lbC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgb2JzLm9ic2VydmUodGhpcy5lbC5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZEltYWdlKCkge1xuICAgIHRoaXMuc3JjQXR0ciA9IHRoaXMuc3JjO1xuICB9XG59XG4iXX0=
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { Directive, ElementRef, HostListener, Inject, Input, PLATFORM_ID } from '@angular/core';
|
|
3
|
-
import { ImageService } from '../services/image.service';
|
|
4
|
-
import { isPlatformBrowser } from '@angular/common';
|
|
5
|
-
/**
|
|
6
|
-
* Set same height (maximum) to different elements
|
|
7
|
-
*/
|
|
8
|
-
export class MatchHeightDirective {
|
|
9
|
-
constructor(el, imageService, platformId) {
|
|
10
|
-
this.el = el;
|
|
11
|
-
this.imageService = imageService;
|
|
12
|
-
// Replace lazy loading images with immediate loading images
|
|
13
|
-
this.loadImages = true;
|
|
14
|
-
this.isBrowser = isPlatformBrowser(platformId);
|
|
15
|
-
}
|
|
16
|
-
onResize() {
|
|
17
|
-
this.matchHeight(this.el.nativeElement, this.ltMatchHeight);
|
|
18
|
-
}
|
|
19
|
-
ngOnInit() {
|
|
20
|
-
this.matchHeight(this.el.nativeElement, this.ltMatchHeight);
|
|
21
|
-
}
|
|
22
|
-
matchHeight(parent, target) {
|
|
23
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
-
if (!parent) {
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
let classNames;
|
|
28
|
-
if (!Array.isArray(target)) {
|
|
29
|
-
classNames = [target];
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
classNames = target;
|
|
33
|
-
}
|
|
34
|
-
for (const className of classNames) {
|
|
35
|
-
// find all child structureElements with the selected class name
|
|
36
|
-
const children = parent.getElementsByClassName(className);
|
|
37
|
-
if (!children || children.length < 2) {
|
|
38
|
-
continue;
|
|
39
|
-
}
|
|
40
|
-
// Load images of children
|
|
41
|
-
if (this.loadImages) {
|
|
42
|
-
yield this.imageService.preLoadImages({ elements: children });
|
|
43
|
-
}
|
|
44
|
-
// reset all children height
|
|
45
|
-
Array.from(children).forEach((element) => {
|
|
46
|
-
element.style.height = 'initial';
|
|
47
|
-
});
|
|
48
|
-
// get all the child structureElements heights
|
|
49
|
-
const itemHeights = Array.from(children).map((element) => {
|
|
50
|
-
if (element.getBoundingClientRect) {
|
|
51
|
-
return element.getBoundingClientRect().height;
|
|
52
|
-
}
|
|
53
|
-
return 0;
|
|
54
|
-
});
|
|
55
|
-
// find out the tallest one
|
|
56
|
-
const maxHeight = itemHeights.reduce((prev, curr) => (curr > prev ? curr : prev), 0);
|
|
57
|
-
// update the child structureElements height to the tallest one
|
|
58
|
-
Array.from(children).forEach((element) => (element.style.height = `${maxHeight}px`));
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
MatchHeightDirective.decorators = [
|
|
64
|
-
{ type: Directive, args: [{
|
|
65
|
-
selector: '[ltMatchHeight]',
|
|
66
|
-
},] }
|
|
67
|
-
];
|
|
68
|
-
MatchHeightDirective.ctorParameters = () => [
|
|
69
|
-
{ type: ElementRef },
|
|
70
|
-
{ type: ImageService },
|
|
71
|
-
{ type: String, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] }
|
|
72
|
-
];
|
|
73
|
-
MatchHeightDirective.propDecorators = {
|
|
74
|
-
ltMatchHeight: [{ type: Input }],
|
|
75
|
-
loadImages: [{ type: Input }],
|
|
76
|
-
onResize: [{ type: HostListener, args: ['window:resize',] }]
|
|
77
|
-
};
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtaGVpZ2h0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc3JjL2xpYi9iYXNlL2RpcmVjdGl2ZXMvbWF0Y2gtaGVpZ2h0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVwRDs7R0FFRztBQUlILE1BQU0sT0FBTyxvQkFBb0I7SUFZL0IsWUFBc0IsRUFBYyxFQUFZLFlBQTBCLEVBQXVCLFVBQWtCO1FBQTdGLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBWSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQVAxRSw0REFBNEQ7UUFFNUQsZUFBVSxHQUFHLElBQUksQ0FBQztRQU1oQixJQUFJLENBQUMsU0FBUyxHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFHRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUssV0FBVyxDQUFDLE1BQW1CLEVBQUUsTUFBeUI7O1lBQzlELElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ1gsT0FBTzthQUNSO1lBRUQsSUFBSSxVQUFVLENBQUM7WUFDZixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDMUIsVUFBVSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDdkI7aUJBQU07Z0JBQ0wsVUFBVSxHQUFHLE1BQU0sQ0FBQzthQUNyQjtZQUVELEtBQUssTUFBTSxTQUFTLElBQUksVUFBVSxFQUFFO2dCQUNsQyxnRUFBZ0U7Z0JBQ2hFLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFFMUQsSUFBSSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDcEMsU0FBUztpQkFDVjtnQkFFRCwwQkFBMEI7Z0JBQzFCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtvQkFDbkIsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO2lCQUMvRDtnQkFFRCw0QkFBNEI7Z0JBQzVCLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBb0IsRUFBRSxFQUFFO29CQUNwRCxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7Z0JBQ25DLENBQUMsQ0FBQyxDQUFDO2dCQUVILDhDQUE4QztnQkFDOUMsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtvQkFDdkQsSUFBSSxPQUFPLENBQUMscUJBQXFCLEVBQUU7d0JBQ2pDLE9BQU8sT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUMsTUFBTSxDQUFDO3FCQUMvQztvQkFDRCxPQUFPLENBQUMsQ0FBQztnQkFDWCxDQUFDLENBQUMsQ0FBQztnQkFFSCwyQkFBMkI7Z0JBQzNCLE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBRXJGLCtEQUErRDtnQkFDL0QsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFvQixFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ25HO1FBQ0gsQ0FBQztLQUFBOzs7WUF4RUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7YUFDNUI7OztZQVRtQixVQUFVO1lBQ3JCLFlBQVk7eUNBcUIwRCxNQUFNLFNBQUMsV0FBVzs7OzRCQVY5RixLQUFLO3lCQUlMLEtBQUs7dUJBVUwsWUFBWSxTQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW1hZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvaW1hZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8qKlxuICogU2V0IHNhbWUgaGVpZ2h0IChtYXhpbXVtKSB0byBkaWZmZXJlbnQgZWxlbWVudHNcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2x0TWF0Y2hIZWlnaHRdJyxcbn0pXG5leHBvcnQgY2xhc3MgTWF0Y2hIZWlnaHREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyBjbGFzcyBuYW1lIHRvIG1hdGNoIGhlaWdodFxuICBASW5wdXQoKVxuICBsdE1hdGNoSGVpZ2h0OiBzdHJpbmcgfCBzdHJpbmdbXTtcblxuICAvLyBSZXBsYWNlIGxhenkgbG9hZGluZyBpbWFnZXMgd2l0aCBpbW1lZGlhdGUgbG9hZGluZyBpbWFnZXNcbiAgQElucHV0KClcbiAgbG9hZEltYWdlcyA9IHRydWU7XG5cbiAgLy8gV2V0aGVyIGN1cnJlbnQgcGxhdGZvcm0gaXMgYSBicm93c2VyXG4gIHJlYWRvbmx5IGlzQnJvd3NlcjogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZWw6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCBpbWFnZVNlcnZpY2U6IEltYWdlU2VydmljZSwgQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogc3RyaW5nKSB7XG4gICAgdGhpcy5pc0Jyb3dzZXIgPSBpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICBvblJlc2l6ZSgpIHtcbiAgICB0aGlzLm1hdGNoSGVpZ2h0KHRoaXMuZWwubmF0aXZlRWxlbWVudCwgdGhpcy5sdE1hdGNoSGVpZ2h0KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubWF0Y2hIZWlnaHQodGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLmx0TWF0Y2hIZWlnaHQpO1xuICB9XG5cbiAgYXN5bmMgbWF0Y2hIZWlnaHQocGFyZW50OiBIVE1MRWxlbWVudCwgdGFyZ2V0OiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuICAgIGlmICghcGFyZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNsYXNzTmFtZXM7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHRhcmdldCkpIHtcbiAgICAgIGNsYXNzTmFtZXMgPSBbdGFyZ2V0XTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2xhc3NOYW1lcyA9IHRhcmdldDtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGNsYXNzTmFtZSBvZiBjbGFzc05hbWVzKSB7XG4gICAgICAvLyBmaW5kIGFsbCBjaGlsZCBzdHJ1Y3R1cmVFbGVtZW50cyB3aXRoIHRoZSBzZWxlY3RlZCBjbGFzcyBuYW1lXG4gICAgICBjb25zdCBjaGlsZHJlbiA9IHBhcmVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGNsYXNzTmFtZSk7XG5cbiAgICAgIGlmICghY2hpbGRyZW4gfHwgY2hpbGRyZW4ubGVuZ3RoIDwgMikge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgLy8gTG9hZCBpbWFnZXMgb2YgY2hpbGRyZW5cbiAgICAgIGlmICh0aGlzLmxvYWRJbWFnZXMpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5pbWFnZVNlcnZpY2UucHJlTG9hZEltYWdlcyh7IGVsZW1lbnRzOiBjaGlsZHJlbiB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gcmVzZXQgYWxsIGNoaWxkcmVuIGhlaWdodFxuICAgICAgQXJyYXkuZnJvbShjaGlsZHJlbikuZm9yRWFjaCgoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgICAgZWxlbWVudC5zdHlsZS5oZWlnaHQgPSAnaW5pdGlhbCc7XG4gICAgICB9KTtcblxuICAgICAgLy8gZ2V0IGFsbCB0aGUgY2hpbGQgc3RydWN0dXJlRWxlbWVudHMgaGVpZ2h0c1xuICAgICAgY29uc3QgaXRlbUhlaWdodHMgPSBBcnJheS5mcm9tKGNoaWxkcmVuKS5tYXAoKGVsZW1lbnQpID0+IHtcbiAgICAgICAgaWYgKGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KSB7XG4gICAgICAgICAgcmV0dXJuIGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIGZpbmQgb3V0IHRoZSB0YWxsZXN0IG9uZVxuICAgICAgY29uc3QgbWF4SGVpZ2h0ID0gaXRlbUhlaWdodHMucmVkdWNlKChwcmV2LCBjdXJyKSA9PiAoY3VyciA+IHByZXYgPyBjdXJyIDogcHJldiksIDApO1xuXG4gICAgICAvLyB1cGRhdGUgdGhlIGNoaWxkIHN0cnVjdHVyZUVsZW1lbnRzIGhlaWdodCB0byB0aGUgdGFsbGVzdCBvbmVcbiAgICAgIEFycmF5LmZyb20oY2hpbGRyZW4pLmZvckVhY2goKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiAoZWxlbWVudC5zdHlsZS5oZWlnaHQgPSBgJHttYXhIZWlnaHR9cHhgKSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { Directive, ElementRef, Input } from '@angular/core';
|
|
2
|
-
/**
|
|
3
|
-
* Reszise detection
|
|
4
|
-
* (inpsired by: https://stackblitz.com/edit/angular-resizable)
|
|
5
|
-
*/
|
|
6
|
-
export class ResizableDirective {
|
|
7
|
-
constructor(el) {
|
|
8
|
-
this.el = el;
|
|
9
|
-
this.resizableGrabWidth = 8;
|
|
10
|
-
this.resizableMinWidth = 10;
|
|
11
|
-
this.dragging = false;
|
|
12
|
-
}
|
|
13
|
-
ngOnInit() {
|
|
14
|
-
this.addListenerToDocument();
|
|
15
|
-
this.addListenerToElement();
|
|
16
|
-
}
|
|
17
|
-
mouseMoveG(evt) {
|
|
18
|
-
if (!this.dragging) {
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
this.newWidth(evt.clientX - this.el.nativeElement.offsetLeft);
|
|
22
|
-
evt.stopPropagation();
|
|
23
|
-
}
|
|
24
|
-
newWidth(wid) {
|
|
25
|
-
const result = Math.max(this.resizableMinWidth, wid);
|
|
26
|
-
this.el.nativeElement.style.width = result + 'px';
|
|
27
|
-
}
|
|
28
|
-
mouseDown(evt) {
|
|
29
|
-
if (this.inDragRegion(evt)) {
|
|
30
|
-
this.dragging = true;
|
|
31
|
-
this.preventGlobalMouseEvents();
|
|
32
|
-
evt.stopPropagation();
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
restoreGlobalMouseEvents() {
|
|
36
|
-
document.body.style['pointer-events'] = 'auto';
|
|
37
|
-
}
|
|
38
|
-
mouseUpG(evt) {
|
|
39
|
-
if (!this.dragging) {
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
this.restoreGlobalMouseEvents();
|
|
43
|
-
this.dragging = false;
|
|
44
|
-
evt.stopPropagation();
|
|
45
|
-
}
|
|
46
|
-
mouseMove(evt) {
|
|
47
|
-
if (this.inDragRegion(evt) || this.dragging) {
|
|
48
|
-
this.el.nativeElement.style.cursor = 'col-resize';
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
this.el.nativeElement.style.cursor = 'default';
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
preventGlobalMouseEvents() {
|
|
55
|
-
document.body.style['pointer-events'] = 'none';
|
|
56
|
-
}
|
|
57
|
-
inDragRegion(evt) {
|
|
58
|
-
return this.el.nativeElement.clientWidth - evt.clientX + this.el.nativeElement.offsetLeft < this.resizableGrabWidth;
|
|
59
|
-
}
|
|
60
|
-
addListenerToDocument() {
|
|
61
|
-
document.addEventListener('mousemove', (e) => {
|
|
62
|
-
this.mouseMoveG(e);
|
|
63
|
-
}, true);
|
|
64
|
-
document.addEventListener('mouseup', (e) => {
|
|
65
|
-
this.mouseUpG(e);
|
|
66
|
-
}, true);
|
|
67
|
-
}
|
|
68
|
-
addListenerToElement() {
|
|
69
|
-
this.el.nativeElement.addEventListener('mousedown', (e) => {
|
|
70
|
-
this.mouseDown(e);
|
|
71
|
-
}, true);
|
|
72
|
-
this.el.nativeElement.addEventListener('mousemove', (e) => {
|
|
73
|
-
this.mouseMove(e);
|
|
74
|
-
}, true);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
ResizableDirective.decorators = [
|
|
78
|
-
{ type: Directive, args: [{
|
|
79
|
-
selector: '[ltResizable]',
|
|
80
|
-
},] }
|
|
81
|
-
];
|
|
82
|
-
ResizableDirective.ctorParameters = () => [
|
|
83
|
-
{ type: ElementRef }
|
|
84
|
-
];
|
|
85
|
-
ResizableDirective.propDecorators = {
|
|
86
|
-
resizableGrabWidth: [{ type: Input }],
|
|
87
|
-
resizableMinWidth: [{ type: Input }]
|
|
88
|
-
};
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc3JjL2xpYi9iYXNlL2RpcmVjdGl2ZXMvcmVzaXphYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFckU7OztHQUdHO0FBSUgsTUFBTSxPQUFPLGtCQUFrQjtJQU03QixZQUFvQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUx6Qix1QkFBa0IsR0FBRyxDQUFDLENBQUM7UUFDdkIsc0JBQWlCLEdBQUcsRUFBRSxDQUFDO1FBRWhDLGFBQVEsR0FBRyxLQUFLLENBQUM7SUFFb0IsQ0FBQztJQUV0QyxRQUFRO1FBQ04sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFHO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlELEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQUc7UUFDVixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDcEQsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFHO1FBQ1gsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBQ2hDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUN2QjtJQUNILENBQUM7SUFFRCx3QkFBd0I7UUFDdEIsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDakQsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFVO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQUc7UUFDWCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUMzQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQztTQUNuRDthQUFNO1lBQ0wsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7U0FDaEQ7SUFDSCxDQUFDO0lBRUQsd0JBQXdCO1FBQ3RCLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsTUFBTSxDQUFDO0lBQ2pELENBQUM7SUFFRCxZQUFZLENBQUMsR0FBRztRQUNkLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUN0SCxDQUFDO0lBRU8scUJBQXFCO1FBQzNCLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FDdkIsV0FBVyxFQUNYLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDSixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLENBQUMsRUFDRCxJQUFJLENBQ0wsQ0FBQztRQUVGLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FDdkIsU0FBUyxFQUNULENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDSixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25CLENBQUMsRUFDRCxJQUFJLENBQ0wsQ0FBQztJQUNKLENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQ3BDLFdBQVcsRUFDWCxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ0osSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQixDQUFDLEVBQ0QsSUFBSSxDQUNMLENBQUM7UUFFRixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FDcEMsV0FBVyxFQUNYLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDSixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLENBQUMsRUFDRCxJQUFJLENBQ0wsQ0FBQztJQUNKLENBQUM7OztZQXBHRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGVBQWU7YUFDMUI7OztZQVJtQixVQUFVOzs7aUNBVTNCLEtBQUs7Z0NBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFJlc3ppc2UgZGV0ZWN0aW9uXG4gKiAoaW5wc2lyZWQgYnk6IGh0dHBzOi8vc3RhY2tibGl0ei5jb20vZWRpdC9hbmd1bGFyLXJlc2l6YWJsZSlcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2x0UmVzaXphYmxlXScsXG59KVxuZXhwb3J0IGNsYXNzIFJlc2l6YWJsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHJlc2l6YWJsZUdyYWJXaWR0aCA9IDg7XG4gIEBJbnB1dCgpIHJlc2l6YWJsZU1pbldpZHRoID0gMTA7XG5cbiAgZHJhZ2dpbmcgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYWRkTGlzdGVuZXJUb0RvY3VtZW50KCk7XG4gICAgdGhpcy5hZGRMaXN0ZW5lclRvRWxlbWVudCgpO1xuICB9XG5cbiAgbW91c2VNb3ZlRyhldnQpIHtcbiAgICBpZiAoIXRoaXMuZHJhZ2dpbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5uZXdXaWR0aChldnQuY2xpZW50WCAtIHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0KTtcbiAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBuZXdXaWR0aCh3aWQpIHtcbiAgICBjb25zdCByZXN1bHQgPSBNYXRoLm1heCh0aGlzLnJlc2l6YWJsZU1pbldpZHRoLCB3aWQpO1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS53aWR0aCA9IHJlc3VsdCArICdweCc7XG4gIH1cblxuICBtb3VzZURvd24oZXZ0KSB7XG4gICAgaWYgKHRoaXMuaW5EcmFnUmVnaW9uKGV2dCkpIHtcbiAgICAgIHRoaXMuZHJhZ2dpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5wcmV2ZW50R2xvYmFsTW91c2VFdmVudHMoKTtcbiAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICByZXN0b3JlR2xvYmFsTW91c2VFdmVudHMoKSB7XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZVsncG9pbnRlci1ldmVudHMnXSA9ICdhdXRvJztcbiAgfVxuXG4gIG1vdXNlVXBHKGV2dDogRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuZHJhZ2dpbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5yZXN0b3JlR2xvYmFsTW91c2VFdmVudHMoKTtcbiAgICB0aGlzLmRyYWdnaW5nID0gZmFsc2U7XG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgbW91c2VNb3ZlKGV2dCkge1xuICAgIGlmICh0aGlzLmluRHJhZ1JlZ2lvbihldnQpIHx8IHRoaXMuZHJhZ2dpbmcpIHtcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5jdXJzb3IgPSAnY29sLXJlc2l6ZSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5jdXJzb3IgPSAnZGVmYXVsdCc7XG4gICAgfVxuICB9XG5cbiAgcHJldmVudEdsb2JhbE1vdXNlRXZlbnRzKCkge1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGVbJ3BvaW50ZXItZXZlbnRzJ10gPSAnbm9uZSc7XG4gIH1cblxuICBpbkRyYWdSZWdpb24oZXZ0KSB7XG4gICAgcmV0dXJuIHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCAtIGV2dC5jbGllbnRYICsgdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQgPCB0aGlzLnJlc2l6YWJsZUdyYWJXaWR0aDtcbiAgfVxuXG4gIHByaXZhdGUgYWRkTGlzdGVuZXJUb0RvY3VtZW50KCkge1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnbW91c2Vtb3ZlJyxcbiAgICAgIChlKSA9PiB7XG4gICAgICAgIHRoaXMubW91c2VNb3ZlRyhlKTtcbiAgICAgIH0sXG4gICAgICB0cnVlXG4gICAgKTtcblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnbW91c2V1cCcsXG4gICAgICAoZSkgPT4ge1xuICAgICAgICB0aGlzLm1vdXNlVXBHKGUpO1xuICAgICAgfSxcbiAgICAgIHRydWVcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRMaXN0ZW5lclRvRWxlbWVudCgpIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdtb3VzZWRvd24nLFxuICAgICAgKGUpID0+IHtcbiAgICAgICAgdGhpcy5tb3VzZURvd24oZSk7XG4gICAgICB9LFxuICAgICAgdHJ1ZVxuICAgICk7XG5cbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdtb3VzZW1vdmUnLFxuICAgICAgKGUpID0+IHtcbiAgICAgICAgdGhpcy5tb3VzZU1vdmUoZSk7XG4gICAgICB9LFxuICAgICAgdHJ1ZVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { Router } from '@angular/router';
|
|
3
|
-
import { Observable } from 'rxjs';
|
|
4
|
-
import { AuthService } from '../services/auth.service';
|
|
5
|
-
import { BASE_MODULE_CONFIG } from '../interfaces/base-module-config.interface';
|
|
6
|
-
/**
|
|
7
|
-
* Authentication guard
|
|
8
|
-
*/
|
|
9
|
-
export class AuthGuard {
|
|
10
|
-
/**
|
|
11
|
-
* Imports
|
|
12
|
-
*/
|
|
13
|
-
constructor(router, authService, moduleConfig) {
|
|
14
|
-
this.router = router;
|
|
15
|
-
this.authService = authService;
|
|
16
|
-
this.moduleConfig = moduleConfig;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Can activate main route
|
|
20
|
-
*/
|
|
21
|
-
canActivate(route, state) {
|
|
22
|
-
return new Observable((subscriber) => {
|
|
23
|
-
var _a, _b, _c, _d;
|
|
24
|
-
let allowed = false;
|
|
25
|
-
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;
|
|
26
|
-
const redirectUrl = ((_c = route === null || route === void 0 ? void 0 : route.data) === null || _c === void 0 ? void 0 : _c.redirectUrl) ? route.data.redirectUrl : this.moduleConfig.authGuardRedirectUrl;
|
|
27
|
-
if (this.authService.token && !opposite) {
|
|
28
|
-
if (route.data.allowedRole) {
|
|
29
|
-
const user = this.authService.currentUser;
|
|
30
|
-
allowed = (_d = user === null || user === void 0 ? void 0 : user.roles) === null || _d === void 0 ? void 0 : _d.includes(route.data.allowedRole);
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
allowed = true;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
else if (!this.authService.token && opposite) {
|
|
37
|
-
allowed = true;
|
|
38
|
-
}
|
|
39
|
-
if (!allowed) {
|
|
40
|
-
this.router.navigate([redirectUrl]);
|
|
41
|
-
}
|
|
42
|
-
subscriber.next(allowed);
|
|
43
|
-
subscriber.complete();
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Can activate child route
|
|
48
|
-
*/
|
|
49
|
-
canActivateChild(route, state) {
|
|
50
|
-
return this.canActivate(route, state);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
AuthGuard.decorators = [
|
|
54
|
-
{ type: Injectable }
|
|
55
|
-
];
|
|
56
|
-
AuthGuard.ctorParameters = () => [
|
|
57
|
-
{ type: Router },
|
|
58
|
-
{ type: AuthService },
|
|
59
|
-
{ type: undefined, decorators: [{ type: Inject, args: [BASE_MODULE_CONFIG,] }] }
|
|
60
|
-
];
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc3JjL2xpYi9iYXNlL2d1YXJkcy9hdXRoLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBeUQsTUFBTSxFQUF1QixNQUFNLGlCQUFpQixDQUFDO0FBQ3JILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBb0IsTUFBTSw0Q0FBNEMsQ0FBQztBQUVsRzs7R0FFRztBQUVILE1BQU0sT0FBTyxTQUFTO0lBRXBCOztPQUVHO0lBQ0gsWUFDVSxNQUFjLEVBQ2QsV0FBd0IsRUFDSSxZQUE4QjtRQUYxRCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDSSxpQkFBWSxHQUFaLFlBQVksQ0FBa0I7SUFDakUsQ0FBQztJQUVKOztPQUVHO0lBQ0gsV0FBVyxDQUFDLEtBQTZCLEVBQUUsS0FBMEI7UUFDbkUsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFOztZQUNuQyxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDcEIsTUFBTSxRQUFRLEdBQUcsQ0FBQSxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxJQUFJLDBDQUFFLFFBQVEsRUFBQyxDQUFDLENBQUMsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsSUFBSSwwQ0FBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUN2RSxNQUFNLFdBQVcsR0FBRyxDQUFBLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLElBQUksMENBQUUsV0FBVyxFQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQztZQUUvRyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUN2QyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO29CQUMxQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQztvQkFDMUMsT0FBTyxHQUFHLE1BQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLEtBQUssMENBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7aUJBQ3pEO3FCQUFNO29CQUNMLE9BQU8sR0FBRyxJQUFJLENBQUM7aUJBQ2hCO2FBQ0Y7aUJBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLFFBQVEsRUFBRTtnQkFDOUMsT0FBTyxHQUFHLElBQUksQ0FBQzthQUNoQjtZQUVELElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO2FBQ3JDO1lBRUQsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN6QixVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxnQkFBZ0IsQ0FBQyxLQUE2QixFQUFFLEtBQTBCO1FBQ3hFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7O1lBOUNGLFVBQVU7OztZQVJxRCxNQUFNO1lBRTdELFdBQVc7NENBZWYsTUFBTSxTQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGUsIENhbkFjdGl2YXRlQ2hpbGQsIFJvdXRlciwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBCQVNFX01PRFVMRV9DT05GSUcsIEJhc2VNb2R1bGVDb25maWcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2Jhc2UtbW9kdWxlLWNvbmZpZy5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEF1dGhlbnRpY2F0aW9uIGd1YXJkXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBdXRoR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSwgQ2FuQWN0aXZhdGVDaGlsZCB7XG5cbiAgLyoqXG4gICAqIEltcG9ydHNcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgQEluamVjdChCQVNFX01PRFVMRV9DT05GSUcpIHByaXZhdGUgbW9kdWxlQ29uZmlnOiBCYXNlTW9kdWxlQ29uZmlnXG4gICkge31cblxuICAvKipcbiAgICogQ2FuIGFjdGl2YXRlIG1haW4gcm91dGVcbiAgICovXG4gIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoc3Vic2NyaWJlcikgPT4ge1xuICAgICAgbGV0IGFsbG93ZWQgPSBmYWxzZTtcbiAgICAgIGNvbnN0IG9wcG9zaXRlID0gcm91dGU/LmRhdGE/Lm9wcG9zaXRlID8gcm91dGU/LmRhdGE/Lm9wcG9zaXRlIDogZmFsc2U7XG4gICAgICBjb25zdCByZWRpcmVjdFVybCA9IHJvdXRlPy5kYXRhPy5yZWRpcmVjdFVybCA/IHJvdXRlLmRhdGEucmVkaXJlY3RVcmwgOiB0aGlzLm1vZHVsZUNvbmZpZy5hdXRoR3VhcmRSZWRpcmVjdFVybDtcblxuICAgICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UudG9rZW4gJiYgIW9wcG9zaXRlKSB7XG4gICAgICAgIGlmIChyb3V0ZS5kYXRhLmFsbG93ZWRSb2xlKSB7XG4gICAgICAgICAgY29uc3QgdXNlciA9IHRoaXMuYXV0aFNlcnZpY2UuY3VycmVudFVzZXI7XG4gICAgICAgICAgYWxsb3dlZCA9IHVzZXI/LnJvbGVzPy5pbmNsdWRlcyhyb3V0ZS5kYXRhLmFsbG93ZWRSb2xlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhbGxvd2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICghdGhpcy5hdXRoU2VydmljZS50b2tlbiAmJiBvcHBvc2l0ZSkge1xuICAgICAgICBhbGxvd2VkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFhbGxvd2VkKSB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtyZWRpcmVjdFVybF0pO1xuICAgICAgfVxuXG4gICAgICBzdWJzY3JpYmVyLm5leHQoYWxsb3dlZCk7XG4gICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2FuIGFjdGl2YXRlIGNoaWxkIHJvdXRlXG4gICAqL1xuICBjYW5BY3RpdmF0ZUNoaWxkKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmNhbkFjdGl2YXRlKHJvdXRlLCBzdGF0ZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
/**
|
|
3
|
-
* Guard to check if a component can be deactivated
|
|
4
|
-
*/
|
|
5
|
-
export class CanDeactivateGuard {
|
|
6
|
-
canDeactivate(component) {
|
|
7
|
-
return component.canDeactivate ? component.canDeactivate() : true;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
CanDeactivateGuard.decorators = [
|
|
11
|
-
{ type: Injectable }
|
|
12
|
-
];
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuLWRlYWN0aXZhdGUuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL3NyYy9saWIvYmFzZS9ndWFyZHMvY2FuLWRlYWN0aXZhdGUuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQzs7R0FFRztBQUVILE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsYUFBYSxDQUFDLFNBQWtDO1FBQzlDLE9BQU8sU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDcEUsQ0FBQzs7O1lBSkYsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbkRlYWN0aXZhdGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSUNhbkNvbXBvbmVudERlYWN0aXZhdGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2Nhbi1jb21wb25lbnQtZGVhY3RpdmF0ZS5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEd1YXJkIHRvIGNoZWNrIGlmIGEgY29tcG9uZW50IGNhbiBiZSBkZWFjdGl2YXRlZFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2FuRGVhY3RpdmF0ZUd1YXJkIGltcGxlbWVudHMgQ2FuRGVhY3RpdmF0ZTxJQ2FuQ29tcG9uZW50RGVhY3RpdmF0ZT4ge1xuICBjYW5EZWFjdGl2YXRlKGNvbXBvbmVudDogSUNhbkNvbXBvbmVudERlYWN0aXZhdGUpIHtcbiAgICByZXR1cm4gY29tcG9uZW50LmNhbkRlYWN0aXZhdGUgPyBjb21wb25lbnQuY2FuRGVhY3RpdmF0ZSgpIDogdHJ1ZTtcbiAgfVxufVxuIl19
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Router } from '@angular/router';
|
|
3
|
-
import { Observable } from 'rxjs';
|
|
4
|
-
import { AuthService } from '../services/auth.service';
|
|
5
|
-
/**
|
|
6
|
-
* Logout guard
|
|
7
|
-
*/
|
|
8
|
-
export class LogoutGuard {
|
|
9
|
-
constructor(router, authService) {
|
|
10
|
-
this.router = router;
|
|
11
|
-
this.authService = authService;
|
|
12
|
-
}
|
|
13
|
-
canActivate(route, state) {
|
|
14
|
-
return new Observable((subscriber) => {
|
|
15
|
-
if (this.authService.token) {
|
|
16
|
-
this.authService.logout();
|
|
17
|
-
}
|
|
18
|
-
subscriber.next(true);
|
|
19
|
-
subscriber.complete();
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
canActivateChild(route, state) {
|
|
23
|
-
return this.canActivate(route, state);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
LogoutGuard.decorators = [
|
|
27
|
-
{ type: Injectable }
|
|
28
|
-
];
|
|
29
|
-
LogoutGuard.ctorParameters = () => [
|
|
30
|
-
{ type: Router },
|
|
31
|
-
{ type: AuthService }
|
|
32
|
-
];
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nb3V0Lmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zcmMvbGliL2Jhc2UvZ3VhcmRzL2xvZ291dC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBeUQsTUFBTSxFQUF1QixNQUFNLGlCQUFpQixDQUFDO0FBQ3JILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXZEOztHQUVHO0FBRUgsTUFBTSxPQUFPLFdBQVc7SUFDdEIsWUFBb0IsTUFBYyxFQUFVLFdBQXdCO1FBQWhELFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUFHLENBQUM7SUFFeEUsV0FBVyxDQUFDLEtBQTZCLEVBQUUsS0FBMEI7UUFDbkUsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ25DLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDM0I7WUFFRCxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RCLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUE2QixFQUFFLEtBQTBCO1FBQ3hFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7O1lBakJGLFVBQVU7OztZQVBxRCxNQUFNO1lBRTdELFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5BY3RpdmF0ZSwgQ2FuQWN0aXZhdGVDaGlsZCwgUm91dGVyLCBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcblxuLyoqXG4gKiBMb2dvdXQgZ3VhcmRcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIExvZ291dEd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUsIENhbkFjdGl2YXRlQ2hpbGQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSkge31cblxuICBjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKHN1YnNjcmliZXIpID0+IHtcbiAgICAgIGlmICh0aGlzLmF1dGhTZXJ2aWNlLnRva2VuKSB7XG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9nb3V0KCk7XG4gICAgICB9XG5cbiAgICAgIHN1YnNjcmliZXIubmV4dCh0cnVlKTtcbiAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNhbkFjdGl2YXRlQ2hpbGQocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FuQWN0aXZhdGUocm91dGUsIHN0YXRlKTtcbiAgfVxufVxuIl19
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
/**
|
|
3
|
-
* Truncate string with ellipses
|
|
4
|
-
*/
|
|
5
|
-
export class EllipsesPipe {
|
|
6
|
-
transform(value, limit) {
|
|
7
|
-
if (!value) {
|
|
8
|
-
return null;
|
|
9
|
-
}
|
|
10
|
-
return value.length > limit ? value.substring(0, limit) + '...' : value;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
EllipsesPipe.decorators = [
|
|
14
|
-
{ type: Pipe, args: [{
|
|
15
|
-
name: 'ltEllipses',
|
|
16
|
-
},] }
|
|
17
|
-
];
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxsaXBzZXMucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc3JjL2xpYi9iYXNlL3BpcGVzL2VsbGlwc2VzLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFcEQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sWUFBWTtJQUN2QixTQUFTLENBQUMsS0FBYSxFQUFFLEtBQWE7UUFDcEMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUMxRSxDQUFDOzs7WUFWRixJQUFJLFNBQUM7Z0JBQ0osSUFBSSxFQUFFLFlBQVk7YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogVHJ1bmNhdGUgc3RyaW5nIHdpdGggZWxsaXBzZXNcbiAqL1xuQFBpcGUoe1xuICBuYW1lOiAnbHRFbGxpcHNlcycsXG59KVxuZXhwb3J0IGNsYXNzIEVsbGlwc2VzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZywgbGltaXQ6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlLmxlbmd0aCA+IGxpbWl0ID8gdmFsdWUuc3Vic3RyaW5nKDAsIGxpbWl0KSArICcuLi4nIDogdmFsdWU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { DomSanitizer } from '@angular/platform-browser';
|
|
2
|
-
import { Pipe } from '@angular/core';
|
|
3
|
-
/**
|
|
4
|
-
* Declarate html as safe
|
|
5
|
-
*/
|
|
6
|
-
export class SafeHtmlPipe {
|
|
7
|
-
constructor(sanitized) {
|
|
8
|
-
this.sanitized = sanitized;
|
|
9
|
-
}
|
|
10
|
-
transform(value) {
|
|
11
|
-
return this.sanitized.bypassSecurityTrustHtml(value);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
SafeHtmlPipe.decorators = [
|
|
15
|
-
{ type: Pipe, args: [{ name: 'ltSafeHtml' },] }
|
|
16
|
-
];
|
|
17
|
-
SafeHtmlPipe.ctorParameters = () => [
|
|
18
|
-
{ type: DomSanitizer }
|
|
19
|
-
];
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS1odG1sLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL3NyYy9saWIvYmFzZS9waXBlcy9zYWZlLWh0bWwucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFcEQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sWUFBWTtJQUN2QixZQUFvQixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO0lBQUcsQ0FBQztJQUUvQyxTQUFTLENBQUMsS0FBSztRQUNiLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2RCxDQUFDOzs7WUFORixJQUFJLFNBQUMsRUFBQyxJQUFJLEVBQUUsWUFBWSxFQUFDOzs7WUFOakIsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIERlY2xhcmF0ZSBodG1sIGFzIHNhZmVcbiAqL1xuQFBpcGUoe25hbWU6ICdsdFNhZmVIdG1sJ30pXG5leHBvcnQgY2xhc3MgU2FmZUh0bWxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2FuaXRpemVkOiBEb21TYW5pdGl6ZXIpIHt9XG5cbiAgdHJhbnNmb3JtKHZhbHVlKSB7XG4gICAgcmV0dXJuIHRoaXMuc2FuaXRpemVkLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHZhbHVlKTtcbiAgfVxufVxuIl19
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import { Apollo, gql } from 'apollo-angular';
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import { of } from 'rxjs';
|
|
4
|
-
import { buildClientSchema, getIntrospectionQuery } from 'graphql';
|
|
5
|
-
import { map } from 'rxjs/operators';
|
|
6
|
-
import { GraphQLMeta } from '../classes/graphql-meta.class';
|
|
7
|
-
import { Helper } from '../classes/helper.class';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "apollo-angular";
|
|
10
|
-
/**
|
|
11
|
-
* GraphQL meta service
|
|
12
|
-
*
|
|
13
|
-
* For collecting meta information of the GraphQL API
|
|
14
|
-
*/
|
|
15
|
-
export class GraphQLMetaService {
|
|
16
|
-
/**
|
|
17
|
-
* Include services
|
|
18
|
-
*/
|
|
19
|
-
constructor(apollo) {
|
|
20
|
-
this.apollo = apollo;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Getter of introspectionQuery
|
|
24
|
-
*/
|
|
25
|
-
get introspectionQuery() {
|
|
26
|
-
return JSON.parse(JSON.stringify(this._introspectionQuery));
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Get schema for API
|
|
30
|
-
* See https://www.apollographql.com/blog/three-ways-to-represent-your-graphql-schema-a41f4175100d
|
|
31
|
-
*/
|
|
32
|
-
getSchema(options = {}) {
|
|
33
|
-
// Get configurations
|
|
34
|
-
const config = Object.assign({ cache: true, freeze: true }, options);
|
|
35
|
-
// Use caching
|
|
36
|
-
if (config.cache) {
|
|
37
|
-
if (config.freeze && this._frozenSchema) {
|
|
38
|
-
return of(this._frozenSchema);
|
|
39
|
-
}
|
|
40
|
-
if (this._introspectionQuery) {
|
|
41
|
-
return of(buildClientSchema(this.introspectionQuery));
|
|
42
|
-
}
|
|
43
|
-
if (config.freeze && this._frozenSchemaObservable) {
|
|
44
|
-
return this._frozenSchemaObservable;
|
|
45
|
-
}
|
|
46
|
-
else if (!config.freeze && this._schemaObservable) {
|
|
47
|
-
return this._schemaObservable;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
// Request schema from server
|
|
51
|
-
const observable = this.apollo
|
|
52
|
-
.query({
|
|
53
|
-
query: gql(getIntrospectionQuery({ descriptions: false })),
|
|
54
|
-
})
|
|
55
|
-
.pipe(map((schema) => {
|
|
56
|
-
// Cache introspectionQuery
|
|
57
|
-
this._introspectionQuery = schema.data;
|
|
58
|
-
// Convert schema to GraphQLSchema
|
|
59
|
-
this._frozenSchema = Helper.deepFreeze(buildClientSchema(this.introspectionQuery));
|
|
60
|
-
// Return GraphQLSchema
|
|
61
|
-
if (config.freeze) {
|
|
62
|
-
return this._frozenSchema;
|
|
63
|
-
}
|
|
64
|
-
return buildClientSchema(schema.data);
|
|
65
|
-
}));
|
|
66
|
-
// Set observables
|
|
67
|
-
if (config.freeze) {
|
|
68
|
-
this._frozenSchemaObservable = observable;
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
this._schemaObservable = observable;
|
|
72
|
-
}
|
|
73
|
-
// Return result
|
|
74
|
-
return observable;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Get meta for API
|
|
78
|
-
* See https://www.apollographql.com/blog/three-ways-to-represent-your-graphql-schema-a41f4175100d
|
|
79
|
-
*/
|
|
80
|
-
getMeta(options = {}) {
|
|
81
|
-
// Get configurations
|
|
82
|
-
const config = Object.assign({ cache: true, log: false }, options);
|
|
83
|
-
// Use caching
|
|
84
|
-
if (config.cache) {
|
|
85
|
-
if (this._meta) {
|
|
86
|
-
return of(this._meta);
|
|
87
|
-
}
|
|
88
|
-
else if (this._metaObservable) {
|
|
89
|
-
return this._metaObservable;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
// Request schema from server
|
|
93
|
-
const observable = this.getSchema(options).pipe(map((schema) => {
|
|
94
|
-
// Log
|
|
95
|
-
if (config.log) {
|
|
96
|
-
console.log({ schema });
|
|
97
|
-
}
|
|
98
|
-
this._meta = new GraphQLMeta(schema);
|
|
99
|
-
return this._meta;
|
|
100
|
-
}));
|
|
101
|
-
// Set observables
|
|
102
|
-
this._metaObservable = observable;
|
|
103
|
-
// Return result
|
|
104
|
-
return observable;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
GraphQLMetaService.ɵprov = i0.ɵɵdefineInjectable({ factory: function GraphQLMetaService_Factory() { return new GraphQLMetaService(i0.ɵɵinject(i1.Apollo)); }, token: GraphQLMetaService, providedIn: "root" });
|
|
108
|
-
GraphQLMetaService.decorators = [
|
|
109
|
-
{ type: Injectable, args: [{
|
|
110
|
-
providedIn: 'root',
|
|
111
|
-
},] }
|
|
112
|
-
];
|
|
113
|
-
GraphQLMetaService.ctorParameters = () => [
|
|
114
|
-
{ type: Apollo }
|
|
115
|
-
];
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC1tZXRhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL3NyYy9saWIvYmFzZS9zZXJ2aWNlcy9ncmFwaHFsLW1ldGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQXFDLE1BQU0sU0FBUyxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFFakQ7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxrQkFBa0I7SUFZN0I7O09BRUc7SUFDSCxZQUFzQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFHLENBQUM7SUFFeEM7O09BRUc7SUFDSCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7O09BR0c7SUFDSSxTQUFTLENBQUMsVUFBaUQsRUFBRTtRQUNsRSxxQkFBcUI7UUFDckIsTUFBTSxNQUFNLG1CQUNWLEtBQUssRUFBRSxJQUFJLEVBQ1gsTUFBTSxFQUFFLElBQUksSUFDVCxPQUFPLENBQ1gsQ0FBQztRQUVGLGNBQWM7UUFDZCxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUU7WUFDaEIsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ3ZDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUMvQjtZQUNELElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUM1QixPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO2FBQ3ZEO1lBQ0QsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRTtnQkFDakQsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUM7YUFDckM7aUJBQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO2dCQUNuRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQzthQUMvQjtTQUNGO1FBRUQsNkJBQTZCO1FBQzdCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNO2FBQzNCLEtBQUssQ0FBQztZQUNMLEtBQUssRUFBRSxHQUFHLENBQUMscUJBQXFCLENBQUMsRUFBQyxZQUFZLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztTQUN6RCxDQUFDO2FBQ0QsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQ2xCLDJCQUEyQjtZQUMzQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztZQUV2QyxrQ0FBa0M7WUFDbEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7WUFFbkYsdUJBQXVCO1lBQ3ZCLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtnQkFDakIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO2FBQzNCO1lBQ0QsT0FBTyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVKLGtCQUFrQjtRQUNsQixJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUU7WUFDakIsSUFBSSxDQUFDLHVCQUF1QixHQUFHLFVBQVUsQ0FBQztTQUMzQzthQUFNO1lBQ0wsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztTQUNyQztRQUVELGdCQUFnQjtRQUNoQixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksT0FBTyxDQUFDLFVBQThDLEVBQUU7UUFDN0QscUJBQXFCO1FBQ3JCLE1BQU0sTUFBTSxtQkFDVixLQUFLLEVBQUUsSUFBSSxFQUNYLEdBQUcsRUFBRSxLQUFLLElBQ1AsT0FBTyxDQUNYLENBQUM7UUFFRixjQUFjO1FBQ2QsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFO1lBQ2hCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDZCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDdkI7aUJBQU0sSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUMvQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7YUFDN0I7U0FDRjtRQUVELDZCQUE2QjtRQUM3QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDN0MsR0FBRyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7WUFDbEIsTUFBTTtZQUNOLElBQUksTUFBTSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsQ0FBQzthQUN2QjtZQUVELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDckMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUNILENBQUM7UUFFRixrQkFBa0I7UUFDbEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxVQUFVLENBQUM7UUFFbEMsZ0JBQWdCO1FBQ2hCLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7Ozs7WUE3SEYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFmUSxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBvbGxvLCBncWwgfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgYnVpbGRDbGllbnRTY2hlbWEsIGdldEludHJvc3BlY3Rpb25RdWVyeSwgR3JhcGhRTFNjaGVtYSwgSW50cm9zcGVjdGlvblF1ZXJ5IH0gZnJvbSAnZ3JhcGhxbCc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBHcmFwaFFMTWV0YSB9IGZyb20gJy4uL2NsYXNzZXMvZ3JhcGhxbC1tZXRhLmNsYXNzJztcbmltcG9ydCB7IEhlbHBlciB9IGZyb20gJy4uL2NsYXNzZXMvaGVscGVyLmNsYXNzJztcblxuLyoqXG4gKiBHcmFwaFFMIG1ldGEgc2VydmljZVxuICpcbiAqIEZvciBjb2xsZWN0aW5nIG1ldGEgaW5mb3JtYXRpb24gb2YgdGhlIEdyYXBoUUwgQVBJXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBHcmFwaFFMTWV0YVNlcnZpY2Uge1xuXG4gIC8vIENhY2hlc1xuICBwcm90ZWN0ZWQgX2Zyb3plblNjaGVtYTogR3JhcGhRTFNjaGVtYTtcbiAgcHJvdGVjdGVkIF9mcm96ZW5TY2hlbWFPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPEdyYXBoUUxTY2hlbWE+O1xuICBwcm90ZWN0ZWQgX21ldGE6IEdyYXBoUUxNZXRhO1xuICBwcm90ZWN0ZWQgX21ldGFPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPEdyYXBoUUxNZXRhPjtcbiAgcHJvdGVjdGVkIF9zY2hlbWFPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPEdyYXBoUUxTY2hlbWE+O1xuXG4gIC8vIFByaXZhdGUgY2FjaGVzXG4gIHByaXZhdGUgX2ludHJvc3BlY3Rpb25RdWVyeTogSW50cm9zcGVjdGlvblF1ZXJ5O1xuXG4gIC8qKlxuICAgKiBJbmNsdWRlIHNlcnZpY2VzXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgYXBvbGxvOiBBcG9sbG8pIHt9XG5cbiAgLyoqXG4gICAqIEdldHRlciBvZiBpbnRyb3NwZWN0aW9uUXVlcnlcbiAgICovXG4gIGdldCBpbnRyb3NwZWN0aW9uUXVlcnkoKTogSW50cm9zcGVjdGlvblF1ZXJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLl9pbnRyb3NwZWN0aW9uUXVlcnkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgc2NoZW1hIGZvciBBUElcbiAgICogU2VlIGh0dHBzOi8vd3d3LmFwb2xsb2dyYXBocWwuY29tL2Jsb2cvdGhyZWUtd2F5cy10by1yZXByZXNlbnQteW91ci1ncmFwaHFsLXNjaGVtYS1hNDFmNDE3NTEwMGRcbiAgICovXG4gIHB1YmxpYyBnZXRTY2hlbWEob3B0aW9uczogeyBjYWNoZT86IGJvb2xlYW47IGZyZWV6ZT86IGJvb2xlYW4gfSA9IHt9KTogT2JzZXJ2YWJsZTxHcmFwaFFMU2NoZW1hPiB7XG4gICAgLy8gR2V0IGNvbmZpZ3VyYXRpb25zXG4gICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgY2FjaGU6IHRydWUsXG4gICAgICBmcmVlemU6IHRydWUsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICAvLyBVc2UgY2FjaGluZ1xuICAgIGlmIChjb25maWcuY2FjaGUpIHtcbiAgICAgIGlmIChjb25maWcuZnJlZXplICYmIHRoaXMuX2Zyb3plblNjaGVtYSkge1xuICAgICAgICByZXR1cm4gb2YodGhpcy5fZnJvemVuU2NoZW1hKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl9pbnRyb3NwZWN0aW9uUXVlcnkpIHtcbiAgICAgICAgcmV0dXJuIG9mKGJ1aWxkQ2xpZW50U2NoZW1hKHRoaXMuaW50cm9zcGVjdGlvblF1ZXJ5KSk7XG4gICAgICB9XG4gICAgICBpZiAoY29uZmlnLmZyZWV6ZSAmJiB0aGlzLl9mcm96ZW5TY2hlbWFPYnNlcnZhYmxlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mcm96ZW5TY2hlbWFPYnNlcnZhYmxlO1xuICAgICAgfSBlbHNlIGlmICghY29uZmlnLmZyZWV6ZSAmJiB0aGlzLl9zY2hlbWFPYnNlcnZhYmxlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zY2hlbWFPYnNlcnZhYmxlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlcXVlc3Qgc2NoZW1hIGZyb20gc2VydmVyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZSA9IHRoaXMuYXBvbGxvXG4gICAgICAucXVlcnkoe1xuICAgICAgICBxdWVyeTogZ3FsKGdldEludHJvc3BlY3Rpb25RdWVyeSh7ZGVzY3JpcHRpb25zOiBmYWxzZX0pKSxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChzY2hlbWE6IGFueSkgPT4ge1xuICAgICAgICAgIC8vIENhY2hlIGludHJvc3BlY3Rpb25RdWVyeVxuICAgICAgICAgIHRoaXMuX2ludHJvc3BlY3Rpb25RdWVyeSA9IHNjaGVtYS5kYXRhO1xuXG4gICAgICAgICAgLy8gQ29udmVydCBzY2hlbWEgdG8gR3JhcGhRTFNjaGVtYVxuICAgICAgICAgIHRoaXMuX2Zyb3plblNjaGVtYSA9IEhlbHBlci5kZWVwRnJlZXplKGJ1aWxkQ2xpZW50U2NoZW1hKHRoaXMuaW50cm9zcGVjdGlvblF1ZXJ5KSk7XG5cbiAgICAgICAgICAvLyBSZXR1cm4gR3JhcGhRTFNjaGVtYVxuICAgICAgICAgIGlmIChjb25maWcuZnJlZXplKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZnJvemVuU2NoZW1hO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYnVpbGRDbGllbnRTY2hlbWEoc2NoZW1hLmRhdGEpO1xuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgIC8vIFNldCBvYnNlcnZhYmxlc1xuICAgIGlmIChjb25maWcuZnJlZXplKSB7XG4gICAgICB0aGlzLl9mcm96ZW5TY2hlbWFPYnNlcnZhYmxlID0gb2JzZXJ2YWJsZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fc2NoZW1hT2JzZXJ2YWJsZSA9IG9ic2VydmFibGU7XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIHJlc3VsdFxuICAgIHJldHVybiBvYnNlcnZhYmxlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBtZXRhIGZvciBBUElcbiAgICogU2VlIGh0dHBzOi8vd3d3LmFwb2xsb2dyYXBocWwuY29tL2Jsb2cvdGhyZWUtd2F5cy10by1yZXByZXNlbnQteW91ci1ncmFwaHFsLXNjaGVtYS1hNDFmNDE3NTEwMGRcbiAgICovXG4gIHB1YmxpYyBnZXRNZXRhKG9wdGlvbnM6IHsgY2FjaGU/OiBib29sZWFuOyBsb2c/OiBib29sZWFuIH0gPSB7fSk6IE9ic2VydmFibGU8R3JhcGhRTE1ldGE+IHtcbiAgICAvLyBHZXQgY29uZmlndXJhdGlvbnNcbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICBjYWNoZTogdHJ1ZSxcbiAgICAgIGxvZzogZmFsc2UsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICAvLyBVc2UgY2FjaGluZ1xuICAgIGlmIChjb25maWcuY2FjaGUpIHtcbiAgICAgIGlmICh0aGlzLl9tZXRhKSB7XG4gICAgICAgIHJldHVybiBvZih0aGlzLl9tZXRhKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fbWV0YU9ic2VydmFibGUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21ldGFPYnNlcnZhYmxlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlcXVlc3Qgc2NoZW1hIGZyb20gc2VydmVyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZSA9IHRoaXMuZ2V0U2NoZW1hKG9wdGlvbnMpLnBpcGUoXG4gICAgICBtYXAoKHNjaGVtYTogYW55KSA9PiB7XG4gICAgICAgIC8vIExvZ1xuICAgICAgICBpZiAoY29uZmlnLmxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKHtzY2hlbWF9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX21ldGEgPSBuZXcgR3JhcGhRTE1ldGEoc2NoZW1hKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21ldGE7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICAvLyBTZXQgb2JzZXJ2YWJsZXNcbiAgICB0aGlzLl9tZXRhT2JzZXJ2YWJsZSA9IG9ic2VydmFibGU7XG5cbiAgICAvLyBSZXR1cm4gcmVzdWx0XG4gICAgcmV0dXJuIG9ic2VydmFibGU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { Apollo } from 'apollo-angular';
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import { Observable } from 'rxjs';
|
|
4
|
-
import { GraphQLService } from './graphql.service';
|
|
5
|
-
import { GraphQLMetaService } from './graphql-meta.service';
|
|
6
|
-
import { LoaderService } from './loader.service';
|
|
7
|
-
import { GraphQLRequestType } from '../enums/graphql-request-type.enum';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "apollo-angular";
|
|
10
|
-
import * as i2 from "./graphql-meta.service";
|
|
11
|
-
import * as i3 from "./loader.service";
|
|
12
|
-
/**
|
|
13
|
-
* GraphQL plus service, for extra error handling and loading indication
|
|
14
|
-
*/
|
|
15
|
-
export class GraphQLPlusService extends GraphQLService {
|
|
16
|
-
/**
|
|
17
|
-
* Include services
|
|
18
|
-
*/
|
|
19
|
-
constructor(apollo, graphqlMetaService, loaderService) {
|
|
20
|
-
super(apollo, graphqlMetaService);
|
|
21
|
-
this.apollo = apollo;
|
|
22
|
-
this.graphqlMetaService = graphqlMetaService;
|
|
23
|
-
this.loaderService = loaderService;
|
|
24
|
-
}
|
|
25
|
-
graphQl(graphql, options = {}) {
|
|
26
|
-
this.handleLoader('start', options);
|
|
27
|
-
return new Observable((subscriber) => {
|
|
28
|
-
super.graphQl(graphql, options).subscribe((response) => {
|
|
29
|
-
if (response && response.errors) {
|
|
30
|
-
this.handleError(response.errors, options.excludedErrors);
|
|
31
|
-
subscriber.error(response);
|
|
32
|
-
this.handleLoader('stop', options);
|
|
33
|
-
subscriber.complete();
|
|
34
|
-
}
|
|
35
|
-
subscriber.next(response);
|
|
36
|
-
this.handleLoader('stop', options);
|
|
37
|
-
if (options.type !== GraphQLRequestType.SUBSCRIPTION) {
|
|
38
|
-
subscriber.complete();
|
|
39
|
-
}
|
|
40
|
-
}, (error) => {
|
|
41
|
-
if (!options.ignoreErrors) {
|
|
42
|
-
this.handleError(error, options.excludedErrors);
|
|
43
|
-
}
|
|
44
|
-
subscriber.error(error);
|
|
45
|
-
this.handleLoader('stop', options);
|
|
46
|
-
subscriber.complete();
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
handleLoader(state, options) {
|
|
51
|
-
if (options.loading) {
|
|
52
|
-
if (state === 'start') {
|
|
53
|
-
this.loaderService.start();
|
|
54
|
-
}
|
|
55
|
-
else if (state === 'stop') {
|
|
56
|
-
this.loaderService.stop();
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
handleError(error, excludedErrors = null) {
|
|
61
|
-
if (excludedErrors) {
|
|
62
|
-
if (Array.isArray(excludedErrors)) {
|
|
63
|
-
excludedErrors.forEach((excludedError) => {
|
|
64
|
-
if (error.message.includes(excludedError.toLowerCase())) {
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
else if (error.message.toLowerCase().includes(excludedErrors === null || excludedErrors === void 0 ? void 0 : excludedErrors.toLowerCase())) {
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
this.displayError(error);
|
|
74
|
-
}
|
|
75
|
-
displayError(error) {
|
|
76
|
-
console.error(error);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
GraphQLPlusService.ɵprov = i0.ɵɵdefineInjectable({ factory: function GraphQLPlusService_Factory() { return new GraphQLPlusService(i0.ɵɵinject(i1.Apollo), i0.ɵɵinject(i2.GraphQLMetaService), i0.ɵɵinject(i3.LoaderService)); }, token: GraphQLPlusService, providedIn: "root" });
|
|
80
|
-
GraphQLPlusService.decorators = [
|
|
81
|
-
{ type: Injectable, args: [{
|
|
82
|
-
providedIn: 'root',
|
|
83
|
-
},] }
|
|
84
|
-
];
|
|
85
|
-
GraphQLPlusService.ctorParameters = () => [
|
|
86
|
-
{ type: Apollo },
|
|
87
|
-
{ type: GraphQLMetaService },
|
|
88
|
-
{ type: LoaderService }
|
|
89
|
-
];
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC1wbHVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL3NyYy9saWIvYmFzZS9zZXJ2aWNlcy9ncmFwaHFsLXBsdXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7O0FBRXhFOztHQUVHO0FBSUgsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGNBQWM7SUFDcEQ7O09BRUc7SUFDSCxZQUNZLE1BQWMsRUFDZCxrQkFBc0MsRUFDdEMsYUFBNEI7UUFFdEMsS0FBSyxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBSnhCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBR3hDLENBQUM7SUFFTSxPQUFPLENBQUMsT0FBZSxFQUFFLFVBQStCLEVBQUU7UUFDL0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFcEMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ25DLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FDdkMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDWCxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFO29CQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO29CQUMxRCxVQUFVLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUMzQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztvQkFDbkMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO2lCQUN2QjtnQkFFRCxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLGtCQUFrQixDQUFDLFlBQVksRUFBRTtvQkFDcEQsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO2lCQUN2QjtZQUNILENBQUMsRUFDRCxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNSLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFO29CQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7aUJBQ2pEO2dCQUNELFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUNuQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEIsQ0FBQyxDQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBdUIsRUFBRSxPQUE0QjtRQUNoRSxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUU7WUFDbkIsSUFBSSxLQUFLLEtBQUssT0FBTyxFQUFFO2dCQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQzVCO2lCQUFNLElBQUksS0FBSyxLQUFLLE1BQU0sRUFBRTtnQkFDM0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUMzQjtTQUNGO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFZLEVBQUUsaUJBQXNCLElBQUk7UUFDbEQsSUFBSSxjQUFjLEVBQUU7WUFDbEIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFO2dCQUNqQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7b0JBQ3ZDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUU7d0JBQ3ZELE9BQU87cUJBQ1I7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7YUFDSjtpQkFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLGNBQWMsYUFBZCxjQUFjLHVCQUFkLGNBQWMsQ0FBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFO2dCQUM5RSxPQUFPO2FBQ1I7U0FDRjtRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFVO1FBQ3JCLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQzs7OztZQTFFRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQWRRLE1BQU07WUFJTixrQkFBa0I7WUFFbEIsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwb2xsbyB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEdyYXBoUUxTZXJ2aWNlIH0gZnJvbSAnLi9ncmFwaHFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgR3JhcGhRTE1ldGFTZXJ2aWNlIH0gZnJvbSAnLi9ncmFwaHFsLW1ldGEuc2VydmljZSc7XG5pbXBvcnQgeyBJR3JhcGhRTFBsdXNPcHRpb25zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ncmFwaHFsLXBsdXMtb3B0aW9ucy5pbnRlcmZhY2VuJztcbmltcG9ydCB7IExvYWRlclNlcnZpY2UgfSBmcm9tICcuL2xvYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IEdyYXBoUUxSZXF1ZXN0VHlwZSB9IGZyb20gJy4uL2VudW1zL2dyYXBocWwtcmVxdWVzdC10eXBlLmVudW0nO1xuXG4vKipcbiAqIEdyYXBoUUwgcGx1cyBzZXJ2aWNlLCBmb3IgZXh0cmEgZXJyb3IgaGFuZGxpbmcgYW5kIGxvYWRpbmcgaW5kaWNhdGlvblxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgR3JhcGhRTFBsdXNTZXJ2aWNlIGV4dGVuZHMgR3JhcGhRTFNlcnZpY2Uge1xuICAvKipcbiAgICogSW5jbHVkZSBzZXJ2aWNlc1xuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGFwb2xsbzogQXBvbGxvLFxuICAgIHByb3RlY3RlZCBncmFwaHFsTWV0YVNlcnZpY2U6IEdyYXBoUUxNZXRhU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgbG9hZGVyU2VydmljZTogTG9hZGVyU2VydmljZVxuICApIHtcbiAgICBzdXBlcihhcG9sbG8sIGdyYXBocWxNZXRhU2VydmljZSk7XG4gIH1cblxuICBwdWJsaWMgZ3JhcGhRbChncmFwaHFsOiBzdHJpbmcsIG9wdGlvbnM6IElHcmFwaFFMUGx1c09wdGlvbnMgPSB7fSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgdGhpcy5oYW5kbGVMb2FkZXIoJ3N0YXJ0Jywgb3B0aW9ucyk7XG5cbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKHN1YnNjcmliZXIpID0+IHtcbiAgICAgIHN1cGVyLmdyYXBoUWwoZ3JhcGhxbCwgb3B0aW9ucykuc3Vic2NyaWJlKFxuICAgICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UuZXJyb3JzKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKHJlc3BvbnNlLmVycm9ycywgb3B0aW9ucy5leGNsdWRlZEVycm9ycyk7XG4gICAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKHJlc3BvbnNlKTtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlTG9hZGVyKCdzdG9wJywgb3B0aW9ucyk7XG4gICAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHJlc3BvbnNlKTtcbiAgICAgICAgICB0aGlzLmhhbmRsZUxvYWRlcignc3RvcCcsIG9wdGlvbnMpO1xuICAgICAgICAgIGlmIChvcHRpb25zLnR5cGUgIT09IEdyYXBoUUxSZXF1ZXN0VHlwZS5TVUJTQ1JJUFRJT04pIHtcbiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgIGlmICghb3B0aW9ucy5pZ25vcmVFcnJvcnMpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IsIG9wdGlvbnMuZXhjbHVkZWRFcnJvcnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycm9yKTtcbiAgICAgICAgICB0aGlzLmhhbmRsZUxvYWRlcignc3RvcCcsIG9wdGlvbnMpO1xuICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIGhhbmRsZUxvYWRlcihzdGF0ZTogJ3N0YXJ0JyB8ICdzdG9wJywgb3B0aW9uczogSUdyYXBoUUxQbHVzT3B0aW9ucyk6IHZvaWQge1xuICAgIGlmIChvcHRpb25zLmxvYWRpbmcpIHtcbiAgICAgIGlmIChzdGF0ZSA9PT0gJ3N0YXJ0Jykge1xuICAgICAgICB0aGlzLmxvYWRlclNlcnZpY2Uuc3RhcnQoKTtcbiAgICAgIH0gZWxzZSBpZiAoc3RhdGUgPT09ICdzdG9wJykge1xuICAgICAgICB0aGlzLmxvYWRlclNlcnZpY2Uuc3RvcCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUVycm9yKGVycm9yOiBFcnJvciwgZXhjbHVkZWRFcnJvcnM6IGFueSA9IG51bGwpOiB2b2lkIHtcbiAgICBpZiAoZXhjbHVkZWRFcnJvcnMpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGV4Y2x1ZGVkRXJyb3JzKSkge1xuICAgICAgICBleGNsdWRlZEVycm9ycy5mb3JFYWNoKChleGNsdWRlZEVycm9yKSA9PiB7XG4gICAgICAgICAgaWYgKGVycm9yLm1lc3NhZ2UuaW5jbHVkZXMoZXhjbHVkZWRFcnJvci50b0xvd2VyQ2FzZSgpKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKGVycm9yLm1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhleGNsdWRlZEVycm9ycz8udG9Mb3dlckNhc2UoKSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZGlzcGxheUVycm9yKGVycm9yKTtcbiAgfVxuXG4gIGRpc3BsYXlFcnJvcihlcnJvcjogYW55KTogdm9pZCB7XG4gICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gIH1cbn1cbiJdfQ==
|