@datarailsshared/datarailsshared 1.3.30 → 1.3.31
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/_datarailsshared.styles.css +3 -3
- package/assets/styles/_styles.scss +2 -2
- package/assets/styles/img/default-avatar.svg +5 -5
- package/bundles/datarailsshared-datarailsshared.umd.js +3374 -3346
- package/bundles/datarailsshared-datarailsshared.umd.js.map +1 -1
- package/datarailsshared-datarailsshared-1.3.31.tgz +0 -0
- package/datarailsshared-datarailsshared.d.ts +7 -7
- package/datarailsshared-datarailsshared.metadata.json +1 -1
- package/esm2015/datarailsshared-datarailsshared.js +7 -7
- package/esm2015/lib/date-tags/date-tag.component.js +70 -70
- package/esm2015/lib/date-tags/date-tag.module.js +50 -50
- package/esm2015/lib/date-tags/day-tag/day-tag.component.js +81 -81
- package/esm2015/lib/date-tags/forecast-tag/forecast-tag.component.js +143 -143
- package/esm2015/lib/date-tags/month-tag/month-tag.component.js +87 -87
- package/esm2015/lib/date-tags/quarter-tag/quarter-tag.component.js +101 -101
- package/esm2015/lib/date-tags/week-tag/week-tag.component.js +124 -124
- package/esm2015/lib/date-tags/year-tag/year-tag.component.js +93 -93
- package/esm2015/lib/dr-avatar/dr-avatar.component.js +42 -42
- package/esm2015/lib/dr-avatar/dr-avatar.module.js +26 -26
- package/esm2015/lib/dr-avatar/dr-avatar.pipe.js +15 -15
- package/esm2015/lib/dr-dropdown/dr-dropdown-item-show.pipe.js +12 -12
- package/esm2015/lib/dr-dropdown/dr-dropdown-position.directive.js +89 -89
- package/esm2015/lib/dr-dropdown/dr-dropdown.component.js +103 -103
- package/esm2015/lib/dr-dropdown/dr-dropdown.directive.js +75 -75
- package/esm2015/lib/dr-dropdown/dr-dropdown.module.js +34 -34
- package/esm2015/lib/dr-dropdown/dr-dropdown.service.js +24 -24
- package/esm2015/lib/dr-inputs/button/button.component.js +79 -79
- package/esm2015/lib/dr-inputs/checkbox/checkbox.component.js +63 -63
- package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker-format.directive.js +47 -47
- package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker.component.js +131 -131
- package/esm2015/lib/dr-inputs/dr-input/dr-input.component.js +181 -166
- package/esm2015/lib/dr-inputs/dr-inputs.module.js +43 -43
- package/esm2015/lib/dr-inputs/dr-select/dr-select.component.js +87 -87
- package/esm2015/lib/dr-inputs/dr-toggle/dr-toggle.component.js +64 -64
- package/esm2015/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.js +52 -52
- package/esm2015/lib/dr-inputs/radio-button/radio-button.component.js +64 -64
- package/esm2015/lib/dr-inputs/radio-button/radio-group.component.js +164 -164
- package/esm2015/lib/dr-popover/dr-popover-ref.js +20 -20
- package/esm2015/lib/dr-popover/dr-popover.component.js +77 -77
- package/esm2015/lib/dr-popover/dr-popover.directive.js +72 -72
- package/esm2015/lib/dr-popover/dr-popover.module.js +23 -23
- package/esm2015/lib/dr-popover/dr-popover.service.js +102 -102
- package/esm2015/lib/dr-spinner/dr-spinner.component.js +29 -29
- package/esm2015/lib/dr-spinner/dr-spinner.directive.js +53 -53
- package/esm2015/lib/dr-spinner/dr-spinner.module.js +18 -18
- package/esm2015/lib/dr-tabs/dr-tab.component.js +23 -23
- package/esm2015/lib/dr-tabs/dr-tabs.component.js +28 -27
- package/esm2015/lib/dr-tabs/dr-tabs.module.js +30 -30
- package/esm2015/lib/dr-tags/dr-tag.component.js +54 -54
- package/esm2015/lib/dr-tags/dr-tag.module.js +22 -22
- package/esm2015/lib/dr-tooltip/dr-tooltip.component.js +30 -30
- package/esm2015/lib/dr-tooltip/dr-tooltip.directive.js +102 -102
- package/esm2015/lib/dr-tooltip/dr-tooltip.module.js +23 -23
- package/esm2015/lib/list-tags/list-tag.component.js +41 -41
- package/esm2015/lib/list-tags/list-tag.module.js +29 -29
- package/esm2015/lib/models/constants.js +97 -97
- package/esm2015/lib/models/datePicker.js +37 -37
- package/esm2015/lib/models/dropdown.js +2 -2
- package/esm2015/lib/models/popover.js +27 -27
- package/esm2015/lib/models/serverTags.js +2 -2
- package/esm2015/public-api.js +50 -50
- package/fesm2015/datarailsshared-datarailsshared.js +2794 -2778
- package/fesm2015/datarailsshared-datarailsshared.js.map +1 -1
- package/lib/date-tags/date-tag.component.d.ts +27 -27
- package/lib/date-tags/date-tag.module.d.ts +4 -4
- package/lib/date-tags/day-tag/day-tag.component.d.ts +12 -12
- package/lib/date-tags/forecast-tag/forecast-tag.component.d.ts +21 -21
- package/lib/date-tags/month-tag/month-tag.component.d.ts +14 -14
- package/lib/date-tags/quarter-tag/quarter-tag.component.d.ts +17 -17
- package/lib/date-tags/week-tag/week-tag.component.d.ts +19 -19
- package/lib/date-tags/year-tag/year-tag.component.d.ts +14 -14
- package/lib/dr-avatar/dr-avatar.component.d.ts +10 -10
- package/lib/dr-avatar/dr-avatar.module.d.ts +2 -2
- package/lib/dr-avatar/dr-avatar.pipe.d.ts +4 -4
- package/lib/dr-dropdown/dr-dropdown-item-show.pipe.d.ts +5 -5
- package/lib/dr-dropdown/dr-dropdown-position.directive.d.ts +11 -11
- package/lib/dr-dropdown/dr-dropdown.component.d.ts +23 -23
- package/lib/dr-dropdown/dr-dropdown.directive.d.ts +19 -19
- package/lib/dr-dropdown/dr-dropdown.module.d.ts +2 -2
- package/lib/dr-dropdown/dr-dropdown.service.d.ts +11 -11
- package/lib/dr-inputs/button/button.component.d.ts +20 -20
- package/lib/dr-inputs/checkbox/checkbox.component.d.ts +20 -20
- package/lib/dr-inputs/dr-date-picker/dr-date-picker-format.directive.d.ts +10 -10
- package/lib/dr-inputs/dr-date-picker/dr-date-picker.component.d.ts +28 -28
- package/lib/dr-inputs/dr-input/dr-input.component.d.ts +55 -53
- package/lib/dr-inputs/dr-inputs.module.d.ts +2 -2
- package/lib/dr-inputs/dr-select/dr-select.component.d.ts +36 -36
- package/lib/dr-inputs/dr-toggle/dr-toggle.component.d.ts +23 -23
- package/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.d.ts +17 -17
- package/lib/dr-inputs/radio-button/radio-button.component.d.ts +21 -21
- package/lib/dr-inputs/radio-button/radio-group.component.d.ts +39 -39
- package/lib/dr-popover/dr-popover-ref.d.ts +16 -16
- package/lib/dr-popover/dr-popover.component.d.ts +26 -26
- package/lib/dr-popover/dr-popover.directive.d.ts +26 -26
- package/lib/dr-popover/dr-popover.module.d.ts +2 -2
- package/lib/dr-popover/dr-popover.service.d.ts +17 -17
- package/lib/dr-spinner/dr-spinner.component.d.ts +10 -10
- package/lib/dr-spinner/dr-spinner.directive.d.ts +15 -15
- package/lib/dr-spinner/dr-spinner.module.d.ts +2 -2
- package/lib/dr-tabs/dr-tab.component.d.ts +8 -8
- package/lib/dr-tabs/dr-tabs.component.d.ts +11 -10
- package/lib/dr-tabs/dr-tabs.module.d.ts +2 -2
- package/lib/dr-tags/dr-tag.component.d.ts +15 -15
- package/lib/dr-tags/dr-tag.module.d.ts +2 -2
- package/lib/dr-tooltip/dr-tooltip.component.d.ts +16 -16
- package/lib/dr-tooltip/dr-tooltip.directive.d.ts +23 -23
- package/lib/dr-tooltip/dr-tooltip.module.d.ts +2 -2
- package/lib/list-tags/list-tag.component.d.ts +14 -14
- package/lib/list-tags/list-tag.module.d.ts +2 -2
- package/lib/models/constants.d.ts +87 -87
- package/lib/models/datePicker.d.ts +21 -21
- package/lib/models/dropdown.d.ts +47 -47
- package/lib/models/popover.d.ts +32 -32
- package/lib/models/serverTags.d.ts +28 -28
- package/package.json +1 -1
- package/public-api.d.ts +49 -49
- package/datarailsshared-datarailsshared-1.3.30.tgz +0 -0
|
@@ -1,89 +1,89 @@
|
|
|
1
|
-
import { Directive, ElementRef, Input, Renderer2 } from '@angular/core';
|
|
2
|
-
export class DrDropdownPositionDirective {
|
|
3
|
-
constructor(el, renderer) {
|
|
4
|
-
this.el = el;
|
|
5
|
-
this.renderer = renderer;
|
|
6
|
-
this.position = 'left';
|
|
7
|
-
}
|
|
8
|
-
ngOnInit() {
|
|
9
|
-
setTimeout(this.calculatePosition.bind(this), 1);
|
|
10
|
-
}
|
|
11
|
-
calculatePosition() {
|
|
12
|
-
let xDifference = 0;
|
|
13
|
-
let defaultDelta = 10;
|
|
14
|
-
let defaultPadding = 0;
|
|
15
|
-
if (this.position === 'child') {
|
|
16
|
-
defaultDelta = 0;
|
|
17
|
-
defaultPadding = 10;
|
|
18
|
-
xDifference = this.el.nativeElement.parentElement.parentElement.offsetWidth - this.el.nativeElement.offsetWidth;
|
|
19
|
-
const parentRect = this.el.nativeElement.parentElement.parentElement.getBoundingClientRect();
|
|
20
|
-
this.position = {
|
|
21
|
-
x: this.el.nativeElement.offsetWidth,
|
|
22
|
-
y: this.el.nativeElement.parentElement.parentElement.offsetTop - 9,
|
|
23
|
-
clientX: parentRect.x + this.el.nativeElement.parentElement.parentElement.offsetWidth,
|
|
24
|
-
clientY: parentRect.y
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
if (typeof this.position === 'string') {
|
|
28
|
-
this.renderer.setStyle(this.el.nativeElement, 'top', this.position === 'bottom' ?
|
|
29
|
-
this.drDropdownPosition.y - this.drDropdownPosition.height + 'px' :
|
|
30
|
-
this.drDropdownPosition.y + 'px');
|
|
31
|
-
this.renderer.setStyle(this.el.nativeElement, 'left', this.position === 'right' ?
|
|
32
|
-
this.drDropdownPosition.x + this.drDropdownPosition.width + 'px' :
|
|
33
|
-
this.drDropdownPosition.x + 'px');
|
|
34
|
-
const menuHeight = this.el.nativeElement.offsetHeight;
|
|
35
|
-
const heightMoreWindowBottom = menuHeight + this.drDropdownPosition.y > window.innerHeight;
|
|
36
|
-
const heightMoreWindowTop = menuHeight - this.drDropdownPosition.y + this.drDropdownPosition.height / 2 > 48; // header height;
|
|
37
|
-
const widthMoreWindowRight = this.drDropdownPosition.x + 250 > window.innerWidth;
|
|
38
|
-
if (heightMoreWindowBottom) {
|
|
39
|
-
this.position = 'top';
|
|
40
|
-
}
|
|
41
|
-
if (heightMoreWindowBottom && widthMoreWindowRight && !heightMoreWindowTop || this.position === 'top-left') {
|
|
42
|
-
this.position = 'top-left';
|
|
43
|
-
this.renderer.setStyle(this.el.nativeElement, 'transform', 'translate(-100%, calc(-100% + ' + this.drDropdownPosition.height + 'px))');
|
|
44
|
-
}
|
|
45
|
-
if (heightMoreWindowTop && heightMoreWindowBottom) {
|
|
46
|
-
this.position = 'left-center';
|
|
47
|
-
}
|
|
48
|
-
if (this.position === 'bottom-left') {
|
|
49
|
-
this.renderer.setStyle(this.el.nativeElement, 'transform', `translate(calc(-100% + ${this.drDropdownPosition.width}px), ${this.drDropdownPosition.height + 8}px)`);
|
|
50
|
-
}
|
|
51
|
-
const className = this.position === 'top' ? 'content-top'
|
|
52
|
-
: this.position === 'top-left' ? 'content-top-left'
|
|
53
|
-
: this.position === 'bottom' ? 'content-bottom'
|
|
54
|
-
: this.position === 'bottom-left' ? 'content-bottom-left'
|
|
55
|
-
: this.position === 'left' ? 'content-left'
|
|
56
|
-
: this.position === 'left-center' ? 'content-left-center'
|
|
57
|
-
: this.position === 'right' ? 'content-right'
|
|
58
|
-
: this.position === 'bottom-right' ? 'content-bottom-right' : '';
|
|
59
|
-
this.renderer.addClass(this.el.nativeElement, className);
|
|
60
|
-
this.renderer.setStyle(this.el.nativeElement, 'z-index', '10010');
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
const defaultChildPadding = 3;
|
|
64
|
-
const widthMoreWindowRight = window.innerWidth - this.position.clientX - this.el.nativeElement.offsetWidth - defaultPadding;
|
|
65
|
-
const widthMoreWindowBottom = window.innerHeight - this.position.clientY - this.el.nativeElement.offsetHeight - defaultPadding;
|
|
66
|
-
const calculatedHorizantallyPos = widthMoreWindowRight < 0
|
|
67
|
-
? -this.position.x + -defaultChildPadding
|
|
68
|
-
: this.position.x + defaultChildPadding + xDifference;
|
|
69
|
-
const deltaHeight = widthMoreWindowBottom < 0 ? widthMoreWindowBottom : defaultDelta;
|
|
70
|
-
this.renderer.setStyle(this.el.nativeElement, 'top', (this.position.y + deltaHeight) + 'px');
|
|
71
|
-
this.renderer.setStyle(this.el.nativeElement, 'left', (calculatedHorizantallyPos) + 'px');
|
|
72
|
-
this.renderer.setStyle(this.el.nativeElement, 'z-index', '10010');
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
DrDropdownPositionDirective.decorators = [
|
|
77
|
-
{ type: Directive, args: [{
|
|
78
|
-
selector: '[drDropdownPosition]'
|
|
79
|
-
},] }
|
|
80
|
-
];
|
|
81
|
-
DrDropdownPositionDirective.ctorParameters = () => [
|
|
82
|
-
{ type: ElementRef },
|
|
83
|
-
{ type: Renderer2 }
|
|
84
|
-
];
|
|
85
|
-
DrDropdownPositionDirective.propDecorators = {
|
|
86
|
-
drDropdownPosition: [{ type: Input }],
|
|
87
|
-
position: [{ type: Input }]
|
|
88
|
-
};
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZHJvcGRvd24tcG9zaXRpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZHJvcGRvd24vZHItZHJvcGRvd24tcG9zaXRpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNaEYsTUFBTSxPQUFPLDJCQUEyQjtJQUtwQyxZQUFvQixFQUFjLEVBQVUsUUFBbUI7UUFBM0MsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFGdEQsYUFBUSxHQUFxQyxNQUFNLENBQUM7SUFHN0QsQ0FBQztJQUVELFFBQVE7UUFDSixVQUFVLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUM7UUFFdkIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLE9BQU8sRUFBRTtZQUMzQixZQUFZLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLGNBQWMsR0FBRyxFQUFFLENBQUM7WUFDcEIsV0FBVyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztZQUNoSCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLHFCQUFx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SW5wdXQsIE9uSW5pdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJRHJvcGRvd25Db29yZGluYXRlLCBFbFBvc2l0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2Ryb3Bkb3duJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZHJEcm9wZG93blBvc2l0aW9uXSdcbn0pXG5leHBvcnQgY2xhc3MgRHJEcm9wZG93blBvc2l0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIEBJbnB1dCgpIGRyRHJvcGRvd25Qb3NpdGlvbjtcbiAgICBASW5wdXQoKSBwb3NpdGlvbjogRWxQb3NpdGlvbiB8IElEcm9wZG93bkNvb3JkaW5hdGUgPSAnbGVmdCc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCh0aGlzLmNhbGN1bGF0ZVBvc2l0aW9uLmJpbmQodGhpcyksIDEpO1xuICAgIH1cblxuICAgIGNhbGN1bGF0ZVBvc2l0aW9uKCkge1xuICAgICAgICBsZXQgeERpZmZlcmVuY2UgPSAwO1xuICAgICAgICBsZXQgZGVmYXVsdERlbHRhID0gMTA7XG4gICAgICAgIGxldCBkZWZhdWx0UGFkZGluZyA9IDA7XG5cbiAgICAgICAgaWYgKHRoaXMucG9zaXRpb24gPT09ICdjaGlsZCcpIHtcbiAgICAgICAgICAgIGRlZmF1bHREZWx0YSA9IDA7XG4gICAgICAgICAgICBkZWZhdWx0UGFkZGluZyA9IDEwO1xuICAgICAgICAgICAgeERpZmZlcmVuY2UgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50Lm9mZnNldFdpZHRoIC0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICAgICAgY29uc3QgcGFyZW50UmVjdCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSB7XG4gICAgICAgICAgICAgICAgeDogdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoLFxuICAgICAgICAgICAgICAgIHk6IHRoaXMuZWwubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQub2Zmc2V0VG9wIC0gOSxcbiAgICAgICAgICAgICAgICBjbGllbnRYOiBwYXJlbnRSZWN0LnggKyB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50Lm9mZnNldFdpZHRoLFxuICAgICAgICAgICAgICAgIGNsaWVudFk6IHBhcmVudFJlY3QueVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wb3NpdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAndG9wJyxcbiAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9PT0gJ2JvdHRvbScgP1xuICAgICAgICAgICAgICAgIHRoaXMuZHJEcm9wZG93blBvc2l0aW9uLnkgLSB0aGlzLmRyRHJvcGRvd25Qb3NpdGlvbi5oZWlnaHQgKyAncHgnIDpcbiAgICAgICAgICAgICAgICB0aGlzLmRyRHJvcGRvd25Qb3NpdGlvbi55ICsgJ3B4Jyk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2xlZnQnLFxuICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID09PSAncmlnaHQnID9cbiAgICAgICAgICAgICAgICB0aGlzLmRyRHJvcGRvd25Qb3NpdGlvbi54ICsgdGhpcy5kckRyb3Bkb3duUG9zaXRpb24ud2lkdGggKyAncHgnIDpcbiAgICAgICAgICAgICAgICB0aGlzLmRyRHJvcGRvd25Qb3NpdGlvbi54ICsgJ3B4Jyk7XG4gICAgICAgICAgICBjb25zdCBtZW51SGVpZ2h0ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgICAgICAgICAgIGNvbnN0IGhlaWdodE1vcmVXaW5kb3dCb3R0b20gPSBtZW51SGVpZ2h0ICsgdGhpcy5kckRyb3Bkb3duUG9zaXRpb24ueSA+IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICAgICAgICAgIGNvbnN0IGhlaWdodE1vcmVXaW5kb3dUb3AgPSBtZW51SGVpZ2h0IC0gdGhpcy5kckRyb3Bkb3duUG9zaXRpb24ueSArIHRoaXMuZHJEcm9wZG93blBvc2l0aW9uLmhlaWdodCAvIDIgPiA0ODsgLy8gaGVhZGVyIGhlaWdodDtcbiAgICAgICAgICAgIGNvbnN0IHdpZHRoTW9yZVdpbmRvd1JpZ2h0ID0gdGhpcy5kckRyb3Bkb3duUG9zaXRpb24ueCArIDI1MCA+IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgICAgICAgaWYgKGhlaWdodE1vcmVXaW5kb3dCb3R0b20pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gJ3RvcCc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaGVpZ2h0TW9yZVdpbmRvd0JvdHRvbSAmJiB3aWR0aE1vcmVXaW5kb3dSaWdodCAmJiAhaGVpZ2h0TW9yZVdpbmRvd1RvcCB8fCB0aGlzLnBvc2l0aW9uID09PSAndG9wLWxlZnQnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9ICd0b3AtbGVmdCc7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICd0cmFuc2Zvcm0nLFxuICAgICAgICAgICAgICAgICAgJ3RyYW5zbGF0ZSgtMTAwJSwgY2FsYygtMTAwJSArICcgKyB0aGlzLmRyRHJvcGRvd25Qb3NpdGlvbi5oZWlnaHQgKyAncHgpKScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGhlaWdodE1vcmVXaW5kb3dUb3AgJiYgaGVpZ2h0TW9yZVdpbmRvd0JvdHRvbSkge1xuICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSAnbGVmdC1jZW50ZXInO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMucG9zaXRpb24gPT09ICdib3R0b20tbGVmdCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3RyYW5zZm9ybScsIGB0cmFuc2xhdGUoY2FsYygtMTAwJSArICR7IHRoaXMuZHJEcm9wZG93blBvc2l0aW9uLndpZHRoIH1weCksICR7IHRoaXMuZHJEcm9wZG93blBvc2l0aW9uLmhlaWdodCArIDggfXB4KWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY2xhc3NOYW1lID0gdGhpcy5wb3NpdGlvbiA9PT0gJ3RvcCcgPyAnY29udGVudC10b3AnXG4gICAgICAgICAgICAgIDogdGhpcy5wb3NpdGlvbiA9PT0gJ3RvcC1sZWZ0JyA/ICdjb250ZW50LXRvcC1sZWZ0J1xuICAgICAgICAgICAgICAgIDogdGhpcy5wb3NpdGlvbiA9PT0gJ2JvdHRvbScgPyAnY29udGVudC1ib3R0b20nXG4gICAgICAgICAgICAgICAgICA6IHRoaXMucG9zaXRpb24gPT09ICdib3R0b20tbGVmdCcgPyAnY29udGVudC1ib3R0b20tbGVmdCdcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnBvc2l0aW9uID09PSAnbGVmdCcgPyAnY29udGVudC1sZWZ0J1xuICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5wb3NpdGlvbiA9PT0gJ2xlZnQtY2VudGVyJyA/ICdjb250ZW50LWxlZnQtY2VudGVyJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnBvc2l0aW9uID09PSAncmlnaHQnID8gJ2NvbnRlbnQtcmlnaHQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5wb3NpdGlvbiA9PT0gJ2JvdHRvbS1yaWdodCcgPyAnY29udGVudC1ib3R0b20tcmlnaHQnIDogJyc7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgY2xhc3NOYW1lKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnei1pbmRleCcsICcxMDAxMCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZGVmYXVsdENoaWxkUGFkZGluZyA9IDM7XG4gICAgICAgICAgICBjb25zdCB3aWR0aE1vcmVXaW5kb3dSaWdodCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gdGhpcy5wb3NpdGlvbi5jbGllbnRYIC0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIC0gZGVmYXVsdFBhZGRpbmc7XG4gICAgICAgICAgICBjb25zdCB3aWR0aE1vcmVXaW5kb3dCb3R0b20gPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSB0aGlzLnBvc2l0aW9uLmNsaWVudFkgLSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IC0gZGVmYXVsdFBhZGRpbmc7XG5cbiAgICAgICAgICAgIGNvbnN0IGNhbGN1bGF0ZWRIb3JpemFudGFsbHlQb3MgPSB3aWR0aE1vcmVXaW5kb3dSaWdodCA8IDBcbiAgICAgICAgICAgICAgPyAtdGhpcy5wb3NpdGlvbi54ICsgLWRlZmF1bHRDaGlsZFBhZGRpbmdcbiAgICAgICAgICAgICAgOiB0aGlzLnBvc2l0aW9uLnggKyBkZWZhdWx0Q2hpbGRQYWRkaW5nICsgeERpZmZlcmVuY2U7XG5cbiAgICAgICAgICAgIGNvbnN0IGRlbHRhSGVpZ2h0ID0gd2lkdGhNb3JlV2luZG93Qm90dG9tIDwgMCA/IHdpZHRoTW9yZVdpbmRvd0JvdHRvbSA6IGRlZmF1bHREZWx0YTtcblxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICd0b3AnLCAodGhpcy5wb3NpdGlvbi55ICsgZGVsdGFIZWlnaHQpICsgJ3B4Jyk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2xlZnQnLCAoY2FsY3VsYXRlZEhvcml6YW50YWxseVBvcykgKyAncHgnKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnei1pbmRleCcsICcxMDAxMCcpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
1
|
+
import { Directive, ElementRef, Input, Renderer2 } from '@angular/core';
|
|
2
|
+
export class DrDropdownPositionDirective {
|
|
3
|
+
constructor(el, renderer) {
|
|
4
|
+
this.el = el;
|
|
5
|
+
this.renderer = renderer;
|
|
6
|
+
this.position = 'left';
|
|
7
|
+
}
|
|
8
|
+
ngOnInit() {
|
|
9
|
+
setTimeout(this.calculatePosition.bind(this), 1);
|
|
10
|
+
}
|
|
11
|
+
calculatePosition() {
|
|
12
|
+
let xDifference = 0;
|
|
13
|
+
let defaultDelta = 10;
|
|
14
|
+
let defaultPadding = 0;
|
|
15
|
+
if (this.position === 'child') {
|
|
16
|
+
defaultDelta = 0;
|
|
17
|
+
defaultPadding = 10;
|
|
18
|
+
xDifference = this.el.nativeElement.parentElement.parentElement.offsetWidth - this.el.nativeElement.offsetWidth;
|
|
19
|
+
const parentRect = this.el.nativeElement.parentElement.parentElement.getBoundingClientRect();
|
|
20
|
+
this.position = {
|
|
21
|
+
x: this.el.nativeElement.offsetWidth,
|
|
22
|
+
y: this.el.nativeElement.parentElement.parentElement.offsetTop - 9,
|
|
23
|
+
clientX: parentRect.x + this.el.nativeElement.parentElement.parentElement.offsetWidth,
|
|
24
|
+
clientY: parentRect.y
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
if (typeof this.position === 'string') {
|
|
28
|
+
this.renderer.setStyle(this.el.nativeElement, 'top', this.position === 'bottom' ?
|
|
29
|
+
this.drDropdownPosition.y - this.drDropdownPosition.height + 'px' :
|
|
30
|
+
this.drDropdownPosition.y + 'px');
|
|
31
|
+
this.renderer.setStyle(this.el.nativeElement, 'left', this.position === 'right' ?
|
|
32
|
+
this.drDropdownPosition.x + this.drDropdownPosition.width + 'px' :
|
|
33
|
+
this.drDropdownPosition.x + 'px');
|
|
34
|
+
const menuHeight = this.el.nativeElement.offsetHeight;
|
|
35
|
+
const heightMoreWindowBottom = menuHeight + this.drDropdownPosition.y > window.innerHeight;
|
|
36
|
+
const heightMoreWindowTop = menuHeight - this.drDropdownPosition.y + this.drDropdownPosition.height / 2 > 48; // header height;
|
|
37
|
+
const widthMoreWindowRight = this.drDropdownPosition.x + 250 > window.innerWidth;
|
|
38
|
+
if (heightMoreWindowBottom) {
|
|
39
|
+
this.position = 'top';
|
|
40
|
+
}
|
|
41
|
+
if (heightMoreWindowBottom && widthMoreWindowRight && !heightMoreWindowTop || this.position === 'top-left') {
|
|
42
|
+
this.position = 'top-left';
|
|
43
|
+
this.renderer.setStyle(this.el.nativeElement, 'transform', 'translate(-100%, calc(-100% + ' + this.drDropdownPosition.height + 'px))');
|
|
44
|
+
}
|
|
45
|
+
if (heightMoreWindowTop && heightMoreWindowBottom) {
|
|
46
|
+
this.position = 'left-center';
|
|
47
|
+
}
|
|
48
|
+
if (this.position === 'bottom-left') {
|
|
49
|
+
this.renderer.setStyle(this.el.nativeElement, 'transform', `translate(calc(-100% + ${this.drDropdownPosition.width}px), ${this.drDropdownPosition.height + 8}px)`);
|
|
50
|
+
}
|
|
51
|
+
const className = this.position === 'top' ? 'content-top'
|
|
52
|
+
: this.position === 'top-left' ? 'content-top-left'
|
|
53
|
+
: this.position === 'bottom' ? 'content-bottom'
|
|
54
|
+
: this.position === 'bottom-left' ? 'content-bottom-left'
|
|
55
|
+
: this.position === 'left' ? 'content-left'
|
|
56
|
+
: this.position === 'left-center' ? 'content-left-center'
|
|
57
|
+
: this.position === 'right' ? 'content-right'
|
|
58
|
+
: this.position === 'bottom-right' ? 'content-bottom-right' : '';
|
|
59
|
+
this.renderer.addClass(this.el.nativeElement, className);
|
|
60
|
+
this.renderer.setStyle(this.el.nativeElement, 'z-index', '10010');
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
const defaultChildPadding = 3;
|
|
64
|
+
const widthMoreWindowRight = window.innerWidth - this.position.clientX - this.el.nativeElement.offsetWidth - defaultPadding;
|
|
65
|
+
const widthMoreWindowBottom = window.innerHeight - this.position.clientY - this.el.nativeElement.offsetHeight - defaultPadding;
|
|
66
|
+
const calculatedHorizantallyPos = widthMoreWindowRight < 0
|
|
67
|
+
? -this.position.x + -defaultChildPadding
|
|
68
|
+
: this.position.x + defaultChildPadding + xDifference;
|
|
69
|
+
const deltaHeight = widthMoreWindowBottom < 0 ? widthMoreWindowBottom : defaultDelta;
|
|
70
|
+
this.renderer.setStyle(this.el.nativeElement, 'top', (this.position.y + deltaHeight) + 'px');
|
|
71
|
+
this.renderer.setStyle(this.el.nativeElement, 'left', (calculatedHorizantallyPos) + 'px');
|
|
72
|
+
this.renderer.setStyle(this.el.nativeElement, 'z-index', '10010');
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
DrDropdownPositionDirective.decorators = [
|
|
77
|
+
{ type: Directive, args: [{
|
|
78
|
+
selector: '[drDropdownPosition]'
|
|
79
|
+
},] }
|
|
80
|
+
];
|
|
81
|
+
DrDropdownPositionDirective.ctorParameters = () => [
|
|
82
|
+
{ type: ElementRef },
|
|
83
|
+
{ type: Renderer2 }
|
|
84
|
+
];
|
|
85
|
+
DrDropdownPositionDirective.propDecorators = {
|
|
86
|
+
drDropdownPosition: [{ type: Input }],
|
|
87
|
+
position: [{ type: Input }]
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZHJvcGRvd24tcG9zaXRpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZHJvcGRvd24vZHItZHJvcGRvd24tcG9zaXRpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNaEYsTUFBTSxPQUFPLDJCQUEyQjtJQUtwQyxZQUFvQixFQUFjLEVBQVUsUUFBbUI7UUFBM0MsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFGdEQsYUFBUSxHQUFxQyxNQUFNLENBQUM7SUFHN0QsQ0FBQztJQUVELFFBQVE7UUFDSixVQUFVLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUM7UUFFdkIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLE9BQU8sRUFBRTtZQUMzQixZQUFZLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLGNBQWMsR0FBRyxFQUFFLENBQUM7WUFDcEIsV0FBVyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztZQUNoSCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLHFCQUFx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SW5wdXQsIE9uSW5pdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElEcm9wZG93bkNvb3JkaW5hdGUsIEVsUG9zaXRpb24gfSBmcm9tICcuLi9tb2RlbHMvZHJvcGRvd24nO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tkckRyb3Bkb3duUG9zaXRpb25dJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJEcm9wZG93blBvc2l0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgICBASW5wdXQoKSBkckRyb3Bkb3duUG9zaXRpb247XHJcbiAgICBASW5wdXQoKSBwb3NpdGlvbjogRWxQb3NpdGlvbiB8IElEcm9wZG93bkNvb3JkaW5hdGUgPSAnbGVmdCc7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc2V0VGltZW91dCh0aGlzLmNhbGN1bGF0ZVBvc2l0aW9uLmJpbmQodGhpcyksIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbGN1bGF0ZVBvc2l0aW9uKCkge1xyXG4gICAgICAgIGxldCB4RGlmZmVyZW5jZSA9IDA7XHJcbiAgICAgICAgbGV0IGRlZmF1bHREZWx0YSA9IDEwO1xyXG4gICAgICAgIGxldCBkZWZhdWx0UGFkZGluZyA9IDA7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnBvc2l0aW9uID09PSAnY2hpbGQnKSB7XHJcbiAgICAgICAgICAgIGRlZmF1bHREZWx0YSA9IDA7XHJcbiAgICAgICAgICAgIGRlZmF1bHRQYWRkaW5nID0gMTA7XHJcbiAgICAgICAgICAgIHhEaWZmZXJlbmNlID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5vZmZzZXRXaWR0aCAtIHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcclxuICAgICAgICAgICAgY29uc3QgcGFyZW50UmVjdCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0ge1xyXG4gICAgICAgICAgICAgICAgeDogdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoLFxyXG4gICAgICAgICAgICAgICAgeTogdGhpcy5lbC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5vZmZzZXRUb3AgLSA5LFxyXG4gICAgICAgICAgICAgICAgY2xpZW50WDogcGFyZW50UmVjdC54ICsgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5vZmZzZXRXaWR0aCxcclxuICAgICAgICAgICAgICAgIGNsaWVudFk6IHBhcmVudFJlY3QueVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBvc2l0aW9uID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3RvcCcsXHJcbiAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9PT0gJ2JvdHRvbScgP1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kckRyb3Bkb3duUG9zaXRpb24ueSAtIHRoaXMuZHJEcm9wZG93blBvc2l0aW9uLmhlaWdodCArICdweCcgOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5kckRyb3Bkb3duUG9zaXRpb24ueSArICdweCcpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2xlZnQnLFxyXG4gICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPT09ICdyaWdodCcgP1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kckRyb3Bkb3duUG9zaXRpb24ueCArIHRoaXMuZHJEcm9wZG93blBvc2l0aW9uLndpZHRoICsgJ3B4JyA6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRyRHJvcGRvd25Qb3NpdGlvbi54ICsgJ3B4Jyk7XHJcbiAgICAgICAgICAgIGNvbnN0IG1lbnVIZWlnaHQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgICAgICAgICBjb25zdCBoZWlnaHRNb3JlV2luZG93Qm90dG9tID0gbWVudUhlaWdodCArIHRoaXMuZHJEcm9wZG93blBvc2l0aW9uLnkgPiB3aW5kb3cuaW5uZXJIZWlnaHQ7XHJcbiAgICAgICAgICAgIGNvbnN0IGhlaWdodE1vcmVXaW5kb3dUb3AgPSBtZW51SGVpZ2h0IC0gdGhpcy5kckRyb3Bkb3duUG9zaXRpb24ueSArIHRoaXMuZHJEcm9wZG93blBvc2l0aW9uLmhlaWdodCAvIDIgPiA0ODsgLy8gaGVhZGVyIGhlaWdodDtcclxuICAgICAgICAgICAgY29uc3Qgd2lkdGhNb3JlV2luZG93UmlnaHQgPSB0aGlzLmRyRHJvcGRvd25Qb3NpdGlvbi54ICsgMjUwID4gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgICAgICAgICAgIGlmIChoZWlnaHRNb3JlV2luZG93Qm90dG9tKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gJ3RvcCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGhlaWdodE1vcmVXaW5kb3dCb3R0b20gJiYgd2lkdGhNb3JlV2luZG93UmlnaHQgJiYgIWhlaWdodE1vcmVXaW5kb3dUb3AgfHwgdGhpcy5wb3NpdGlvbiA9PT0gJ3RvcC1sZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9ICd0b3AtbGVmdCc7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3RyYW5zZm9ybScsXHJcbiAgICAgICAgICAgICAgICAgICd0cmFuc2xhdGUoLTEwMCUsIGNhbGMoLTEwMCUgKyAnICsgdGhpcy5kckRyb3Bkb3duUG9zaXRpb24uaGVpZ2h0ICsgJ3B4KSknKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoaGVpZ2h0TW9yZVdpbmRvd1RvcCAmJiBoZWlnaHRNb3JlV2luZG93Qm90dG9tKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gJ2xlZnQtY2VudGVyJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ2JvdHRvbS1sZWZ0Jykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICd0cmFuc2Zvcm0nLCBgdHJhbnNsYXRlKGNhbGMoLTEwMCUgKyAkeyB0aGlzLmRyRHJvcGRvd25Qb3NpdGlvbi53aWR0aCB9cHgpLCAkeyB0aGlzLmRyRHJvcGRvd25Qb3NpdGlvbi5oZWlnaHQgKyA4IH1weClgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBjbGFzc05hbWUgPSB0aGlzLnBvc2l0aW9uID09PSAndG9wJyA/ICdjb250ZW50LXRvcCdcclxuICAgICAgICAgICAgICA6IHRoaXMucG9zaXRpb24gPT09ICd0b3AtbGVmdCcgPyAnY29udGVudC10b3AtbGVmdCdcclxuICAgICAgICAgICAgICAgIDogdGhpcy5wb3NpdGlvbiA9PT0gJ2JvdHRvbScgPyAnY29udGVudC1ib3R0b20nXHJcbiAgICAgICAgICAgICAgICAgIDogdGhpcy5wb3NpdGlvbiA9PT0gJ2JvdHRvbS1sZWZ0JyA/ICdjb250ZW50LWJvdHRvbS1sZWZ0J1xyXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5wb3NpdGlvbiA9PT0gJ2xlZnQnID8gJ2NvbnRlbnQtbGVmdCdcclxuICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5wb3NpdGlvbiA9PT0gJ2xlZnQtY2VudGVyJyA/ICdjb250ZW50LWxlZnQtY2VudGVyJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMucG9zaXRpb24gPT09ICdyaWdodCcgPyAnY29udGVudC1yaWdodCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMucG9zaXRpb24gPT09ICdib3R0b20tcmlnaHQnID8gJ2NvbnRlbnQtYm90dG9tLXJpZ2h0JyA6ICcnO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgY2xhc3NOYW1lKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICd6LWluZGV4JywgJzEwMDEwJyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgZGVmYXVsdENoaWxkUGFkZGluZyA9IDM7XHJcbiAgICAgICAgICAgIGNvbnN0IHdpZHRoTW9yZVdpbmRvd1JpZ2h0ID0gd2luZG93LmlubmVyV2lkdGggLSB0aGlzLnBvc2l0aW9uLmNsaWVudFggLSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggLSBkZWZhdWx0UGFkZGluZztcclxuICAgICAgICAgICAgY29uc3Qgd2lkdGhNb3JlV2luZG93Qm90dG9tID0gd2luZG93LmlubmVySGVpZ2h0IC0gdGhpcy5wb3NpdGlvbi5jbGllbnRZIC0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAtIGRlZmF1bHRQYWRkaW5nO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgY2FsY3VsYXRlZEhvcml6YW50YWxseVBvcyA9IHdpZHRoTW9yZVdpbmRvd1JpZ2h0IDwgMFxyXG4gICAgICAgICAgICAgID8gLXRoaXMucG9zaXRpb24ueCArIC1kZWZhdWx0Q2hpbGRQYWRkaW5nXHJcbiAgICAgICAgICAgICAgOiB0aGlzLnBvc2l0aW9uLnggKyBkZWZhdWx0Q2hpbGRQYWRkaW5nICsgeERpZmZlcmVuY2U7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBkZWx0YUhlaWdodCA9IHdpZHRoTW9yZVdpbmRvd0JvdHRvbSA8IDAgPyB3aWR0aE1vcmVXaW5kb3dCb3R0b20gOiBkZWZhdWx0RGVsdGE7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3RvcCcsICh0aGlzLnBvc2l0aW9uLnkgKyBkZWx0YUhlaWdodCkgKyAncHgnKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdsZWZ0JywgKGNhbGN1bGF0ZWRIb3JpemFudGFsbHlQb3MpICsgJ3B4Jyk7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnei1pbmRleCcsICcxMDAxMCcpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,103 +1,103 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewChild } from '@angular/core';
|
|
2
|
-
import { DrDropdownService } from './dr-dropdown.service';
|
|
3
|
-
export class DrDropdownComponent {
|
|
4
|
-
constructor(menuService, cdr) {
|
|
5
|
-
this.menuService = menuService;
|
|
6
|
-
this.cdr = cdr;
|
|
7
|
-
this.position = 'left';
|
|
8
|
-
}
|
|
9
|
-
set options(data) {
|
|
10
|
-
if (data) {
|
|
11
|
-
this.option = data.option;
|
|
12
|
-
this.position = data.position;
|
|
13
|
-
this.containerClass = data.class;
|
|
14
|
-
this.list = data.list || [];
|
|
15
|
-
this.list.forEach(item => {
|
|
16
|
-
var _a, _b;
|
|
17
|
-
if ((_a = item.children) === null || _a === void 0 ? void 0 : _a.length) {
|
|
18
|
-
item.childOptions = {
|
|
19
|
-
list: item.children,
|
|
20
|
-
class: ((_b = item === null || item === void 0 ? void 0 : item.childOptions) === null || _b === void 0 ? void 0 : _b.class) || '',
|
|
21
|
-
position: 'child'
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
this.cdr.markForCheck();
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
onClickedOutside() {
|
|
29
|
-
if (this.firstInit) {
|
|
30
|
-
this.menuService.destroy();
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
this.firstInit = true;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
hide() {
|
|
37
|
-
this.menuService.destroy();
|
|
38
|
-
}
|
|
39
|
-
disabled(act) {
|
|
40
|
-
if (!act.disabled) {
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
43
|
-
if (typeof act.disabled === 'boolean') {
|
|
44
|
-
return act.disabled;
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
return act.disabled(act.data);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
selected(act) {
|
|
51
|
-
if (!act.selected) {
|
|
52
|
-
return false;
|
|
53
|
-
}
|
|
54
|
-
if (typeof act.selected === 'boolean') {
|
|
55
|
-
return act.selected;
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
return act.selected(act.data);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
tooltipToShow(act) {
|
|
62
|
-
if (act.toolTipIfDisabled || this.disabled(act) || !act.toolTip) {
|
|
63
|
-
return '';
|
|
64
|
-
}
|
|
65
|
-
return act.toolTip ? act.toolTip : act.title;
|
|
66
|
-
}
|
|
67
|
-
action(act) {
|
|
68
|
-
if (!this.disabled(act)) {
|
|
69
|
-
if (act.action) {
|
|
70
|
-
act.action(act.data);
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
this.menuService.actionItem.next({ event: act.event || act.title || 'default', data: act.data });
|
|
74
|
-
}
|
|
75
|
-
this.hide();
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
onActionIconClick($event, actionIcon, data) {
|
|
79
|
-
$event.stopPropagation();
|
|
80
|
-
if (!this.disabled(actionIcon)) {
|
|
81
|
-
actionIcon.action(data);
|
|
82
|
-
this.hide();
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
DrDropdownComponent.decorators = [
|
|
87
|
-
{ type: Component, args: [{
|
|
88
|
-
selector: 'dr-dropdown',
|
|
89
|
-
template: "<div #menuContainer\n (clickOutside)=\"onClickedOutside()\"\n [drDropdownPosition]=\"option\"\n [position]=\"position\"\n [class]=\"containerClass\"\n class=\"dr-dropdown\">\n <div class=\"dr-dropdown__container\">\n <div *ngFor=\"let act of list | drDropdownItemShowPipe\"\n (click)=\"action(act)\"\n [drTooltip]=\"tooltipToShow(act)\"\n [drTooltipPosition]=\"'top'\"\n [drTooltipOptions]=\"{ withoutArrow: true }\"\n class=\"dr-dropdown__container__item\"\n [class.item-disabled]=\"disabled(act)\"\n [class.item-selected]=\"selected(act)\">\n <i *ngIf=\"act.icon\" [class]=\"act.icon\"></i>\n <span class=\"dr-dropdown__container__item__text\">{{act.title}}</span>\n <i *ngFor=\"let actionIcon of act.actionIcons\"\n [class]=\"actionIcon.icon\"\n [class.showOnHover]=\"actionIcon.showOnHover\"\n (click)=\"onActionIconClick($event, actionIcon, act.data)\"></i>\n <i *ngIf=\"act.children?.length\" class=\"dr-icon-arrow-right\"></i>\n <dr-dropdown *ngIf=\"act.children?.length\" [options]=\"act.childOptions\"></dr-dropdown>\n </div>\n </div>\n</div>\n",
|
|
90
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
91
|
-
styles: ["::ng-deep .dr-dropdown__container__item .dr-dropdown{visibility:hidden}::ng-deep .dr-dropdown__container__item:hover .dr-dropdown{visibility:visible}.dr-dropdown{position:absolute;z-index:-1;top:0;left:0;width:auto}.dr-dropdown__container{display:flex;flex-direction:column;background:#fff;border-radius:4px;box-shadow:0 4px 8px 1px #00000040;padding:8px 0;overflow-y:auto;max-height:60vh}.dr-dropdown__container__item{display:flex;align-items:center;justify-content:flex-start;cursor:pointer;min-width:15rem;font-style:normal;font-weight:400;font-size:14px;line-height:24px;clear:both;width:100%;white-space:nowrap;padding:0 12px;height:36px;flex-shrink:0}.dr-dropdown__container__item:hover{background-color:#f6f7f8}.dr-dropdown__container__item:hover .showOnHover{visibility:visible}.dr-dropdown__container__item.item-selected{background:#F3F7FF}.dr-dropdown__container__item.item-disabled,.dr-dropdown__container__item.item-disabled i,.dr-dropdown__container__item.item-disabled .dr-dropdown__container__item__text{color:#bcbcbc;pointer-events:none}.dr-dropdown__container__item i:first-child{margin-right:8px}.dr-dropdown__container__item__text{margin-right:auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dr-dropdown__container__item i,.dr-dropdown__container__item__text{color:#151b3f}.dr-dropdown__container__item .showOnHover{visibility:hidden}.dr-dropdown.content-top{transform:translate(-50%,-100%)}.dr-dropdown.content-top-left{transform:translate(-100%,-100%)}.dr-dropdown.content-bottom{transform:translate(-50%,50%)}.dr-dropdown.content-bottom-left{transform:translate(-90%,35%)}.dr-dropdown.content-bottom-right{transform:translateY(45%)}.dr-dropdown.content-left{transform:translate(-100%)}.dr-dropdown.content-left-center{transform:translate(-100%,-50%)}.dr-dropdown.content-right{transform:translate(5%)}\n"]
|
|
92
|
-
},] }
|
|
93
|
-
];
|
|
94
|
-
DrDropdownComponent.ctorParameters = () => [
|
|
95
|
-
{ type: DrDropdownService },
|
|
96
|
-
{ type: ChangeDetectorRef }
|
|
97
|
-
];
|
|
98
|
-
DrDropdownComponent.propDecorators = {
|
|
99
|
-
viewMenu: [{ type: ViewChild, args: ['listMenu',] }],
|
|
100
|
-
menuContainer: [{ type: ViewChild, args: ['menuContainer',] }],
|
|
101
|
-
options: [{ type: Input }]
|
|
102
|
-
};
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewChild } from '@angular/core';
|
|
2
|
+
import { DrDropdownService } from './dr-dropdown.service';
|
|
3
|
+
export class DrDropdownComponent {
|
|
4
|
+
constructor(menuService, cdr) {
|
|
5
|
+
this.menuService = menuService;
|
|
6
|
+
this.cdr = cdr;
|
|
7
|
+
this.position = 'left';
|
|
8
|
+
}
|
|
9
|
+
set options(data) {
|
|
10
|
+
if (data) {
|
|
11
|
+
this.option = data.option;
|
|
12
|
+
this.position = data.position;
|
|
13
|
+
this.containerClass = data.class;
|
|
14
|
+
this.list = data.list || [];
|
|
15
|
+
this.list.forEach(item => {
|
|
16
|
+
var _a, _b;
|
|
17
|
+
if ((_a = item.children) === null || _a === void 0 ? void 0 : _a.length) {
|
|
18
|
+
item.childOptions = {
|
|
19
|
+
list: item.children,
|
|
20
|
+
class: ((_b = item === null || item === void 0 ? void 0 : item.childOptions) === null || _b === void 0 ? void 0 : _b.class) || '',
|
|
21
|
+
position: 'child'
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
this.cdr.markForCheck();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
onClickedOutside() {
|
|
29
|
+
if (this.firstInit) {
|
|
30
|
+
this.menuService.destroy();
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
this.firstInit = true;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
hide() {
|
|
37
|
+
this.menuService.destroy();
|
|
38
|
+
}
|
|
39
|
+
disabled(act) {
|
|
40
|
+
if (!act.disabled) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
if (typeof act.disabled === 'boolean') {
|
|
44
|
+
return act.disabled;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
return act.disabled(act.data);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
selected(act) {
|
|
51
|
+
if (!act.selected) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
if (typeof act.selected === 'boolean') {
|
|
55
|
+
return act.selected;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
return act.selected(act.data);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
tooltipToShow(act) {
|
|
62
|
+
if (act.toolTipIfDisabled || this.disabled(act) || !act.toolTip) {
|
|
63
|
+
return '';
|
|
64
|
+
}
|
|
65
|
+
return act.toolTip ? act.toolTip : act.title;
|
|
66
|
+
}
|
|
67
|
+
action(act) {
|
|
68
|
+
if (!this.disabled(act)) {
|
|
69
|
+
if (act.action) {
|
|
70
|
+
act.action(act.data);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
this.menuService.actionItem.next({ event: act.event || act.title || 'default', data: act.data });
|
|
74
|
+
}
|
|
75
|
+
this.hide();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
onActionIconClick($event, actionIcon, data) {
|
|
79
|
+
$event.stopPropagation();
|
|
80
|
+
if (!this.disabled(actionIcon)) {
|
|
81
|
+
actionIcon.action(data);
|
|
82
|
+
this.hide();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
DrDropdownComponent.decorators = [
|
|
87
|
+
{ type: Component, args: [{
|
|
88
|
+
selector: 'dr-dropdown',
|
|
89
|
+
template: "<div #menuContainer\r\n (clickOutside)=\"onClickedOutside()\"\r\n [drDropdownPosition]=\"option\"\r\n [position]=\"position\"\r\n [class]=\"containerClass\"\r\n class=\"dr-dropdown\">\r\n <div class=\"dr-dropdown__container\">\r\n <div *ngFor=\"let act of list | drDropdownItemShowPipe\"\r\n (click)=\"action(act)\"\r\n [drTooltip]=\"tooltipToShow(act)\"\r\n [drTooltipPosition]=\"'top'\"\r\n [drTooltipOptions]=\"{ withoutArrow: true }\"\r\n class=\"dr-dropdown__container__item\"\r\n [class.item-disabled]=\"disabled(act)\"\r\n [class.item-selected]=\"selected(act)\">\r\n <i *ngIf=\"act.icon\" [class]=\"act.icon\"></i>\r\n <span class=\"dr-dropdown__container__item__text\">{{act.title}}</span>\r\n <i *ngFor=\"let actionIcon of act.actionIcons\"\r\n [class]=\"actionIcon.icon\"\r\n [class.showOnHover]=\"actionIcon.showOnHover\"\r\n (click)=\"onActionIconClick($event, actionIcon, act.data)\"></i>\r\n <i *ngIf=\"act.children?.length\" class=\"dr-icon-arrow-right\"></i>\r\n <dr-dropdown *ngIf=\"act.children?.length\" [options]=\"act.childOptions\"></dr-dropdown>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
90
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
91
|
+
styles: ["::ng-deep .dr-dropdown__container__item .dr-dropdown{visibility:hidden}::ng-deep .dr-dropdown__container__item:hover .dr-dropdown{visibility:visible}.dr-dropdown{position:absolute;z-index:-1;top:0;left:0;width:auto}.dr-dropdown__container{display:flex;flex-direction:column;background:#fff;border-radius:4px;box-shadow:0 4px 8px 1px #00000040;padding:8px 0;overflow-y:auto;max-height:60vh}.dr-dropdown__container__item{display:flex;align-items:center;justify-content:flex-start;cursor:pointer;min-width:15rem;font-style:normal;font-weight:400;font-size:14px;line-height:24px;clear:both;width:100%;white-space:nowrap;padding:0 12px;height:36px;flex-shrink:0}.dr-dropdown__container__item:hover{background-color:#f6f7f8}.dr-dropdown__container__item:hover .showOnHover{visibility:visible}.dr-dropdown__container__item.item-selected{background:#F3F7FF}.dr-dropdown__container__item.item-disabled,.dr-dropdown__container__item.item-disabled i,.dr-dropdown__container__item.item-disabled .dr-dropdown__container__item__text{color:#bcbcbc;pointer-events:none}.dr-dropdown__container__item i:first-child{margin-right:8px}.dr-dropdown__container__item__text{margin-right:auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dr-dropdown__container__item i,.dr-dropdown__container__item__text{color:#151b3f}.dr-dropdown__container__item .showOnHover{visibility:hidden}.dr-dropdown.content-top{transform:translate(-50%,-100%)}.dr-dropdown.content-top-left{transform:translate(-100%,-100%)}.dr-dropdown.content-bottom{transform:translate(-50%,50%)}.dr-dropdown.content-bottom-left{transform:translate(-90%,35%)}.dr-dropdown.content-bottom-right{transform:translateY(45%)}.dr-dropdown.content-left{transform:translate(-100%)}.dr-dropdown.content-left-center{transform:translate(-100%,-50%)}.dr-dropdown.content-right{transform:translate(5%)}\n"]
|
|
92
|
+
},] }
|
|
93
|
+
];
|
|
94
|
+
DrDropdownComponent.ctorParameters = () => [
|
|
95
|
+
{ type: DrDropdownService },
|
|
96
|
+
{ type: ChangeDetectorRef }
|
|
97
|
+
];
|
|
98
|
+
DrDropdownComponent.propDecorators = {
|
|
99
|
+
viewMenu: [{ type: ViewChild, args: ['listMenu',] }],
|
|
100
|
+
menuContainer: [{ type: ViewChild, args: ['menuContainer',] }],
|
|
101
|
+
options: [{ type: Input }]
|
|
102
|
+
};
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZHJvcGRvd24vZHItZHJvcGRvd24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVExRCxNQUFNLE9BQU8sbUJBQW1CO0lBVTlCLFlBQXNCLFdBQThCLEVBQVUsR0FBc0I7UUFBOUQsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFMcEYsYUFBUSxHQUFxQyxNQUFNLENBQUM7SUFNcEQsQ0FBQztJQUVELElBQWEsT0FBTyxDQUFDLElBQW1DO1FBQ3RELElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUM5QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTs7Z0JBQ3ZCLElBQUksTUFBQSxJQUFJLENBQUMsUUFBUSwwQ0FBRSxNQUFNLEVBQUU7b0JBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUc7d0JBQ2xCLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUTt3QkFDbkIsS0FBSyxFQUFFLENBQUEsTUFBQSxJQUFJLGFBQUosSUFBSSx1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LFNBQUMsVUFBVTs0QkFDcEIsU0FBUyxTQUFDLGVBQWU7c0JBVXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJRHJvcGRvd25JdGVtLCBFbFBvc2l0aW9uLCBJRHJvcGRvd25BY3Rpb25JY29uLCBJRHJvcGRvd24sIElEcm9wZG93bkNvb3JkaW5hdGUgfSBmcm9tICcuLi9tb2RlbHMvZHJvcGRvd24nO1xyXG5pbXBvcnQgeyBEckRyb3Bkb3duU2VydmljZSB9IGZyb20gJy4vZHItZHJvcGRvd24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2RyLWRyb3Bkb3duJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHItZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RyLWRyb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIERyRHJvcGRvd25Db21wb25lbnQge1xyXG5cclxuICBAVmlld0NoaWxkKCdsaXN0TWVudScpIHZpZXdNZW51OiBIVE1MRWxlbWVudDtcclxuICBAVmlld0NoaWxkKCdtZW51Q29udGFpbmVyJykgbWVudUNvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XHJcbiAgb3B0aW9uOiBhbnk7XHJcbiAgcG9zaXRpb246IEVsUG9zaXRpb24gfCBJRHJvcGRvd25Db29yZGluYXRlID0gJ2xlZnQnO1xyXG4gIGxpc3Q6IElEcm9wZG93bkl0ZW08dW5rbm93bj5bXTtcclxuICBjb250YWluZXJDbGFzczogc3RyaW5nO1xyXG4gIHByaXZhdGUgZmlyc3RJbml0OiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgbWVudVNlcnZpY2U6IERyRHJvcGRvd25TZXJ2aWNlLCBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHNldCBvcHRpb25zKGRhdGE6IElEcm9wZG93bjxJRHJvcGRvd25JdGVtPGFueT4+KSB7XHJcbiAgICBpZiAoZGF0YSkge1xyXG4gICAgICB0aGlzLm9wdGlvbiA9IGRhdGEub3B0aW9uO1xyXG4gICAgICB0aGlzLnBvc2l0aW9uID0gZGF0YS5wb3NpdGlvbjtcclxuICAgICAgdGhpcy5jb250YWluZXJDbGFzcyA9IGRhdGEuY2xhc3M7XHJcbiAgICAgIHRoaXMubGlzdCA9IGRhdGEubGlzdCB8fCBbXTtcclxuICAgICAgdGhpcy5saXN0LmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgaXRlbS5jaGlsZE9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgIGxpc3Q6IGl0ZW0uY2hpbGRyZW4sXHJcbiAgICAgICAgICAgIGNsYXNzOiBpdGVtPy5jaGlsZE9wdGlvbnM/LmNsYXNzIHx8ICcnLFxyXG4gICAgICAgICAgICBwb3NpdGlvbjogJ2NoaWxkJ1xyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2xpY2tlZE91dHNpZGUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5maXJzdEluaXQpIHtcclxuICAgICAgdGhpcy5tZW51U2VydmljZS5kZXN0cm95KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZpcnN0SW5pdCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoaWRlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5tZW51U2VydmljZS5kZXN0cm95KCk7XHJcbiAgfVxyXG5cclxuICBkaXNhYmxlZChhY3Q6IElEcm9wZG93bkl0ZW08dW5rbm93bj4gfCBJRHJvcGRvd25BY3Rpb25JY29uPGFueT4pOiBib29sZWFuIHtcclxuICAgIGlmICghYWN0LmRpc2FibGVkKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2YgYWN0LmRpc2FibGVkID09PSAnYm9vbGVhbicpIHtcclxuICAgICAgcmV0dXJuIGFjdC5kaXNhYmxlZDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBhY3QuZGlzYWJsZWQoYWN0LmRhdGEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0ZWQoYWN0OiBJRHJvcGRvd25JdGVtPHVua25vd24+KTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIWFjdC5zZWxlY3RlZCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIGFjdC5zZWxlY3RlZCA9PT0gJ2Jvb2xlYW4nKSB7XHJcbiAgICAgIHJldHVybiBhY3Quc2VsZWN0ZWQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gYWN0LnNlbGVjdGVkKGFjdC5kYXRhKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRvb2x0aXBUb1Nob3coYWN0OiBJRHJvcGRvd25JdGVtPHVua25vd24+KTogc3RyaW5nIHtcclxuICAgIGlmIChhY3QudG9vbFRpcElmRGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZChhY3QpIHx8ICFhY3QudG9vbFRpcCkge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGFjdC50b29sVGlwID8gYWN0LnRvb2xUaXAgOiBhY3QudGl0bGU7XHJcbiAgfVxyXG5cclxuICBhY3Rpb24oYWN0OiBJRHJvcGRvd25JdGVtPGFueT4pIHtcclxuICAgIGlmICghdGhpcy5kaXNhYmxlZChhY3QpKSB7XHJcbiAgICAgIGlmIChhY3QuYWN0aW9uKSB7XHJcbiAgICAgICAgYWN0LmFjdGlvbihhY3QuZGF0YSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5tZW51U2VydmljZS5hY3Rpb25JdGVtLm5leHQoe2V2ZW50OiBhY3QuZXZlbnQgfHwgYWN0LnRpdGxlIHx8ICdkZWZhdWx0JywgZGF0YTogYWN0LmRhdGF9KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmhpZGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQWN0aW9uSWNvbkNsaWNrKCRldmVudCwgYWN0aW9uSWNvbjogSURyb3Bkb3duQWN0aW9uSWNvbjxhbnk+LCBkYXRhOiBhbnkpIHtcclxuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmICghdGhpcy5kaXNhYmxlZChhY3Rpb25JY29uKSkge1xyXG4gICAgICBhY3Rpb25JY29uLmFjdGlvbihkYXRhKTtcclxuICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|