@lenne.tech/ng-base 15.0.0-beta-3 → 16.1.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/base-components/base-components.module.d.ts +1 -2
- package/base-components/components/checkbox/checkbox.component.d.ts +1 -1
- package/base-components/components/delete-account/delete-account.component.d.ts +1 -1
- package/base-components/components/fab-button/fab-button.component.d.ts +1 -1
- package/base-components/components/input/input.component.d.ts +1 -1
- package/base-components/components/loading-bar/loading-bar.component.d.ts +1 -1
- package/base-components/components/model-form/model-form-base.component.d.ts +1 -1
- package/base-components/components/model-form/model-form.component.d.ts +1 -1
- package/base-components/components/model-form-sub/model-form-sub.component.d.ts +1 -1
- package/base-components/components/model-table/model-table.component.d.ts +1 -1
- package/base-components/components/refence-input/refence-input.component.d.ts +1 -1
- package/base-components/components/select/select.component.d.ts +1 -1
- package/base-components/components/skeleton-loader/skeleton-loader.component.d.ts +1 -1
- package/base-components/components/tags/tags.component.d.ts +1 -1
- package/base-components/components/textarea/textarea.component.d.ts +1 -1
- package/base-components/components/toast/toast.component.d.ts +1 -1
- package/base-components/components/upload-image/upload-image.component.d.ts +1 -1
- package/base-components/directives/context-menu.directive.d.ts +1 -1
- package/base-components/directives/sort.directive.d.ts +1 -1
- package/base-prototype/pages/login/login.component.d.ts +1 -1
- package/base-prototype/pages/profile/profile.component.d.ts +1 -1
- package/base-prototype/pages/set-password/set-password.component.d.ts +1 -1
- package/esm2022/base-cms/base-cms-routing.module.mjs +33 -0
- package/esm2022/base-cms/base-cms.module.mjs +61 -0
- package/esm2022/base-cms/pages/base-cms/base-cms.component.mjs +233 -0
- package/esm2022/base-components/base-components.module.mjs +123 -0
- package/esm2022/base-components/components/breadcrumb/breadcrumb.component.mjs +21 -0
- package/esm2022/base-components/components/change-password/change-password.component.mjs +96 -0
- package/esm2022/base-components/components/checkbox/checkbox.component.mjs +35 -0
- package/esm2022/base-components/components/delete-account/delete-account.component.mjs +61 -0
- package/esm2022/base-components/components/fab-button/fab-button.component.mjs +21 -0
- package/esm2022/base-components/components/input/input.component.mjs +72 -0
- package/esm2022/base-components/components/loading-bar/loading-bar.component.mjs +39 -0
- package/esm2022/base-components/components/model-form/model-form-base.component.mjs +145 -0
- package/esm2022/base-components/components/model-form/model-form.component.mjs +585 -0
- package/esm2022/base-components/components/model-form-sub/model-form-sub.component.mjs +111 -0
- package/esm2022/base-components/components/model-table/model-table.component.mjs +470 -0
- package/esm2022/base-components/components/refence-input/refence-input.component.mjs +273 -0
- package/esm2022/base-components/components/select/select.component.mjs +59 -0
- package/esm2022/base-components/components/skeleton-loader/skeleton-loader.component.mjs +32 -0
- package/esm2022/base-components/components/tags/tags.component.mjs +224 -0
- package/esm2022/base-components/components/textarea/textarea.component.mjs +76 -0
- package/esm2022/base-components/components/toast/toast.component.mjs +70 -0
- package/esm2022/base-components/components/upload-image/upload-image.component.mjs +343 -0
- package/esm2022/base-components/directives/back-button.directive.mjs +25 -0
- package/esm2022/base-components/directives/context-menu.directive.mjs +112 -0
- package/esm2022/base-components/directives/sort.directive.mjs +61 -0
- package/esm2022/base-components/directives/stop-propagation.directive.mjs +24 -0
- package/esm2022/base-components/pipes/ellipses.pipe.mjs +23 -0
- package/esm2022/base-prototype/base-prototype.module.mjs +54 -0
- package/esm2022/base-prototype/pages/email-verification/email-verification.component.mjs +62 -0
- package/esm2022/base-prototype/pages/forgot-password/forgot-password.component.mjs +75 -0
- package/esm2022/base-prototype/pages/login/login.component.mjs +111 -0
- package/esm2022/base-prototype/pages/profile/profile.component.mjs +86 -0
- package/esm2022/base-prototype/pages/register/register.component.mjs +94 -0
- package/esm2022/base-prototype/pages/set-password/set-password.component.mjs +90 -0
- package/esm2022/shared/classes/auth.class.mjs +14 -0
- package/esm2022/shared/classes/basic-user.class.mjs +49 -0
- package/esm2022/shared/classes/graphql-enum.class.mjs +10 -0
- package/esm2022/shared/classes/graphql-meta.class.mjs +345 -0
- package/esm2022/shared/classes/graphql-type.class.mjs +14 -0
- package/esm2022/shared/classes/sort.class.mjs +38 -0
- package/esm2022/shared/services/auth.service.mjs +153 -0
- package/esm2022/shared/services/breadcrumb.service.mjs +70 -0
- package/{esm2020 → esm2022}/shared/services/cms.service.mjs +7 -5
- package/esm2022/shared/services/file.service.mjs +87 -0
- package/esm2022/shared/services/forms.service.mjs +62 -0
- package/esm2022/shared/services/graphql-meta.service.mjs +133 -0
- package/esm2022/shared/services/graphql-plus.service.mjs +94 -0
- package/esm2022/shared/services/graphql.service.mjs +511 -0
- package/esm2022/shared/services/image.service.mjs +103 -0
- package/esm2022/shared/services/loader.service.mjs +79 -0
- package/esm2022/shared/services/navigation.service.mjs +39 -0
- package/esm2022/shared/services/scroll.service.mjs +208 -0
- package/esm2022/shared/services/storage.service.mjs +142 -0
- package/esm2022/shared/services/toast.service.mjs +40 -0
- package/esm2022/shared/services/user.service.mjs +161 -0
- package/esm2022/shared/services/ws.service.mjs +18 -0
- package/esm2022/src/base.module.mjs +98 -0
- package/esm2022/src/directives/lazy-load.directive.mjs +48 -0
- package/esm2022/src/directives/match-height.directive.mjs +92 -0
- package/esm2022/src/directives/resizable.directive.mjs +92 -0
- package/esm2022/src/functions/extract-files.function.mjs +87 -0
- package/esm2022/src/guards/auth.guard.mjs +92 -0
- package/esm2022/src/guards/can-deactivate.guard.mjs +17 -0
- package/esm2022/src/guards/logout.guard.mjs +35 -0
- package/esm2022/src/pipes/date-ago.pipe.mjs +64 -0
- package/esm2022/src/pipes/safe-html.pipe.mjs +23 -0
- package/esm2022/src/services/fullscreen.service.mjs +52 -0
- package/esm2022/src/services/seo.service.mjs +100 -0
- package/esm2022/src/services/theme.service.mjs +45 -0
- package/{fesm2020 → fesm2022}/lenne.tech-ng-base-base-cms.mjs +41 -30
- package/{fesm2020 → fesm2022}/lenne.tech-ng-base-base-cms.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/lenne.tech-ng-base-base-components.mjs +421 -300
- package/fesm2022/lenne.tech-ng-base-base-components.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/lenne.tech-ng-base-base-prototype.mjs +127 -88
- package/fesm2022/lenne.tech-ng-base-base-prototype.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/lenne.tech-ng-base-shared.mjs +164 -113
- package/{fesm2020 → fesm2022}/lenne.tech-ng-base-shared.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/lenne.tech-ng-base.mjs +153 -126
- package/fesm2022/lenne.tech-ng-base.mjs.map +1 -0
- package/package.json +23 -38
- package/src/directives/lazy-load.directive.d.ts +1 -1
- package/src/directives/match-height.directive.d.ts +1 -1
- package/src/directives/resizable.directive.d.ts +1 -1
- package/src/guards/auth.guard.d.ts +4 -3
- package/src/guards/can-deactivate.guard.d.ts +1 -2
- package/src/guards/logout.guard.d.ts +2 -2
- package/esm2020/base-cms/base-cms-routing.module.mjs +0 -32
- package/esm2020/base-cms/base-cms.module.mjs +0 -59
- package/esm2020/base-cms/pages/base-cms/base-cms.component.mjs +0 -222
- package/esm2020/base-components/base-components.module.mjs +0 -123
- package/esm2020/base-components/components/breadcrumb/breadcrumb.component.mjs +0 -18
- package/esm2020/base-components/components/change-password/change-password.component.mjs +0 -90
- package/esm2020/base-components/components/checkbox/checkbox.component.mjs +0 -31
- package/esm2020/base-components/components/delete-account/delete-account.component.mjs +0 -56
- package/esm2020/base-components/components/fab-button/fab-button.component.mjs +0 -21
- package/esm2020/base-components/components/input/input.component.mjs +0 -67
- package/esm2020/base-components/components/loading-bar/loading-bar.component.mjs +0 -35
- package/esm2020/base-components/components/model-form/model-form-base.component.mjs +0 -136
- package/esm2020/base-components/components/model-form/model-form.component.mjs +0 -564
- package/esm2020/base-components/components/model-form-sub/model-form-sub.component.mjs +0 -102
- package/esm2020/base-components/components/model-table/model-table.component.mjs +0 -456
- package/esm2020/base-components/components/refence-input/refence-input.component.mjs +0 -261
- package/esm2020/base-components/components/select/select.component.mjs +0 -54
- package/esm2020/base-components/components/skeleton-loader/skeleton-loader.component.mjs +0 -32
- package/esm2020/base-components/components/tags/tags.component.mjs +0 -218
- package/esm2020/base-components/components/textarea/textarea.component.mjs +0 -72
- package/esm2020/base-components/components/toast/toast.component.mjs +0 -68
- package/esm2020/base-components/components/upload-image/upload-image.component.mjs +0 -324
- package/esm2020/base-components/directives/back-button.directive.mjs +0 -23
- package/esm2020/base-components/directives/context-menu.directive.mjs +0 -108
- package/esm2020/base-components/directives/sort.directive.mjs +0 -57
- package/esm2020/base-components/directives/stop-propagation.directive.mjs +0 -23
- package/esm2020/base-components/pipes/ellipses.pipe.mjs +0 -22
- package/esm2020/base-prototype/base-prototype.module.mjs +0 -53
- package/esm2020/base-prototype/pages/email-verification/email-verification.component.mjs +0 -55
- package/esm2020/base-prototype/pages/forgot-password/forgot-password.component.mjs +0 -67
- package/esm2020/base-prototype/pages/login/login.component.mjs +0 -102
- package/esm2020/base-prototype/pages/profile/profile.component.mjs +0 -81
- package/esm2020/base-prototype/pages/register/register.component.mjs +0 -86
- package/esm2020/base-prototype/pages/set-password/set-password.component.mjs +0 -82
- package/esm2020/shared/classes/auth.class.mjs +0 -17
- package/esm2020/shared/classes/basic-user.class.mjs +0 -52
- package/esm2020/shared/classes/graphql-enum.class.mjs +0 -9
- package/esm2020/shared/classes/graphql-meta.class.mjs +0 -344
- package/esm2020/shared/classes/graphql-type.class.mjs +0 -17
- package/esm2020/shared/classes/sort.class.mjs +0 -40
- package/esm2020/shared/services/auth.service.mjs +0 -148
- package/esm2020/shared/services/breadcrumb.service.mjs +0 -68
- package/esm2020/shared/services/file.service.mjs +0 -84
- package/esm2020/shared/services/forms.service.mjs +0 -59
- package/esm2020/shared/services/graphql-meta.service.mjs +0 -123
- package/esm2020/shared/services/graphql-plus.service.mjs +0 -89
- package/esm2020/shared/services/graphql.service.mjs +0 -507
- package/esm2020/shared/services/image.service.mjs +0 -102
- package/esm2020/shared/services/loader.service.mjs +0 -79
- package/esm2020/shared/services/navigation.service.mjs +0 -36
- package/esm2020/shared/services/scroll.service.mjs +0 -179
- package/esm2020/shared/services/storage.service.mjs +0 -140
- package/esm2020/shared/services/toast.service.mjs +0 -41
- package/esm2020/shared/services/user.service.mjs +0 -155
- package/esm2020/shared/services/ws.service.mjs +0 -16
- package/esm2020/src/base.module.mjs +0 -97
- package/esm2020/src/directives/lazy-load.directive.mjs +0 -45
- package/esm2020/src/directives/match-height.directive.mjs +0 -84
- package/esm2020/src/directives/resizable.directive.mjs +0 -90
- package/esm2020/src/functions/extract-files.function.mjs +0 -84
- package/esm2020/src/guards/auth.guard.mjs +0 -80
- package/esm2020/src/guards/can-deactivate.guard.mjs +0 -16
- package/esm2020/src/guards/logout.guard.mjs +0 -32
- package/esm2020/src/pipes/date-ago.pipe.mjs +0 -65
- package/esm2020/src/pipes/safe-html.pipe.mjs +0 -21
- package/esm2020/src/services/fullscreen.service.mjs +0 -51
- package/esm2020/src/services/seo.service.mjs +0 -97
- package/esm2020/src/services/theme.service.mjs +0 -43
- package/fesm2015/lenne.tech-ng-base-base-cms.mjs +0 -323
- package/fesm2015/lenne.tech-ng-base-base-cms.mjs.map +0 -1
- package/fesm2015/lenne.tech-ng-base-base-components.mjs +0 -2866
- package/fesm2015/lenne.tech-ng-base-base-components.mjs.map +0 -1
- package/fesm2015/lenne.tech-ng-base-base-prototype.mjs +0 -496
- package/fesm2015/lenne.tech-ng-base-base-prototype.mjs.map +0 -1
- package/fesm2015/lenne.tech-ng-base-shared.mjs +0 -2750
- package/fesm2015/lenne.tech-ng-base-shared.mjs.map +0 -1
- package/fesm2015/lenne.tech-ng-base.mjs +0 -905
- package/fesm2015/lenne.tech-ng-base.mjs.map +0 -1
- package/fesm2020/lenne.tech-ng-base-base-components.mjs.map +0 -1
- package/fesm2020/lenne.tech-ng-base-base-prototype.mjs.map +0 -1
- package/fesm2020/lenne.tech-ng-base.mjs.map +0 -1
- /package/{esm2020 → esm2022}/base-cms/interfaces/base-cms-module-config.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/base-cms/lenne.tech-ng-base-base-cms.mjs +0 -0
- /package/{esm2020 → esm2022}/base-cms/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/base-components/lenne.tech-ng-base-base-components.mjs +0 -0
- /package/{esm2020 → esm2022}/base-components/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/base-prototype/lenne.tech-ng-base-base-prototype.mjs +0 -0
- /package/{esm2020 → esm2022}/base-prototype/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lenne.tech-ng-base.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/classes/helper.class.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/classes/standard.class.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/decorators/debounce.decorator.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/enums/comparison-operator.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/enums/graphql-request-type.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/enums/logical-operator.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/enums/skeleton-type.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/enums/sort-order.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/enums/toast-type.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/functions/ws-client.function.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/interfaces/base-module-config.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/interfaces/breadcrumb.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/interfaces/can-component-deactivate.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/interfaces/cms-enum-values.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/interfaces/cms-field-config.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/interfaces/cms-model-config.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/interfaces/cms-table-field.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/interfaces/combined-filter-input.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/interfaces/compress-options.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/interfaces/cropping-options.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/interfaces/field-object.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/interfaces/field.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/interfaces/filter-input.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/interfaces/find-args.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/interfaces/graphql-crud-type.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/interfaces/graphql-fields-object.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/interfaces/graphql-options.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/interfaces/graphql-plus-options.interfacen.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/interfaces/graphql-type-collection.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/interfaces/login-config.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/interfaces/single-filter-input.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/interfaces/sort-input.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/interfaces/time-components.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/interfaces/toast.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/lenne.tech-ng-base-shared.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/types/graphql-fields.type.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/types/storage.type.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/validators/email.validator.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/validators/match.validator.mjs +0 -0
- /package/{esm2020 → esm2022}/shared/validators/secure-password.validator.mjs +0 -0
- /package/{esm2020 → esm2022}/src/decorators/auto-unsubscribe.decorator.mjs +0 -0
- /package/{esm2020 → esm2022}/src/factories/apollo-options.factory.mjs +0 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
class ToastService {
|
|
5
|
+
toastsObservables = new BehaviorSubject([]);
|
|
6
|
+
get toastsAsObservable() {
|
|
7
|
+
return this.toastsObservables.asObservable();
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Show new toast
|
|
11
|
+
*
|
|
12
|
+
* @param toast
|
|
13
|
+
* @param duration
|
|
14
|
+
*/
|
|
15
|
+
show(toast, duration = 2300) {
|
|
16
|
+
const value = this.toastsObservables.value;
|
|
17
|
+
value.push(toast);
|
|
18
|
+
this.toastsObservables.next(value);
|
|
19
|
+
if (duration) {
|
|
20
|
+
setTimeout(() => {
|
|
21
|
+
const currentToasts = this.toastsObservables.value;
|
|
22
|
+
const foundIndex = currentToasts.findIndex((e) => e.id === toast.id);
|
|
23
|
+
if (foundIndex > -1) {
|
|
24
|
+
currentToasts.splice(foundIndex, 1);
|
|
25
|
+
this.toastsObservables.next(currentToasts);
|
|
26
|
+
}
|
|
27
|
+
}, duration);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
31
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ToastService, providedIn: 'root' });
|
|
32
|
+
}
|
|
33
|
+
export { ToastService };
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ToastService, decorators: [{
|
|
35
|
+
type: Injectable,
|
|
36
|
+
args: [{
|
|
37
|
+
providedIn: 'root',
|
|
38
|
+
}]
|
|
39
|
+
}] });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc2hhcmVkL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUd2QyxNQUdhLFlBQVk7SUFDZixpQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBVSxFQUFFLENBQUMsQ0FBQztJQUU3RCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUFJLENBQUMsS0FBWSxFQUFFLFFBQVEsR0FBRyxJQUFJO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7UUFDM0MsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRW5DLElBQUksUUFBUSxFQUFFO1lBQ1osVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDO2dCQUNuRCxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFFckUsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQ25CLGFBQWEsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUNwQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2lCQUM1QztZQUNILENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztTQUNkO0lBQ0gsQ0FBQzt1R0E3QlUsWUFBWTsyR0FBWixZQUFZLGNBRlgsTUFBTTs7U0FFUCxZQUFZOzJGQUFaLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUb2FzdCB9IGZyb20gJy4uL2ludGVyZmFjZXMvdG9hc3QuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFRvYXN0U2VydmljZSB7XG4gIHByaXZhdGUgdG9hc3RzT2JzZXJ2YWJsZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRvYXN0W10+KFtdKTtcblxuICBnZXQgdG9hc3RzQXNPYnNlcnZhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnRvYXN0c09ic2VydmFibGVzLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNob3cgbmV3IHRvYXN0XG4gICAqXG4gICAqIEBwYXJhbSB0b2FzdFxuICAgKiBAcGFyYW0gZHVyYXRpb25cbiAgICovXG4gIHNob3codG9hc3Q6IFRvYXN0LCBkdXJhdGlvbiA9IDIzMDApIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudG9hc3RzT2JzZXJ2YWJsZXMudmFsdWU7XG4gICAgdmFsdWUucHVzaCh0b2FzdCk7XG4gICAgdGhpcy50b2FzdHNPYnNlcnZhYmxlcy5uZXh0KHZhbHVlKTtcblxuICAgIGlmIChkdXJhdGlvbikge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRUb2FzdHMgPSB0aGlzLnRvYXN0c09ic2VydmFibGVzLnZhbHVlO1xuICAgICAgICBjb25zdCBmb3VuZEluZGV4ID0gY3VycmVudFRvYXN0cy5maW5kSW5kZXgoKGUpID0+IGUuaWQgPT09IHRvYXN0LmlkKTtcblxuICAgICAgICBpZiAoZm91bmRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgY3VycmVudFRvYXN0cy5zcGxpY2UoZm91bmRJbmRleCwgMSk7XG4gICAgICAgICAgdGhpcy50b2FzdHNPYnNlcnZhYmxlcy5uZXh0KGN1cnJlbnRUb2FzdHMpO1xuICAgICAgICB9XG4gICAgICB9LCBkdXJhdGlvbik7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { map } from 'rxjs';
|
|
3
|
+
import { Auth } from '../classes/auth.class';
|
|
4
|
+
import { BasicUser } from '../classes/basic-user.class';
|
|
5
|
+
import { GraphQLRequestType } from '../enums/graphql-request-type.enum';
|
|
6
|
+
import { GraphQLPlusService } from './graphql-plus.service';
|
|
7
|
+
import { BASE_MODULE_CONFIG } from '../interfaces/base-module-config.interface';
|
|
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
|
+
import * as i4 from "./auth.service";
|
|
13
|
+
class UserService extends GraphQLPlusService {
|
|
14
|
+
apollo;
|
|
15
|
+
graphqlMetaService;
|
|
16
|
+
loaderService;
|
|
17
|
+
authService;
|
|
18
|
+
moduleConfig;
|
|
19
|
+
constructor(apollo, graphqlMetaService, loaderService, authService, moduleConfig) {
|
|
20
|
+
super(apollo, graphqlMetaService, loaderService, moduleConfig);
|
|
21
|
+
this.apollo = apollo;
|
|
22
|
+
this.graphqlMetaService = graphqlMetaService;
|
|
23
|
+
this.loaderService = loaderService;
|
|
24
|
+
this.authService = authService;
|
|
25
|
+
this.moduleConfig = moduleConfig;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Login
|
|
29
|
+
*
|
|
30
|
+
* @param input
|
|
31
|
+
*/
|
|
32
|
+
login(input) {
|
|
33
|
+
return this.graphQl('signIn', {
|
|
34
|
+
arguments: { input: { ...input, deviceDescription: navigator?.userAgent } },
|
|
35
|
+
fields: ['refreshToken', 'token', { user: ['id', 'firstName', 'lastName', 'email', 'roles', 'avatar'] }],
|
|
36
|
+
loading: true,
|
|
37
|
+
}).pipe(map((response) => {
|
|
38
|
+
this.authService.token = response.token;
|
|
39
|
+
this.authService.refreshToken = response.refreshToken;
|
|
40
|
+
this.authService.currentUser = response.user;
|
|
41
|
+
return Auth.map({
|
|
42
|
+
token: response.token,
|
|
43
|
+
refreshToken: response.refreshToken,
|
|
44
|
+
user: BasicUser.map(response.user),
|
|
45
|
+
});
|
|
46
|
+
}));
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Register
|
|
50
|
+
*
|
|
51
|
+
* @param input
|
|
52
|
+
*/
|
|
53
|
+
register(input) {
|
|
54
|
+
return this.graphQl('signUp', {
|
|
55
|
+
arguments: { input: { ...input, deviceDescription: navigator?.userAgent } },
|
|
56
|
+
fields: ['refreshToken', 'token', { user: ['id', 'firstName', 'lastName', 'email', 'roles', 'avatar'] }],
|
|
57
|
+
loading: true,
|
|
58
|
+
}).pipe(map((response) => {
|
|
59
|
+
this.authService.token = response.token;
|
|
60
|
+
this.authService.refreshToken = response.refreshToken;
|
|
61
|
+
this.authService.currentUser = response.user;
|
|
62
|
+
return Auth.map({
|
|
63
|
+
token: response.token,
|
|
64
|
+
refreshToken: response.refreshToken,
|
|
65
|
+
user: BasicUser.map(response.user),
|
|
66
|
+
});
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* This function will make a GraphQL query to the server, and return the result
|
|
71
|
+
*
|
|
72
|
+
* @param id - The id of the user you want to get
|
|
73
|
+
* @returns A GraphQLRequest object.
|
|
74
|
+
*/
|
|
75
|
+
get(id) {
|
|
76
|
+
return this.graphQl('getUser', {
|
|
77
|
+
arguments: { id },
|
|
78
|
+
fields: ['id', 'firstName', 'lastName', 'email', 'roles', 'avatar'],
|
|
79
|
+
type: GraphQLRequestType.QUERY,
|
|
80
|
+
loading: true,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Request password reset mail
|
|
85
|
+
*
|
|
86
|
+
* @param email
|
|
87
|
+
*/
|
|
88
|
+
requestPasswordResetMail(email) {
|
|
89
|
+
return this.graphQl('requestPasswordResetMail', {
|
|
90
|
+
arguments: { email },
|
|
91
|
+
fields: [],
|
|
92
|
+
type: GraphQLRequestType.QUERY,
|
|
93
|
+
loading: true,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Change password of current user
|
|
98
|
+
*
|
|
99
|
+
* @param id
|
|
100
|
+
* @param password
|
|
101
|
+
*/
|
|
102
|
+
changePassword(id, password) {
|
|
103
|
+
return this.graphQl('updateUser', {
|
|
104
|
+
arguments: { id, input: { password } },
|
|
105
|
+
fields: ['id'],
|
|
106
|
+
type: GraphQLRequestType.MUTATION,
|
|
107
|
+
loading: true,
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Set new password by token
|
|
112
|
+
*
|
|
113
|
+
* @param token
|
|
114
|
+
* @param password
|
|
115
|
+
*/
|
|
116
|
+
resetPassword(token, password) {
|
|
117
|
+
return this.graphQl('resetPassword', {
|
|
118
|
+
arguments: { token, password },
|
|
119
|
+
type: GraphQLRequestType.MUTATION,
|
|
120
|
+
loading: true,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Delete user by id
|
|
125
|
+
*
|
|
126
|
+
* @param id
|
|
127
|
+
*/
|
|
128
|
+
delete(id) {
|
|
129
|
+
return this.graphQl('deleteUser', {
|
|
130
|
+
arguments: { id },
|
|
131
|
+
fields: ['id'],
|
|
132
|
+
type: GraphQLRequestType.MUTATION,
|
|
133
|
+
loading: true,
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Verify user by token
|
|
138
|
+
*
|
|
139
|
+
* @param token
|
|
140
|
+
*/
|
|
141
|
+
verifyUser(token) {
|
|
142
|
+
return this.graphQl('verifyUser', {
|
|
143
|
+
arguments: { token },
|
|
144
|
+
type: GraphQLRequestType.MUTATION,
|
|
145
|
+
loading: true,
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: UserService, deps: [{ token: i1.Apollo }, { token: i2.GraphQLMetaService }, { token: i3.LoaderService }, { token: i4.AuthService }, { token: BASE_MODULE_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
149
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: UserService, providedIn: 'root' });
|
|
150
|
+
}
|
|
151
|
+
export { UserService };
|
|
152
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: UserService, decorators: [{
|
|
153
|
+
type: Injectable,
|
|
154
|
+
args: [{
|
|
155
|
+
providedIn: 'root',
|
|
156
|
+
}]
|
|
157
|
+
}], ctorParameters: function () { return [{ type: i1.Apollo }, { type: i2.GraphQLMetaService }, { type: i3.LoaderService }, { type: i4.AuthService }, { type: undefined, decorators: [{
|
|
158
|
+
type: Inject,
|
|
159
|
+
args: [BASE_MODULE_CONFIG]
|
|
160
|
+
}] }]; } });
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvc2VydmljZXMvdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0IsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUd4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQW9CLE1BQU0sNENBQTRDLENBQUM7Ozs7OztBQUVsRyxNQUdhLFdBQVksU0FBUSxrQkFBa0I7SUFFckM7SUFDQTtJQUNBO0lBQ0E7SUFDNEI7SUFMeEMsWUFDWSxNQUFjLEVBQ2Qsa0JBQXNDLEVBQ3RDLGFBQTRCLEVBQzVCLFdBQXdCLEVBQ0ksWUFBOEI7UUFFcEUsS0FBSyxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFOckQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDSSxpQkFBWSxHQUFaLFlBQVksQ0FBa0I7SUFHdEUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsS0FBMEM7UUFDOUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUM1QixTQUFTLEVBQUUsRUFBRSxL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Q0FBQztJQUNMLENBQUM7dUdBaEpVLFdBQVcsa0lBTVosa0JBQWtCOzJHQU5qQixXQUFXLGNBRlYsTUFBTTs7U0FFUCxXQUFXOzJGQUFYLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFPSSxNQUFNOzJCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXBvbGxvIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoIH0gZnJvbSAnLi4vY2xhc3Nlcy9hdXRoLmNsYXNzJztcbmltcG9ydCB7IEJhc2ljVXNlciB9IGZyb20gJy4uL2NsYXNzZXMvYmFzaWMtdXNlci5jbGFzcyc7XG5pbXBvcnQgeyBHcmFwaFFMUmVxdWVzdFR5cGUgfSBmcm9tICcuLi9lbnVtcy9ncmFwaHFsLXJlcXVlc3QtdHlwZS5lbnVtJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgR3JhcGhRTE1ldGFTZXJ2aWNlIH0gZnJvbSAnLi9ncmFwaHFsLW1ldGEuc2VydmljZSc7XG5pbXBvcnQgeyBHcmFwaFFMUGx1c1NlcnZpY2UgfSBmcm9tICcuL2dyYXBocWwtcGx1cy5zZXJ2aWNlJztcbmltcG9ydCB7IExvYWRlclNlcnZpY2UgfSBmcm9tICcuL2xvYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IEJBU0VfTU9EVUxFX0NPTkZJRywgQmFzZU1vZHVsZUNvbmZpZyB9IGZyb20gJy4uL2ludGVyZmFjZXMvYmFzZS1tb2R1bGUtY29uZmlnLmludGVyZmFjZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBVc2VyU2VydmljZSBleHRlbmRzIEdyYXBoUUxQbHVzU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBhcG9sbG86IEFwb2xsbyxcbiAgICBwcm90ZWN0ZWQgZ3JhcGhxbE1ldGFTZXJ2aWNlOiBHcmFwaFFMTWV0YVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGxvYWRlclNlcnZpY2U6IExvYWRlclNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgICBASW5qZWN0KEJBU0VfTU9EVUxFX0NPTkZJRykgcHJvdGVjdGVkIG1vZHVsZUNvbmZpZzogQmFzZU1vZHVsZUNvbmZpZ1xuICApIHtcbiAgICBzdXBlcihhcG9sbG8sIGdyYXBocWxNZXRhU2VydmljZSwgbG9hZGVyU2VydmljZSwgbW9kdWxlQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2dpblxuICAgKlxuICAgKiBAcGFyYW0gaW5wdXRcbiAgICovXG4gIGxvZ2luKGlucHV0OiB7IGVtYWlsOiBzdHJpbmc7IHBhc3N3b3JkOiBzdHJpbmcgfSkge1xuICAgIHJldHVybiB0aGlzLmdyYXBoUWwoJ3NpZ25JbicsIHtcbiAgICAgIGFyZ3VtZW50czogeyBpbnB1dDogeyAuLi5pbnB1dCwgZGV2aWNlRGVzY3JpcHRpb246IG5hdmlnYXRvcj8udXNlckFnZW50IH0gfSxcbiAgICAgIGZpZWxkczogWydyZWZyZXNoVG9rZW4nLCAndG9rZW4nLCB7IHVzZXI6IFsnaWQnLCAnZmlyc3ROYW1lJywgJ2xhc3ROYW1lJywgJ2VtYWlsJywgJ3JvbGVzJywgJ2F2YXRhciddIH1dLFxuICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICB9KS5waXBlKFxuICAgICAgbWFwKChyZXNwb25zZTogQXV0aCkgPT4ge1xuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLnRva2VuID0gcmVzcG9uc2UudG9rZW47XG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UucmVmcmVzaFRva2VuID0gcmVzcG9uc2UucmVmcmVzaFRva2VuO1xuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmN1cnJlbnRVc2VyID0gcmVzcG9uc2UudXNlcjtcblxuICAgICAgICByZXR1cm4gQXV0aC5tYXAoe1xuICAgICAgICAgIHRva2VuOiByZXNwb25zZS50b2tlbixcbiAgICAgICAgICByZWZyZXNoVG9rZW46IHJlc3BvbnNlLnJlZnJlc2hUb2tlbixcbiAgICAgICAgICB1c2VyOiBCYXNpY1VzZXIubWFwKHJlc3BvbnNlLnVzZXIpLFxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlclxuICAgKlxuICAgKiBAcGFyYW0gaW5wdXRcbiAgICovXG4gIHJlZ2lzdGVyKGlucHV0OiB7IGZpcnN0TmFtZTogc3RyaW5nOyBsYXN0TmFtZTogc3RyaW5nOyBlbWFpbDogc3RyaW5nOyBwYXNzd29yZDogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4gdGhpcy5ncmFwaFFsKCdzaWduVXAnLCB7XG4gICAgICBhcmd1bWVudHM6IHsgaW5wdXQ6IHsgLi4uaW5wdXQsIGRldmljZURlc2NyaXB0aW9uOiBuYXZpZ2F0b3I/LnVzZXJBZ2VudCB9IH0sXG4gICAgICBmaWVsZHM6IFsncmVmcmVzaFRva2VuJywgJ3Rva2VuJywgeyB1c2VyOiBbJ2lkJywgJ2ZpcnN0TmFtZScsICdsYXN0TmFtZScsICdlbWFpbCcsICdyb2xlcycsICdhdmF0YXInXSB9XSxcbiAgICAgIGxvYWRpbmc6IHRydWUsXG4gICAgfSkucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2U6IEF1dGgpID0+IHtcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS50b2tlbiA9IHJlc3BvbnNlLnRva2VuO1xuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLnJlZnJlc2hUb2tlbiA9IHJlc3BvbnNlLnJlZnJlc2hUb2tlbjtcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5jdXJyZW50VXNlciA9IHJlc3BvbnNlLnVzZXI7XG5cbiAgICAgICAgcmV0dXJuIEF1dGgubWFwKHtcbiAgICAgICAgICB0b2tlbjogcmVzcG9uc2UudG9rZW4sXG4gICAgICAgICAgcmVmcmVzaFRva2VuOiByZXNwb25zZS5yZWZyZXNoVG9rZW4sXG4gICAgICAgICAgdXNlcjogQmFzaWNVc2VyLm1hcChyZXNwb25zZS51c2VyKSxcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiB3aWxsIG1ha2UgYSBHcmFwaFFMIHF1ZXJ5IHRvIHRoZSBzZXJ2ZXIsIGFuZCByZXR1cm4gdGhlIHJlc3VsdFxuICAgKlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgaWQgb2YgdGhlIHVzZXIgeW91IHdhbnQgdG8gZ2V0XG4gICAqIEByZXR1cm5zIEEgR3JhcGhRTFJlcXVlc3Qgb2JqZWN0LlxuICAgKi9cbiAgZ2V0KGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5ncmFwaFFsKCdnZXRVc2VyJywge1xuICAgICAgYXJndW1lbnRzOiB7IGlkIH0sXG4gICAgICBmaWVsZHM6IFsnaWQnLCAnZmlyc3ROYW1lJywgJ2xhc3ROYW1lJywgJ2VtYWlsJywgJ3JvbGVzJywgJ2F2YXRhciddLFxuICAgICAgdHlwZTogR3JhcGhRTFJlcXVlc3RUeXBlLlFVRVJZLFxuICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXF1ZXN0IHBhc3N3b3JkIHJlc2V0IG1haWxcbiAgICpcbiAgICogQHBhcmFtIGVtYWlsXG4gICAqL1xuICByZXF1ZXN0UGFzc3dvcmRSZXNldE1haWwoZW1haWw6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmdyYXBoUWwoJ3JlcXVlc3RQYXNzd29yZFJlc2V0TWFpbCcsIHtcbiAgICAgIGFyZ3VtZW50czogeyBlbWFpbCB9LFxuICAgICAgZmllbGRzOiBbXSxcbiAgICAgIHR5cGU6IEdyYXBoUUxSZXF1ZXN0VHlwZS5RVUVSWSxcbiAgICAgIGxvYWRpbmc6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlIHBhc3N3b3JkIG9mIGN1cnJlbnQgdXNlclxuICAgKlxuICAgKiBAcGFyYW0gaWRcbiAgICogQHBhcmFtIHBhc3N3b3JkXG4gICAqL1xuICBjaGFuZ2VQYXNzd29yZChpZDogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhcGhRbCgndXBkYXRlVXNlcicsIHtcbiAgICAgIGFyZ3VtZW50czogeyBpZCwgaW5wdXQ6IHsgcGFzc3dvcmQgfSB9LFxuICAgICAgZmllbGRzOiBbJ2lkJ10sXG4gICAgICB0eXBlOiBHcmFwaFFMUmVxdWVzdFR5cGUuTVVUQVRJT04sXG4gICAgICBsb2FkaW5nOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBuZXcgcGFzc3dvcmQgYnkgdG9rZW5cbiAgICpcbiAgICogQHBhcmFtIHRva2VuXG4gICAqIEBwYXJhbSBwYXNzd29yZFxuICAgKi9cbiAgcmVzZXRQYXNzd29yZCh0b2tlbjogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhcGhRbCgncmVzZXRQYXNzd29yZCcsIHtcbiAgICAgIGFyZ3VtZW50czogeyB0b2tlbiwgcGFzc3dvcmQgfSxcbiAgICAgIHR5cGU6IEdyYXBoUUxSZXF1ZXN0VHlwZS5NVVRBVElPTixcbiAgICAgIGxvYWRpbmc6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIHVzZXIgYnkgaWRcbiAgICpcbiAgICogQHBhcmFtIGlkXG4gICAqL1xuICBkZWxldGUoaWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmdyYXBoUWwoJ2RlbGV0ZVVzZXInLCB7XG4gICAgICBhcmd1bWVudHM6IHsgaWQgfSxcbiAgICAgIGZpZWxkczogWydpZCddLFxuICAgICAgdHlwZTogR3JhcGhRTFJlcXVlc3RUeXBlLk1VVEFUSU9OLFxuICAgICAgbG9hZGluZzogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZnkgdXNlciBieSB0b2tlblxuICAgKlxuICAgKiBAcGFyYW0gdG9rZW5cbiAgICovXG4gIHZlcmlmeVVzZXIodG9rZW46IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmdyYXBoUWwoJ3ZlcmlmeVVzZXInLCB7XG4gICAgICBhcmd1bWVudHM6IHsgdG9rZW4gfSxcbiAgICAgIHR5cGU6IEdyYXBoUUxSZXF1ZXN0VHlwZS5NVVRBVElPTixcbiAgICAgIGxvYWRpbmc6IHRydWUsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
class WsService {
|
|
4
|
+
client;
|
|
5
|
+
reconnect() {
|
|
6
|
+
this.client?.restart();
|
|
7
|
+
}
|
|
8
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: WsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
9
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: WsService, providedIn: 'root' });
|
|
10
|
+
}
|
|
11
|
+
export { WsService };
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: WsService, decorators: [{
|
|
13
|
+
type: Injectable,
|
|
14
|
+
args: [{
|
|
15
|
+
providedIn: 'root',
|
|
16
|
+
}]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc2hhcmVkL3NlcnZpY2VzL3dzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MsTUFHYSxTQUFTO0lBQ3BCLE1BQU0sQ0FBb0I7SUFFMUIsU0FBUztRQUNQLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDekIsQ0FBQzt1R0FMVSxTQUFTOzJHQUFULFNBQVMsY0FGUixNQUFNOztTQUVQLFNBQVM7MkZBQVQsU0FBUztrQkFIckIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXN0YXJ0YWJsZUNsaWVudCB9IGZyb20gJy4uL2Z1bmN0aW9ucy93cy1jbGllbnQuZnVuY3Rpb24nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgV3NTZXJ2aWNlIHtcbiAgY2xpZW50OiBSZXN0YXJ0YWJsZUNsaWVudDtcblxuICByZWNvbm5lY3QoKSB7XG4gICAgdGhpcy5jbGllbnQ/LnJlc3RhcnQoKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { APOLLO_OPTIONS, ApolloModule } from 'apollo-angular';
|
|
2
|
+
import { HttpLink } from 'apollo-angular/http';
|
|
3
|
+
import { NgModule } from '@angular/core';
|
|
4
|
+
import { apolloOptionsFactory } from './factories/apollo-options.factory';
|
|
5
|
+
import { LazyLoadDirective } from './directives/lazy-load.directive';
|
|
6
|
+
import { MatchHeightDirective } from './directives/match-height.directive';
|
|
7
|
+
import { ResizableDirective } from './directives/resizable.directive';
|
|
8
|
+
import { SafeHtmlPipe } from './pipes/safe-html.pipe';
|
|
9
|
+
import { DateAgoPipe } from './pipes/date-ago.pipe';
|
|
10
|
+
import { AuthService, BASE_MODULE_CONFIG, WsService } from '@lenne.tech/ng-base/shared';
|
|
11
|
+
import { HttpClientModule } from '@angular/common/http';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
// Imported and exported elements
|
|
14
|
+
const elements = [
|
|
15
|
+
// Directives
|
|
16
|
+
LazyLoadDirective,
|
|
17
|
+
MatchHeightDirective,
|
|
18
|
+
ResizableDirective,
|
|
19
|
+
// Pipes
|
|
20
|
+
SafeHtmlPipe,
|
|
21
|
+
DateAgoPipe,
|
|
22
|
+
];
|
|
23
|
+
/**
|
|
24
|
+
* Base module
|
|
25
|
+
*/
|
|
26
|
+
class BaseModule {
|
|
27
|
+
/**
|
|
28
|
+
* Set configuration of base module in root module of the app
|
|
29
|
+
*/
|
|
30
|
+
static forRoot(baseModuleConfig = {}, AppAuthService) {
|
|
31
|
+
// Default config
|
|
32
|
+
const config = {
|
|
33
|
+
apiUrl: '',
|
|
34
|
+
authGuardRedirectUrl: '/auth',
|
|
35
|
+
logging: false,
|
|
36
|
+
version: null,
|
|
37
|
+
prefix: null,
|
|
38
|
+
scrollDetectionOffset: 200,
|
|
39
|
+
scrollOffset: 100,
|
|
40
|
+
storageType: 'local',
|
|
41
|
+
securePasswordTransfer: true,
|
|
42
|
+
...baseModuleConfig,
|
|
43
|
+
};
|
|
44
|
+
if (config.logging) {
|
|
45
|
+
console.log('Config:', config);
|
|
46
|
+
}
|
|
47
|
+
// Prepare providers
|
|
48
|
+
const providers = [
|
|
49
|
+
{
|
|
50
|
+
provide: BASE_MODULE_CONFIG,
|
|
51
|
+
useValue: config,
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
// Add apollo features if API URL is set
|
|
55
|
+
if (baseModuleConfig.apiUrl) {
|
|
56
|
+
providers.push({
|
|
57
|
+
provide: APOLLO_OPTIONS,
|
|
58
|
+
useFactory: apolloOptionsFactory,
|
|
59
|
+
deps: [BASE_MODULE_CONFIG, HttpLink, AppAuthService ? AppAuthService : AuthService, WsService],
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
else if (config.logging) {
|
|
63
|
+
console.log('apiUrl is missing, ApolloLink is not initialized');
|
|
64
|
+
}
|
|
65
|
+
// Return root module
|
|
66
|
+
return {
|
|
67
|
+
ngModule: BaseModule,
|
|
68
|
+
providers,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: BaseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
72
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: BaseModule, declarations: [
|
|
73
|
+
// Directives
|
|
74
|
+
LazyLoadDirective,
|
|
75
|
+
MatchHeightDirective,
|
|
76
|
+
ResizableDirective,
|
|
77
|
+
// Pipes
|
|
78
|
+
SafeHtmlPipe,
|
|
79
|
+
DateAgoPipe], imports: [ApolloModule, HttpClientModule], exports: [
|
|
80
|
+
// Directives
|
|
81
|
+
LazyLoadDirective,
|
|
82
|
+
MatchHeightDirective,
|
|
83
|
+
ResizableDirective,
|
|
84
|
+
// Pipes
|
|
85
|
+
SafeHtmlPipe,
|
|
86
|
+
DateAgoPipe, ApolloModule, HttpClientModule] });
|
|
87
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: BaseModule, imports: [ApolloModule, HttpClientModule, ApolloModule, HttpClientModule] });
|
|
88
|
+
}
|
|
89
|
+
export { BaseModule };
|
|
90
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: BaseModule, decorators: [{
|
|
91
|
+
type: NgModule,
|
|
92
|
+
args: [{
|
|
93
|
+
imports: [ApolloModule, HttpClientModule],
|
|
94
|
+
declarations: elements,
|
|
95
|
+
exports: [...elements, ApolloModule, HttpClientModule],
|
|
96
|
+
}]
|
|
97
|
+
}] });
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL3NyYy9iYXNlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQXVCLFFBQVEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUV4RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQW9CLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUV4RCxpQ0FBaUM7QUFDakMsTUFBTSxRQUFRLEdBQUc7SUFDZixhQUFhO0lBQ2IsaUJBQWlCO0lBQ2pCLG9CQUFvQjtJQUNwQixrQkFBa0I7SUFFbEIsUUFBUTtJQUNSLFlBQVk7SUFDWixXQUFXO0NBQ1osQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFLYSxVQUFVO0lBQ3JCOztPQUVHO0lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxtQkFBcUMsRUFBRSxFQUFFLGNBQWU7UUFDckUsaUJBQWlCO1FBQ2pCLE1BQU0sTUFBTSxHQUFHO1lBQ2IsTUFBTSxFQUFFLEVBQUU7WUFDVixvQkFBb0IsRUFBRSxPQUFPO1lBQzdCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsT0FBTyxFQUFFLElBQUk7WUFDYixNQUFNLEVBQUUsSUFBSTtZQUNaLHFCQUFxQixFQUFFLEdBQUc7WUFDMUIsWUFBWSxFQUFFLEdBQUc7WUFDakIsV0FBVyxFQUFFLE9BQU87WUFDcEIsc0JBQXNCLEVBQUUsSUFBSTtZQUM1QixHQUFHLGdCQUFnQjtTQUNwQixDQUFDO1FBRUYsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQ2xCLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQ2hDO1FBRUQsb0JBQW9CO1FBQ3BCLE1BQU0sU0FBUyxHQUFlO1lBQzVCO2dCQUNFLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFFBQVEsRUFBRSxNQUFNO2FBQ2pCO1NBQ0YsQ0FBQztRQUVGLHdDQUF3QztRQUN4QyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sRUFBRTtZQUMzQixTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUNiLE9BQU8sRUFBRSxjQUFjO2dCQUN2QixVQUFVLEVBQUUsb0JBQW9CO2dCQUNoQyxJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUM7YUFDL0YsQ0FBQyxDQUFDO1NBQ0o7YUFBTSxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUU7WUFDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO1NBQ2pFO1FBRUQscUJBQXFCO1FBQ3JCLE9BQU87WUFDTCxRQUFRLEVBQUUsVUFBVTtZQUNwQixTQUFTO1NBQ1YsQ0FBQztJQUNKLENBQUM7dUdBL0NVLFVBQVU7d0dBQVYsVUFBVTtZQWxCckIsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQixvQkFBb0I7WUFDcEIsa0JBQWtCO1lBRWxCLFFBQVE7WUFDUixZQUFZO1lBQ1osV0FBVyxhQU9ELFlBQVksRUFBRSxnQkFBZ0I7WUFkeEMsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQixvQkFBb0I7WUFDcEIsa0JBQWtCO1lBRWxCLFFBQVE7WUFDUixZQUFZO1lBQ1osV0FBVyxFQVNZLFlBQVksRUFBRSxnQkFBZ0I7d0dBRTFDLFVBQVUsWUFKWCxZQUFZLEVBQUUsZ0JBQWdCLEVBRWpCLFlBQVksRUFBRSxnQkFBZ0I7O1NBRTFDLFVBQVU7MkZBQVYsVUFBVTtrQkFMdEIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUM7b0JBQ3pDLFlBQVksRUFBRSxRQUFRO29CQUN0QixPQUFPLEVBQUUsQ0FBQyxHQUFHLFFBQVEsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLENBQUM7aUJBQ3ZEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBPTExPX09QVElPTlMsIEFwb2xsb01vZHVsZSB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcbmltcG9ydCB7IEh0dHBMaW5rIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXIvaHR0cCc7XG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgYXBvbGxvT3B0aW9uc0ZhY3RvcnkgfSBmcm9tICcuL2ZhY3Rvcmllcy9hcG9sbG8tb3B0aW9ucy5mYWN0b3J5JztcbmltcG9ydCB7IExhenlMb2FkRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2xhenktbG9hZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTWF0Y2hIZWlnaHREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvbWF0Y2gtaGVpZ2h0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSZXNpemFibGVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvcmVzaXphYmxlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTYWZlSHRtbFBpcGUgfSBmcm9tICcuL3BpcGVzL3NhZmUtaHRtbC5waXBlJztcbmltcG9ydCB7IERhdGVBZ29QaXBlIH0gZnJvbSAnLi9waXBlcy9kYXRlLWFnby5waXBlJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBCQVNFX01PRFVMRV9DT05GSUcsIEJhc2VNb2R1bGVDb25maWcsIFdzU2VydmljZSB9IGZyb20gJ0BsZW5uZS50ZWNoL25nLWJhc2Uvc2hhcmVkJztcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbi8vIEltcG9ydGVkIGFuZCBleHBvcnRlZCBlbGVtZW50c1xuY29uc3QgZWxlbWVudHMgPSBbXG4gIC8vIERpcmVjdGl2ZXNcbiAgTGF6eUxvYWREaXJlY3RpdmUsXG4gIE1hdGNoSGVpZ2h0RGlyZWN0aXZlLFxuICBSZXNpemFibGVEaXJlY3RpdmUsXG5cbiAgLy8gUGlwZXNcbiAgU2FmZUh0bWxQaXBlLFxuICBEYXRlQWdvUGlwZSxcbl07XG5cbi8qKlxuICogQmFzZSBtb2R1bGVcbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0Fwb2xsb01vZHVsZSwgSHR0cENsaWVudE1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogZWxlbWVudHMsXG4gIGV4cG9ydHM6IFsuLi5lbGVtZW50cywgQXBvbGxvTW9kdWxlLCBIdHRwQ2xpZW50TW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgQmFzZU1vZHVsZSB7XG4gIC8qKlxuICAgKiBTZXQgY29uZmlndXJhdGlvbiBvZiBiYXNlIG1vZHVsZSBpbiByb290IG1vZHVsZSBvZiB0aGUgYXBwXG4gICAqL1xuICBzdGF0aWMgZm9yUm9vdChiYXNlTW9kdWxlQ29uZmlnOiBCYXNlTW9kdWxlQ29uZmlnID0ge30sIEFwcEF1dGhTZXJ2aWNlPyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QmFzZU1vZHVsZT4ge1xuICAgIC8vIERlZmF1bHQgY29uZmlnXG4gICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgYXBpVXJsOiAnJyxcbiAgICAgIGF1dGhHdWFyZFJlZGlyZWN0VXJsOiAnL2F1dGgnLFxuICAgICAgbG9nZ2luZzogZmFsc2UsXG4gICAgICB2ZXJzaW9uOiBudWxsLFxuICAgICAgcHJlZml4OiBudWxsLFxuICAgICAgc2Nyb2xsRGV0ZWN0aW9uT2Zmc2V0OiAyMDAsXG4gICAgICBzY3JvbGxPZmZzZXQ6IDEwMCxcbiAgICAgIHN0b3JhZ2VUeXBlOiAnbG9jYWwnLFxuICAgICAgc2VjdXJlUGFzc3dvcmRUcmFuc2ZlcjogdHJ1ZSxcbiAgICAgIC4uLmJhc2VNb2R1bGVDb25maWcsXG4gICAgfTtcblxuICAgIGlmIChjb25maWcubG9nZ2luZykge1xuICAgICAgY29uc29sZS5sb2coJ0NvbmZpZzonLCBjb25maWcpO1xuICAgIH1cblxuICAgIC8vIFByZXBhcmUgcHJvdmlkZXJzXG4gICAgY29uc3QgcHJvdmlkZXJzOiBQcm92aWRlcltdID0gW1xuICAgICAge1xuICAgICAgICBwcm92aWRlOiBCQVNFX01PRFVMRV9DT05GSUcsXG4gICAgICAgIHVzZVZhbHVlOiBjb25maWcsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICAvLyBBZGQgYXBvbGxvIGZlYXR1cmVzIGlmIEFQSSBVUkwgaXMgc2V0XG4gICAgaWYgKGJhc2VNb2R1bGVDb25maWcuYXBpVXJsKSB7XG4gICAgICBwcm92aWRlcnMucHVzaCh7XG4gICAgICAgIHByb3ZpZGU6IEFQT0xMT19PUFRJT05TLFxuICAgICAgICB1c2VGYWN0b3J5OiBhcG9sbG9PcHRpb25zRmFjdG9yeSxcbiAgICAgICAgZGVwczogW0JBU0VfTU9EVUxFX0NPTkZJRywgSHR0cExpbmssIEFwcEF1dGhTZXJ2aWNlID8gQXBwQXV0aFNlcnZpY2UgOiBBdXRoU2VydmljZSwgV3NTZXJ2aWNlXSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoY29uZmlnLmxvZ2dpbmcpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdhcGlVcmwgaXMgbWlzc2luZywgQXBvbGxvTGluayBpcyBub3QgaW5pdGlhbGl6ZWQnKTtcbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gcm9vdCBtb2R1bGVcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEJhc2VNb2R1bGUsXG4gICAgICBwcm92aWRlcnMsXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Directive, HostBinding, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Directive for lazy loading images
|
|
5
|
+
*/
|
|
6
|
+
class LazyLoadDirective {
|
|
7
|
+
el;
|
|
8
|
+
srcAttr = null;
|
|
9
|
+
src;
|
|
10
|
+
constructor(el) {
|
|
11
|
+
this.el = el;
|
|
12
|
+
}
|
|
13
|
+
ngAfterViewInit() {
|
|
14
|
+
this.canLazyLoad() ? this.lazyLoadImage() : this.loadImage();
|
|
15
|
+
}
|
|
16
|
+
canLazyLoad() {
|
|
17
|
+
return window && 'IntersectionObserver' in window;
|
|
18
|
+
}
|
|
19
|
+
lazyLoadImage() {
|
|
20
|
+
const obs = new IntersectionObserver((entries) => {
|
|
21
|
+
entries.forEach(({ isIntersecting }) => {
|
|
22
|
+
if (isIntersecting) {
|
|
23
|
+
this.loadImage();
|
|
24
|
+
obs.unobserve(this.el.nativeElement);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
obs.observe(this.el.nativeElement);
|
|
29
|
+
}
|
|
30
|
+
loadImage() {
|
|
31
|
+
this.srcAttr = this.src;
|
|
32
|
+
}
|
|
33
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: LazyLoadDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
34
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: LazyLoadDirective, selector: "img[ltLazyLoad]", inputs: { src: "src" }, host: { properties: { "attr.src": "this.srcAttr" } }, ngImport: i0 });
|
|
35
|
+
}
|
|
36
|
+
export { LazyLoadDirective };
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: LazyLoadDirective, decorators: [{
|
|
38
|
+
type: Directive,
|
|
39
|
+
args: [{
|
|
40
|
+
selector: 'img[ltLazyLoad]',
|
|
41
|
+
}]
|
|
42
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { srcAttr: [{
|
|
43
|
+
type: HostBinding,
|
|
44
|
+
args: ['attr.src']
|
|
45
|
+
}], src: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}] } });
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1sb2FkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc3JjL2RpcmVjdGl2ZXMvbGF6eS1sb2FkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUV6Rjs7R0FFRztBQUNILE1BR2EsaUJBQWlCO0lBSVI7SUFISyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQy9CLEdBQUcsQ0FBUztJQUVyQixZQUFvQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtJQUFHLENBQUM7SUFFdEMsZUFBZTtRQUNiLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDL0QsQ0FBQztJQUVPLFdBQVc7UUFDakIsT0FBTyxNQUFNLElBQUksc0JBQXNCLElBQUksTUFBTSxDQUFDO0lBQ3BELENBQUM7SUFFTyxhQUFhO1FBQ25CLE1BQU0sR0FBRyxHQUFHLElBQUksb0JBQW9CLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUMvQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFO2dCQUNyQyxJQUFJLGNBQWMsRUFBRTtvQkFDbEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUNqQixHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7aUJBQ3RDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRU8sU0FBUztRQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUMxQixDQUFDO3VHQTVCVSxpQkFBaUI7MkZBQWpCLGlCQUFpQjs7U0FBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBSDdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7aUdBRTBCLE9BQU87c0JBQS9CLFdBQVc7dUJBQUMsVUFBVTtnQkFDZCxHQUFHO3NCQUFYLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIERpcmVjdGl2ZSBmb3IgbGF6eSBsb2FkaW5nIGltYWdlc1xuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdpbWdbbHRMYXp5TG9hZF0nLFxufSlcbmV4cG9ydCBjbGFzcyBMYXp5TG9hZERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuc3JjJykgc3JjQXR0ciA9IG51bGw7XG4gIEBJbnB1dCgpIHNyYzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuY2FuTGF6eUxvYWQoKSA/IHRoaXMubGF6eUxvYWRJbWFnZSgpIDogdGhpcy5sb2FkSW1hZ2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2FuTGF6eUxvYWQoKSB7XG4gICAgcmV0dXJuIHdpbmRvdyAmJiAnSW50ZXJzZWN0aW9uT2JzZXJ2ZXInIGluIHdpbmRvdztcbiAgfVxuXG4gIHByaXZhdGUgbGF6eUxvYWRJbWFnZSgpIHtcbiAgICBjb25zdCBvYnMgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKGVudHJpZXMpID0+IHtcbiAgICAgIGVudHJpZXMuZm9yRWFjaCgoeyBpc0ludGVyc2VjdGluZyB9KSA9PiB7XG4gICAgICAgIGlmIChpc0ludGVyc2VjdGluZykge1xuICAgICAgICAgIHRoaXMubG9hZEltYWdlKCk7XG4gICAgICAgICAgb2JzLnVub2JzZXJ2ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBvYnMub2JzZXJ2ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkSW1hZ2UoKSB7XG4gICAgdGhpcy5zcmNBdHRyID0gdGhpcy5zcmM7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { Directive, HostListener, Inject, Input, PLATFORM_ID } from '@angular/core';
|
|
2
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@lenne.tech/ng-base/shared";
|
|
5
|
+
/**
|
|
6
|
+
* Set same height (maximum) to different elements
|
|
7
|
+
*/
|
|
8
|
+
class MatchHeightDirective {
|
|
9
|
+
el;
|
|
10
|
+
imageService;
|
|
11
|
+
// class name to match height
|
|
12
|
+
ltMatchHeight;
|
|
13
|
+
// Replace lazy loading images with immediate loading images
|
|
14
|
+
loadImages = true;
|
|
15
|
+
// Wether current platform is a browser
|
|
16
|
+
isBrowser;
|
|
17
|
+
observer;
|
|
18
|
+
constructor(el, imageService, platformId) {
|
|
19
|
+
this.el = el;
|
|
20
|
+
this.imageService = imageService;
|
|
21
|
+
this.isBrowser = isPlatformBrowser(platformId);
|
|
22
|
+
}
|
|
23
|
+
onResize() {
|
|
24
|
+
this.matchHeight(this.el.nativeElement, this.ltMatchHeight);
|
|
25
|
+
}
|
|
26
|
+
ngAfterViewInit() {
|
|
27
|
+
this.matchHeight(this.el.nativeElement, this.ltMatchHeight);
|
|
28
|
+
this.observer = new MutationObserver(() => {
|
|
29
|
+
this.matchHeight(this.el.nativeElement, this.ltMatchHeight);
|
|
30
|
+
});
|
|
31
|
+
//Observes if one or more elements get added to or removed from the childlist and applies matching heights
|
|
32
|
+
this.observer.observe(this.el.nativeElement, { childList: true });
|
|
33
|
+
}
|
|
34
|
+
async matchHeight(parent, target) {
|
|
35
|
+
if (!parent) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
let classNames;
|
|
39
|
+
if (!Array.isArray(target)) {
|
|
40
|
+
classNames = [target];
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
classNames = target;
|
|
44
|
+
}
|
|
45
|
+
for (const className of classNames) {
|
|
46
|
+
// find all child structureElements with the selected class name
|
|
47
|
+
const children = parent.getElementsByClassName(className);
|
|
48
|
+
if (!children || children.length < 2) {
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
// Load images of children
|
|
52
|
+
if (this.loadImages) {
|
|
53
|
+
await this.imageService.preLoadImages({ elements: children });
|
|
54
|
+
}
|
|
55
|
+
// reset all children height
|
|
56
|
+
Array.from(children).forEach((element) => {
|
|
57
|
+
element.style.height = 'initial';
|
|
58
|
+
});
|
|
59
|
+
// get all the child structureElements heights
|
|
60
|
+
const itemHeights = Array.from(children).map((element) => {
|
|
61
|
+
if (element.getBoundingClientRect) {
|
|
62
|
+
return element.getBoundingClientRect().height;
|
|
63
|
+
}
|
|
64
|
+
return 0;
|
|
65
|
+
});
|
|
66
|
+
// find out the tallest one
|
|
67
|
+
const maxHeight = itemHeights.reduce((prev, curr) => (curr > prev ? curr : prev), 0);
|
|
68
|
+
// update the child structureElements height to the tallest one
|
|
69
|
+
Array.from(children).forEach((element) => (element.style.height = `${maxHeight}px`));
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: MatchHeightDirective, deps: [{ token: i0.ElementRef }, { token: i1.ImageService }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive });
|
|
73
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: MatchHeightDirective, selector: "[ltMatchHeight]", inputs: { ltMatchHeight: "ltMatchHeight", loadImages: "loadImages" }, host: { listeners: { "window:resize": "onResize()" } }, ngImport: i0 });
|
|
74
|
+
}
|
|
75
|
+
export { MatchHeightDirective };
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: MatchHeightDirective, decorators: [{
|
|
77
|
+
type: Directive,
|
|
78
|
+
args: [{
|
|
79
|
+
selector: '[ltMatchHeight]',
|
|
80
|
+
}]
|
|
81
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ImageService }, { type: undefined, decorators: [{
|
|
82
|
+
type: Inject,
|
|
83
|
+
args: [PLATFORM_ID]
|
|
84
|
+
}] }]; }, propDecorators: { ltMatchHeight: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}], loadImages: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], onResize: [{
|
|
89
|
+
type: HostListener,
|
|
90
|
+
args: ['window:resize']
|
|
91
|
+
}] } });
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtaGVpZ2h0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc3JjL2RpcmVjdGl2ZXMvbWF0Y2gtaGVpZ2h0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0csT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUVwRDs7R0FFRztBQUNILE1BR2Esb0JBQW9CO0lBY1Q7SUFBMEI7SUFiaEQsNkJBQTZCO0lBRTdCLGFBQWEsQ0FBb0I7SUFFakMsNERBQTREO0lBRTVELFVBQVUsR0FBRyxJQUFJLENBQUM7SUFFbEIsdUNBQXVDO0lBQzlCLFNBQVMsQ0FBVTtJQUU1QixRQUFRLENBQW1CO0lBRTNCLFlBQXNCLEVBQWMsRUFBWSxZQUEwQixFQUF1QixVQUFrQjtRQUE3RixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVksaUJBQVksR0FBWixZQUFZLENBQWM7UUFDeEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBR0QsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGdCQUFnQixDQUFDLEdBQUcsRUFBRTtZQUN4QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5RCxDQUFDLENBQUMsQ0FBQztRQUVILDBHQUEwRztRQUMxRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQW1CLEVBQUUsTUFBeUI7UUFDOUQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLE9BQU87U0FDUjtRQUVELElBQUksVUFBVSxDQUFDO1FBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDMUIsVUFBVSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDdkI7YUFBTTtZQUNMLFVBQVUsR0FBRyxNQUFNLENBQUM7U0FDckI7UUFFRCxLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsRUFBRTtZQUNsQyxnRUFBZ0U7WUFDaEUsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRTFELElBQUksQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3BDLFNBQVM7YUFDVjtZQUVELDBCQUEwQjtZQUMxQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ25CLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQzthQUMvRDtZQUVELDRCQUE0QjtZQUM1QixLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQW9CLEVBQUUsRUFBRTtnQkFDcEQsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1lBQ25DLENBQUMsQ0FBQyxDQUFDO1lBRUgsOENBQThDO1lBQzlDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ3ZELElBQUksT0FBTyxDQUFDLHFCQUFxQixFQUFFO29CQUNqQyxPQUFPLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLE1BQU0sQ0FBQztpQkFDL0M7Z0JBQ0QsT0FBTyxDQUFDLENBQUM7WUFDWCxDQUFDLENBQUMsQ0FBQztZQUVILDJCQUEyQjtZQUMzQixNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRXJGLCtEQUErRDtZQUMvRCxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQW9CLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDbkc7SUFDSCxDQUFDO3VHQTdFVSxvQkFBb0Isd0VBY3FELFdBQVc7MkZBZHBGLG9CQUFvQjs7U0FBcEIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBSGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7OzBCQWU4RSxNQUFNOzJCQUFDLFdBQVc7NENBWC9GLGFBQWE7c0JBRFosS0FBSztnQkFLTixVQUFVO3NCQURULEtBQUs7Z0JBYU4sUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbnB1dCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEltYWdlU2VydmljZSB9IGZyb20gJ0BsZW5uZS50ZWNoL25nLWJhc2Uvc2hhcmVkJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqXG4gKiBTZXQgc2FtZSBoZWlnaHQgKG1heGltdW0pIHRvIGRpZmZlcmVudCBlbGVtZW50c1xuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbHRNYXRjaEhlaWdodF0nLFxufSlcbmV4cG9ydCBjbGFzcyBNYXRjaEhlaWdodERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAvLyBjbGFzcyBuYW1lIHRvIG1hdGNoIGhlaWdodFxuICBASW5wdXQoKVxuICBsdE1hdGNoSGVpZ2h0OiBzdHJpbmcgfCBzdHJpbmdbXTtcblxuICAvLyBSZXBsYWNlIGxhenkgbG9hZGluZyBpbWFnZXMgd2l0aCBpbW1lZGlhdGUgbG9hZGluZyBpbWFnZXNcbiAgQElucHV0KClcbiAgbG9hZEltYWdlcyA9IHRydWU7XG5cbiAgLy8gV2V0aGVyIGN1cnJlbnQgcGxhdGZvcm0gaXMgYSBicm93c2VyXG4gIHJlYWRvbmx5IGlzQnJvd3NlcjogYm9vbGVhbjtcblxuICBvYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlcjtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZWw6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCBpbWFnZVNlcnZpY2U6IEltYWdlU2VydmljZSwgQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogc3RyaW5nKSB7XG4gICAgdGhpcy5pc0Jyb3dzZXIgPSBpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICBvblJlc2l6ZSgpIHtcbiAgICB0aGlzLm1hdGNoSGVpZ2h0KHRoaXMuZWwubmF0aXZlRWxlbWVudCwgdGhpcy5sdE1hdGNoSGVpZ2h0KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLm1hdGNoSGVpZ2h0KHRoaXMuZWwubmF0aXZlRWxlbWVudCwgdGhpcy5sdE1hdGNoSGVpZ2h0KTtcbiAgICB0aGlzLm9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgdGhpcy5tYXRjaEhlaWdodCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIHRoaXMubHRNYXRjaEhlaWdodCk7XG4gICAgfSk7XG5cbiAgICAvL09ic2VydmVzIGlmIG9uZSBvciBtb3JlIGVsZW1lbnRzIGdldCBhZGRlZCB0byBvciByZW1vdmVkIGZyb20gdGhlIGNoaWxkbGlzdCBhbmQgYXBwbGllcyBtYXRjaGluZyBoZWlnaHRzXG4gICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgeyBjaGlsZExpc3Q6IHRydWUgfSk7XG4gIH1cblxuICBhc3luYyBtYXRjaEhlaWdodChwYXJlbnQ6IEhUTUxFbGVtZW50LCB0YXJnZXQ6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gICAgaWYgKCFwYXJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY2xhc3NOYW1lcztcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGFyZ2V0KSkge1xuICAgICAgY2xhc3NOYW1lcyA9IFt0YXJnZXRdO1xuICAgIH0gZWxzZSB7XG4gICAgICBjbGFzc05hbWVzID0gdGFyZ2V0O1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgY2xhc3NOYW1lIG9mIGNsYXNzTmFtZXMpIHtcbiAgICAgIC8vIGZpbmQgYWxsIGNoaWxkIHN0cnVjdHVyZUVsZW1lbnRzIHdpdGggdGhlIHNlbGVjdGVkIGNsYXNzIG5hbWVcbiAgICAgIGNvbnN0IGNoaWxkcmVuID0gcGFyZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoY2xhc3NOYW1lKTtcblxuICAgICAgaWYgKCFjaGlsZHJlbiB8fCBjaGlsZHJlbi5sZW5ndGggPCAyKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICAvLyBMb2FkIGltYWdlcyBvZiBjaGlsZHJlblxuICAgICAgaWYgKHRoaXMubG9hZEltYWdlcykge1xuICAgICAgICBhd2FpdCB0aGlzLmltYWdlU2VydmljZS5wcmVMb2FkSW1hZ2VzKHsgZWxlbWVudHM6IGNoaWxkcmVuIH0pO1xuICAgICAgfVxuXG4gICAgICAvLyByZXNldCBhbGwgY2hpbGRyZW4gaGVpZ2h0XG4gICAgICBBcnJheS5mcm9tKGNoaWxkcmVuKS5mb3JFYWNoKChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgICBlbGVtZW50LnN0eWxlLmhlaWdodCA9ICdpbml0aWFsJztcbiAgICAgIH0pO1xuXG4gICAgICAvLyBnZXQgYWxsIHRoZSBjaGlsZCBzdHJ1Y3R1cmVFbGVtZW50cyBoZWlnaHRzXG4gICAgICBjb25zdCBpdGVtSGVpZ2h0cyA9IEFycmF5LmZyb20oY2hpbGRyZW4pLm1hcCgoZWxlbWVudCkgPT4ge1xuICAgICAgICBpZiAoZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QpIHtcbiAgICAgICAgICByZXR1cm4gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9KTtcblxuICAgICAgLy8gZmluZCBvdXQgdGhlIHRhbGxlc3Qgb25lXG4gICAgICBjb25zdCBtYXhIZWlnaHQgPSBpdGVtSGVpZ2h0cy5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IChjdXJyID4gcHJldiA/IGN1cnIgOiBwcmV2KSwgMCk7XG5cbiAgICAgIC8vIHVwZGF0ZSB0aGUgY2hpbGQgc3RydWN0dXJlRWxlbWVudHMgaGVpZ2h0IHRvIHRoZSB0YWxsZXN0IG9uZVxuICAgICAgQXJyYXkuZnJvbShjaGlsZHJlbikuZm9yRWFjaCgoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IChlbGVtZW50LnN0eWxlLmhlaWdodCA9IGAke21heEhlaWdodH1weGApKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Reszise detection
|
|
5
|
+
* (inpsired by: https://stackblitz.com/edit/angular-resizable)
|
|
6
|
+
*/
|
|
7
|
+
class ResizableDirective {
|
|
8
|
+
el;
|
|
9
|
+
resizableGrabWidth = 8;
|
|
10
|
+
resizableMinWidth = 10;
|
|
11
|
+
dragging = false;
|
|
12
|
+
constructor(el) {
|
|
13
|
+
this.el = el;
|
|
14
|
+
}
|
|
15
|
+
ngOnInit() {
|
|
16
|
+
this.addListenerToDocument();
|
|
17
|
+
this.addListenerToElement();
|
|
18
|
+
}
|
|
19
|
+
mouseMoveG(evt) {
|
|
20
|
+
if (!this.dragging) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
this.newWidth(evt.clientX - this.el.nativeElement.offsetLeft);
|
|
24
|
+
evt.stopPropagation();
|
|
25
|
+
}
|
|
26
|
+
newWidth(wid) {
|
|
27
|
+
const result = Math.max(this.resizableMinWidth, wid);
|
|
28
|
+
this.el.nativeElement.style.width = result + 'px';
|
|
29
|
+
}
|
|
30
|
+
mouseDown(evt) {
|
|
31
|
+
if (this.inDragRegion(evt)) {
|
|
32
|
+
this.dragging = true;
|
|
33
|
+
this.preventGlobalMouseEvents();
|
|
34
|
+
evt.stopPropagation();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
restoreGlobalMouseEvents() {
|
|
38
|
+
document.body.style['pointer-events'] = 'auto';
|
|
39
|
+
}
|
|
40
|
+
mouseUpG(evt) {
|
|
41
|
+
if (!this.dragging) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
this.restoreGlobalMouseEvents();
|
|
45
|
+
this.dragging = false;
|
|
46
|
+
evt.stopPropagation();
|
|
47
|
+
}
|
|
48
|
+
mouseMove(evt) {
|
|
49
|
+
if (this.inDragRegion(evt) || this.dragging) {
|
|
50
|
+
this.el.nativeElement.style.cursor = 'col-resize';
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
this.el.nativeElement.style.cursor = 'default';
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
preventGlobalMouseEvents() {
|
|
57
|
+
document.body.style['pointer-events'] = 'none';
|
|
58
|
+
}
|
|
59
|
+
inDragRegion(evt) {
|
|
60
|
+
return this.el.nativeElement.clientWidth - evt.clientX + this.el.nativeElement.offsetLeft < this.resizableGrabWidth;
|
|
61
|
+
}
|
|
62
|
+
addListenerToDocument() {
|
|
63
|
+
document.addEventListener('mousemove', (e) => {
|
|
64
|
+
this.mouseMoveG(e);
|
|
65
|
+
}, true);
|
|
66
|
+
document.addEventListener('mouseup', (e) => {
|
|
67
|
+
this.mouseUpG(e);
|
|
68
|
+
}, true);
|
|
69
|
+
}
|
|
70
|
+
addListenerToElement() {
|
|
71
|
+
this.el.nativeElement.addEventListener('mousedown', (e) => {
|
|
72
|
+
this.mouseDown(e);
|
|
73
|
+
}, true);
|
|
74
|
+
this.el.nativeElement.addEventListener('mousemove', (e) => {
|
|
75
|
+
this.mouseMove(e);
|
|
76
|
+
}, true);
|
|
77
|
+
}
|
|
78
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ResizableDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
79
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: ResizableDirective, selector: "[ltResizable]", inputs: { resizableGrabWidth: "resizableGrabWidth", resizableMinWidth: "resizableMinWidth" }, ngImport: i0 });
|
|
80
|
+
}
|
|
81
|
+
export { ResizableDirective };
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ResizableDirective, decorators: [{
|
|
83
|
+
type: Directive,
|
|
84
|
+
args: [{
|
|
85
|
+
selector: '[ltResizable]',
|
|
86
|
+
}]
|
|
87
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { resizableGrabWidth: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], resizableMinWidth: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}] } });
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc3JjL2RpcmVjdGl2ZXMvcmVzaXphYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFFckU7OztHQUdHO0FBQ0gsTUFHYSxrQkFBa0I7SUFNVDtJQUxYLGtCQUFrQixHQUFHLENBQUMsQ0FBQztJQUN2QixpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFFaEMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUVqQixZQUFvQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtJQUFHLENBQUM7SUFFdEMsUUFBUTtRQUNOLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBRztRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5RCxHQUFHLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFHO1FBQ1YsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3BELENBQUM7SUFFRCxTQUFTLENBQUMsR0FBRztRQUNYLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNyQixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUNoQyxHQUFHLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQsd0JBQXdCO1FBQ3RCLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsTUFBTSxDQUFDO0lBQ2pELENBQUM7SUFFRCxRQUFRLENBQUMsR0FBVTtRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixHQUFHLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFHO1FBQ1gsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDM0MsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUM7U0FDbkQ7YUFBTTtZQUNMLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1NBQ2hEO0lBQ0gsQ0FBQztJQUVELHdCQUF3QjtRQUN0QixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLE1BQU0sQ0FBQztJQUNqRCxDQUFDO0lBRUQsWUFBWSxDQUFDLEdBQUc7UUFDZCxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDdEgsQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixRQUFRLENBQUMsZ0JBQWdCLENBQ3ZCLFdBQVcsRUFDWCxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ0osSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyQixDQUFDLEVBQ0QsSUFBSSxDQUNMLENBQUM7UUFFRixRQUFRLENBQUMsZ0JBQWdCLENBQ3ZCLFNBQVMsRUFDVCxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ0osSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQixDQUFDLEVBQ0QsSUFBSSxDQUNMLENBQUM7SUFDSixDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUNwQyxXQUFXLEVBQ1gsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEIsQ0FBQyxFQUNELElBQUksQ0FDTCxDQUFDO1FBRUYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQ3BDLFdBQVcsRUFDWCxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ0osSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQixDQUFDLEVBQ0QsSUFBSSxDQUNMLENBQUM7SUFDSixDQUFDO3VHQWpHVSxrQkFBa0I7MkZBQWxCLGtCQUFrQjs7U0FBbEIsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBSDlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7aUJBQzFCO2lHQUVVLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBSZXN6aXNlIGRldGVjdGlvblxuICogKGlucHNpcmVkIGJ5OiBodHRwczovL3N0YWNrYmxpdHouY29tL2VkaXQvYW5ndWxhci1yZXNpemFibGUpXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tsdFJlc2l6YWJsZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBSZXNpemFibGVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSByZXNpemFibGVHcmFiV2lkdGggPSA4O1xuICBASW5wdXQoKSByZXNpemFibGVNaW5XaWR0aCA9IDEwO1xuXG4gIGRyYWdnaW5nID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFkZExpc3RlbmVyVG9Eb2N1bWVudCgpO1xuICAgIHRoaXMuYWRkTGlzdGVuZXJUb0VsZW1lbnQoKTtcbiAgfVxuXG4gIG1vdXNlTW92ZUcoZXZ0KSB7XG4gICAgaWYgKCF0aGlzLmRyYWdnaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubmV3V2lkdGgoZXZ0LmNsaWVudFggLSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdCk7XG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgbmV3V2lkdGgod2lkKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gTWF0aC5tYXgodGhpcy5yZXNpemFibGVNaW5XaWR0aCwgd2lkKTtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSByZXN1bHQgKyAncHgnO1xuICB9XG5cbiAgbW91c2VEb3duKGV2dCkge1xuICAgIGlmICh0aGlzLmluRHJhZ1JlZ2lvbihldnQpKSB7XG4gICAgICB0aGlzLmRyYWdnaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMucHJldmVudEdsb2JhbE1vdXNlRXZlbnRzKCk7XG4gICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcmVzdG9yZUdsb2JhbE1vdXNlRXZlbnRzKCkge1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGVbJ3BvaW50ZXItZXZlbnRzJ10gPSAnYXV0byc7XG4gIH1cblxuICBtb3VzZVVwRyhldnQ6IEV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmRyYWdnaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucmVzdG9yZUdsb2JhbE1vdXNlRXZlbnRzKCk7XG4gICAgdGhpcy5kcmFnZ2luZyA9IGZhbHNlO1xuICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIG1vdXNlTW92ZShldnQpIHtcbiAgICBpZiAodGhpcy5pbkRyYWdSZWdpb24oZXZ0KSB8fCB0aGlzLmRyYWdnaW5nKSB7XG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuY3Vyc29yID0gJ2NvbC1yZXNpemUnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuY3Vyc29yID0gJ2RlZmF1bHQnO1xuICAgIH1cbiAgfVxuXG4gIHByZXZlbnRHbG9iYWxNb3VzZUV2ZW50cygpIHtcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlWydwb2ludGVyLWV2ZW50cyddID0gJ25vbmUnO1xuICB9XG5cbiAgaW5EcmFnUmVnaW9uKGV2dCkge1xuICAgIHJldHVybiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGggLSBldnQuY2xpZW50WCArIHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0IDwgdGhpcy5yZXNpemFibGVHcmFiV2lkdGg7XG4gIH1cblxuICBwcml2YXRlIGFkZExpc3RlbmVyVG9Eb2N1bWVudCgpIHtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ21vdXNlbW92ZScsXG4gICAgICAoZSkgPT4ge1xuICAgICAgICB0aGlzLm1vdXNlTW92ZUcoZSk7XG4gICAgICB9LFxuICAgICAgdHJ1ZVxuICAgICk7XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ21vdXNldXAnLFxuICAgICAgKGUpID0+IHtcbiAgICAgICAgdGhpcy5tb3VzZVVwRyhlKTtcbiAgICAgIH0sXG4gICAgICB0cnVlXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkTGlzdGVuZXJUb0VsZW1lbnQoKSB7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnbW91c2Vkb3duJyxcbiAgICAgIChlKSA9PiB7XG4gICAgICAgIHRoaXMubW91c2VEb3duKGUpO1xuICAgICAgfSxcbiAgICAgIHRydWVcbiAgICApO1xuXG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnbW91c2Vtb3ZlJyxcbiAgICAgIChlKSA9PiB7XG4gICAgICAgIHRoaXMubW91c2VNb3ZlKGUpO1xuICAgICAgfSxcbiAgICAgIHRydWVcbiAgICApO1xuICB9XG59XG4iXX0=
|