@seniorsistemas/angular-components 17.7.3 → 17.7.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/seniorsistemas-angular-components.umd.js +335 -235
- package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
- package/bundles/seniorsistemas-angular-components.umd.min.js +2 -2
- package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
- package/components/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +8 -4
- package/components/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.d.ts +2 -1
- package/components/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.d.ts +7 -4
- package/components/tiered-menu/models/tiered-menu-item-data.d.ts +2 -0
- package/components/tiered-menu/models/tiered-menu-item-internal-data.d.ts +2 -6
- package/components/tiered-menu/{tiered-menu.event.service.d.ts → services/tiered-menu.event.service.d.ts} +1 -8
- package/components/tiered-menu/services/tiered-menu.global.service.d.ts +4 -0
- package/components/tiered-menu/{tiered-menu.service.d.ts → services/tiered-menu.service.d.ts} +5 -3
- package/components/tiered-menu/tiered-menu.directive.d.ts +16 -14
- package/esm2015/components/ia-insight/components/ia-insight-card/components/ia-insight-card-loader/ia-insight-card-loader.component.js +3 -3
- package/esm2015/components/ia-insight/components/ia-insight-card/ia-insight-card.component.js +3 -2
- package/esm2015/components/tiered-menu/components/tiered-menu/tiered-menu.component.js +110 -51
- package/esm2015/components/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.js +16 -8
- package/esm2015/components/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.js +53 -9
- package/esm2015/components/tiered-menu/models/tiered-menu-item-data.js +1 -1
- package/esm2015/components/tiered-menu/models/tiered-menu-item-internal-data.js +1 -1
- package/esm2015/components/tiered-menu/services/tiered-menu.event.service.js +18 -0
- package/esm2015/components/tiered-menu/services/tiered-menu.global.service.js +9 -0
- package/esm2015/components/tiered-menu/services/tiered-menu.service.js +51 -0
- package/esm2015/components/tiered-menu/tiered-menu.directive.js +103 -109
- package/esm2015/components/tiered-menu/tiered-menu.module.js +8 -12
- package/esm2015/seniorsistemas-angular-components.js +18 -17
- package/esm5/components/ia-insight/components/ia-insight-card/components/ia-insight-card-loader/ia-insight-card-loader.component.js +3 -3
- package/esm5/components/ia-insight/components/ia-insight-card/ia-insight-card.component.js +3 -2
- package/esm5/components/tiered-menu/components/tiered-menu/tiered-menu.component.js +110 -51
- package/esm5/components/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.js +16 -8
- package/esm5/components/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.js +53 -9
- package/esm5/components/tiered-menu/models/tiered-menu-item-data.js +1 -1
- package/esm5/components/tiered-menu/models/tiered-menu-item-internal-data.js +1 -1
- package/esm5/components/tiered-menu/services/tiered-menu.event.service.js +19 -0
- package/esm5/components/tiered-menu/services/tiered-menu.global.service.js +12 -0
- package/esm5/components/tiered-menu/services/tiered-menu.service.js +54 -0
- package/esm5/components/tiered-menu/tiered-menu.directive.js +103 -110
- package/esm5/components/tiered-menu/tiered-menu.module.js +8 -12
- package/esm5/seniorsistemas-angular-components.js +18 -17
- package/fesm2015/seniorsistemas-angular-components.js +313 -214
- package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
- package/fesm5/seniorsistemas-angular-components.js +317 -218
- package/fesm5/seniorsistemas-angular-components.js.map +1 -1
- package/package.json +2 -1
- package/seniorsistemas-angular-components.d.ts +17 -16
- package/seniorsistemas-angular-components.metadata.json +1 -1
- package/esm2015/components/tiered-menu/tiered-menu.event.service.js +0 -39
- package/esm2015/components/tiered-menu/tiered-menu.service.js +0 -39
- package/esm5/components/tiered-menu/tiered-menu.event.service.js +0 -40
- package/esm5/components/tiered-menu/tiered-menu.service.js +0 -44
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { ApplicationRef, ComponentFactoryResolver, EventEmitter, Injector, OnDestroy, OnInit } from "@angular/core";
|
|
1
|
+
import { ApplicationRef, ChangeDetectorRef, ComponentFactoryResolver, EventEmitter, Injector, OnDestroy, OnInit } from "@angular/core";
|
|
2
2
|
import { TieredMenuItemInternalData } from "../../models/tiered-menu-item-internal-data";
|
|
3
|
-
import { TieredMenuEventService } from "../../tiered-menu.event.service";
|
|
4
|
-
import { TieredMenuService } from "../../tiered-menu.service";
|
|
3
|
+
import { TieredMenuEventService } from "../../services/tiered-menu.event.service";
|
|
4
|
+
import { TieredMenuService } from "../../services/tiered-menu.service";
|
|
5
5
|
export declare class TieredMenuComponent implements OnInit, OnDestroy {
|
|
6
6
|
private readonly _appRef;
|
|
7
7
|
private readonly _componentFactoryResolver;
|
|
8
8
|
private readonly _injector;
|
|
9
|
+
private readonly _changeDetectorRef;
|
|
9
10
|
readonly tieredMenuService: TieredMenuService;
|
|
10
11
|
private readonly _tieredMenuEventService;
|
|
11
12
|
items: TieredMenuItemInternalData[];
|
|
@@ -16,7 +17,10 @@ export declare class TieredMenuComponent implements OnInit, OnDestroy {
|
|
|
16
17
|
private _menuDivElement?;
|
|
17
18
|
private _unsubscribe$;
|
|
18
19
|
destroyRequest: EventEmitter<boolean>;
|
|
19
|
-
constructor(_appRef: ApplicationRef, _componentFactoryResolver: ComponentFactoryResolver, _injector: Injector, tieredMenuService: TieredMenuService, _tieredMenuEventService: TieredMenuEventService);
|
|
20
|
+
constructor(_appRef: ApplicationRef, _componentFactoryResolver: ComponentFactoryResolver, _injector: Injector, _changeDetectorRef: ChangeDetectorRef, tieredMenuService: TieredMenuService, _tieredMenuEventService: TieredMenuEventService);
|
|
21
|
+
onResize(): void;
|
|
22
|
+
onDocumentClick(event: MouseEvent): void;
|
|
23
|
+
onKeydownHandler(event: KeyboardEvent): void;
|
|
20
24
|
ngOnInit(): void;
|
|
21
25
|
ngOnDestroy(): void;
|
|
22
26
|
private _incrementCurItem;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { TieredMenuEventService } from "../../tiered-menu.event.service";
|
|
1
|
+
import { TieredMenuEventService } from "../../services/tiered-menu.event.service";
|
|
2
2
|
import { TieredMenuItemInternalData } from "../../models";
|
|
3
3
|
export declare class TieredMenuItemComponent {
|
|
4
4
|
private readonly _tieredMenuEventService;
|
|
5
5
|
item: TieredMenuItemInternalData;
|
|
6
6
|
focused: boolean;
|
|
7
|
+
highlight: boolean;
|
|
7
8
|
triggerEvent: "click" | "hover";
|
|
8
9
|
closeOnClick: boolean;
|
|
9
10
|
private _showTimeout?;
|
package/components/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.d.ts
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import { OnDestroy, OnInit } from "@angular/core";
|
|
2
2
|
import { TieredMenuItemInternalData } from "../../models/tiered-menu-item-internal-data";
|
|
3
|
-
import { TieredMenuEventService } from "../../tiered-menu.event.service";
|
|
4
|
-
import { TieredMenuService } from "../../tiered-menu.service";
|
|
3
|
+
import { TieredMenuEventService } from "../../services/tiered-menu.event.service";
|
|
4
|
+
import { TieredMenuService } from "../../services/tiered-menu.service";
|
|
5
5
|
export declare class TieredMenuNestedComponent implements OnInit, OnDestroy {
|
|
6
6
|
readonly tieredMenuService: TieredMenuService;
|
|
7
7
|
private readonly _tieredMenuEventService;
|
|
8
8
|
items: TieredMenuItemInternalData[];
|
|
9
9
|
top: number;
|
|
10
|
-
|
|
11
|
-
private _unsubscribe$;
|
|
10
|
+
left: number;
|
|
12
11
|
private _lastOpenItem;
|
|
12
|
+
private _unsubscribe$;
|
|
13
|
+
onResize(): void;
|
|
14
|
+
onDocumentClick(event: MouseEvent): void;
|
|
15
|
+
onKeydownHandler(event: KeyboardEvent): void;
|
|
13
16
|
constructor(tieredMenuService: TieredMenuService, _tieredMenuEventService: TieredMenuEventService);
|
|
14
17
|
ngOnInit(): void;
|
|
15
18
|
ngOnDestroy(): void;
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import { TieredMenuItemData } from "./tiered-menu-item-data";
|
|
2
|
+
export interface TieredMenuItemInternalData extends TieredMenuItemData {
|
|
2
3
|
id?: string;
|
|
3
|
-
label?: string;
|
|
4
|
-
iconClass?: string;
|
|
5
4
|
isOpen?: boolean;
|
|
6
|
-
command?: VoidFunction;
|
|
7
|
-
submenu?: TieredMenuItemInternalData[];
|
|
8
|
-
divider?: boolean;
|
|
9
5
|
parent?: TieredMenuItemInternalData;
|
|
10
6
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
|
-
import { TieredMenuItemInternalData } from '
|
|
2
|
+
import { TieredMenuItemInternalData } from '../models/tiered-menu-item-internal-data';
|
|
3
3
|
export declare class TieredMenuEventService {
|
|
4
4
|
incrementCurrentItemEvent: EventEmitter<any>;
|
|
5
5
|
decrementCurrentItemEvent: EventEmitter<any>;
|
|
@@ -8,11 +8,4 @@ export declare class TieredMenuEventService {
|
|
|
8
8
|
openItemMenuEvent: EventEmitter<TieredMenuItemInternalData>;
|
|
9
9
|
closeItemMenuEvent: EventEmitter<TieredMenuItemInternalData>;
|
|
10
10
|
createMenuEvent: EventEmitter<TieredMenuItemInternalData>;
|
|
11
|
-
emitIncrementCurrentItemEvent(): void;
|
|
12
|
-
emitDecrementCurrentItemEvent(): void;
|
|
13
|
-
emitCloseAllMenusEvent(): void;
|
|
14
|
-
emitSelectItemEvent(item: TieredMenuItemInternalData): void;
|
|
15
|
-
emitOpenItemMenuEvent(item: TieredMenuItemInternalData): void;
|
|
16
|
-
emitCloseItemMenuEvent(item: TieredMenuItemInternalData): void;
|
|
17
|
-
emitCreateMenuEvent(item: TieredMenuItemInternalData): void;
|
|
18
11
|
}
|
package/components/tiered-menu/{tiered-menu.service.d.ts → services/tiered-menu.service.d.ts}
RENAMED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { TieredMenuItemData } from "
|
|
2
|
-
import { TieredMenuItemInternalData } from "
|
|
1
|
+
import { TieredMenuItemData } from "../models/tiered-menu-item-data";
|
|
2
|
+
import { TieredMenuItemInternalData } from "../models/tiered-menu-item-internal-data";
|
|
3
3
|
export declare class TieredMenuService {
|
|
4
4
|
currentItem: TieredMenuItemInternalData;
|
|
5
5
|
currentItems: TieredMenuItemInternalData[];
|
|
6
6
|
items: TieredMenuItemInternalData[];
|
|
7
7
|
normalizeData(items: TieredMenuItemData[], parent?: TieredMenuItemInternalData): TieredMenuItemInternalData[];
|
|
8
8
|
markAllItemsAsClosed(items: TieredMenuItemInternalData[]): TieredMenuItemInternalData[];
|
|
9
|
-
searchTheHierarchy(
|
|
9
|
+
searchTheHierarchy(itemA: TieredMenuItemInternalData, itemB: TieredMenuItemInternalData): boolean;
|
|
10
|
+
cloneItems(items: TieredMenuItemInternalData[]): TieredMenuItemInternalData[];
|
|
11
|
+
private _generateId;
|
|
10
12
|
}
|
|
@@ -1,32 +1,31 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ApplicationRef, ChangeDetectorRef, ComponentFactoryResolver, DoCheck, ElementRef, Injector, OnDestroy, OnInit } from "@angular/core";
|
|
2
2
|
import { TieredMenuItemData } from "./models/tiered-menu-item-data";
|
|
3
|
-
import { TieredMenuEventService } from "./tiered-menu.event.service";
|
|
4
|
-
import {
|
|
5
|
-
|
|
3
|
+
import { TieredMenuEventService } from "./services/tiered-menu.event.service";
|
|
4
|
+
import { TieredMenuGlobalService } from "./services/tiered-menu.global.service";
|
|
5
|
+
import { TieredMenuService } from "./services/tiered-menu.service";
|
|
6
|
+
export declare class TieredMenuDirective implements OnInit, DoCheck, OnDestroy {
|
|
6
7
|
private readonly _elementRef;
|
|
7
8
|
private readonly _appRef;
|
|
8
9
|
private readonly _componentFactoryResolver;
|
|
9
10
|
private readonly _injector;
|
|
10
11
|
private readonly _tieredMenuEventService;
|
|
11
12
|
private readonly _tieredMenuService;
|
|
13
|
+
private readonly _tieredMenuGlobalService;
|
|
14
|
+
private readonly _changeDetectorRef;
|
|
15
|
+
items: TieredMenuItemData[];
|
|
16
|
+
triggerEvent: "click" | "hover";
|
|
12
17
|
private _componentRef;
|
|
13
18
|
private _showTimeout?;
|
|
14
|
-
private _menuDivElement?;
|
|
15
19
|
private _isNested;
|
|
16
20
|
private _isOpen;
|
|
17
21
|
private _unsubscribe$;
|
|
18
22
|
private _lastActiveElement;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
triggerEvent: "click" | "hover";
|
|
23
|
+
private previousItems;
|
|
24
|
+
onClick(event: MouseEvent): void;
|
|
25
|
+
constructor(_elementRef: ElementRef, _appRef: ApplicationRef, _componentFactoryResolver: ComponentFactoryResolver, _injector: Injector, _tieredMenuEventService: TieredMenuEventService, _tieredMenuService: TieredMenuService, _tieredMenuGlobalService: TieredMenuGlobalService, _changeDetectorRef: ChangeDetectorRef);
|
|
23
26
|
ngOnInit(): void;
|
|
24
|
-
|
|
27
|
+
ngDoCheck(): void;
|
|
25
28
|
ngOnDestroy(): void;
|
|
26
|
-
onResize(): void;
|
|
27
|
-
onKeydownHandler(event: KeyboardEvent): void;
|
|
28
|
-
onClick(event: MouseEvent): void;
|
|
29
|
-
onDocumentClick(event: MouseEvent): void;
|
|
30
29
|
private _createMenu;
|
|
31
30
|
private _createTieredMenu;
|
|
32
31
|
private _createNestedMenu;
|
|
@@ -34,4 +33,7 @@ export declare class TieredMenuDirective implements OnInit, AfterViewInit, OnDes
|
|
|
34
33
|
private _setMenuPosition;
|
|
35
34
|
private _setMenuComponentProperties;
|
|
36
35
|
private _subscribeEvents;
|
|
36
|
+
private _compareItems;
|
|
37
|
+
private _rebuildMenu;
|
|
38
|
+
private _updateServiceItems;
|
|
37
39
|
}
|
|
@@ -5,9 +5,9 @@ let IAInsightCardLoaderComponent = class IAInsightCardLoaderComponent {
|
|
|
5
5
|
IAInsightCardLoaderComponent = __decorate([
|
|
6
6
|
Component({
|
|
7
7
|
selector: "s-ia-insight-card-loader",
|
|
8
|
-
template: "<div class=\"ia-insight-card-loader\">\n <div class=\"loader\">\n <div class=\"loader-icon\">\n <div sSVGFactory></div>\n </div>\n </div>\n \n <span class=\"loader-label\">{{ \"platform.angular_components.loading_insight\" | translate }}</span>\n</div>\n",
|
|
9
|
-
styles: [".ia-insight-card-loader{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:24px}.ia-insight-card-loader .loader{-ms-flex-align:center;align-items:center;animation:2s linear infinite spin;border:2px solid #f1f7f8;border-top:2px solid #0fa389;border-radius:50%;display:-ms-flexbox;display:flex;height:48px;-ms-flex-pack:center;justify-content:center;width:48px}.ia-insight-card-loader .loader .loader-icon{animation:2s linear infinite reverse spin;height:
|
|
8
|
+
template: "<div class=\"ia-insight-card-loader\">\n <div class=\"loader\">\n <div class=\"loader-icon\">\n <div *sSVGFactory=\"'iassist'\"></div>\n </div>\n </div>\n \n <span class=\"loader-label\">{{ \"platform.angular_components.loading_insight\" | translate }}</span>\n</div>\n",
|
|
9
|
+
styles: [".ia-insight-card-loader{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:24px}.ia-insight-card-loader .loader{-ms-flex-align:center;align-items:center;animation:2s linear infinite spin;border:2px solid #f1f7f8;border-top:2px solid #0fa389;border-radius:50%;display:-ms-flexbox;display:flex;height:48px;-ms-flex-pack:center;justify-content:center;width:48px}.ia-insight-card-loader .loader .loader-icon{animation:2s linear infinite reverse spin;height:32px;transform:translate(-50%,-50%)}.ia-insight-card-loader .loader-label{color:#888b99;font-family:\"Open Sans\",sans-serif;font-size:16px}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}"]
|
|
10
10
|
})
|
|
11
11
|
], IAInsightCardLoaderComponent);
|
|
12
12
|
export { IAInsightCardLoaderComponent };
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWEtaW5zaWdodC1jYXJkLWxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9pYS1pbnNpZ2h0L2NvbXBvbmVudHMvaWEtaW5zaWdodC1jYXJkL2NvbXBvbmVudHMvaWEtaW5zaWdodC1jYXJkLWxvYWRlci9pYS1pbnNpZ2h0LWNhcmQtbG9hZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU8xQyxJQUFhLDRCQUE0QixHQUF6QyxNQUFhLDRCQUE0QjtDQUFHLENBQUE7QUFBL0IsNEJBQTRCO0lBTHhDLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSwwQkFBMEI7UUFDcEMsa1VBQXNEOztLQUV6RCxDQUFDO0dBQ1csNEJBQTRCLENBQUc7U0FBL0IsNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicy1pYS1pbnNpZ2h0LWNhcmQtbG9hZGVyXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9pYS1pbnNpZ2h0LWNhcmQtbG9hZGVyLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL2lhLWluc2lnaHQtY2FyZC1sb2FkZXIuY29tcG9uZW50LnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIElBSW5zaWdodENhcmRMb2FkZXJDb21wb25lbnQge31cbiJdfQ==
|
package/esm2015/components/ia-insight/components/ia-insight-card/ia-insight-card.component.js
CHANGED
|
@@ -4,6 +4,7 @@ import { Component, Input } from "@angular/core";
|
|
|
4
4
|
import { TranslateService } from "@ngx-translate/core";
|
|
5
5
|
import { MessageService } from "primeng/api";
|
|
6
6
|
import { finalize, first } from "rxjs/operators";
|
|
7
|
+
const marked = require("marked");
|
|
7
8
|
let IAInsightCardComponent = class IAInsightCardComponent {
|
|
8
9
|
constructor(clipboard, messageService, translateService) {
|
|
9
10
|
this.clipboard = clipboard;
|
|
@@ -58,7 +59,7 @@ let IAInsightCardComponent = class IAInsightCardComponent {
|
|
|
58
59
|
this.insight.request$
|
|
59
60
|
.pipe(first(), finalize(() => (this.isLoading = false)))
|
|
60
61
|
.subscribe((content) => {
|
|
61
|
-
this.content = content;
|
|
62
|
+
this.content = marked.marked(content);
|
|
62
63
|
});
|
|
63
64
|
}
|
|
64
65
|
};
|
|
@@ -78,4 +79,4 @@ IAInsightCardComponent = __decorate([
|
|
|
78
79
|
})
|
|
79
80
|
], IAInsightCardComponent);
|
|
80
81
|
export { IAInsightCardComponent };
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWEtaW5zaWdodC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2lhLWluc2lnaHQvY29tcG9uZW50cy9pYS1pbnNpZ2h0LWNhcmQvaWEtaW5zaWdodC1jYXJkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlqRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFPakMsSUFBYSxzQkFBc0IsR0FBbkMsTUFBYSxzQkFBc0I7SUFXL0IsWUFDcUIsU0FBb0IsRUFDcEIsY0FBOEIsRUFDOUIsZ0JBQWtDO1FBRmxDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFWaEQsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUNiLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFHbEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsb0JBQWUsR0FBRyxLQUFLLENBQUM7SUFNNUIsQ0FBQztJQUVHLE1BQU07UUFDVCxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUV2QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVNLGNBQWM7O1FBQ2pCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUM3QjthQUFNO1lBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDekIsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7WUFDN0IsTUFBQSxNQUFBLElBQUksQ0FBQyxPQUFPLEVBQUMsY0FBYyxtREFBSztTQUNuQztJQUNMLENBQUM7SUFFTSxpQkFBaUI7O1FBQ3BCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztTQUNoQzthQUFNO1lBQ0gsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7WUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7WUFDMUIsTUFBQSxNQUFBLElBQUksQ0FBQyxPQUFPLEVBQUMsaUJBQWlCLG1EQUFLO1NBQ3RDO0lBQ0wsQ0FBQztJQUVNLFdBQVc7O1FBQ2QsTUFBQSxNQUFBLElBQUksQ0FBQyxPQUFPLEVBQUMsTUFBTSxtREFBRyxJQUFJLENBQUMsT0FBTyxFQUFFO1FBRXBDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDO2dCQUNwQixRQUFRLEVBQUUsTUFBTTtnQkFDaEIsT0FBTyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsaURBQWlELENBQUM7YUFDNUYsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRU0sYUFBYTtRQUNoQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLGVBQWU7UUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFFdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO2FBQ2hCLElBQUksQ0FDRCxLQUFLLEVBQUUsRUFDUCxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQzNDO2FBQ0EsU0FBUyxDQUFDLENBQUMsT0FBZSxFQUFFLEVBQUU7WUFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztDQUNKLENBQUE7O1lBMURtQyxTQUFTO1lBQ0osY0FBYztZQUNaLGdCQUFnQjs7QUFadkQ7SUFEQyxLQUFLLEVBQUU7dURBQ3NCO0FBRnJCLHNCQUFzQjtJQUxsQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsbUJBQW1CO1FBQzdCLGk0RUFBK0M7O0tBRWxELENBQUM7R0FDVyxzQkFBc0IsQ0FzRWxDO1NBdEVZLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsaXBib2FyZCB9IGZyb20gXCJAYW5ndWxhci9jZGsvY2xpcGJvYXJkXCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gXCJwcmltZW5nL2FwaVwiO1xuaW1wb3J0IHsgZmluYWxpemUsIGZpcnN0IH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5cbmltcG9ydCB7IElBSW5zaWdodEl0ZW0gfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2luZGV4XCI7XG5cbmNvbnN0IG1hcmtlZCA9IHJlcXVpcmUoXCJtYXJrZWRcIik7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInMtaWEtaW5zaWdodC1jYXJkXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9pYS1pbnNpZ2h0LWNhcmQuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vaWEtaW5zaWdodC1jYXJkLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBJQUluc2lnaHRDYXJkQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpbnNpZ2h0OiBJQUluc2lnaHRJdGVtO1xuXG4gICAgcHVibGljIG9wZW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgcHVibGljIGNvbnRlbnQ6IHN0cmluZztcblxuICAgIHB1YmxpYyBsaWtlU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgZGlzbGlrZVNlbGVjdGVkID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjbGlwYm9hcmQ6IENsaXBib2FyZCxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xuICAgICAgICBcbiAgICAgICAgdGhpcy5fcmVxdWVzdEluc2lnaHQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25MaWtlU2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmxpa2VTZWxlY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5saWtlU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubGlrZVNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuZGlzbGlrZVNlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmluc2lnaHQub25MaWtlU2VsZWN0ZWQ/LigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uRGlzbGlrZVNlbGVjdGVkKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNsaWtlU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzbGlrZVNlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRpc2xpa2VTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmxpa2VTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5pbnNpZ2h0Lm9uRGlzbGlrZVNlbGVjdGVkPy4oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjb3B5Q29udGVudCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnNpZ2h0Lm9uQ29weT8uKHRoaXMuY29udGVudCk7XG5cbiAgICAgICAgaWYgKHRoaXMuY2xpcGJvYXJkLmNvcHkodGhpcy5jb250ZW50KSkge1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgICAgIHNldmVyaXR5OiBcImluZm9cIixcbiAgICAgICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcInBsYXRmb3JtLmFuZ3VsYXJfY29tcG9uZW50cy5jb3BpZWRfdG9fY2xpcGJvYXJkXCIpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVsb2FkQ29udGVudCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVxdWVzdEluc2lnaHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9yZXF1ZXN0SW5zaWdodCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuaW5zaWdodC5yZXF1ZXN0JFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiAodGhpcy5pc0xvYWRpbmcgPSBmYWxzZSkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChjb250ZW50OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnQgPSBtYXJrZWQubWFya2VkKGNvbnRlbnQpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|