@messaia/cdk 15.0.0-rc64 → 15.0.0-rc66

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.
Files changed (36) hide show
  1. package/esm2020/lib/common/directives/delayed-hover.directive.mjs +121 -0
  2. package/esm2020/lib/common/enums/app-event-type.mjs +6 -0
  3. package/esm2020/lib/common/models/app-event.mjs +7 -0
  4. package/esm2020/lib/common/pipes/func.pipe.mjs +3 -3
  5. package/esm2020/lib/common/public_api.mjs +6 -1
  6. package/esm2020/lib/common/services/event-queue.service.mjs +33 -0
  7. package/esm2020/lib/layout/layout-compact/layout-compact.component.mjs +184 -0
  8. package/esm2020/lib/layout/layout-manage-list/layout-manage-list.component.mjs +18 -13
  9. package/esm2020/lib/layout/layout.component.mjs +57 -28
  10. package/esm2020/lib/layout/layout.module.mjs +6 -2
  11. package/esm2020/lib/layout/list-toolbar/list-toolbar.component.mjs +5 -3
  12. package/esm2020/lib/layout/navigation-drawer/navigation-drawer.component.mjs +3 -9
  13. package/esm2020/lib/menu/components/menu.component.mjs +42 -7
  14. package/esm2020/lib/menu/menu.module.mjs +14 -6
  15. package/esm2020/lib/menu/models/menu-item.mjs +2 -2
  16. package/fesm2015/messaia-cdk.mjs +708 -296
  17. package/fesm2015/messaia-cdk.mjs.map +1 -1
  18. package/fesm2020/messaia-cdk.mjs +700 -293
  19. package/fesm2020/messaia-cdk.mjs.map +1 -1
  20. package/lib/common/directives/delayed-hover.directive.d.ts +73 -0
  21. package/lib/common/enums/app-event-type.d.ts +4 -0
  22. package/lib/common/models/app-event.d.ts +6 -0
  23. package/lib/common/public_api.d.ts +5 -0
  24. package/lib/common/services/event-queue.service.d.ts +23 -0
  25. package/lib/common/styles/_common-theme.scss +7 -2
  26. package/lib/layout/_layout-theme.scss +7 -3
  27. package/lib/layout/layout-compact/layout-compact.component.d.ts +128 -0
  28. package/lib/layout/layout-manage-list/layout-manage-list.component.d.ts +8 -8
  29. package/lib/layout/layout.component.d.ts +40 -14
  30. package/lib/layout/layout.module.d.ts +27 -25
  31. package/lib/layout/list-toolbar/list-toolbar.component.d.ts +5 -1
  32. package/lib/layout/navigation-drawer/navigation-drawer.component.d.ts +0 -4
  33. package/lib/menu/components/menu.component.d.ts +24 -4
  34. package/lib/menu/menu.module.d.ts +7 -5
  35. package/lib/menu/models/menu-item.d.ts +1 -1
  36. package/package.json +1 -1
@@ -0,0 +1,121 @@
1
+ import { Directive, ElementRef, EventEmitter, NgZone, Renderer2 } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export class VdDelayedHoverDirective {
4
+ /**
5
+ * Initialize the delayedhover directive.
6
+ * @param elementRef
7
+ * @param renderer
8
+ * @param zone
9
+ */
10
+ constructor(elementRef, renderer, zone) {
11
+ /**
12
+ * @property
13
+ */
14
+ this.duration = 500;
15
+ /**
16
+ * @property
17
+ */
18
+ this.delayedhoverEvents = new EventEmitter();
19
+ /**
20
+ * @field
21
+ */
22
+ this.unlisteners = null;
23
+ /**
24
+ * @field
25
+ */
26
+ this.timer = 0;
27
+ /**
28
+ * Handles the mousedown event inside the host element.
29
+ * @param event
30
+ */
31
+ this.handleMousedown = (event) => {
32
+ /*
33
+ If the user shows any mouse-activity (other than enter/leave) inside the host
34
+ element, we want to cancel the hesitation timer. Such mouse activity indicates
35
+ non-hesitation intent on behalf of the user.
36
+ */
37
+ this.cancel();
38
+ };
39
+ /**
40
+ * Handles the mouseevent event inside the host element.
41
+ * @param event
42
+ */
43
+ this.handleMouseenter = (event) => {
44
+ /*
45
+ When the user enters the host, start the hesitation timer. This timer will be
46
+ fulfilled if the user remains inside of the host without performing any other
47
+ meaningful actions.
48
+ */
49
+ this.timer = setTimeout(this.handleTimerThreshold, this.duration);
50
+ };
51
+ /**
52
+ * Handles the mouseleave event inside the host element.
53
+ * @param event
54
+ */
55
+ this.handleMouseleave = (event) => {
56
+ this.cancel();
57
+ };
58
+ /**
59
+ * Handles the timer threshold event.
60
+ */
61
+ this.handleTimerThreshold = () => {
62
+ /*
63
+ Once the hesitation timer threshold has been surpassed, we want to trigger an
64
+ output event. This time, however, we want to trigger Angular change-detection.
65
+ As such, we have set up into the Angular zone for the emission.
66
+ */
67
+ this.zone.runGuarded(() => { this.delayedhoverEvents.emit(); });
68
+ };
69
+ this.elementRef = elementRef;
70
+ this.renderer = renderer;
71
+ this.zone = zone;
72
+ }
73
+ /**
74
+ * I Cancels any pending hesitation timer.
75
+ */
76
+ cancel() {
77
+ clearTimeout(this.timer);
78
+ }
79
+ /**
80
+ * Gets called once when the host element is being unmounted.
81
+ */
82
+ ngOnDestroy() {
83
+ this.cancel();
84
+ /* If we have event-handler bindings, unbind them all */
85
+ if (this.unlisteners) {
86
+ for (var unlistener of this.unlisteners) {
87
+ unlistener();
88
+ }
89
+ }
90
+ }
91
+ /**
92
+ * Gets called once after the host element has been mounted and the inputs
93
+ * have been bound for the first time.
94
+ */
95
+ ngOnInit() {
96
+ /*
97
+ Instead of using host bindings, which would trigger change-detection digests
98
+ when the events are triggered, we want to drop-down out of the core NgZone so
99
+ that we can setup our event-handlers without adding processing overhead.
100
+ */
101
+ this.zone.runOutsideAngular(() => {
102
+ this.unlisteners = [
103
+ this.renderer.listen(this.elementRef.nativeElement, "mouseenter", this.handleMouseenter),
104
+ this.renderer.listen(this.elementRef.nativeElement, "mousedown", this.handleMousedown),
105
+ this.renderer.listen(this.elementRef.nativeElement, "mouseleave", this.handleMouseleave)
106
+ ];
107
+ });
108
+ }
109
+ }
110
+ /** @nocollapse */ VdDelayedHoverDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: VdDelayedHoverDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
111
+ /** @nocollapse */ VdDelayedHoverDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.0", type: VdDelayedHoverDirective, selector: "[delayedHover]", inputs: { duration: "duration" }, outputs: { delayedhoverEvents: "delayedHover" }, exportAs: ["hesitation"], ngImport: i0 });
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: VdDelayedHoverDirective, decorators: [{
113
+ type: Directive,
114
+ args: [{
115
+ selector: "[delayedHover]",
116
+ inputs: ["duration"],
117
+ outputs: ["delayedhoverEvents: delayedHover"],
118
+ exportAs: "hesitation"
119
+ }]
120
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }]; } });
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsYXllZC1ob3Zlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9jb21tb24vZGlyZWN0aXZlcy9kZWxheWVkLWhvdmVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUTFHLE1BQU0sT0FBTyx1QkFBdUI7SUFxQ2hDOzs7OztPQUtHO0lBQ0gsWUFBWSxVQUFzQixFQUFFLFFBQW1CLEVBQUUsSUFBWTtRQXpDckU7O1dBRUc7UUFDSSxhQUFRLEdBQVcsR0FBRyxDQUFDO1FBRTlCOztVQUVFO1FBQ0ssdUJBQWtCLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7UUFZbkU7O1dBRUc7UUFDSyxnQkFBVyxHQUFzQixJQUFJLENBQUM7UUFFOUM7O1dBRUc7UUFDSyxVQUFLLEdBQVEsQ0FBQyxDQUFDO1FBOER2Qjs7O1dBR0c7UUFDSyxvQkFBZSxHQUFHLENBQUMsS0FBaUIsRUFBUSxFQUFFO1lBQ2xEOzs7O2NBSUU7WUFDRixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbEIsQ0FBQyxDQUFBO1FBRUQ7OztXQUdHO1FBQ0sscUJBQWdCLEdBQUcsQ0FBQyxLQUFpQixFQUFRLEVBQUU7WUFDbkQ7Ozs7Y0FJRTtZQUNGLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEUsQ0FBQyxDQUFBO1FBRUQ7OztXQUdHO1FBQ0sscUJBQWdCLEdBQUcsQ0FBQyxLQUFpQixFQUFRLEVBQUU7WUFDbkQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xCLENBQUMsQ0FBQTtRQUVEOztXQUVHO1FBQ0sseUJBQW9CLEdBQUcsR0FBUyxFQUFFO1lBQ3RDOzs7O2NBSUU7WUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRSxDQUFDLENBQUE7UUE1RkcsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTTtRQUNULFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVztRQUNkLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVkLHdEQUF3RDtRQUN4RCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsS0FBSyxJQUFJLFVBQVUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNyQyxVQUFVLEVBQUUsQ0FBQzthQUNoQjtTQUNKO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFFBQVE7UUFDWDs7OztVQUlFO1FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FDdkIsR0FBRyxFQUFFO1lBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRztnQkFDZixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDO2dCQUN4RixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQztnQkFDdEYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQzthQUMzRixDQUFDO1FBQ04sQ0FBQyxDQUNKLENBQUM7SUFFTixDQUFDOzt1SUExRlEsdUJBQXVCOzJIQUF2Qix1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFObkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUM7b0JBQ3BCLE9BQU8sRUFBRSxDQUFDLGtDQUFrQyxDQUFDO29CQUM3QyxRQUFRLEVBQUUsWUFBWTtpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgTmdab25lLCBPbkRlc3Ryb3ksIE9uSW5pdCwgUmVuZGVyZXIyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6IFwiW2RlbGF5ZWRIb3Zlcl1cIixcclxuICAgIGlucHV0czogW1wiZHVyYXRpb25cIl0sXHJcbiAgICBvdXRwdXRzOiBbXCJkZWxheWVkaG92ZXJFdmVudHM6IGRlbGF5ZWRIb3ZlclwiXSxcclxuICAgIGV4cG9ydEFzOiBcImhlc2l0YXRpb25cIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgVmREZWxheWVkSG92ZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJvcGVydHlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGR1cmF0aW9uOiBudW1iZXIgPSA1MDA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEBwcm9wZXJ0eVxyXG4gICAgKi9cclxuICAgIHB1YmxpYyBkZWxheWVkaG92ZXJFdmVudHM6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICAvKipcclxuICAgICogQGZpZWxkXHJcbiAgICAqL1xyXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGZpZWxkXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBmaWVsZFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHVubGlzdGVuZXJzOiBGdW5jdGlvbltdIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAZmllbGRcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSB0aW1lcjogYW55ID0gMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBmaWVsZFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemUgdGhlIGRlbGF5ZWRob3ZlciBkaXJlY3RpdmUuXHJcbiAgICAgKiBAcGFyYW0gZWxlbWVudFJlZiBcclxuICAgICAqIEBwYXJhbSByZW5kZXJlciBcclxuICAgICAqIEBwYXJhbSB6b25lIFxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCByZW5kZXJlcjogUmVuZGVyZXIyLCB6b25lOiBOZ1pvbmUpIHtcclxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYgPSBlbGVtZW50UmVmO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIgPSByZW5kZXJlcjtcclxuICAgICAgICB0aGlzLnpvbmUgPSB6b25lO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSSBDYW5jZWxzIGFueSBwZW5kaW5nIGhlc2l0YXRpb24gdGltZXIuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjYW5jZWwoKTogdm9pZCB7XHJcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBjYWxsZWQgb25jZSB3aGVuIHRoZSBob3N0IGVsZW1lbnQgaXMgYmVpbmcgdW5tb3VudGVkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jYW5jZWwoKTtcclxuXHJcbiAgICAgICAgLyogSWYgd2UgaGF2ZSBldmVudC1oYW5kbGVyIGJpbmRpbmdzLCB1bmJpbmQgdGhlbSBhbGwgKi9cclxuICAgICAgICBpZiAodGhpcy51bmxpc3RlbmVycykge1xyXG4gICAgICAgICAgICBmb3IgKHZhciB1bmxpc3RlbmVyIG9mIHRoaXMudW5saXN0ZW5lcnMpIHtcclxuICAgICAgICAgICAgICAgIHVubGlzdGVuZXIoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgY2FsbGVkIG9uY2UgYWZ0ZXIgdGhlIGhvc3QgZWxlbWVudCBoYXMgYmVlbiBtb3VudGVkIGFuZCB0aGUgaW5wdXRzIFxyXG4gICAgICogaGF2ZSBiZWVuIGJvdW5kIGZvciB0aGUgZmlyc3QgdGltZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIC8qXHJcbiAgICAgICAgSW5zdGVhZCBvZiB1c2luZyBob3N0IGJpbmRpbmdzLCB3aGljaCB3b3VsZCB0cmlnZ2VyIGNoYW5nZS1kZXRlY3Rpb24gZGlnZXN0c1xyXG4gICAgICAgIHdoZW4gdGhlIGV2ZW50cyBhcmUgdHJpZ2dlcmVkLCB3ZSB3YW50IHRvIGRyb3AtZG93biBvdXQgb2YgdGhlIGNvcmUgTmdab25lIHNvXHJcbiAgICAgICAgdGhhdCB3ZSBjYW4gc2V0dXAgb3VyIGV2ZW50LWhhbmRsZXJzIHdpdGhvdXQgYWRkaW5nIHByb2Nlc3Npbmcgb3ZlcmhlYWQuXHJcbiAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoXHJcbiAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMudW5saXN0ZW5lcnMgPSBbXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwibW91c2VlbnRlclwiLCB0aGlzLmhhbmRsZU1vdXNlZW50ZXIpLFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBcIm1vdXNlZG93blwiLCB0aGlzLmhhbmRsZU1vdXNlZG93biksXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwibW91c2VsZWF2ZVwiLCB0aGlzLmhhbmRsZU1vdXNlbGVhdmUpXHJcbiAgICAgICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIYW5kbGVzIHRoZSBtb3VzZWRvd24gZXZlbnQgaW5zaWRlIHRoZSBob3N0IGVsZW1lbnQuXHJcbiAgICAgKiBAcGFyYW0gZXZlbnQgXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgaGFuZGxlTW91c2Vkb3duID0gKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCA9PiB7XHJcbiAgICAgICAgLypcclxuICAgICAgICBJZiB0aGUgdXNlciBzaG93cyBhbnkgbW91c2UtYWN0aXZpdHkgKG90aGVyIHRoYW4gZW50ZXIvbGVhdmUpIGluc2lkZSB0aGUgaG9zdFxyXG4gICAgICAgIGVsZW1lbnQsIHdlIHdhbnQgdG8gY2FuY2VsIHRoZSBoZXNpdGF0aW9uIHRpbWVyLiBTdWNoIG1vdXNlIGFjdGl2aXR5IGluZGljYXRlc1xyXG4gICAgICAgIG5vbi1oZXNpdGF0aW9uIGludGVudCBvbiBiZWhhbGYgb2YgdGhlIHVzZXIuXHJcbiAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNhbmNlbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGFuZGxlcyB0aGUgbW91c2VldmVudCBldmVudCBpbnNpZGUgdGhlIGhvc3QgZWxlbWVudC5cclxuICAgICAqIEBwYXJhbSBldmVudCBcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBoYW5kbGVNb3VzZWVudGVyID0gKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCA9PiB7XHJcbiAgICAgICAgLypcclxuICAgICAgICBXaGVuIHRoZSB1c2VyIGVudGVycyB0aGUgaG9zdCwgc3RhcnQgdGhlIGhlc2l0YXRpb24gdGltZXIuIFRoaXMgdGltZXIgd2lsbCBiZVxyXG4gICAgICAgIGZ1bGZpbGxlZCBpZiB0aGUgdXNlciByZW1haW5zIGluc2lkZSBvZiB0aGUgaG9zdCB3aXRob3V0IHBlcmZvcm1pbmcgYW55IG90aGVyXHJcbiAgICAgICAgbWVhbmluZ2Z1bCBhY3Rpb25zLlxyXG4gICAgICAgICovXHJcbiAgICAgICAgdGhpcy50aW1lciA9IHNldFRpbWVvdXQodGhpcy5oYW5kbGVUaW1lclRocmVzaG9sZCwgdGhpcy5kdXJhdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIYW5kbGVzIHRoZSBtb3VzZWxlYXZlIGV2ZW50IGluc2lkZSB0aGUgaG9zdCBlbGVtZW50LlxyXG4gICAgICogQHBhcmFtIGV2ZW50IFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGhhbmRsZU1vdXNlbGVhdmUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkID0+IHtcclxuICAgICAgICB0aGlzLmNhbmNlbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGFuZGxlcyB0aGUgdGltZXIgdGhyZXNob2xkIGV2ZW50LlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGhhbmRsZVRpbWVyVGhyZXNob2xkID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgICAgIC8qXHJcbiAgICAgICAgT25jZSB0aGUgaGVzaXRhdGlvbiB0aW1lciB0aHJlc2hvbGQgaGFzIGJlZW4gc3VycGFzc2VkLCB3ZSB3YW50IHRvIHRyaWdnZXIgYW5cclxuICAgICAgICBvdXRwdXQgZXZlbnQuIFRoaXMgdGltZSwgaG93ZXZlciwgd2Ugd2FudCB0byB0cmlnZ2VyIEFuZ3VsYXIgY2hhbmdlLWRldGVjdGlvbi5cclxuICAgICAgICBBcyBzdWNoLCB3ZSBoYXZlIHNldCB1cCBpbnRvIHRoZSBBbmd1bGFyIHpvbmUgZm9yIHRoZSBlbWlzc2lvbi5cclxuICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuem9uZS5ydW5HdWFyZGVkKCgpID0+IHsgdGhpcy5kZWxheWVkaG92ZXJFdmVudHMuZW1pdCgpOyB9KTtcclxuICAgIH1cclxufSJdfQ==
@@ -0,0 +1,6 @@
1
+ export var AppEventType;
2
+ (function (AppEventType) {
3
+ AppEventType["ClickedOnNotification"] = "CLICKED_ON_NOTIFICATION";
4
+ AppEventType["SocketEvent"] = "SOCKET_EVENT";
5
+ })(AppEventType || (AppEventType = {}));
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWV2ZW50LXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9jb21tb24vZW51bXMvYXBwLWV2ZW50LXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksWUFHWDtBQUhELFdBQVksWUFBWTtJQUNwQixpRUFBaUQsQ0FBQTtJQUNqRCw0Q0FBNEIsQ0FBQTtBQUNoQyxDQUFDLEVBSFcsWUFBWSxLQUFaLFlBQVksUUFHdkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBBcHBFdmVudFR5cGUge1xyXG4gICAgQ2xpY2tlZE9uTm90aWZpY2F0aW9uID0gJ0NMSUNLRURfT05fTk9USUZJQ0FUSU9OJyxcclxuICAgIFNvY2tldEV2ZW50ID0gJ1NPQ0tFVF9FVkVOVCcsXHJcbn0iXX0=
@@ -0,0 +1,7 @@
1
+ export class AppEvent {
2
+ constructor(type, payload) {
3
+ this.type = type;
4
+ this.payload = payload;
5
+ }
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvY29tbW9uL21vZGVscy9hcHAtZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLFFBQVE7SUFDakIsWUFBbUIsSUFBa0IsRUFBUyxPQUFVO1FBQXJDLFNBQUksR0FBSixJQUFJLENBQWM7UUFBUyxZQUFPLEdBQVAsT0FBTyxDQUFHO0lBQUssQ0FBQztDQUNqRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcEV2ZW50VHlwZSB9IGZyb20gXCIuLi9lbnVtcy9hcHAtZXZlbnQtdHlwZVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFwcEV2ZW50PFQ+IHtcclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB0eXBlOiBBcHBFdmVudFR5cGUsIHB1YmxpYyBwYXlsb2FkOiBULCkgeyB9XHJcbn0iXX0=
@@ -6,9 +6,9 @@ export class FuncPipe {
6
6
  }
7
7
  }
8
8
  /** @nocollapse */ FuncPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: FuncPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
9
- /** @nocollapse */ FuncPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.0", ngImport: i0, type: FuncPipe, name: "func" });
9
+ /** @nocollapse */ FuncPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.0", ngImport: i0, type: FuncPipe, name: "func", pure: false });
10
10
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: FuncPipe, decorators: [{
11
11
  type: Pipe,
12
- args: [{ name: 'func' }]
12
+ args: [{ name: 'func', pure: false }]
13
13
  }] });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuYy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvY29tbW9uL3BpcGVzL2Z1bmMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFHcEQsTUFBTSxPQUFPLFFBQVE7SUFDakIsU0FBUyxDQUFDLEtBQTZCLEVBQUUsR0FBRyxJQUFXO1FBQ25ELE9BQU8sS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN6RSxDQUFDOzt3SEFIUSxRQUFRO3NIQUFSLFFBQVE7MkZBQVIsUUFBUTtrQkFEcEIsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbkBQaXBlKHsgbmFtZTogJ2Z1bmMnIH0pXHJcbmV4cG9ydCBjbGFzcyBGdW5jUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gICAgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcgfCBGdW5jdGlvbiB8IHt9LCAuLi5hcmdzOiBhbnlbXSk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyA/IHZhbHVlKC4uLmFyZ3MpIDogdmFsdWU7XHJcbiAgICB9XHJcbn0iXX0=
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuYy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvY29tbW9uL3BpcGVzL2Z1bmMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFHcEQsTUFBTSxPQUFPLFFBQVE7SUFDakIsU0FBUyxDQUFDLEtBQTZCLEVBQUUsR0FBRyxJQUFXO1FBQ25ELE9BQU8sS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN6RSxDQUFDOzt3SEFIUSxRQUFRO3NIQUFSLFFBQVE7MkZBQVIsUUFBUTtrQkFEcEIsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQFBpcGUoeyBuYW1lOiAnZnVuYycsIHB1cmU6IGZhbHNlIH0pXHJcbmV4cG9ydCBjbGFzcyBGdW5jUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gICAgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcgfCBGdW5jdGlvbiB8IHt9LCAuLi5hcmdzOiBhbnlbXSk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyA/IHZhbHVlKC4uLmFyZ3MpIDogdmFsdWU7XHJcbiAgICB9XHJcbn0iXX0=
@@ -1,5 +1,9 @@
1
1
  export * from './common.module';
2
+ export * from './directives/delayed-hover.directive';
2
3
  export * from './directives/disable-control.directive';
4
+ export * from './enums/app-event-type';
5
+ export * from './enums/salutation';
6
+ export * from './models/app-event';
3
7
  export * from './models/displayname-number-projection';
4
8
  export * from './models/displayname-projection';
5
9
  export * from './models/name-number-projection';
@@ -24,5 +28,6 @@ export * from './pipes/time.pipe';
24
28
  export * from './pipes/titlecase.pipe';
25
29
  export * from './pipes/truncate.pipe';
26
30
  export * from './pipes/values';
31
+ export * from './services/event-queue.service';
27
32
  export * from './templates/templates';
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2NvbW1vbi9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29tbW9uLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9kaXNhYmxlLWNvbnRyb2wuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvZGlzcGxheW5hbWUtbnVtYmVyLXByb2plY3Rpb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9kaXNwbGF5bmFtZS1wcm9qZWN0aW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvbmFtZS1udW1iZXItcHJvamVjdGlvbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL25hbWUtcHJvamVjdGlvbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL3RpdGxlLXByb2plY3Rpb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL2RhdGEtc291cmNlLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL2VudW0ucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvZmlsZS1zaXplLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL2ZpbHRlci5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9maXJzdC1sZXR0ZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL2Zvcm0tYXJyYXkucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvZm9ybS1jb250cm9sLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL2Zvcm0tZ3JvdXAucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvZnVuYy5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9rZXlzJztcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9tb250aC1uYW1lLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL29ubHktbnVtYmVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9vcmRlci5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9wbGFjZWhvbGRlci5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9zYWZlLWh0bWwucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvdGltZS5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy90aXRsZWNhc2UucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvdHJ1bmNhdGUucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvdmFsdWVzJztcclxuZXhwb3J0ICogZnJvbSAnLi90ZW1wbGF0ZXMvdGVtcGxhdGVzJztcclxuXHJcbiJdfQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2NvbW1vbi9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbW1vbi5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvZGVsYXllZC1ob3Zlci5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvZGlzYWJsZS1jb250cm9sLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZW51bXMvYXBwLWV2ZW50LXR5cGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2VudW1zL3NhbHV0YXRpb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9hcHAtZXZlbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9kaXNwbGF5bmFtZS1udW1iZXItcHJvamVjdGlvbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL2Rpc3BsYXluYW1lLXByb2plY3Rpb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9uYW1lLW51bWJlci1wcm9qZWN0aW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvbmFtZS1wcm9qZWN0aW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvdGl0bGUtcHJvamVjdGlvbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvZGF0YS1zb3VyY2UucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvZW51bS5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9maWxlLXNpemUucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvZmlsdGVyLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL2ZpcnN0LWxldHRlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvZm9ybS1hcnJheS5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9mb3JtLWNvbnRyb2wucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvZm9ybS1ncm91cC5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9mdW5jLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL2tleXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL21vbnRoLW5hbWUucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvb25seS1udW1iZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL29yZGVyLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3BsYWNlaG9sZGVyLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3NhZmUtaHRtbC5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy90aW1lLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3RpdGxlY2FzZS5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy90cnVuY2F0ZS5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy92YWx1ZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2V2ZW50LXF1ZXVlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3RlbXBsYXRlcy90ZW1wbGF0ZXMnO1xyXG4iXX0=
@@ -0,0 +1,33 @@
1
+ import { Injectable } from "@angular/core";
2
+ import { filter, Subject } from "rxjs";
3
+ import * as i0 from "@angular/core";
4
+ export class EventQueueService {
5
+ constructor() {
6
+ /**
7
+ * @property
8
+ */
9
+ this.eventBrocker = new Subject();
10
+ }
11
+ /**
12
+ * Event listener
13
+ * @param eventType
14
+ * @returns
15
+ */
16
+ on(eventType) {
17
+ return this.eventBrocker.pipe(filter(event => event.type === eventType));
18
+ }
19
+ /**
20
+ * Triggers an event
21
+ * @param event
22
+ */
23
+ emit(event) {
24
+ this.eventBrocker.next(event);
25
+ }
26
+ }
27
+ /** @nocollapse */ EventQueueService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: EventQueueService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
28
+ /** @nocollapse */ EventQueueService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: EventQueueService, providedIn: 'root' });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: EventQueueService, decorators: [{
30
+ type: Injectable,
31
+ args: [{ providedIn: 'root' }]
32
+ }] });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtcXVldWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2NvbW1vbi9zZXJ2aWNlcy9ldmVudC1xdWV1ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS25ELE1BQU0sT0FBTyxpQkFBaUI7SUFEOUI7UUFHSTs7V0FFRztRQUNLLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQWlCLENBQUM7S0FrQnZEO0lBaEJHOzs7O09BSUc7SUFDSSxFQUFFLENBQUMsU0FBdUI7UUFDN0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVEOzs7T0FHRztJQUNJLElBQUksQ0FBSSxLQUFrQjtRQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDOztpSUF0QlEsaUJBQWlCO3FJQUFqQixpQkFBaUIsY0FESixNQUFNOzJGQUNuQixpQkFBaUI7a0JBRDdCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IGZpbHRlciwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEFwcEV2ZW50VHlwZSB9IGZyb20gXCIuLi9lbnVtcy9hcHAtZXZlbnQtdHlwZVwiO1xyXG5pbXBvcnQgeyBBcHBFdmVudCB9IGZyb20gXCIuLi9tb2RlbHMvYXBwLWV2ZW50XCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgRXZlbnRRdWV1ZVNlcnZpY2Uge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByb3BlcnR5XHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZXZlbnRCcm9ja2VyID0gbmV3IFN1YmplY3Q8QXBwRXZlbnQ8YW55Pj4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEV2ZW50IGxpc3RlbmVyXHJcbiAgICAgKiBAcGFyYW0gZXZlbnRUeXBlIFxyXG4gICAgICogQHJldHVybnMgXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvbihldmVudFR5cGU6IEFwcEV2ZW50VHlwZSk6IE9ic2VydmFibGU8QXBwRXZlbnQ8YW55Pj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmV2ZW50QnJvY2tlci5waXBlKGZpbHRlcihldmVudCA9PiBldmVudC50eXBlID09PSBldmVudFR5cGUpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRyaWdnZXJzIGFuIGV2ZW50XHJcbiAgICAgKiBAcGFyYW0gZXZlbnQgXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBlbWl0PFQ+KGV2ZW50OiBBcHBFdmVudDxUPik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZXZlbnRCcm9ja2VyLm5leHQoZXZlbnQpO1xyXG4gICAgfVxyXG59Il19
@@ -0,0 +1,184 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { MatDrawer, MatSidenav } from '@angular/material/sidenav';
3
+ import { VdMediaService } from '../../media/services/media.service';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../media/services/media.service";
6
+ import * as i2 from "@angular/material/sidenav";
7
+ import * as i3 from "../../menu/components/menu.component";
8
+ export class VdLayoutCompactComponent {
9
+ /**
10
+ * Constructor
11
+ */
12
+ constructor(media) {
13
+ this.media = media;
14
+ /**
15
+ * @field
16
+ */
17
+ this._sidenavWidth = '88px';
18
+ /**
19
+ * @field
20
+ */
21
+ this._subMenuWidth = '230px';
22
+ /**
23
+ * @field
24
+ */
25
+ this._mobile = false;
26
+ /**
27
+ * menuItems: MenuItem[]
28
+ */
29
+ this.menuItems = [];
30
+ /**
31
+ * mode?: 'side', 'push' or 'over'
32
+ *
33
+ * The mode or styling of the sidenav.
34
+ * Defaults to "over".
35
+ */
36
+ this.mode = 'side';
37
+ /**
38
+ * opened?: boolean
39
+ *
40
+ * Whether or not the sidenav is opened. Use this binding to open/close the sidenav.
41
+ * Defaults to "false".
42
+ */
43
+ this.opened = true;
44
+ /**
45
+ * Expands the mini menu
46
+ */
47
+ this.expanded = false;
48
+ /**
49
+ * @property
50
+ */
51
+ this.subMenuHovered = false;
52
+ /**
53
+ * overGt?: string
54
+ */
55
+ this.sideGt = 'sm';
56
+ /**
57
+ * Event emitted when the drawer expand state is changed.
58
+ */
59
+ this.expandedChange = new EventEmitter();
60
+ }
61
+ /**
62
+ * @property
63
+ */
64
+ get mobile() { return this._mobile; }
65
+ ;
66
+ /**
67
+ * sidenavWidth?: string
68
+ *
69
+ * Sets the "width" of the sidenav in either "px" or "%"
70
+ * Defaults to "320px".
71
+ */
72
+ set sidenavWidth(sidenavWidth) { this._sidenavWidth = sidenavWidth; }
73
+ ;
74
+ get sidenavWidth() { return this._sidenavWidth; }
75
+ ;
76
+ /**
77
+ * subMenuWidth?: string
78
+ *
79
+ * Sets the "width" of the sidenav in either "px" or "%"
80
+ * Defaults to "320px".
81
+ */
82
+ set subMenuWidth(subMenuWidth) { this._subMenuWidth = subMenuWidth; }
83
+ ;
84
+ get subMenuWidth() { return this._subMenuWidth; }
85
+ ;
86
+ /**
87
+ * Checks if `ESC` should close the sidenav
88
+ * Should only close it for `push` and `over` modes
89
+ */
90
+ get disableClose() { return this.mode === 'side'; }
91
+ /**
92
+ * Called after the constructor, initializing input properties, and the first call to ngOnChanges.
93
+ * Add 'implements OnInit' to the class.
94
+ */
95
+ ngOnInit() {
96
+ this.sidenav.closedStart?.subscribe(x => {
97
+ // this.colapse();
98
+ });
99
+ if (this.sideGt) {
100
+ // this.media.registerQuery(`gt-${this.sideGt}`).subscribe((x: boolean) => {
101
+ // this._mobile = !x;
102
+ // this.mode = this._mobile ? 'over' : (this._mini ? 'side' : 'over');
103
+ // this.opened = this._mobile ? false : this._mini;
104
+ // this.expanded = false;
105
+ // });
106
+ }
107
+ }
108
+ /**
109
+ * Proxy toggle method to access sidenav from outside (from vd-layout template).
110
+ */
111
+ toggle() {
112
+ return this.sidenav.toggle(!this.sidenav.opened);
113
+ }
114
+ /**
115
+ * Proxy open method to access sidenav from outside (from vd-layout template).
116
+ */
117
+ open() {
118
+ return this.sidenav.open();
119
+ }
120
+ /**
121
+ * Proxy close method to access sidenav from outside (from vd-layout template).
122
+ */
123
+ close() {
124
+ return this.sidenav.close();
125
+ }
126
+ /**
127
+ * Proxy close method to access sidenav from outside (from vd-layout template).
128
+ */
129
+ colapseMenu($event) { }
130
+ /**
131
+ * Proxy expand method to access sidenav from outside (from vd-layout template).
132
+ */
133
+ expandMenu($event) {
134
+ this.menuItems = $event?.item?.items;
135
+ if (this.menuItems?.length) {
136
+ this.subMenuDrawer.open();
137
+ }
138
+ }
139
+ /**
140
+ * Event emitted when a the mouse is initially moved so that its hotspot is
141
+ * within the element at which the event was fired.
142
+ */
143
+ onSubMenuMouseOver($event) {
144
+ this.subMenuHovered = true;
145
+ }
146
+ /**
147
+ * Event emitted when the cursor of the mouse is moved out of it.
148
+ */
149
+ onSubMenuMouseOut($event) {
150
+ this.subMenuHovered = false;
151
+ if (this.subMenuDrawer.opened) {
152
+ this.subMenuDrawer.close();
153
+ }
154
+ }
155
+ }
156
+ /** @nocollapse */ VdLayoutCompactComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: VdLayoutCompactComponent, deps: [{ token: i1.VdMediaService }], target: i0.ɵɵFactoryTarget.Component });
157
+ /** @nocollapse */ VdLayoutCompactComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.0", type: VdLayoutCompactComponent, selector: "vd-layout-compact", inputs: { menuItems: "menuItems", mode: "mode", opened: "opened", expanded: "expanded", sideGt: "sideGt", sidenavWidth: "sidenavWidth", subMenuWidth: "subMenuWidth" }, outputs: { expandedChange: "expandedChange" }, viewQueries: [{ propertyName: "sidenav", first: true, predicate: MatSidenav, descendants: true, static: true }, { propertyName: "subMenuDrawer", first: true, predicate: ["subMenuDrawer"], descendants: true, static: true }], ngImport: i0, template: "<mat-sidenav-container class=\"sidenav-container-mini\" fullscreen>\r\n\t<mat-sidenav #sidenav class=\"vd-layout-sidenav sidenav-mini\" [mode]=\"mode\" [opened]=\"opened\" [style.max-width]=\"sidenavWidth\" [style.min-width]=\"sidenavWidth\" [disableClose]=\"disableClose\">\r\n\t\t<ng-content select=\"vd-navigation-drawer\"></ng-content>\r\n\t\t<ng-content select=\"[vd-sidenav-content]\"></ng-content>\r\n\t</mat-sidenav>\r\n\t<mat-drawer-container fullscreen>\r\n\t\t<mat-drawer #subMenuDrawer mode=\"over\" [style.max-width]=\"subMenuWidth\" [style.min-width]=\"subMenuWidth\" (mouseenter)=\"onSubMenuMouseOver($event)\" (mouseleave)=\"onSubMenuMouseOut($event)\">\r\n\t\t\t<vd-menu [items]=\"menuItems\" [activeExact]=\"false\"></vd-menu>\r\n\t\t</mat-drawer>\r\n\t\t<ng-content></ng-content>\r\n\t</mat-drawer-container>\r\n</mat-sidenav-container>", styles: [":host ::ng-deep .vd-navigation-drawer-content mat-nav-list .mat-mdc-list-item{display:flex;flex-direction:column;width:80px;margin:0 auto;padding:8px 0;height:66px!important}:host ::ng-deep .vd-navigation-drawer-content mat-nav-list .mat-mdc-list-item .mdc-list-item__content .mat-mdc-list-item-title{font-size:12px;font-weight:400;letter-spacing:.1px;padding-top:2px}\n"], dependencies: [{ kind: "component", type: i2.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i2.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i2.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i2.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i3.VdMenuComponent, selector: "vd-menu", inputs: ["items", "activeExact", "fontSet", "avatar"], outputs: ["click", "over", "out"] }] });
158
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: VdLayoutCompactComponent, decorators: [{
159
+ type: Component,
160
+ args: [{ selector: 'vd-layout-compact', template: "<mat-sidenav-container class=\"sidenav-container-mini\" fullscreen>\r\n\t<mat-sidenav #sidenav class=\"vd-layout-sidenav sidenav-mini\" [mode]=\"mode\" [opened]=\"opened\" [style.max-width]=\"sidenavWidth\" [style.min-width]=\"sidenavWidth\" [disableClose]=\"disableClose\">\r\n\t\t<ng-content select=\"vd-navigation-drawer\"></ng-content>\r\n\t\t<ng-content select=\"[vd-sidenav-content]\"></ng-content>\r\n\t</mat-sidenav>\r\n\t<mat-drawer-container fullscreen>\r\n\t\t<mat-drawer #subMenuDrawer mode=\"over\" [style.max-width]=\"subMenuWidth\" [style.min-width]=\"subMenuWidth\" (mouseenter)=\"onSubMenuMouseOver($event)\" (mouseleave)=\"onSubMenuMouseOut($event)\">\r\n\t\t\t<vd-menu [items]=\"menuItems\" [activeExact]=\"false\"></vd-menu>\r\n\t\t</mat-drawer>\r\n\t\t<ng-content></ng-content>\r\n\t</mat-drawer-container>\r\n</mat-sidenav-container>", styles: [":host ::ng-deep .vd-navigation-drawer-content mat-nav-list .mat-mdc-list-item{display:flex;flex-direction:column;width:80px;margin:0 auto;padding:8px 0;height:66px!important}:host ::ng-deep .vd-navigation-drawer-content mat-nav-list .mat-mdc-list-item .mdc-list-item__content .mat-mdc-list-item-title{font-size:12px;font-weight:400;letter-spacing:.1px;padding-top:2px}\n"] }]
161
+ }], ctorParameters: function () { return [{ type: i1.VdMediaService }]; }, propDecorators: { sidenav: [{
162
+ type: ViewChild,
163
+ args: [MatSidenav, { static: true }]
164
+ }], subMenuDrawer: [{
165
+ type: ViewChild,
166
+ args: ['subMenuDrawer', { static: true }]
167
+ }], menuItems: [{
168
+ type: Input
169
+ }], mode: [{
170
+ type: Input
171
+ }], opened: [{
172
+ type: Input
173
+ }], expanded: [{
174
+ type: Input
175
+ }], sideGt: [{
176
+ type: Input
177
+ }], expandedChange: [{
178
+ type: Output
179
+ }], sidenavWidth: [{
180
+ type: Input
181
+ }], subMenuWidth: [{
182
+ type: Input
183
+ }] } });
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWNvbXBhY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvbGF5b3V0L2xheW91dC1jb21wYWN0L2xheW91dC1jb21wYWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2xheW91dC9sYXlvdXQtY29tcGFjdC9sYXlvdXQtY29tcGFjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsU0FBUyxFQUF5QixVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7O0FBU3BFLE1BQU0sT0FBTyx3QkFBd0I7SUEyR3BDOztPQUVHO0lBQ0gsWUFBb0IsS0FBcUI7UUFBckIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUE1R3pDOztXQUVHO1FBQ0ssa0JBQWEsR0FBVyxNQUFNLENBQUM7UUFFdkM7O1dBRUc7UUFDSyxrQkFBYSxHQUFXLE9BQU8sQ0FBQztRQUV4Qzs7V0FFRztRQUNLLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFjakM7O1dBRUc7UUFFSSxjQUFTLEdBQWUsRUFBRSxDQUFDO1FBRWxDOzs7OztXQUtHO1FBRUksU0FBSSxHQUE2QixNQUFNLENBQUM7UUFFL0M7Ozs7O1dBS0c7UUFFSSxXQUFNLEdBQVksSUFBSSxDQUFDO1FBTzlCOztXQUVHO1FBRUksYUFBUSxHQUFZLEtBQUssQ0FBQztRQUVqQzs7V0FFRztRQUNJLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBRXZDOztXQUVHO1FBRUksV0FBTSxHQUFXLElBQUksQ0FBQztRQUU3Qjs7V0FF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SztnQkFZQyxRQUFRO3NCQURkLEtBQUs7Z0JBWUMsTUFBTTtzQkFEWixLQUFLO2dCQU9DLGNBQWM7c0JBRHBCLE1BQU07Z0JBVUksWUFBWTtzQkFEdEIsS0FBSztnQkFXSyxZQUFZO3NCQUR0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREcmF3ZXIsIE1hdERyYXdlclRvZ2dsZVJlc3VsdCwgTWF0U2lkZW5hdiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xyXG5pbXBvcnQgeyBWZE1lZGlhU2VydmljZSB9IGZyb20gJy4uLy4uL21lZGlhL3NlcnZpY2VzL21lZGlhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJy4uLy4uL21lbnUvbW9kZWxzL21lbnUtaXRlbSc7XHJcbmltcG9ydCB7IElMYXlvdXRUb2dnbGFibGUgfSBmcm9tICcuLi9sYXlvdXQtdG9nZ2xlLmNsYXNzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAndmQtbGF5b3V0LWNvbXBhY3QnLFxyXG5cdHN0eWxlVXJsczogWycuL2xheW91dC1jb21wYWN0LmNvbXBvbmVudC5zY3NzJ10sXHJcblx0dGVtcGxhdGVVcmw6ICcuL2xheW91dC1jb21wYWN0LmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFZkTGF5b3V0Q29tcGFjdENvbXBvbmVudCBpbXBsZW1lbnRzIElMYXlvdXRUb2dnbGFibGUge1xyXG5cclxuXHQvKipcclxuXHQgKiBAZmllbGRcclxuXHQgKi9cclxuXHRwcml2YXRlIF9zaWRlbmF2V2lkdGg6IHN0cmluZyA9ICc4OHB4JztcclxuXHJcblx0LyoqXHJcblx0ICogQGZpZWxkXHJcblx0ICovXHJcblx0cHJpdmF0ZSBfc3ViTWVudVdpZHRoOiBzdHJpbmcgPSAnMjMwcHgnO1xyXG5cclxuXHQvKipcclxuXHQgKiBAZmllbGRcclxuXHQgKi9cclxuXHRwcml2YXRlIF9tb2JpbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0LyoqXHJcblx0ICogQHByb3BlcnR5XHJcblx0ICovXHJcblx0QFZpZXdDaGlsZChNYXRTaWRlbmF2LCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG5cdHB1YmxpYyBzaWRlbmF2OiBNYXRTaWRlbmF2O1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHlcclxuXHQgKi9cclxuXHRAVmlld0NoaWxkKCdzdWJNZW51RHJhd2VyJywgeyBzdGF0aWM6IHRydWUgfSlcclxuXHRwdWJsaWMgc3ViTWVudURyYXdlcjogTWF0RHJhd2VyO1xyXG5cclxuXHQvKipcclxuXHQgKiBtZW51SXRlbXM6IE1lbnVJdGVtW11cclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBtZW51SXRlbXM6IE1lbnVJdGVtW10gPSBbXTtcclxuXHJcblx0LyoqXHJcblx0ICogbW9kZT86ICdzaWRlJywgJ3B1c2gnIG9yICdvdmVyJ1xyXG5cdCAqXHJcblx0ICogVGhlIG1vZGUgb3Igc3R5bGluZyBvZiB0aGUgc2lkZW5hdi5cclxuXHQgKiBEZWZhdWx0cyB0byBcIm92ZXJcIi5cclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBtb2RlOiAnc2lkZScgfCAncHVzaCcgfCAnb3ZlcicgPSAnc2lkZSc7XHJcblxyXG5cdC8qKlxyXG5cdCAqIG9wZW5lZD86IGJvb2xlYW5cclxuXHQgKlxyXG5cdCAqIFdoZXRoZXIgb3Igbm90IHRoZSBzaWRlbmF2IGlzIG9wZW5lZC4gVXNlIHRoaXMgYmluZGluZyB0byBvcGVuL2Nsb3NlIHRoZSBzaWRlbmF2LlxyXG5cdCAqIERlZmF1bHRzIHRvIFwiZmFsc2VcIi5cclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBvcGVuZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHlcclxuXHQgKi9cclxuXHRwdWJsaWMgZ2V0IG1vYmlsZSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX21vYmlsZTsgfTtcclxuXHJcblx0LyoqXHJcblx0ICogRXhwYW5kcyB0aGUgbWluaSBtZW51XHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRwdWJsaWMgZXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0LyoqXHJcblx0ICogQHByb3BlcnR5XHJcblx0ICovXHJcblx0cHVibGljIHN1Yk1lbnVIb3ZlcmVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cdC8qKlxyXG5cdCAqIG92ZXJHdD86IHN0cmluZ1xyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIHNpZGVHdDogc3RyaW5nID0gJ3NtJztcclxuXHJcblx0LyoqIFxyXG5cdCAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgZHJhd2VyIGV4cGFuZCBzdGF0ZSBpcyBjaGFuZ2VkLlxyXG5cdCAqL1xyXG5cdEBPdXRwdXQoKVxyXG5cdHB1YmxpYyBleHBhbmRlZENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuXHQvKipcclxuXHQgKiBzaWRlbmF2V2lkdGg/OiBzdHJpbmdcclxuXHQgKlxyXG5cdCAqIFNldHMgdGhlIFwid2lkdGhcIiBvZiB0aGUgc2lkZW5hdiBpbiBlaXRoZXIgXCJweFwiIG9yIFwiJVwiXHJcblx0ICogRGVmYXVsdHMgdG8gXCIzMjBweFwiLlxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIHNldCBzaWRlbmF2V2lkdGgoc2lkZW5hdldpZHRoKSB7IHRoaXMuX3NpZGVuYXZXaWR0aCA9IHNpZGVuYXZXaWR0aDsgfTtcclxuXHRwdWJsaWMgZ2V0IHNpZGVuYXZXaWR0aCgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5fc2lkZW5hdldpZHRoOyB9O1xyXG5cclxuXHQvKipcclxuXHQgKiBzdWJNZW51V2lkdGg/OiBzdHJpbmdcclxuXHQgKlxyXG5cdCAqIFNldHMgdGhlIFwid2lkdGhcIiBvZiB0aGUgc2lkZW5hdiBpbiBlaXRoZXIgXCJweFwiIG9yIFwiJVwiXHJcblx0ICogRGVmYXVsdHMgdG8gXCIzMjBweFwiLlxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIHNldCBzdWJNZW51V2lkdGgoc3ViTWVudVdpZHRoKSB7IHRoaXMuX3N1Yk1lbnVXaWR0aCA9IHN1Yk1lbnVXaWR0aDsgfTtcclxuXHRwdWJsaWMgZ2V0IHN1Yk1lbnVXaWR0aCgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5fc3ViTWVudVdpZHRoOyB9O1xyXG5cclxuXHQvKipcclxuXHQgKiBDaGVja3MgaWYgYEVTQ2Agc2hvdWxkIGNsb3NlIHRoZSBzaWRlbmF2XHJcblx0ICogU2hvdWxkIG9ubHkgY2xvc2UgaXQgZm9yIGBwdXNoYCBhbmQgYG92ZXJgIG1vZGVzXHJcblx0ICovXHJcblx0cHVibGljIGdldCBkaXNhYmxlQ2xvc2UoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLm1vZGUgPT09ICdzaWRlJzsgfVxyXG5cclxuXHQvKipcclxuXHQgKiBDb25zdHJ1Y3RvclxyXG5cdCAqL1xyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgbWVkaWE6IFZkTWVkaWFTZXJ2aWNlKSB7IH1cclxuXHJcblx0LyoqXHJcblx0ICogQ2FsbGVkIGFmdGVyIHRoZSBjb25zdHJ1Y3RvciwgaW5pdGlhbGl6aW5nIGlucHV0IHByb3BlcnRpZXMsIGFuZCB0aGUgZmlyc3QgY2FsbCB0byBuZ09uQ2hhbmdlcy5cclxuXHQgKiBBZGQgJ2ltcGxlbWVudHMgT25Jbml0JyB0byB0aGUgY2xhc3MuXHJcblx0ICovXHJcblx0bmdPbkluaXQoKTogdm9pZCB7XHJcblx0XHR0aGlzLnNpZGVuYXYuY2xvc2VkU3RhcnQ/LnN1YnNjcmliZSh4ID0+IHtcclxuXHRcdFx0Ly8gdGhpcy5jb2xhcHNlKCk7XHJcblx0XHR9KTtcclxuXHJcblx0XHRpZiAodGhpcy5zaWRlR3QpIHtcclxuXHRcdFx0Ly8gdGhpcy5tZWRpYS5yZWdpc3RlclF1ZXJ5KGBndC0ke3RoaXMuc2lkZUd0fWApLnN1YnNjcmliZSgoeDogYm9vbGVhbikgPT4ge1xyXG5cdFx0XHQvLyBcdHRoaXMuX21vYmlsZSA9ICF4O1xyXG5cdFx0XHQvLyBcdHRoaXMubW9kZSA9IHRoaXMuX21vYmlsZSA/ICdvdmVyJyA6ICh0aGlzLl9taW5pID8gJ3NpZGUnIDogJ292ZXInKTtcclxuXHRcdFx0Ly8gXHR0aGlzLm9wZW5lZCA9IHRoaXMuX21vYmlsZSA/IGZhbHNlIDogdGhpcy5fbWluaTtcclxuXHRcdFx0Ly8gXHR0aGlzLmV4cGFuZGVkID0gZmFsc2U7XHJcblx0XHRcdC8vIH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogUHJveHkgdG9nZ2xlIG1ldGhvZCB0byBhY2Nlc3Mgc2lkZW5hdiBmcm9tIG91dHNpZGUgKGZyb20gdmQtbGF5b3V0IHRlbXBsYXRlKS5cclxuXHQgKi9cclxuXHRwdWJsaWMgdG9nZ2xlKCk6IFByb21pc2U8TWF0RHJhd2VyVG9nZ2xlUmVzdWx0PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5zaWRlbmF2LnRvZ2dsZSghdGhpcy5zaWRlbmF2Lm9wZW5lZCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBQcm94eSBvcGVuIG1ldGhvZCB0byBhY2Nlc3Mgc2lkZW5hdiBmcm9tIG91dHNpZGUgKGZyb20gdmQtbGF5b3V0IHRlbXBsYXRlKS5cclxuXHQgKi9cclxuXHRwdWJsaWMgb3BlbigpOiBQcm9taXNlPE1hdERyYXdlclRvZ2dsZVJlc3VsdD4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuc2lkZW5hdi5vcGVuKCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBQcm94eSBjbG9zZSBtZXRob2QgdG8gYWNjZXNzIHNpZGVuYXYgZnJvbSBvdXRzaWRlIChmcm9tIHZkLWxheW91dCB0ZW1wbGF0ZSkuXHJcblx0ICovXHJcblx0cHVibGljIGNsb3NlKCk6IFByb21pc2U8TWF0RHJhd2VyVG9nZ2xlUmVzdWx0PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5zaWRlbmF2LmNsb3NlKCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBQcm94eSBjbG9zZSBtZXRob2QgdG8gYWNjZXNzIHNpZGVuYXYgZnJvbSBvdXRzaWRlIChmcm9tIHZkLWxheW91dCB0ZW1wbGF0ZSkuXHJcblx0ICovXHJcblx0cHVibGljIGNvbGFwc2VNZW51KCRldmVudDogYW55KTogdm9pZCB7IH1cclxuXHJcblx0LyoqXHJcblx0ICogUHJveHkgZXhwYW5kIG1ldGhvZCB0byBhY2Nlc3Mgc2lkZW5hdiBmcm9tIG91dHNpZGUgKGZyb20gdmQtbGF5b3V0IHRlbXBsYXRlKS5cclxuXHQgKi9cclxuXHRwdWJsaWMgZXhwYW5kTWVudSgkZXZlbnQ6IGFueSk6IHZvaWQge1xyXG5cdFx0dGhpcy5tZW51SXRlbXMgPSAkZXZlbnQ/Lml0ZW0/Lml0ZW1zO1xyXG5cdFx0aWYgKHRoaXMubWVudUl0ZW1zPy5sZW5ndGgpIHtcclxuXHRcdFx0dGhpcy5zdWJNZW51RHJhd2VyLm9wZW4oKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHRoZSBtb3VzZSBpcyBpbml0aWFsbHkgbW92ZWQgc28gdGhhdCBpdHMgaG90c3BvdCBpcyBcclxuXHQgKiB3aXRoaW4gdGhlIGVsZW1lbnQgYXQgd2hpY2ggdGhlIGV2ZW50IHdhcyBmaXJlZC5cclxuXHQgKi9cclxuXHRwdWJsaWMgb25TdWJNZW51TW91c2VPdmVyKCRldmVudDogYW55KTogdm9pZCB7XHJcblx0XHR0aGlzLnN1Yk1lbnVIb3ZlcmVkID0gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgY3Vyc29yIG9mIHRoZSBtb3VzZSBpcyBtb3ZlZCBvdXQgb2YgaXQuXHJcblx0ICovXHJcblx0cHVibGljIG9uU3ViTWVudU1vdXNlT3V0KCRldmVudDogYW55KTogdm9pZCB7XHJcblx0XHR0aGlzLnN1Yk1lbnVIb3ZlcmVkID0gZmFsc2U7XHJcblx0XHRpZiAodGhpcy5zdWJNZW51RHJhd2VyLm9wZW5lZCkge1xyXG5cdFx0XHR0aGlzLnN1Yk1lbnVEcmF3ZXIuY2xvc2UoKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiPG1hdC1zaWRlbmF2LWNvbnRhaW5lciBjbGFzcz1cInNpZGVuYXYtY29udGFpbmVyLW1pbmlcIiBmdWxsc2NyZWVuPlxyXG5cdDxtYXQtc2lkZW5hdiAjc2lkZW5hdiBjbGFzcz1cInZkLWxheW91dC1zaWRlbmF2IHNpZGVuYXYtbWluaVwiIFttb2RlXT1cIm1vZGVcIiBbb3BlbmVkXT1cIm9wZW5lZFwiIFtzdHlsZS5tYXgtd2lkdGhdPVwic2lkZW5hdldpZHRoXCIgW3N0eWxlLm1pbi13aWR0aF09XCJzaWRlbmF2V2lkdGhcIiBbZGlzYWJsZUNsb3NlXT1cImRpc2FibGVDbG9zZVwiPlxyXG5cdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwidmQtbmF2aWdhdGlvbi1kcmF3ZXJcIj48L25nLWNvbnRlbnQ+XHJcblx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJbdmQtc2lkZW5hdi1jb250ZW50XVwiPjwvbmctY29udGVudD5cclxuXHQ8L21hdC1zaWRlbmF2PlxyXG5cdDxtYXQtZHJhd2VyLWNvbnRhaW5lciBmdWxsc2NyZWVuPlxyXG5cdFx0PG1hdC1kcmF3ZXIgI3N1Yk1lbnVEcmF3ZXIgbW9kZT1cIm92ZXJcIiBbc3R5bGUubWF4LXdpZHRoXT1cInN1Yk1lbnVXaWR0aFwiIFtzdHlsZS5taW4td2lkdGhdPVwic3ViTWVudVdpZHRoXCIgKG1vdXNlZW50ZXIpPVwib25TdWJNZW51TW91c2VPdmVyKCRldmVudClcIiAobW91c2VsZWF2ZSk9XCJvblN1Yk1lbnVNb3VzZU91dCgkZXZlbnQpXCI+XHJcblx0XHRcdDx2ZC1tZW51IFtpdGVtc109XCJtZW51SXRlbXNcIiBbYWN0aXZlRXhhY3RdPVwiZmFsc2VcIj48L3ZkLW1lbnU+XHJcblx0XHQ8L21hdC1kcmF3ZXI+XHJcblx0XHQ8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcblx0PC9tYXQtZHJhd2VyLWNvbnRhaW5lcj5cclxuPC9tYXQtc2lkZW5hdi1jb250YWluZXI+Il19