@porscheinformatik/clr-addons 17.5.4 → 17.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,16 +1,19 @@
1
1
  /*
2
- * Copyright (c) 2018-2020 Porsche Informatik. All Rights Reserved.
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
- this.historyElements = this.historyService.getHistoryDisplay(this.username, this.context);
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: "17.3.0", ngImport: i0, type: ClrHistoryPinned, deps: [{ token: i1.ClrHistoryService }], target: i0.ɵɵFactoryTarget.Component }); }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", 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: "17.3.0", 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: "17.3.0", 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 }], propDecorators: { username: [{
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: "17.3.0", ngImpor
46
57
  type: Input,
47
58
  args: ['clrDomain']
48
59
  }] } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS1waW5uZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xyLWFkZG9ucy9oaXN0b3J5L2hpc3RvcnktcGlubmVkLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2Nsci1hZGRvbnMvaGlzdG9yeS9oaXN0b3J5LXBpbm5lZC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFPdEQsTUFBTSxPQUFPLGdCQUFnQjtJQVkzQixZQUFvQixjQUFpQztRQUFqQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFQckQ7O1dBRUc7UUFDSCxvQkFBZSxHQUFzQixFQUFFLENBQUM7UUFDeEMsV0FBTSxHQUFHLEtBQUssQ0FBQztJQUd5QyxDQUFDO0lBRXpELFFBQVE7UUFDTixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFMUYsSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ25GLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3RSxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztZQUN0QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMxQyxDQUFDOzhHQTVCVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQixrTENmN0Isb1hBU0E7OzJGRE1hLGdCQUFnQjtrQkFKNUIsU0FBUzsrQkFDRSxvQkFBb0I7c0ZBSVIsUUFBUTtzQkFBN0IsS0FBSzt1QkFBQyxhQUFhO2dCQUNDLE9BQU87c0JBQTNCLEtBQUs7dUJBQUMsWUFBWTtnQkFDQyxNQUFNO3NCQUF6QixLQUFLO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjAgUG9yc2NoZSBJbmZvcm1hdGlrLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xySGlzdG9yeU1vZGVsIH0gZnJvbSAnLi9oaXN0b3J5LW1vZGVsLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDbHJIaXN0b3J5U2VydmljZSB9IGZyb20gJy4vaGlzdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItaGlzdG9yeS1waW5uZWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaGlzdG9yeS1waW5uZWQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIENsckhpc3RvcnlQaW5uZWQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgnY2xyVXNlcm5hbWUnKSB1c2VybmFtZTogc3RyaW5nO1xuICBASW5wdXQoJ2NsckNvbnRleHQnKSBjb250ZXh0OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICBASW5wdXQoJ2NsckRvbWFpbicpIGRvbWFpbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYXJyYXkgb2YgaGlzdG9yeSBlbGVtZW50cyB0byBiZSBkaXNwbGF5ZWQuXG4gICAqL1xuICBoaXN0b3J5RWxlbWVudHM6IENsckhpc3RvcnlNb2RlbFtdID0gW107XG4gIGFjdGl2ZSA9IGZhbHNlO1xuICBwcml2YXRlIHNldHRpbmdzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBoaXN0b3J5U2VydmljZTogQ2xySGlzdG9yeVNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5oaXN0b3J5RWxlbWVudHMgPSB0aGlzLmhpc3RvcnlTZXJ2aWNlLmdldEhpc3RvcnlEaXNwbGF5KHRoaXMudXNlcm5hbWUsIHRoaXMuY29udGV4dCk7XG5cbiAgICB0aGlzLmhpc3RvcnlTZXJ2aWNlLmluaXRpYWxpemVDb29raWVTZXR0aW5ncyh0aGlzLnVzZXJuYW1lLCB0aGlzLmRvbWFpbik7XG4gICAgdGhpcy5zZXR0aW5nc1N1YnNjcmlwdGlvbiA9IHRoaXMuaGlzdG9yeVNlcnZpY2UuY29va2llU2V0dGluZ3MkLnN1YnNjcmliZShzZXR0aW5ncyA9PiB7XG4gICAgICBjb25zdCBzZXR0aW5nID0gc2V0dGluZ3MuZmluZChzZXR0aW5nID0+IHNldHRpbmcudXNlcm5hbWUgPT09IHRoaXMudXNlcm5hbWUpO1xuICAgICAgaWYgKHNldHRpbmcpIHtcbiAgICAgICAgdGhpcy5hY3RpdmUgPSBzZXR0aW5nLmhpc3RvcnlQaW5uZWQ7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnNldHRpbmdzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxuYXYgYXJpYS1sYWJlbD1cImhpc3RvcnlcIiBjbGFzcz1cImhpc3RvcnktY29udGFpbmVyXCIgKm5nSWY9XCJoaXN0b3J5RWxlbWVudHMubGVuZ3RoICYmIGFjdGl2ZVwiPlxuICA8b2wgY2xhc3M9XCJoaXN0b3J5XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaGlzdG9yeUl0ZW0gb2YgaGlzdG9yeUVsZW1lbnRzXCI+XG4gICAgICA8bGkgKm5nSWY9XCJoaXN0b3J5SXRlbS51cmxcIiBjbGFzcz1cImhpc3RvcnktaXRlbVwiPlxuICAgICAgICA8YSBbaHJlZl09XCJoaXN0b3J5SXRlbS51cmxcIj57e2hpc3RvcnlJdGVtLnRpdGxlfX08L2E+XG4gICAgICA8L2xpPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L29sPlxuPC9uYXY+XG4iXX0=
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS1waW5uZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xyLWFkZG9ucy9oaXN0b3J5L2hpc3RvcnktcGlubmVkLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2Nsci1hZGRvbnMvaGlzdG9yeS9oaXN0b3J5LXBpbm5lZC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7O0FBTXZFLE1BQU0sT0FBTyxnQkFBZ0I7SUFZM0IsWUFDVSxjQUFpQyxFQUNLLGVBQWdDO1FBRHRFLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNLLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQVRoRjs7V0FFRztRQUNILG9CQUFlLEdBQXNCLEVBQUUsQ0FBQztRQUN4QyxXQUFNLEdBQUcsS0FBSyxDQUFDO0lBTVosQ0FBQztJQUVKLFFBQVE7UUFDTixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWU7WUFDekMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMseUJBQXlCLENBQUMsZUFBZSxDQUFDO1lBQ2pFLENBQUMsQ0FBQyxlQUFlLENBQUM7UUFFcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ25GLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3RSxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztZQUN0QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMxQyxDQUFDOzhHQWxDVSxnQkFBZ0IsbURBY2pCLGdCQUFnQjtrR0FkZixnQkFBZ0Isa0xDaEI3QixvWEFTQTs7MkZET2EsZ0JBQWdCO2tCQUo1QixTQUFTOytCQUNFLG9CQUFvQjs7MEJBaUIzQixNQUFNOzJCQUFDLGdCQUFnQjs7MEJBQUcsUUFBUTt5Q0FiZixRQUFRO3NCQUE3QixLQUFLO3VCQUFDLGFBQWE7Z0JBQ0MsT0FBTztzQkFBM0IsS0FBSzt1QkFBQyxZQUFZO2dCQUNDLE1BQU07c0JBQXpCLEtBQUs7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyNCBQb3JzY2hlIEluZm9ybWF0aWsuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDbHJIaXN0b3J5TW9kZWwgfSBmcm9tICcuL2hpc3RvcnktbW9kZWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IENsckhpc3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi9oaXN0b3J5LnNlcnZpY2UnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBISVNUT1JZX1BST1ZJREVSLCBIaXN0b3J5UHJvdmlkZXIgfSBmcm9tICcuL2hpc3RvcnkucHJvdmlkZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItaGlzdG9yeS1waW5uZWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaGlzdG9yeS1waW5uZWQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIENsckhpc3RvcnlQaW5uZWQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgnY2xyVXNlcm5hbWUnKSB1c2VybmFtZTogc3RyaW5nO1xuICBASW5wdXQoJ2NsckNvbnRleHQnKSBjb250ZXh0OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICBASW5wdXQoJ2NsckRvbWFpbicpIGRvbWFpbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYXJyYXkgb2YgaGlzdG9yeSBlbGVtZW50cyB0byBiZSBkaXNwbGF5ZWQuXG4gICAqL1xuICBoaXN0b3J5RWxlbWVudHM6IENsckhpc3RvcnlNb2RlbFtdID0gW107XG4gIGFjdGl2ZSA9IGZhbHNlO1xuICBwcml2YXRlIHNldHRpbmdzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBoaXN0b3J5U2VydmljZTogQ2xySGlzdG9yeVNlcnZpY2UsXG4gICAgQEluamVjdChISVNUT1JZX1BST1ZJREVSKSBAT3B0aW9uYWwoKSBwcml2YXRlIGhpc3RvcnlQcm92aWRlcjogSGlzdG9yeVByb3ZpZGVyXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBoaXN0b3J5RWxlbWVudHMgPSB0aGlzLmhpc3RvcnlTZXJ2aWNlLmdldEhpc3RvcnlEaXNwbGF5KHRoaXMudXNlcm5hbWUsIHRoaXMuY29udGV4dCk7XG4gICAgdGhpcy5oaXN0b3J5RWxlbWVudHMgPSB0aGlzLmhpc3RvcnlQcm92aWRlclxuICAgICAgPyB0aGlzLmhpc3RvcnlQcm92aWRlci5nZXRNb2RpZmllZEhpc3RvcnlFbnRyaWVzKGhpc3RvcnlFbGVtZW50cylcbiAgICAgIDogaGlzdG9yeUVsZW1lbnRzO1xuXG4gICAgdGhpcy5oaXN0b3J5U2VydmljZS5pbml0aWFsaXplQ29va2llU2V0dGluZ3ModGhpcy51c2VybmFtZSwgdGhpcy5kb21haW4pO1xuICAgIHRoaXMuc2V0dGluZ3NTdWJzY3JpcHRpb24gPSB0aGlzLmhpc3RvcnlTZXJ2aWNlLmNvb2tpZVNldHRpbmdzJC5zdWJzY3JpYmUoc2V0dGluZ3MgPT4ge1xuICAgICAgY29uc3Qgc2V0dGluZyA9IHNldHRpbmdzLmZpbmQoc2V0dGluZyA9PiBzZXR0aW5nLnVzZXJuYW1lID09PSB0aGlzLnVzZXJuYW1lKTtcbiAgICAgIGlmIChzZXR0aW5nKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gc2V0dGluZy5oaXN0b3J5UGlubmVkO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zZXR0aW5nc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8bmF2IGFyaWEtbGFiZWw9XCJoaXN0b3J5XCIgY2xhc3M9XCJoaXN0b3J5LWNvbnRhaW5lclwiICpuZ0lmPVwiaGlzdG9yeUVsZW1lbnRzLmxlbmd0aCAmJiBhY3RpdmVcIj5cbiAgPG9sIGNsYXNzPVwiaGlzdG9yeVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGhpc3RvcnlJdGVtIG9mIGhpc3RvcnlFbGVtZW50c1wiPlxuICAgICAgPGxpICpuZ0lmPVwiaGlzdG9yeUl0ZW0udXJsXCIgY2xhc3M9XCJoaXN0b3J5LWl0ZW1cIj5cbiAgICAgICAgPGEgW2hyZWZdPVwiaGlzdG9yeUl0ZW0udXJsXCI+e3toaXN0b3J5SXRlbS50aXRsZX19PC9hPlxuICAgICAgPC9saT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9vbD5cbjwvbmF2PlxuIl19
@@ -1,22 +1,25 @@
1
1
  /*
2
- * Copyright (c) 2018-2023 Porsche Informatik. All Rights Reserved.
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
- this.historyElements = this.historyService.getHistoryDisplay(this.username, this.context);
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: "17.3.0", ngImport: i0, type: ClrHistory, deps: [{ token: i1.ClrHistoryService }], target: i0.ɵɵFactoryTarget.Component }); }
55
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", 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: "17.3.0", 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: "17.3.0", 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 }], propDecorators: { username: [{
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: "17.3.0", ngImpor
77
88
  type: Input,
78
89
  args: ['clrPosition']
79
90
  }] } });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbHItYWRkb25zL2hpc3RvcnkvaGlzdG9yeS50cyIsIi4uLy4uLy4uLy4uL3NyYy9jbHItYWRkb25zL2hpc3RvcnkvaGlzdG9yeS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQUV0RSxZQUFZLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztBQU05QyxNQUFNLE9BQU8sVUFBVTtJQWlCckIsWUFBb0IsY0FBaUM7UUFBakMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBZDlCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDWixtQkFBYyxHQUFHLFNBQVMsQ0FBQztRQUM5QixnQkFBVyxHQUFHLGFBQWEsQ0FBQztRQUMxQixrQkFBYSxHQUFHLGVBQWUsQ0FBQztRQUVyQyxhQUFRLEdBQUcsY0FBYyxDQUFDO1FBRWhEOztXQUVHO1FBQ0gsb0JBQWUsR0FBc0IsRUFBRSxDQUFDO1FBQ3hDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ2IsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFZSxDQUFDO0lBRXpELFFBQVE7UUFDTixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFMUYsSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN4RixJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDakcsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQXdCO1FBQzdCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFDckMsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxRSxDQUFDOzhHQXZDVSxVQUFVO2tHQUFWLFVBQVUsMlpDbkJ2QixnNUJBaUJBOzsyRkRFYSxVQUFVO2tCQUp0QixTQUFTOytCQUNFLGFBQWE7c0ZBSUQsUUFBUTtzQkFBN0IsS0FBSzt1QkFBQyxhQUFhO2dCQUNDLE9BQU87c0JBQTNCLEtBQUs7dUJBQUMsWUFBWTtnQkFDSSxTQUFTO3NCQUEvQixLQUFLO3VCQUFDLGNBQWM7Z0JBQ08sY0FBYztzQkFBekMsS0FBSzt1QkFBQyxtQkFBbUI7Z0JBQ0QsV0FBVztzQkFBbkMsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBQ0ksYUFBYTtzQkFBdkMsS0FBSzt1QkFBQyxrQkFBa0I7Z0JBQ0wsTUFBTTtzQkFBekIsS0FBSzt1QkFBQyxXQUFXO2dCQUNJLFFBQVE7c0JBQTdCLEtBQUs7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMyBQb3JzY2hlIEluZm9ybWF0aWsuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDbHJIaXN0b3J5TW9kZWwgfSBmcm9tICcuL2hpc3RvcnktbW9kZWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IENsckhpc3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi9oaXN0b3J5LnNlcnZpY2UnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgYW5nbGVJY29uLCBDbGFyaXR5SWNvbnMsIGhpc3RvcnlJY29uIH0gZnJvbSAnQGNkcy9jb3JlL2ljb24nO1xuXG5DbGFyaXR5SWNvbnMuYWRkSWNvbnMoaGlzdG9yeUljb24sIGFuZ2xlSWNvbik7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nsci1oaXN0b3J5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hpc3RvcnkuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIENsckhpc3RvcnkgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgnY2xyVXNlcm5hbWUnKSB1c2VybmFtZTogc3RyaW5nO1xuICBASW5wdXQoJ2NsckNvbnRleHQnKSBjb250ZXh0OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICBASW5wdXQoJ2NsclBpbkFjdGl2ZScpIHBpbkFjdGl2ZSA9IHRydWU7XG4gIEBJbnB1dCgnY2xyRHJvcGRvd25IZWFkZXInKSBkcm9wZG93bkhlYWRlciA9ICdIaXN0b3J5JztcbiAgQElucHV0KCdjbHJEcm9wZG93blBpbicpIGRyb3Bkb3duUGluID0gJ1BpbiBIaXN0b3J5JztcbiAgQElucHV0KCdjbHJEcm9wZG93blVucGluJykgZHJvcGRvd25VbnBpbiA9ICdVbnBpbiBIaXN0b3J5JztcbiAgQElucHV0KCdjbHJEb21haW4nKSBkb21haW46IHN0cmluZztcbiAgQElucHV0KCdjbHJQb3NpdGlvbicpIHBvc2l0aW9uID0gJ2JvdHRvbS1yaWdodCc7XG5cbiAgLyoqXG4gICAqIFRoZSBhcnJheSBvZiBoaXN0b3J5IGVsZW1lbnRzIHRvIGJlIGRpc3BsYXllZC5cbiAgICovXG4gIGhpc3RvcnlFbGVtZW50czogQ2xySGlzdG9yeU1vZGVsW10gPSBbXTtcbiAgcGluQWN0aXZhdGVkID0gZmFsc2U7XG4gIHByaXZhdGUgb25EZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBoaXN0b3J5U2VydmljZTogQ2xySGlzdG9yeVNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5oaXN0b3J5RWxlbWVudHMgPSB0aGlzLmhpc3RvcnlTZXJ2aWNlLmdldEhpc3RvcnlEaXNwbGF5KHRoaXMudXNlcm5hbWUsIHRoaXMuY29udGV4dCk7XG5cbiAgICB0aGlzLmhpc3RvcnlTZXJ2aWNlLmluaXRpYWxpemVDb29raWVTZXR0aW5ncyh0aGlzLnVzZXJuYW1lLCB0aGlzLmRvbWFpbik7XG4gICAgdGhpcy5oaXN0b3J5U2VydmljZS5jb29raWVTZXR0aW5ncyQucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKHNldHRpbmdzID0+IHtcbiAgICAgIHRoaXMucGluQWN0aXZhdGVkID0gc2V0dGluZ3MuZmluZChzZXR0aW5nID0+IHNldHRpbmcudXNlcm5hbWUgPT09IHRoaXMudXNlcm5hbWUpLmhpc3RvcnlQaW5uZWQ7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uRGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgc2VsZWN0KGhpc3Rvcnk6IENsckhpc3RvcnlNb2RlbCk6IHZvaWQge1xuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gaGlzdG9yeS51cmw7XG4gIH1cblxuICB0b2dnbGVQaW5IaXN0b3J5KCk6IHZvaWQge1xuICAgIHRoaXMuaGlzdG9yeVNlcnZpY2Uuc2V0SGlzdG9yeVBpbm5lZCh0aGlzLnVzZXJuYW1lLCAhdGhpcy5waW5BY3RpdmF0ZWQpO1xuICB9XG59XG4iLCI8Y2xyLWRyb3Bkb3duPlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4taWNvbiBidG4tbGlua1wiIGNsckRyb3Bkb3duVHJpZ2dlcj5cbiAgICA8Y2RzLWljb24gc2hhcGU9XCJoaXN0b3J5XCIgc2l6ZT1cIjI0XCI+PC9jZHMtaWNvbj5cbiAgICA8Y2RzLWljb24gc2hhcGU9XCJhbmdsZVwiIGRpcmVjdGlvbj1cImRvd25cIiBzaXplPVwiMTJcIj48L2Nkcy1pY29uPlxuICA8L2J1dHRvbj5cbiAgPGNsci1kcm9wZG93bi1tZW51IFtjbHJQb3NpdGlvbl09XCJwb3NpdGlvblwiICpjbHJJZk9wZW4+XG4gICAgPGxhYmVsIGNsYXNzPVwiZHJvcGRvd24taGVhZGVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+e3tkcm9wZG93bkhlYWRlcn19PC9sYWJlbD5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbHJEcm9wZG93bkl0ZW0gKm5nRm9yPVwibGV0IGhpc3Rvcnkgb2YgaGlzdG9yeUVsZW1lbnRzXCIgKGNsaWNrKT1cInNlbGVjdChoaXN0b3J5KVwiPlxuICAgICAge3toaXN0b3J5LnRpdGxlfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8ZGl2ICpuZ0lmPVwicGluQWN0aXZlXCIgY2xhc3M9XCJkcm9wZG93bi1kaXZpZGVyXCIgcm9sZT1cInNlcGFyYXRvclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZGl2PlxuICAgIDxidXR0b24gY2xyRHJvcGRvd25JdGVtIChjbGljayk9XCJ0b2dnbGVQaW5IaXN0b3J5KClcIj5cbiAgICAgIDxzcGFuICpuZ0lmPVwicGluQWN0aXZlICYmICFwaW5BY3RpdmF0ZWRcIj57e2Ryb3Bkb3duUGlufX08L3NwYW4+XG4gICAgICA8c3BhbiAqbmdJZj1cInBpbkFjdGl2ZSAmJiBwaW5BY3RpdmF0ZWRcIj57e2Ryb3Bkb3duVW5waW59fTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9jbHItZHJvcGRvd24tbWVudT5cbjwvY2xyLWRyb3Bkb3duPlxuIl19
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
@@ -81,13 +81,6 @@ export class ClrHistoryService {
81
81
  }
82
82
  else {
83
83
  entries = this.reduceSize(entries);
84
- // encode title & pagename to be cookie saving save
85
- if (entries && entries.length > 0) {
86
- entries.forEach(entry => {
87
- entry.title = encodeURI(entry.title);
88
- entry.pageName = encodeURI(entry.pageName);
89
- });
90
- }
91
84
  this.setCookie(this.cookieName, this.encode(entries), domain);
92
85
  }
93
86
  }
@@ -173,7 +166,7 @@ export class ClrHistoryService {
173
166
  return cookieEntries;
174
167
  }
175
168
  encode(content) {
176
- const jsonString = btoa(encodeURIComponent(JSON.stringify(content)));
169
+ const jsonString = btoa(JSON.stringify(content));
177
170
  return jsonString.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '!');
178
171
  }
179
172
  decode(content) {
@@ -233,4 +226,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
233
226
  }] }, { type: i1.HttpClient, decorators: [{
234
227
  type: Optional
235
228
  }] }] });
236
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Nsci1hZGRvbnMvaGlzdG9yeS9oaXN0b3J5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBSUwsaUNBQWlDLEdBQ2xDLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQUdsRCxNQUFNLE9BQU8saUJBQWlCO0lBVzVCLFlBQ2lFLHNCQUE4QixFQUN6RSxVQUFzQjtRQURxQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQVE7UUFDekUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVpyQyxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUE0QixFQUFFLENBQUMsQ0FBQztRQUM1RSxlQUFVLEdBQUcsYUFBYSxDQUFDO1FBQzNCLHVCQUFrQixHQUFHLHNCQUFzQixDQUFDO1FBRzVDLDBCQUEwQjtRQUNsQixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLDBDQUEwQztRQUNsQyxlQUFVLEdBQUcsR0FBRyxDQUFDO1FBTXZCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUMsWUFBNkIsRUFBRSxNQUFlO1FBQzVELElBQUksQ0FBQyxpQkFBaUIsQ0FB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LFVBQVU7OzBCQWFOLE1BQU07MkJBQUMsaUNBQWlDOzswQkFBRyxRQUFROzswQkFDbkQsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyNCBQb3JzY2hlIEluZm9ybWF0aWsuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENsckhpc3RvcnlNb2RlbCxcbiAgQ2xySGlzdG9yeU5vdGlmaWNhdGlvbk1vZGVsLFxuICBDbHJIaXN0b3J5U2V0dGluZ3NNb2RlbCxcbiAgSElTVE9SWV9OT1RJRklDQVRJT05fVVJMX1BST1ZJREVSLFxufSBmcm9tICcuL2hpc3RvcnktbW9kZWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENsckhpc3RvcnlTZXJ2aWNlIHtcbiAgcHVibGljIGNvb2tpZVNldHRpbmdzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q2xySGlzdG9yeVNldHRpbmdzTW9kZWxbXT4oW10pO1xuICBjb29raWVOYW1lID0gJ2Nsci5oaXN0b3J5JztcbiAgY29va2llTmFtZVNldHRpbmdzID0gJ2Nsci5oaXN0b3J5LnNldHRpbmdzJztcbiAgcHJpdmF0ZSBleHBpcnlEYXRlOiBEYXRlO1xuXG4gIC8vIG1heG1pbXVtIGhpc3RvcnkgbGVuZ3RoXG4gIHByaXZhdGUgbWF4U2l6ZSA9IDEwMjQ7XG4gIC8vIG1heGltdW0gdXJsIGxlbmd0aCBmb3IgdXNhZ2UgaW4gaGlzdG9yeVxuICBwcml2YXRlIG1heFVybFNpemUgPSAyNTY7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChISVNUT1JZX05PVElGSUNBVElPTl9VUkxfUFJPVklERVIpIEBPcHRpb25hbCgpIHByaXZhdGUgaGlzdG9yeU5vdGlmaWNhdGlvblVybDogc3RyaW5nLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudFxuICApIHtcbiAgICB0aGlzLmV4cGlyeURhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIHRoaXMuZXhwaXJ5RGF0ZS5zZXRUaW1lKHRoaXMuZXhwaXJ5RGF0ZS5nZXRUaW1lKCkgKyAzNjUgKiAyNCAqIDYwICogNjAgKiAxMDAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBuZXcgaGlzdG9yeSBlbnRyeVxuICAgKiBAcGFyYW0gaGlzdG9yeUVudHJ5IFRoZSBlbnRyeSB0byBiZSBhZGRlZFxuICAgKiBAcGFyYW0gZG9tYWluIFRoZSBvcHRpb25hbCBkb21haW4gcGFyYW0gd2hlcmUgdGhlIGNvb2tpZSBpcyBzdG9yZWRcbiAgICogQHJldHVybnMgdHJ1ZSB3aGVuIGVudHJ5IGFkZGVkLCBvdGhlcndpc2UgZmFsc2UgaXMgcmV0dXJuZWRcbiAgICovXG4gIGFkZEhpc3RvcnlFbnRyeShoaXN0b3J5RW50cnk6IENsckhpc3RvcnlNb2RlbCwgZG9tYWluPzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdGhpcy5ub3RpZnlFeHRlcm5hbFVybChoaXN0b3J5RW50cnkpO1xuICAgIHRoaXMucmVtb3ZlRnJvbUhpc3RvcnkoaGlzdG9yeUVudHJ5KTtcbiAgICBsZXQgaGlzdG9yeSA9IHRoaXMuZ2V0SGlzdG9yeShoaXN0b3J5RW50cnkudXNlcm5hbWUsIGhpc3RvcnlFbnRyeS5jb250ZXh0KTtcblxuICAgIC8qIG9ubHkgYWRkIHRvIGhpc3RvcnkgaW4gY2FzZSB1cmwgZG9lcyBub3QgZXhjZWVkIG1heFVybFNpemUgY2hhcmFjdGVycyAqL1xuICAgIGlmIChoaXN0b3J5RW50cnkudXJsICYmIGhpc3RvcnlFbnRyeS51cmwubGVuZ3RoIDwgdGhpcy5tYXhVcmxTaXplKSB7XG4gICAgICAvKiBhZGQgaXQgYXMgbGFzdCBlbGVtZW50ICovXG4gICAgICBoaXN0b3J5LnB1c2goaGlzdG9yeUVudHJ5KTtcbiAgICAgIC8qIHN1cHBvcnQgYSBtYXhpbXVtIG9mIDQgcGFnZXMgaW4gaGlzdG9yeSAqL1xuICAgICAgaGlzdG9yeSA9IGhpc3Rvcnkuc2xpY2UoLTQpO1xuICAgICAgdGhpcy5zZXRIaXN0b3J5KGhpc3RvcnksIGRvbWFpbik7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZ2V0SGlzdG9yeURpc3BsYXkodXNlcm5hbWU6IHN0cmluZywgY29udGV4dDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSk6IENsckhpc3RvcnlNb2RlbFtdIHtcbiAgICBjb25zdCBoaXN0b3J5ID0gdGhpcy5nZXRIaXN0b3J5KHVzZXJuYW1lLCBjb250ZXh0KTtcbiAgICBpZiAoaGlzdG9yeS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBjdXJyZW50UGFnZVRpdGxlID0gaGlzdG9yeVtoaXN0b3J5Lmxlbmd0aCAtIDFdLnRpdGxlO1xuICAgICAgY29uc3QgdG9EaXNwbGF5OiBDbHJIaXN0b3J5TW9kZWxbXSA9IFtdO1xuICAgICAgY29uc3QgYWxyZWFkeURpc3BsYXk6IHN0cmluZ1tdID0gW107XG5cbiAgICAgIGZvciAobGV0IGkgPSBoaXN0b3J5Lmxlbmd0aCAtIDE7IGkgPj0gMCAmJiBhbHJlYWR5RGlzcGxheS5sZW5ndGggPCA0OyBpLS0pIHtcbiAgICAgICAgaWYgKCFhbHJlYWR5RGlzcGxheS5pbmNsdWRlcyhoaXN0b3J5W2ldLnRpdGxlKSAmJiBoaXN0b3J5W2ldLnRpdGxlICE9PSBjdXJyZW50UGFnZVRpdGxlKSB7XG4gICAgICAgICAgYWxyZWFkeURpc3BsYXkucHVzaChoaXN0b3J5W2ldLnRpdGxlKTtcbiAgICAgICAgICB0b0Rpc3BsYXkucHVzaChoaXN0b3J5W2ldKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdG9EaXNwbGF5LnJldmVyc2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGhpc3Rvcnk7XG4gICAgfVxuICB9XG5cbiAgZ2V0SGlzdG9yeSh1c2VybmFtZTogc3RyaW5nLCBjb250ZXh0OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KTogQ2xySGlzdG9yeU1vZGVsW10ge1xuICAgIGNvbnN0IGhpc3Rvcnk6IENsckhpc3RvcnlNb2RlbFtdID0gdGhpcy5nZXRDb29raWVCeU5hbWUodGhpcy5jb29raWVOYW1lKTtcbiAgICBpZiAoIWhpc3RvcnkpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgcmV0dXJuIGhpc3RvcnkuZmlsdGVyKGVsZW1lbnQgPT4gdGhpcy5jaGVja0VxdWFsQ29udGV4dChlbGVtZW50LCBjb250ZXh0KSAmJiBlbGVtZW50LnVzZXJuYW1lID09PSB1c2VybmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGhpc3RvcnlcbiAgICogQHBhcmFtIGVudHJpZXNcbiAgICogQHBhcmFtIGRvbWFpblxuICAgKi9cbiAgcHJpdmF0ZSBzZXRIaXN0b3J5KGVudHJpZXM6IENsckhpc3RvcnlNb2RlbFtdLCBkb21haW4/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIWVudHJpZXMgfHwgZW50cmllcy5sZW5ndGggPT09IDApIHtcbiAgICAgIC8vIGNsZWFyIGFsbCBlbnRyaWVzXG4gICAgICB0aGlzLnNldENvb2tpZSh0aGlzLmNvb2tpZU5hbWUsIHRoaXMuZW5jb2RlKFtdKSwgZG9tYWluKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZW50cmllcyA9IHRoaXMucmVkdWNlU2l6ZShlbnRyaWVzKTtcbiAgICAgIC8vIGVuY29kZSB0aXRsZSAmIHBhZ2VuYW1lIHRvIGJlIGNvb2tpZSBzYXZpbmcgc2F2ZVxuICAgICAgaWYgKGVudHJpZXMgJiYgZW50cmllcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGVudHJpZXMuZm9yRWFjaChlbnRyeSA9PiB7XG4gICAgICAgICAgZW50cnkudGl0bGUgPSBlbmNvZGVVUkkoZW50cnkudGl0bGUpO1xuICAgICAgICAgIGVudHJ5LnBhZ2VOYW1lID0gZW5jb2RlVVJJKGVudHJ5LnBhZ2VOYW1lKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLnNldENvb2tpZSh0aGlzLmNvb2tpZU5hbWUsIHRoaXMuZW5jb2RlKGVudHJpZXMpLCBkb21haW4pO1xuICAgIH1cbiAgfVxuXG4gIHJlZHVjZVNpemUoZW50cmllczogQ2xySGlzdG9yeU1vZGVsW10pOiBDbHJIaXN0b3J5TW9kZWxbXSB7XG4gICAgaWYgKEpTT04uc3RyaW5naWZ5KGVudHJpZXMpLmxlbmd0aCA+IHRoaXMubWF4U2l6ZSkge1xuICAgICAgY29uc3QgcmVkdWNlZDogQ2xySGlzdG9yeU1vZGVsW10gPSBbLi4uZW50cmllc107XG4gICAgICBkbyB7XG4gICAgICAgIHJlZHVjZWQuc2hpZnQoKTtcbiAgICAgIH0gd2hpbGUgKEpTT04uc3RyaW5naWZ5KHJlZHVjZWQpLmxlbmd0aCA+IHRoaXMubWF4U2l6ZSk7XG4gICAgICByZXR1cm4gcmVkdWNlZDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGVudHJpZXM7XG4gICAgfVxuICB9XG5cbiAgcmVzZXRIaXN0b3J5KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0SGlzdG9yeShudWxsKTtcbiAgfVxuXG4gIHJlbW92ZUZyb21IaXN0b3J5KGVudHJ5OiBDbHJIaXN0b3J5TW9kZWwpOiB2b2lkIHtcbiAgICBsZXQgaGlzdG9yeSA9IHRoaXMuZ2V0SGlzdG9yeShlbnRyeS51c2VybmFtZSwgZW50cnkuY29udGV4dCk7XG4gICAgLyogcmVtb3ZlIGN1cnJlbnQgZW50cnkgZnJvbSBhcnJheSAqL1xuICAgIGhpc3RvcnkgPSBoaXN0b3J5LmZpbHRlcihcbiAgICAgIGVsZW1lbnQgPT5cbiAgICAgICAgIShcbiAgICAgICAgICBlbGVtZW50LnRpdGxlID09PSBlbnRyeS50aXRsZSAmJlxuICAgICAgICAgIGVsZW1lbnQudXNlcm5hbWUgPT09IGVudHJ5LnVzZXJuYW1lICYmXG4gICAgICAgICAgdGhpcy5jaGVja0VxdWFsQ29udGV4dChlbGVtZW50LCBlbnRyeS5jb250ZXh0KVxuICAgICAgICApXG4gICAgKTtcbiAgICB0aGlzLnNldEhpc3RvcnkoaGlzdG9yeSk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRXF1YWxDb250ZXh0KGVudHJ5OiBDbHJIaXN0b3J5TW9kZWwsIHRvQ29tcGFyZTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSk6IGJvb2xlYW4ge1xuICAgIGxldCBlcXVhbCA9IGZhbHNlO1xuICAgIGlmIChlbnRyeSAmJiBlbnRyeS5jb250ZXh0ICYmIHRvQ29tcGFyZSkge1xuICAgICAgT2JqZWN0LmtleXModG9Db21wYXJlKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGVxdWFsID0ga2V5IGluIGVudHJ5LmNvbnRleHQgJiYgZW50cnkuY29udGV4dFtrZXldID09PSB0b0NvbXBhcmVba2V5XTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gZXF1YWw7XG4gIH1cblxuICBpbml0aWFsaXplQ29va2llU2V0dGluZ3ModXNlcm5hbWU6IHN0cmluZywgZG9tYWluPzogc3RyaW5nKTogdm9pZCB7XG4gICAgbGV0IGhpc3RvcnlTZXR0aW5nczogQ2xySGlzdG9yeVNldHRpbmdzTW9kZWxbXSA9IHRoaXMuZ2V0Q29va2llQnlOYW1lKHRoaXMuY29va2llTmFtZVNldHRpbmdzKTtcbiAgICBpZiAoIWhpc3RvcnlTZXR0aW5ncyB8fCBoaXN0b3J5U2V0dGluZ3MubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLnNldEhpc3RvcnlQaW5uZWQodXNlcm5hbWUsIGZhbHNlLCBkb21haW4pO1xuICAgICAgaGlzdG9yeVNldHRpbmdzID0gW3sgdXNlcm5hbWU6IHVzZXJuYW1lLCBoaXN0b3J5UGlubmVkOiBmYWxzZSB9XTtcbiAgICB9XG4gICAgaWYgKCFoaXN0b3J5U2V0dGluZ3MuZmluZChoU2V0dGluZyA9PiBoU2V0dGluZy51c2VybmFtZSA9PT0gdXNlcm5hbWUpKSB7XG4gICAgICB0aGlzLnNldEhpc3RvcnlQaW5uZWQodXNlcm5hbWUsIGZhbHNlLCBkb21haW4pO1xuICAgICAgaGlzdG9yeVNldHRpbmdzLnB1c2goeyB1c2VybmFtZTogdXNlcm5hbWUsIGhpc3RvcnlQaW5uZWQ6IGZhbHNlIH0pO1xuICAgIH1cbiAgICB0aGlzLmNvb2tpZVNldHRpbmdzJC5uZXh0KGhpc3RvcnlTZXR0aW5ncyk7XG4gIH1cblxuICBzZXRIaXN0b3J5UGlubmVkKHVzZXJuYW1lOiBzdHJpbmcsIHBpbjogYm9vbGVhbiwgZG9tYWluPzogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgaGlzdG9yeVNldHRpbmdzOiBDbHJIaXN0b3J5U2V0dGluZ3NNb2RlbFtdID0gdGhpcy5nZXRDb29raWVCeU5hbWUodGhpcy5jb29raWVOYW1lU2V0dGluZ3MpO1xuICAgIGNvbnN0IGhpc3RvcnlTZXR0aW5nID0gaGlzdG9yeVNldHRpbmdzLmZpbmQoaFNldHRpbmcgPT4gaFNldHRpbmcudXNlcm5hbWUgPT09IHVzZXJuYW1lKTtcbiAgICBpZiAoaGlzdG9yeVNldHRpbmcpIHtcbiAgICAgIGhpc3RvcnlTZXR0aW5nLmhpc3RvcnlQaW5uZWQgPSBwaW47XG4gICAgfSBlbHNlIHtcbiAgICAgIGhpc3RvcnlTZXR0aW5ncy5wdXNoKHsgdXNlcm5hbWU6IHVzZXJuYW1lLCBoaXN0b3J5UGlubmVkOiBwaW4gfSk7XG4gICAgfVxuICAgIHRoaXMuY29va2llU2V0dGluZ3MkLm5leHQoaGlzdG9yeVNldHRpbmdzKTtcbiAgICAvLyBTZXQgaXRcbiAgICB0aGlzLnNldENvb2tpZSh0aGlzLmNvb2tpZU5hbWVTZXR0aW5ncywgSlNPTi5zdHJpbmdpZnkoaGlzdG9yeVNldHRpbmdzKSwgZG9tYWluKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29va2llQnlOYW1lKG5hbWU6IHN0cmluZyk6IGFueVtdIHtcbiAgICBjb25zdCBjb29raWVFbnRyaWVzID1cbiAgICAgIGRvY3VtZW50LmNvb2tpZVxuICAgICAgICAuc3BsaXQoJzsnKVxuICAgICAgICAubWFwKGMgPT4gYy50cmltKCkpXG4gICAgICAgIC5maWx0ZXIoY29va2llID0+IHtcbiAgICAgICAgICByZXR1cm4gY29va2llLnN1YnN0cmluZygwLCBuYW1lLmxlbmd0aCArIDEpID09PSBgJHtuYW1lfT1gO1xuICAgICAgICB9KVxuICAgICAgICAubWFwKGNvb2tpZSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG5hbWUgPT09IHRoaXMuY29va2llTmFtZVxuICAgICAgICAgICAgPyB0aGlzLmRlY29kZShjb29raWUuc3Vic3RyaW5nKG5hbWUubGVuZ3RoICsgMSkpXG4gICAgICAgICAgICA6IEpTT04ucGFyc2UoY29va2llLnN1YnN0cmluZyhuYW1lLmxlbmd0aCArIDEpKTtcbiAgICAgICAgfSlbMF0gfHwgW107XG4gICAgaWYgKGNvb2tpZUVudHJpZXMgJiYgY29va2llRW50cmllcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb29raWVFbnRyaWVzLmZvckVhY2goKGVudHJ5OiBhbnkpID0+IHtcbiAgICAgICAgaWYgKGVudHJ5LnRpdGxlKSB7XG4gICAgICAgICAgZW50cnkudGl0bGUgPSBkZWNvZGVVUkkoZW50cnkudGl0bGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbnRyeS5wYWdlTmFtZSkge1xuICAgICAgICAgIGVudHJ5LnBhZ2VOYW1lID0gZGVjb2RlVVJJKGVudHJ5LnBhZ2VOYW1lKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBjb29raWVFbnRyaWVzO1xuICB9XG5cbiAgcHJpdmF0ZSBlbmNvZGUoY29udGVudDogQ2xySGlzdG9yeU1vZGVsW10pOiBzdHJpbmcge1xuICAgIGNvbnN0IGpzb25TdHJpbmcgPSBidG9hKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShjb250ZW50KSkpO1xuICAgIHJldHVybiBqc29uU3RyaW5nLnJlcGxhY2UoL1xcKy9nLCAnLScpLnJlcGxhY2UoL1xcLy9nLCAnXycpLnJlcGxhY2UoLz0vZywgJyEnKTtcbiAgfVxuXG4gIHByaXZhdGUgZGVjb2RlKGNvbnRlbnQ6IHN0cmluZyk6IENsckhpc3RvcnlNb2RlbFtdIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYmFzZTY0ID0gY29udGVudC5yZXBsYWNlKC8tL2csICcrJykucmVwbGFjZSgvXy9nLCAnLycpLnJlcGxhY2UoLyEvZywgJz0nKTtcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKGRlY29kZVVSSUNvbXBvbmVudChhdG9iKGJhc2U2NCkpKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0Q29va2llKG5hbWU6IHN0cmluZywgY29udGVudDogc3RyaW5nLCBkb21haW46IHN0cmluZyk6IHZvaWQge1xuICAgIGRvY3VtZW50LmNvb2tpZSA9XG4gICAgICBuYW1lICtcbiAgICAgICc9JyArXG4gICAgICBjb250ZW50ICtcbiAgICAgICc7ZG9tYWluPScgK1xuICAgICAgKGRvbWFpbiA/IGRvbWFpbiA6IHRoaXMuZ2V0RG9tYWluKCkpICtcbiAgICAgICc7ZXhwaXJlcz0nICtcbiAgICAgIHRoaXMuZXhwaXJ5RGF0ZS50b1VUQ1N0cmluZygpICtcbiAgICAgICc7cGF0aD0vJztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RG9tYWluKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZG9tYWluID0gd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLnNwbGl0KCcuJyk7XG4gICAgLy9sb2NhbGhvc3QgZmFsbGJhY2tcbiAgICBpZiAoZG9tYWluLmxlbmd0aCA9PT0gMSkge1xuICAgICAgcmV0dXJuIGRvbWFpblswXTtcbiAgICB9XG4gICAgZG9tYWluLnNoaWZ0KCk7XG4gICAgcmV0dXJuIGRvbWFpbi5qb2luKCcuJyk7XG4gIH1cblxuICBwcml2YXRlIG5vdGlmeUV4dGVybmFsVXJsKGhpc3RvcnlFbnRyeTogQ2xySGlzdG9yeU1vZGVsKSB7XG4gICAgaWYgKCF0aGlzLmhpc3RvcnlOb3RpZmljYXRpb25VcmwgfHwgIXRoaXMuaHR0cENsaWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGJvZHk6IENsckhpc3RvcnlOb3RpZmljYXRpb25Nb2RlbCA9IHtcbiAgICAgIHVzZXJuYW1lOiBoaXN0b3J5RW50cnkudXNlcm5hbWUsXG4gICAgICBwYWdlTmFtZTogaGlzdG9yeUVudHJ5LnBhZ2VOYW1lLFxuICAgICAgYXBwbGljYXRpb25OYW1lOiBoaXN0b3J5RW50cnkuY29udGV4dC5hcHBsaWNhdGlvbk5hbWUsXG4gICAgICB0ZW5hbnRJZDogaGlzdG9yeUVudHJ5LmNvbnRleHQudGVuYW50aWQsXG4gICAgICB0aXRsZTogaGlzdG9yeUVudHJ5LnRpdGxlLFxuICAgICAgdXJsOiBoaXN0b3J5RW50cnkudXJsLFxuICAgICAgY29udGV4dDogaGlzdG9yeUVudHJ5LmNvbnRleHQuY29udGV4dCxcbiAgICB9O1xuXG4gICAgdGhpcy5odHRwQ2xpZW50LnBvc3QodGhpcy5oaXN0b3J5Tm90aWZpY2F0aW9uVXJsLCBib2R5KS5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Nsci1hZGRvbnMvaGlzdG9yeS9oaXN0b3J5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBSUwsaUNBQWlDLEdBQ2xDLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQUdsRCxNQUFNLE9BQU8saUJBQWlCO0lBVzVCLFlBQ2lFLHNCQUE4QixFQUN6RSxVQUFzQjtRQURxQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQVE7UUFDekUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVpyQyxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUE0QixFQUFFLENBQUMsQ0FBQztRQUM1RSxlQUFVLEdBQUcsYUFBYSxDQUFDO1FBQzNCLHVCQUFrQixHQUFHLHNCQUFzQixDQUFDO1FBRzVDLDBCQUEwQjtRQUNsQixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLDBDQUEwQztRQUNsQyxlQUFVLEdBQUcsR0FBRyxDQUFDO1FBTXZCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUMsWUFBNkIsRUFBRSxNQUFlO1FBQzVELElBQUksQ0FBQyxpQkFBaUIsQ0FB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QUFFLENBQUM7UUFDZixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVPLGlCQUFpQixDQUFDLFlBQTZCO1FBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckQsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLElBQUksR0FBZ0M7WUFDeEMsUUFBUSxFQUFFLFlBQVksQ0FBQyxRQUFRO1lBQy9CLFFBQVEsRUFBRSxZQUFZLENBQUMsUUFBUTtZQUMvQixlQUFlLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxlQUFlO1lBQ3JELFFBQVEsRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLFFBQVE7WUFDdkMsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLO1lBQ3pCLEdBQUcsRUFBRSxZQUFZLENBQUMsR0FBRztZQUNyQixPQUFPLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPO1NBQ3RDLENBQUM7UUFFRixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDdEUsQ0FBQzs4R0FyT1UsaUJBQWlCLGtCQVlsQixpQ0FBaUM7a0hBWmhDLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVTs7MEJBYU4sTUFBTTsyQkFBQyxpQ0FBaUM7OzBCQUFHLFFBQVE7OzBCQUNuRCxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDI0IFBvcnNjaGUgSW5mb3JtYXRpay4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ2xySGlzdG9yeU1vZGVsLFxuICBDbHJIaXN0b3J5Tm90aWZpY2F0aW9uTW9kZWwsXG4gIENsckhpc3RvcnlTZXR0aW5nc01vZGVsLFxuICBISVNUT1JZX05PVElGSUNBVElPTl9VUkxfUFJPVklERVIsXG59IGZyb20gJy4vaGlzdG9yeS1tb2RlbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2xySGlzdG9yeVNlcnZpY2Uge1xuICBwdWJsaWMgY29va2llU2V0dGluZ3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDbHJIaXN0b3J5U2V0dGluZ3NNb2RlbFtdPihbXSk7XG4gIGNvb2tpZU5hbWUgPSAnY2xyLmhpc3RvcnknO1xuICBjb29raWVOYW1lU2V0dGluZ3MgPSAnY2xyLmhpc3Rvcnkuc2V0dGluZ3MnO1xuICBwcml2YXRlIGV4cGlyeURhdGU6IERhdGU7XG5cbiAgLy8gbWF4bWltdW0gaGlzdG9yeSBsZW5ndGhcbiAgcHJpdmF0ZSBtYXhTaXplID0gMTAyNDtcbiAgLy8gbWF4aW11bSB1cmwgbGVuZ3RoIGZvciB1c2FnZSBpbiBoaXN0b3J5XG4gIHByaXZhdGUgbWF4VXJsU2l6ZSA9IDI1NjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEhJU1RPUllfTk9USUZJQ0FUSU9OX1VSTF9QUk9WSURFUikgQE9wdGlvbmFsKCkgcHJpdmF0ZSBoaXN0b3J5Tm90aWZpY2F0aW9uVXJsOiBzdHJpbmcsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50XG4gICkge1xuICAgIHRoaXMuZXhwaXJ5RGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgdGhpcy5leHBpcnlEYXRlLnNldFRpbWUodGhpcy5leHBpcnlEYXRlLmdldFRpbWUoKSArIDM2NSAqIDI0ICogNjAgKiA2MCAqIDEwMDApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyBoaXN0b3J5IGVudHJ5XG4gICAqIEBwYXJhbSBoaXN0b3J5RW50cnkgVGhlIGVudHJ5IHRvIGJlIGFkZGVkXG4gICAqIEBwYXJhbSBkb21haW4gVGhlIG9wdGlvbmFsIGRvbWFpbiBwYXJhbSB3aGVyZSB0aGUgY29va2llIGlzIHN0b3JlZFxuICAgKiBAcmV0dXJucyB0cnVlIHdoZW4gZW50cnkgYWRkZWQsIG90aGVyd2lzZSBmYWxzZSBpcyByZXR1cm5lZFxuICAgKi9cbiAgYWRkSGlzdG9yeUVudHJ5KGhpc3RvcnlFbnRyeTogQ2xySGlzdG9yeU1vZGVsLCBkb21haW4/OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aGlzLm5vdGlmeUV4dGVybmFsVXJsKGhpc3RvcnlFbnRyeSk7XG4gICAgdGhpcy5yZW1vdmVGcm9tSGlzdG9yeShoaXN0b3J5RW50cnkpO1xuICAgIGxldCBoaXN0b3J5ID0gdGhpcy5nZXRIaXN0b3J5KGhpc3RvcnlFbnRyeS51c2VybmFtZSwgaGlzdG9yeUVudHJ5LmNvbnRleHQpO1xuXG4gICAgLyogb25seSBhZGQgdG8gaGlzdG9yeSBpbiBjYXNlIHVybCBkb2VzIG5vdCBleGNlZWQgbWF4VXJsU2l6ZSBjaGFyYWN0ZXJzICovXG4gICAgaWYgKGhpc3RvcnlFbnRyeS51cmwgJiYgaGlzdG9yeUVudHJ5LnVybC5sZW5ndGggPCB0aGlzLm1heFVybFNpemUpIHtcbiAgICAgIC8qIGFkZCBpdCBhcyBsYXN0IGVsZW1lbnQgKi9cbiAgICAgIGhpc3RvcnkucHVzaChoaXN0b3J5RW50cnkpO1xuICAgICAgLyogc3VwcG9ydCBhIG1heGltdW0gb2YgNCBwYWdlcyBpbiBoaXN0b3J5ICovXG4gICAgICBoaXN0b3J5ID0gaGlzdG9yeS5zbGljZSgtNCk7XG4gICAgICB0aGlzLnNldEhpc3RvcnkoaGlzdG9yeSwgZG9tYWluKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXRIaXN0b3J5RGlzcGxheSh1c2VybmFtZTogc3RyaW5nLCBjb250ZXh0OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KTogQ2xySGlzdG9yeU1vZGVsW10ge1xuICAgIGNvbnN0IGhpc3RvcnkgPSB0aGlzLmdldEhpc3RvcnkodXNlcm5hbWUsIGNvbnRleHQpO1xuICAgIGlmIChoaXN0b3J5Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRQYWdlVGl0bGUgPSBoaXN0b3J5W2hpc3RvcnkubGVuZ3RoIC0gMV0udGl0bGU7XG4gICAgICBjb25zdCB0b0Rpc3BsYXk6IENsckhpc3RvcnlNb2RlbFtdID0gW107XG4gICAgICBjb25zdCBhbHJlYWR5RGlzcGxheTogc3RyaW5nW10gPSBbXTtcblxuICAgICAgZm9yIChsZXQgaSA9IGhpc3RvcnkubGVuZ3RoIC0gMTsgaSA+PSAwICYmIGFscmVhZHlEaXNwbGF5Lmxlbmd0aCA8IDQ7IGktLSkge1xuICAgICAgICBpZiAoIWFscmVhZHlEaXNwbGF5LmluY2x1ZGVzKGhpc3RvcnlbaV0udGl0bGUpICYmIGhpc3RvcnlbaV0udGl0bGUgIT09IGN1cnJlbnRQYWdlVGl0bGUpIHtcbiAgICAgICAgICBhbHJlYWR5RGlzcGxheS5wdXNoKGhpc3RvcnlbaV0udGl0bGUpO1xuICAgICAgICAgIHRvRGlzcGxheS5wdXNoKGhpc3RvcnlbaV0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0b0Rpc3BsYXkucmV2ZXJzZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gaGlzdG9yeTtcbiAgICB9XG4gIH1cblxuICBnZXRIaXN0b3J5KHVzZXJuYW1lOiBzdHJpbmcsIGNvbnRleHQ6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pOiBDbHJIaXN0b3J5TW9kZWxbXSB7XG4gICAgY29uc3QgaGlzdG9yeTogQ2xySGlzdG9yeU1vZGVsW10gPSB0aGlzLmdldENvb2tpZUJ5TmFtZSh0aGlzLmNvb2tpZU5hbWUpO1xuICAgIGlmICghaGlzdG9yeSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICByZXR1cm4gaGlzdG9yeS5maWx0ZXIoZWxlbWVudCA9PiB0aGlzLmNoZWNrRXF1YWxDb250ZXh0KGVsZW1lbnQsIGNvbnRleHQpICYmIGVsZW1lbnQudXNlcm5hbWUgPT09IHVzZXJuYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgaGlzdG9yeVxuICAgKiBAcGFyYW0gZW50cmllc1xuICAgKiBAcGFyYW0gZG9tYWluXG4gICAqL1xuICBwcml2YXRlIHNldEhpc3RvcnkoZW50cmllczogQ2xySGlzdG9yeU1vZGVsW10sIGRvbWFpbj86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghZW50cmllcyB8fCBlbnRyaWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgLy8gY2xlYXIgYWxsIGVudHJpZXNcbiAgICAgIHRoaXMuc2V0Q29va2llKHRoaXMuY29va2llTmFtZSwgdGhpcy5lbmNvZGUoW10pLCBkb21haW4pO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbnRyaWVzID0gdGhpcy5yZWR1Y2VTaXplKGVudHJpZXMpO1xuICAgICAgdGhpcy5zZXRDb29raWUodGhpcy5jb29raWVOYW1lLCB0aGlzLmVuY29kZShlbnRyaWVzKSwgZG9tYWluKTtcbiAgICB9XG4gIH1cblxuICByZWR1Y2VTaXplKGVudHJpZXM6IENsckhpc3RvcnlNb2RlbFtdKTogQ2xySGlzdG9yeU1vZGVsW10ge1xuICAgIGlmIChKU09OLnN0cmluZ2lmeShlbnRyaWVzKS5sZW5ndGggPiB0aGlzLm1heFNpemUpIHtcbiAgICAgIGNvbnN0IHJlZHVjZWQ6IENsckhpc3RvcnlNb2RlbFtdID0gWy4uLmVudHJpZXNdO1xuICAgICAgZG8ge1xuICAgICAgICByZWR1Y2VkLnNoaWZ0KCk7XG4gICAgICB9IHdoaWxlIChKU09OLnN0cmluZ2lmeShyZWR1Y2VkKS5sZW5ndGggPiB0aGlzLm1heFNpemUpO1xuICAgICAgcmV0dXJuIHJlZHVjZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBlbnRyaWVzO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0SGlzdG9yeSgpOiB2b2lkIHtcbiAgICB0aGlzLnNldEhpc3RvcnkobnVsbCk7XG4gIH1cblxuICByZW1vdmVGcm9tSGlzdG9yeShlbnRyeTogQ2xySGlzdG9yeU1vZGVsKTogdm9pZCB7XG4gICAgbGV0IGhpc3RvcnkgPSB0aGlzLmdldEhpc3RvcnkoZW50cnkudXNlcm5hbWUsIGVudHJ5LmNvbnRleHQpO1xuICAgIC8qIHJlbW92ZSBjdXJyZW50IGVudHJ5IGZyb20gYXJyYXkgKi9cbiAgICBoaXN0b3J5ID0gaGlzdG9yeS5maWx0ZXIoXG4gICAgICBlbGVtZW50ID0+XG4gICAgICAgICEoXG4gICAgICAgICAgZWxlbWVudC50aXRsZSA9PT0gZW50cnkudGl0bGUgJiZcbiAgICAgICAgICBlbGVtZW50LnVzZXJuYW1lID09PSBlbnRyeS51c2VybmFtZSAmJlxuICAgICAgICAgIHRoaXMuY2hlY2tFcXVhbENvbnRleHQoZWxlbWVudCwgZW50cnkuY29udGV4dClcbiAgICAgICAgKVxuICAgICk7XG4gICAgdGhpcy5zZXRIaXN0b3J5KGhpc3RvcnkpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0VxdWFsQ29udGV4dChlbnRyeTogQ2xySGlzdG9yeU1vZGVsLCB0b0NvbXBhcmU6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pOiBib29sZWFuIHtcbiAgICBsZXQgZXF1YWwgPSBmYWxzZTtcbiAgICBpZiAoZW50cnkgJiYgZW50cnkuY29udGV4dCAmJiB0b0NvbXBhcmUpIHtcbiAgICAgIE9iamVjdC5rZXlzKHRvQ29tcGFyZSkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICBlcXVhbCA9IGtleSBpbiBlbnRyeS5jb250ZXh0ICYmIGVudHJ5LmNvbnRleHRba2V5XSA9PT0gdG9Db21wYXJlW2tleV07XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGVxdWFsO1xuICB9XG5cbiAgaW5pdGlhbGl6ZUNvb2tpZVNldHRpbmdzKHVzZXJuYW1lOiBzdHJpbmcsIGRvbWFpbj86IHN0cmluZyk6IHZvaWQge1xuICAgIGxldCBoaXN0b3J5U2V0dGluZ3M6IENsckhpc3RvcnlTZXR0aW5nc01vZGVsW10gPSB0aGlzLmdldENvb2tpZUJ5TmFtZSh0aGlzLmNvb2tpZU5hbWVTZXR0aW5ncyk7XG4gICAgaWYgKCFoaXN0b3J5U2V0dGluZ3MgfHwgaGlzdG9yeVNldHRpbmdzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5zZXRIaXN0b3J5UGlubmVkKHVzZXJuYW1lLCBmYWxzZSwgZG9tYWluKTtcbiAgICAgIGhpc3RvcnlTZXR0aW5ncyA9IFt7IHVzZXJuYW1lOiB1c2VybmFtZSwgaGlzdG9yeVBpbm5lZDogZmFsc2UgfV07XG4gICAgfVxuICAgIGlmICghaGlzdG9yeVNldHRpbmdzLmZpbmQoaFNldHRpbmcgPT4gaFNldHRpbmcudXNlcm5hbWUgPT09IHVzZXJuYW1lKSkge1xuICAgICAgdGhpcy5zZXRIaXN0b3J5UGlubmVkKHVzZXJuYW1lLCBmYWxzZSwgZG9tYWluKTtcbiAgICAgIGhpc3RvcnlTZXR0aW5ncy5wdXNoKHsgdXNlcm5hbWU6IHVzZXJuYW1lLCBoaXN0b3J5UGlubmVkOiBmYWxzZSB9KTtcbiAgICB9XG4gICAgdGhpcy5jb29raWVTZXR0aW5ncyQubmV4dChoaXN0b3J5U2V0dGluZ3MpO1xuICB9XG5cbiAgc2V0SGlzdG9yeVBpbm5lZCh1c2VybmFtZTogc3RyaW5nLCBwaW46IGJvb2xlYW4sIGRvbWFpbj86IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGhpc3RvcnlTZXR0aW5nczogQ2xySGlzdG9yeVNldHRpbmdzTW9kZWxbXSA9IHRoaXMuZ2V0Q29va2llQnlOYW1lKHRoaXMuY29va2llTmFtZVNldHRpbmdzKTtcbiAgICBjb25zdCBoaXN0b3J5U2V0dGluZyA9IGhpc3RvcnlTZXR0aW5ncy5maW5kKGhTZXR0aW5nID0+IGhTZXR0aW5nLnVzZXJuYW1lID09PSB1c2VybmFtZSk7XG4gICAgaWYgKGhpc3RvcnlTZXR0aW5nKSB7XG4gICAgICBoaXN0b3J5U2V0dGluZy5oaXN0b3J5UGlubmVkID0gcGluO1xuICAgIH0gZWxzZSB7XG4gICAgICBoaXN0b3J5U2V0dGluZ3MucHVzaCh7IHVzZXJuYW1lOiB1c2VybmFtZSwgaGlzdG9yeVBpbm5lZDogcGluIH0pO1xuICAgIH1cbiAgICB0aGlzLmNvb2tpZVNldHRpbmdzJC5uZXh0KGhpc3RvcnlTZXR0aW5ncyk7XG4gICAgLy8gU2V0IGl0XG4gICAgdGhpcy5zZXRDb29raWUodGhpcy5jb29raWVOYW1lU2V0dGluZ3MsIEpTT04uc3RyaW5naWZ5KGhpc3RvcnlTZXR0aW5ncyksIGRvbWFpbik7XG4gIH1cblxuICBwcml2YXRlIGdldENvb2tpZUJ5TmFtZShuYW1lOiBzdHJpbmcpOiBhbnlbXSB7XG4gICAgY29uc3QgY29va2llRW50cmllcyA9XG4gICAgICBkb2N1bWVudC5jb29raWVcbiAgICAgICAgLnNwbGl0KCc7JylcbiAgICAgICAgLm1hcChjID0+IGMudHJpbSgpKVxuICAgICAgICAuZmlsdGVyKGNvb2tpZSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGNvb2tpZS5zdWJzdHJpbmcoMCwgbmFtZS5sZW5ndGggKyAxKSA9PT0gYCR7bmFtZX09YDtcbiAgICAgICAgfSlcbiAgICAgICAgLm1hcChjb29raWUgPT4ge1xuICAgICAgICAgIHJldHVybiBuYW1lID09PSB0aGlzLmNvb2tpZU5hbWVcbiAgICAgICAgICAgID8gdGhpcy5kZWNvZGUoY29va2llLnN1YnN0cmluZyhuYW1lLmxlbmd0aCArIDEpKVxuICAgICAgICAgICAgOiBKU09OLnBhcnNlKGNvb2tpZS5zdWJzdHJpbmcobmFtZS5sZW5ndGggKyAxKSk7XG4gICAgICAgIH0pWzBdIHx8IFtdO1xuICAgIGlmIChjb29raWVFbnRyaWVzICYmIGNvb2tpZUVudHJpZXMubGVuZ3RoID4gMCkge1xuICAgICAgY29va2llRW50cmllcy5mb3JFYWNoKChlbnRyeTogYW55KSA9PiB7XG4gICAgICAgIGlmIChlbnRyeS50aXRsZSkge1xuICAgICAgICAgIGVudHJ5LnRpdGxlID0gZGVjb2RlVVJJKGVudHJ5LnRpdGxlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW50cnkucGFnZU5hbWUpIHtcbiAgICAgICAgICBlbnRyeS5wYWdlTmFtZSA9IGRlY29kZVVSSShlbnRyeS5wYWdlTmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gY29va2llRW50cmllcztcbiAgfVxuXG4gIHByaXZhdGUgZW5jb2RlKGNvbnRlbnQ6IENsckhpc3RvcnlNb2RlbFtdKTogc3RyaW5nIHtcbiAgICBjb25zdCBqc29uU3RyaW5nID0gYnRvYShKU09OLnN0cmluZ2lmeShjb250ZW50KSk7XG4gICAgcmV0dXJuIGpzb25TdHJpbmcucmVwbGFjZSgvXFwrL2csICctJykucmVwbGFjZSgvXFwvL2csICdfJykucmVwbGFjZSgvPS9nLCAnIScpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWNvZGUoY29udGVudDogc3RyaW5nKTogQ2xySGlzdG9yeU1vZGVsW10ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBiYXNlNjQgPSBjb250ZW50LnJlcGxhY2UoLy0vZywgJysnKS5yZXBsYWNlKC9fL2csICcvJykucmVwbGFjZSgvIS9nLCAnPScpO1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGVjb2RlVVJJQ29tcG9uZW50KGF0b2IoYmFzZTY0KSkpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb29raWUobmFtZTogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcsIGRvbWFpbjogc3RyaW5nKTogdm9pZCB7XG4gICAgZG9jdW1lbnQuY29va2llID1cbiAgICAgIG5hbWUgK1xuICAgICAgJz0nICtcbiAgICAgIGNvbnRlbnQgK1xuICAgICAgJztkb21haW49JyArXG4gICAgICAoZG9tYWluID8gZG9tYWluIDogdGhpcy5nZXREb21haW4oKSkgK1xuICAgICAgJztleHBpcmVzPScgK1xuICAgICAgdGhpcy5leHBpcnlEYXRlLnRvVVRDU3RyaW5nKCkgK1xuICAgICAgJztwYXRoPS8nO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREb21haW4oKTogc3RyaW5nIHtcbiAgICBjb25zdCBkb21haW4gPSB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUuc3BsaXQoJy4nKTtcbiAgICAvL2xvY2FsaG9zdCBmYWxsYmFja1xuICAgIGlmIChkb21haW4ubGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4gZG9tYWluWzBdO1xuICAgIH1cbiAgICBkb21haW4uc2hpZnQoKTtcbiAgICByZXR1cm4gZG9tYWluLmpvaW4oJy4nKTtcbiAgfVxuXG4gIHByaXZhdGUgbm90aWZ5RXh0ZXJuYWxVcmwoaGlzdG9yeUVudHJ5OiBDbHJIaXN0b3J5TW9kZWwpIHtcbiAgICBpZiAoIXRoaXMuaGlzdG9yeU5vdGlmaWNhdGlvblVybCB8fCAhdGhpcy5odHRwQ2xpZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYm9keTogQ2xySGlzdG9yeU5vdGlmaWNhdGlvbk1vZGVsID0ge1xuICAgICAgdXNlcm5hbWU6IGhpc3RvcnlFbnRyeS51c2VybmFtZSxcbiAgICAgIHBhZ2VOYW1lOiBoaXN0b3J5RW50cnkucGFnZU5hbWUsXG4gICAgICBhcHBsaWNhdGlvbk5hbWU6IGhpc3RvcnlFbnRyeS5jb250ZXh0LmFwcGxpY2F0aW9uTmFtZSxcbiAgICAgIHRlbmFudElkOiBoaXN0b3J5RW50cnkuY29udGV4dC50ZW5hbnRpZCxcbiAgICAgIHRpdGxlOiBoaXN0b3J5RW50cnkudGl0bGUsXG4gICAgICB1cmw6IGhpc3RvcnlFbnRyeS51cmwsXG4gICAgICBjb250ZXh0OiBoaXN0b3J5RW50cnkuY29udGV4dC5jb250ZXh0LFxuICAgIH07XG5cbiAgICB0aGlzLmh0dHBDbGllbnQucG9zdCh0aGlzLmhpc3RvcnlOb3RpZmljYXRpb25VcmwsIGJvZHkpLnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
@@ -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
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xyLWFkZG9ucy9oaXN0b3J5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIwIFBvcnNjaGUgSW5mb3JtYXRpay4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9oaXN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vaGlzdG9yeS1waW5uZWQnO1xuZXhwb3J0ICogZnJvbSAnLi9oaXN0b3J5Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2hpc3RvcnktbW9kZWwuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaGlzdG9yeS5zZXJ2aWNlJztcbiJdfQ==
11
+ export * from './history.provider';
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xyLWFkZG9ucy9oaXN0b3J5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjAgUG9yc2NoZSBJbmZvcm1hdGlrLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2hpc3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9oaXN0b3J5LXBpbm5lZCc7XG5leHBvcnQgKiBmcm9tICcuL2hpc3RvcnkubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vaGlzdG9yeS1tb2RlbC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9oaXN0b3J5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9oaXN0b3J5LnByb3ZpZGVyJztcbiJdfQ==
@@ -4322,13 +4322,6 @@ class ClrHistoryService {
4322
4322
  }
4323
4323
  else {
4324
4324
  entries = this.reduceSize(entries);
4325
- // encode title & pagename to be cookie saving save
4326
- if (entries && entries.length > 0) {
4327
- entries.forEach(entry => {
4328
- entry.title = encodeURI(entry.title);
4329
- entry.pageName = encodeURI(entry.pageName);
4330
- });
4331
- }
4332
4325
  this.setCookie(this.cookieName, this.encode(entries), domain);
4333
4326
  }
4334
4327
  }
@@ -4414,7 +4407,7 @@ class ClrHistoryService {
4414
4407
  return cookieEntries;
4415
4408
  }
4416
4409
  encode(content) {
4417
- const jsonString = btoa(encodeURIComponent(JSON.stringify(content)));
4410
+ const jsonString = btoa(JSON.stringify(content));
4418
4411
  return jsonString.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '!');
4419
4412
  }
4420
4413
  decode(content) {
@@ -4475,15 +4468,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
4475
4468
  type: Optional
4476
4469
  }] }] });
4477
4470
 
4471
+ const HISTORY_PROVIDER = new InjectionToken('HISTORY_PROVIDER');
4472
+ /**
4473
+ * Interface to be implemented by a history provider to adjust the behavior of the history components.
4474
+ * */
4475
+ class HistoryProvider {
4476
+ }
4477
+
4478
4478
  /*
4479
- * Copyright (c) 2018-2023 Porsche Informatik. All Rights Reserved.
4479
+ * Copyright (c) 2018-2024 Porsche Informatik. All Rights Reserved.
4480
4480
  * This software is released under MIT license.
4481
4481
  * The full license information can be found in LICENSE in the root directory of this project.
4482
4482
  */
4483
4483
  ClarityIcons.addIcons(historyIcon, angleIcon);
4484
4484
  class ClrHistory {
4485
- constructor(historyService) {
4485
+ constructor(historyService, historyProvider) {
4486
4486
  this.historyService = historyService;
4487
+ this.historyProvider = historyProvider;
4487
4488
  this.pinActive = true;
4488
4489
  this.dropdownHeader = 'History';
4489
4490
  this.dropdownPin = 'Pin History';
@@ -4497,7 +4498,10 @@ class ClrHistory {
4497
4498
  this.onDestroy$ = new Subject();
4498
4499
  }
4499
4500
  ngOnInit() {
4500
- this.historyElements = this.historyService.getHistoryDisplay(this.username, this.context);
4501
+ const historyElements = this.historyService.getHistoryDisplay(this.username, this.context);
4502
+ this.historyElements = this.historyProvider
4503
+ ? this.historyProvider.getModifiedHistoryEntries(historyElements)
4504
+ : historyElements;
4501
4505
  this.historyService.initializeCookieSettings(this.username, this.domain);
4502
4506
  this.historyService.cookieSettings$.pipe(takeUntil(this.onDestroy$)).subscribe(settings => {
4503
4507
  this.pinActivated = settings.find(setting => setting.username === this.username).historyPinned;
@@ -4513,13 +4517,18 @@ class ClrHistory {
4513
4517
  togglePinHistory() {
4514
4518
  this.historyService.setHistoryPinned(this.username, !this.pinActivated);
4515
4519
  }
4516
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ClrHistory, deps: [{ token: ClrHistoryService }], target: i0.ɵɵFactoryTarget.Component }); }
4520
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ClrHistory, deps: [{ token: ClrHistoryService }, { token: HISTORY_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
4517
4521
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", 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: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: i2.ClrIfOpen, selector: "[clrIfOpen]", inputs: ["clrIfOpen"], outputs: ["clrIfOpenChange"] }, { kind: "directive", type: i2.ClrLabel, selector: "label", inputs: ["for"] }, { 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: ClrDropdownOverflowDirective, selector: "clr-dropdown-menu", inputs: ["clrDropdownMenuMaxHeight", "clrDropdownMenuItemMinHeight", "clrMarginBottom"] }] }); }
4518
4522
  }
4519
4523
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ClrHistory, decorators: [{
4520
4524
  type: Component,
4521
4525
  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" }]
4522
- }], ctorParameters: () => [{ type: ClrHistoryService }], propDecorators: { username: [{
4526
+ }], ctorParameters: () => [{ type: ClrHistoryService }, { type: HistoryProvider, decorators: [{
4527
+ type: Inject,
4528
+ args: [HISTORY_PROVIDER]
4529
+ }, {
4530
+ type: Optional
4531
+ }] }], propDecorators: { username: [{
4523
4532
  type: Input,
4524
4533
  args: ['clrUsername']
4525
4534
  }], context: [{
@@ -4546,13 +4555,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
4546
4555
  }] } });
4547
4556
 
4548
4557
  /*
4549
- * Copyright (c) 2018-2020 Porsche Informatik. All Rights Reserved.
4558
+ * Copyright (c) 2018-2024 Porsche Informatik. All Rights Reserved.
4550
4559
  * This software is released under MIT license.
4551
4560
  * The full license information can be found in LICENSE in the root directory of this project.
4552
4561
  */
4553
4562
  class ClrHistoryPinned {
4554
- constructor(historyService) {
4563
+ constructor(historyService, historyProvider) {
4555
4564
  this.historyService = historyService;
4565
+ this.historyProvider = historyProvider;
4556
4566
  /**
4557
4567
  * The array of history elements to be displayed.
4558
4568
  */
@@ -4560,7 +4570,10 @@ class ClrHistoryPinned {
4560
4570
  this.active = false;
4561
4571
  }
4562
4572
  ngOnInit() {
4563
- this.historyElements = this.historyService.getHistoryDisplay(this.username, this.context);
4573
+ const historyElements = this.historyService.getHistoryDisplay(this.username, this.context);
4574
+ this.historyElements = this.historyProvider
4575
+ ? this.historyProvider.getModifiedHistoryEntries(historyElements)
4576
+ : historyElements;
4564
4577
  this.historyService.initializeCookieSettings(this.username, this.domain);
4565
4578
  this.settingsSubscription = this.historyService.cookieSettings$.subscribe(settings => {
4566
4579
  const setting = settings.find(setting => setting.username === this.username);
@@ -4572,13 +4585,18 @@ class ClrHistoryPinned {
4572
4585
  ngOnDestroy() {
4573
4586
  this.settingsSubscription.unsubscribe();
4574
4587
  }
4575
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ClrHistoryPinned, deps: [{ token: ClrHistoryService }], target: i0.ɵɵFactoryTarget.Component }); }
4588
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ClrHistoryPinned, deps: [{ token: ClrHistoryService }, { token: HISTORY_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
4576
4589
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", 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: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
4577
4590
  }
4578
4591
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ClrHistoryPinned, decorators: [{
4579
4592
  type: Component,
4580
4593
  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" }]
4581
- }], ctorParameters: () => [{ type: ClrHistoryService }], propDecorators: { username: [{
4594
+ }], ctorParameters: () => [{ type: ClrHistoryService }, { type: HistoryProvider, decorators: [{
4595
+ type: Inject,
4596
+ args: [HISTORY_PROVIDER]
4597
+ }, {
4598
+ type: Optional
4599
+ }] }], propDecorators: { username: [{
4582
4600
  type: Input,
4583
4601
  args: ['clrUsername']
4584
4602
  }], context: [{
@@ -8406,5 +8424,5 @@ function escapeRegex(s) {
8406
8424
  * Generated bundle index. Do not edit.
8407
8425
  */
8408
8426
 
8409
- export { ACShape, AcceptanceDateShape, AcceptedBrands, AccessoriesShape, AccessoryPartsShape, AudiBrandShape, AwardWinnerPremiumShape, BIG_ENDIAN, BlocksGroupForwardShape, BrochureShape, BundleForwardShape, BusinessCustomersCommercialShape, BusinessCustomersPrivateShape, BusinessPartnerWithCar, CLR_BLANK_OPTION, CONTENT_PROVIDER, CalculatorForwardShape, CaliforniaServiceShape, CaliforniaSpecialistShape, CampaignOutdatedShape, CampaignShape, CarOffSite, CarOnSite, CarPickupServiceShape, CarWashShape, CertifiedRepairShape, CertifiedRetailerShape, ClrActiveNotification, ClrAddonsIconShapes, ClrAddonsLabel, ClrAddonsModule, ClrAutocompleteOff, ClrAutocompleteOffModule, ClrBackButton, ClrBackButtonModule, ClrBrandAvatar, ClrBrandAvatarModule, ClrBreadcrumb, ClrBreadcrumbModule, ClrBreadcrumbService, ClrCollapseExpandSection, ClrCollapseExpandSectionModule, ClrContentPanel, ClrContentPanelContainer, ClrContentPanelContainerContent, ClrContentPanelContainerFooter, ClrContentPanelModule, ClrContentRef, ClrDataListPredefinedValidatorDirective, ClrDataListValidatorModule, ClrDataListValidators, ClrDatagridStatePersistenceModule, ClrDateFilterComponent, ClrDateFilterModule, ClrDateTimeContainer, ClrDateTimeModule, ClrDaterangeMaxValidator, ClrDaterangeMinValidator, ClrDaterangeOrderValidator, ClrDaterangeRequiredValidator, ClrDaterangepickerContainerComponent, ClrDaterangepickerDirective, ClrDaterangepickerModule, ClrDotPager, ClrDotPagerModule, ClrDropdownOverflowDirective, ClrDropdownOverflowModule, ClrEnumFilterComponent, ClrEnumFilterModule, ClrFlowBar, ClrFlowBarModule, ClrFormModule, ClrGenericQuickList, ClrGenericQuickListModule, ClrHistory, ClrHistoryModule, ClrHistoryPinned, ClrHistoryService, ClrIfDaterangeErrorDirective, ClrIfWarning, ClrIfWarningModule, ClrLetterAvatar, ClrLetterAvatarModule, ClrLocationBarModule, ClrMainNavGroup, ClrMainNavGroupItem, ClrMainNavGroupModule, ClrMaxNumeric, ClrMinNumeric, ClrMultilingualInput, ClrMultilingualInputValidators, ClrMultilingualModule, ClrMultilingualSelector, ClrMultilingualTextarea, ClrNotification, ClrNotificationModule, ClrNotificationRef, ClrNotificationService, ClrNumericField, ClrNumericFieldModule, ClrNumericFieldValidators, ClrPagedSearchResultList, ClrPagedSearchResultListModule, ClrPager, ClrPagerModule, ClrProgressSpinnerComponent, ClrProgressSpinnerModule, ClrQuickList, ClrQuickListModule, ClrRequiredAllMultilang, ClrRequiredOneMultilang, ClrSearchField, ClrSearchFieldModule, ClrTimeInput, ClrTreetable, ClrTreetableActionOverflow, ClrTreetableCell, ClrTreetableColumn, ClrTreetableModule, ClrTreetablePlaceholder, ClrTreetableRow, ClrViewEditSection, ClrViewEditSectionModule, ColumnHiddenStatePersistenceDirective, CompletedByDateShape, ConfiguratorCommercialShape, ConfiguratorPrivateShape, ConsumptionShape, ContactDealerShape, CupraBrandShape, CustomersCenterShape, DATE, DELIMITER_REGEX, DWABrandShape, DatagridFieldDirective, DayModel, DieselShape, DollarBillForwardShape, DollarBillPartialShape, DriversAssistanceShape, EfficiencyShape, ElectricCarsServiceShape, ElectricCarsShape, ElectricityShape, EmissionShape, EnergyShape, EngineShape, ExpressServiceShape, ExteriorShape, ExternalPartForwardShape, FindACarShape, FleetServiceCommercialShape, FleetServicePrivateShape, GasCarsServiceShape, GasShape, HISTORY_NOTIFICATION_URL_PROVIDER, HybridShape, InternalPartForwardShape, InvoiceReadyShape, InvoiceShape, ItemsForwardShape, ItemsReceiveShape, LITTLE_ENDIAN, LITTLE_ENDIAN_REGEX, LoadingVolumeShape, LocateShape, LocationBarComponent, LocationBarContentProvider, LocationBarNode, MIDDLE_ENDIAN, MIDDLE_ENDIAN_REGEX, MONTH, NewCarCommercialShape, NewCarPrivateShape, NewCarUtilityVehicleShape, NightServiceShape, NodeId, OffersShape, OnCallDutyShape, OpenSatShape, PaintMaterialForwardShape, PaintMaterialShape, PaintShopShape, ParkingLocation, PartNonStockForwardShape, PartsForwardShape, PartsNonStockShape, PartsShape, PayloadShape, PerformanceShape, PetrolShape, PlusServiceShape, PopoverPositions, PorscheBrandShape, PowerShape, PowerTrainShape, PriceTypeSwitchShape, QualifiedWorkshopShape, RepeatRepairShape, ReturnDateShape, RoadsideAssistanceShape, RouteShape, SEPARATOR_TEXT_DEFAULT, SeatAirShape, SeatBrandShape, SeatShape, ServiceBellShape, ServiceShape, SizeShape, SkodaBrandShape, StatePersistenceKeyDirective, StockLocatorCommercialShape, StockLocatorPrivateShape, TRANSLATIONS, TaskAndAppointment, TaxiDealerShape, TextForward, TopcardShape, TouaregServiceShape, TransmissionAutomaticShape, TransmissionManualShape, TreetableCellRenderer, TreetableHeaderRenderer, TreetableMainRenderer, TreetableRowRenderer, USER_INPUT_REGEX, UsedCarCommercialShape, UsedCarPrivateShape, VWBrandShape, VWNBrandShape, VWShape, VehicleConversionShape, View360Shape, VinShape, VirtualRealityShape, VsfSearchShape, WCPShape, WheelToWheelShape, WindscreenWashShape, WrenchForward, YEAR, acceptanceDateIcon, accessoriesIcon, accessoryPartsIcon, airConditionerIcon, allIcons, audiBrandIcon, awardWinnerPremiumIcon, blocksGroupForwardIcon, brochureIcon, bundleForwardIcon, businessCustomersCommercialIcon, businessCustomersPrivateIcon, businessPartnerWithCarIcon, calculatorForwardIcon, californiaServiceIcon, californiaSpecialistIcon, campaignIcon, campaignOutdatedIcon, carOffSite, carOnSite, carPickupServiceIcon, carWashIcon, certifiedRepairIcon, certifiedRetailerIcon, clrIconSVG, completedByDateIcon, configuratorCommercialIcon, configuratorPrivateIcon, consumptionIcon, contactDealerIcon, cupraBrandIcon, customersCenterIcon, dieselIcon, dollarBillForwardIcon, dollarBillPartialIcon, driversAssistanceIcon, dwaBrandIcon, efficiencyIcon, electricCarsIcon, electricCarsServiceIcon, electricityIcon, emissionIcon, energyIcon, engineIcon, escapeHtml, escapeRegex, expressServiceIcon, exteriorIcon, externalPartForwardIcon, findACarIcon, fleetServiceCommercialIcon, fleetServicePrivateIcon, gasCarsServiceIcon, gasIcon, hybridIcon, internalPartForwardIcon, invoiceIcon, invoiceReadyIcon, itemsForwardIcon, itemsRecieveIcon, loadingVolumeIcon, locateIcon, newCarCommercialIcon, newCarPrivateIcon, newCarUtilityVehicleIcon, nightServiceIcon, offersIcon, onCallDutyIcon, openSatIcon, paintMaterialForwardIcon, paintMaterialIcon, paintShopIcon, parkingLocationIcon, partsForwardIcon, partsIcon, partsNonStockForwardIcon, partsNonStockIcon, payloadIcon, performanceIcon, petrolIcon, plusServiceIcon, porscheBrandIcon, powerIcon, powerTrainIcon, priceTypeSwitchIcon, qualifiedWorkshopIcon, repeatRepairIcon, returnDateIcon, roadsideAssistanceIcon, routeIcon, seatAirIcon, seatBrandIcon, seatIcon, serviceBellIcon, serviceIcon, sizeIcon, skodaBrandIcon, stockLocatorCommercialIcon, stockLocatorPrivateIcon, taskAndAppointmentIcon, taxiDealerIcon, textForwardIcon, topcardIcon, touaregServiceIcon, transmissionAutomaticIcon, transmissionManualIcon, usedCarCommercialIcon, usedCarPrivateIcon, vehicleConversionIcon, view360Icon, vinIcon, virtualRealityIcon, volkswagenIcon, vsfSearchIcon, vwBrandIcon, vwnBrandIcon, wcpIcon, wheelToWheelIcon, windscreenWashIcon, wrenchForwardIcon };
8427
+ export { ACShape, AcceptanceDateShape, AcceptedBrands, AccessoriesShape, AccessoryPartsShape, AudiBrandShape, AwardWinnerPremiumShape, BIG_ENDIAN, BlocksGroupForwardShape, BrochureShape, BundleForwardShape, BusinessCustomersCommercialShape, BusinessCustomersPrivateShape, BusinessPartnerWithCar, CLR_BLANK_OPTION, CONTENT_PROVIDER, CalculatorForwardShape, CaliforniaServiceShape, CaliforniaSpecialistShape, CampaignOutdatedShape, CampaignShape, CarOffSite, CarOnSite, CarPickupServiceShape, CarWashShape, CertifiedRepairShape, CertifiedRetailerShape, ClrActiveNotification, ClrAddonsIconShapes, ClrAddonsLabel, ClrAddonsModule, ClrAutocompleteOff, ClrAutocompleteOffModule, ClrBackButton, ClrBackButtonModule, ClrBrandAvatar, ClrBrandAvatarModule, ClrBreadcrumb, ClrBreadcrumbModule, ClrBreadcrumbService, ClrCollapseExpandSection, ClrCollapseExpandSectionModule, ClrContentPanel, ClrContentPanelContainer, ClrContentPanelContainerContent, ClrContentPanelContainerFooter, ClrContentPanelModule, ClrContentRef, ClrDataListPredefinedValidatorDirective, ClrDataListValidatorModule, ClrDataListValidators, ClrDatagridStatePersistenceModule, ClrDateFilterComponent, ClrDateFilterModule, ClrDateTimeContainer, ClrDateTimeModule, ClrDaterangeMaxValidator, ClrDaterangeMinValidator, ClrDaterangeOrderValidator, ClrDaterangeRequiredValidator, ClrDaterangepickerContainerComponent, ClrDaterangepickerDirective, ClrDaterangepickerModule, ClrDotPager, ClrDotPagerModule, ClrDropdownOverflowDirective, ClrDropdownOverflowModule, ClrEnumFilterComponent, ClrEnumFilterModule, ClrFlowBar, ClrFlowBarModule, ClrFormModule, ClrGenericQuickList, ClrGenericQuickListModule, ClrHistory, ClrHistoryModule, ClrHistoryPinned, ClrHistoryService, ClrIfDaterangeErrorDirective, ClrIfWarning, ClrIfWarningModule, ClrLetterAvatar, ClrLetterAvatarModule, ClrLocationBarModule, ClrMainNavGroup, ClrMainNavGroupItem, ClrMainNavGroupModule, ClrMaxNumeric, ClrMinNumeric, ClrMultilingualInput, ClrMultilingualInputValidators, ClrMultilingualModule, ClrMultilingualSelector, ClrMultilingualTextarea, ClrNotification, ClrNotificationModule, ClrNotificationRef, ClrNotificationService, ClrNumericField, ClrNumericFieldModule, ClrNumericFieldValidators, ClrPagedSearchResultList, ClrPagedSearchResultListModule, ClrPager, ClrPagerModule, ClrProgressSpinnerComponent, ClrProgressSpinnerModule, ClrQuickList, ClrQuickListModule, ClrRequiredAllMultilang, ClrRequiredOneMultilang, ClrSearchField, ClrSearchFieldModule, ClrTimeInput, ClrTreetable, ClrTreetableActionOverflow, ClrTreetableCell, ClrTreetableColumn, ClrTreetableModule, ClrTreetablePlaceholder, ClrTreetableRow, ClrViewEditSection, ClrViewEditSectionModule, ColumnHiddenStatePersistenceDirective, CompletedByDateShape, ConfiguratorCommercialShape, ConfiguratorPrivateShape, ConsumptionShape, ContactDealerShape, CupraBrandShape, CustomersCenterShape, DATE, DELIMITER_REGEX, DWABrandShape, DatagridFieldDirective, DayModel, DieselShape, DollarBillForwardShape, DollarBillPartialShape, DriversAssistanceShape, EfficiencyShape, ElectricCarsServiceShape, ElectricCarsShape, ElectricityShape, EmissionShape, EnergyShape, EngineShape, ExpressServiceShape, ExteriorShape, ExternalPartForwardShape, FindACarShape, FleetServiceCommercialShape, FleetServicePrivateShape, GasCarsServiceShape, GasShape, HISTORY_NOTIFICATION_URL_PROVIDER, HISTORY_PROVIDER, HistoryProvider, HybridShape, InternalPartForwardShape, InvoiceReadyShape, InvoiceShape, ItemsForwardShape, ItemsReceiveShape, LITTLE_ENDIAN, LITTLE_ENDIAN_REGEX, LoadingVolumeShape, LocateShape, LocationBarComponent, LocationBarContentProvider, LocationBarNode, MIDDLE_ENDIAN, MIDDLE_ENDIAN_REGEX, MONTH, NewCarCommercialShape, NewCarPrivateShape, NewCarUtilityVehicleShape, NightServiceShape, NodeId, OffersShape, OnCallDutyShape, OpenSatShape, PaintMaterialForwardShape, PaintMaterialShape, PaintShopShape, ParkingLocation, PartNonStockForwardShape, PartsForwardShape, PartsNonStockShape, PartsShape, PayloadShape, PerformanceShape, PetrolShape, PlusServiceShape, PopoverPositions, PorscheBrandShape, PowerShape, PowerTrainShape, PriceTypeSwitchShape, QualifiedWorkshopShape, RepeatRepairShape, ReturnDateShape, RoadsideAssistanceShape, RouteShape, SEPARATOR_TEXT_DEFAULT, SeatAirShape, SeatBrandShape, SeatShape, ServiceBellShape, ServiceShape, SizeShape, SkodaBrandShape, StatePersistenceKeyDirective, StockLocatorCommercialShape, StockLocatorPrivateShape, TRANSLATIONS, TaskAndAppointment, TaxiDealerShape, TextForward, TopcardShape, TouaregServiceShape, TransmissionAutomaticShape, TransmissionManualShape, TreetableCellRenderer, TreetableHeaderRenderer, TreetableMainRenderer, TreetableRowRenderer, USER_INPUT_REGEX, UsedCarCommercialShape, UsedCarPrivateShape, VWBrandShape, VWNBrandShape, VWShape, VehicleConversionShape, View360Shape, VinShape, VirtualRealityShape, VsfSearchShape, WCPShape, WheelToWheelShape, WindscreenWashShape, WrenchForward, YEAR, acceptanceDateIcon, accessoriesIcon, accessoryPartsIcon, airConditionerIcon, allIcons, audiBrandIcon, awardWinnerPremiumIcon, blocksGroupForwardIcon, brochureIcon, bundleForwardIcon, businessCustomersCommercialIcon, businessCustomersPrivateIcon, businessPartnerWithCarIcon, calculatorForwardIcon, californiaServiceIcon, californiaSpecialistIcon, campaignIcon, campaignOutdatedIcon, carOffSite, carOnSite, carPickupServiceIcon, carWashIcon, certifiedRepairIcon, certifiedRetailerIcon, clrIconSVG, completedByDateIcon, configuratorCommercialIcon, configuratorPrivateIcon, consumptionIcon, contactDealerIcon, cupraBrandIcon, customersCenterIcon, dieselIcon, dollarBillForwardIcon, dollarBillPartialIcon, driversAssistanceIcon, dwaBrandIcon, efficiencyIcon, electricCarsIcon, electricCarsServiceIcon, electricityIcon, emissionIcon, energyIcon, engineIcon, escapeHtml, escapeRegex, expressServiceIcon, exteriorIcon, externalPartForwardIcon, findACarIcon, fleetServiceCommercialIcon, fleetServicePrivateIcon, gasCarsServiceIcon, gasIcon, hybridIcon, internalPartForwardIcon, invoiceIcon, invoiceReadyIcon, itemsForwardIcon, itemsRecieveIcon, loadingVolumeIcon, locateIcon, newCarCommercialIcon, newCarPrivateIcon, newCarUtilityVehicleIcon, nightServiceIcon, offersIcon, onCallDutyIcon, openSatIcon, paintMaterialForwardIcon, paintMaterialIcon, paintShopIcon, parkingLocationIcon, partsForwardIcon, partsIcon, partsNonStockForwardIcon, partsNonStockIcon, payloadIcon, performanceIcon, petrolIcon, plusServiceIcon, porscheBrandIcon, powerIcon, powerTrainIcon, priceTypeSwitchIcon, qualifiedWorkshopIcon, repeatRepairIcon, returnDateIcon, roadsideAssistanceIcon, routeIcon, seatAirIcon, seatBrandIcon, seatIcon, serviceBellIcon, serviceIcon, sizeIcon, skodaBrandIcon, stockLocatorCommercialIcon, stockLocatorPrivateIcon, taskAndAppointmentIcon, taxiDealerIcon, textForwardIcon, topcardIcon, touaregServiceIcon, transmissionAutomaticIcon, transmissionManualIcon, usedCarCommercialIcon, usedCarPrivateIcon, vehicleConversionIcon, view360Icon, vinIcon, virtualRealityIcon, volkswagenIcon, vsfSearchIcon, vwBrandIcon, vwnBrandIcon, wcpIcon, wheelToWheelIcon, windscreenWashIcon, wrenchForwardIcon };
8410
8428
  //# sourceMappingURL=clr-addons.mjs.map