@porscheinformatik/clr-addons 18.0.0 → 18.0.2
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/esm2022/history/history-pinned.mjs +18 -7
- package/esm2022/history/history.mjs +18 -7
- package/esm2022/history/history.provider.mjs +8 -0
- package/esm2022/history/index.mjs +2 -1
- package/esm2022/location-bar/location-bar-node/location-bar-node.component.mjs +3 -3
- package/esm2022/location-bar/location-bar-search/location-bar-search.component.mjs +7 -6
- package/fesm2022/clr-addons.mjs +44 -18
- package/fesm2022/clr-addons.mjs.map +1 -1
- package/history/history-pinned.d.ts +4 -2
- package/history/history.d.ts +4 -2
- package/history/history.provider.d.ts +15 -0
- package/history/index.d.ts +1 -0
- package/location-bar/location-bar-search/location-bar-search.component.d.ts +1 -1
- package/package.json +1 -1
- package/styles/clr-addons-phs.css +7 -4
- package/styles/clr-addons-phs.css.map +1 -1
- package/styles/clr-addons-phs.min.css +1 -1
- package/styles/clr-addons-phs.min.css.map +1 -1
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c) 2018-
|
|
2
|
+
* Copyright (c) 2018-2024 Porsche Informatik. All Rights Reserved.
|
|
3
3
|
* This software is released under MIT license.
|
|
4
4
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
5
|
*/
|
|
6
|
-
import { Component, Input } from '@angular/core';
|
|
6
|
+
import { Component, Inject, Input, Optional } from '@angular/core';
|
|
7
7
|
import { ClrHistoryService } from './history.service';
|
|
8
|
+
import { HISTORY_PROVIDER, HistoryProvider } from './history.provider';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
import * as i1 from "./history.service";
|
|
10
11
|
import * as i2 from "@angular/common";
|
|
12
|
+
import * as i3 from "./history.provider";
|
|
11
13
|
export class ClrHistoryPinned {
|
|
12
|
-
constructor(historyService) {
|
|
14
|
+
constructor(historyService, historyProvider) {
|
|
13
15
|
this.historyService = historyService;
|
|
16
|
+
this.historyProvider = historyProvider;
|
|
14
17
|
/**
|
|
15
18
|
* The array of history elements to be displayed.
|
|
16
19
|
*/
|
|
@@ -18,7 +21,10 @@ export class ClrHistoryPinned {
|
|
|
18
21
|
this.active = false;
|
|
19
22
|
}
|
|
20
23
|
ngOnInit() {
|
|
21
|
-
|
|
24
|
+
const historyElements = this.historyService.getHistoryDisplay(this.username, this.context);
|
|
25
|
+
this.historyElements = this.historyProvider
|
|
26
|
+
? this.historyProvider.getModifiedHistoryEntries(historyElements)
|
|
27
|
+
: historyElements;
|
|
22
28
|
this.historyService.initializeCookieSettings(this.username, this.domain);
|
|
23
29
|
this.settingsSubscription = this.historyService.cookieSettings$.subscribe(settings => {
|
|
24
30
|
const setting = settings.find(setting => setting.username === this.username);
|
|
@@ -30,13 +36,18 @@ export class ClrHistoryPinned {
|
|
|
30
36
|
ngOnDestroy() {
|
|
31
37
|
this.settingsSubscription.unsubscribe();
|
|
32
38
|
}
|
|
33
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrHistoryPinned, deps: [{ token: i1.ClrHistoryService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrHistoryPinned, deps: [{ token: i1.ClrHistoryService }, { token: HISTORY_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
40
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ClrHistoryPinned, selector: "clr-history-pinned", inputs: { username: ["clrUsername", "username"], context: ["clrContext", "context"], domain: ["clrDomain", "domain"] }, ngImport: i0, template: "<nav aria-label=\"history\" class=\"history-container\" *ngIf=\"historyElements.length && active\">\n <ol class=\"history\">\n <ng-container *ngFor=\"let historyItem of historyElements\">\n <li *ngIf=\"historyItem.url\" class=\"history-item\">\n <a [href]=\"historyItem.url\">{{historyItem.title}}</a>\n </li>\n </ng-container>\n </ol>\n</nav>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
35
41
|
}
|
|
36
42
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrHistoryPinned, decorators: [{
|
|
37
43
|
type: Component,
|
|
38
44
|
args: [{ selector: 'clr-history-pinned', template: "<nav aria-label=\"history\" class=\"history-container\" *ngIf=\"historyElements.length && active\">\n <ol class=\"history\">\n <ng-container *ngFor=\"let historyItem of historyElements\">\n <li *ngIf=\"historyItem.url\" class=\"history-item\">\n <a [href]=\"historyItem.url\">{{historyItem.title}}</a>\n </li>\n </ng-container>\n </ol>\n</nav>\n" }]
|
|
39
|
-
}], ctorParameters: () => [{ type: i1.ClrHistoryService }
|
|
45
|
+
}], ctorParameters: () => [{ type: i1.ClrHistoryService }, { type: i3.HistoryProvider, decorators: [{
|
|
46
|
+
type: Inject,
|
|
47
|
+
args: [HISTORY_PROVIDER]
|
|
48
|
+
}, {
|
|
49
|
+
type: Optional
|
|
50
|
+
}] }], propDecorators: { username: [{
|
|
40
51
|
type: Input,
|
|
41
52
|
args: ['clrUsername']
|
|
42
53
|
}], context: [{
|
|
@@ -46,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
46
57
|
type: Input,
|
|
47
58
|
args: ['clrDomain']
|
|
48
59
|
}] } });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS1waW5uZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xyLWFkZG9ucy9oaXN0b3J5L2hpc3RvcnktcGlubmVkLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2Nsci1hZGRvbnMvaGlzdG9yeS9oaXN0b3J5LXBpbm5lZC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7O0FBTXZFLE1BQU0sT0FBTyxnQkFBZ0I7SUFZM0IsWUFDVSxjQUFpQyxFQUNLLGVBQWdDO1FBRHRFLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNLLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQVRoRjs7V0FFRztRQUNILG9CQUFlLEdBQXNCLEVBQUUsQ0FBQztRQUN4QyxXQUFNLEdBQUcsS0FBSyxDQUFDO0lBTVosQ0FBQztJQUVKLFFBQVE7UUFDTixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWU7WUFDekMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMseUJBQXlCLENBQUMsZUFBZSxDQUFDO1lBQ2pFLENBQUMsQ0FBQyxlQUFlLENBQUM7UUFFcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ25GLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3RSxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztZQUN0QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMxQyxDQUFDOzhHQWxDVSxnQkFBZ0IsbURBY2pCLGdCQUFnQjtrR0FkZixnQkFBZ0Isa0xDaEI3QixvWEFTQTs7MkZET2EsZ0JBQWdCO2tCQUo1QixTQUFTOytCQUNFLG9CQUFvQjs7MEJBaUIzQixNQUFNOzJCQUFDLGdCQUFnQjs7MEJBQUcsUUFBUTt5Q0FiZixRQUFRO3NCQUE3QixLQUFLO3VCQUFDLGFBQWE7Z0JBQ0MsT0FBTztzQkFBM0IsS0FBSzt1QkFBQyxZQUFZO2dCQUNDLE1BQU07c0JBQXpCLEtBQUs7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyNCBQb3JzY2hlIEluZm9ybWF0aWsuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDbHJIaXN0b3J5TW9kZWwgfSBmcm9tICcuL2hpc3RvcnktbW9kZWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IENsckhpc3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi9oaXN0b3J5LnNlcnZpY2UnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBISVNUT1JZX1BST1ZJREVSLCBIaXN0b3J5UHJvdmlkZXIgfSBmcm9tICcuL2hpc3RvcnkucHJvdmlkZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItaGlzdG9yeS1waW5uZWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaGlzdG9yeS1waW5uZWQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIENsckhpc3RvcnlQaW5uZWQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgnY2xyVXNlcm5hbWUnKSB1c2VybmFtZTogc3RyaW5nO1xuICBASW5wdXQoJ2NsckNvbnRleHQnKSBjb250ZXh0OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICBASW5wdXQoJ2NsckRvbWFpbicpIGRvbWFpbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYXJyYXkgb2YgaGlzdG9yeSBlbGVtZW50cyB0byBiZSBkaXNwbGF5ZWQuXG4gICAqL1xuICBoaXN0b3J5RWxlbWVudHM6IENsckhpc3RvcnlNb2RlbFtdID0gW107XG4gIGFjdGl2ZSA9IGZhbHNlO1xuICBwcml2YXRlIHNldHRpbmdzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBoaXN0b3J5U2VydmljZTogQ2xySGlzdG9yeVNlcnZpY2UsXG4gICAgQEluamVjdChISVNUT1JZX1BST1ZJREVSKSBAT3B0aW9uYWwoKSBwcml2YXRlIGhpc3RvcnlQcm92aWRlcjogSGlzdG9yeVByb3ZpZGVyXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBoaXN0b3J5RWxlbWVudHMgPSB0aGlzLmhpc3RvcnlTZXJ2aWNlLmdldEhpc3RvcnlEaXNwbGF5KHRoaXMudXNlcm5hbWUsIHRoaXMuY29udGV4dCk7XG4gICAgdGhpcy5oaXN0b3J5RWxlbWVudHMgPSB0aGlzLmhpc3RvcnlQcm92aWRlclxuICAgICAgPyB0aGlzLmhpc3RvcnlQcm92aWRlci5nZXRNb2RpZmllZEhpc3RvcnlFbnRyaWVzKGhpc3RvcnlFbGVtZW50cylcbiAgICAgIDogaGlzdG9yeUVsZW1lbnRzO1xuXG4gICAgdGhpcy5oaXN0b3J5U2VydmljZS5pbml0aWFsaXplQ29va2llU2V0dGluZ3ModGhpcy51c2VybmFtZSwgdGhpcy5kb21haW4pO1xuICAgIHRoaXMuc2V0dGluZ3NTdWJzY3JpcHRpb24gPSB0aGlzLmhpc3RvcnlTZXJ2aWNlLmNvb2tpZVNldHRpbmdzJC5zdWJzY3JpYmUoc2V0dGluZ3MgPT4ge1xuICAgICAgY29uc3Qgc2V0dGluZyA9IHNldHRpbmdzLmZpbmQoc2V0dGluZyA9PiBzZXR0aW5nLnVzZXJuYW1lID09PSB0aGlzLnVzZXJuYW1lKTtcbiAgICAgIGlmIChzZXR0aW5nKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gc2V0dGluZy5oaXN0b3J5UGlubmVkO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zZXR0aW5nc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8bmF2IGFyaWEtbGFiZWw9XCJoaXN0b3J5XCIgY2xhc3M9XCJoaXN0b3J5LWNvbnRhaW5lclwiICpuZ0lmPVwiaGlzdG9yeUVsZW1lbnRzLmxlbmd0aCAmJiBhY3RpdmVcIj5cbiAgPG9sIGNsYXNzPVwiaGlzdG9yeVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGhpc3RvcnlJdGVtIG9mIGhpc3RvcnlFbGVtZW50c1wiPlxuICAgICAgPGxpICpuZ0lmPVwiaGlzdG9yeUl0ZW0udXJsXCIgY2xhc3M9XCJoaXN0b3J5LWl0ZW1cIj5cbiAgICAgICAgPGEgW2hyZWZdPVwiaGlzdG9yeUl0ZW0udXJsXCI+e3toaXN0b3J5SXRlbS50aXRsZX19PC9hPlxuICAgICAgPC9saT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9vbD5cbjwvbmF2PlxuIl19
|
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c) 2018-
|
|
2
|
+
* Copyright (c) 2018-2024 Porsche Informatik. All Rights Reserved.
|
|
3
3
|
* This software is released under MIT license.
|
|
4
4
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
5
|
*/
|
|
6
|
-
import { Component, Input } from '@angular/core';
|
|
6
|
+
import { Component, Inject, Input, Optional } from '@angular/core';
|
|
7
7
|
import { ClrHistoryService } from './history.service';
|
|
8
8
|
import { Subject } from 'rxjs';
|
|
9
9
|
import { takeUntil } from 'rxjs/operators';
|
|
10
10
|
import { angleIcon, ClarityIcons, historyIcon } from '@cds/core/icon';
|
|
11
|
+
import { HISTORY_PROVIDER, HistoryProvider } from './history.provider';
|
|
11
12
|
import * as i0 from "@angular/core";
|
|
12
13
|
import * as i1 from "./history.service";
|
|
13
14
|
import * as i2 from "@angular/common";
|
|
14
15
|
import * as i3 from "@clr/angular";
|
|
15
16
|
import * as i4 from "../dropdown/clr-dropdown-overflow.directive";
|
|
17
|
+
import * as i5 from "./history.provider";
|
|
16
18
|
ClarityIcons.addIcons(historyIcon, angleIcon);
|
|
17
19
|
export class ClrHistory {
|
|
18
|
-
constructor(historyService) {
|
|
20
|
+
constructor(historyService, historyProvider) {
|
|
19
21
|
this.historyService = historyService;
|
|
22
|
+
this.historyProvider = historyProvider;
|
|
20
23
|
this.pinActive = true;
|
|
21
24
|
this.dropdownHeader = 'History';
|
|
22
25
|
this.dropdownPin = 'Pin History';
|
|
@@ -30,7 +33,10 @@ export class ClrHistory {
|
|
|
30
33
|
this.onDestroy$ = new Subject();
|
|
31
34
|
}
|
|
32
35
|
ngOnInit() {
|
|
33
|
-
|
|
36
|
+
const historyElements = this.historyService.getHistoryDisplay(this.username, this.context);
|
|
37
|
+
this.historyElements = this.historyProvider
|
|
38
|
+
? this.historyProvider.getModifiedHistoryEntries(historyElements)
|
|
39
|
+
: historyElements;
|
|
34
40
|
this.historyService.initializeCookieSettings(this.username, this.domain);
|
|
35
41
|
this.historyService.cookieSettings$.pipe(takeUntil(this.onDestroy$)).subscribe(settings => {
|
|
36
42
|
this.pinActivated = settings.find(setting => setting.username === this.username).historyPinned;
|
|
@@ -46,13 +52,18 @@ export class ClrHistory {
|
|
|
46
52
|
togglePinHistory() {
|
|
47
53
|
this.historyService.setHistoryPinned(this.username, !this.pinActivated);
|
|
48
54
|
}
|
|
49
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrHistory, deps: [{ token: i1.ClrHistoryService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
55
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrHistory, deps: [{ token: i1.ClrHistoryService }, { token: HISTORY_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
50
56
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ClrHistory, selector: "clr-history", inputs: { username: ["clrUsername", "username"], context: ["clrContext", "context"], pinActive: ["clrPinActive", "pinActive"], dropdownHeader: ["clrDropdownHeader", "dropdownHeader"], dropdownPin: ["clrDropdownPin", "dropdownPin"], dropdownUnpin: ["clrDropdownUnpin", "dropdownUnpin"], domain: ["clrDomain", "domain"], position: ["clrPosition", "position"] }, ngImport: i0, template: "<clr-dropdown>\n <button type=\"button\" class=\"btn btn-icon btn-link\" clrDropdownTrigger>\n <cds-icon shape=\"history\" size=\"24\"></cds-icon>\n <cds-icon shape=\"angle\" direction=\"down\" size=\"12\"></cds-icon>\n </button>\n <clr-dropdown-menu [clrPosition]=\"position\" *clrIfOpen>\n <label class=\"dropdown-header\" aria-hidden=\"true\">{{dropdownHeader}}</label>\n <button type=\"button\" clrDropdownItem *ngFor=\"let history of historyElements\" (click)=\"select(history)\">\n {{history.title}}\n </button>\n <div *ngIf=\"pinActive\" class=\"dropdown-divider\" role=\"separator\" aria-hidden=\"true\"></div>\n <button clrDropdownItem (click)=\"togglePinHistory()\">\n <span *ngIf=\"pinActive && !pinActivated\">{{dropdownPin}}</span>\n <span *ngIf=\"pinActive && pinActivated\">{{dropdownUnpin}}</span>\n </button>\n </clr-dropdown-menu>\n</clr-dropdown>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: i3.ClrIfOpen, selector: "[clrIfOpen]", inputs: ["clrIfOpen"], outputs: ["clrIfOpenChange"] }, { kind: "directive", type: i3.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "component", type: i3.ClrDropdown, selector: "clr-dropdown", inputs: ["clrCloseMenuOnItemClick"] }, { kind: "component", type: i3.ClrDropdownMenu, selector: "clr-dropdown-menu", inputs: ["clrPosition"] }, { kind: "directive", type: i3.ClrDropdownTrigger, selector: "[clrDropdownTrigger],[clrDropdownToggle]" }, { kind: "directive", type: i3.ClrDropdownItem, selector: "[clrDropdownItem]", inputs: ["clrDisabled", "id"] }, { kind: "directive", type: i4.ClrDropdownOverflowDirective, selector: "clr-dropdown-menu", inputs: ["clrDropdownMenuMaxHeight", "clrDropdownMenuItemMinHeight", "clrMarginBottom"] }] }); }
|
|
51
57
|
}
|
|
52
58
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrHistory, decorators: [{
|
|
53
59
|
type: Component,
|
|
54
60
|
args: [{ selector: 'clr-history', template: "<clr-dropdown>\n <button type=\"button\" class=\"btn btn-icon btn-link\" clrDropdownTrigger>\n <cds-icon shape=\"history\" size=\"24\"></cds-icon>\n <cds-icon shape=\"angle\" direction=\"down\" size=\"12\"></cds-icon>\n </button>\n <clr-dropdown-menu [clrPosition]=\"position\" *clrIfOpen>\n <label class=\"dropdown-header\" aria-hidden=\"true\">{{dropdownHeader}}</label>\n <button type=\"button\" clrDropdownItem *ngFor=\"let history of historyElements\" (click)=\"select(history)\">\n {{history.title}}\n </button>\n <div *ngIf=\"pinActive\" class=\"dropdown-divider\" role=\"separator\" aria-hidden=\"true\"></div>\n <button clrDropdownItem (click)=\"togglePinHistory()\">\n <span *ngIf=\"pinActive && !pinActivated\">{{dropdownPin}}</span>\n <span *ngIf=\"pinActive && pinActivated\">{{dropdownUnpin}}</span>\n </button>\n </clr-dropdown-menu>\n</clr-dropdown>\n" }]
|
|
55
|
-
}], ctorParameters: () => [{ type: i1.ClrHistoryService }
|
|
61
|
+
}], ctorParameters: () => [{ type: i1.ClrHistoryService }, { type: i5.HistoryProvider, decorators: [{
|
|
62
|
+
type: Inject,
|
|
63
|
+
args: [HISTORY_PROVIDER]
|
|
64
|
+
}, {
|
|
65
|
+
type: Optional
|
|
66
|
+
}] }], propDecorators: { username: [{
|
|
56
67
|
type: Input,
|
|
57
68
|
args: ['clrUsername']
|
|
58
69
|
}], context: [{
|
|
@@ -77,4 +88,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
77
88
|
type: Input,
|
|
78
89
|
args: ['clrPosition']
|
|
79
90
|
}] } });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbHItYWRkb25zL2hpc3RvcnkvaGlzdG9yeS50cyIsIi4uLy4uLy4uLy4uL3NyYy9jbHItYWRkb25zL2hpc3RvcnkvaGlzdG9yeS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7QUFFdkUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFNOUMsTUFBTSxPQUFPLFVBQVU7SUFpQnJCLFlBQ1UsY0FBaUMsRUFDSyxlQUFnQztRQUR0RSxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDSyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFoQnpELGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDWixtQkFBYyxHQUFHLFNBQVMsQ0FBQztRQUM5QixnQkFBVyxHQUFHLGFBQWEsQ0FBQztRQUMxQixrQkFBYSxHQUFHLGVBQWUsQ0FBQztRQUVyQyxhQUFRLEdBQUcsY0FBYyxDQUFDO1FBRWhEOztXQUVHO1FBQ0gsb0JBQWUsR0FBc0IsRUFBRSxDQUFDO1FBQ3hDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ2IsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFLdEMsQ0FBQztJQUVKLFFBQVE7UUFDTixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWU7WUFDekMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMseUJBQXlCLENBQUMsZUFBZSxDQUFDO1lBQ2pFLENBQUMsQ0FBQyxlQUFlLENBQUM7UUFFcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN4RixJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDakcsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQXdCO1FBQzdCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFDckMsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxRSxDQUFDOzhHQTdDVSxVQUFVLG1EQW1CWCxnQkFBZ0I7a0dBbkJmLFVBQVUsMlpDcEJ2QixnNUJBaUJBOzsyRkRHYSxVQUFVO2tCQUp0QixTQUFTOytCQUNFLGFBQWE7OzBCQXNCcEIsTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUFHLFFBQVE7eUNBbEJmLFFBQVE7c0JBQTdCLEtBQUs7dUJBQUMsYUFBYTtnQkFDQyxPQUFPO3NCQUEzQixLQUFLO3VCQUFDLFlBQVk7Z0JBQ0ksU0FBUztzQkFBL0IsS0FBSzt1QkFBQyxjQUFjO2dCQUNPLGNBQWM7c0JBQXpDLEtBQUs7dUJBQUMsbUJBQW1CO2dCQUNELFdBQVc7c0JBQW5DLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUNJLGFBQWE7c0JBQXZDLEtBQUs7dUJBQUMsa0JBQWtCO2dCQUNMLE1BQU07c0JBQXpCLEtBQUs7dUJBQUMsV0FBVztnQkFDSSxRQUFRO3NCQUE3QixLQUFLO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjQgUG9yc2NoZSBJbmZvcm1hdGlrLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xySGlzdG9yeU1vZGVsIH0gZnJvbSAnLi9oaXN0b3J5LW1vZGVsLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDbHJIaXN0b3J5U2VydmljZSB9IGZyb20gJy4vaGlzdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGFuZ2xlSWNvbiwgQ2xhcml0eUljb25zLCBoaXN0b3J5SWNvbiB9IGZyb20gJ0BjZHMvY29yZS9pY29uJztcbmltcG9ydCB7IEhJU1RPUllfUFJPVklERVIsIEhpc3RvcnlQcm92aWRlciB9IGZyb20gJy4vaGlzdG9yeS5wcm92aWRlcic7XG5cbkNsYXJpdHlJY29ucy5hZGRJY29ucyhoaXN0b3J5SWNvbiwgYW5nbGVJY29uKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2xyLWhpc3RvcnknLFxuICB0ZW1wbGF0ZVVybDogJy4vaGlzdG9yeS5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgQ2xySGlzdG9yeSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCdjbHJVc2VybmFtZScpIHVzZXJuYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgnY2xyQ29udGV4dCcpIGNvbnRleHQ6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIEBJbnB1dCgnY2xyUGluQWN0aXZlJykgcGluQWN0aXZlID0gdHJ1ZTtcbiAgQElucHV0KCdjbHJEcm9wZG93bkhlYWRlcicpIGRyb3Bkb3duSGVhZGVyID0gJ0hpc3RvcnknO1xuICBASW5wdXQoJ2NsckRyb3Bkb3duUGluJykgZHJvcGRvd25QaW4gPSAnUGluIEhpc3RvcnknO1xuICBASW5wdXQoJ2NsckRyb3Bkb3duVW5waW4nKSBkcm9wZG93blVucGluID0gJ1VucGluIEhpc3RvcnknO1xuICBASW5wdXQoJ2NsckRvbWFpbicpIGRvbWFpbjogc3RyaW5nO1xuICBASW5wdXQoJ2NsclBvc2l0aW9uJykgcG9zaXRpb24gPSAnYm90dG9tLXJpZ2h0JztcblxuICAvKipcbiAgICogVGhlIGFycmF5IG9mIGhpc3RvcnkgZWxlbWVudHMgdG8gYmUgZGlzcGxheWVkLlxuICAgKi9cbiAgaGlzdG9yeUVsZW1lbnRzOiBDbHJIaXN0b3J5TW9kZWxbXSA9IFtdO1xuICBwaW5BY3RpdmF0ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBvbkRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGhpc3RvcnlTZXJ2aWNlOiBDbHJIaXN0b3J5U2VydmljZSxcbiAgICBASW5qZWN0KEhJU1RPUllfUFJPVklERVIpIEBPcHRpb25hbCgpIHByaXZhdGUgaGlzdG9yeVByb3ZpZGVyOiBIaXN0b3J5UHJvdmlkZXJcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGhpc3RvcnlFbGVtZW50cyA9IHRoaXMuaGlzdG9yeVNlcnZpY2UuZ2V0SGlzdG9yeURpc3BsYXkodGhpcy51c2VybmFtZSwgdGhpcy5jb250ZXh0KTtcbiAgICB0aGlzLmhpc3RvcnlFbGVtZW50cyA9IHRoaXMuaGlzdG9yeVByb3ZpZGVyXG4gICAgICA/IHRoaXMuaGlzdG9yeVByb3ZpZGVyLmdldE1vZGlmaWVkSGlzdG9yeUVudHJpZXMoaGlzdG9yeUVsZW1lbnRzKVxuICAgICAgOiBoaXN0b3J5RWxlbWVudHM7XG5cbiAgICB0aGlzLmhpc3RvcnlTZXJ2aWNlLmluaXRpYWxpemVDb29raWVTZXR0aW5ncyh0aGlzLnVzZXJuYW1lLCB0aGlzLmRvbWFpbik7XG4gICAgdGhpcy5oaXN0b3J5U2VydmljZS5jb29raWVTZXR0aW5ncyQucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKHNldHRpbmdzID0+IHtcbiAgICAgIHRoaXMucGluQWN0aXZhdGVkID0gc2V0dGluZ3MuZmluZChzZXR0aW5nID0+IHNldHRpbmcudXNlcm5hbWUgPT09IHRoaXMudXNlcm5hbWUpLmhpc3RvcnlQaW5uZWQ7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uRGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgc2VsZWN0KGhpc3Rvcnk6IENsckhpc3RvcnlNb2RlbCk6IHZvaWQge1xuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gaGlzdG9yeS51cmw7XG4gIH1cblxuICB0b2dnbGVQaW5IaXN0b3J5KCk6IHZvaWQge1xuICAgIHRoaXMuaGlzdG9yeVNlcnZpY2Uuc2V0SGlzdG9yeVBpbm5lZCh0aGlzLnVzZXJuYW1lLCAhdGhpcy5waW5BY3RpdmF0ZWQpO1xuICB9XG59XG4iLCI8Y2xyLWRyb3Bkb3duPlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4taWNvbiBidG4tbGlua1wiIGNsckRyb3Bkb3duVHJpZ2dlcj5cbiAgICA8Y2RzLWljb24gc2hhcGU9XCJoaXN0b3J5XCIgc2l6ZT1cIjI0XCI+PC9jZHMtaWNvbj5cbiAgICA8Y2RzLWljb24gc2hhcGU9XCJhbmdsZVwiIGRpcmVjdGlvbj1cImRvd25cIiBzaXplPVwiMTJcIj48L2Nkcy1pY29uPlxuICA8L2J1dHRvbj5cbiAgPGNsci1kcm9wZG93bi1tZW51IFtjbHJQb3NpdGlvbl09XCJwb3NpdGlvblwiICpjbHJJZk9wZW4+XG4gICAgPGxhYmVsIGNsYXNzPVwiZHJvcGRvd24taGVhZGVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+e3tkcm9wZG93bkhlYWRlcn19PC9sYWJlbD5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbHJEcm9wZG93bkl0ZW0gKm5nRm9yPVwibGV0IGhpc3Rvcnkgb2YgaGlzdG9yeUVsZW1lbnRzXCIgKGNsaWNrKT1cInNlbGVjdChoaXN0b3J5KVwiPlxuICAgICAge3toaXN0b3J5LnRpdGxlfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8ZGl2ICpuZ0lmPVwicGluQWN0aXZlXCIgY2xhc3M9XCJkcm9wZG93bi1kaXZpZGVyXCIgcm9sZT1cInNlcGFyYXRvclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZGl2PlxuICAgIDxidXR0b24gY2xyRHJvcGRvd25JdGVtIChjbGljayk9XCJ0b2dnbGVQaW5IaXN0b3J5KClcIj5cbiAgICAgIDxzcGFuICpuZ0lmPVwicGluQWN0aXZlICYmICFwaW5BY3RpdmF0ZWRcIj57e2Ryb3Bkb3duUGlufX08L3NwYW4+XG4gICAgICA8c3BhbiAqbmdJZj1cInBpbkFjdGl2ZSAmJiBwaW5BY3RpdmF0ZWRcIj57e2Ryb3Bkb3duVW5waW59fTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9jbHItZHJvcGRvd24tbWVudT5cbjwvY2xyLWRyb3Bkb3duPlxuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export const HISTORY_PROVIDER = new InjectionToken('HISTORY_PROVIDER');
|
|
3
|
+
/**
|
|
4
|
+
* Interface to be implemented by a history provider to adjust the behavior of the history components.
|
|
5
|
+
* */
|
|
6
|
+
export class HistoryProvider {
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbHItYWRkb25zL2hpc3RvcnkvaGlzdG9yeS5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksY0FBYyxDQUFNLGtCQUFrQixDQUFDLENBQUM7QUFFNUU7O0tBRUs7QUFDTCxNQUFNLE9BQWdCLGVBQWU7Q0FRcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xySGlzdG9yeU1vZGVsIH0gZnJvbSAnLi9oaXN0b3J5LW1vZGVsLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjb25zdCBISVNUT1JZX1BST1ZJREVSID0gbmV3IEluamVjdGlvblRva2VuPGFueT4oJ0hJU1RPUllfUFJPVklERVInKTtcblxuLyoqXG4gKiBJbnRlcmZhY2UgdG8gYmUgaW1wbGVtZW50ZWQgYnkgYSBoaXN0b3J5IHByb3ZpZGVyIHRvIGFkanVzdCB0aGUgYmVoYXZpb3Igb2YgdGhlIGhpc3RvcnkgY29tcG9uZW50cy5cbiAqICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSGlzdG9yeVByb3ZpZGVyIHtcbiAgLyoqXG4gICAqIE1vZGlmaWVzIHRoZSBoaXN0b3J5IGVudHJpZXMgYmVmb3JlIHRoZXkgYXJlIGRpc3BsYXllZC4gVGhlIGxpc3Qgb2YgbW9kaWZpZWQgZW50cmllcyB3aWxsIGJlIHNob3duIHRvIHRoZSB1c2VyLlxuICAgKlxuICAgKiBAcGFyYW0gZW50cmllcyBUaGUgaGlzdG9yeSBlbnRyaWVzIGJlZm9yZSBtb2RpZmljYXRpb25cbiAgICogQHJldHVybnMgVGhlIG1vZGlmaWVkIGhpc3RvcnkgZW50cmllc1xuICAgKi9cbiAgYWJzdHJhY3QgZ2V0TW9kaWZpZWRIaXN0b3J5RW50cmllcyhlbnRyaWVzOiBDbHJIaXN0b3J5TW9kZWxbXSk6IENsckhpc3RvcnlNb2RlbFtdO1xufVxuIl19
|
|
@@ -8,4 +8,5 @@ export * from './history-pinned';
|
|
|
8
8
|
export * from './history.module';
|
|
9
9
|
export * from './history-model.interface';
|
|
10
10
|
export * from './history.service';
|
|
11
|
-
|
|
11
|
+
export * from './history.provider';
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xyLWFkZG9ucy9oaXN0b3J5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjAgUG9yc2NoZSBJbmZvcm1hdGlrLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2hpc3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9oaXN0b3J5LXBpbm5lZCc7XG5leHBvcnQgKiBmcm9tICcuL2hpc3RvcnkubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vaGlzdG9yeS1tb2RlbC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9oaXN0b3J5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9oaXN0b3J5LnByb3ZpZGVyJztcbiJdfQ==
|
|
@@ -121,11 +121,11 @@ export class LocationBarNodeComponent {
|
|
|
121
121
|
this.searchItemChanged.emit(searchedItem);
|
|
122
122
|
}
|
|
123
123
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: LocationBarNodeComponent, deps: [{ token: CONTENT_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
124
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: LocationBarNodeComponent, selector: "clr-location-bar-node", inputs: { parentNode: "parentNode", searchResultItems: ["clrSearchResultItems", "searchResultItems"], searchRequest: ["clrSearchRequest", "searchRequest"] }, outputs: { selectionChanged: "selectionChanged", searchItemChanged: "searchItemChanged" }, host: { properties: { "class.location-bar-node": "true" } }, viewQueries: [{ propertyName: "locationBarSearch", first: true, predicate: ["locationBarSearch"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"parentNode\">\n <ng-content *ngIf=\"parentNode.getChildren()?.length > 0\"></ng-content>\n\n <ng-container\n *ngIf=\"\n (selectableChilds.length > 0 && !parentNode.getSelectedChild()) || selectableChilds.length > 1;\n else singleSelected\n \"\n >\n <clr-dropdown>\n <button\n class=\"btn btn-link btn-sm\"\n (blur)=\"focus = false\"\n (focus)=\"focus = true\"\n (click)=\"resetSearch()\"\n clrDropdownTrigger\n >\n <ng-container *ngIf=\"parentNode.getSelectedChild() as node; else unselected\">\n <span\n (click)=\"resetSearch()\"\n class=\"text-truncate\"\n [class.last-level]=\"!parentNode.getSelectedChild().getSelectedChild()\"\n title=\"{{ node.label }}\"\n >\n {{ node.label }}\n </span>\n <cds-icon shape=\"angle\" direction=\"down\" size=\"xs\" class=\"caret-icon\"></cds-icon>\n </ng-container>\n <ng-template #unselected>\n <cds-icon class=\"unselected\" size=\"18\" [attr.solid]=\"focus\" shape=\"tree-view\"></cds-icon> ...\n </ng-template>\n </button>\n <clr-dropdown-menu [clrPosition]=\"'bottom-left'\" *clrIfOpen>\n <clr-location-bar-search\n #locationBarSearch\n *ngIf=\"searchRequest\"\n [clrSearchRequest]=\"searchRequest\"\n (searchPerformed)=\"onSearch($event)\"\n ></clr-location-bar-search>\n <ng-container *ngIf=\"displaySearchResult(); else displaySelectableChilds\">\n <ng-container *ngIf=\"searchResultItems.length !== 0; else displayNotFound\">\n <button\n type=\"button\"\n clrDropdownItem\n class=\"text-truncate
|
|
124
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: LocationBarNodeComponent, selector: "clr-location-bar-node", inputs: { parentNode: "parentNode", searchResultItems: ["clrSearchResultItems", "searchResultItems"], searchRequest: ["clrSearchRequest", "searchRequest"] }, outputs: { selectionChanged: "selectionChanged", searchItemChanged: "searchItemChanged" }, host: { properties: { "class.location-bar-node": "true" } }, viewQueries: [{ propertyName: "locationBarSearch", first: true, predicate: ["locationBarSearch"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"parentNode\">\n <ng-content *ngIf=\"parentNode.getChildren()?.length > 0\"></ng-content>\n\n <ng-container\n *ngIf=\"\n (selectableChilds.length > 0 && !parentNode.getSelectedChild()) || selectableChilds.length > 1;\n else singleSelected\n \"\n >\n <clr-dropdown>\n <button\n class=\"btn btn-link btn-sm\"\n (blur)=\"focus = false\"\n (focus)=\"focus = true\"\n (click)=\"resetSearch()\"\n clrDropdownTrigger\n >\n <ng-container *ngIf=\"parentNode.getSelectedChild() as node; else unselected\">\n <span\n (click)=\"resetSearch()\"\n class=\"text-truncate\"\n [class.last-level]=\"!parentNode.getSelectedChild().getSelectedChild()\"\n title=\"{{ node.label }}\"\n >\n {{ node.label }}\n </span>\n <cds-icon shape=\"angle\" direction=\"down\" size=\"xs\" class=\"caret-icon\"></cds-icon>\n </ng-container>\n <ng-template #unselected>\n <cds-icon class=\"unselected\" size=\"18\" [attr.solid]=\"focus\" shape=\"tree-view\"></cds-icon> ...\n </ng-template>\n </button>\n <clr-dropdown-menu [clrPosition]=\"'bottom-left'\" [clrDropdownMenuItemMinHeight]=\"'24px'\" *clrIfOpen>\n <clr-location-bar-search\n #locationBarSearch\n *ngIf=\"searchRequest\"\n [clrSearchRequest]=\"searchRequest\"\n (searchPerformed)=\"onSearch($event)\"\n ></clr-location-bar-search>\n <ng-container *ngIf=\"displaySearchResult(); else displaySelectableChilds\">\n <ng-container *ngIf=\"searchResultItems.length !== 0; else displayNotFound\">\n <button\n type=\"button\"\n clrDropdownItem\n class=\"text-truncate\"\n *ngFor=\"let searchResultItem of searchResultItems\"\n (click)=\"onSearchItemChanged(searchResultItem)\"\n >\n <ng-container\n *ngTemplateOutlet=\"searchRequest?.searchResultItemRef; context: { $implicit: searchResultItem }\"\n ></ng-container>\n </button>\n </ng-container>\n <ng-template #displayNotFound>\n <span class=\"no-result-text\">\n {{ searchRequest?.noResultsText ?? 'No search result found.' }}\n </span>\n </ng-template>\n </ng-container>\n\n <ng-template #displaySelectableChilds>\n <button\n *ngFor=\"let item of selectableChilds\"\n type=\"button\"\n clrDropdownItem\n class=\"text-truncate\"\n [class.selected-child]=\"item.id === parentNode.getSelectedChild()?.id\"\n (click)=\"selectNode(item)\"\n title=\"{{ item.label }}\"\n >\n {{ item.label }}\n </button>\n </ng-template>\n </clr-dropdown-menu>\n </clr-dropdown>\n </ng-container>\n\n <ng-template #singleSelected>\n <ng-container *ngIf=\"parentNode.getSelectedChild()\">\n <ng-container *ngIf=\"parentNode.getSelectedChild().selectable; else unselectable\">\n <button\n class=\"btn btn-link btn-sm\"\n (click)=\"selectNode(parentNode.getSelectedChild())\"\n [class.last-level]=\"!parentNode.getSelectedChild().getSelectedChild()\"\n title=\"{{ parentNode.getSelectedChild().label }}\"\n >\n {{ parentNode.getSelectedChild().label }}\n </button>\n </ng-container>\n <ng-template #unselectable>\n <span\n class=\"unselectable-node text-truncate\"\n [class.last-level]=\"!parentNode.getSelectedChild().getSelectedChild()\"\n title=\"{{ parentNode.getSelectedChild().label }}\"\n >\n {{ parentNode.getSelectedChild().label }}\n </span>\n </ng-template>\n </ng-container>\n </ng-template>\n\n <clr-location-bar-node\n *ngIf=\"parentNode.getSelectedChild() && parentNode.getChildren().length > 0\"\n [parentNode]=\"parentNode.getSelectedChild()\"\n [clrSearchRequest]=\"searchRequest\"\n [clrSearchResultItems]=\"searchResultItems\"\n (selectionChanged)=\"onSelectionChanged($event)\"\n (searchItemChanged)=\"onSearchItemChanged(null)\"\n >\n <span>/</span>\n </clr-location-bar-node>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "component", type: i2.ClrDropdown, selector: "clr-dropdown", inputs: ["clrCloseMenuOnItemClick"] }, { kind: "component", type: i2.ClrDropdownMenu, selector: "clr-dropdown-menu", inputs: ["clrPosition"] }, { kind: "directive", type: i2.ClrDropdownTrigger, selector: "[clrDropdownTrigger],[clrDropdownToggle]" }, { kind: "directive", type: i2.ClrDropdownItem, selector: "[clrDropdownItem]", inputs: ["clrDisabled", "id"] }, { kind: "directive", type: i2.ClrIfOpen, selector: "[clrIfOpen]", inputs: ["clrIfOpen"], outputs: ["clrIfOpenChange"] }, { kind: "directive", type: i3.ClrDropdownOverflowDirective, selector: "clr-dropdown-menu", inputs: ["clrDropdownMenuMaxHeight", "clrDropdownMenuItemMinHeight", "clrMarginBottom"] }, { kind: "component", type: LocationBarNodeComponent, selector: "clr-location-bar-node", inputs: ["parentNode", "clrSearchResultItems", "clrSearchRequest"], outputs: ["selectionChanged", "searchItemChanged"] }, { kind: "component", type: i4.LocationBarSearchComponent, selector: "clr-location-bar-search", inputs: ["clrSearchRequest"], outputs: ["searchPerformed"] }] }); }
|
|
125
125
|
}
|
|
126
126
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: LocationBarNodeComponent, decorators: [{
|
|
127
127
|
type: Component,
|
|
128
|
-
args: [{ selector: 'clr-location-bar-node', host: { '[class.location-bar-node]': 'true' }, template: "<ng-container *ngIf=\"parentNode\">\n <ng-content *ngIf=\"parentNode.getChildren()?.length > 0\"></ng-content>\n\n <ng-container\n *ngIf=\"\n (selectableChilds.length > 0 && !parentNode.getSelectedChild()) || selectableChilds.length > 1;\n else singleSelected\n \"\n >\n <clr-dropdown>\n <button\n class=\"btn btn-link btn-sm\"\n (blur)=\"focus = false\"\n (focus)=\"focus = true\"\n (click)=\"resetSearch()\"\n clrDropdownTrigger\n >\n <ng-container *ngIf=\"parentNode.getSelectedChild() as node; else unselected\">\n <span\n (click)=\"resetSearch()\"\n class=\"text-truncate\"\n [class.last-level]=\"!parentNode.getSelectedChild().getSelectedChild()\"\n title=\"{{ node.label }}\"\n >\n {{ node.label }}\n </span>\n <cds-icon shape=\"angle\" direction=\"down\" size=\"xs\" class=\"caret-icon\"></cds-icon>\n </ng-container>\n <ng-template #unselected>\n <cds-icon class=\"unselected\" size=\"18\" [attr.solid]=\"focus\" shape=\"tree-view\"></cds-icon> ...\n </ng-template>\n </button>\n <clr-dropdown-menu [clrPosition]=\"'bottom-left'\" *clrIfOpen>\n <clr-location-bar-search\n #locationBarSearch\n *ngIf=\"searchRequest\"\n [clrSearchRequest]=\"searchRequest\"\n (searchPerformed)=\"onSearch($event)\"\n ></clr-location-bar-search>\n <ng-container *ngIf=\"displaySearchResult(); else displaySelectableChilds\">\n <ng-container *ngIf=\"searchResultItems.length !== 0; else displayNotFound\">\n <button\n type=\"button\"\n clrDropdownItem\n class=\"text-truncate
|
|
128
|
+
args: [{ selector: 'clr-location-bar-node', host: { '[class.location-bar-node]': 'true' }, template: "<ng-container *ngIf=\"parentNode\">\n <ng-content *ngIf=\"parentNode.getChildren()?.length > 0\"></ng-content>\n\n <ng-container\n *ngIf=\"\n (selectableChilds.length > 0 && !parentNode.getSelectedChild()) || selectableChilds.length > 1;\n else singleSelected\n \"\n >\n <clr-dropdown>\n <button\n class=\"btn btn-link btn-sm\"\n (blur)=\"focus = false\"\n (focus)=\"focus = true\"\n (click)=\"resetSearch()\"\n clrDropdownTrigger\n >\n <ng-container *ngIf=\"parentNode.getSelectedChild() as node; else unselected\">\n <span\n (click)=\"resetSearch()\"\n class=\"text-truncate\"\n [class.last-level]=\"!parentNode.getSelectedChild().getSelectedChild()\"\n title=\"{{ node.label }}\"\n >\n {{ node.label }}\n </span>\n <cds-icon shape=\"angle\" direction=\"down\" size=\"xs\" class=\"caret-icon\"></cds-icon>\n </ng-container>\n <ng-template #unselected>\n <cds-icon class=\"unselected\" size=\"18\" [attr.solid]=\"focus\" shape=\"tree-view\"></cds-icon> ...\n </ng-template>\n </button>\n <clr-dropdown-menu [clrPosition]=\"'bottom-left'\" [clrDropdownMenuItemMinHeight]=\"'24px'\" *clrIfOpen>\n <clr-location-bar-search\n #locationBarSearch\n *ngIf=\"searchRequest\"\n [clrSearchRequest]=\"searchRequest\"\n (searchPerformed)=\"onSearch($event)\"\n ></clr-location-bar-search>\n <ng-container *ngIf=\"displaySearchResult(); else displaySelectableChilds\">\n <ng-container *ngIf=\"searchResultItems.length !== 0; else displayNotFound\">\n <button\n type=\"button\"\n clrDropdownItem\n class=\"text-truncate\"\n *ngFor=\"let searchResultItem of searchResultItems\"\n (click)=\"onSearchItemChanged(searchResultItem)\"\n >\n <ng-container\n *ngTemplateOutlet=\"searchRequest?.searchResultItemRef; context: { $implicit: searchResultItem }\"\n ></ng-container>\n </button>\n </ng-container>\n <ng-template #displayNotFound>\n <span class=\"no-result-text\">\n {{ searchRequest?.noResultsText ?? 'No search result found.' }}\n </span>\n </ng-template>\n </ng-container>\n\n <ng-template #displaySelectableChilds>\n <button\n *ngFor=\"let item of selectableChilds\"\n type=\"button\"\n clrDropdownItem\n class=\"text-truncate\"\n [class.selected-child]=\"item.id === parentNode.getSelectedChild()?.id\"\n (click)=\"selectNode(item)\"\n title=\"{{ item.label }}\"\n >\n {{ item.label }}\n </button>\n </ng-template>\n </clr-dropdown-menu>\n </clr-dropdown>\n </ng-container>\n\n <ng-template #singleSelected>\n <ng-container *ngIf=\"parentNode.getSelectedChild()\">\n <ng-container *ngIf=\"parentNode.getSelectedChild().selectable; else unselectable\">\n <button\n class=\"btn btn-link btn-sm\"\n (click)=\"selectNode(parentNode.getSelectedChild())\"\n [class.last-level]=\"!parentNode.getSelectedChild().getSelectedChild()\"\n title=\"{{ parentNode.getSelectedChild().label }}\"\n >\n {{ parentNode.getSelectedChild().label }}\n </button>\n </ng-container>\n <ng-template #unselectable>\n <span\n class=\"unselectable-node text-truncate\"\n [class.last-level]=\"!parentNode.getSelectedChild().getSelectedChild()\"\n title=\"{{ parentNode.getSelectedChild().label }}\"\n >\n {{ parentNode.getSelectedChild().label }}\n </span>\n </ng-template>\n </ng-container>\n </ng-template>\n\n <clr-location-bar-node\n *ngIf=\"parentNode.getSelectedChild() && parentNode.getChildren().length > 0\"\n [parentNode]=\"parentNode.getSelectedChild()\"\n [clrSearchRequest]=\"searchRequest\"\n [clrSearchResultItems]=\"searchResultItems\"\n (selectionChanged)=\"onSelectionChanged($event)\"\n (searchItemChanged)=\"onSearchItemChanged(null)\"\n >\n <span>/</span>\n </clr-location-bar-node>\n</ng-container>\n" }]
|
|
129
129
|
}], ctorParameters: () => [{ type: i5.LocationBarContentProvider, decorators: [{
|
|
130
130
|
type: Inject,
|
|
131
131
|
args: [CONTENT_PROVIDER]
|
|
@@ -147,4 +147,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
147
147
|
type: ViewChild,
|
|
148
148
|
args: ['locationBarSearch']
|
|
149
149
|
}] } });
|
|
150
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYXRpb24tYmFyLW5vZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2Nsci1hZGRvbnMvbG9jYXRpb24tYmFyL2xvY2F0aW9uLWJhci1ub2RlL2xvY2F0aW9uLWJhci1ub2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9jbHItYWRkb25zL2xvY2F0aW9uLWJhci9sb2NhdGlvbi1iYXItbm9kZS9sb2NhdGlvbi1iYXItbm9kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsZUFBZSxFQUFVLE1BQU0sdUJBQXVCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFeEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7Ozs7Ozs7QUFFbEcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFFL0M7O0dBRUc7QUFNSCxNQUFNLE9BQU8sd0JBQXdCO0lBaUJuQyxZQUFZO0lBQ1osSUFDSSxVQUFVLENBQUMsVUFBOEI7UUFDM0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7UUFDOUIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdB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QUFpQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM1QyxDQUFDOzhHQWpJVSx3QkFBd0Isa0JBMkNmLGdCQUFnQjtrR0EzQ3pCLHdCQUF3QixnZ0JDN0JyQyxteElBZ0hBLHl0Q0RuRmEsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLHVCQUF1QixRQUUzQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sRUFBRTs7MEJBNkNoQyxNQUFNOzJCQUFDLGdCQUFnQjs7MEJBQUcsUUFBUTt5Q0F4QjNDLFVBQVU7c0JBRGIsS0FBSztnQkFTeUIsaUJBQWlCO3NCQUEvQyxLQUFLO3VCQUFDLHNCQUFzQjtnQkFDRixhQUFhO3NCQUF2QyxLQUFLO3VCQUFDLGtCQUFrQjtnQkFNZixnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUU2QixpQkFBaUI7c0JBQXBELFNBQVM7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFuZ2xlSWNvbiwgQ2xhcml0eUljb25zLCB0cmVlVmlld0ljb24gfSBmcm9tICdAY2RzL2NvcmUvaWNvbic7XG5pbXBvcnQgJ0BjZHMvY29yZS9pY29uL3JlZ2lzdGVyLmpzJztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMb2NhdGlvbkJhck5vZGUsIE5vZGVJZCB9IGZyb20gJy4uL2xvY2F0aW9uLWJhci5tb2RlbCc7XG5pbXBvcnQgeyBDT05URU5UX1BST1ZJREVSLCBMb2NhdGlvbkJhckNvbnRlbnRQcm92aWRlciB9IGZyb20gJy4uL2xvY2F0aW9uLWJhci5wcm92aWRlcic7XG5pbXBvcnQgeyBTZWFyY2hSZXF1ZXN0TW9kZWwsIFNlYXJjaFJlc3VsdE1vZGVsIH0gZnJvbSAnLi4vbG9jYXRpb24tYmFyLnNlYXJjaC5tb2RlbCc7XG5pbXBvcnQgeyBMb2NhdGlvbkJhclNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4uL2xvY2F0aW9uLWJhci1zZWFyY2gvbG9jYXRpb24tYmFyLXNlYXJjaC5jb21wb25lbnQnO1xuXG5DbGFyaXR5SWNvbnMuYWRkSWNvbnModHJlZVZpZXdJY29uLCBhbmdsZUljb24pO1xuXG4vKipcbiAqIENvbXBvbmVudCB3aGljaCByZW5kZXJzIGEgbm9kZSBvZiB0aGUgbG9jYXRpb24gYmFyLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItbG9jYXRpb24tYmFyLW5vZGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vbG9jYXRpb24tYmFyLW5vZGUuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7ICdbY2xhc3MubG9jYXRpb24tYmFyLW5vZGVdJzogJ3RydWUnIH0sXG59KVxuZXhwb3J0IGNsYXNzIExvY2F0aW9uQmFyTm9kZUNvbXBvbmVudDxUIGV4dGVuZHMgTm9kZUlkPiBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIC8qKlxuICAgKiBUaGUgcGFyZW50IG5vZGUgb2YgdGhpcyBjb21wb25lbnRcbiAgICovXG4gIHByaXZhdGUgX3BhcmVudE5vZGU6IExvY2F0aW9uQmFyTm9kZTxUPjtcblxuICAvKipcbiAgICogVGhlIHNlbGVjdGFibGUgbm9kZXNcbiAgICovXG4gIHNlbGVjdGFibGVDaGlsZHM6IExvY2F0aW9uQmFyTm9kZTxUPltdID0gW107XG5cbiAgc2VhcmNoVGV4dDogc3RyaW5nO1xuXG4gIGZvY3VzOiBib29sZWFuO1xuXG4gIHJlYWRvbmx5IFNFQVJDSF9JVEVNX1NUT1JBR0VfS0VZOiBzdHJpbmcgPSAnc2VhcmNoZWRJdGVtJztcblxuICAvKiBpbnB1dHMgKi9cbiAgQElucHV0KClcbiAgc2V0IHBhcmVudE5vZGUocGFyZW50Tm9kZTogTG9jYXRpb25CYXJOb2RlPFQ+KSB7XG4gICAgdGhpcy5fcGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7XG4gICAgaWYgKHRoaXMuX3BhcmVudE5vZGUpIHtcbiAgICAgIGNvbnN0IGNoaWxkcmVuJCA9IHRoaXMuX3BhcmVudE5vZGUuZ2V0Q2hpbGRyZW4oKSA/IG9mKHRoaXMuX3BhcmVudE5vZGUuZ2V0Q2hpbGRyZW4oKSkgOiB0aGlzLmdldExhenlDaGlsZHJlbigpO1xuXG4gICAgICBjaGlsZHJlbiQudG9Qcm9taXNlKCkudGhlbihub2RlcyA9PiB0aGlzLnByZXBhcmVDaGlsZHJlbihub2RlcyB8fCBbXSkpO1xuICAgIH1cbiAgfVxuICBASW5wdXQoJ2NsclNlYXJjaFJlc3VsdEl0ZW1zJykgc2VhcmNoUmVzdWx0SXRlbXM6IFNlYXJjaFJlc3VsdE1vZGVsW10gPSBbXTtcbiAgQElucHV0KCdjbHJTZWFyY2hSZXF1ZXN0Jykgc2VhcmNoUmVxdWVzdDogU2VhcmNoUmVxdWVzdE1vZGVsO1xuXG4gIC8qIG91dHB1dHMgKi9cbiAgLyoqXG4gICAqIEVtaXRzIHNlbGVjdGlvbiBjaGFuZ2VzXG4gICAqL1xuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VFtdPigpO1xuICBAT3V0cHV0KCkgc2VhcmNoSXRlbUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNlYXJjaFJlc3VsdE1vZGVsPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2xvY2F0aW9uQmFyU2VhcmNoJykgc2V0IGxvY2F0aW9uQmFyU2VhcmNoKHNlYXJjaDogTG9jYXRpb25CYXJTZWFyY2hDb21wb25lbnQpIHtcbiAgICBpZiAoc2VhcmNoKSB7XG4gICAgICBzZWFyY2guZm9jdXNJbnB1dCgpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQ09OVEVOVF9QUk9WSURFUikgQE9wdGlvbmFsKCkgcHVibGljIGNvbnRlbnRQcm92aWRlcjogTG9jYXRpb25CYXJDb250ZW50UHJvdmlkZXI8VD4pIHt9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzPy5zZWFyY2hSZXN1bHRJdGVtcykge1xuICAgICAgdGhpcy5zZWFyY2hSZXN1bHRJdGVtcyA9IGNoYW5nZXMuc2VhcmNoUmVzdWx0SXRlbXMuY3VycmVudFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBwYXJlbnROb2RlKCk6IExvY2F0aW9uQmFyTm9kZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcmVudE5vZGU7XG4gIH1cblxuICBwcml2YXRlIGdldExhenlDaGlsZHJlbigpIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50UHJvdmlkZXIgPyB0aGlzLmNvbnRlbnRQcm92aWRlci5nZXRMYXp5Q2hpbGRyZW4odGhpcy5fcGFyZW50Tm9kZSkgOiBvZihbXSk7XG4gIH1cblxuICBwcml2YXRlIHByZXBhcmVDaGlsZHJlbihub2RlczogTG9jYXRpb25CYXJOb2RlPFQ+W10pIHtcbiAgICB0aGlzLl9wYXJlbnROb2RlLnNldENoaWxkcmVuKG5vZGVzKTtcbiAgICAvKiB3aGVuIG5vIG5vZGUgaXMgc2VsZWN0ZWQgc2VhcmNoIHdpdGhpbiB0aGUgY2hpbGRyZW4gZm9yIHRoZSBmaXJzdCBjaGlsZCB0byBiZSBwcmUtc2VsZWN0ZWQgKi9cbiAgICBpZiAoIXRoaXMuX3BhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpKSB7XG4gICAgICBmb3IgKGNvbnN0IG5vZGUgb2Ygbm9kZXMpIHtcbiAgICAgICAgaWYgKG5vZGUucHJlU2VsZWN0ZWQpIHtcbiAgICAgICAgICB0aGlzLl9wYXJlbnROb2RlLnNldFNlbGVjdGVkQ2hpbGQobm9kZSk7XG4gICAgICAgICAgbm9kZS5wcmVTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0YWJsZUNoaWxkcyA9IG5vZGVzLmZpbHRlcihuID0+IG4uc2VsZWN0YWJsZSk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVucyBmb3Igc2VsZWN0aW9uIGNoYW5nZXMgb2YgY2hpbGQgY29tcG9uZW50cyBhbmQgcmUtZW1pdHMgdGhlIHNlbGVjdGlvbiBldmVudC5cbiAgICogQHBhcmFtIHNlbGVjdGlvbiBUaGUgY2hhbmdlZCBzZWxlY3Rpb24gb2YgY2hpbGQgY29tcG9uZW50c1xuICAgKi9cbiAgb25TZWxlY3Rpb25DaGFuZ2VkKHNlbGVjdGlvbjogVFtdKSB7XG4gICAgc2VsZWN0aW9uLnVuc2hpZnQodGhpcy5fcGFyZW50Tm9kZS5nZXRTZWxlY3RlZENoaWxkKCkuaWQpO1xuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHNlbGVjdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0cyB0aGUgZ2l2ZW4gbm9kZVxuICAgKiBAcGFyYW0gc2VsZWN0ZWROb2RlIFRoZSBzZWxlY3RlZCBjaGlsZCBub2RlLlxuICAgKi9cbiAgc2VsZWN0Tm9kZShzZWxlY3RlZE5vZGU6IExvY2F0aW9uQmFyTm9kZTxUPikge1xuICAgIGlmIChzZWxlY3RlZE5vZGUpIHtcbiAgICAgIHNlbGVjdGVkTm9kZS5zZXRTZWxlY3RlZENoaWxkKG51bGwpO1xuICAgICAgdGhpcy5fcGFyZW50Tm9kZS5zZXRTZWxlY3RlZENoaWxkKHNlbGVjdGVkTm9kZSk7XG4gICAgICB0aGlzLm5vdGlmeVNlbGVjdGlvbkNoYW5nZWQoc2VsZWN0ZWROb2RlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIGNhbGxlZCBpbnRlcm5hbGx5IHRvIGVtaXQgdGhlIHNlbGVjdGlvbiBldmVudFxuICAgKiBAcGFyYW0gc2VsZWN0ZWROb2RlIFRoZSBub2RlIHdoaWNoIGhhcyBiZWVuIHNlbGVjdGVkXG4gICAqL1xuICBwcml2YXRlIG5vdGlmeVNlbGVjdGlvbkNoYW5nZWQoc2VsZWN0ZWROb2RlOiBMb2NhdGlvbkJhck5vZGU8VD4pIHtcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZWQuZW1pdChbc2VsZWN0ZWROb2RlLmlkXSk7XG4gIH1cblxuICBvblNlYXJjaCh0ZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlYXJjaFRleHQgPSB0ZXh0O1xuICAgIHRoaXMuY29udGVudFByb3ZpZGVyLnNlYXJjaFBlcmZvcm1lZCh7IHRleHQ6IHRleHQsIHNlYXJjaGFibGVOb2RlczogdGhpcy5fcGFyZW50Tm9kZS5nZXRDaGlsZHJlbigpIH0pO1xuICB9XG5cbiAgZGlzcGxheVNlYXJjaFJlc3VsdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hSZXN1bHRJdGVtcy5sZW5ndGggIT09IDAgfHwgISF0aGlzLnNlYXJjaFRleHQ7XG4gIH1cblxuICByZXNldFNlYXJjaCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaFJlc3VsdEl0ZW1zID0gW107XG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gJyc7XG4gIH1cblxuICBvblNlYXJjaEl0ZW1DaGFuZ2VkKGl0ZW06IFNlYXJjaFJlc3VsdE1vZGVsKTogdm9pZCB7XG4gICAgbGV0IHNlYXJjaGVkSXRlbTogU2VhcmNoUmVzdWx0TW9kZWw7XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIHNlYXJjaGVkSXRlbSA9IGl0ZW07XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLlNFQVJDSF9JVEVNX1NUT1JBR0VfS0VZLCBKU09OLnN0cmluZ2lmeShpdGVtKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHN0b3JhZ2VJdGVtID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5TRUFSQ0hfSVRFTV9TVE9SQUdFX0tFWSk7XG4gICAgICBpZiAoc3RvcmFnZUl0ZW0pIHtcbiAgICAgICAgc2VhcmNoZWRJdGVtID0gSlNPTi5wYXJzZShzdG9yYWdlSXRlbSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2VhcmNoSXRlbUNoYW5nZWQuZW1pdChzZWFyY2hlZEl0ZW0pO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwicGFyZW50Tm9kZVwiPlxuICA8bmctY29udGVudCAqbmdJZj1cInBhcmVudE5vZGUuZ2V0Q2hpbGRyZW4oKT8ubGVuZ3RoID4gMFwiPjwvbmctY29udGVudD5cblxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJcbiAgICAgIChzZWxlY3RhYmxlQ2hpbGRzLmxlbmd0aCA+IDAgJiYgIXBhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpKSB8fCBzZWxlY3RhYmxlQ2hpbGRzLmxlbmd0aCA+IDE7XG4gICAgICBlbHNlIHNpbmdsZVNlbGVjdGVkXG4gICAgXCJcbiAgPlxuICAgIDxjbHItZHJvcGRvd24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIGJ0bi1zbVwiXG4gICAgICAgIChibHVyKT1cImZvY3VzID0gZmFsc2VcIlxuICAgICAgICAoZm9jdXMpPVwiZm9jdXMgPSB0cnVlXCJcbiAgICAgICAgKGNsaWNrKT1cInJlc2V0U2VhcmNoKClcIlxuICAgICAgICBjbHJEcm9wZG93blRyaWdnZXJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpIGFzIG5vZGU7IGVsc2UgdW5zZWxlY3RlZFwiPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAoY2xpY2spPVwicmVzZXRTZWFyY2goKVwiXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtdHJ1bmNhdGVcIlxuICAgICAgICAgICAgW2NsYXNzLmxhc3QtbGV2ZWxdPVwiIXBhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpLmdldFNlbGVjdGVkQ2hpbGQoKVwiXG4gICAgICAgICAgICB0aXRsZT1cInt7IG5vZGUubGFiZWwgfX1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IG5vZGUubGFiZWwgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPGNkcy1pY29uIHNoYXBlPVwiYW5nbGVcIiBkaXJlY3Rpb249XCJkb3duXCIgc2l6ZT1cInhzXCIgY2xhc3M9XCJjYXJldC1pY29uXCI+PC9jZHMtaWNvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjdW5zZWxlY3RlZD5cbiAgICAgICAgICA8Y2RzLWljb24gY2xhc3M9XCJ1bnNlbGVjdGVkXCIgc2l6ZT1cIjE4XCIgW2F0dHIuc29saWRdPVwiZm9jdXNcIiBzaGFwZT1cInRyZWUtdmlld1wiPjwvY2RzLWljb24+Jm5ic3A7Li4uXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxjbHItZHJvcGRvd24tbWVudSBbY2xyUG9zaXRpb25dPVwiJ2JvdHRvbS1sZWZ0J1wiICpjbHJJZk9wZW4+XG4gICAgICAgIDxjbHItbG9jYXRpb24tYmFyLXNlYXJjaFxuICAgICAgICAgICNsb2NhdGlvbkJhclNlYXJjaFxuICAgICAgICAgICpuZ0lmPVwic2VhcmNoUmVxdWVzdFwiXG4gICAgICAgICAgW2NsclNlYXJjaFJlcXVlc3RdPVwic2VhcmNoUmVxdWVzdFwiXG4gICAgICAgICAgKHNlYXJjaFBlcmZvcm1lZCk9XCJvblNlYXJjaCgkZXZlbnQpXCJcbiAgICAgICAgPjwvY2xyLWxvY2F0aW9uLWJhci1zZWFyY2g+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5U2VhcmNoUmVzdWx0KCk7IGVsc2UgZGlzcGxheVNlbGVjdGFibGVDaGlsZHNcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VhcmNoUmVzdWx0SXRlbXMubGVuZ3RoICE9PSAwOyBlbHNlIGRpc3BsYXlOb3RGb3VuZFwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xyRHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgIGNsYXNzPVwidGV4dC10cnVuY2F0ZSBkaXNwbGF5LXJlc3VsdFwiXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzZWFyY2hSZXN1bHRJdGVtIG9mIHNlYXJjaFJlc3VsdEl0ZW1zXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VhcmNoSXRlbUNoYW5nZWQoc2VhcmNoUmVzdWx0SXRlbSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWFyY2hSZXF1ZXN0Py5zZWFyY2hSZXN1bHRJdGVtUmVmOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogc2VhcmNoUmVzdWx0SXRlbSB9XCJcbiAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNkaXNwbGF5Tm90Rm91bmQ+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vLXJlc3VsdC10ZXh0XCI+XG4gICAgICAgICAgICAgIHt7IHNlYXJjaFJlcXVlc3Q/Lm5vUmVzdWx0c1RleHQgPz8gJ05vIHNlYXJjaCByZXN1bHQgZm91bmQuJyB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGlzcGxheVNlbGVjdGFibGVDaGlsZHM+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc2VsZWN0YWJsZUNoaWxkc1wiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsckRyb3Bkb3duSXRlbVxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXRydW5jYXRlIGRpc3BsYXktcmVzdWx0XCJcbiAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZC1jaGlsZF09XCJpdGVtLmlkID09PSBwYXJlbnROb2RlLmdldFNlbGVjdGVkQ2hpbGQoKT8uaWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdE5vZGUoaXRlbSlcIlxuICAgICAgICAgICAgdGl0bGU9XCJ7eyBpdGVtLmxhYmVsIH19XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Nsci1kcm9wZG93bi1tZW51PlxuICAgIDwvY2xyLWRyb3Bkb3duPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctdGVtcGxhdGUgI3NpbmdsZVNlbGVjdGVkPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYXJlbnROb2RlLmdldFNlbGVjdGVkQ2hpbGQoKVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpLnNlbGVjdGFibGU7IGVsc2UgdW5zZWxlY3RhYmxlXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayBidG4tc21cIlxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3ROb2RlKHBhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpKVwiXG4gICAgICAgICAgW2NsYXNzLmxhc3QtbGV2ZWxdPVwiIXBhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpLmdldFNlbGVjdGVkQ2hpbGQoKVwiXG4gICAgICAgICAgdGl0bGU9XCJ7eyBwYXJlbnROb2RlLmdldFNlbGVjdGVkQ2hpbGQoKS5sYWJlbCB9fVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBwYXJlbnROb2RlLmdldFNlbGVjdGVkQ2hpbGQoKS5sYWJlbCB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICN1bnNlbGVjdGFibGU+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJ1bnNlbGVjdGFibGUtbm9kZSB0ZXh0LXRydW5jYXRlXCJcbiAgICAgICAgICBbY2xhc3MubGFzdC1sZXZlbF09XCIhcGFyZW50Tm9kZS5nZXRTZWxlY3RlZENoaWxkKCkuZ2V0U2VsZWN0ZWRDaGlsZCgpXCJcbiAgICAgICAgICB0aXRsZT1cInt7IHBhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpLmxhYmVsIH19XCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHBhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpLmxhYmVsIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPGNsci1sb2NhdGlvbi1iYXItbm9kZVxuICAgICpuZ0lmPVwicGFyZW50Tm9kZS5nZXRTZWxlY3RlZENoaWxkKCkgJiYgcGFyZW50Tm9kZS5nZXRDaGlsZHJlbigpLmxlbmd0aCA+IDBcIlxuICAgIFtwYXJlbnROb2RlXT1cInBhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpXCJcbiAgICBbY2xyU2VhcmNoUmVxdWVzdF09XCJzZWFyY2hSZXF1ZXN0XCJcbiAgICBbY2xyU2VhcmNoUmVzdWx0SXRlbXNdPVwic2VhcmNoUmVzdWx0SXRlbXNcIlxuICAgIChzZWxlY3Rpb25DaGFuZ2VkKT1cIm9uU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAoc2VhcmNoSXRlbUNoYW5nZWQpPVwib25TZWFyY2hJdGVtQ2hhbmdlZChudWxsKVwiXG4gID5cbiAgICA8c3Bhbj4vPC9zcGFuPlxuICA8L2Nsci1sb2NhdGlvbi1iYXItbm9kZT5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYXRpb24tYmFyLW5vZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2Nsci1hZGRvbnMvbG9jYXRpb24tYmFyL2xvY2F0aW9uLWJhci1ub2RlL2xvY2F0aW9uLWJhci1ub2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9jbHItYWRkb25zL2xvY2F0aW9uLWJhci9sb2NhdGlvbi1iYXItbm9kZS9sb2NhdGlvbi1iYXItbm9kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsZUFBZSxFQUFVLE1BQU0sdUJBQXVCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFeEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7Ozs7Ozs7QUFFbEcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFFL0M7O0dBRUc7QUFNSCxNQUFNLE9BQU8sd0JBQXdCO0lBaUJuQyxZQUFZO0lBQ1osSUFDSSxVQUFVLENBQUMsVUFBOEI7UUFDM0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7UUFDOUIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdB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QUFpQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM1QyxDQUFDOzhHQWpJVSx3QkFBd0Isa0JBMkNmLGdCQUFnQjtrR0EzQ3pCLHdCQUF3QixnZ0JDN0JyQywreElBZ0hBLHl0Q0RuRmEsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLHVCQUF1QixRQUUzQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sRUFBRTs7MEJBNkNoQyxNQUFNOzJCQUFDLGdCQUFnQjs7MEJBQUcsUUFBUTt5Q0F4QjNDLFVBQVU7c0JBRGIsS0FBSztnQkFTeUIsaUJBQWlCO3NCQUEvQyxLQUFLO3VCQUFDLHNCQUFzQjtnQkFDRixhQUFhO3NCQUF2QyxLQUFLO3VCQUFDLGtCQUFrQjtnQkFNZixnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUU2QixpQkFBaUI7c0JBQXBELFNBQVM7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFuZ2xlSWNvbiwgQ2xhcml0eUljb25zLCB0cmVlVmlld0ljb24gfSBmcm9tICdAY2RzL2NvcmUvaWNvbic7XG5pbXBvcnQgJ0BjZHMvY29yZS9pY29uL3JlZ2lzdGVyLmpzJztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMb2NhdGlvbkJhck5vZGUsIE5vZGVJZCB9IGZyb20gJy4uL2xvY2F0aW9uLWJhci5tb2RlbCc7XG5pbXBvcnQgeyBDT05URU5UX1BST1ZJREVSLCBMb2NhdGlvbkJhckNvbnRlbnRQcm92aWRlciB9IGZyb20gJy4uL2xvY2F0aW9uLWJhci5wcm92aWRlcic7XG5pbXBvcnQgeyBTZWFyY2hSZXF1ZXN0TW9kZWwsIFNlYXJjaFJlc3VsdE1vZGVsIH0gZnJvbSAnLi4vbG9jYXRpb24tYmFyLnNlYXJjaC5tb2RlbCc7XG5pbXBvcnQgeyBMb2NhdGlvbkJhclNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4uL2xvY2F0aW9uLWJhci1zZWFyY2gvbG9jYXRpb24tYmFyLXNlYXJjaC5jb21wb25lbnQnO1xuXG5DbGFyaXR5SWNvbnMuYWRkSWNvbnModHJlZVZpZXdJY29uLCBhbmdsZUljb24pO1xuXG4vKipcbiAqIENvbXBvbmVudCB3aGljaCByZW5kZXJzIGEgbm9kZSBvZiB0aGUgbG9jYXRpb24gYmFyLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItbG9jYXRpb24tYmFyLW5vZGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vbG9jYXRpb24tYmFyLW5vZGUuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7ICdbY2xhc3MubG9jYXRpb24tYmFyLW5vZGVdJzogJ3RydWUnIH0sXG59KVxuZXhwb3J0IGNsYXNzIExvY2F0aW9uQmFyTm9kZUNvbXBvbmVudDxUIGV4dGVuZHMgTm9kZUlkPiBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIC8qKlxuICAgKiBUaGUgcGFyZW50IG5vZGUgb2YgdGhpcyBjb21wb25lbnRcbiAgICovXG4gIHByaXZhdGUgX3BhcmVudE5vZGU6IExvY2F0aW9uQmFyTm9kZTxUPjtcblxuICAvKipcbiAgICogVGhlIHNlbGVjdGFibGUgbm9kZXNcbiAgICovXG4gIHNlbGVjdGFibGVDaGlsZHM6IExvY2F0aW9uQmFyTm9kZTxUPltdID0gW107XG5cbiAgc2VhcmNoVGV4dDogc3RyaW5nO1xuXG4gIGZvY3VzOiBib29sZWFuO1xuXG4gIHJlYWRvbmx5IFNFQVJDSF9JVEVNX1NUT1JBR0VfS0VZOiBzdHJpbmcgPSAnc2VhcmNoZWRJdGVtJztcblxuICAvKiBpbnB1dHMgKi9cbiAgQElucHV0KClcbiAgc2V0IHBhcmVudE5vZGUocGFyZW50Tm9kZTogTG9jYXRpb25CYXJOb2RlPFQ+KSB7XG4gICAgdGhpcy5fcGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7XG4gICAgaWYgKHRoaXMuX3BhcmVudE5vZGUpIHtcbiAgICAgIGNvbnN0IGNoaWxkcmVuJCA9IHRoaXMuX3BhcmVudE5vZGUuZ2V0Q2hpbGRyZW4oKSA/IG9mKHRoaXMuX3BhcmVudE5vZGUuZ2V0Q2hpbGRyZW4oKSkgOiB0aGlzLmdldExhenlDaGlsZHJlbigpO1xuXG4gICAgICBjaGlsZHJlbiQudG9Qcm9taXNlKCkudGhlbihub2RlcyA9PiB0aGlzLnByZXBhcmVDaGlsZHJlbihub2RlcyB8fCBbXSkpO1xuICAgIH1cbiAgfVxuICBASW5wdXQoJ2NsclNlYXJjaFJlc3VsdEl0ZW1zJykgc2VhcmNoUmVzdWx0SXRlbXM6IFNlYXJjaFJlc3VsdE1vZGVsW10gPSBbXTtcbiAgQElucHV0KCdjbHJTZWFyY2hSZXF1ZXN0Jykgc2VhcmNoUmVxdWVzdDogU2VhcmNoUmVxdWVzdE1vZGVsO1xuXG4gIC8qIG91dHB1dHMgKi9cbiAgLyoqXG4gICAqIEVtaXRzIHNlbGVjdGlvbiBjaGFuZ2VzXG4gICAqL1xuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VFtdPigpO1xuICBAT3V0cHV0KCkgc2VhcmNoSXRlbUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNlYXJjaFJlc3VsdE1vZGVsPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2xvY2F0aW9uQmFyU2VhcmNoJykgc2V0IGxvY2F0aW9uQmFyU2VhcmNoKHNlYXJjaDogTG9jYXRpb25CYXJTZWFyY2hDb21wb25lbnQpIHtcbiAgICBpZiAoc2VhcmNoKSB7XG4gICAgICBzZWFyY2guZm9jdXNJbnB1dCgpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQ09OVEVOVF9QUk9WSURFUikgQE9wdGlvbmFsKCkgcHVibGljIGNvbnRlbnRQcm92aWRlcjogTG9jYXRpb25CYXJDb250ZW50UHJvdmlkZXI8VD4pIHt9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzPy5zZWFyY2hSZXN1bHRJdGVtcykge1xuICAgICAgdGhpcy5zZWFyY2hSZXN1bHRJdGVtcyA9IGNoYW5nZXMuc2VhcmNoUmVzdWx0SXRlbXMuY3VycmVudFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBwYXJlbnROb2RlKCk6IExvY2F0aW9uQmFyTm9kZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcmVudE5vZGU7XG4gIH1cblxuICBwcml2YXRlIGdldExhenlDaGlsZHJlbigpIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50UHJvdmlkZXIgPyB0aGlzLmNvbnRlbnRQcm92aWRlci5nZXRMYXp5Q2hpbGRyZW4odGhpcy5fcGFyZW50Tm9kZSkgOiBvZihbXSk7XG4gIH1cblxuICBwcml2YXRlIHByZXBhcmVDaGlsZHJlbihub2RlczogTG9jYXRpb25CYXJOb2RlPFQ+W10pIHtcbiAgICB0aGlzLl9wYXJlbnROb2RlLnNldENoaWxkcmVuKG5vZGVzKTtcbiAgICAvKiB3aGVuIG5vIG5vZGUgaXMgc2VsZWN0ZWQgc2VhcmNoIHdpdGhpbiB0aGUgY2hpbGRyZW4gZm9yIHRoZSBmaXJzdCBjaGlsZCB0byBiZSBwcmUtc2VsZWN0ZWQgKi9cbiAgICBpZiAoIXRoaXMuX3BhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpKSB7XG4gICAgICBmb3IgKGNvbnN0IG5vZGUgb2Ygbm9kZXMpIHtcbiAgICAgICAgaWYgKG5vZGUucHJlU2VsZWN0ZWQpIHtcbiAgICAgICAgICB0aGlzLl9wYXJlbnROb2RlLnNldFNlbGVjdGVkQ2hpbGQobm9kZSk7XG4gICAgICAgICAgbm9kZS5wcmVTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0YWJsZUNoaWxkcyA9IG5vZGVzLmZpbHRlcihuID0+IG4uc2VsZWN0YWJsZSk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVucyBmb3Igc2VsZWN0aW9uIGNoYW5nZXMgb2YgY2hpbGQgY29tcG9uZW50cyBhbmQgcmUtZW1pdHMgdGhlIHNlbGVjdGlvbiBldmVudC5cbiAgICogQHBhcmFtIHNlbGVjdGlvbiBUaGUgY2hhbmdlZCBzZWxlY3Rpb24gb2YgY2hpbGQgY29tcG9uZW50c1xuICAgKi9cbiAgb25TZWxlY3Rpb25DaGFuZ2VkKHNlbGVjdGlvbjogVFtdKSB7XG4gICAgc2VsZWN0aW9uLnVuc2hpZnQodGhpcy5fcGFyZW50Tm9kZS5nZXRTZWxlY3RlZENoaWxkKCkuaWQpO1xuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlZC5lbWl0KHNlbGVjdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0cyB0aGUgZ2l2ZW4gbm9kZVxuICAgKiBAcGFyYW0gc2VsZWN0ZWROb2RlIFRoZSBzZWxlY3RlZCBjaGlsZCBub2RlLlxuICAgKi9cbiAgc2VsZWN0Tm9kZShzZWxlY3RlZE5vZGU6IExvY2F0aW9uQmFyTm9kZTxUPikge1xuICAgIGlmIChzZWxlY3RlZE5vZGUpIHtcbiAgICAgIHNlbGVjdGVkTm9kZS5zZXRTZWxlY3RlZENoaWxkKG51bGwpO1xuICAgICAgdGhpcy5fcGFyZW50Tm9kZS5zZXRTZWxlY3RlZENoaWxkKHNlbGVjdGVkTm9kZSk7XG4gICAgICB0aGlzLm5vdGlmeVNlbGVjdGlvbkNoYW5nZWQoc2VsZWN0ZWROb2RlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIGNhbGxlZCBpbnRlcm5hbGx5IHRvIGVtaXQgdGhlIHNlbGVjdGlvbiBldmVudFxuICAgKiBAcGFyYW0gc2VsZWN0ZWROb2RlIFRoZSBub2RlIHdoaWNoIGhhcyBiZWVuIHNlbGVjdGVkXG4gICAqL1xuICBwcml2YXRlIG5vdGlmeVNlbGVjdGlvbkNoYW5nZWQoc2VsZWN0ZWROb2RlOiBMb2NhdGlvbkJhck5vZGU8VD4pIHtcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZWQuZW1pdChbc2VsZWN0ZWROb2RlLmlkXSk7XG4gIH1cblxuICBvblNlYXJjaCh0ZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlYXJjaFRleHQgPSB0ZXh0O1xuICAgIHRoaXMuY29udGVudFByb3ZpZGVyLnNlYXJjaFBlcmZvcm1lZCh7IHRleHQ6IHRleHQsIHNlYXJjaGFibGVOb2RlczogdGhpcy5fcGFyZW50Tm9kZS5nZXRDaGlsZHJlbigpIH0pO1xuICB9XG5cbiAgZGlzcGxheVNlYXJjaFJlc3VsdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hSZXN1bHRJdGVtcy5sZW5ndGggIT09IDAgfHwgISF0aGlzLnNlYXJjaFRleHQ7XG4gIH1cblxuICByZXNldFNlYXJjaCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaFJlc3VsdEl0ZW1zID0gW107XG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gJyc7XG4gIH1cblxuICBvblNlYXJjaEl0ZW1DaGFuZ2VkKGl0ZW06IFNlYXJjaFJlc3VsdE1vZGVsKTogdm9pZCB7XG4gICAgbGV0IHNlYXJjaGVkSXRlbTogU2VhcmNoUmVzdWx0TW9kZWw7XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIHNlYXJjaGVkSXRlbSA9IGl0ZW07XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLlNFQVJDSF9JVEVNX1NUT1JBR0VfS0VZLCBKU09OLnN0cmluZ2lmeShpdGVtKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHN0b3JhZ2VJdGVtID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5TRUFSQ0hfSVRFTV9TVE9SQUdFX0tFWSk7XG4gICAgICBpZiAoc3RvcmFnZUl0ZW0pIHtcbiAgICAgICAgc2VhcmNoZWRJdGVtID0gSlNPTi5wYXJzZShzdG9yYWdlSXRlbSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2VhcmNoSXRlbUNoYW5nZWQuZW1pdChzZWFyY2hlZEl0ZW0pO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwicGFyZW50Tm9kZVwiPlxuICA8bmctY29udGVudCAqbmdJZj1cInBhcmVudE5vZGUuZ2V0Q2hpbGRyZW4oKT8ubGVuZ3RoID4gMFwiPjwvbmctY29udGVudD5cblxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJcbiAgICAgIChzZWxlY3RhYmxlQ2hpbGRzLmxlbmd0aCA+IDAgJiYgIXBhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpKSB8fCBzZWxlY3RhYmxlQ2hpbGRzLmxlbmd0aCA+IDE7XG4gICAgICBlbHNlIHNpbmdsZVNlbGVjdGVkXG4gICAgXCJcbiAgPlxuICAgIDxjbHItZHJvcGRvd24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIGJ0bi1zbVwiXG4gICAgICAgIChibHVyKT1cImZvY3VzID0gZmFsc2VcIlxuICAgICAgICAoZm9jdXMpPVwiZm9jdXMgPSB0cnVlXCJcbiAgICAgICAgKGNsaWNrKT1cInJlc2V0U2VhcmNoKClcIlxuICAgICAgICBjbHJEcm9wZG93blRyaWdnZXJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpIGFzIG5vZGU7IGVsc2UgdW5zZWxlY3RlZFwiPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAoY2xpY2spPVwicmVzZXRTZWFyY2goKVwiXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtdHJ1bmNhdGVcIlxuICAgICAgICAgICAgW2NsYXNzLmxhc3QtbGV2ZWxdPVwiIXBhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpLmdldFNlbGVjdGVkQ2hpbGQoKVwiXG4gICAgICAgICAgICB0aXRsZT1cInt7IG5vZGUubGFiZWwgfX1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IG5vZGUubGFiZWwgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPGNkcy1pY29uIHNoYXBlPVwiYW5nbGVcIiBkaXJlY3Rpb249XCJkb3duXCIgc2l6ZT1cInhzXCIgY2xhc3M9XCJjYXJldC1pY29uXCI+PC9jZHMtaWNvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjdW5zZWxlY3RlZD5cbiAgICAgICAgICA8Y2RzLWljb24gY2xhc3M9XCJ1bnNlbGVjdGVkXCIgc2l6ZT1cIjE4XCIgW2F0dHIuc29saWRdPVwiZm9jdXNcIiBzaGFwZT1cInRyZWUtdmlld1wiPjwvY2RzLWljb24+Jm5ic3A7Li4uXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxjbHItZHJvcGRvd24tbWVudSBbY2xyUG9zaXRpb25dPVwiJ2JvdHRvbS1sZWZ0J1wiIFtjbHJEcm9wZG93bk1lbnVJdGVtTWluSGVpZ2h0XT1cIicyNHB4J1wiICpjbHJJZk9wZW4+XG4gICAgICAgIDxjbHItbG9jYXRpb24tYmFyLXNlYXJjaFxuICAgICAgICAgICNsb2NhdGlvbkJhclNlYXJjaFxuICAgICAgICAgICpuZ0lmPVwic2VhcmNoUmVxdWVzdFwiXG4gICAgICAgICAgW2NsclNlYXJjaFJlcXVlc3RdPVwic2VhcmNoUmVxdWVzdFwiXG4gICAgICAgICAgKHNlYXJjaFBlcmZvcm1lZCk9XCJvblNlYXJjaCgkZXZlbnQpXCJcbiAgICAgICAgPjwvY2xyLWxvY2F0aW9uLWJhci1zZWFyY2g+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5U2VhcmNoUmVzdWx0KCk7IGVsc2UgZGlzcGxheVNlbGVjdGFibGVDaGlsZHNcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VhcmNoUmVzdWx0SXRlbXMubGVuZ3RoICE9PSAwOyBlbHNlIGRpc3BsYXlOb3RGb3VuZFwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xyRHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgIGNsYXNzPVwidGV4dC10cnVuY2F0ZVwiXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzZWFyY2hSZXN1bHRJdGVtIG9mIHNlYXJjaFJlc3VsdEl0ZW1zXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VhcmNoSXRlbUNoYW5nZWQoc2VhcmNoUmVzdWx0SXRlbSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWFyY2hSZXF1ZXN0Py5zZWFyY2hSZXN1bHRJdGVtUmVmOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogc2VhcmNoUmVzdWx0SXRlbSB9XCJcbiAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNkaXNwbGF5Tm90Rm91bmQ+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vLXJlc3VsdC10ZXh0XCI+XG4gICAgICAgICAgICAgIHt7IHNlYXJjaFJlcXVlc3Q/Lm5vUmVzdWx0c1RleHQgPz8gJ05vIHNlYXJjaCByZXN1bHQgZm91bmQuJyB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGlzcGxheVNlbGVjdGFibGVDaGlsZHM+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc2VsZWN0YWJsZUNoaWxkc1wiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsckRyb3Bkb3duSXRlbVxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCJcbiAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZC1jaGlsZF09XCJpdGVtLmlkID09PSBwYXJlbnROb2RlLmdldFNlbGVjdGVkQ2hpbGQoKT8uaWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdE5vZGUoaXRlbSlcIlxuICAgICAgICAgICAgdGl0bGU9XCJ7eyBpdGVtLmxhYmVsIH19XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Nsci1kcm9wZG93bi1tZW51PlxuICAgIDwvY2xyLWRyb3Bkb3duPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctdGVtcGxhdGUgI3NpbmdsZVNlbGVjdGVkPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwYXJlbnROb2RlLmdldFNlbGVjdGVkQ2hpbGQoKVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpLnNlbGVjdGFibGU7IGVsc2UgdW5zZWxlY3RhYmxlXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayBidG4tc21cIlxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3ROb2RlKHBhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpKVwiXG4gICAgICAgICAgW2NsYXNzLmxhc3QtbGV2ZWxdPVwiIXBhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpLmdldFNlbGVjdGVkQ2hpbGQoKVwiXG4gICAgICAgICAgdGl0bGU9XCJ7eyBwYXJlbnROb2RlLmdldFNlbGVjdGVkQ2hpbGQoKS5sYWJlbCB9fVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBwYXJlbnROb2RlLmdldFNlbGVjdGVkQ2hpbGQoKS5sYWJlbCB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICN1bnNlbGVjdGFibGU+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJ1bnNlbGVjdGFibGUtbm9kZSB0ZXh0LXRydW5jYXRlXCJcbiAgICAgICAgICBbY2xhc3MubGFzdC1sZXZlbF09XCIhcGFyZW50Tm9kZS5nZXRTZWxlY3RlZENoaWxkKCkuZ2V0U2VsZWN0ZWRDaGlsZCgpXCJcbiAgICAgICAgICB0aXRsZT1cInt7IHBhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpLmxhYmVsIH19XCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHBhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpLmxhYmVsIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPGNsci1sb2NhdGlvbi1iYXItbm9kZVxuICAgICpuZ0lmPVwicGFyZW50Tm9kZS5nZXRTZWxlY3RlZENoaWxkKCkgJiYgcGFyZW50Tm9kZS5nZXRDaGlsZHJlbigpLmxlbmd0aCA+IDBcIlxuICAgIFtwYXJlbnROb2RlXT1cInBhcmVudE5vZGUuZ2V0U2VsZWN0ZWRDaGlsZCgpXCJcbiAgICBbY2xyU2VhcmNoUmVxdWVzdF09XCJzZWFyY2hSZXF1ZXN0XCJcbiAgICBbY2xyU2VhcmNoUmVzdWx0SXRlbXNdPVwic2VhcmNoUmVzdWx0SXRlbXNcIlxuICAgIChzZWxlY3Rpb25DaGFuZ2VkKT1cIm9uU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAoc2VhcmNoSXRlbUNoYW5nZWQpPVwib25TZWFyY2hJdGVtQ2hhbmdlZChudWxsKVwiXG4gID5cbiAgICA8c3Bhbj4vPC9zcGFuPlxuICA8L2Nsci1sb2NhdGlvbi1iYXItbm9kZT5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
@@ -13,7 +13,6 @@ export class LocationBarSearchComponent {
|
|
|
13
13
|
this.previousValue = '';
|
|
14
14
|
this.displayWarning = false;
|
|
15
15
|
this.MIN_CHARACTERS_DEFAULT = 3;
|
|
16
|
-
this.MIM_CHARACTERS_TEXT_DEFAULT = 'Type 3+ characters to search.';
|
|
17
16
|
this.searchPerformed = new EventEmitter();
|
|
18
17
|
}
|
|
19
18
|
ngOnInit() {
|
|
@@ -23,12 +22,11 @@ export class LocationBarSearchComponent {
|
|
|
23
22
|
const validatedText = this.validateSearchText(text);
|
|
24
23
|
if (validatedText !== null) {
|
|
25
24
|
this.searchPerformed.emit(validatedText);
|
|
26
|
-
this.displayWarning = false;
|
|
27
25
|
}
|
|
28
26
|
}
|
|
29
27
|
validateSearchText(text) {
|
|
30
28
|
const isDeletion = this.isTextDeletion(text);
|
|
31
|
-
this.displayWarning = text.length < this.getMinSearchTextLength();
|
|
29
|
+
this.displayWarning = text.length < this.getMinSearchTextLength() && text.length !== 0;
|
|
32
30
|
if (isDeletion) {
|
|
33
31
|
return text.length >= this.getMinSearchTextLength() ? text : '';
|
|
34
32
|
}
|
|
@@ -54,12 +52,15 @@ export class LocationBarSearchComponent {
|
|
|
54
52
|
preventDropdownActions(event) {
|
|
55
53
|
event.stopPropagation();
|
|
56
54
|
}
|
|
55
|
+
getMinCharactersText() {
|
|
56
|
+
return `Type ${this.searchRequest?.minCharacters ?? this.MIN_CHARACTERS_DEFAULT}+ characters to search.`;
|
|
57
|
+
}
|
|
57
58
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: LocationBarSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
58
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: LocationBarSearchComponent, selector: "clr-location-bar-search", inputs: { searchRequest: ["clrSearchRequest", "searchRequest"] }, outputs: { searchPerformed: "searchPerformed" }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"clr-col-md-12 search-wrapper\">\n <form clrForm>\n <clr-input-container class=\"input-container\">\n <label hidden></label>\n <input\n #searchInput\n class=\"clr-col-md-12\"\n clrInput\n clrSearch\n [placeholder]=\"searchRequest?.placeholder ?? ''\"\n type=\"text\"\n name=\"search\"\n (keydown.Space)=\"preventDropdownActions($event)\"\n [formControl]=\"searchControl\"\n />\n <clr-control-helper *ngIf=\"displayWarning\" class=\"min-text-warning\">{{\n searchRequest?.minCharacterText ??
|
|
59
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: LocationBarSearchComponent, selector: "clr-location-bar-search", inputs: { searchRequest: ["clrSearchRequest", "searchRequest"] }, outputs: { searchPerformed: "searchPerformed" }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"clr-col-md-12 search-wrapper\">\n <form clrForm>\n <clr-input-container class=\"input-container\">\n <label hidden></label>\n <input\n #searchInput\n class=\"clr-col-md-12\"\n clrInput\n clrSearch\n [placeholder]=\"searchRequest?.placeholder ?? ''\"\n type=\"text\"\n name=\"search\"\n (keydown.Space)=\"preventDropdownActions($event)\"\n [formControl]=\"searchControl\"\n />\n <clr-control-helper *ngIf=\"displayWarning\" class=\"min-text-warning\">{{\n searchRequest?.minCharacterText ?? getMinCharactersText()\n }}</clr-control-helper>\n </clr-input-container>\n </form>\n</div>\n", styles: ["input::placeholder{font-size:.55rem}.search-wrapper{margin-bottom:.3rem}.input-container{margin-top:0}.min-text-warning{color:var(--cds-global-color-construction-800)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ClrLabel, selector: "label", inputs: ["for"] }, { kind: "component", type: i2.ClrControlHelper, selector: "clr-control-helper" }, { kind: "directive", type: i2.ClrForm, selector: "[clrForm]", inputs: ["clrLabelSize"] }, { kind: "directive", type: i2.ClrInput, selector: "[clrInput]" }, { kind: "component", type: i2.ClrInputContainer, selector: "clr-input-container" }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.ClrAutocompleteOff, selector: "input:not([autocomplete])" }, { kind: "directive", type: i5.ClrAddonsLabel, selector: "label" }, { kind: "directive", type: i6.ClrSearchField, selector: "[clrSearch]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
59
60
|
}
|
|
60
61
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: LocationBarSearchComponent, decorators: [{
|
|
61
62
|
type: Component,
|
|
62
|
-
args: [{ selector: 'clr-location-bar-search', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"clr-col-md-12 search-wrapper\">\n <form clrForm>\n <clr-input-container class=\"input-container\">\n <label hidden></label>\n <input\n #searchInput\n class=\"clr-col-md-12\"\n clrInput\n clrSearch\n [placeholder]=\"searchRequest?.placeholder ?? ''\"\n type=\"text\"\n name=\"search\"\n (keydown.Space)=\"preventDropdownActions($event)\"\n [formControl]=\"searchControl\"\n />\n <clr-control-helper *ngIf=\"displayWarning\" class=\"min-text-warning\">{{\n searchRequest?.minCharacterText ??
|
|
63
|
+
args: [{ selector: 'clr-location-bar-search', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"clr-col-md-12 search-wrapper\">\n <form clrForm>\n <clr-input-container class=\"input-container\">\n <label hidden></label>\n <input\n #searchInput\n class=\"clr-col-md-12\"\n clrInput\n clrSearch\n [placeholder]=\"searchRequest?.placeholder ?? ''\"\n type=\"text\"\n name=\"search\"\n (keydown.Space)=\"preventDropdownActions($event)\"\n [formControl]=\"searchControl\"\n />\n <clr-control-helper *ngIf=\"displayWarning\" class=\"min-text-warning\">{{\n searchRequest?.minCharacterText ?? getMinCharactersText()\n }}</clr-control-helper>\n </clr-input-container>\n </form>\n</div>\n", styles: ["input::placeholder{font-size:.55rem}.search-wrapper{margin-bottom:.3rem}.input-container{margin-top:0}.min-text-warning{color:var(--cds-global-color-construction-800)}\n"] }]
|
|
63
64
|
}], propDecorators: { searchRequest: [{
|
|
64
65
|
type: Input,
|
|
65
66
|
args: ['clrSearchRequest']
|
|
@@ -70,4 +71,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
70
71
|
type: ViewChild,
|
|
71
72
|
args: ['searchInput', { static: true }]
|
|
72
73
|
}] } });
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYXRpb24tYmFyLXNlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY2xyLWFkZG9ucy9sb2NhdGlvbi1iYXIvbG9jYXRpb24tYmFyLXNlYXJjaC9sb2NhdGlvbi1iYXItc2VhcmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9jbHItYWRkb25zL2xvY2F0aW9uLWJhci9sb2NhdGlvbi1iYXItc2VhcmNoL2xvY2F0aW9uLWJhci1zZWFyY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBUTdDLE1BQU0sT0FBTywwQkFBMEI7SUFOdkM7UUFPRSxrQkFBYSxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBQzNCLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBRXZCLDJCQUFzQixHQUFXLENBQUMsQ0FBQztRQUlqQixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7S0FrRHpFO0lBOUNDLFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVPLFFBQVEsQ0FBQyxJQUFZO1FBQzNCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRCxJQUFJLGFBQWEsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzQyxDQUFDO0lBQ0gsQ0FBQztJQUVPLGtCQUFrQixDQUFDLElBQVk7UUFDckMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7UUFDdkYsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbEUsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3BFLENBQUM7SUFDSCxDQUFDO0lBRU0sVUFBVTtRQUNmLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxjQUFjLENBQUMsSUFBWTtRQUNqQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO1FBQzNELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLGFBQWEsS0FBSyxTQUFTO1lBQ3BELENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWE7WUFDbEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztJQUNsQyxDQUFDO0lBRUQsc0JBQXNCLENBQUMsS0FBWTtRQUNqQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixPQUFPLFFBQVEsSUFBSSxDQUFDLGFBQWEsRUFBRSxhQUFhLElBQUksSUFBSSxDQUFDLHNCQUFzQix5QkFBeUIsQ0FBQztJQUMzRyxDQUFDOzhHQTFEVSwwQkFBMEI7a0dBQTFCLDBCQUEwQiw0U0NuQnZDLDZyQkFxQkE7OzJGREZhLDBCQUEwQjtrQkFOdEMsU0FBUzsrQkFDRSx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU07OEJBU3BCLGFBQWE7c0JBQXZDLEtBQUs7dUJBQUMsa0JBQWtCO2dCQUVFLGVBQWU7c0JBQXpDLE1BQU07dUJBQUMsaUJBQWlCO2dCQUVtQixXQUFXO3NCQUF0RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlYXJjaFJlcXVlc3RNb2RlbCB9IGZyb20gJy4uL2xvY2F0aW9uLWJhci5zZWFyY2gubW9kZWwnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nsci1sb2NhdGlvbi1iYXItc2VhcmNoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvY2F0aW9uLWJhci1zZWFyY2guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnbG9jYXRpb24tYmFyLXNlYXJjaC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTG9jYXRpb25CYXJTZWFyY2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBzZWFyY2hDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnKTtcbiAgcHJldmlvdXNWYWx1ZTogc3RyaW5nID0gJyc7XG4gIGRpc3BsYXlXYXJuaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcmVhZG9ubHkgTUlOX0NIQVJBQ1RFUlNfREVGQVVMVDogbnVtYmVyID0gMztcblxuICBASW5wdXQoJ2NsclNlYXJjaFJlcXVlc3QnKSBzZWFyY2hSZXF1ZXN0OiBTZWFyY2hSZXF1ZXN0TW9kZWw7XG5cbiAgQE91dHB1dCgnc2VhcmNoUGVyZm9ybWVkJykgc2VhcmNoUGVyZm9ybWVkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBzZWFyY2hJbnB1dDogRWxlbWVudFJlZjtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNlYXJjaENvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh0ZXh0ID0+IHRoaXMub25TZWFyY2godGV4dCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBvblNlYXJjaCh0ZXh0OiBzdHJpbmcpIHtcbiAgICBjb25zdCB2YWxpZGF0ZWRUZXh0ID0gdGhpcy52YWxpZGF0ZVNlYXJjaFRleHQodGV4dCk7XG4gICAgaWYgKHZhbGlkYXRlZFRleHQgIT09IG51bGwpIHtcbiAgICAgIHRoaXMuc2VhcmNoUGVyZm9ybWVkLmVtaXQodmFsaWRhdGVkVGV4dCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVNlYXJjaFRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBpc0RlbGV0aW9uID0gdGhpcy5pc1RleHREZWxldGlvbih0ZXh0KTtcbiAgICB0aGlzLmRpc3BsYXlXYXJuaW5nID0gdGV4dC5sZW5ndGggPCB0aGlzLmdldE1pblNlYXJjaFRleHRMZW5ndGgoKSAmJiB0ZXh0Lmxlbmd0aCAhPT0gMDtcbiAgICBpZiAoaXNEZWxldGlvbikge1xuICAgICAgcmV0dXJuIHRleHQubGVuZ3RoID49IHRoaXMuZ2V0TWluU2VhcmNoVGV4dExlbmd0aCgpID8gdGV4dCA6ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGV4dC5sZW5ndGggPj0gdGhpcy5nZXRNaW5TZWFyY2hUZXh0TGVuZ3RoKCkgPyB0ZXh0IDogbnVsbDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9jdXNJbnB1dCgpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2VhcmNoSW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1RleHREZWxldGlvbih0ZXh0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBpc0RlbGV0aW9uID0gdGV4dC5sZW5ndGggPCB0aGlzLnByZXZpb3VzVmFsdWUubGVuZ3RoO1xuICAgIHRoaXMucHJldmlvdXNWYWx1ZSA9IHRleHQ7XG4gICAgcmV0dXJuIGlzRGVsZXRpb247XG4gIH1cblxuICBwcml2YXRlIGdldE1pblNlYXJjaFRleHRMZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hSZXF1ZXN0Py5taW5DaGFyYWN0ZXJzICE9PSB1bmRlZmluZWRcbiAgICAgID8gdGhpcy5zZWFyY2hSZXF1ZXN0Lm1pbkNoYXJhY3RlcnNcbiAgICAgIDogdGhpcy5NSU5fQ0hBUkFDVEVSU19ERUZBVUxUO1xuICB9XG5cbiAgcHJldmVudERyb3Bkb3duQWN0aW9ucyhldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIGdldE1pbkNoYXJhY3RlcnNUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBUeXBlICR7dGhpcy5zZWFyY2hSZXF1ZXN0Py5taW5DaGFyYWN0ZXJzID8/IHRoaXMuTUlOX0NIQVJBQ1RFUlNfREVGQVVMVH0rIGNoYXJhY3RlcnMgdG8gc2VhcmNoLmA7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjbHItY29sLW1kLTEyIHNlYXJjaC13cmFwcGVyXCI+XG4gIDxmb3JtIGNsckZvcm0+XG4gICAgPGNsci1pbnB1dC1jb250YWluZXIgY2xhc3M9XCJpbnB1dC1jb250YWluZXJcIj5cbiAgICAgIDxsYWJlbCBoaWRkZW4+PC9sYWJlbD5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjc2VhcmNoSW5wdXRcbiAgICAgICAgY2xhc3M9XCJjbHItY29sLW1kLTEyXCJcbiAgICAgICAgY2xySW5wdXRcbiAgICAgICAgY2xyU2VhcmNoXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJzZWFyY2hSZXF1ZXN0Py5wbGFjZWhvbGRlciA/PyAnJ1wiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgbmFtZT1cInNlYXJjaFwiXG4gICAgICAgIChrZXlkb3duLlNwYWNlKT1cInByZXZlbnREcm9wZG93bkFjdGlvbnMoJGV2ZW50KVwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJzZWFyY2hDb250cm9sXCJcbiAgICAgIC8+XG4gICAgICA8Y2xyLWNvbnRyb2wtaGVscGVyICpuZ0lmPVwiZGlzcGxheVdhcm5pbmdcIiBjbGFzcz1cIm1pbi10ZXh0LXdhcm5pbmdcIj57e1xuICAgICAgICBzZWFyY2hSZXF1ZXN0Py5taW5DaGFyYWN0ZXJUZXh0ID8/IGdldE1pbkNoYXJhY3RlcnNUZXh0KClcbiAgICAgIH19PC9jbHItY29udHJvbC1oZWxwZXI+XG4gICAgPC9jbHItaW5wdXQtY29udGFpbmVyPlxuICA8L2Zvcm0+XG48L2Rpdj5cbiJdfQ==
|