vc-create-dashboard 3.0.4 → 3.0.5
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/README.md +24 -24
- package/esm2022/lib/configurations.mjs +7 -7
- package/esm2022/lib/create-dashboard-container/categories/categories-config.mjs +2 -2
- package/esm2022/lib/create-dashboard-container/categories/categories.component.mjs +212 -210
- package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.mjs +551 -549
- package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets/widget.interface.mjs +2 -2
- package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets.module.mjs +47 -47
- package/esm2022/lib/create-dashboard-container/constants/assets.constant.mjs +34 -10
- package/esm2022/lib/create-dashboard-container/create-dashboard-config.mjs +2 -2
- package/esm2022/lib/create-dashboard-container/create-dashboard.component.mjs +1121 -1121
- package/esm2022/lib/create-dashboard-container/create-dashboard.module.mjs +132 -132
- package/esm2022/lib/create-dashboard-container/directives/directives.module.mjs +24 -24
- package/esm2022/lib/create-dashboard-container/directives/scroll-in-view.directive.mjs +36 -36
- package/esm2022/lib/create-dashboard-container/form-group/form-group.component.mjs +153 -153
- package/esm2022/lib/create-dashboard-container/frequency/frequency.component.mjs +309 -309
- package/esm2022/lib/create-dashboard-container/interfaces/widget-data-model.mjs +2 -2
- package/esm2022/lib/create-dashboard-container/pipes/filter.pipe.mjs +30 -30
- package/esm2022/lib/create-dashboard-container/pipes/search.pipe.mjs +25 -25
- package/esm2022/lib/create-dashboard-container/pipes/text-count.pipe.mjs +19 -19
- package/esm2022/lib/create-dashboard-container/responsibility-center/responsibility-center.component.mjs +149 -145
- package/esm2022/lib/create-dashboard-container/risk-categories/risk-categories-config.mjs +2 -2
- package/esm2022/lib/create-dashboard-container/risk-categories/risk-categories.component.mjs +206 -195
- package/esm2022/lib/create-dashboard-container/services/auth.service.mjs +31 -31
- package/esm2022/lib/create-dashboard-container/services/configure-widgets.service.mjs +230 -227
- package/esm2022/lib/create-dashboard-container/services/create-dashboard.service.mjs +160 -160
- package/esm2022/lib/create-dashboard-container/services/pagination.service.mjs +28 -28
- package/esm2022/lib/create-dashboard-container/services/urlConfig.service.mjs +29 -29
- package/esm2022/lib/create-dashboard-container/user-list/user-list.component.mjs +440 -421
- package/esm2022/lib/create-dashboard-container/user-list/user-list.config.mjs +2 -2
- package/esm2022/lib/create-dashboard.service.mjs +14 -14
- package/esm2022/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.mjs +52 -52
- package/esm2022/lib/ui-kit/dashboard-footer/dashboard-footer-config.mjs +2 -2
- package/esm2022/lib/ui-kit/dashboard-footer/dashboard-footer.module.mjs +32 -32
- package/esm2022/lib/ui-kit/dialog/dialog-config.mjs +7 -7
- package/esm2022/lib/ui-kit/dialog/dialog-injector.mjs +17 -17
- package/esm2022/lib/ui-kit/dialog/dialog-ref.mjs +11 -11
- package/esm2022/lib/ui-kit/dialog/dialog.component.mjs +99 -99
- package/esm2022/lib/ui-kit/dialog/dialog.module.mjs +20 -20
- package/esm2022/lib/ui-kit/dialog/dialog.service.mjs +56 -56
- package/esm2022/lib/ui-kit/dialog/insertion.directive.mjs +17 -17
- package/esm2022/lib/ui-kit/floating-bar/floating-bar.component.mjs +57 -57
- package/esm2022/lib/ui-kit/floating-bar/floating-bar.module.mjs +32 -32
- package/esm2022/lib/ui-kit/formgroup/click-outside.directive.mjs +30 -30
- package/esm2022/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.mjs +29 -29
- package/esm2022/lib/ui-kit/formgroup/cs-radio/cs-radio.component.mjs +34 -34
- package/esm2022/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.mjs +14 -14
- package/esm2022/lib/ui-kit/formgroup/cs-select/cs-select.component.mjs +119 -119
- package/esm2022/lib/ui-kit/formgroup/cs-switch/cs-switch.component.mjs +39 -39
- package/esm2022/lib/ui-kit/formgroup/formgroup.module.mjs +55 -55
- package/esm2022/lib/ui-kit/formgroup/pipes/pascal.pipe.mjs +19 -19
- package/esm2022/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.mjs +24 -24
- package/esm2022/lib/ui-kit/no-data/no-data.component.mjs +47 -47
- package/esm2022/lib/ui-kit/no-data/no-data.module.mjs +18 -18
- package/esm2022/lib/ui-kit/pagination/pagination.component.mjs +130 -130
- package/esm2022/lib/ui-kit/pagination/pagination.module.mjs +18 -18
- package/esm2022/lib/ui-kit/popover/popover.component.mjs +142 -142
- package/esm2022/lib/ui-kit/popover/popover.directive.mjs +93 -93
- package/esm2022/lib/ui-kit/popover/popover.module.mjs +21 -21
- package/esm2022/lib/ui-kit/popover/popover.service.mjs +23 -23
- package/esm2022/lib/ui-kit/select/cs-option/cs-option.component.mjs +41 -41
- package/esm2022/lib/ui-kit/select/cs-select/cs-select.component.mjs +107 -107
- package/esm2022/lib/ui-kit/select/safe-html.pipe.mjs +21 -21
- package/esm2022/lib/ui-kit/select/select.module.mjs +21 -21
- package/esm2022/lib/ui-kit/services/cs-select.service.mjs +16 -16
- package/esm2022/lib/ui-kit/smiley-dialog/smiley-dialog.component.mjs +52 -52
- package/esm2022/lib/ui-kit/smiley-dialog/smiley-dialog.module.mjs +18 -18
- package/esm2022/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.mjs +46 -46
- package/esm2022/lib/ui-kit/snack-bar/snack-bar.module.mjs +18 -18
- package/esm2022/lib/ui-kit/snack-bar/snack-bar.service.mjs +23 -23
- package/esm2022/lib/ui-kit/tooltip/tooltip.directive.mjs +168 -168
- package/esm2022/lib/ui-kit/tooltip/tooltip.module.mjs +18 -18
- package/esm2022/lib/ui-kit/v-loader/loader/loader.component.mjs +24 -24
- package/esm2022/lib/ui-kit/v-loader/loader-inline/loader-inline.component.mjs +24 -24
- package/esm2022/lib/ui-kit/v-loader/v-loader.module.mjs +19 -19
- package/esm2022/public-api.mjs +10 -10
- package/esm2022/vc-create-dashboard.mjs +4 -4
- package/fesm2022/vc-create-dashboard.mjs +5367 -5308
- package/fesm2022/vc-create-dashboard.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/configurations.d.ts +4 -4
- package/lib/create-dashboard-container/categories/categories-config.d.ts +18 -18
- package/lib/create-dashboard-container/categories/categories.component.d.ts +64 -31
- package/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.d.ts +121 -88
- package/lib/create-dashboard-container/configure-widgets/configure-widgets/widget.interface.d.ts +9 -9
- package/lib/create-dashboard-container/configure-widgets/configure-widgets.module.d.ts +14 -14
- package/lib/create-dashboard-container/constants/assets.constant.d.ts +33 -9
- package/lib/create-dashboard-container/create-dashboard-config.d.ts +18 -18
- package/lib/create-dashboard-container/create-dashboard.component.d.ts +178 -178
- package/lib/create-dashboard-container/create-dashboard.module.d.ts +40 -40
- package/lib/create-dashboard-container/directives/directives.module.d.ts +8 -8
- package/lib/create-dashboard-container/directives/scroll-in-view.directive.d.ts +12 -12
- package/lib/create-dashboard-container/form-group/form-group.component.d.ts +48 -48
- package/lib/create-dashboard-container/frequency/frequency.component.d.ts +39 -39
- package/lib/create-dashboard-container/interfaces/widget-data-model.d.ts +8 -8
- package/lib/create-dashboard-container/pipes/filter.pipe.d.ts +7 -7
- package/lib/create-dashboard-container/pipes/search.pipe.d.ts +7 -7
- package/lib/create-dashboard-container/pipes/text-count.pipe.d.ts +7 -7
- package/lib/create-dashboard-container/responsibility-center/responsibility-center.component.d.ts +60 -27
- package/lib/create-dashboard-container/risk-categories/risk-categories-config.d.ts +18 -18
- package/lib/create-dashboard-container/risk-categories/risk-categories.component.d.ts +64 -31
- package/lib/create-dashboard-container/services/auth.service.d.ts +11 -11
- package/lib/create-dashboard-container/services/configure-widgets.service.d.ts +38 -38
- package/lib/create-dashboard-container/services/create-dashboard.service.d.ts +45 -45
- package/lib/create-dashboard-container/services/pagination.service.d.ts +12 -12
- package/lib/create-dashboard-container/services/urlConfig.service.d.ts +10 -10
- package/lib/create-dashboard-container/user-list/user-list.component.d.ts +121 -88
- package/lib/create-dashboard-container/user-list/user-list.config.d.ts +13 -13
- package/lib/create-dashboard.service.d.ts +6 -6
- package/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.d.ts +17 -17
- package/lib/ui-kit/dashboard-footer/dashboard-footer-config.d.ts +11 -11
- package/lib/ui-kit/dashboard-footer/dashboard-footer.module.d.ts +10 -10
- package/lib/ui-kit/dialog/dialog-config.d.ts +6 -6
- package/lib/ui-kit/dialog/dialog-injector.d.ts +7 -7
- package/lib/ui-kit/dialog/dialog-ref.d.ts +7 -7
- package/lib/ui-kit/dialog/dialog.component.d.ts +33 -33
- package/lib/ui-kit/dialog/dialog.module.d.ts +9 -9
- package/lib/ui-kit/dialog/dialog.service.d.ts +17 -17
- package/lib/ui-kit/dialog/insertion.directive.d.ts +8 -8
- package/lib/ui-kit/floating-bar/floating-bar.component.d.ts +20 -20
- package/lib/ui-kit/floating-bar/floating-bar.module.d.ts +10 -10
- package/lib/ui-kit/formgroup/click-outside.directive.d.ts +10 -10
- package/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.d.ts +13 -13
- package/lib/ui-kit/formgroup/cs-radio/cs-radio.component.d.ts +15 -15
- package/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.d.ts +8 -8
- package/lib/ui-kit/formgroup/cs-select/cs-select.component.d.ts +36 -36
- package/lib/ui-kit/formgroup/cs-switch/cs-switch.component.d.ts +15 -15
- package/lib/ui-kit/formgroup/formgroup.module.d.ts +17 -17
- package/lib/ui-kit/formgroup/pipes/pascal.pipe.d.ts +7 -7
- package/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.d.ts +7 -7
- package/lib/ui-kit/no-data/no-data.component.d.ts +19 -19
- package/lib/ui-kit/no-data/no-data.module.d.ts +8 -8
- package/lib/ui-kit/pagination/pagination.component.d.ts +21 -21
- package/lib/ui-kit/pagination/pagination.module.d.ts +8 -8
- package/lib/ui-kit/popover/popover.component.d.ts +28 -28
- package/lib/ui-kit/popover/popover.directive.d.ts +17 -17
- package/lib/ui-kit/popover/popover.module.d.ts +9 -9
- package/lib/ui-kit/popover/popover.service.d.ts +13 -13
- package/lib/ui-kit/select/cs-option/cs-option.component.d.ts +16 -16
- package/lib/ui-kit/select/cs-select/cs-select.component.d.ts +32 -32
- package/lib/ui-kit/select/safe-html.pipe.d.ts +10 -10
- package/lib/ui-kit/select/select.module.d.ts +11 -11
- package/lib/ui-kit/services/cs-select.service.d.ts +7 -7
- package/lib/ui-kit/smiley-dialog/smiley-dialog.component.d.ts +17 -17
- package/lib/ui-kit/smiley-dialog/smiley-dialog.module.d.ts +8 -8
- package/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.d.ts +17 -17
- package/lib/ui-kit/snack-bar/snack-bar.module.d.ts +8 -8
- package/lib/ui-kit/snack-bar/snack-bar.service.d.ts +9 -9
- package/lib/ui-kit/tooltip/tooltip.directive.d.ts +28 -28
- package/lib/ui-kit/tooltip/tooltip.module.d.ts +8 -8
- package/lib/ui-kit/v-loader/loader/loader.component.d.ts +11 -11
- package/lib/ui-kit/v-loader/loader-inline/loader-inline.component.d.ts +11 -11
- package/lib/ui-kit/v-loader/v-loader.module.d.ts +9 -9
- package/package.json +1 -1
- package/public-api.d.ts +3 -3
|
@@ -1,142 +1,142 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "./popover.service";
|
|
4
|
-
import * as i2 from "@angular/common";
|
|
5
|
-
export class PopoverComponent {
|
|
6
|
-
popoverService;
|
|
7
|
-
dontCloseonClick = false;
|
|
8
|
-
popoverContainer = false;
|
|
9
|
-
popoverRatio;
|
|
10
|
-
popoverContent;
|
|
11
|
-
closedOnOverlay = new EventEmitter();
|
|
12
|
-
constructor(popoverService) {
|
|
13
|
-
this.popoverService = popoverService;
|
|
14
|
-
}
|
|
15
|
-
showPopover = false;
|
|
16
|
-
leftValue;
|
|
17
|
-
topValue;
|
|
18
|
-
popoverHeight;
|
|
19
|
-
popoverWidth;
|
|
20
|
-
positionX;
|
|
21
|
-
positionY;
|
|
22
|
-
ngOnInit() { }
|
|
23
|
-
popover() {
|
|
24
|
-
this.popoverContainer = false;
|
|
25
|
-
this.popoverContainer = true;
|
|
26
|
-
setTimeout(() => {
|
|
27
|
-
this.getPosition();
|
|
28
|
-
this.showPopover = true;
|
|
29
|
-
this.popoverService.stopScroll = true;
|
|
30
|
-
// document.body.style.overflow = 'hidden';
|
|
31
|
-
}, 10);
|
|
32
|
-
return false;
|
|
33
|
-
}
|
|
34
|
-
popoverEvent() {
|
|
35
|
-
this.popoverContainer = false;
|
|
36
|
-
this.popoverContainer = true;
|
|
37
|
-
setTimeout(() => {
|
|
38
|
-
// this.getPosition();
|
|
39
|
-
this.positionX = this.popoverService.positionX;
|
|
40
|
-
this.positionY = this.popoverService.positionY;
|
|
41
|
-
this.showPopover = true;
|
|
42
|
-
this.popoverService.stopScroll = true;
|
|
43
|
-
}, 10);
|
|
44
|
-
return false;
|
|
45
|
-
}
|
|
46
|
-
closePopover(top) {
|
|
47
|
-
if (!this.dontCloseonClick || top === 'top') {
|
|
48
|
-
this.popoverContainer = false;
|
|
49
|
-
this.showPopover = false;
|
|
50
|
-
this.popoverService.stopScroll = false;
|
|
51
|
-
// document.body.style.overflow = 'auto';
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
close() {
|
|
55
|
-
this.popoverContainer = false;
|
|
56
|
-
this.showPopover = false;
|
|
57
|
-
this.popoverService.stopScroll = false;
|
|
58
|
-
}
|
|
59
|
-
clickedPopover() {
|
|
60
|
-
this.getPosition();
|
|
61
|
-
}
|
|
62
|
-
getPosition() {
|
|
63
|
-
// setTimeout(() => {
|
|
64
|
-
const elementPositionn = this.popoverService.elementPosition;
|
|
65
|
-
this.popoverHeight = this.popoverRatio.nativeElement.offsetHeight;
|
|
66
|
-
this.popoverWidth = this.popoverRatio.nativeElement.offsetWidth;
|
|
67
|
-
if (this.popoverService.elementDirection === 'left') {
|
|
68
|
-
this.leftValue = elementPositionn.left;
|
|
69
|
-
if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {
|
|
70
|
-
this.topValue = elementPositionn.top - this.popoverHeight;
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
this.topValue = elementPositionn.top + elementPositionn.height;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
if (this.popoverService.elementDirection === 'right') {
|
|
77
|
-
this.leftValue = elementPositionn.left + elementPositionn.width - this.popoverWidth;
|
|
78
|
-
if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {
|
|
79
|
-
this.topValue = elementPositionn.top - this.popoverHeight;
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
this.topValue = elementPositionn.top + elementPositionn.height;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
if (this.popoverService.elementDirection === 'top') {
|
|
86
|
-
this.leftValue = elementPositionn.left + elementPositionn.width;
|
|
87
|
-
if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {
|
|
88
|
-
this.topValue = elementPositionn.top - this.popoverHeight;
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
this.topValue = elementPositionn.top - this.popoverHeight;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
if (this.popoverService.elementDirection === 'bottom') {
|
|
95
|
-
this.leftValue = elementPositionn.left + elementPositionn.width;
|
|
96
|
-
if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {
|
|
97
|
-
this.topValue = elementPositionn.top - this.popoverHeight;
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
this.topValue = elementPositionn.top + elementPositionn.height;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
if (this.popoverService.elementDirection === 'self-position') {
|
|
104
|
-
this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverWidth / 2;
|
|
105
|
-
this.topValue = elementPositionn.top - 15;
|
|
106
|
-
}
|
|
107
|
-
if (this.popoverService.elementDirection === 'top-center') {
|
|
108
|
-
this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverWidth / 2;
|
|
109
|
-
// this.topValue = elementPositionn.top - this.popoverHeight;
|
|
110
|
-
if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight) {
|
|
111
|
-
this.topValue = elementPositionn.top + elementPositionn.height;
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
this.topValue = elementPositionn.top - this.popoverHeight;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
if (this.popoverService.elementDirection === 'center') {
|
|
118
|
-
this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverWidth / 2;
|
|
119
|
-
this.topValue = elementPositionn.top + elementPositionn.height;
|
|
120
|
-
}
|
|
121
|
-
this.positionX = this.leftValue;
|
|
122
|
-
this.positionY = this.topValue;
|
|
123
|
-
// }, 10);
|
|
124
|
-
}
|
|
125
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverComponent, deps: [{ token: i1.PopoverService }], target: i0.ɵɵFactoryTarget.Component });
|
|
126
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PopoverComponent, selector: "app-popover", inputs: { dontCloseonClick: "dontCloseonClick" }, outputs: { closedOnOverlay: "closedOnOverlay" }, viewQueries: [{ propertyName: "popoverRatio", first: true, predicate: ["popoverRatio"], descendants: true }, { propertyName: "popoverContent", first: true, predicate: ["popoverContent"], descendants: true }], ngImport: i0, template: "<div class=\"popover-overlay\" *ngIf=\"popoverContainer\" (click)=\"closePopover('top');this.closedOnOverlay.emit();\"></div>\
|
|
127
|
-
}
|
|
128
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverComponent, decorators: [{
|
|
129
|
-
type: Component,
|
|
130
|
-
args: [{ selector: 'app-popover', template: "<div class=\"popover-overlay\" *ngIf=\"popoverContainer\" (click)=\"closePopover('top');this.closedOnOverlay.emit();\"></div>\
|
|
131
|
-
}], ctorParameters: function () { return [{ type: i1.PopoverService }]; }, propDecorators: { dontCloseonClick: [{
|
|
132
|
-
type: Input
|
|
133
|
-
}], popoverRatio: [{
|
|
134
|
-
type: ViewChild,
|
|
135
|
-
args: ['popoverRatio']
|
|
136
|
-
}], popoverContent: [{
|
|
137
|
-
type: ViewChild,
|
|
138
|
-
args: ['popoverContent']
|
|
139
|
-
}], closedOnOverlay: [{
|
|
140
|
-
type: Output
|
|
141
|
-
}] } });
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVF0RyxNQUFNLE9BQU8sZ0JBQWdCO0lBTVI7SUFMVixnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDbEMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ0UsWUFBWSxDQUFjO0lBQ3hCLGNBQWMsQ0FBYztJQUMvQyxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUMvQyxZQUFtQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFBRyxDQUFDO0lBQ3JELFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDcEIsU0FBUyxDQUFNO0lBQ2YsUUFBUSxDQUFNO0lBQ2QsYUFBYSxDQUFNO0lBQ25CLFlBQVksQ0FBTTtJQUNsQixTQUFTLENBQVU7SUFDbkIsU0FBUyxDQUFVO0lBQ25CLFFBQVEsS0FBVSxDQUFDO0lBQ25CLE9BQU87UUFDTCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDN0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMs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O1FBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMvQixVQUFVO0lBQ1osQ0FBQzt3R0FsSFUsZ0JBQWdCOzRGQUFoQixnQkFBZ0IsdVdDUjdCLG1iQU1BOzs0RkRFYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsYUFBYTtxR0FLZCxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRXFCLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFDSSxjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQjtnQkFDakIsZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQb3BvdmVyU2VydmljZSB9IGZyb20gJy4vcG9wb3Zlci5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXBvcG92ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wb3BvdmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wb3BvdmVyLmNvbXBvbmVudC5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQb3BvdmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBkb250Q2xvc2VvbkNsaWNrID0gZmFsc2U7XHJcbiAgcG9wb3ZlckNvbnRhaW5lciA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ3BvcG92ZXJSYXRpbycpIHBvcG92ZXJSYXRpbyE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgncG9wb3ZlckNvbnRlbnQnKSBwb3BvdmVyQ29udGVudCE6IEVsZW1lbnRSZWY7XHJcbiAgQE91dHB1dCgpIGNsb3NlZE9uT3ZlcmxheSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcG9wb3ZlclNlcnZpY2U6IFBvcG92ZXJTZXJ2aWNlKSB7fVxyXG4gIHNob3dQb3BvdmVyID0gZmFsc2U7XHJcbiAgbGVmdFZhbHVlOiBhbnk7XHJcbiAgdG9wVmFsdWU6IGFueTtcclxuICBwb3BvdmVySGVpZ2h0OiBhbnk7XHJcbiAgcG9wb3ZlcldpZHRoOiBhbnk7XHJcbiAgcG9zaXRpb25YITogbnVtYmVyO1xyXG4gIHBvc2l0aW9uWSE6IG51bWJlcjtcclxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XHJcbiAgcG9wb3ZlcigpIHtcclxuICAgIHRoaXMucG9wb3ZlckNvbnRhaW5lciA9IGZhbHNlO1xyXG4gICAgdGhpcy5wb3BvdmVyQ29udGFpbmVyID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmdldFBvc2l0aW9uKCk7XHJcbiAgICAgIHRoaXMuc2hvd1BvcG92ZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLnBvcG92ZXJTZXJ2aWNlLnN0b3BTY3JvbGwgPSB0cnVlO1xyXG4gICAgICAvLyBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XHJcbiAgICB9LCAxMCk7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIHBvcG92ZXJFdmVudCgpIHtcclxuICAgIHRoaXMucG9wb3ZlckNvbnRhaW5lciA9IGZhbHNlO1xyXG4gICAgdGhpcy5wb3BvdmVyQ29udGFpbmVyID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAvLyB0aGlzLmdldFBvc2l0aW9uKCk7XHJcbiAgICAgIHRoaXMucG9zaXRpb25YID0gdGhpcy5wb3BvdmVyU2VydmljZS5wb3NpdGlvblg7XHJcbiAgICAgIHRoaXMucG9zaXRpb25ZID0gdGhpcy5wb3BvdmVyU2VydmljZS5wb3NpdGlvblk7XHJcbiAgICAgIHRoaXMuc2hvd1BvcG92ZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLnBvcG92ZXJTZXJ2aWNlLnN0b3BTY3JvbGwgPSB0cnVlO1xyXG5cclxuICAgIH0sIDEwKTtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgY2xvc2VQb3BvdmVyKHRvcD86IHN0cmluZykge1xyXG4gICAgaWYgKCF0aGlzLmRvbnRDbG9zZW9uQ2xpY2sgfHwgdG9wID09PSAndG9wJykge1xyXG4gICAgICB0aGlzLnBvcG92ZXJDb250YWluZXIgPSBmYWxzZTtcclxuICAgICAgdGhpcy5zaG93UG9wb3ZlciA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnBvcG92ZXJTZXJ2aWNlLnN0b3BTY3JvbGwgPSBmYWxzZTtcclxuICAgICAgLy8gZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdhdXRvJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlKCl7XHJcbiAgICB0aGlzLnBvcG92ZXJDb250YWluZXIgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd1BvcG92ZXIgPSBmYWxzZTtcclxuICAgIHRoaXMucG9wb3ZlclNlcnZpY2Uuc3RvcFNjcm9sbCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgY2xpY2tlZFBvcG92ZXIoKSB7XHJcbiAgICB0aGlzLmdldFBvc2l0aW9uKCk7XHJcbiAgfVxyXG4gIGdldFBvc2l0aW9uKCkge1xyXG4gICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICBjb25zdCBlbGVtZW50UG9zaXRpb25uID0gdGhpcy5wb3BvdmVyU2VydmljZS5lbGVtZW50UG9zaXRpb247XHJcbiAgICB0aGlzLnBvcG92ZXJIZWlnaHQgPSB0aGlzLnBvcG92ZXJSYXRpby5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgIHRoaXMucG9wb3ZlcldpZHRoID0gdGhpcy5wb3BvdmVyUmF0aW8ubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcclxuICAgIGlmICh0aGlzLnBvcG92ZXJTZXJ2aWNlLmVsZW1lbnREaXJlY3Rpb24gPT09ICdsZWZ0Jykge1xyXG4gICAgICB0aGlzLmxlZnRWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4ubGVmdDtcclxuICAgICAgaWYgKGVsZW1lbnRQb3NpdGlvbm4udG9wICsgZWxlbWVudFBvc2l0aW9ubi5oZWlnaHQgKyB0aGlzLnBvcG92ZXJIZWlnaHQgPiB3aW5kb3cub3V0ZXJIZWlnaHQgLSAyMDApIHtcclxuICAgICAgICB0aGlzLnRvcFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi50b3AgLSB0aGlzLnBvcG92ZXJIZWlnaHQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy50b3BWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4udG9wICsgZWxlbWVudFBvc2l0aW9ubi5oZWlnaHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLnBvcG92ZXJTZXJ2aWNlLmVsZW1lbnREaXJlY3Rpb24gPT09ICdyaWdodCcpIHtcclxuICAgICAgdGhpcy5sZWZ0VmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLmxlZnQgKyBlbGVtZW50UG9zaXRpb25uLndpZHRoIC0gdGhpcy5wb3BvdmVyV2lkdGg7XHJcbiAgICAgIGlmIChlbGVtZW50UG9zaXRpb25uLnRvcCArIGVsZW1lbnRQb3NpdGlvbm4uaGVpZ2h0ICsgdGhpcy5wb3BvdmVySGVpZ2h0ID4gd2luZG93Lm91dGVySGVpZ2h0IC0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy50b3BWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4udG9wIC0gdGhpcy5wb3BvdmVySGVpZ2h0O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudG9wVmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLnRvcCArIGVsZW1lbnRQb3NpdGlvbm4uaGVpZ2h0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5wb3BvdmVyU2VydmljZS5lbGVtZW50RGlyZWN0aW9uID09PSAndG9wJykge1xyXG4gICAgICB0aGlzLmxlZnRWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4ubGVmdCArIGVsZW1lbnRQb3NpdGlvbm4ud2lkdGg7XHJcbiAgICAgIGlmIChlbGVtZW50UG9zaXRpb25uLnRvcCArIGVsZW1lbnRQb3NpdGlvbm4uaGVpZ2h0ICsgdGhpcy5wb3BvdmVySGVpZ2h0ID4gd2luZG93Lm91dGVySGVpZ2h0IC0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy50b3BWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4udG9wIC0gdGhpcy5wb3BvdmVySGVpZ2h0O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudG9wVmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLnRvcCAtIHRoaXMucG9wb3ZlckhlaWdodDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucG9wb3ZlclNlcnZpY2UuZWxlbWVudERpcmVjdGlvbiA9PT0gJ2JvdHRvbScpIHtcclxuICAgICAgdGhpcy5sZWZ0VmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLmxlZnQgKyBlbGVtZW50UG9zaXRpb25uLndpZHRoO1xyXG4gICAgICBpZiAoZWxlbWVudFBvc2l0aW9ubi50b3AgKyBlbGVtZW50UG9zaXRpb25uLmhlaWdodCArIHRoaXMucG9wb3ZlckhlaWdodCA+IHdpbmRvdy5vdXRlckhlaWdodCAtIDIwMCkge1xyXG4gICAgICAgIHRoaXMudG9wVmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLnRvcCAtIHRoaXMucG9wb3ZlckhlaWdodDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRvcFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi50b3AgKyBlbGVtZW50UG9zaXRpb25uLmhlaWdodDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucG9wb3ZlclNlcnZpY2UuZWxlbWVudERpcmVjdGlvbiA9PT0gJ3NlbGYtcG9zaXRpb24nKSB7XHJcbiAgICAgIHRoaXMubGVmdFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi5sZWZ0ICsgZWxlbWVudFBvc2l0aW9ubi53aWR0aCAvIDIgLSB0aGlzLnBvcG92ZXJXaWR0aCAvIDI7XHJcbiAgICAgIHRoaXMudG9wVmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLnRvcCAtIDE1O1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucG9wb3ZlclNlcnZpY2UuZWxlbWVudERpcmVjdGlvbiA9PT0gJ3RvcC1jZW50ZXInKSB7XHJcbiAgICAgIHRoaXMubGVmdFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi5sZWZ0ICsgZWxlbWVudFBvc2l0aW9ubi53aWR0aCAvIDIgLSB0aGlzLnBvcG92ZXJXaWR0aCAvIDI7XHJcbiAgICAgIC8vIHRoaXMudG9wVmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLnRvcCAtIHRoaXMucG9wb3ZlckhlaWdodDtcclxuICAgICAgaWYgKGVsZW1lbnRQb3NpdGlvbm4udG9wICsgZWxlbWVudFBvc2l0aW9ubi5oZWlnaHQgKyB0aGlzLnBvcG92ZXJIZWlnaHQgPiB3aW5kb3cub3V0ZXJIZWlnaHQpIHtcclxuICAgICAgICB0aGlzLnRvcFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi50b3AgKyBlbGVtZW50UG9zaXRpb25uLmhlaWdodDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRvcFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi50b3AgLSB0aGlzLnBvcG92ZXJIZWlnaHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLnBvcG92ZXJTZXJ2aWNlLmVsZW1lbnREaXJlY3Rpb24gPT09ICdjZW50ZXInKSB7XHJcbiAgICAgIHRoaXMubGVmdFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi5sZWZ0ICsgZWxlbWVudFBvc2l0aW9ubi53aWR0aCAvIDIgLSB0aGlzLnBvcG92ZXJXaWR0aCAvIDI7XHJcbiAgICAgIHRoaXMudG9wVmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLnRvcCArIGVsZW1lbnRQb3NpdGlvbm4uaGVpZ2h0O1xyXG4gICAgfVxyXG4gICAgdGhpcy5wb3NpdGlvblggPSB0aGlzLmxlZnRWYWx1ZTtcclxuICAgIHRoaXMucG9zaXRpb25ZID0gdGhpcy50b3BWYWx1ZTtcclxuICAgIC8vIH0sIDEwKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInBvcG92ZXItb3ZlcmxheVwiICpuZ0lmPVwicG9wb3ZlckNvbnRhaW5lclwiIChjbGljayk9XCJjbG9zZVBvcG92ZXIoJ3RvcCcpO3RoaXMuY2xvc2VkT25PdmVybGF5LmVtaXQoKTtcIj48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImFjdGlvblwiIFtjbGFzcy5hY3RpdmVdPVwic2hvd1BvcG92ZXJcIiAqbmdJZj1cInBvcG92ZXJDb250YWluZXJcIiBbc3R5bGUudG9wLnB4XT1cInBvc2l0aW9uWVwiIFtzdHlsZS5sZWZ0LnB4XT1cInBvc2l0aW9uWFwiICNwb3BvdmVyUmF0aW8gaWQ9XCJwb3BvdmVyUmF0aW9cIj5cclxuICA8ZGl2IChjbGljayk9XCJjbG9zZVBvcG92ZXIoKTsgY2xpY2tlZFBvcG92ZXIoKVwiICNwb3BvdmVyQ29udGVudD5cclxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "./popover.service";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
export class PopoverComponent {
|
|
6
|
+
popoverService;
|
|
7
|
+
dontCloseonClick = false;
|
|
8
|
+
popoverContainer = false;
|
|
9
|
+
popoverRatio;
|
|
10
|
+
popoverContent;
|
|
11
|
+
closedOnOverlay = new EventEmitter();
|
|
12
|
+
constructor(popoverService) {
|
|
13
|
+
this.popoverService = popoverService;
|
|
14
|
+
}
|
|
15
|
+
showPopover = false;
|
|
16
|
+
leftValue;
|
|
17
|
+
topValue;
|
|
18
|
+
popoverHeight;
|
|
19
|
+
popoverWidth;
|
|
20
|
+
positionX;
|
|
21
|
+
positionY;
|
|
22
|
+
ngOnInit() { }
|
|
23
|
+
popover() {
|
|
24
|
+
this.popoverContainer = false;
|
|
25
|
+
this.popoverContainer = true;
|
|
26
|
+
setTimeout(() => {
|
|
27
|
+
this.getPosition();
|
|
28
|
+
this.showPopover = true;
|
|
29
|
+
this.popoverService.stopScroll = true;
|
|
30
|
+
// document.body.style.overflow = 'hidden';
|
|
31
|
+
}, 10);
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
popoverEvent() {
|
|
35
|
+
this.popoverContainer = false;
|
|
36
|
+
this.popoverContainer = true;
|
|
37
|
+
setTimeout(() => {
|
|
38
|
+
// this.getPosition();
|
|
39
|
+
this.positionX = this.popoverService.positionX;
|
|
40
|
+
this.positionY = this.popoverService.positionY;
|
|
41
|
+
this.showPopover = true;
|
|
42
|
+
this.popoverService.stopScroll = true;
|
|
43
|
+
}, 10);
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
closePopover(top) {
|
|
47
|
+
if (!this.dontCloseonClick || top === 'top') {
|
|
48
|
+
this.popoverContainer = false;
|
|
49
|
+
this.showPopover = false;
|
|
50
|
+
this.popoverService.stopScroll = false;
|
|
51
|
+
// document.body.style.overflow = 'auto';
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
close() {
|
|
55
|
+
this.popoverContainer = false;
|
|
56
|
+
this.showPopover = false;
|
|
57
|
+
this.popoverService.stopScroll = false;
|
|
58
|
+
}
|
|
59
|
+
clickedPopover() {
|
|
60
|
+
this.getPosition();
|
|
61
|
+
}
|
|
62
|
+
getPosition() {
|
|
63
|
+
// setTimeout(() => {
|
|
64
|
+
const elementPositionn = this.popoverService.elementPosition;
|
|
65
|
+
this.popoverHeight = this.popoverRatio.nativeElement.offsetHeight;
|
|
66
|
+
this.popoverWidth = this.popoverRatio.nativeElement.offsetWidth;
|
|
67
|
+
if (this.popoverService.elementDirection === 'left') {
|
|
68
|
+
this.leftValue = elementPositionn.left;
|
|
69
|
+
if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {
|
|
70
|
+
this.topValue = elementPositionn.top - this.popoverHeight;
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
this.topValue = elementPositionn.top + elementPositionn.height;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (this.popoverService.elementDirection === 'right') {
|
|
77
|
+
this.leftValue = elementPositionn.left + elementPositionn.width - this.popoverWidth;
|
|
78
|
+
if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {
|
|
79
|
+
this.topValue = elementPositionn.top - this.popoverHeight;
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
this.topValue = elementPositionn.top + elementPositionn.height;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (this.popoverService.elementDirection === 'top') {
|
|
86
|
+
this.leftValue = elementPositionn.left + elementPositionn.width;
|
|
87
|
+
if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {
|
|
88
|
+
this.topValue = elementPositionn.top - this.popoverHeight;
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
this.topValue = elementPositionn.top - this.popoverHeight;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (this.popoverService.elementDirection === 'bottom') {
|
|
95
|
+
this.leftValue = elementPositionn.left + elementPositionn.width;
|
|
96
|
+
if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight - 200) {
|
|
97
|
+
this.topValue = elementPositionn.top - this.popoverHeight;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
this.topValue = elementPositionn.top + elementPositionn.height;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
if (this.popoverService.elementDirection === 'self-position') {
|
|
104
|
+
this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverWidth / 2;
|
|
105
|
+
this.topValue = elementPositionn.top - 15;
|
|
106
|
+
}
|
|
107
|
+
if (this.popoverService.elementDirection === 'top-center') {
|
|
108
|
+
this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverWidth / 2;
|
|
109
|
+
// this.topValue = elementPositionn.top - this.popoverHeight;
|
|
110
|
+
if (elementPositionn.top + elementPositionn.height + this.popoverHeight > window.outerHeight) {
|
|
111
|
+
this.topValue = elementPositionn.top + elementPositionn.height;
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
this.topValue = elementPositionn.top - this.popoverHeight;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (this.popoverService.elementDirection === 'center') {
|
|
118
|
+
this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverWidth / 2;
|
|
119
|
+
this.topValue = elementPositionn.top + elementPositionn.height;
|
|
120
|
+
}
|
|
121
|
+
this.positionX = this.leftValue;
|
|
122
|
+
this.positionY = this.topValue;
|
|
123
|
+
// }, 10);
|
|
124
|
+
}
|
|
125
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverComponent, deps: [{ token: i1.PopoverService }], target: i0.ɵɵFactoryTarget.Component });
|
|
126
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PopoverComponent, selector: "app-popover", inputs: { dontCloseonClick: "dontCloseonClick" }, outputs: { closedOnOverlay: "closedOnOverlay" }, viewQueries: [{ propertyName: "popoverRatio", first: true, predicate: ["popoverRatio"], descendants: true }, { propertyName: "popoverContent", first: true, predicate: ["popoverContent"], descendants: true }], ngImport: i0, template: "<div class=\"popover-overlay\" *ngIf=\"popoverContainer\" (click)=\"closePopover('top');this.closedOnOverlay.emit();\"></div>\n<div class=\"action\" [class.active]=\"showPopover\" *ngIf=\"popoverContainer\" [style.top.px]=\"positionY\" [style.left.px]=\"positionX\" #popoverRatio id=\"popoverRatio\">\n <div (click)=\"closePopover(); clickedPopover()\" #popoverContent>\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".action{position:fixed;z-index:13;display:inline-block;opacity:0}.action.active{opacity:1}.popover-overlay{z-index:12;cursor:initial;position:fixed;inset:0}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
127
|
+
}
|
|
128
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverComponent, decorators: [{
|
|
129
|
+
type: Component,
|
|
130
|
+
args: [{ selector: 'app-popover', template: "<div class=\"popover-overlay\" *ngIf=\"popoverContainer\" (click)=\"closePopover('top');this.closedOnOverlay.emit();\"></div>\n<div class=\"action\" [class.active]=\"showPopover\" *ngIf=\"popoverContainer\" [style.top.px]=\"positionY\" [style.left.px]=\"positionX\" #popoverRatio id=\"popoverRatio\">\n <div (click)=\"closePopover(); clickedPopover()\" #popoverContent>\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".action{position:fixed;z-index:13;display:inline-block;opacity:0}.action.active{opacity:1}.popover-overlay{z-index:12;cursor:initial;position:fixed;inset:0}\n"] }]
|
|
131
|
+
}], ctorParameters: function () { return [{ type: i1.PopoverService }]; }, propDecorators: { dontCloseonClick: [{
|
|
132
|
+
type: Input
|
|
133
|
+
}], popoverRatio: [{
|
|
134
|
+
type: ViewChild,
|
|
135
|
+
args: ['popoverRatio']
|
|
136
|
+
}], popoverContent: [{
|
|
137
|
+
type: ViewChild,
|
|
138
|
+
args: ['popoverContent']
|
|
139
|
+
}], closedOnOverlay: [{
|
|
140
|
+
type: Output
|
|
141
|
+
}] } });
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVF0RyxNQUFNLE9BQU8sZ0JBQWdCO0lBTVI7SUFMVixnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDbEMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ0UsWUFBWSxDQUFjO0lBQ3hCLGNBQWMsQ0FBYztJQUMvQyxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUMvQyxZQUFtQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFBRyxDQUFDO0lBQ3JELFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDcEIsU0FBUyxDQUFNO0lBQ2YsUUFBUSxDQUFNO0lBQ2QsYUFBYSxDQUFNO0lBQ25CLFlBQVksQ0FBTTtJQUNsQixTQUFTLENBQVU7SUFDbkIsU0FBUyxDQUFVO0lBQ25CLFFBQVEsS0FBVSxDQUFDO0lBQ25CLE9BQU87UUFDTCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDN0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMs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O1FBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMvQixVQUFVO0lBQ1osQ0FBQzt3R0FsSFUsZ0JBQWdCOzRGQUFoQixnQkFBZ0IsdVdDUjdCLHVhQU1BOzs0RkRFYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsYUFBYTtxR0FLZCxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRXFCLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFDSSxjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQjtnQkFDakIsZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUG9wb3ZlclNlcnZpY2UgfSBmcm9tICcuL3BvcG92ZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1wb3BvdmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvcG92ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wb3BvdmVyLmNvbXBvbmVudC5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBvcG92ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBkb250Q2xvc2VvbkNsaWNrID0gZmFsc2U7XG4gIHBvcG92ZXJDb250YWluZXIgPSBmYWxzZTtcbiAgQFZpZXdDaGlsZCgncG9wb3ZlclJhdGlvJykgcG9wb3ZlclJhdGlvITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgncG9wb3ZlckNvbnRlbnQnKSBwb3BvdmVyQ29udGVudCE6IEVsZW1lbnRSZWY7XG4gIEBPdXRwdXQoKSBjbG9zZWRPbk92ZXJsYXkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwb3BvdmVyU2VydmljZTogUG9wb3ZlclNlcnZpY2UpIHt9XG4gIHNob3dQb3BvdmVyID0gZmFsc2U7XG4gIGxlZnRWYWx1ZTogYW55O1xuICB0b3BWYWx1ZTogYW55O1xuICBwb3BvdmVySGVpZ2h0OiBhbnk7XG4gIHBvcG92ZXJXaWR0aDogYW55O1xuICBwb3NpdGlvblghOiBudW1iZXI7XG4gIHBvc2l0aW9uWSE6IG51bWJlcjtcbiAgbmdPbkluaXQoKTogdm9pZCB7fVxuICBwb3BvdmVyKCkge1xuICAgIHRoaXMucG9wb3ZlckNvbnRhaW5lciA9IGZhbHNlO1xuICAgIHRoaXMucG9wb3ZlckNvbnRhaW5lciA9IHRydWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmdldFBvc2l0aW9uKCk7XG4gICAgICB0aGlzLnNob3dQb3BvdmVyID0gdHJ1ZTtcbiAgICAgIHRoaXMucG9wb3ZlclNlcnZpY2Uuc3RvcFNjcm9sbCA9IHRydWU7XG4gICAgICAvLyBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgfSwgMTApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBwb3BvdmVyRXZlbnQoKSB7XG4gICAgdGhpcy5wb3BvdmVyQ29udGFpbmVyID0gZmFsc2U7XG4gICAgdGhpcy5wb3BvdmVyQ29udGFpbmVyID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8vIHRoaXMuZ2V0UG9zaXRpb24oKTtcbiAgICAgIHRoaXMucG9zaXRpb25YID0gdGhpcy5wb3BvdmVyU2VydmljZS5wb3NpdGlvblg7XG4gICAgICB0aGlzLnBvc2l0aW9uWSA9IHRoaXMucG9wb3ZlclNlcnZpY2UucG9zaXRpb25ZO1xuICAgICAgdGhpcy5zaG93UG9wb3ZlciA9IHRydWU7XG4gICAgICB0aGlzLnBvcG92ZXJTZXJ2aWNlLnN0b3BTY3JvbGwgPSB0cnVlO1xuXG4gICAgfSwgMTApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjbG9zZVBvcG92ZXIodG9wPzogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLmRvbnRDbG9zZW9uQ2xpY2sgfHwgdG9wID09PSAndG9wJykge1xuICAgICAgdGhpcy5wb3BvdmVyQ29udGFpbmVyID0gZmFsc2U7XG4gICAgICB0aGlzLnNob3dQb3BvdmVyID0gZmFsc2U7XG4gICAgICB0aGlzLnBvcG92ZXJTZXJ2aWNlLnN0b3BTY3JvbGwgPSBmYWxzZTtcbiAgICAgIC8vIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnYXV0byc7XG4gICAgfVxuICB9XG5cbiAgY2xvc2UoKXtcbiAgICB0aGlzLnBvcG92ZXJDb250YWluZXIgPSBmYWxzZTtcbiAgICB0aGlzLnNob3dQb3BvdmVyID0gZmFsc2U7XG4gICAgdGhpcy5wb3BvdmVyU2VydmljZS5zdG9wU2Nyb2xsID0gZmFsc2U7XG4gIH1cblxuICBjbGlja2VkUG9wb3ZlcigpIHtcbiAgICB0aGlzLmdldFBvc2l0aW9uKCk7XG4gIH1cbiAgZ2V0UG9zaXRpb24oKSB7XG4gICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgY29uc3QgZWxlbWVudFBvc2l0aW9ubiA9IHRoaXMucG9wb3ZlclNlcnZpY2UuZWxlbWVudFBvc2l0aW9uO1xuICAgIHRoaXMucG9wb3ZlckhlaWdodCA9IHRoaXMucG9wb3ZlclJhdGlvLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgIHRoaXMucG9wb3ZlcldpZHRoID0gdGhpcy5wb3BvdmVyUmF0aW8ubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICBpZiAodGhpcy5wb3BvdmVyU2VydmljZS5lbGVtZW50RGlyZWN0aW9uID09PSAnbGVmdCcpIHtcbiAgICAgIHRoaXMubGVmdFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi5sZWZ0O1xuICAgICAgaWYgKGVsZW1lbnRQb3NpdGlvbm4udG9wICsgZWxlbWVudFBvc2l0aW9ubi5oZWlnaHQgKyB0aGlzLnBvcG92ZXJIZWlnaHQgPiB3aW5kb3cub3V0ZXJIZWlnaHQgLSAyMDApIHtcbiAgICAgICAgdGhpcy50b3BWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4udG9wIC0gdGhpcy5wb3BvdmVySGVpZ2h0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50b3BWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4udG9wICsgZWxlbWVudFBvc2l0aW9ubi5oZWlnaHQ7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLnBvcG92ZXJTZXJ2aWNlLmVsZW1lbnREaXJlY3Rpb24gPT09ICdyaWdodCcpIHtcbiAgICAgIHRoaXMubGVmdFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi5sZWZ0ICsgZWxlbWVudFBvc2l0aW9ubi53aWR0aCAtIHRoaXMucG9wb3ZlcldpZHRoO1xuICAgICAgaWYgKGVsZW1lbnRQb3NpdGlvbm4udG9wICsgZWxlbWVudFBvc2l0aW9ubi5oZWlnaHQgKyB0aGlzLnBvcG92ZXJIZWlnaHQgPiB3aW5kb3cub3V0ZXJIZWlnaHQgLSAyMDApIHtcbiAgICAgICAgdGhpcy50b3BWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4udG9wIC0gdGhpcy5wb3BvdmVySGVpZ2h0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50b3BWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4udG9wICsgZWxlbWVudFBvc2l0aW9ubi5oZWlnaHQ7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLnBvcG92ZXJTZXJ2aWNlLmVsZW1lbnREaXJlY3Rpb24gPT09ICd0b3AnKSB7XG4gICAgICB0aGlzLmxlZnRWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4ubGVmdCArIGVsZW1lbnRQb3NpdGlvbm4ud2lkdGg7XG4gICAgICBpZiAoZWxlbWVudFBvc2l0aW9ubi50b3AgKyBlbGVtZW50UG9zaXRpb25uLmhlaWdodCArIHRoaXMucG9wb3ZlckhlaWdodCA+IHdpbmRvdy5vdXRlckhlaWdodCAtIDIwMCkge1xuICAgICAgICB0aGlzLnRvcFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi50b3AgLSB0aGlzLnBvcG92ZXJIZWlnaHQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnRvcFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi50b3AgLSB0aGlzLnBvcG92ZXJIZWlnaHQ7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLnBvcG92ZXJTZXJ2aWNlLmVsZW1lbnREaXJlY3Rpb24gPT09ICdib3R0b20nKSB7XG4gICAgICB0aGlzLmxlZnRWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4ubGVmdCArIGVsZW1lbnRQb3NpdGlvbm4ud2lkdGg7XG4gICAgICBpZiAoZWxlbWVudFBvc2l0aW9ubi50b3AgKyBlbGVtZW50UG9zaXRpb25uLmhlaWdodCArIHRoaXMucG9wb3ZlckhlaWdodCA+IHdpbmRvdy5vdXRlckhlaWdodCAtIDIwMCkge1xuICAgICAgICB0aGlzLnRvcFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi50b3AgLSB0aGlzLnBvcG92ZXJIZWlnaHQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnRvcFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi50b3AgKyBlbGVtZW50UG9zaXRpb25uLmhlaWdodDtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMucG9wb3ZlclNlcnZpY2UuZWxlbWVudERpcmVjdGlvbiA9PT0gJ3NlbGYtcG9zaXRpb24nKSB7XG4gICAgICB0aGlzLmxlZnRWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4ubGVmdCArIGVsZW1lbnRQb3NpdGlvbm4ud2lkdGggLyAyIC0gdGhpcy5wb3BvdmVyV2lkdGggLyAyO1xuICAgICAgdGhpcy50b3BWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4udG9wIC0gMTU7XG4gICAgfVxuICAgIGlmICh0aGlzLnBvcG92ZXJTZXJ2aWNlLmVsZW1lbnREaXJlY3Rpb24gPT09ICd0b3AtY2VudGVyJykge1xuICAgICAgdGhpcy5sZWZ0VmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLmxlZnQgKyBlbGVtZW50UG9zaXRpb25uLndpZHRoIC8gMiAtIHRoaXMucG9wb3ZlcldpZHRoIC8gMjtcbiAgICAgIC8vIHRoaXMudG9wVmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLnRvcCAtIHRoaXMucG9wb3ZlckhlaWdodDtcbiAgICAgIGlmIChlbGVtZW50UG9zaXRpb25uLnRvcCArIGVsZW1lbnRQb3NpdGlvbm4uaGVpZ2h0ICsgdGhpcy5wb3BvdmVySGVpZ2h0ID4gd2luZG93Lm91dGVySGVpZ2h0KSB7XG4gICAgICAgIHRoaXMudG9wVmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLnRvcCArIGVsZW1lbnRQb3NpdGlvbm4uaGVpZ2h0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50b3BWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4udG9wIC0gdGhpcy5wb3BvdmVySGVpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5wb3BvdmVyU2VydmljZS5lbGVtZW50RGlyZWN0aW9uID09PSAnY2VudGVyJykge1xuICAgICAgdGhpcy5sZWZ0VmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLmxlZnQgKyBlbGVtZW50UG9zaXRpb25uLndpZHRoIC8gMiAtIHRoaXMucG9wb3ZlcldpZHRoIC8gMjtcbiAgICAgIHRoaXMudG9wVmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLnRvcCArIGVsZW1lbnRQb3NpdGlvbm4uaGVpZ2h0O1xuICAgIH1cbiAgICB0aGlzLnBvc2l0aW9uWCA9IHRoaXMubGVmdFZhbHVlO1xuICAgIHRoaXMucG9zaXRpb25ZID0gdGhpcy50b3BWYWx1ZTtcbiAgICAvLyB9LCAxMCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwb3BvdmVyLW92ZXJsYXlcIiAqbmdJZj1cInBvcG92ZXJDb250YWluZXJcIiAoY2xpY2spPVwiY2xvc2VQb3BvdmVyKCd0b3AnKTt0aGlzLmNsb3NlZE9uT3ZlcmxheS5lbWl0KCk7XCI+PC9kaXY+XG48ZGl2IGNsYXNzPVwiYWN0aW9uXCIgW2NsYXNzLmFjdGl2ZV09XCJzaG93UG9wb3ZlclwiICpuZ0lmPVwicG9wb3ZlckNvbnRhaW5lclwiIFtzdHlsZS50b3AucHhdPVwicG9zaXRpb25ZXCIgW3N0eWxlLmxlZnQucHhdPVwicG9zaXRpb25YXCIgI3BvcG92ZXJSYXRpbyBpZD1cInBvcG92ZXJSYXRpb1wiPlxuICA8ZGl2IChjbGljayk9XCJjbG9zZVBvcG92ZXIoKTsgY2xpY2tlZFBvcG92ZXIoKVwiICNwb3BvdmVyQ29udGVudD5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,93 +1,93 @@
|
|
|
1
|
-
import { Directive, HostListener, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "./popover.service";
|
|
4
|
-
export class PopoverDirective {
|
|
5
|
-
elRef;
|
|
6
|
-
popoverService;
|
|
7
|
-
dynamicComponent;
|
|
8
|
-
refrence;
|
|
9
|
-
placement;
|
|
10
|
-
leftValue;
|
|
11
|
-
topValue;
|
|
12
|
-
constructor(elRef, popoverService) {
|
|
13
|
-
this.elRef = elRef;
|
|
14
|
-
this.popoverService = popoverService;
|
|
15
|
-
}
|
|
16
|
-
click() {
|
|
17
|
-
this.popoverService.elementPosition = this.elRef.nativeElement.getBoundingClientRect();
|
|
18
|
-
this.popoverService.elementDirection = this.placement;
|
|
19
|
-
// this.getPosition();
|
|
20
|
-
}
|
|
21
|
-
getPosition() {
|
|
22
|
-
setTimeout(() => {
|
|
23
|
-
// this.popoverService.elementPosition = this.elRef.nativeElement.getBoundingClientRect();
|
|
24
|
-
const elementPositionn = this.elRef.nativeElement.getBoundingClientRect();
|
|
25
|
-
if (this.placement === 'left') {
|
|
26
|
-
this.leftValue = elementPositionn.left;
|
|
27
|
-
if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {
|
|
28
|
-
this.topValue = elementPositionn.top - this.popoverService.popoverHeight;
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
this.topValue = elementPositionn.top + elementPositionn.height;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
if (this.placement === 'right') {
|
|
35
|
-
this.leftValue = elementPositionn.left + elementPositionn.width - this.popoverService.popoverWidth;
|
|
36
|
-
if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {
|
|
37
|
-
this.topValue = elementPositionn.top - this.popoverService.popoverHeight;
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
this.topValue = elementPositionn.top + elementPositionn.height;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
if (this.placement === 'top') {
|
|
44
|
-
this.leftValue = elementPositionn.left + elementPositionn.width;
|
|
45
|
-
if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {
|
|
46
|
-
this.topValue = elementPositionn.top - this.popoverService.popoverHeight;
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
this.topValue = elementPositionn.top - this.popoverService.popoverHeight;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
if (this.placement === 'bottom') {
|
|
53
|
-
this.leftValue = elementPositionn.left + elementPositionn.width;
|
|
54
|
-
if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {
|
|
55
|
-
this.topValue = elementPositionn.top - this.popoverService.popoverHeight;
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
this.topValue = elementPositionn.top + elementPositionn.height;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
if (this.placement === 'self-position') {
|
|
62
|
-
this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverService.popoverWidth / 2;
|
|
63
|
-
this.topValue = elementPositionn.top - 15;
|
|
64
|
-
}
|
|
65
|
-
if (this.placement === 'top-center') {
|
|
66
|
-
this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverService.popoverWidth / 2;
|
|
67
|
-
this.topValue = elementPositionn.top - this.popoverService.popoverHeight;
|
|
68
|
-
}
|
|
69
|
-
if (this.placement === 'bottom-center') {
|
|
70
|
-
this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverService.popoverWidth / 2;
|
|
71
|
-
this.topValue = elementPositionn.top + this.popoverService.popoverHeight;
|
|
72
|
-
}
|
|
73
|
-
this.popoverService.positionX = this.leftValue;
|
|
74
|
-
this.popoverService.positionY = this.topValue;
|
|
75
|
-
}, 10);
|
|
76
|
-
}
|
|
77
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverDirective, deps: [{ token: i0.ElementRef }, { token: i1.PopoverService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
78
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: PopoverDirective, selector: "[appPopover]", inputs: { refrence: "refrence", placement: "placement" }, host: { listeners: { "click": "click()" } }, ngImport: i0 });
|
|
79
|
-
}
|
|
80
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverDirective, decorators: [{
|
|
81
|
-
type: Directive,
|
|
82
|
-
args: [{
|
|
83
|
-
selector: '[appPopover]',
|
|
84
|
-
}]
|
|
85
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.PopoverService }]; }, propDecorators: { refrence: [{
|
|
86
|
-
type: Input
|
|
87
|
-
}], placement: [{
|
|
88
|
-
type: Input
|
|
89
|
-
}], click: [{
|
|
90
|
-
type: HostListener,
|
|
91
|
-
args: ['click']
|
|
92
|
-
}] } });
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Directive, HostListener, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "./popover.service";
|
|
4
|
+
export class PopoverDirective {
|
|
5
|
+
elRef;
|
|
6
|
+
popoverService;
|
|
7
|
+
dynamicComponent;
|
|
8
|
+
refrence;
|
|
9
|
+
placement;
|
|
10
|
+
leftValue;
|
|
11
|
+
topValue;
|
|
12
|
+
constructor(elRef, popoverService) {
|
|
13
|
+
this.elRef = elRef;
|
|
14
|
+
this.popoverService = popoverService;
|
|
15
|
+
}
|
|
16
|
+
click() {
|
|
17
|
+
this.popoverService.elementPosition = this.elRef.nativeElement.getBoundingClientRect();
|
|
18
|
+
this.popoverService.elementDirection = this.placement;
|
|
19
|
+
// this.getPosition();
|
|
20
|
+
}
|
|
21
|
+
getPosition() {
|
|
22
|
+
setTimeout(() => {
|
|
23
|
+
// this.popoverService.elementPosition = this.elRef.nativeElement.getBoundingClientRect();
|
|
24
|
+
const elementPositionn = this.elRef.nativeElement.getBoundingClientRect();
|
|
25
|
+
if (this.placement === 'left') {
|
|
26
|
+
this.leftValue = elementPositionn.left;
|
|
27
|
+
if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {
|
|
28
|
+
this.topValue = elementPositionn.top - this.popoverService.popoverHeight;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
this.topValue = elementPositionn.top + elementPositionn.height;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
if (this.placement === 'right') {
|
|
35
|
+
this.leftValue = elementPositionn.left + elementPositionn.width - this.popoverService.popoverWidth;
|
|
36
|
+
if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {
|
|
37
|
+
this.topValue = elementPositionn.top - this.popoverService.popoverHeight;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
this.topValue = elementPositionn.top + elementPositionn.height;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (this.placement === 'top') {
|
|
44
|
+
this.leftValue = elementPositionn.left + elementPositionn.width;
|
|
45
|
+
if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {
|
|
46
|
+
this.topValue = elementPositionn.top - this.popoverService.popoverHeight;
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
this.topValue = elementPositionn.top - this.popoverService.popoverHeight;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (this.placement === 'bottom') {
|
|
53
|
+
this.leftValue = elementPositionn.left + elementPositionn.width;
|
|
54
|
+
if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {
|
|
55
|
+
this.topValue = elementPositionn.top - this.popoverService.popoverHeight;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
this.topValue = elementPositionn.top + elementPositionn.height;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (this.placement === 'self-position') {
|
|
62
|
+
this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverService.popoverWidth / 2;
|
|
63
|
+
this.topValue = elementPositionn.top - 15;
|
|
64
|
+
}
|
|
65
|
+
if (this.placement === 'top-center') {
|
|
66
|
+
this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverService.popoverWidth / 2;
|
|
67
|
+
this.topValue = elementPositionn.top - this.popoverService.popoverHeight;
|
|
68
|
+
}
|
|
69
|
+
if (this.placement === 'bottom-center') {
|
|
70
|
+
this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverService.popoverWidth / 2;
|
|
71
|
+
this.topValue = elementPositionn.top + this.popoverService.popoverHeight;
|
|
72
|
+
}
|
|
73
|
+
this.popoverService.positionX = this.leftValue;
|
|
74
|
+
this.popoverService.positionY = this.topValue;
|
|
75
|
+
}, 10);
|
|
76
|
+
}
|
|
77
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverDirective, deps: [{ token: i0.ElementRef }, { token: i1.PopoverService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
78
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: PopoverDirective, selector: "[appPopover]", inputs: { refrence: "refrence", placement: "placement" }, host: { listeners: { "click": "click()" } }, ngImport: i0 });
|
|
79
|
+
}
|
|
80
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverDirective, decorators: [{
|
|
81
|
+
type: Directive,
|
|
82
|
+
args: [{
|
|
83
|
+
selector: '[appPopover]',
|
|
84
|
+
}]
|
|
85
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.PopoverService }]; }, propDecorators: { refrence: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], placement: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], click: [{
|
|
90
|
+
type: HostListener,
|
|
91
|
+
args: ['click']
|
|
92
|
+
}] } });
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L3BvcG92ZXIvcG9wb3Zlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFNM0UsTUFBTSxPQUFPLGdCQUFnQjtJQU1QO0lBQTJCO0lBTC9DLGdCQUFnQixDQUFNO0lBQ2IsUUFBUSxDQUFNO0lBQ2QsU0FBUyxDQUFVO0lBQzVCLFNBQVMsQ0FBTTtJQUNmLFFBQVEsQ0FBTTtJQUNkLFlBQW9CLEtBQWlCLEVBQVUsY0FBOEI7UUFBekQsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUFHLENBQUM7SUFDMUQsS0FBSztRQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3ZGLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN0RCxzQkFBc0I7SUFDeEIsQ0FBQztJQUVELFdBQVc7UUFDVCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsMEZBQTBGO1lBQzFGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUMxRSxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssTUFBTSxFQUFFO2dCQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQztnQkFDdkMsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxj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LENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7Z0JBQzNHLElBQUksQ0FBQyxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDO2FBQzFFO1lBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLGVBQWUsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7Z0JBQzNHLElBQUksQ0FBQyxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDO2FBQzFFO1lBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUMvQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ2hELENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNULENBQUM7d0dBaEVVLGdCQUFnQjs0RkFBaEIsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUg1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO2lCQUN6Qjs4SEFHVSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBSWlCLEtBQUs7c0JBQTNCLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUG9wb3ZlclNlcnZpY2UgfSBmcm9tICcuL3BvcG92ZXIuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thcHBQb3BvdmVyXScsXG59KVxuZXhwb3J0IGNsYXNzIFBvcG92ZXJEaXJlY3RpdmUge1xuICBkeW5hbWljQ29tcG9uZW50OiBhbnk7XG4gIEBJbnB1dCgpIHJlZnJlbmNlOiBhbnk7XG4gIEBJbnB1dCgpIHBsYWNlbWVudCE6IHN0cmluZztcbiAgbGVmdFZhbHVlOiBhbnk7XG4gIHRvcFZhbHVlOiBhbnk7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgcG9wb3ZlclNlcnZpY2U6IFBvcG92ZXJTZXJ2aWNlKSB7fVxuICBASG9zdExpc3RlbmVyKCdjbGljaycpIGNsaWNrKCkge1xuICAgIHRoaXMucG9wb3ZlclNlcnZpY2UuZWxlbWVudFBvc2l0aW9uID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHRoaXMucG9wb3ZlclNlcnZpY2UuZWxlbWVudERpcmVjdGlvbiA9IHRoaXMucGxhY2VtZW50O1xuICAgIC8vIHRoaXMuZ2V0UG9zaXRpb24oKTtcbiAgfVxuXG4gIGdldFBvc2l0aW9uKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLy8gdGhpcy5wb3BvdmVyU2VydmljZS5lbGVtZW50UG9zaXRpb24gPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBlbGVtZW50UG9zaXRpb25uID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgaWYgKHRoaXMucGxhY2VtZW50ID09PSAnbGVmdCcpIHtcbiAgICAgICAgdGhpcy5sZWZ0VmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLmxlZnQ7XG4gICAgICAgIGlmIChlbGVtZW50UG9zaXRpb25uLnRvcCArIGVsZW1lbnRQb3NpdGlvbm4uaGVpZ2h0ICsgdGhpcy5wb3BvdmVyU2VydmljZS5wb3BvdmVySGVpZ2h0ID4gd2luZG93Lm91dGVySGVpZ2h0IC0gMjAwKSB7XG4gICAgICAgICAgdGhpcy50b3BWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4udG9wIC0gdGhpcy5wb3BvdmVyU2VydmljZS5wb3BvdmVySGVpZ2h0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudG9wVmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLnRvcCArIGVsZW1lbnRQb3NpdGlvbm4uaGVpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5wbGFjZW1lbnQgPT09ICdyaWdodCcpIHtcbiAgICAgICAgdGhpcy5sZWZ0VmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLmxlZnQgKyBlbGVtZW50UG9zaXRpb25uLndpZHRoIC0gdGhpcy5wb3BvdmVyU2VydmljZS5wb3BvdmVyV2lkdGg7XG4gICAgICAgIGlmIChlbGVtZW50UG9zaXRpb25uLnRvcCArIGVsZW1lbnRQb3NpdGlvbm4uaGVpZ2h0ICsgdGhpcy5wb3BvdmVyU2VydmljZS5wb3BvdmVySGVpZ2h0ID4gd2luZG93Lm91dGVySGVpZ2h0IC0gMjAwKSB7XG4gICAgICAgICAgdGhpcy50b3BWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4udG9wIC0gdGhpcy5wb3BvdmVyU2VydmljZS5wb3BvdmVySGVpZ2h0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudG9wVmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLnRvcCArIGVsZW1lbnRQb3NpdGlvbm4uaGVpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5wbGFjZW1lbnQgPT09ICd0b3AnKSB7XG4gICAgICAgIHRoaXMubGVmdFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi5sZWZ0ICsgZWxlbWVudFBvc2l0aW9ubi53aWR0aDtcbiAgICAgICAgaWYgKGVsZW1lbnRQb3NpdGlvbm4udG9wICsgZWxlbWVudFBvc2l0aW9ubi5oZWlnaHQgKyB0aGlzLnBvcG92ZXJTZXJ2aWNlLnBvcG92ZXJIZWlnaHQgPiB3aW5kb3cub3V0ZXJIZWlnaHQgLSAyMDApIHtcbiAgICAgICAgICB0aGlzLnRvcFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi50b3AgLSB0aGlzLnBvcG92ZXJTZXJ2aWNlLnBvcG92ZXJIZWlnaHQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy50b3BWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4udG9wIC0gdGhpcy5wb3BvdmVyU2VydmljZS5wb3BvdmVySGVpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5wbGFjZW1lbnQgPT09ICdib3R0b20nKSB7XG4gICAgICAgIHRoaXMubGVmdFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi5sZWZ0ICsgZWxlbWVudFBvc2l0aW9ubi53aWR0aDtcbiAgICAgICAgaWYgKGVsZW1lbnRQb3NpdGlvbm4udG9wICsgZWxlbWVudFBvc2l0aW9ubi5oZWlnaHQgKyB0aGlzLnBvcG92ZXJTZXJ2aWNlLnBvcG92ZXJIZWlnaHQgPiB3aW5kb3cub3V0ZXJIZWlnaHQgLSAyMDApIHtcbiAgICAgICAgICB0aGlzLnRvcFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi50b3AgLSB0aGlzLnBvcG92ZXJTZXJ2aWNlLnBvcG92ZXJIZWlnaHQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy50b3BWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4udG9wICsgZWxlbWVudFBvc2l0aW9ubi5oZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnBsYWNlbWVudCA9PT0gJ3NlbGYtcG9zaXRpb24nKSB7XG4gICAgICAgIHRoaXMubGVmdFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi5sZWZ0ICsgZWxlbWVudFBvc2l0aW9ubi53aWR0aCAvIDIgLSB0aGlzLnBvcG92ZXJTZXJ2aWNlLnBvcG92ZXJXaWR0aCAvIDI7XG4gICAgICAgIHRoaXMudG9wVmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLnRvcCAtIDE1O1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucGxhY2VtZW50ID09PSAndG9wLWNlbnRlcicpIHtcbiAgICAgICAgdGhpcy5sZWZ0VmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLmxlZnQgKyBlbGVtZW50UG9zaXRpb25uLndpZHRoIC8gMiAtIHRoaXMucG9wb3ZlclNlcnZpY2UucG9wb3ZlcldpZHRoIC8gMjtcbiAgICAgICAgdGhpcy50b3BWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4udG9wIC0gdGhpcy5wb3BvdmVyU2VydmljZS5wb3BvdmVySGVpZ2h0O1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucGxhY2VtZW50ID09PSAnYm90dG9tLWNlbnRlcicpIHtcbiAgICAgICAgdGhpcy5sZWZ0VmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLmxlZnQgKyBlbGVtZW50UG9zaXRpb25uLndpZHRoIC8gMiAtIHRoaXMucG9wb3ZlclNlcnZpY2UucG9wb3ZlcldpZHRoIC8gMjtcbiAgICAgICAgdGhpcy50b3BWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4udG9wICsgdGhpcy5wb3BvdmVyU2VydmljZS5wb3BvdmVySGVpZ2h0O1xuICAgICAgfVxuICAgICAgdGhpcy5wb3BvdmVyU2VydmljZS5wb3NpdGlvblggPSB0aGlzLmxlZnRWYWx1ZTtcbiAgICAgIHRoaXMucG9wb3ZlclNlcnZpY2UucG9zaXRpb25ZID0gdGhpcy50b3BWYWx1ZTtcbiAgICB9LCAxMCk7XG4gIH1cbn1cbiJdfQ==
|