@wavemaker/app-ng-runtime 11.5.4-rc.5523 → 11.5.4-rc.5622

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 (30) hide show
  1. app-ng-runtime/components/data/table/bundles/index.umd.js +0 -3
  2. app-ng-runtime/components/data/table/esm2020/table.component.mjs +1 -3
  3. app-ng-runtime/components/data/table/esm2020/table.props.mjs +1 -2
  4. app-ng-runtime/components/data/table/fesm2015/index.mjs +0 -3
  5. app-ng-runtime/components/data/table/fesm2015/index.mjs.map +1 -1
  6. app-ng-runtime/components/data/table/fesm2020/index.mjs +0 -3
  7. app-ng-runtime/components/data/table/fesm2020/index.mjs.map +1 -1
  8. app-ng-runtime/components/data/table/table.component.d.ts +0 -2
  9. app-ng-runtime/components/input/epoch/bundles/index.umd.js +37 -166
  10. app-ng-runtime/components/input/epoch/date/date.component.d.ts +0 -114
  11. app-ng-runtime/components/input/epoch/epoch.module.d.ts +1 -2
  12. app-ng-runtime/components/input/epoch/esm2020/date/date.component.mjs +24 -34
  13. app-ng-runtime/components/input/epoch/esm2020/epoch.module.mjs +4 -8
  14. app-ng-runtime/components/input/epoch/fesm2015/index.mjs +28 -159
  15. app-ng-runtime/components/input/epoch/fesm2015/index.mjs.map +1 -1
  16. app-ng-runtime/components/input/epoch/fesm2020/index.mjs +28 -159
  17. app-ng-runtime/components/input/epoch/fesm2020/index.mjs.map +1 -1
  18. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +0 -56
  19. app-ng-runtime/components/navigation/menu/esm2020/menu-dropdown/menu-dropdown.component.mjs +1 -51
  20. app-ng-runtime/components/navigation/menu/esm2020/menu.component.mjs +1 -5
  21. app-ng-runtime/components/navigation/menu/fesm2015/index.mjs +0 -56
  22. app-ng-runtime/components/navigation/menu/fesm2015/index.mjs.map +1 -1
  23. app-ng-runtime/components/navigation/menu/fesm2020/index.mjs +0 -54
  24. app-ng-runtime/components/navigation/menu/fesm2020/index.mjs.map +1 -1
  25. app-ng-runtime/components/navigation/menu/menu-dropdown/menu-dropdown.component.d.ts +0 -4
  26. app-ng-runtime/components/navigation/menu/menu.component.d.ts +1 -2
  27. app-ng-runtime/package.json +1 -1
  28. app-ng-runtime/scripts/datatable/datatable.js +3 -33
  29. app-ng-runtime/components/input/epoch/date/imaskUtil.d.ts +0 -115
  30. app-ng-runtime/components/input/epoch/esm2020/date/imaskUtil.mjs +0 -118
@@ -378,7 +378,6 @@
378
378
  const WIDGET_CONFIG$1 = { widgetType: 'wm-menu', hostClass: 'dropdown app-menu' };
379
379
  class MenuComponent extends i5.DatasetAwareNavComponent {
380
380
  onShow() {
381
- this._menuposition = this.menuposition;
382
381
  if (this._selectFirstItem) {
383
382
  setTimeout(() => {
384
383
  this.$element.find('> ul[wmmenudropdown] li.app-menu-item').first().find('> a').focus();
@@ -390,9 +389,6 @@
390
389
  this.$element.find('>.dropdown-toggle').focus();
391
390
  this.$element.find('li').removeClass('open');
392
391
  this._selectFirstItem = false;
393
- // reset the menuposition when dropdown is closed
394
- this.menuposition = this._menuposition ? this._menuposition : MENU_POSITION.DOWN_RIGHT;
395
- this.setMenuPosition();
396
392
  i2.$appDigest();
397
393
  }
398
394
  onKeyDown($event, eventAction) {
@@ -895,7 +891,6 @@
895
891
  constructor(elRef, menuRef) {
896
892
  this.menuRef = menuRef;
897
893
  this.nativeElement = elRef.nativeElement;
898
- this.hasExecutedCallback = false;
899
894
  i2.addClass(this.nativeElement, DEFAULT_CLS$1);
900
895
  }
901
896
  ngAfterViewInit() {
@@ -905,57 +900,6 @@
905
900
  animationClass = `animated ${(animationClasses[animateItems][this.menuRef.menuposition] || animationClasses[animateItems].name)}`;
906
901
  }
907
902
  i2.addClass(this.nativeElement, `dropdown-menu ${this.menuRef.menualign} ${animationClass}`, true);
908
- this.getParentWidget();
909
- }
910
- // Function to check if the menu widget is present inside other widgets like table, tabs, dialog, nav, list, tile, panel, accordion
911
- // if true then call createObserver() which internally calculates dropown height
912
- getParentWidget() {
913
- const closestWidget = $(this.menuRef.nativeElement).closest('table, ul, .dialog, .app-tabs, .app-accordion, .app-panel, .app-tile');
914
- // Check if the closest table is the parent of the menu widget
915
- if (closestWidget && $(closestWidget).has(this.menuRef.nativeElement).length > 0) {
916
- this.createObserver(this, this.callback);
917
- }
918
- }
919
- // function which changes the position of the menu dropdown dynamically if it exceeds viewport height
920
- callback(entries, observer) {
921
- var _a;
922
- if (!this.hasExecutedCallback) {
923
- const self = this;
924
- const positions = ((_a = this.menuRef.menuposition) === null || _a === void 0 ? void 0 : _a.split(',')) || [];
925
- entries.forEach(entry => {
926
- var _a, _b, _c, _d, _e;
927
- if (entry.isIntersecting) {
928
- positions[0] = 'down';
929
- self.menuRef.menuposition = positions.length > 1 ? positions.join() : 'down,right';
930
- (_a = self.nativeElement.parentElement) === null || _a === void 0 ? void 0 : _a.classList.add('dropdown');
931
- self.menuRef.setMenuPosition();
932
- }
933
- else {
934
- positions[0] = 'up';
935
- self.menuRef.menuposition = positions.length > 1 ? positions.join() : 'up,right';
936
- (_b = self.nativeElement.parentElement) === null || _b === void 0 ? void 0 : _b.classList.add('dropup');
937
- self.menuRef.setMenuPosition();
938
- // when container="body" is added to menu dropdown, the dropdown menu ul is attached directly to body.
939
- // so adding a class name inorder to adjust the styling of the dropdown
940
- const dropdownContainer = (_c = self.nativeElement.parentElement) === null || _c === void 0 ? void 0 : _c.parentElement;
941
- if (dropdownContainer.tagName.toUpperCase() === "BS-DROPDOWN-CONTAINER") {
942
- // The parent element is <bs-dropdown-container>
943
- (_e = (_d = self.nativeElement.parentElement) === null || _d === void 0 ? void 0 : _d.parentElement) === null || _e === void 0 ? void 0 : _e.classList.add('parent-position');
944
- }
945
- }
946
- });
947
- this.hasExecutedCallback = true;
948
- }
949
- }
950
- // function which checks if the dropdown is within the viewport height or exceeds viewport height
951
- createObserver(target, callback) {
952
- const options = {
953
- root: null,
954
- threshold: 1,
955
- once: true
956
- };
957
- const observer = new IntersectionObserver(callback.bind(this), options);
958
- observer.observe(target.nativeElement);
959
903
  }
960
904
  }
961
905
  MenuDropdownComponent.ɵfac = function MenuDropdownComponent_Factory(t) { return new (t || MenuDropdownComponent)(i0__namespace.ɵɵdirectiveInject(i0__namespace.ElementRef), i0__namespace.ɵɵdirectiveInject(MenuComponent)); };
@@ -42,7 +42,6 @@ export class MenuDropdownComponent {
42
42
  constructor(elRef, menuRef) {
43
43
  this.menuRef = menuRef;
44
44
  this.nativeElement = elRef.nativeElement;
45
- this.hasExecutedCallback = false;
46
45
  addClass(this.nativeElement, DEFAULT_CLS);
47
46
  }
48
47
  ngAfterViewInit() {
@@ -52,55 +51,6 @@ export class MenuDropdownComponent {
52
51
  animationClass = `animated ${(animationClasses[animateItems][this.menuRef.menuposition] || animationClasses[animateItems].name)}`;
53
52
  }
54
53
  addClass(this.nativeElement, `dropdown-menu ${this.menuRef.menualign} ${animationClass}`, true);
55
- this.getParentWidget();
56
- }
57
- // Function to check if the menu widget is present inside other widgets like table, tabs, dialog, nav, list, tile, panel, accordion
58
- // if true then call createObserver() which internally calculates dropown height
59
- getParentWidget() {
60
- const closestWidget = $(this.menuRef.nativeElement).closest('table, ul, .dialog, .app-tabs, .app-accordion, .app-panel, .app-tile');
61
- // Check if the closest table is the parent of the menu widget
62
- if (closestWidget && $(closestWidget).has(this.menuRef.nativeElement).length > 0) {
63
- this.createObserver(this, this.callback);
64
- }
65
- }
66
- // function which changes the position of the menu dropdown dynamically if it exceeds viewport height
67
- callback(entries, observer) {
68
- if (!this.hasExecutedCallback) {
69
- const self = this;
70
- const positions = this.menuRef.menuposition?.split(',') || [];
71
- entries.forEach(entry => {
72
- if (entry.isIntersecting) {
73
- positions[0] = 'down';
74
- self.menuRef.menuposition = positions.length > 1 ? positions.join() : 'down,right';
75
- self.nativeElement.parentElement?.classList.add('dropdown');
76
- self.menuRef.setMenuPosition();
77
- }
78
- else {
79
- positions[0] = 'up';
80
- self.menuRef.menuposition = positions.length > 1 ? positions.join() : 'up,right';
81
- self.nativeElement.parentElement?.classList.add('dropup');
82
- self.menuRef.setMenuPosition();
83
- // when container="body" is added to menu dropdown, the dropdown menu ul is attached directly to body.
84
- // so adding a class name inorder to adjust the styling of the dropdown
85
- const dropdownContainer = self.nativeElement.parentElement?.parentElement;
86
- if (dropdownContainer.tagName.toUpperCase() === "BS-DROPDOWN-CONTAINER") {
87
- // The parent element is <bs-dropdown-container>
88
- self.nativeElement.parentElement?.parentElement?.classList.add('parent-position');
89
- }
90
- }
91
- });
92
- this.hasExecutedCallback = true;
93
- }
94
- }
95
- // function which checks if the dropdown is within the viewport height or exceeds viewport height
96
- createObserver(target, callback) {
97
- const options = {
98
- root: null,
99
- threshold: 1,
100
- once: true
101
- };
102
- const observer = new IntersectionObserver(callback.bind(this), options);
103
- observer.observe(target.nativeElement);
104
54
  }
105
55
  }
106
56
  MenuDropdownComponent.ɵfac = function MenuDropdownComponent_Factory(t) { return new (t || MenuDropdownComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.MenuComponent)); };
@@ -115,4 +65,4 @@ MenuDropdownComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MenuD
115
65
  }], function () { return [{ type: i0.ElementRef }, { type: i1.MenuComponent }]; }, { items: [{
116
66
  type: Input
117
67
  }] }); })();
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1kcm9wZG93bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvbmF2aWdhdGlvbi9tZW51L3NyYy9tZW51LWRyb3Bkb3duL21lbnUtZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL25hdmlnYXRpb24vbWVudS9zcmMvbWVudS1kcm9wZG93bi9tZW51LWRyb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVwQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7O0lDSmxELHdCQUtLOzs7SUFGRCw0QkFBc0I7SUFGdEIsOEJBQWEsc0ZBQUE7O0FES2pCLE1BQU0sZ0JBQWdCLEdBQUc7SUFDckIsS0FBSyxFQUFFO1FBQ0gsTUFBTSxFQUFFLGVBQWU7UUFDdkIsWUFBWSxFQUFFLGVBQWU7UUFDN0IsV0FBVyxFQUFFLGdCQUFnQjtRQUM3QixVQUFVLEVBQUUsa0JBQWtCO1FBQzlCLFNBQVMsRUFBRSxtQkFBbUI7S0FDakM7SUFDRCxJQUFJLEVBQUU7UUFDRixNQUFNLEVBQUUsUUFBUTtRQUNoQixZQUFZLEVBQUUsUUFBUTtRQUN0QixXQUFXLEVBQUUsUUFBUTtRQUNyQixVQUFVLEVBQUUsUUFBUTtRQUNwQixTQUFTLEVBQUUsUUFBUTtLQUN0QjtJQUNELEtBQUssRUFBRTtRQUNILE1BQU0sRUFBRSxlQUFlO1FBQ3ZCLFlBQVksRUFBRSxlQUFlO1FBQzdCLFdBQVcsRUFBRSxlQUFlO1FBQzVCLFVBQVUsRUFBRSxhQUFhO1FBQ3pC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QyxDQUFDO29CQUMxRCxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDO29CQUMvQixzR0FBc0c7b0JBQ3RHLHVFQUF1RTtvQkFDdkUsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUM7b0JBQzFFLElBQUksaUJBQWlCLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxLQUFLLHVCQUF1QixFQUFFO3dCQUNyRSxnREFBZ0Q7d0JBQ2hELElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7cUJBQ3JGO2lCQUVKO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1NBQ25DO0lBQ04sQ0FBQztJQUVELGlHQUFpRztJQUNqRyxjQUFjLENBQUMsTUFBTSxFQUFFLFFBQVE7UUFDM0IsTUFBTSxPQUFPLEdBQUc7WUFDWixJQUFJLEVBQUUsSUFBSTtZQUNWLFNBQVMsRUFBRSxDQUFDO1lBQ1osSUFBSSxFQUFFLElBQUk7U0FDYixDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3hFLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzNDLENBQUM7OzBGQXJFUSxxQkFBcUI7d0VBQXJCLHFCQUFxQjtRQ3BDbEMsb0VBS0s7O1FBTG1DLG1DQUFROzt1RkRvQ25DLHFCQUFxQjtjQUpqQyxTQUFTOzJCQUNJLG9CQUFvQjt5RkFNckIsS0FBSztrQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBhZGRDbGFzcyB9IGZyb20gJ0B3bS9jb3JlJztcblxuaW1wb3J0IHsgTWVudUNvbXBvbmVudCB9IGZyb20gJy4uL21lbnUuY29tcG9uZW50JztcblxuY29uc3QgYW5pbWF0aW9uQ2xhc3NlcyA9IHtcbiAgICBzY2FsZToge1xuICAgICAgICAnbmFtZSc6ICd3bVNjYWxlSW5MZWZ0JyxcbiAgICAgICAgJ2Rvd24scmlnaHQnOiAnd21TY2FsZUluTGVmdCcsXG4gICAgICAgICdkb3duLGxlZnQnOiAnd21TY2FsZUluUmlnaHQnLFxuICAgICAgICAndXAscmlnaHQnOiAnd21TY2FsZUluVG9wTGVmdCcsXG4gICAgICAgICd1cCxsZWZ0JzogJ3dtU2NhbGVJblRvcFJpZ2h0J1xuICAgIH0sXG4gICAgZmFkZToge1xuICAgICAgICAnbmFtZSc6ICdmYWRlSW4nLFxuICAgICAgICAnZG93bixyaWdodCc6ICdmYWRlSW4nLFxuICAgICAgICAnZG93bixsZWZ0JzogJ2ZhZGVJbicsXG4gICAgICAgICd1cCxyaWdodCc6ICdmYWRlSW4nLFxuICAgICAgICAndXAsbGVmdCc6ICdmYWRlSW4nXG4gICAgfSxcbiAgICBzbGlkZToge1xuICAgICAgICAnbmFtZSc6ICd3bVNsaWRlSW5Eb3duJyxcbiAgICAgICAgJ2Rvd24scmlnaHQnOiAnd21TbGlkZUluRG93bicsXG4gICAgICAgICdkb3duLGxlZnQnOiAnd21TbGlkZUluRG93bicsXG4gICAgICAgICd1cCxyaWdodCc6ICd3bVNsaWRlSW5VcCcsXG4gICAgICAgICd1cCxsZWZ0JzogJ3dtU2xpZGVJblVwJ1xuICAgIH1cbn07XG5cbmNvbnN0IERFRkFVTFRfQ0xTID0gJ2Ryb3Bkb3duLW1lbnUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3VsW3dtTWVudURyb3Bkb3duXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21lbnUtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbmF0aXZlRWxlbWVudDtcbiAgICBwcml2YXRlIGhhc0V4ZWN1dGVkQ2FsbGJhY2s7XG4gICAgQElucHV0KCkgaXRlbXM7XG5cbiAgICBjb25zdHJ1Y3RvcihlbFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSBtZW51UmVmOiBNZW51Q29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMubmF0aXZlRWxlbWVudCA9IGVsUmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIHRoaXMuaGFzRXhlY3V0ZWRDYWxsYmFjayA9IGZhbHNlO1xuICAgICAgICBhZGRDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsIERFRkFVTFRfQ0xTKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGNvbnN0IGFuaW1hdGVJdGVtcyA9IHRoaXMubWVudVJlZi5hbmltYXRlaXRlbXM7XG4gICAgICAgIGxldCBhbmltYXRpb25DbGFzcyA9ICcnO1xuICAgICAgICBpZiAoYW5pbWF0ZUl0ZW1zKSB7XG4gICAgICAgICAgICBhbmltYXRpb25DbGFzcyA9IGBhbmltYXRlZCAkeyhhbmltYXRpb25DbGFzc2VzW2FuaW1hdGVJdGVtc11bdGhpcy5tZW51UmVmLm1lbnVwb3NpdGlvbl0gfHwgYW5pbWF0aW9uQ2xhc3Nlc1thbmltYXRlSXRlbXNdLm5hbWUpfWA7XG4gICAgICAgIH1cbiAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCBgZHJvcGRvd24tbWVudSAke3RoaXMubWVudVJlZi5tZW51YWxpZ259ICR7YW5pbWF0aW9uQ2xhc3N9YCwgdHJ1ZSk7XG4gICAgICAgdGhpcy5nZXRQYXJlbnRXaWRnZXQoKTtcbiAgICB9XG4gICAgLy8gRnVuY3Rpb24gdG8gY2hlY2sgaWYgdGhlIG1lbnUgd2lkZ2V0IGlzIHByZXNlbnQgaW5zaWRlIG90aGVyIHdpZGdldHMgbGlrZSB0YWJsZSwgdGFicywgZGlhbG9nLCBuYXYsIGxpc3QsIHRpbGUsIHBhbmVsLCBhY2NvcmRpb25cbiAgICAvLyBpZiB0cnVlIHRoZW4gY2FsbCBjcmVhdGVPYnNlcnZlcigpIHdoaWNoIGludGVybmFsbHkgY2FsY3VsYXRlcyBkcm9wb3duIGhlaWdodFxuICAgIGdldFBhcmVudFdpZGdldCgpIHtcbiAgICAgICAgY29uc3QgY2xvc2VzdFdpZGdldCAgPSAkKHRoaXMubWVudVJlZi5uYXRpdmVFbGVtZW50KS5jbG9zZXN0KCd0YWJsZSwgdWwsIC5kaWFsb2csIC5hcHAtdGFicywgLmFwcC1hY2NvcmRpb24sIC5hcHAtcGFuZWwsIC5hcHAtdGlsZScpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBjbG9zZXN0IHRhYmxlIGlzIHRoZSBwYXJlbnQgb2YgdGhlIG1lbnUgd2lkZ2V0XG4gICAgICAgIGlmIChjbG9zZXN0V2lkZ2V0ICYmICQoY2xvc2VzdFdpZGdldCkuaGFzKHRoaXMubWVudVJlZi5uYXRpdmVFbGVtZW50KS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZU9ic2VydmVyKHRoaXMsIHRoaXMuY2FsbGJhY2spO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIGZ1bmN0aW9uIHdoaWNoIGNoYW5nZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBtZW51IGRyb3Bkb3duIGR5bmFtaWNhbGx5IGlmIGl0IGV4Y2VlZHMgdmlld3BvcnQgaGVpZ2h0XG4gICAgIGNhbGxiYWNrKGVudHJpZXMsIG9ic2VydmVyKSB7XG4gICAgICAgICBpZiAoIXRoaXMuaGFzRXhlY3V0ZWRDYWxsYmFjaykge1xuICAgICAgICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9ucyA9IHRoaXMubWVudVJlZi5tZW51cG9zaXRpb24/LnNwbGl0KCcsJykgfHwgW107XG4gICAgICAgICAgICAgZW50cmllcy5mb3JFYWNoKGVudHJ5ID0+IHtcbiAgICAgICAgICAgICAgICAgaWYoZW50cnkuaXNJbnRlcnNlY3RpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uc1swXT0nZG93bic7XG4gICAgICAgICAgICAgICAgICAgICBzZWxmLm1lbnVSZWYubWVudXBvc2l0aW9uPSBwb3NpdGlvbnMubGVuZ3RoID4gMSA/IHBvc2l0aW9ucy5qb2luKCkgOiAnZG93bixyaWdodCc7XG4gICAgICAgICAgICAgICAgICAgICBzZWxmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudD8uY2xhc3NMaXN0LmFkZCgnZHJvcGRvd24nKTtcbiAgICAgICAgICAgICAgICAgICAgIHNlbGYubWVudVJlZi5zZXRNZW51UG9zaXRpb24oKTtcbiAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uc1swXT0ndXAnO1xuICAgICAgICAgICAgICAgICAgICAgc2VsZi5tZW51UmVmLm1lbnVwb3NpdGlvbiA9IHBvc2l0aW9ucy5sZW5ndGggPiAxID8gcG9zaXRpb25zLmpvaW4oKSA6ICd1cCxyaWdodCc7XG4gICAgICAgICAgICAgICAgICAgICBzZWxmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudD8uY2xhc3NMaXN0LmFkZCgnZHJvcHVwJyk7XG4gICAgICAgICAgICAgICAgICAgICBzZWxmLm1lbnVSZWYuc2V0TWVudVBvc2l0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAvLyB3aGVuIGNvbnRhaW5lcj1cImJvZHlcIiBpcyBhZGRlZCB0byBtZW51IGRyb3Bkb3duLCB0aGUgZHJvcGRvd24gbWVudSB1bCBpcyBhdHRhY2hlZCBkaXJlY3RseSB0byBib2R5LlxuICAgICAgICAgICAgICAgICAgICAgLy8gc28gYWRkaW5nIGEgY2xhc3MgbmFtZSBpbm9yZGVyIHRvIGFkanVzdCB0aGUgc3R5bGluZyBvZiB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRyb3Bkb3duQ29udGFpbmVyID0gc2VsZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ/LnBhcmVudEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgICBpZiAoZHJvcGRvd25Db250YWluZXIudGFnTmFtZS50b1VwcGVyQ2FzZSgpID09PSBcIkJTLURST1BET1dOLUNPTlRBSU5FUlwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHBhcmVudCBlbGVtZW50IGlzIDxicy1kcm9wZG93bi1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ/LnBhcmVudEVsZW1lbnQ/LmNsYXNzTGlzdC5hZGQoJ3BhcmVudC1wb3NpdGlvbicpO1xuICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICB0aGlzLmhhc0V4ZWN1dGVkQ2FsbGJhY2sgPSB0cnVlO1xuICAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGZ1bmN0aW9uIHdoaWNoIGNoZWNrcyBpZiB0aGUgZHJvcGRvd24gaXMgd2l0aGluIHRoZSB2aWV3cG9ydCBoZWlnaHQgb3IgZXhjZWVkcyB2aWV3cG9ydCBoZWlnaHRcbiAgICBjcmVhdGVPYnNlcnZlcih0YXJnZXQsIGNhbGxiYWNrKSB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICByb290OiBudWxsLFxuICAgICAgICAgICAgdGhyZXNob2xkOiAxLFxuICAgICAgICAgICAgb25jZTogdHJ1ZVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihjYWxsYmFjay5iaW5kKHRoaXMpLCBvcHRpb25zKTtcbiAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSh0YXJnZXQubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG59XG4iLCI8bGkgd21NZW51RHJvcGRvd25JdGVtICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCJcbiAgICBbaXRlbV09XCJpdGVtXCJcbiAgICBbbmdDbGFzc109XCJ7ZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQsICdkcm9wZG93bi1zdWJtZW51JzogaXRlbS5jaGlsZHJlbi5sZW5ndGggPiAwfVwiXG4gICAgY2xhc3M9XCJ7e2l0ZW0uY2xhc3N9fVwiXG4gICAgcm9sZT1cIm1lbnVpdGVtXCI+XG48L2xpPlxuIl19
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1kcm9wZG93bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvbmF2aWdhdGlvbi9tZW51L3NyYy9tZW51LWRyb3Bkb3duL21lbnUtZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL25hdmlnYXRpb24vbWVudS9zcmMvbWVudS1kcm9wZG93bi9tZW51LWRyb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVwQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7O0lDSmxELHdCQUtLOzs7SUFGRCw0QkFBc0I7SUFGdEIsOEJBQWEsc0ZBQUE7O0FES2pCLE1BQU0sZ0JBQWdCLEdBQUc7SUFDckIsS0FBSyxFQUFFO1FBQ0gsTUFBTSxFQUFFLGVBQWU7UUFDdkIsWUFBWSxFQUFFLGVBQWU7UUFDN0IsV0FBVyxFQUFFLGdCQUFnQjtRQUM3QixVQUFVLEVBQUUsa0JBQWtCO1FBQzlCLFNBQVMsRUFBRSxtQkFBbUI7S0FDakM7SUFDRCxJQUFJLEVBQUU7UUFDRixNQUFNLEVBQUUsUUFBUTtRQUNoQixZQUFZLEVBQUUsUUFBUTtRQUN0QixXQUFXLEVBQUUsUUFBUTtRQUNyQixVQUFVLEVBQUUsUUFBUTtRQUNwQixTQUFTLEVBQUUsUUFBUTtLQUN0QjtJQUNELEtBQUssRUFBRTtRQUNILE1BQU0sRUFBRSxlQUFlO1FBQ3ZCLFlBQVksRUFBRSxlQUFlO1FBQzdCLFdBQVcsRUFBRSxlQUFlO1FBQzVCLFVBQVUsRUFBRSxhQUFhO1FBQ3pCLFNBQVMsRUFBRSxhQUFhO0tBQzNCO0NBQ0osQ0FBQztBQUVGLE1BQU0sV0FBVyxHQUFHLGVBQWUsQ0FBQztBQU1wQyxNQUFNLE9BQU8scUJBQXFCO0lBSzlCLFlBQVksS0FBaUIsRUFBVSxPQUFzQjtRQUF0QixZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQ3pELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUN6QyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsZUFBZTtRQUNYLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQy9DLElBQUksY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLFlBQVksRUFBRTtZQUNkLGNBQWMsR0FBRyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1NBQ3JJO1FBQ0QsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsaUJBQWlCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLGNBQWMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3BHLENBQUM7OzBGQWpCUSxxQkFBcUI7d0VBQXJCLHFCQUFxQjtRQ3BDbEMsb0VBS0s7O1FBTG1DLG1DQUFROzt1RkRvQ25DLHFCQUFxQjtjQUpqQyxTQUFTOzJCQUNJLG9CQUFvQjt5RkFNckIsS0FBSztrQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBhZGRDbGFzcyB9IGZyb20gJ0B3bS9jb3JlJztcblxuaW1wb3J0IHsgTWVudUNvbXBvbmVudCB9IGZyb20gJy4uL21lbnUuY29tcG9uZW50JztcblxuY29uc3QgYW5pbWF0aW9uQ2xhc3NlcyA9IHtcbiAgICBzY2FsZToge1xuICAgICAgICAnbmFtZSc6ICd3bVNjYWxlSW5MZWZ0JyxcbiAgICAgICAgJ2Rvd24scmlnaHQnOiAnd21TY2FsZUluTGVmdCcsXG4gICAgICAgICdkb3duLGxlZnQnOiAnd21TY2FsZUluUmlnaHQnLFxuICAgICAgICAndXAscmlnaHQnOiAnd21TY2FsZUluVG9wTGVmdCcsXG4gICAgICAgICd1cCxsZWZ0JzogJ3dtU2NhbGVJblRvcFJpZ2h0J1xuICAgIH0sXG4gICAgZmFkZToge1xuICAgICAgICAnbmFtZSc6ICdmYWRlSW4nLFxuICAgICAgICAnZG93bixyaWdodCc6ICdmYWRlSW4nLFxuICAgICAgICAnZG93bixsZWZ0JzogJ2ZhZGVJbicsXG4gICAgICAgICd1cCxyaWdodCc6ICdmYWRlSW4nLFxuICAgICAgICAndXAsbGVmdCc6ICdmYWRlSW4nXG4gICAgfSxcbiAgICBzbGlkZToge1xuICAgICAgICAnbmFtZSc6ICd3bVNsaWRlSW5Eb3duJyxcbiAgICAgICAgJ2Rvd24scmlnaHQnOiAnd21TbGlkZUluRG93bicsXG4gICAgICAgICdkb3duLGxlZnQnOiAnd21TbGlkZUluRG93bicsXG4gICAgICAgICd1cCxyaWdodCc6ICd3bVNsaWRlSW5VcCcsXG4gICAgICAgICd1cCxsZWZ0JzogJ3dtU2xpZGVJblVwJ1xuICAgIH1cbn07XG5cbmNvbnN0IERFRkFVTFRfQ0xTID0gJ2Ryb3Bkb3duLW1lbnUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3VsW3dtTWVudURyb3Bkb3duXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21lbnUtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbmF0aXZlRWxlbWVudDtcblxuICAgIEBJbnB1dCgpIGl0ZW1zO1xuXG4gICAgY29uc3RydWN0b3IoZWxSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgbWVudVJlZjogTWVudUNvbXBvbmVudCkge1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQgPSBlbFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBhZGRDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsIERFRkFVTFRfQ0xTKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGNvbnN0IGFuaW1hdGVJdGVtcyA9IHRoaXMubWVudVJlZi5hbmltYXRlaXRlbXM7XG4gICAgICAgIGxldCBhbmltYXRpb25DbGFzcyA9ICcnO1xuICAgICAgICBpZiAoYW5pbWF0ZUl0ZW1zKSB7XG4gICAgICAgICAgICBhbmltYXRpb25DbGFzcyA9IGBhbmltYXRlZCAkeyhhbmltYXRpb25DbGFzc2VzW2FuaW1hdGVJdGVtc11bdGhpcy5tZW51UmVmLm1lbnVwb3NpdGlvbl0gfHwgYW5pbWF0aW9uQ2xhc3Nlc1thbmltYXRlSXRlbXNdLm5hbWUpfWA7XG4gICAgICAgIH1cbiAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCBgZHJvcGRvd24tbWVudSAke3RoaXMubWVudVJlZi5tZW51YWxpZ259ICR7YW5pbWF0aW9uQ2xhc3N9YCwgdHJ1ZSk7XG4gICAgfVxufVxuIiwiPGxpIHdtTWVudURyb3Bkb3duSXRlbSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiXG4gICAgW2l0ZW1dPVwiaXRlbVwiXG4gICAgW25nQ2xhc3NdPVwie2Rpc2FibGVkOiBpdGVtLmRpc2FibGVkLCAnZHJvcGRvd24tc3VibWVudSc6IGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMH1cIlxuICAgIGNsYXNzPVwie3tpdGVtLmNsYXNzfX1cIlxuICAgIHJvbGU9XCJtZW51aXRlbVwiPlxuPC9saT5cbiJdfQ==
@@ -93,7 +93,6 @@ const AUTO_OPEN = {
93
93
  const WIDGET_CONFIG = { widgetType: 'wm-menu', hostClass: 'dropdown app-menu' };
94
94
  export class MenuComponent extends DatasetAwareNavComponent {
95
95
  onShow() {
96
- this._menuposition = this.menuposition;
97
96
  if (this._selectFirstItem) {
98
97
  setTimeout(() => {
99
98
  this.$element.find('> ul[wmmenudropdown] li.app-menu-item').first().find('> a').focus();
@@ -105,9 +104,6 @@ export class MenuComponent extends DatasetAwareNavComponent {
105
104
  this.$element.find('>.dropdown-toggle').focus();
106
105
  this.$element.find('li').removeClass('open');
107
106
  this._selectFirstItem = false;
108
- // reset the menuposition when dropdown is closed
109
- this.menuposition = this._menuposition ? this._menuposition : MENU_POSITION.DOWN_RIGHT;
110
- this.setMenuPosition();
111
107
  $appDigest();
112
108
  }
113
109
  onKeyDown($event, eventAction) {
@@ -307,4 +303,4 @@ MenuComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MenuComponent
307
303
  type: HostListener,
308
304
  args: ['keydown.enter', ['$event', '"ENTER"']]
309
305
  }] }); })();
310
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvbmF2aWdhdGlvbi9tZW51L3NyYy9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9uYXZpZ2F0aW9uL21lbnUvc3JjL21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQXFCLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0gsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTdELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9ILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7OztJQ1J6QyxpQ0FXeUM7SUFDckMsMEJBQWlFO0lBQ3JFLGlCQUFTOzs7SUFSRCxrRkFBb0Q7SUFEcEQsbURBQWtDO0lBUUosZUFBdUI7SUFBdkIsc0VBQXVCOzs7SUFLN0Qsb0JBQXNDLGNBQUEsV0FBQTs7O0lBQW5DLDREQUE4QjtJQUNYLGVBQXVCO0lBQXZCLDRDQUF1QjtJQUN2QyxlQUF5QztJQUF6Qyx1RUFB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QUFFLENBQUMsUUFBUSxFQUFFLGVBQWUsQ0FBQzs7a0JBQzlELFlBQVk7bUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDOztrQkFDNUQsWUFBWTttQkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQXR0cmlidXRlLCBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgSW5qZWN0b3IsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCwgU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgQnNEcm9wZG93bkRpcmVjdGl2ZSB9IGZyb20gJ25neC1ib290c3RyYXAvZHJvcGRvd24nO1xuXG5pbXBvcnQgeyAkYXBwRGlnZXN0LCBhZGRDbGFzcywgcmVtb3ZlQ2xhc3MsIHRyaWdnZXJJdGVtQWN0aW9uLCBBcHAsIHRvZ2dsZUNsYXNzLCBVc2VyRGVmaW5lZEV4ZWN1dGlvbkNvbnRleHQgfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBEYXRhc2V0QXdhcmVOYXZDb21wb25lbnQsIGhhc0xpbmtUb0N1cnJlbnRQYWdlLCBwcm92aWRlQXNXaWRnZXRSZWYsIHN0eWxlciwgQVVUT0NMT1NFX1RZUEUgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7IE5hdkNvbXBvbmVudCB9IGZyb20gJy4vbmF2L25hdi5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyByZWdpc3RlclByb3BzIH0gZnJvbSAnLi9tZW51LnByb3BzJztcblxuZGVjbGFyZSBjb25zdCBfO1xuXG5leHBvcnQgY29uc3QgS0VZQk9BUkRfTU9WRU1FTlRTID0ge1xuICAgIE1PVkVfVVA6ICdVUC1BUlJPVycsXG4gICAgTU9WRV9MRUZUOiAnTEVGVC1BUlJPVycsXG4gICAgTU9WRV9SSUdIVDogJ1JJR0hULUFSUk9XJyxcbiAgICBNT1ZFX0RPV046ICdET1dOLUFSUk9XJyxcbiAgICBPTl9FTlRFUjogJ0VOVEVSJyxcbiAgICBPTl9UQUI6ICdUQUInLFxuICAgIE9OX1NISUZUX1RBQjogJ1NISUZULVRBQicsXG4gICAgT05fRVNDQVBFOiAnRVNDJ1xufTtcblxuZXhwb3J0IGNvbnN0IE1FTlVfUE9TSVRJT04gPSB7XG4gICAgVVBfTEVGVDogJ3VwLGxlZnQnLFxuICAgIFVQX1JJR0hUOiAndXAscmlnaHQnLFxuICAgIERPV05fTEVGVDogJ2Rvd24sbGVmdCcsXG4gICAgRE9XTl9SSUdIVDogJ2Rvd24scmlnaHQnLFxuICAgIElOTElORTogJ2lubGluZSdcbn07XG5cbmNvbnN0IFBPU0lUSU9OID0ge1xuICAgIERPV05fUklHSFQ6ICdkb3duLHJpZ2h0JyxcbiAgICBET1dOX0xFRlQ6ICdkb3duLGxlZnQnLFxuICAgIFVQX1JJR0hUOiAndXAscmlnaHQnLFxuICAgIFVQX0xFRlQ6ICd1cCxsZWZ0JyxcbiAgICBJTkxJTkU6ICdpbmxpbmUnXG59O1xuY29uc3QgQ0FSRVRfQ0xTID0ge1xuICAgIFVQOiAnZmEtY2FyZXQtdXAnLFxuICAgIERPV046ICdmYS1jYXJldC1kb3duJ1xufTtcbmNvbnN0IFBVTExfQ0xTID0ge1xuICAgIExFRlQ6ICdwdWxsLWxlZnQnLFxuICAgIFJJR0hUOiAncHVsbC1yaWdodCdcbn07XG5cbmNvbnN0IEFVVE9fT1BFTiA9IHtcbiAgICBORVZFUjogJ25ldmVyJyxcbiAgICBBQ1RJVkVfUEFHRTogJ2FjdGl2ZXBhZ2UnLFxuICAgIEFMV0FZUzogJ2Fsd2F5cydcbn07XG5cbmNvbnN0IFdJREdFVF9DT05GSUcgPSB7IHdpZGdldFR5cGU6ICd3bS1tZW51JywgaG9zdENsYXNzOiAnZHJvcGRvd24gYXBwLW1lbnUnIH07XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ1t3bU1lbnVdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWVudS5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihNZW51Q29tcG9uZW50KVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTWVudUNvbXBvbmVudCBleHRlbmRzIERhdGFzZXRBd2FyZU5hdkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgICBzdGF0aWMgaW5pdGlhbGl6ZVByb3BzID0gcmVnaXN0ZXJQcm9wcygpO1xuXG4gICAgcHVibGljIG1lbnVhbGlnbjogc3RyaW5nO1xuICAgIHB1YmxpYyBtZW51cG9zaXRpb246IHN0cmluZztcbiAgICBwdWJsaWMgbWVudWxheW91dDogc3RyaW5nO1xuICAgIHB1YmxpYyBtZW51Y2xhc3M6IHN0cmluZztcbiAgICBwdWJsaWMgbGlua3RhcmdldDogc3RyaW5nO1xuICAgIHB1YmxpYyBpY29uY2xhc3M6IHN0cmluZztcbiAgICBwdWJsaWMgYW5pbWF0ZWl0ZW1zOiBzdHJpbmc7XG4gICAgcHVibGljIGRpc2FibGVNZW51Q29udGV4dDogYm9vbGVhbjtcbiAgICBwdWJsaWMgYXV0b2Nsb3NlOiBzdHJpbmc7XG4gICAgcHVibGljIGF1dG9vcGVuOiBzdHJpbmc7XG4gICAgcHVibGljIGhpbnQ6IHN0cmluZztcblxuICAgIHByaXZhdGUgaXRlbUFjdGlvbkZuOiBGdW5jdGlvbjtcbiAgICBwcml2YXRlIG1lbnVDYXJldCA9ICdmYS1jYXJldC1kb3duJztcbiAgICBwcml2YXRlIF9zZWxlY3RGaXJzdEl0ZW0gPSBmYWxzZTtcblxuICAgIHB1YmxpYyB0eXBlOiBhbnk7XG4gICAgcHVibGljIF9tZW51cG9zaXRpb246IHN0cmluZztcblxuICAgIEBIb3N0TGlzdGVuZXIoJ29uU2hvd24nKSBvblNob3coKSB7XG4gICAgICAgIHRoaXMuX21lbnVwb3NpdGlvbiA9IHRoaXMubWVudXBvc2l0aW9uO1xuICAgICAgICBpZiAodGhpcy5fc2VsZWN0Rmlyc3RJdGVtKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLiRlbGVtZW50LmZpbmQoJz4gdWxbd21tZW51ZHJvcGRvd25dIGxpLmFwcC1tZW51LWl0ZW0nKS5maXJzdCgpLmZpbmQoJz4gYScpLmZvY3VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAkYXBwRGlnZXN0KCk7XG4gICAgfVxuICAgIEBIb3N0TGlzdGVuZXIoJ29uSGlkZGVuJykgb25IaWRlKCkge1xuICAgICAgICB0aGlzLiRlbGVtZW50LmZpbmQoJz4uZHJvcGRvd24tdG9nZ2xlJykuZm9jdXMoKTtcbiAgICAgICAgdGhpcy4kZWxlbWVudC5maW5kKCdsaScpLnJlbW92ZUNsYXNzKCdvcGVuJyk7XG4gICAgICAgIHRoaXMuX3NlbGVjdEZpcnN0SXRlbSA9IGZhbHNlO1xuICAgICAgICAvLyByZXNldCB0aGUgbWVudXBvc2l0aW9uIHdoZW4gZHJvcGRvd24gaXMgY2xvc2VkXG4gICAgICAgIHRoaXMubWVudXBvc2l0aW9uID0gdGhpcy5fbWVudXBvc2l0aW9uID8gdGhpcy5fbWVudXBvc2l0aW9uIDogTUVOVV9QT1NJVElPTi5ET1dOX1JJR0hUO1xuICAgICAgICB0aGlzLnNldE1lbnVQb3NpdGlvbigpO1xuICAgICAgICAkYXBwRGlnZXN0KCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd3VwJywgWyckZXZlbnQnLCAnXCJVUC1BUlJPV1wiJ10pXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd2Rvd24nLCBbJyRldmVudCcsICdcIkRPV04tQVJST1dcIiddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dyaWdodCcsIFsnJGV2ZW50JywgJ1wiUklHSFQtQVJST1dcIiddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dsZWZ0JywgWyckZXZlbnQnLCAnXCJMRUZULUFSUk9XXCInXSlcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVudGVyJywgWyckZXZlbnQnLCAnXCJFTlRFUlwiJ10pIG9uS2V5RG93bigkZXZlbnQsIGV2ZW50QWN0aW9uKSB7XG4gICAgICAgIGNvbnN0IEtFWV9NT1ZFTUVOVFMgPSBfLmNsb25lKEtFWUJPQVJEX01PVkVNRU5UUyk7XG4gICAgICAgIGlmICh0aGlzLm1lbnVwb3NpdGlvbiA9PT0gTUVOVV9QT1NJVElPTi5VUF9SSUdIVCkge1xuICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX1VQID0gJ0RPV04tQVJST1cnO1xuICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX0RPV04gPSAnVVAtQVJST1cnO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubWVudXBvc2l0aW9uID09PSBNRU5VX1BPU0lUSU9OLlVQX0xFRlQpIHtcbiAgICAgICAgICAgIEtFWV9NT1ZFTUVOVFMuTU9WRV9VUCA9ICdET1dOLUFSUk9XJztcbiAgICAgICAgICAgIEtFWV9NT1ZFTUVOVFMuTU9WRV9ET1dOID0gJ1VQLUFSUk9XJztcbiAgICAgICAgICAgIEtFWV9NT1ZFTUVOVFMuTU9WRV9MRUZUID0gJ1JJR0hULUFSUk9XJztcbiAgICAgICAgICAgIEtFWV9NT1ZFTUVOVFMuTU9WRV9SSUdIVCA9ICdMRUZULUFSUk9XJztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm1lbnVwb3NpdGlvbiA9PT0gTUVOVV9QT1NJVElPTi5ET1dOX0xFRlQpIHtcbiAgICAgICAgICAgIEtFWV9NT1ZFTUVOVFMuTU9WRV9MRUZUID0gJ1JJR0hULUFSUk9XJztcbiAgICAgICAgICAgIEtFWV9NT1ZFTUVOVFMuTU9WRV9SSUdIVCA9ICdMRUZULUFSUk9XJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChfLmluY2x1ZGVzKFtLRVlfTU9WRU1FTlRTLk1PVkVfRE9XTiwgS0VZX01PVkVNRU5UUy5NT1ZFX1JJR0hUXSwgZXZlbnRBY3Rpb24pKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuYnNEcm9wZG93bi5pc09wZW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RGaXJzdEl0ZW0gPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuYnNEcm9wZG93bi5zaG93KCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQuZmluZCgnPiB1bFt3bW1lbnVkcm9wZG93bl0gbGkuYXBwLW1lbnUtaXRlbScpLmZpcnN0KCkuZmluZCgnPiBhJykuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChldmVudEFjdGlvbiA9PT0gS0VZX01PVkVNRU5UUy5PTl9FTlRFUikge1xuICAgICAgICAgICAgdGhpcy5ic0Ryb3Bkb3duLnRvZ2dsZSh0cnVlKTtcbiAgICAgICAgfSBlbHNlIGlmIChfLmluY2x1ZGVzKFtLRVlfTU9WRU1FTlRTLk1PVkVfVVAsIEtFWV9NT1ZFTUVOVFMuTU9WRV9MRUZUXSwgZXZlbnRBY3Rpb24pKSB7XG4gICAgICAgICAgICB0aGlzLmJzRHJvcGRvd24uaGlkZSgpO1xuICAgICAgICB9XG4gICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBpbmo6IEluamVjdG9yLFxuICAgICAgICBwdWJsaWMgcm91dGU6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSB1c2VyRGVmaW5lZEV4ZWN1dGlvbkNvbnRleHQ6IFVzZXJEZWZpbmVkRXhlY3V0aW9uQ29udGV4dCxcbiAgICAgICAgcHJpdmF0ZSBhcHA6IEFwcCxcbiAgICAgICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwdWJsaWMgYnNEcm9wZG93bjogQnNEcm9wZG93bkRpcmVjdGl2ZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBwYXJlbnROYXY6IE5hdkNvbXBvbmVudCxcbiAgICAgICAgQEF0dHJpYnV0ZSgnc2VsZWN0LmV2ZW50JykgcHVibGljIHNlbGVjdEV2ZW50Q0I6IHN0cmluZ1xuICAgICkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcpO1xuICAgICAgICBpZiAocGFyZW50TmF2KSB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVNZW51Q29udGV4dCA9ICEhcGFyZW50TmF2LmRpc2FibGVNZW51Q29udGV4dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZU1lbnVDb250ZXh0ID0gISFzZWxlY3RFdmVudENCO1xuICAgICAgICB9XG4gICAgICAgIC8vIEZvciBzZWxlY3RpbmcgdGhlIGl0ZW0gb24gbG9hZFxuICAgICAgICBjb25zdCBkYXRhc2V0U3Vic2NyaXB0aW9uID0gdGhpcy5ub2RlcyQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghXy5pc0VtcHR5KHRoaXMubm9kZXMpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGhhc0xpbmtUb0N1cnJlbnRQYWdlKHRoaXMubm9kZXMsIHRoaXMucm91dGUudXJsKSkge1xuICAgICAgICAgICAgICAgICAgICBhZGRDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmRyb3Bkb3duLXRvZ2dsZScpIGFzIEhUTUxFbGVtZW50LCAnYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIElmIG1lbnUgd2lkZ2V0IGlzIGluc2lkZSBuYXYgd2lkZ2V0IHRoZW4gZG9udCBjaGVjayBmb3IgaXRlbSBpc2FjdGl2ZSBwcm9wZXJ0eSBiZWNhdXNlIHRoZXNlIHdpbGwgYmUgaGFuZGxlZCBmb3JtIG5hdiB3aWRnZXQuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50TmF2KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IGl0ZW1Gb3VuZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGdldEl0ZW0gPSAobm9kZXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgXy5mb3JFYWNoKG5vZGVzLCAoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1Gb3VuZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtLmlzYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbUZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uTWVudUl0ZW1TZWxlY3QoeyAkZXZlbnQ6IHt9LCAkaXRlbTogaXRlbSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUcmlnZ2VyIHRoZSBhY3Rpb24gYXNzb2NpYXRlZCB3aXRoIGFjdGl2ZSBpdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlckl0ZW1BY3Rpb24odGhpcywgaXRlbSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFfLmlzRW1wdHkoaXRlbS5jaGlsZHJlbikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRJdGVtKGl0ZW0uY2hpbGRyZW4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgZ2V0SXRlbSh0aGlzLm5vZGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIoKCkgPT4gZGF0YXNldFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcblxuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXNldE5vZGVzKCkge1xuICAgICAgICBzdXBlci5yZXNldE5vZGVzKCk7XG4gICAgICAgIC8vIG9wZW4gdGhlIG1lbnUgaWYgYW55IG9mIGl0cyBtZW51IGl0ZW1zIGhhcyBsaW5rIHRvIGN1cnJlbnQgcGFnZSBhbmQgaWYgYXV0b29wZW4gdmFsdWUgaXMgJ2FjdGl2ZSBwYWdlJ1xuICAgICAgICBpZiAoKHRoaXMuYXV0b29wZW4gPT09IEFVVE9fT1BFTi5BQ1RJVkVfUEFHRSAmJiBoYXNMaW5rVG9DdXJyZW50UGFnZSh0aGlzLm5vZGVzLCB0aGlzLnJvdXRlLnVybCkpIHx8IHRoaXMuYXV0b29wZW4gPT09IEFVVE9fT1BFTi5BTFdBWVMpIHtcbiAgICAgICAgICAgIHRoaXMuYnNEcm9wZG93bi5zaG93KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5zZXRNZW51UG9zaXRpb24oKTtcblxuICAgICAgICBjb25zdCBjYW5jZWxTdWJzY3JpcHRpb24gPSB0aGlzLmFwcC5zdWJzY3JpYmUoXCJoaWdobGlnaHRBY3RpdmVMaW5rXCIsIChkYXRhKSA9PiB7XG4gICAgICAgICAgICB0b2dnbGVDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmRyb3Bkb3duLXRvZ2dsZScpIGFzIEhUTUxFbGVtZW50LCAnYWN0aXZlJywgaGFzTGlua1RvQ3VycmVudFBhZ2UodGhpcy5ub2RlcywgdGhpcy5yb3V0ZS51cmwgKSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKCgpID0+IGNhbmNlbFN1YnNjcmlwdGlvbigpKTtcbiAgICB9XG5cbiAgICBvblByb3BlcnR5Q2hhbmdlKGtleTogc3RyaW5nLCBudjogYW55LCBvdj86IGFueSkge1xuXG4gICAgICAgIGlmIChrZXkgPT09ICd0YWJpbmRleCcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChrZXkgPT09ICdhdXRvY2xvc2UnKSB7XG4gICAgICAgICAgICB0aGlzLmJzRHJvcGRvd24uYXV0b0Nsb3NlID0gbnYgIT09IEFVVE9DTE9TRV9UWVBFLkRJU0FCTEVEO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0TWVudVBvc2l0aW9uKCkge1xuICAgICAgICBzd2l0Y2ggKHRoaXMubWVudXBvc2l0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIFBPU0lUSU9OLkRPV05fUklHSFQ6XG4gICAgICAgICAgICAgICAgcmVtb3ZlQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnZHJvcHVwJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51YWxpZ24gPSBQVUxMX0NMUy5MRUZUO1xuICAgICAgICAgICAgICAgIHRoaXMubWVudUNhcmV0ID0gQ0FSRVRfQ0xTLkRPV047XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFBPU0lUSU9OLkRPV05fTEVGVDpcbiAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsICdkcm9wdXAnKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnVhbGlnbiA9IFBVTExfQ0xTLlJJR0hUO1xuICAgICAgICAgICAgICAgIHRoaXMubWVudUNhcmV0ID0gQ0FSRVRfQ0xTLkRPV047XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFBPU0lUSU9OLlVQX0xFRlQ6XG4gICAgICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnZHJvcHVwJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51YWxpZ24gPSBQVUxMX0NMUy5SSUdIVDtcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnVDYXJldCA9IENBUkVUX0NMUy5VUDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgUE9TSVRJT04uVVBfUklHSFQ6XG4gICAgICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnZHJvcHVwJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51YWxpZ24gPSBQVUxMX0NMUy5MRUZUO1xuICAgICAgICAgICAgICAgIHRoaXMubWVudUNhcmV0ID0gQ0FSRVRfQ0xTLlVQO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBQT1NJVElPTi5JTkxJTkU6XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51YWxpZ24gPSAnZHJvcGlubGluZS1tZW51JztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbk1lbnVJdGVtU2VsZWN0KGFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyAkZXZlbnQgfSA9IGFyZ3M7XG4gICAgICAgIGNvbnN0ICRpdGVtID0gYXJncy4kaXRlbS52YWx1ZTtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdzZWxlY3QnLCB7ICRldmVudCwgJGl0ZW0gfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICAgc3R5bGVyKHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuZHJvcGRvd24tdG9nZ2xlJykgYXMgSFRNTEVsZW1lbnQsIHRoaXMpO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjbWVudVRlbXBsYXRlPlxuICAgIDxidXR0b24gd21CdXR0b25cbiAgICAgICAgICAgIGRyb3Bkb3duVG9nZ2xlXG4gICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJoaW50IHx8ICdNZW51J1wiXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBhcHAtYnV0dG9uIGRyb3Bkb3duLXRvZ2dsZSB7e21lbnVjbGFzc319XCJcbiAgICAgICAgICAgIGhpbnQuYmluZD1cImhpbnRcIlxuICAgICAgICAgICAgc2hvcnRjdXRrZXkuYmluZD1cInNob3J0Y3V0a2V5XCJcbiAgICAgICAgICAgIHRhYmluZGV4LmJpbmQ9XCJ0YWJpbmRleFwiXG4gICAgICAgICAgICBjYXB0aW9uLmJpbmQ9XCJjYXB0aW9uXCJcbiAgICAgICAgICAgIGljb25jbGFzcy5iaW5kPVwiaWNvbmNsYXNzXCJcbiAgICAgICAgICAgIGljb25wb3NpdGlvbi5iaW5kPVwiaWNvbnBvc2l0aW9uXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicHVsbC1yaWdodCBjYXJldCBmYVwiIFtuZ0NsYXNzXT1cIlttZW51Q2FyZXRdXCI+PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNpbm5lclRlbXBsYXRlPlxuICAgIDxpIGNsYXNzPVwiYXBwLWljb24ge3tpY29uY2xhc3N9fVwiPjwvaT5cbiAgICA8c3BhbiBjbGFzcz1cImNhcHRpb25cIiBbdGV4dENvbnRlbnRdPVwiY2FwdGlvblwiPjwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cInB1bGwtcmlnaHQgY2FyZXQgZmEge3ttZW51Q2FyZXR9fVwiPjwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAnYW5jaG9yJzsgZWxzZSBtZW51VGVtcGxhdGVcIj5cbiAgICA8YSB3bUFuY2hvclxuICAgICAgIGRyb3Bkb3duVG9nZ2xlXG5cbiAgICAgICBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiXG4gICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXG5cbiAgICAgICBoaW50LmJpbmQ9XCJoaW50XCJcbiAgICAgICBjbGFzcz1cImRyb3Bkb3duLXRvZ2dsZSB7e21lbnVjbGFzc319XCJcbiAgICAgICBzaG9ydGN1dGtleS5iaW5kPVwic2hvcnRjdXRrZXlcIlxuICAgICAgIHRhYmluZGV4LmJpbmQ9XCJ0YWJpbmRleFwiXG4gICAgICAgY2FwdGlvbi5iaW5kPVwiY2FwdGlvblwiXG4gICAgICAgaWNvbmNsYXNzLmJpbmQ9XCJpY29uY2xhc3NcIlxuICAgICAgIGljb25wb3NpdGlvbi5iaW5kPVwiaWNvbnBvc2l0aW9uXCJcbiAgICAgICBiYWRnZXZhbHVlLmJpbmQ9XCJiYWRnZXZhbHVlXCJcbiAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicHVsbC1yaWdodCBjYXJldCBmYVwiIFtuZ0NsYXNzXT1cIlttZW51Q2FyZXRdXCI+PC9zcGFuPlxuICAgIDwvYT5cbjwvbmctY29udGFpbmVyPlxuXG48dWwgd21NZW51RHJvcGRvd24gW2l0ZW1zXT1cIm5vZGVzXCIgW25nQ2xhc3NdPVwibWVudWxheW91dFwiIGNsYXNzPVwiaWNvbi1wb3NpdGlvbi17e2ljb25wb3NpdGlvbn19XCIgKmRyb3Bkb3duTWVudSBhcmlhLWxhYmVsbGVkYnk9XCJkcm9wZG93bm1lbnVcIiByb2xlPVwibWVudWJhclwiPjwvdWw+XG4iXX0=
306
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvbmF2aWdhdGlvbi9tZW51L3NyYy9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9uYXZpZ2F0aW9uL21lbnUvc3JjL21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQXFCLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0gsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTdELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9ILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7OztJQ1J6QyxpQ0FXeUM7SUFDckMsMEJBQWlFO0lBQ3JFLGlCQUFTOzs7SUFSRCxrRkFBb0Q7SUFEcEQsbURBQWtDO0lBUUosZUFBdUI7SUFBdkIsc0VBQXVCOzs7SUFLN0Qsb0JBQXNDLGNBQUEsV0FBQTs7O0lBQW5DLDREQUE4QjtJQUNYLGVBQXVCO0lBQXZCLDRDQUF1QjtJQUN2QyxlQUF5QztJQUF6Qyx1RUFB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bXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbmplY3RvciwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBCc0Ryb3Bkb3duRGlyZWN0aXZlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9kcm9wZG93bic7XG5cbmltcG9ydCB7ICRhcHBEaWdlc3QsIGFkZENsYXNzLCByZW1vdmVDbGFzcywgdHJpZ2dlckl0ZW1BY3Rpb24sIEFwcCwgdG9nZ2xlQ2xhc3MsIFVzZXJEZWZpbmVkRXhlY3V0aW9uQ29udGV4dCB9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IERhdGFzZXRBd2FyZU5hdkNvbXBvbmVudCwgaGFzTGlua1RvQ3VycmVudFBhZ2UsIHByb3ZpZGVBc1dpZGdldFJlZiwgc3R5bGVyLCBBVVRPQ0xPU0VfVFlQRSB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHsgTmF2Q29tcG9uZW50IH0gZnJvbSAnLi9uYXYvbmF2LmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuL21lbnUucHJvcHMnO1xuXG5kZWNsYXJlIGNvbnN0IF87XG5cbmV4cG9ydCBjb25zdCBLRVlCT0FSRF9NT1ZFTUVOVFMgPSB7XG4gICAgTU9WRV9VUDogJ1VQLUFSUk9XJyxcbiAgICBNT1ZFX0xFRlQ6ICdMRUZULUFSUk9XJyxcbiAgICBNT1ZFX1JJR0hUOiAnUklHSFQtQVJST1cnLFxuICAgIE1PVkVfRE9XTjogJ0RPV04tQVJST1cnLFxuICAgIE9OX0VOVEVSOiAnRU5URVInLFxuICAgIE9OX1RBQjogJ1RBQicsXG4gICAgT05fU0hJRlRfVEFCOiAnU0hJRlQtVEFCJyxcbiAgICBPTl9FU0NBUEU6ICdFU0MnXG59O1xuXG5leHBvcnQgY29uc3QgTUVOVV9QT1NJVElPTiA9IHtcbiAgICBVUF9MRUZUOiAndXAsbGVmdCcsXG4gICAgVVBfUklHSFQ6ICd1cCxyaWdodCcsXG4gICAgRE9XTl9MRUZUOiAnZG93bixsZWZ0JyxcbiAgICBET1dOX1JJR0hUOiAnZG93bixyaWdodCcsXG4gICAgSU5MSU5FOiAnaW5saW5lJ1xufTtcblxuY29uc3QgUE9TSVRJT04gPSB7XG4gICAgRE9XTl9SSUdIVDogJ2Rvd24scmlnaHQnLFxuICAgIERPV05fTEVGVDogJ2Rvd24sbGVmdCcsXG4gICAgVVBfUklHSFQ6ICd1cCxyaWdodCcsXG4gICAgVVBfTEVGVDogJ3VwLGxlZnQnLFxuICAgIElOTElORTogJ2lubGluZSdcbn07XG5jb25zdCBDQVJFVF9DTFMgPSB7XG4gICAgVVA6ICdmYS1jYXJldC11cCcsXG4gICAgRE9XTjogJ2ZhLWNhcmV0LWRvd24nXG59O1xuY29uc3QgUFVMTF9DTFMgPSB7XG4gICAgTEVGVDogJ3B1bGwtbGVmdCcsXG4gICAgUklHSFQ6ICdwdWxsLXJpZ2h0J1xufTtcblxuY29uc3QgQVVUT19PUEVOID0ge1xuICAgIE5FVkVSOiAnbmV2ZXInLFxuICAgIEFDVElWRV9QQUdFOiAnYWN0aXZlcGFnZScsXG4gICAgQUxXQVlTOiAnYWx3YXlzJ1xufTtcblxuY29uc3QgV0lER0VUX0NPTkZJRyA9IHsgd2lkZ2V0VHlwZTogJ3dtLW1lbnUnLCBob3N0Q2xhc3M6ICdkcm9wZG93biBhcHAtbWVudScgfTtcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW3dtTWVudV0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKE1lbnVDb21wb25lbnQpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBNZW51Q29tcG9uZW50IGV4dGVuZHMgRGF0YXNldEF3YXJlTmF2Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICBwdWJsaWMgbWVudWFsaWduOiBzdHJpbmc7XG4gICAgcHVibGljIG1lbnVwb3NpdGlvbjogc3RyaW5nO1xuICAgIHB1YmxpYyBtZW51bGF5b3V0OiBzdHJpbmc7XG4gICAgcHVibGljIG1lbnVjbGFzczogc3RyaW5nO1xuICAgIHB1YmxpYyBsaW5rdGFyZ2V0OiBzdHJpbmc7XG4gICAgcHVibGljIGljb25jbGFzczogc3RyaW5nO1xuICAgIHB1YmxpYyBhbmltYXRlaXRlbXM6IHN0cmluZztcbiAgICBwdWJsaWMgZGlzYWJsZU1lbnVDb250ZXh0OiBib29sZWFuO1xuICAgIHB1YmxpYyBhdXRvY2xvc2U6IHN0cmluZztcbiAgICBwdWJsaWMgYXV0b29wZW46IHN0cmluZztcbiAgICBwdWJsaWMgaGludDogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBpdGVtQWN0aW9uRm46IEZ1bmN0aW9uO1xuICAgIHByaXZhdGUgbWVudUNhcmV0ID0gJ2ZhLWNhcmV0LWRvd24nO1xuICAgIHByaXZhdGUgX3NlbGVjdEZpcnN0SXRlbSA9IGZhbHNlO1xuXG4gICAgcHVibGljIHR5cGU6IGFueTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ29uU2hvd24nKSBvblNob3coKSB7XG4gICAgICAgIGlmICh0aGlzLl9zZWxlY3RGaXJzdEl0ZW0pIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQuZmluZCgnPiB1bFt3bW1lbnVkcm9wZG93bl0gbGkuYXBwLW1lbnUtaXRlbScpLmZpcnN0KCkuZmluZCgnPiBhJykuZm9jdXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgICRhcHBEaWdlc3QoKTtcbiAgICB9XG4gICAgQEhvc3RMaXN0ZW5lcignb25IaWRkZW4nKSBvbkhpZGUoKSB7XG4gICAgICAgIHRoaXMuJGVsZW1lbnQuZmluZCgnPi5kcm9wZG93bi10b2dnbGUnKS5mb2N1cygpO1xuICAgICAgICB0aGlzLiRlbGVtZW50LmZpbmQoJ2xpJykucmVtb3ZlQ2xhc3MoJ29wZW4nKTtcbiAgICAgICAgdGhpcy5fc2VsZWN0Rmlyc3RJdGVtID0gZmFsc2U7XG4gICAgICAgICRhcHBEaWdlc3QoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93dXAnLCBbJyRldmVudCcsICdcIlVQLUFSUk9XXCInXSlcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93ZG93bicsIFsnJGV2ZW50JywgJ1wiRE9XTi1BUlJPV1wiJ10pXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd3JpZ2h0JywgWyckZXZlbnQnLCAnXCJSSUdIVC1BUlJPV1wiJ10pXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd2xlZnQnLCBbJyRldmVudCcsICdcIkxFRlQtQVJST1dcIiddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZW50ZXInLCBbJyRldmVudCcsICdcIkVOVEVSXCInXSkgb25LZXlEb3duKCRldmVudCwgZXZlbnRBY3Rpb24pIHtcbiAgICAgICAgY29uc3QgS0VZX01PVkVNRU5UUyA9IF8uY2xvbmUoS0VZQk9BUkRfTU9WRU1FTlRTKTtcbiAgICAgICAgaWYgKHRoaXMubWVudXBvc2l0aW9uID09PSBNRU5VX1BPU0lUSU9OLlVQX1JJR0hUKSB7XG4gICAgICAgICAgICBLRVlfTU9WRU1FTlRTLk1PVkVfVVAgPSAnRE9XTi1BUlJPVyc7XG4gICAgICAgICAgICBLRVlfTU9WRU1FTlRTLk1PVkVfRE9XTiA9ICdVUC1BUlJPVyc7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5tZW51cG9zaXRpb24gPT09IE1FTlVfUE9TSVRJT04uVVBfTEVGVCkge1xuICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX1VQID0gJ0RPV04tQVJST1cnO1xuICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX0RPV04gPSAnVVAtQVJST1cnO1xuICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX0xFRlQgPSAnUklHSFQtQVJST1cnO1xuICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX1JJR0hUID0gJ0xFRlQtQVJST1cnO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubWVudXBvc2l0aW9uID09PSBNRU5VX1BPU0lUSU9OLkRPV05fTEVGVCkge1xuICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX0xFRlQgPSAnUklHSFQtQVJST1cnO1xuICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX1JJR0hUID0gJ0xFRlQtQVJST1cnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKF8uaW5jbHVkZXMoW0tFWV9NT1ZFTUVOVFMuTU9WRV9ET1dOLCBLRVlfTU9WRU1FTlRTLk1PVkVfUklHSFRdLCBldmVudEFjdGlvbikpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5ic0Ryb3Bkb3duLmlzT3Blbikge1xuICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdEZpcnN0SXRlbSA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5ic0Ryb3Bkb3duLnNob3coKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy4kZWxlbWVudC5maW5kKCc+IHVsW3dtbWVudWRyb3Bkb3duXSBsaS5hcHAtbWVudS1pdGVtJykuZmlyc3QoKS5maW5kKCc+IGEnKS5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50QWN0aW9uID09PSBLRVlfTU9WRU1FTlRTLk9OX0VOVEVSKSB7XG4gICAgICAgICAgICB0aGlzLmJzRHJvcGRvd24udG9nZ2xlKHRydWUpO1xuICAgICAgICB9IGVsc2UgaWYgKF8uaW5jbHVkZXMoW0tFWV9NT1ZFTUVOVFMuTU9WRV9VUCwgS0VZX01PVkVNRU5UUy5NT1ZFX0xFRlRdLCBldmVudEFjdGlvbikpIHtcbiAgICAgICAgICAgIHRoaXMuYnNEcm9wZG93bi5oaWRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluajogSW5qZWN0b3IsXG4gICAgICAgIHB1YmxpYyByb3V0ZTogUm91dGVyLFxuICAgICAgICBwcml2YXRlIHVzZXJEZWZpbmVkRXhlY3V0aW9uQ29udGV4dDogVXNlckRlZmluZWRFeGVjdXRpb25Db250ZXh0LFxuICAgICAgICBwcml2YXRlIGFwcDogQXBwLFxuICAgICAgICBAU2VsZigpIEBPcHRpb25hbCgpIHB1YmxpYyBic0Ryb3Bkb3duOiBCc0Ryb3Bkb3duRGlyZWN0aXZlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHBhcmVudE5hdjogTmF2Q29tcG9uZW50LFxuICAgICAgICBAQXR0cmlidXRlKCdzZWxlY3QuZXZlbnQnKSBwdWJsaWMgc2VsZWN0RXZlbnRDQjogc3RyaW5nXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRyk7XG4gICAgICAgIGlmIChwYXJlbnROYXYpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZU1lbnVDb250ZXh0ID0gISFwYXJlbnROYXYuZGlzYWJsZU1lbnVDb250ZXh0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlTWVudUNvbnRleHQgPSAhIXNlbGVjdEV2ZW50Q0I7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRm9yIHNlbGVjdGluZyB0aGUgaXRlbSBvbiBsb2FkXG4gICAgICAgIGNvbnN0IGRhdGFzZXRTdWJzY3JpcHRpb24gPSB0aGlzLm5vZGVzJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFfLmlzRW1wdHkodGhpcy5ub2RlcykpIHtcbiAgICAgICAgICAgICAgICBpZiAoaGFzTGlua1RvQ3VycmVudFBhZ2UodGhpcy5ub2RlcywgdGhpcy5yb3V0ZS51cmwpKSB7XG4gICAgICAgICAgICAgICAgICAgIGFkZENsYXNzKHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuZHJvcGRvd24tdG9nZ2xlJykgYXMgSFRNTEVsZW1lbnQsICdhY3RpdmUnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gSWYgbWVudSB3aWRnZXQgaXMgaW5zaWRlIG5hdiB3aWRnZXQgdGhlbiBkb250IGNoZWNrIGZvciBpdGVtIGlzYWN0aXZlIHByb3BlcnR5IGJlY2F1c2UgdGhlc2Ugd2lsbCBiZSBoYW5kbGVkIGZvcm0gbmF2IHdpZGdldC5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wYXJlbnROYXYpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXQgaXRlbUZvdW5kID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgY29uc3QgZ2V0SXRlbSA9IChub2RlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBfLmZvckVhY2gobm9kZXMsIChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbUZvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0uaXNhY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtRm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25NZW51SXRlbVNlbGVjdCh7ICRldmVudDoge30sICRpdGVtOiBpdGVtIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRyaWdnZXIgdGhlIGFjdGlvbiBhc3NvY2lhdGVkIHdpdGggYWN0aXZlIGl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VySXRlbUFjdGlvbih0aGlzLCBpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIV8uaXNFbXB0eShpdGVtLmNoaWxkcmVuKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEl0ZW0oaXRlbS5jaGlsZHJlbik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBnZXRJdGVtKHRoaXMubm9kZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcigoKSA9PiBkYXRhc2V0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc2V0Tm9kZXMoKSB7XG4gICAgICAgIHN1cGVyLnJlc2V0Tm9kZXMoKTtcbiAgICAgICAgLy8gb3BlbiB0aGUgbWVudSBpZiBhbnkgb2YgaXRzIG1lbnUgaXRlbXMgaGFzIGxpbmsgdG8gY3VycmVudCBwYWdlIGFuZCBpZiBhdXRvb3BlbiB2YWx1ZSBpcyAnYWN0aXZlIHBhZ2UnXG4gICAgICAgIGlmICgodGhpcy5hdXRvb3BlbiA9PT0gQVVUT19PUEVOLkFDVElWRV9QQUdFICYmIGhhc0xpbmtUb0N1cnJlbnRQYWdlKHRoaXMubm9kZXMsIHRoaXMucm91dGUudXJsKSkgfHwgdGhpcy5hdXRvb3BlbiA9PT0gQVVUT19PUEVOLkFMV0FZUykge1xuICAgICAgICAgICAgdGhpcy5ic0Ryb3Bkb3duLnNob3coKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnNldE1lbnVQb3NpdGlvbigpO1xuXG4gICAgICAgIGNvbnN0IGNhbmNlbFN1YnNjcmlwdGlvbiA9IHRoaXMuYXBwLnN1YnNjcmliZShcImhpZ2hsaWdodEFjdGl2ZUxpbmtcIiwgKGRhdGEpID0+IHtcbiAgICAgICAgICAgIHRvZ2dsZUNsYXNzKHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuZHJvcGRvd24tdG9nZ2xlJykgYXMgSFRNTEVsZW1lbnQsICdhY3RpdmUnLCBoYXNMaW5rVG9DdXJyZW50UGFnZSh0aGlzLm5vZGVzLCB0aGlzLnJvdXRlLnVybCApKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIoKCkgPT4gY2FuY2VsU3Vic2NyaXB0aW9uKCkpO1xuICAgIH1cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92PzogYW55KSB7XG5cbiAgICAgICAgaWYgKGtleSA9PT0gJ3RhYmluZGV4Jykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGtleSA9PT0gJ2F1dG9jbG9zZScpIHtcbiAgICAgICAgICAgIHRoaXMuYnNEcm9wZG93bi5hdXRvQ2xvc2UgPSBudiAhPT0gQVVUT0NMT1NFX1RZUEUuRElTQUJMRUQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0TWVudVBvc2l0aW9uKCkge1xuICAgICAgICBzd2l0Y2ggKHRoaXMubWVudXBvc2l0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIFBPU0lUSU9OLkRPV05fUklHSFQ6XG4gICAgICAgICAgICAgICAgcmVtb3ZlQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnZHJvcHVwJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51YWxpZ24gPSBQVUxMX0NMUy5MRUZUO1xuICAgICAgICAgICAgICAgIHRoaXMubWVudUNhcmV0ID0gQ0FSRVRfQ0xTLkRPV047XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFBPU0lUSU9OLkRPV05fTEVGVDpcbiAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsICdkcm9wdXAnKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnVhbGlnbiA9IFBVTExfQ0xTLlJJR0hUO1xuICAgICAgICAgICAgICAgIHRoaXMubWVudUNhcmV0ID0gQ0FSRVRfQ0xTLkRPV047XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFBPU0lUSU9OLlVQX0xFRlQ6XG4gICAgICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnZHJvcHVwJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51YWxpZ24gPSBQVUxMX0NMUy5SSUdIVDtcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnVDYXJldCA9IENBUkVUX0NMUy5VUDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgUE9TSVRJT04uVVBfUklHSFQ6XG4gICAgICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnZHJvcHVwJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51YWxpZ24gPSBQVUxMX0NMUy5MRUZUO1xuICAgICAgICAgICAgICAgIHRoaXMubWVudUNhcmV0ID0gQ0FSRVRfQ0xTLlVQO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBQT1NJVElPTi5JTkxJTkU6XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51YWxpZ24gPSAnZHJvcGlubGluZS1tZW51JztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbk1lbnVJdGVtU2VsZWN0KGFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyAkZXZlbnQgfSA9IGFyZ3M7XG4gICAgICAgIGNvbnN0ICRpdGVtID0gYXJncy4kaXRlbS52YWx1ZTtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdzZWxlY3QnLCB7ICRldmVudCwgJGl0ZW0gfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICAgc3R5bGVyKHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuZHJvcGRvd24tdG9nZ2xlJykgYXMgSFRNTEVsZW1lbnQsIHRoaXMpO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjbWVudVRlbXBsYXRlPlxuICAgIDxidXR0b24gd21CdXR0b25cbiAgICAgICAgICAgIGRyb3Bkb3duVG9nZ2xlXG4gICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJoaW50IHx8ICdNZW51J1wiXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBhcHAtYnV0dG9uIGRyb3Bkb3duLXRvZ2dsZSB7e21lbnVjbGFzc319XCJcbiAgICAgICAgICAgIGhpbnQuYmluZD1cImhpbnRcIlxuICAgICAgICAgICAgc2hvcnRjdXRrZXkuYmluZD1cInNob3J0Y3V0a2V5XCJcbiAgICAgICAgICAgIHRhYmluZGV4LmJpbmQ9XCJ0YWJpbmRleFwiXG4gICAgICAgICAgICBjYXB0aW9uLmJpbmQ9XCJjYXB0aW9uXCJcbiAgICAgICAgICAgIGljb25jbGFzcy5iaW5kPVwiaWNvbmNsYXNzXCJcbiAgICAgICAgICAgIGljb25wb3NpdGlvbi5iaW5kPVwiaWNvbnBvc2l0aW9uXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicHVsbC1yaWdodCBjYXJldCBmYVwiIFtuZ0NsYXNzXT1cIlttZW51Q2FyZXRdXCI+PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNpbm5lclRlbXBsYXRlPlxuICAgIDxpIGNsYXNzPVwiYXBwLWljb24ge3tpY29uY2xhc3N9fVwiPjwvaT5cbiAgICA8c3BhbiBjbGFzcz1cImNhcHRpb25cIiBbdGV4dENvbnRlbnRdPVwiY2FwdGlvblwiPjwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cInB1bGwtcmlnaHQgY2FyZXQgZmEge3ttZW51Q2FyZXR9fVwiPjwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAnYW5jaG9yJzsgZWxzZSBtZW51VGVtcGxhdGVcIj5cbiAgICA8YSB3bUFuY2hvclxuICAgICAgIGRyb3Bkb3duVG9nZ2xlXG5cbiAgICAgICBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiXG4gICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXG5cbiAgICAgICBoaW50LmJpbmQ9XCJoaW50XCJcbiAgICAgICBjbGFzcz1cImRyb3Bkb3duLXRvZ2dsZSB7e21lbnVjbGFzc319XCJcbiAgICAgICBzaG9ydGN1dGtleS5iaW5kPVwic2hvcnRjdXRrZXlcIlxuICAgICAgIHRhYmluZGV4LmJpbmQ9XCJ0YWJpbmRleFwiXG4gICAgICAgY2FwdGlvbi5iaW5kPVwiY2FwdGlvblwiXG4gICAgICAgaWNvbmNsYXNzLmJpbmQ9XCJpY29uY2xhc3NcIlxuICAgICAgIGljb25wb3NpdGlvbi5iaW5kPVwiaWNvbnBvc2l0aW9uXCJcbiAgICAgICBiYWRnZXZhbHVlLmJpbmQ9XCJiYWRnZXZhbHVlXCJcbiAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicHVsbC1yaWdodCBjYXJldCBmYVwiIFtuZ0NsYXNzXT1cIlttZW51Q2FyZXRdXCI+PC9zcGFuPlxuICAgIDwvYT5cbjwvbmctY29udGFpbmVyPlxuXG48dWwgd21NZW51RHJvcGRvd24gW2l0ZW1zXT1cIm5vZGVzXCIgW25nQ2xhc3NdPVwibWVudWxheW91dFwiIGNsYXNzPVwiaWNvbi1wb3NpdGlvbi17e2ljb25wb3NpdGlvbn19XCIgKmRyb3Bkb3duTWVudSBhcmlhLWxhYmVsbGVkYnk9XCJkcm9wZG93bm1lbnVcIiByb2xlPVwibWVudWJhclwiPjwvdWw+XG4iXX0=
@@ -362,7 +362,6 @@ const AUTO_OPEN = {
362
362
  const WIDGET_CONFIG$1 = { widgetType: 'wm-menu', hostClass: 'dropdown app-menu' };
363
363
  class MenuComponent extends DatasetAwareNavComponent {
364
364
  onShow() {
365
- this._menuposition = this.menuposition;
366
365
  if (this._selectFirstItem) {
367
366
  setTimeout(() => {
368
367
  this.$element.find('> ul[wmmenudropdown] li.app-menu-item').first().find('> a').focus();
@@ -374,9 +373,6 @@ class MenuComponent extends DatasetAwareNavComponent {
374
373
  this.$element.find('>.dropdown-toggle').focus();
375
374
  this.$element.find('li').removeClass('open');
376
375
  this._selectFirstItem = false;
377
- // reset the menuposition when dropdown is closed
378
- this.menuposition = this._menuposition ? this._menuposition : MENU_POSITION.DOWN_RIGHT;
379
- this.setMenuPosition();
380
376
  $appDigest();
381
377
  }
382
378
  onKeyDown($event, eventAction) {
@@ -879,7 +875,6 @@ class MenuDropdownComponent {
879
875
  constructor(elRef, menuRef) {
880
876
  this.menuRef = menuRef;
881
877
  this.nativeElement = elRef.nativeElement;
882
- this.hasExecutedCallback = false;
883
878
  addClass(this.nativeElement, DEFAULT_CLS$1);
884
879
  }
885
880
  ngAfterViewInit() {
@@ -889,57 +884,6 @@ class MenuDropdownComponent {
889
884
  animationClass = `animated ${(animationClasses[animateItems][this.menuRef.menuposition] || animationClasses[animateItems].name)}`;
890
885
  }
891
886
  addClass(this.nativeElement, `dropdown-menu ${this.menuRef.menualign} ${animationClass}`, true);
892
- this.getParentWidget();
893
- }
894
- // Function to check if the menu widget is present inside other widgets like table, tabs, dialog, nav, list, tile, panel, accordion
895
- // if true then call createObserver() which internally calculates dropown height
896
- getParentWidget() {
897
- const closestWidget = $(this.menuRef.nativeElement).closest('table, ul, .dialog, .app-tabs, .app-accordion, .app-panel, .app-tile');
898
- // Check if the closest table is the parent of the menu widget
899
- if (closestWidget && $(closestWidget).has(this.menuRef.nativeElement).length > 0) {
900
- this.createObserver(this, this.callback);
901
- }
902
- }
903
- // function which changes the position of the menu dropdown dynamically if it exceeds viewport height
904
- callback(entries, observer) {
905
- var _a;
906
- if (!this.hasExecutedCallback) {
907
- const self = this;
908
- const positions = ((_a = this.menuRef.menuposition) === null || _a === void 0 ? void 0 : _a.split(',')) || [];
909
- entries.forEach(entry => {
910
- var _a, _b, _c, _d, _e;
911
- if (entry.isIntersecting) {
912
- positions[0] = 'down';
913
- self.menuRef.menuposition = positions.length > 1 ? positions.join() : 'down,right';
914
- (_a = self.nativeElement.parentElement) === null || _a === void 0 ? void 0 : _a.classList.add('dropdown');
915
- self.menuRef.setMenuPosition();
916
- }
917
- else {
918
- positions[0] = 'up';
919
- self.menuRef.menuposition = positions.length > 1 ? positions.join() : 'up,right';
920
- (_b = self.nativeElement.parentElement) === null || _b === void 0 ? void 0 : _b.classList.add('dropup');
921
- self.menuRef.setMenuPosition();
922
- // when container="body" is added to menu dropdown, the dropdown menu ul is attached directly to body.
923
- // so adding a class name inorder to adjust the styling of the dropdown
924
- const dropdownContainer = (_c = self.nativeElement.parentElement) === null || _c === void 0 ? void 0 : _c.parentElement;
925
- if (dropdownContainer.tagName.toUpperCase() === "BS-DROPDOWN-CONTAINER") {
926
- // The parent element is <bs-dropdown-container>
927
- (_e = (_d = self.nativeElement.parentElement) === null || _d === void 0 ? void 0 : _d.parentElement) === null || _e === void 0 ? void 0 : _e.classList.add('parent-position');
928
- }
929
- }
930
- });
931
- this.hasExecutedCallback = true;
932
- }
933
- }
934
- // function which checks if the dropdown is within the viewport height or exceeds viewport height
935
- createObserver(target, callback) {
936
- const options = {
937
- root: null,
938
- threshold: 1,
939
- once: true
940
- };
941
- const observer = new IntersectionObserver(callback.bind(this), options);
942
- observer.observe(target.nativeElement);
943
887
  }
944
888
  }
945
889
  MenuDropdownComponent.ɵfac = function MenuDropdownComponent_Factory(t) { return new (t || MenuDropdownComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(MenuComponent)); };