@seniorsistemas/angular-components 17.1.7 → 17.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/bundles/seniorsistemas-angular-components.umd.js +880 -116
  2. package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
  3. package/bundles/seniorsistemas-angular-components.umd.min.js +2 -2
  4. package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
  5. package/components/button/button.component.d.ts +1 -0
  6. package/components/file-upload/file-upload.component.d.ts +7 -2
  7. package/components/file-upload/models/file-upload-permissions.d.ts +6 -0
  8. package/components/file-upload/models/index.d.ts +1 -0
  9. package/components/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +28 -0
  10. package/components/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.d.ts +2 -0
  11. package/components/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.d.ts +14 -0
  12. package/components/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.d.ts +21 -0
  13. package/components/tiered-menu/index.d.ts +3 -0
  14. package/components/tiered-menu/models/index.d.ts +2 -0
  15. package/components/tiered-menu/models/tiered-menu-item-data.d.ts +7 -0
  16. package/components/tiered-menu/models/tiered-menu-item-internal-data.d.ts +10 -0
  17. package/components/tiered-menu/tiered-menu.directive.d.ts +37 -0
  18. package/components/tiered-menu/tiered-menu.event.service.d.ts +18 -0
  19. package/components/tiered-menu/tiered-menu.module.d.ts +2 -0
  20. package/components/tiered-menu/tiered-menu.service.d.ts +10 -0
  21. package/esm2015/components/button/button.component.js +6 -2
  22. package/esm2015/components/file-upload/file-upload.component.js +13 -5
  23. package/esm2015/components/file-upload/file-upload.module.js +2 -2
  24. package/esm2015/components/file-upload/models/file-upload-permissions.js +12 -0
  25. package/esm2015/components/file-upload/models/index.js +2 -1
  26. package/esm2015/components/tiered-menu/components/tiered-menu/tiered-menu.component.js +219 -0
  27. package/esm2015/components/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.js +13 -0
  28. package/esm2015/components/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.js +68 -0
  29. package/esm2015/components/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.js +131 -0
  30. package/esm2015/components/tiered-menu/index.js +3 -0
  31. package/esm2015/components/tiered-menu/models/index.js +1 -0
  32. package/esm2015/components/tiered-menu/models/tiered-menu-item-data.js +1 -0
  33. package/esm2015/components/tiered-menu/models/tiered-menu-item-internal-data.js +1 -0
  34. package/esm2015/components/tiered-menu/tiered-menu.directive.js +212 -0
  35. package/esm2015/components/tiered-menu/tiered-menu.event.service.js +39 -0
  36. package/esm2015/components/tiered-menu/tiered-menu.module.js +35 -0
  37. package/esm2015/components/tiered-menu/tiered-menu.service.js +39 -0
  38. package/esm2015/components/tooltip/tooltip.directive.js +2 -2
  39. package/esm2015/public-api.js +2 -1
  40. package/esm2015/seniorsistemas-angular-components.js +7 -1
  41. package/esm5/components/button/button.component.js +6 -2
  42. package/esm5/components/file-upload/file-upload.component.js +13 -5
  43. package/esm5/components/file-upload/file-upload.module.js +2 -2
  44. package/esm5/components/file-upload/models/file-upload-permissions.js +12 -0
  45. package/esm5/components/file-upload/models/index.js +2 -1
  46. package/esm5/components/tiered-menu/components/tiered-menu/tiered-menu.component.js +224 -0
  47. package/esm5/components/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.js +16 -0
  48. package/esm5/components/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.js +70 -0
  49. package/esm5/components/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.js +133 -0
  50. package/esm5/components/tiered-menu/index.js +3 -0
  51. package/esm5/components/tiered-menu/models/index.js +1 -0
  52. package/esm5/components/tiered-menu/models/tiered-menu-item-data.js +1 -0
  53. package/esm5/components/tiered-menu/models/tiered-menu-item-internal-data.js +1 -0
  54. package/esm5/components/tiered-menu/tiered-menu.directive.js +216 -0
  55. package/esm5/components/tiered-menu/tiered-menu.event.service.js +40 -0
  56. package/esm5/components/tiered-menu/tiered-menu.module.js +38 -0
  57. package/esm5/components/tiered-menu/tiered-menu.service.js +44 -0
  58. package/esm5/components/tooltip/tooltip.directive.js +2 -2
  59. package/esm5/public-api.js +2 -1
  60. package/esm5/seniorsistemas-angular-components.js +7 -1
  61. package/fesm2015/seniorsistemas-angular-components.js +845 -114
  62. package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
  63. package/fesm5/seniorsistemas-angular-components.js +876 -120
  64. package/fesm5/seniorsistemas-angular-components.js.map +1 -1
  65. package/package.json +1 -1
  66. package/public-api.d.ts +1 -0
  67. package/seniorsistemas-angular-components.d.ts +6 -0
  68. package/seniorsistemas-angular-components.metadata.json +1 -1
@@ -0,0 +1,219 @@
1
+ var TieredMenuComponent_1;
2
+ import { __decorate } from "tslib";
3
+ import { ApplicationRef, Component, ComponentFactoryResolver, ComponentRef, EmbeddedViewRef, EventEmitter, Injector, OnDestroy, OnInit, Output, } from "@angular/core";
4
+ import { Subject } from "rxjs";
5
+ import { takeUntil } from "rxjs/operators";
6
+ import { TieredMenuEventService } from "../../tiered-menu.event.service";
7
+ import { TieredMenuService } from "../../tiered-menu.service";
8
+ let TieredMenuComponent = TieredMenuComponent_1 = class TieredMenuComponent {
9
+ constructor(_appRef, _componentFactoryResolver, _injector, tieredMenuService, _tieredMenuEventService) {
10
+ this._appRef = _appRef;
11
+ this._componentFactoryResolver = _componentFactoryResolver;
12
+ this._injector = _injector;
13
+ this.tieredMenuService = tieredMenuService;
14
+ this._tieredMenuEventService = _tieredMenuEventService;
15
+ this.top = 0;
16
+ this.left = 0;
17
+ this.menuTriggerEvent = "hover";
18
+ this._componentRef = null;
19
+ this._unsubscribe$ = new Subject();
20
+ this.destroyRequest = new EventEmitter();
21
+ }
22
+ ngOnInit() {
23
+ this.tieredMenuService.currentItems = this.items;
24
+ this._subscribeEvents();
25
+ }
26
+ ngOnDestroy() {
27
+ this._unsubscribe$.next();
28
+ this._unsubscribe$.complete();
29
+ }
30
+ _incrementCurItem() {
31
+ if (!this.tieredMenuService.currentItem) {
32
+ this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];
33
+ return;
34
+ }
35
+ else if (!this.items.includes(this.tieredMenuService.currentItem)) {
36
+ // Checking if it is the current menu.
37
+ return;
38
+ }
39
+ const currentIndex = this.tieredMenuService.currentItems.indexOf(this.tieredMenuService.currentItem) + 1;
40
+ if (currentIndex < this.tieredMenuService.currentItems.length) {
41
+ this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[currentIndex];
42
+ }
43
+ else {
44
+ this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];
45
+ }
46
+ if (this.tieredMenuService.currentItem.divider) {
47
+ this._incrementCurItem();
48
+ }
49
+ }
50
+ _decrementCurItem() {
51
+ if (!this.tieredMenuService.currentItem) {
52
+ this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];
53
+ return;
54
+ // Checking if it is the current menu.
55
+ }
56
+ else if (!this.items.includes(this.tieredMenuService.currentItem)) {
57
+ return;
58
+ }
59
+ const curIndex = this.tieredMenuService.currentItems.indexOf(this.tieredMenuService.currentItem) - 1;
60
+ if (curIndex >= 0) {
61
+ this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[curIndex];
62
+ }
63
+ else {
64
+ this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[this.tieredMenuService.currentItems.length - 1];
65
+ }
66
+ if (this.tieredMenuService.currentItem.divider) {
67
+ this._decrementCurItem();
68
+ }
69
+ }
70
+ _createMenu(items, position) {
71
+ if (!this._componentRef && items) {
72
+ const componentFactory = this._componentFactoryResolver.resolveComponentFactory(TieredMenuComponent_1);
73
+ this._componentRef = componentFactory.create(this._injector);
74
+ this._appRef.attachView(this._componentRef.hostView);
75
+ const domElem = this._componentRef.hostView.rootNodes[0];
76
+ document.body.appendChild(domElem);
77
+ // Setting the menu items.
78
+ this._componentRef.instance.items = items;
79
+ // Subscribe menu events.
80
+ this._componentRef.instance.destroyRequest
81
+ .pipe(takeUntil(this._unsubscribe$))
82
+ .subscribe((propagate) => {
83
+ this._destroy(propagate);
84
+ });
85
+ this._menuDivElement = domElem.querySelector(".menu");
86
+ this._setMenuPosition(position);
87
+ }
88
+ }
89
+ _destroy(propagate = true) {
90
+ if (this._componentRef !== null) {
91
+ this._appRef.detachView(this._componentRef.hostView);
92
+ this._componentRef.destroy();
93
+ this._componentRef = null;
94
+ this._menuDivElement = null;
95
+ }
96
+ if (propagate) {
97
+ this.destroyRequest.emit();
98
+ }
99
+ }
100
+ _setMenuPosition(position) {
101
+ var _a;
102
+ if (this._componentRef !== null) {
103
+ const { top, right, bottom, left } = position;
104
+ // I need to calculate the height of the component because the internal elements have not been created yet.
105
+ const menuHeight = ((_a = this.items) === null || _a === void 0 ? void 0 : _a.length) * 40;
106
+ const menuWidth = this._menuDivElement.getBoundingClientRect().width;
107
+ const rightFreeSpace = document.body.clientWidth - right;
108
+ const bottomFreeSpace = document.body.clientHeight - bottom;
109
+ if (rightFreeSpace > menuWidth) {
110
+ this._componentRef.instance.left = right;
111
+ }
112
+ else {
113
+ this._componentRef.instance.left = left - menuWidth;
114
+ }
115
+ if (bottomFreeSpace <= menuHeight) {
116
+ this._componentRef.instance.top = top - menuHeight;
117
+ }
118
+ else {
119
+ this._componentRef.instance.top = top;
120
+ }
121
+ }
122
+ }
123
+ _subscribeEvents() {
124
+ // Increment current item event.
125
+ this._tieredMenuEventService.incrementCurrentItemEvent
126
+ .pipe(takeUntil(this._unsubscribe$))
127
+ .subscribe(() => {
128
+ this._incrementCurItem();
129
+ });
130
+ // Decrement current item event.
131
+ this._tieredMenuEventService.decrementCurrentItemEvent
132
+ .pipe(takeUntil(this._unsubscribe$))
133
+ .subscribe(() => {
134
+ this._decrementCurItem();
135
+ });
136
+ // Select item event.
137
+ this._tieredMenuEventService.selectItemEvent
138
+ .pipe(takeUntil(this._unsubscribe$))
139
+ .subscribe((item) => {
140
+ if (item.submenu) {
141
+ this._tieredMenuEventService.emitOpenItemMenuEvent(item);
142
+ }
143
+ else if (item.command) {
144
+ this._tieredMenuEventService.emitCloseAllMenusEvent();
145
+ item.command();
146
+ }
147
+ });
148
+ // Close all menus event.
149
+ this._tieredMenuEventService.closeAllMenusEvent
150
+ .pipe(takeUntil(this._unsubscribe$))
151
+ .subscribe(() => {
152
+ this._destroy();
153
+ this.tieredMenuService.currentItem = null;
154
+ this.tieredMenuService.currentItems = this.tieredMenuService.items;
155
+ });
156
+ // Open item menu event.
157
+ this._tieredMenuEventService.openItemMenuEvent
158
+ .pipe(takeUntil(this._unsubscribe$))
159
+ .subscribe((item) => {
160
+ item.isOpen = false;
161
+ if (this.tieredMenuService.currentItem) {
162
+ if (this.tieredMenuService.currentItem.parent === item) {
163
+ return;
164
+ }
165
+ if (!this.tieredMenuService.searchTheHierarchy(this.tieredMenuService.currentItem.parent, item)) {
166
+ let itemAux = this.tieredMenuService.currentItem;
167
+ while (itemAux.parent !== item.parent) {
168
+ this._tieredMenuEventService.emitCloseItemMenuEvent(itemAux);
169
+ itemAux = itemAux.parent;
170
+ }
171
+ }
172
+ }
173
+ if (item.submenu) {
174
+ if (!item.isOpen) {
175
+ const { top, right, left, bottom } = document
176
+ .querySelector(`#${item.id}`)
177
+ .getBoundingClientRect();
178
+ const position = { top, right, left, bottom };
179
+ if (this.items.includes(item)) {
180
+ this._createMenu(item.submenu, position);
181
+ this.tieredMenuService.currentItems = item.submenu;
182
+ this.tieredMenuService.currentItem = item.submenu[0];
183
+ }
184
+ }
185
+ }
186
+ });
187
+ // Close item menu event.
188
+ this._tieredMenuEventService.closeItemMenuEvent
189
+ .pipe(takeUntil(this._unsubscribe$))
190
+ .subscribe((item) => {
191
+ var _a, _b;
192
+ if (this.items.includes(item)) {
193
+ item.isOpen = false;
194
+ this.tieredMenuService.currentItems = ((_b = (_a = item === null || item === void 0 ? void 0 : item.parent) === null || _a === void 0 ? void 0 : _a.parent) === null || _b === void 0 ? void 0 : _b.submenu) || this.tieredMenuService.items;
195
+ this.tieredMenuService.currentItem = item.parent;
196
+ this.destroyRequest.emit(false);
197
+ }
198
+ });
199
+ }
200
+ };
201
+ TieredMenuComponent.ctorParameters = () => [
202
+ { type: ApplicationRef },
203
+ { type: ComponentFactoryResolver },
204
+ { type: Injector },
205
+ { type: TieredMenuService },
206
+ { type: TieredMenuEventService }
207
+ ];
208
+ __decorate([
209
+ Output()
210
+ ], TieredMenuComponent.prototype, "destroyRequest", void 0);
211
+ TieredMenuComponent = TieredMenuComponent_1 = __decorate([
212
+ Component({
213
+ selector: "s-tiered-menu",
214
+ template: "<div class=\"menu\" [ngStyle]=\"{\n 'left': left + 'px',\n 'top': top + 'px'\n }\">\n\n <div *ngFor=\"let item of items\">\n <s-tiered-menu-item\n *ngIf=\"!item.divider\"\n [item]=\"item\"\n [focused]=\"item === tieredMenuService.currentItem\"\n triggerEvent=\"hover\"\n [closeOnClick]=\"false\">\n </s-tiered-menu-item>\n <s-tiered-menu-divider *ngIf=\"item.divider\"></s-tiered-menu-divider>\n </div>\n</div>",
215
+ styles: [".menu{background-color:#fff;border:1px solid #ccc;border-radius:6px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);display:-ms-inline-flexbox;display:inline-flex;-ms-flex-direction:column;flex-direction:column;min-width:176px;padding:4px 0;position:fixed;z-index:9999}"]
216
+ })
217
+ ], TieredMenuComponent);
218
+ export { TieredMenuComponent };
219
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGllcmVkLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvdGllcmVkLW1lbnUvY29tcG9uZW50cy90aWVyZWQtbWVudS90aWVyZWQtbWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQ0gsY0FBYyxFQUNkLFNBQVMsRUFDVCx3QkFBd0IsRUFDeEIsWUFBWSxFQUNaLGVBQWUsRUFDZixZQUFZLEVBQ1osUUFBUSxFQUNSLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBTzlELElBQWEsbUJBQW1CLDJCQUFoQyxNQUFhLG1CQUFtQjtJQWE1QixZQUNxQixPQUF1QixFQUN2Qix5QkFBbUQsRUFDbkQsU0FBbUIsRUFDcEIsaUJBQW9DLEVBQ25DLHVCQUErQztRQUovQyxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2Qiw4QkFBeUIsR0FBekIseUJBQXlCLENBQTBCO1FBQ25ELGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDcEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNuQyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXdCO1FBaEI3RCxRQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ1IsU0FBSSxHQUFHLENBQUMsQ0FBQztRQUNULHFCQUFnQixHQUFzQixPQUFPLENBQUM7UUFFN0Msa0JBQWEsR0FBc0IsSUFBSSxDQUFDO1FBRXhDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUdyQyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFRaEQsQ0FBQztJQUVFLFFBQVE7UUFDWCxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDakQsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVPLGlCQUFpQjtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRTtZQUNyQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUUsT0FBTztTQUNWO2FBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNqRSxzQ0FBc0M7WUFDdEMsT0FBTztTQUNWO1FBRUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV6RyxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRTtZQUMzRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDMUY7YUFBTTtZQUNILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMvRTtRQUVELElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUU7WUFDNUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDNUI7SUFDTCxDQUFDO0lBRU8saUJBQWlCO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1RSxPQUFPO1lBQ1Asc0NBQXNDO1NBQ3pDO2FBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNqRSxPQUFPO1NBQ1Y7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXJHLElBQUksUUFBUSxJQUFJLENBQUMsRUFBRTtZQUNmLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN0RjthQUFNO1lBQ0gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzVIO1FBRUQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRTtZQUM1QyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUM1QjtJQUNMLENBQUM7SUFFTyxXQUFXLENBQUMsS0FBbUMsRUFBRSxRQUFhO1FBQ2xFLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLEtBQUssRUFBRTtZQUM5QixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyx1QkFBdUIsQ0FBQyxxQkFBbUIsQ0FBQyxDQUFDO1lBQ3JHLElBQUksQ0FBQyxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JELE1BQU0sT0FBTyxHQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBaUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFnQixDQUFDO1lBQ2xHLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRW5DLDBCQUEwQjtZQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBRTFDLHlCQUF5QjtZQUN6QixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxjQUFjO2lCQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztpQkFDbkMsU0FBUyxDQUFDLENBQUMsU0FBa0IsRUFBRSxFQUFFO2dCQUM5QixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxDQUFDO1lBRVAsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNuQztJQUNMLENBQUM7SUFFTyxRQUFRLENBQUMsU0FBUyxHQUFHLElBQUk7UUFDN0IsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLElBQUksRUFBRTtZQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JELElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7WUFDMUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7U0FDL0I7UUFFRCxJQUFJLFNBQVMsRUFBRTtZQUNYLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDOUI7SUFDTCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsUUFBc0U7O1FBQzNGLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxJQUFJLEVBQUU7WUFDN0IsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQztZQUM5QywyR0FBMkc7WUFDM0csTUFBTSxVQUFVLEdBQUcsT0FBQyxJQUFJLENBQUMsS0FBSywwQ0FBRSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDN0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUVyRSxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDekQsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO1lBRTVELElBQUksY0FBYyxHQUFHLFNBQVMsRUFBRTtnQkFDNUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQzthQUM1QztpQkFBTTtnQkFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLFNBQVMsQ0FBQzthQUN2RDtZQUVELElBQUksZUFBZSxJQUFJLFVBQVUsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxVQUFVLENBQUM7YUFDdEQ7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQzthQUN6QztTQUNKO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQjtRQUNwQixnQ0FBZ0M7UUFDaEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLHlCQUF5QjthQUNqRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNuQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFDUCxnQ0FBZ0M7UUFDaEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLHlCQUF5QjthQUNqRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNuQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFDUCxxQkFBcUI7UUFDckIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGVBQWU7YUFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDbkMsU0FBUyxDQUFDLENBQUMsSUFBZ0MsRUFBRSxFQUFFO1lBQzVDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDZCxJQUFJLENBQUMsdUJBQXVCLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDNUQ7aUJBQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNyQixJQUFJLENBQUMsdUJBQXVCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztnQkFDdEQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ2xCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDUCx5QkFBeUI7UUFDekIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGtCQUFrQjthQUMxQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNuQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQzFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQztRQUN2RSxDQUFDLENBQUMsQ0FBQztRQUNQLHdCQUF3QjtRQUN4QixJQUFJLENBQUMsdUJBQXVCLENBQUMsaUJBQWlCO2FBQ3pDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQ25DLFNBQVMsQ0FBQyxDQUFDLElBQWdDLEVBQUUsRUFBRTtZQUM1QyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUVwQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUU7Z0JBQ3BDLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssSUFBSSxFQUFFO29CQUNwRCxPQUFPO2lCQUNWO2dCQUNELElBQ0ksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQ3RDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUN6QyxJQUFJLENBQ1AsRUFDSDtvQkFDRSxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDO29CQUNqRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRTt3QkFDbkMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLHNCQUFzQixDQUMvQyxPQUFPLENBQ1YsQ0FBQzt3QkFDRixPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztxQkFDNUI7aUJBQ0o7YUFDSjtZQUVELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtvQkFDZCxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsUUFBUTt5QkFDeEMsYUFBYSxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO3lCQUM1QixxQkFBcUIsRUFBRSxDQUFDO29CQUM3QixNQUFNLFFBQVEsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO29CQUM5QyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFO3dCQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7d0JBQ3pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQzt3QkFDbkQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUN4RDtpQkFDSjthQUNKO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDUCx5QkFBeUI7UUFDekIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGtCQUFrQjthQUMxQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNuQyxTQUFTLENBQUMsQ0FBQyxJQUFnQyxFQUFFLEVBQUU7O1lBQzVDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO2dCQUNwQixJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxHQUFHLGFBQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLE1BQU0sMENBQUUsTUFBTSwwQ0FBRSxPQUFPLEtBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQztnQkFDcEcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO2dCQUNqRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNuQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztDQUNKLENBQUE7O1lBN01pQyxjQUFjO1lBQ0ksd0JBQXdCO1lBQ3hDLFFBQVE7WUFDRCxpQkFBaUI7WUFDVixzQkFBc0I7O0FBUHBFO0lBREMsTUFBTSxFQUFFOzJEQUMyQztBQVgzQyxtQkFBbUI7SUFML0IsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLGVBQWU7UUFDekIseWdCQUEyQzs7S0FFOUMsQ0FBQztHQUNXLG1CQUFtQixDQTJOL0I7U0EzTlksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBcHBsaWNhdGlvblJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIENvbXBvbmVudFJlZixcbiAgICBFbWJlZGRlZFZpZXdSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdG9yLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcblxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBUaWVyZWRNZW51SXRlbUludGVybmFsRGF0YSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvdGllcmVkLW1lbnUtaXRlbS1pbnRlcm5hbC1kYXRhXCI7XG5pbXBvcnQgeyBUaWVyZWRNZW51RXZlbnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3RpZXJlZC1tZW51LmV2ZW50LnNlcnZpY2VcIjtcbmltcG9ydCB7IFRpZXJlZE1lbnVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3RpZXJlZC1tZW51LnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicy10aWVyZWQtbWVudVwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vdGllcmVkLW1lbnUuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vdGllcmVkLW1lbnUuY29tcG9uZW50LnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIFRpZXJlZE1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHVibGljIGl0ZW1zOiBUaWVyZWRNZW51SXRlbUludGVybmFsRGF0YVtdO1xuICAgIHB1YmxpYyB0b3AgPSAwO1xuICAgIHB1YmxpYyBsZWZ0ID0gMDtcbiAgICBwdWJsaWMgbWVudVRyaWdnZXJFdmVudDogXCJjbGlja1wiIHwgXCJob3ZlclwiID0gXCJob3ZlclwiO1xuXG4gICAgcHJpdmF0ZSBfY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PiA9IG51bGw7XG4gICAgcHJpdmF0ZSBfbWVudURpdkVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIF91bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGRlc3Ryb3lSZXF1ZXN0ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2FwcFJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHB1YmxpYyByZWFkb25seSB0aWVyZWRNZW51U2VydmljZTogVGllcmVkTWVudVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3RpZXJlZE1lbnVFdmVudFNlcnZpY2U6IFRpZXJlZE1lbnVFdmVudFNlcnZpY2UsXG4gICAgKSB7IH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbXMgPSB0aGlzLml0ZW1zO1xuICAgICAgICB0aGlzLl9zdWJzY3JpYmVFdmVudHMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2luY3JlbWVudEN1ckl0ZW0oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbSkge1xuICAgICAgICAgICAgdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbSA9IHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW1zWzBdO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLml0ZW1zLmluY2x1ZGVzKHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0pKSB7XG4gICAgICAgICAgICAvLyBDaGVja2luZyBpZiBpdCBpcyB0aGUgY3VycmVudCBtZW51LlxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbXMuaW5kZXhPZih0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtKSArIDE7XG5cbiAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA8IHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbSA9IHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW1zW2N1cnJlbnRJbmRleF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtID0gdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbXNbMF07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbS5kaXZpZGVyKSB7XG4gICAgICAgICAgICB0aGlzLl9pbmNyZW1lbnRDdXJJdGVtKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9kZWNyZW1lbnRDdXJJdGVtKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0gPSB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtc1swXTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIC8vIENoZWNraW5nIGlmIGl0IGlzIHRoZSBjdXJyZW50IG1lbnUuXG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuaXRlbXMuaW5jbHVkZXModGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGN1ckluZGV4ID0gdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbXMuaW5kZXhPZih0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtKSAtIDE7XG5cbiAgICAgICAgaWYgKGN1ckluZGV4ID49IDApIHtcbiAgICAgICAgICAgIHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0gPSB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtc1tjdXJJbmRleF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtID0gdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbXNbdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbXMubGVuZ3RoIC0gMV07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbS5kaXZpZGVyKSB7XG4gICAgICAgICAgICB0aGlzLl9kZWNyZW1lbnRDdXJJdGVtKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9jcmVhdGVNZW51KGl0ZW1zOiBUaWVyZWRNZW51SXRlbUludGVybmFsRGF0YVtdLCBwb3NpdGlvbjogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fY29tcG9uZW50UmVmICYmIGl0ZW1zKSB7XG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gdGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFRpZXJlZE1lbnVDb21wb25lbnQpO1xuICAgICAgICAgICAgdGhpcy5fY29tcG9uZW50UmVmID0gY29tcG9uZW50RmFjdG9yeS5jcmVhdGUodGhpcy5faW5qZWN0b3IpO1xuICAgICAgICAgICAgdGhpcy5fYXBwUmVmLmF0dGFjaFZpZXcodGhpcy5fY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICAgICAgICAgIGNvbnN0IGRvbUVsZW0gPSAodGhpcy5fY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KS5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvbUVsZW0pO1xuXG4gICAgICAgICAgICAvLyBTZXR0aW5nIHRoZSBtZW51IGl0ZW1zLlxuICAgICAgICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLml0ZW1zID0gaXRlbXM7XG5cbiAgICAgICAgICAgIC8vIFN1YnNjcmliZSBtZW51IGV2ZW50cy5cbiAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5kZXN0cm95UmVxdWVzdFxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHByb3BhZ2F0ZTogYm9vbGVhbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kZXN0cm95KHByb3BhZ2F0ZSk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuX21lbnVEaXZFbGVtZW50ID0gZG9tRWxlbS5xdWVyeVNlbGVjdG9yKFwiLm1lbnVcIik7XG4gICAgICAgICAgICB0aGlzLl9zZXRNZW51UG9zaXRpb24ocG9zaXRpb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZGVzdHJveShwcm9wYWdhdGUgPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9jb21wb25lbnRSZWYgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuX2FwcFJlZi5kZXRhY2hWaWV3KHRoaXMuX2NvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5fY29tcG9uZW50UmVmID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuX21lbnVEaXZFbGVtZW50ID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcm9wYWdhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveVJlcXVlc3QuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0TWVudVBvc2l0aW9uKHBvc2l0aW9uOiB7IHRvcDogbnVtYmVyLCByaWdodDogbnVtYmVyLCBib3R0b206IG51bWJlciwgbGVmdDogbnVtYmVyIH0pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2NvbXBvbmVudFJlZiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgeyB0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQgfSA9IHBvc2l0aW9uO1xuICAgICAgICAgICAgLy8gSSBuZWVkIHRvIGNhbGN1bGF0ZSB0aGUgaGVpZ2h0IG9mIHRoZSBjb21wb25lbnQgYmVjYXVzZSB0aGUgaW50ZXJuYWwgZWxlbWVudHMgaGF2ZSBub3QgYmVlbiBjcmVhdGVkIHlldC5cbiAgICAgICAgICAgIGNvbnN0IG1lbnVIZWlnaHQgPSAodGhpcy5pdGVtcz8ubGVuZ3RoKSAqIDQwO1xuICAgICAgICAgICAgY29uc3QgbWVudVdpZHRoID0gdGhpcy5fbWVudURpdkVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG5cbiAgICAgICAgICAgIGNvbnN0IHJpZ2h0RnJlZVNwYWNlID0gZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCAtIHJpZ2h0O1xuICAgICAgICAgICAgY29uc3QgYm90dG9tRnJlZVNwYWNlID0gZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQgLSBib3R0b207XG5cbiAgICAgICAgICAgIGlmIChyaWdodEZyZWVTcGFjZSA+IG1lbnVXaWR0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5sZWZ0ID0gcmlnaHQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5sZWZ0ID0gbGVmdCAtIG1lbnVXaWR0aDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGJvdHRvbUZyZWVTcGFjZSA8PSBtZW51SGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLnRvcCA9IHRvcCAtIG1lbnVIZWlnaHQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS50b3AgPSB0b3A7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9zdWJzY3JpYmVFdmVudHMoKTogdm9pZCB7XG4gICAgICAgIC8vIEluY3JlbWVudCBjdXJyZW50IGl0ZW0gZXZlbnQuXG4gICAgICAgIHRoaXMuX3RpZXJlZE1lbnVFdmVudFNlcnZpY2UuaW5jcmVtZW50Q3VycmVudEl0ZW1FdmVudFxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbmNyZW1lbnRDdXJJdGVtKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgLy8gRGVjcmVtZW50IGN1cnJlbnQgaXRlbSBldmVudC5cbiAgICAgICAgdGhpcy5fdGllcmVkTWVudUV2ZW50U2VydmljZS5kZWNyZW1lbnRDdXJyZW50SXRlbUV2ZW50XG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RlY3JlbWVudEN1ckl0ZW0oKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAvLyBTZWxlY3QgaXRlbSBldmVudC5cbiAgICAgICAgdGhpcy5fdGllcmVkTWVudUV2ZW50U2VydmljZS5zZWxlY3RJdGVtRXZlbnRcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoaXRlbTogVGllcmVkTWVudUl0ZW1JbnRlcm5hbERhdGEpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5zdWJtZW51KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RpZXJlZE1lbnVFdmVudFNlcnZpY2UuZW1pdE9wZW5JdGVtTWVudUV2ZW50KGl0ZW0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXRlbS5jb21tYW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RpZXJlZE1lbnVFdmVudFNlcnZpY2UuZW1pdENsb3NlQWxsTWVudXNFdmVudCgpO1xuICAgICAgICAgICAgICAgICAgICBpdGVtLmNvbW1hbmQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgLy8gQ2xvc2UgYWxsIG1lbnVzIGV2ZW50LlxuICAgICAgICB0aGlzLl90aWVyZWRNZW51RXZlbnRTZXJ2aWNlLmNsb3NlQWxsTWVudXNFdmVudFxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbSA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbXMgPSB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLml0ZW1zO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIC8vIE9wZW4gaXRlbSBtZW51IGV2ZW50LlxuICAgICAgICB0aGlzLl90aWVyZWRNZW51RXZlbnRTZXJ2aWNlLm9wZW5JdGVtTWVudUV2ZW50XG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGl0ZW06IFRpZXJlZE1lbnVJdGVtSW50ZXJuYWxEYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgaXRlbS5pc09wZW4gPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtLnBhcmVudCA9PT0gaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICF0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLnNlYXJjaFRoZUhpZXJhcmNoeShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtLnBhcmVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1BdXggPSB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGl0ZW1BdXgucGFyZW50ICE9PSBpdGVtLnBhcmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3RpZXJlZE1lbnVFdmVudFNlcnZpY2UuZW1pdENsb3NlSXRlbU1lbnVFdmVudChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbUF1eFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbUF1eCA9IGl0ZW1BdXgucGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uc3VibWVudSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWl0ZW0uaXNPcGVuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHRvcCwgcmlnaHQsIGxlZnQsIGJvdHRvbSB9ID0gZG9jdW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucXVlcnlTZWxlY3RvcihgIyR7aXRlbS5pZH1gKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uID0geyB0b3AsIHJpZ2h0LCBsZWZ0LCBib3R0b20gfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLml0ZW1zLmluY2x1ZGVzKGl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3JlYXRlTWVudShpdGVtLnN1Ym1lbnUsIHBvc2l0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtcyA9IGl0ZW0uc3VibWVudTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtID0gaXRlbS5zdWJtZW51WzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIC8vIENsb3NlIGl0ZW0gbWVudSBldmVudC5cbiAgICAgICAgdGhpcy5fdGllcmVkTWVudUV2ZW50U2VydmljZS5jbG9zZUl0ZW1NZW51RXZlbnRcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoaXRlbTogVGllcmVkTWVudUl0ZW1JbnRlcm5hbERhdGEpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pdGVtcy5pbmNsdWRlcyhpdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICBpdGVtLmlzT3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtcyA9IGl0ZW0/LnBhcmVudD8ucGFyZW50Py5zdWJtZW51IHx8IHRoaXMudGllcmVkTWVudVNlcnZpY2UuaXRlbXM7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0gPSBpdGVtLnBhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXN0cm95UmVxdWVzdC5lbWl0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,13 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component } from "@angular/core";
3
+ let TieredMenuDividerComponent = class TieredMenuDividerComponent {
4
+ };
5
+ TieredMenuDividerComponent = __decorate([
6
+ Component({
7
+ selector: "s-tiered-menu-divider",
8
+ template: "<div class=\"divider\"></div>",
9
+ styles: [".divider{margin:2px 0;height:1px;background-color:#ccc}"]
10
+ })
11
+ ], TieredMenuDividerComponent);
12
+ export { TieredMenuDividerComponent };
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGllcmVkLW1lbnUtZGl2aWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy90aWVyZWQtbWVudS9jb21wb25lbnRzL3RpZXJlZC1tZW51LWRpdmlkZXIvdGllcmVkLW1lbnUtZGl2aWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPMUMsSUFBYSwwQkFBMEIsR0FBdkMsTUFBYSwwQkFBMEI7Q0FBSSxDQUFBO0FBQTlCLDBCQUEwQjtJQUx0QyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsdUJBQXVCO1FBQ2pDLHlDQUFtRDs7S0FFdEQsQ0FBQztHQUNXLDBCQUEwQixDQUFJO1NBQTlCLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInMtdGllcmVkLW1lbnUtZGl2aWRlclwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vdGllcmVkLW1lbnUtZGl2aWRlci5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi90aWVyZWQtbWVudS1kaXZpZGVyLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBUaWVyZWRNZW51RGl2aWRlckNvbXBvbmVudCB7IH0iXX0=
@@ -0,0 +1,68 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, HostListener, Input } from "@angular/core";
3
+ import { TieredMenuEventService } from "../../tiered-menu.event.service";
4
+ let TieredMenuItemComponent = class TieredMenuItemComponent {
5
+ constructor(_tieredMenuEventService) {
6
+ this._tieredMenuEventService = _tieredMenuEventService;
7
+ this.focused = false;
8
+ this.triggerEvent = "click";
9
+ this.closeOnClick = false;
10
+ }
11
+ onClick() {
12
+ if (this.item.submenu) {
13
+ if (!this.item.isOpen) {
14
+ this._tieredMenuEventService.emitOpenItemMenuEvent(this.item);
15
+ }
16
+ else if (this.closeOnClick) {
17
+ this._tieredMenuEventService.emitCloseItemMenuEvent(this.item);
18
+ }
19
+ }
20
+ else {
21
+ this._tieredMenuEventService.emitSelectItemEvent(this.item);
22
+ }
23
+ }
24
+ onMouseEnter() {
25
+ if (this.triggerEvent === "hover" && !this.item.isOpen) {
26
+ this._showTimeout = window.setTimeout(() => {
27
+ this._tieredMenuEventService.emitOpenItemMenuEvent(this.item);
28
+ }, 300);
29
+ }
30
+ }
31
+ onMouseLeave() {
32
+ window.clearTimeout(this._showTimeout);
33
+ }
34
+ };
35
+ TieredMenuItemComponent.ctorParameters = () => [
36
+ { type: TieredMenuEventService }
37
+ ];
38
+ __decorate([
39
+ Input()
40
+ ], TieredMenuItemComponent.prototype, "item", void 0);
41
+ __decorate([
42
+ Input()
43
+ ], TieredMenuItemComponent.prototype, "focused", void 0);
44
+ __decorate([
45
+ Input()
46
+ ], TieredMenuItemComponent.prototype, "triggerEvent", void 0);
47
+ __decorate([
48
+ Input()
49
+ ], TieredMenuItemComponent.prototype, "closeOnClick", void 0);
50
+ __decorate([
51
+ HostListener("click"),
52
+ HostListener("touchend")
53
+ ], TieredMenuItemComponent.prototype, "onClick", null);
54
+ __decorate([
55
+ HostListener("mouseenter")
56
+ ], TieredMenuItemComponent.prototype, "onMouseEnter", null);
57
+ __decorate([
58
+ HostListener("mouseleave")
59
+ ], TieredMenuItemComponent.prototype, "onMouseLeave", null);
60
+ TieredMenuItemComponent = __decorate([
61
+ Component({
62
+ selector: "s-tiered-menu-item",
63
+ template: "<div\n [id]=\"item.id\"\n class=\"tiered-menu-item\"\n [ngClass]=\"{\n 'tiered-menu-item--open': item.isOpen,\n 'tiered-menu-item--focused': focused\n }\">\n <div class=\"tiered-menu-item-content\">\n <span class=\"icon\" [ngClass]=\"item.iconClass\"></span>\n <span class=\"label\">{{ item.label }}</span>\n </div>\n <span\n *ngIf=\"item.submenu\"\n class=\"submenu-icon\"\n [ngClass]=\"{\n 'fas': true,\n 'fa-chevron-left': item.isOpen,\n 'fa-chevron-right': !item.isOpen\n }\">\n </span>\n</div>",
64
+ styles: [".tiered-menu-item{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;padding:8px 16px;-webkit-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.tiered-menu-item .tiered-menu-item-content .label{margin:0 12px}.tiered-menu-item:hover{background-color:#e9e6e6}.tiered-menu-item--focused{background-color:#ccc!important}.tiered-menu-item--open{background-color:#e4e2e2}"]
65
+ })
66
+ ], TieredMenuItemComponent);
67
+ export { TieredMenuItemComponent };
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGllcmVkLW1lbnUtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy90aWVyZWQtbWVudS9jb21wb25lbnRzL3RpZXJlZC1tZW51LWl0ZW0vdGllcmVkLW1lbnUtaXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQVF6RSxJQUFhLHVCQUF1QixHQUFwQyxNQUFhLHVCQUF1QjtJQWVoQyxZQUNxQix1QkFBK0M7UUFBL0MsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF3QjtRQVg3RCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBR2hCLGlCQUFZLEdBQXNCLE9BQU8sQ0FBQztRQUcxQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztJQU14QixDQUFDO0lBSUUsT0FBTztRQUNWLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNuQixJQUFJLENBQUMsdUJBQXVCLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2pFO2lCQUFNLElBQUcsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDekIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNsRTtTQUNKO2FBQU07WUFDSCxJQUFJLENBQUMsdUJBQXVCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9EO0lBQ0wsQ0FBQztJQUdNLFlBQVk7UUFDZixJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDcEQsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDdkMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDWDtJQUNMLENBQUM7SUFHTSxZQUFZO1FBQ2YsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDM0MsQ0FBQztDQUNKLENBQUE7O1lBOUJpRCxzQkFBc0I7O0FBZHBFO0lBREMsS0FBSyxFQUFFO3FEQUNnQztBQUd4QztJQURDLEtBQUssRUFBRTt3REFDZTtBQUd2QjtJQURDLEtBQUssRUFBRTs2REFDeUM7QUFHakQ7SUFEQyxLQUFLLEVBQUU7NkRBQ29CO0FBVTVCO0lBRkMsWUFBWSxDQUFDLE9BQU8sQ0FBQztJQUNyQixZQUFZLENBQUMsVUFBVSxDQUFDO3NEQVd4QjtBQUdEO0lBREMsWUFBWSxDQUFDLFlBQVksQ0FBQzsyREFPMUI7QUFHRDtJQURDLFlBQVksQ0FBQyxZQUFZLENBQUM7MkRBRzFCO0FBN0NRLHVCQUF1QjtJQUxuQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsb0JBQW9CO1FBQzlCLCttQkFBZ0Q7O0tBRW5ELENBQUM7R0FDVyx1QkFBdUIsQ0E4Q25DO1NBOUNZLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IFRpZXJlZE1lbnVFdmVudFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vdGllcmVkLW1lbnUuZXZlbnQuc2VydmljZVwiO1xuaW1wb3J0IHsgVGllcmVkTWVudUl0ZW1JbnRlcm5hbERhdGEgfSBmcm9tIFwiLi4vLi4vbW9kZWxzXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInMtdGllcmVkLW1lbnUtaXRlbVwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vdGllcmVkLW1lbnUtaXRlbS5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi90aWVyZWQtbWVudS1pdGVtLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBUaWVyZWRNZW51SXRlbUNvbXBvbmVudCB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaXRlbTogVGllcmVkTWVudUl0ZW1JbnRlcm5hbERhdGE7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmb2N1c2VkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0cmlnZ2VyRXZlbnQ6IFwiY2xpY2tcIiB8IFwiaG92ZXJcIiA9IFwiY2xpY2tcIjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNsb3NlT25DbGljayA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBfc2hvd1RpbWVvdXQ/OiBudW1iZXI7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfdGllcmVkTWVudUV2ZW50U2VydmljZTogVGllcmVkTWVudUV2ZW50U2VydmljZSxcbiAgICApIHsgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcihcImNsaWNrXCIpXG4gICAgQEhvc3RMaXN0ZW5lcihcInRvdWNoZW5kXCIpXG4gICAgcHVibGljIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLml0ZW0uc3VibWVudSkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLml0ZW0uaXNPcGVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGllcmVkTWVudUV2ZW50U2VydmljZS5lbWl0T3Blbkl0ZW1NZW51RXZlbnQodGhpcy5pdGVtKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZih0aGlzLmNsb3NlT25DbGljaykge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RpZXJlZE1lbnVFdmVudFNlcnZpY2UuZW1pdENsb3NlSXRlbU1lbnVFdmVudCh0aGlzLml0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fdGllcmVkTWVudUV2ZW50U2VydmljZS5lbWl0U2VsZWN0SXRlbUV2ZW50KHRoaXMuaXRlbSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKFwibW91c2VlbnRlclwiKVxuICAgIHB1YmxpYyBvbk1vdXNlRW50ZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnRyaWdnZXJFdmVudCA9PT0gXCJob3ZlclwiICYmICF0aGlzLml0ZW0uaXNPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLl9zaG93VGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl90aWVyZWRNZW51RXZlbnRTZXJ2aWNlLmVtaXRPcGVuSXRlbU1lbnVFdmVudCh0aGlzLml0ZW0pO1xuICAgICAgICAgICAgfSwgMzAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIpXG4gICAgcHVibGljIG9uTW91c2VMZWF2ZSgpOiB2b2lkIHtcbiAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLl9zaG93VGltZW91dCk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,131 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component } from "@angular/core";
3
+ import { Subject } from "rxjs";
4
+ import { TieredMenuEventService } from "../../tiered-menu.event.service";
5
+ import { TieredMenuService } from "../../tiered-menu.service";
6
+ import { takeUntil } from "rxjs/operators";
7
+ let TieredMenuNestedComponent = class TieredMenuNestedComponent {
8
+ constructor(tieredMenuService, _tieredMenuEventService) {
9
+ this.tieredMenuService = tieredMenuService;
10
+ this._tieredMenuEventService = _tieredMenuEventService;
11
+ this.top = 0;
12
+ this.maxHeight = 0;
13
+ this._unsubscribe$ = new Subject();
14
+ }
15
+ ngOnInit() {
16
+ this.tieredMenuService.currentItems = this.items;
17
+ this._subscribeEvents();
18
+ }
19
+ ngOnDestroy() {
20
+ this._unsubscribe$.next();
21
+ this._unsubscribe$.complete();
22
+ }
23
+ _incrementCurItem() {
24
+ if (!this.tieredMenuService.currentItem) {
25
+ this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];
26
+ return;
27
+ }
28
+ const curIndex = this.tieredMenuService.currentItems.indexOf(this.tieredMenuService.currentItem) + 1;
29
+ if (curIndex < this.tieredMenuService.currentItems.length) {
30
+ this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[curIndex];
31
+ }
32
+ else {
33
+ this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];
34
+ }
35
+ if (this.tieredMenuService.currentItem.divider) {
36
+ this._incrementCurItem();
37
+ }
38
+ }
39
+ _decrementCurItem() {
40
+ if (!this.tieredMenuService.currentItem) {
41
+ this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];
42
+ return;
43
+ }
44
+ const curIndex = this.tieredMenuService.currentItems.indexOf(this.tieredMenuService.currentItem) - 1;
45
+ if (curIndex >= 0) {
46
+ this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[curIndex];
47
+ }
48
+ else {
49
+ this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[this.tieredMenuService.currentItems.length - 1];
50
+ }
51
+ if (this.tieredMenuService.currentItem.divider) {
52
+ this._decrementCurItem();
53
+ }
54
+ }
55
+ _closeItem(item) {
56
+ var _a;
57
+ let itemAux = this._lastOpenItem;
58
+ while (itemAux && itemAux != item) {
59
+ itemAux.isOpen = false;
60
+ itemAux = itemAux.parent;
61
+ }
62
+ item.isOpen = false;
63
+ this.tieredMenuService.currentItem = itemAux !== null && itemAux !== void 0 ? itemAux : this.tieredMenuService.items[0];
64
+ this.tieredMenuService.currentItems = ((_a = itemAux === null || itemAux === void 0 ? void 0 : itemAux.parent) === null || _a === void 0 ? void 0 : _a.submenu) || this.tieredMenuService.items;
65
+ }
66
+ _openItem(item) {
67
+ if (item === null || item === void 0 ? void 0 : item.submenu) {
68
+ item.isOpen = true;
69
+ this.tieredMenuService.currentItems = item.submenu;
70
+ // Only has focus if there has already been interaction.
71
+ if (this.tieredMenuService.currentItem) {
72
+ this.tieredMenuService.currentItem = item.submenu[0];
73
+ }
74
+ this._lastOpenItem = item;
75
+ }
76
+ }
77
+ _subscribeEvents() {
78
+ this._tieredMenuEventService.incrementCurrentItemEvent
79
+ .pipe(takeUntil(this._unsubscribe$))
80
+ .subscribe(() => {
81
+ this._incrementCurItem();
82
+ });
83
+ this._tieredMenuEventService.decrementCurrentItemEvent
84
+ .pipe(takeUntil(this._unsubscribe$))
85
+ .subscribe(() => {
86
+ this._decrementCurItem();
87
+ });
88
+ this._tieredMenuEventService.selectItemEvent
89
+ .pipe(takeUntil(this._unsubscribe$))
90
+ .subscribe((item) => {
91
+ if (item.command) {
92
+ item.command();
93
+ // Close all menus after the item was selected.
94
+ this._tieredMenuEventService.emitCloseAllMenusEvent();
95
+ }
96
+ });
97
+ this._tieredMenuEventService.openItemMenuEvent
98
+ .pipe(takeUntil(this._unsubscribe$))
99
+ .subscribe((item) => {
100
+ var _a, _b;
101
+ if (!this.tieredMenuService.currentItems.includes(item)) {
102
+ let itemAux = this._lastOpenItem;
103
+ while ((_a = itemAux === null || itemAux === void 0 ? void 0 : itemAux.parent) === null || _a === void 0 ? void 0 : _a.parent) {
104
+ itemAux = itemAux.parent;
105
+ }
106
+ this._tieredMenuEventService.emitCloseItemMenuEvent((_b = itemAux.parent) !== null && _b !== void 0 ? _b : itemAux);
107
+ }
108
+ this._lastOpenItem = item;
109
+ this._openItem(item);
110
+ });
111
+ this._tieredMenuEventService.closeItemMenuEvent
112
+ .pipe(takeUntil(this._unsubscribe$))
113
+ .subscribe((item) => {
114
+ if (item) {
115
+ this._closeItem(item);
116
+ }
117
+ });
118
+ }
119
+ };
120
+ TieredMenuNestedComponent.ctorParameters = () => [
121
+ { type: TieredMenuService },
122
+ { type: TieredMenuEventService }
123
+ ];
124
+ TieredMenuNestedComponent = __decorate([
125
+ Component({
126
+ template: "<div\n class=\"menu menu--nested\"\n [ngStyle]=\"{\n 'top': top + 'px',\n 'max-height': maxHeight + 'px'\n }\">\n <ng-container *ngTemplateOutlet=\"itemsTemplate; context: { $implicit: items }\"></ng-container>\n</div>\n\n<ng-template #itemsTemplate let-items>\n <div *ngFor=\"let item of items\">\n <s-tiered-menu-item\n *ngIf=\"!item.divider\"\n [item]=\"item\"\n [focused]=\"item === tieredMenuService.currentItem\"\n [closeOnClick]=\"true\">\n </s-tiered-menu-item>\n\n <s-tiered-menu-divider *ngIf=\"item.divider\"></s-tiered-menu-divider>\n\n <div *ngIf=\"item.submenu && item.isOpen\">\n <div class=\"submenu\">\n <ng-container *ngTemplateOutlet=\"itemsTemplate; context: { $implicit: item.submenu }\"></ng-container>\n </div>\n </div>\n </div>\n</ng-template>\n",
127
+ styles: [".menu{background-color:#fff;border:1px solid #ccc;border-radius:6px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);display:-ms-inline-flexbox;display:inline-flex;-ms-flex-direction:column;flex-direction:column;min-width:176px;padding:4px 0;position:fixed;z-index:9999;overflow:auto}.menu--nested{width:90vw;margin:0 5vw}.menu .submenu{margin-left:24px}"]
128
+ })
129
+ ], TieredMenuNestedComponent);
130
+ export { TieredMenuNestedComponent };
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGllcmVkLW1lbnUtbmVzdGVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3RpZXJlZC1tZW51L2NvbXBvbmVudHMvdGllcmVkLW1lbnUtbmVzdGVkL3RpZXJlZC1tZW51LW5lc3RlZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHL0IsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTTNDLElBQWEseUJBQXlCLEdBQXRDLE1BQWEseUJBQXlCO0lBVWxDLFlBQ29CLGlCQUFvQyxFQUNuQyx1QkFBK0M7UUFEaEQsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNuQyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXdCO1FBVjdELFFBQUcsR0FBRyxDQUFDLENBQUM7UUFDUixjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBRWIsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBUXhDLENBQUM7SUFFRSxRQUFRO1FBQ1gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ2pELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFTyxpQkFB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IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuXG5pbXBvcnQgeyBUaWVyZWRNZW51SXRlbUludGVybmFsRGF0YSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvdGllcmVkLW1lbnUtaXRlbS1pbnRlcm5hbC1kYXRhXCI7XG5pbXBvcnQgeyBUaWVyZWRNZW51RXZlbnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3RpZXJlZC1tZW51LmV2ZW50LnNlcnZpY2VcIjtcbmltcG9ydCB7IFRpZXJlZE1lbnVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3RpZXJlZC1tZW51LnNlcnZpY2VcIjtcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3RpZXJlZC1tZW51LW5lc3RlZC5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi90aWVyZWQtbWVudS1uZXN0ZWQuY29tcG9uZW50LnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIFRpZXJlZE1lbnVOZXN0ZWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHVibGljIGl0ZW1zOiBUaWVyZWRNZW51SXRlbUludGVybmFsRGF0YVtdO1xuICAgIHB1YmxpYyB0b3AgPSAwO1xuICAgIHB1YmxpYyBtYXhIZWlnaHQgPSAwO1xuXG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8vIFNhdmVzIHRoZSBsYXN0IG9wZW5lZCBpdGVtIHRvIGNsb3NlIGl0IHdoZW4gYSBuZXcgb25lIGlzIG9wZW5lZFxuICAgIHByaXZhdGUgX2xhc3RPcGVuSXRlbTogVGllcmVkTWVudUl0ZW1JbnRlcm5hbERhdGE7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHRpZXJlZE1lbnVTZXJ2aWNlOiBUaWVyZWRNZW51U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfdGllcmVkTWVudUV2ZW50U2VydmljZTogVGllcmVkTWVudUV2ZW50U2VydmljZSxcbiAgICApIHsgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtcyA9IHRoaXMuaXRlbXM7XG4gICAgICAgIHRoaXMuX3N1YnNjcmliZUV2ZW50cygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaW5jcmVtZW50Q3VySXRlbSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtKSB7XG4gICAgICAgICAgICB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtID0gdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbXNbMF07XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjdXJJbmRleCA9IHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW1zLmluZGV4T2YodGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbSkgKyAxO1xuXG4gICAgICAgIGlmIChjdXJJbmRleCA8IHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbSA9IHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW1zW2N1ckluZGV4XTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0gPSB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtc1swXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtLmRpdmlkZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2luY3JlbWVudEN1ckl0ZW0oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2RlY3JlbWVudEN1ckl0ZW0oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbSkge1xuICAgICAgICAgICAgdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbSA9IHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW1zWzBdO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3VySW5kZXggPSB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtcy5pbmRleE9mKHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0pIC0gMTtcblxuICAgICAgICBpZiAoY3VySW5kZXggPj0gMCkge1xuICAgICAgICAgICAgdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbSA9IHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW1zW2N1ckluZGV4XTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0gPSB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtc1t0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtcy5sZW5ndGggLSAxXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtLmRpdmlkZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2RlY3JlbWVudEN1ckl0ZW0oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2Nsb3NlSXRlbShpdGVtOiBUaWVyZWRNZW51SXRlbUludGVybmFsRGF0YSk6IHZvaWQge1xuICAgICAgICBsZXQgaXRlbUF1eCA9IHRoaXMuX2xhc3RPcGVuSXRlbTtcblxuICAgICAgICB3aGlsZSAoaXRlbUF1eCAmJiBpdGVtQXV4ICE9IGl0ZW0pIHtcbiAgICAgICAgICAgIGl0ZW1BdXguaXNPcGVuID0gZmFsc2U7XG4gICAgICAgICAgICBpdGVtQXV4ID0gaXRlbUF1eC5wYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBpdGVtLmlzT3BlbiA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0gPSBpdGVtQXV4ID8/IHRoaXMudGllcmVkTWVudVNlcnZpY2UuaXRlbXNbMF07XG4gICAgICAgIHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW1zID0gaXRlbUF1eD8ucGFyZW50Py5zdWJtZW51IHx8IHRoaXMudGllcmVkTWVudVNlcnZpY2UuaXRlbXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfb3Blbkl0ZW0oaXRlbTogVGllcmVkTWVudUl0ZW1JbnRlcm5hbERhdGEpOiB2b2lkIHtcbiAgICAgICAgaWYgKGl0ZW0/LnN1Ym1lbnUpIHtcbiAgICAgICAgICAgIGl0ZW0uaXNPcGVuID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW1zID0gaXRlbS5zdWJtZW51O1xuXG4gICAgICAgICAgICAvLyBPbmx5IGhhcyBmb2N1cyBpZiB0aGVyZSBoYXMgYWxyZWFkeSBiZWVuIGludGVyYWN0aW9uLlxuICAgICAgICAgICAgaWYgKHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtID0gaXRlbS5zdWJtZW51WzBdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLl9sYXN0T3Blbkl0ZW0gPSBpdGVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc3Vic2NyaWJlRXZlbnRzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90aWVyZWRNZW51RXZlbnRTZXJ2aWNlLmluY3JlbWVudEN1cnJlbnRJdGVtRXZlbnRcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5jcmVtZW50Q3VySXRlbSgpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fdGllcmVkTWVudUV2ZW50U2VydmljZS5kZWNyZW1lbnRDdXJyZW50SXRlbUV2ZW50XG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RlY3JlbWVudEN1ckl0ZW0oKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3RpZXJlZE1lbnVFdmVudFNlcnZpY2Uuc2VsZWN0SXRlbUV2ZW50XG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGl0ZW06IFRpZXJlZE1lbnVJdGVtSW50ZXJuYWxEYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uY29tbWFuZCkge1xuICAgICAgICAgICAgICAgICAgICBpdGVtLmNvbW1hbmQoKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ2xvc2UgYWxsIG1lbnVzIGFmdGVyIHRoZSBpdGVtIHdhcyBzZWxlY3RlZC5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGllcmVkTWVudUV2ZW50U2VydmljZS5lbWl0Q2xvc2VBbGxNZW51c0V2ZW50KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fdGllcmVkTWVudUV2ZW50U2VydmljZS5vcGVuSXRlbU1lbnVFdmVudFxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChpdGVtOiBUaWVyZWRNZW51SXRlbUludGVybmFsRGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbXMuaW5jbHVkZXMoaXRlbSkpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1BdXggPSB0aGlzLl9sYXN0T3Blbkl0ZW07XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlIChpdGVtQXV4Py5wYXJlbnQ/LnBhcmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbUF1eCA9IGl0ZW1BdXgucGFyZW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RpZXJlZE1lbnVFdmVudFNlcnZpY2UuZW1pdENsb3NlSXRlbU1lbnVFdmVudChcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1BdXgucGFyZW50ID8/IGl0ZW1BdXhcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5fbGFzdE9wZW5JdGVtID0gaXRlbTtcbiAgICAgICAgICAgICAgICB0aGlzLl9vcGVuSXRlbShpdGVtKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3RpZXJlZE1lbnVFdmVudFNlcnZpY2UuY2xvc2VJdGVtTWVudUV2ZW50XG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGl0ZW06IFRpZXJlZE1lbnVJdGVtSW50ZXJuYWxEYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2xvc2VJdGVtKGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export { TieredMenuDirective } from "./tiered-menu.directive";
2
+ export { TieredMenuModule } from "./tiered-menu.module";
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy90aWVyZWQtbWVudS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFRpZXJlZE1lbnVEaXJlY3RpdmUgfSBmcm9tIFwiLi90aWVyZWQtbWVudS5kaXJlY3RpdmVcIjtcbmV4cG9ydCB7IFRpZXJlZE1lbnVNb2R1bGUgfSBmcm9tIFwiLi90aWVyZWQtbWVudS5tb2R1bGVcIjtcblxuZXhwb3J0IHsgVGllcmVkTWVudUl0ZW1EYXRhIH0gZnJvbSBcIi4vbW9kZWxzXCI7Il19
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy90aWVyZWQtbWVudS9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFRpZXJlZE1lbnVJdGVtRGF0YSB9IGZyb20gXCIuL3RpZXJlZC1tZW51LWl0ZW0tZGF0YVwiO1xuZXhwb3J0IHsgVGllcmVkTWVudUl0ZW1JbnRlcm5hbERhdGEgfSBmcm9tIFwiLi90aWVyZWQtbWVudS1pdGVtLWludGVybmFsLWRhdGFcIjtcbiJdfQ==
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGllcmVkLW1lbnUtaXRlbS1kYXRhLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvdGllcmVkLW1lbnUvbW9kZWxzL3RpZXJlZC1tZW51LWl0ZW0tZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBUaWVyZWRNZW51SXRlbURhdGEge1xuICAgIGxhYmVsPzogc3RyaW5nO1xuICAgIGljb25DbGFzcz86IHN0cmluZztcbiAgICBjb21tYW5kPzogVm9pZEZ1bmN0aW9uO1xuICAgIHN1Ym1lbnU/OiBUaWVyZWRNZW51SXRlbURhdGFbXTtcbiAgICBkaXZpZGVyPzogYm9vbGVhbjtcbn0iXX0=
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGllcmVkLW1lbnUtaXRlbS1pbnRlcm5hbC1kYXRhLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvdGllcmVkLW1lbnUvbW9kZWxzL3RpZXJlZC1tZW51LWl0ZW0taW50ZXJuYWwtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBUaWVyZWRNZW51SXRlbUludGVybmFsRGF0YSB7XG4gICAgaWQ/OiBzdHJpbmc7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgaWNvbkNsYXNzPzogc3RyaW5nO1xuICAgIGlzT3Blbj86IGJvb2xlYW47XG4gICAgY29tbWFuZD86IFZvaWRGdW5jdGlvbjtcbiAgICBzdWJtZW51PzogVGllcmVkTWVudUl0ZW1JbnRlcm5hbERhdGFbXTtcbiAgICBkaXZpZGVyPzogYm9vbGVhbjtcbiAgICBwYXJlbnQ/OiBUaWVyZWRNZW51SXRlbUludGVybmFsRGF0YTtcbn0iXX0=