@porscheinformatik/clr-addons 15.12.2 → 15.13.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,7 +1,8 @@
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
- export {};
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS1tb2RlbC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xyLWFkZG9ucy9oaXN0b3J5L2hpc3RvcnktbW9kZWwuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUciLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjAgUG9yc2NoZSBJbmZvcm1hdGlrLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIENsckhpc3RvcnlNb2RlbCB7XG4gIC8qKlxuICAgKiBUaGUgdXNlcm5hbWVcbiAgICovXG4gIHVzZXJuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBwYWdlXG4gICAqL1xuICBwYWdlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGV4dCBvZiB0aGUgcGFnZVxuICAgKi9cbiAgY29udGV4dDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogVGhlIHRpdGxlIHRvIGJlIGRpc3BsYXllZC5cbiAgICovXG4gIHRpdGxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB1cmwgd2hlcmUgdGhlIG5hdmlnYXRpb24gZ29lcy5cbiAgICovXG4gIHVybDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsckhpc3RvcnlTZXR0aW5nc01vZGVsIHtcbiAgLyoqXG4gICAqIEluZGljYXRpbmcgaWYgaGlzdG9yeSBpcyBwaW5uZWQgKGFkZGl0aW9uYWwgbWVudSBpcyBzaG93biBpZiB0cnVlKVxuICAgKi9cbiAgaGlzdG9yeVBpbm5lZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHVzZXJuYW1lXG4gICAqL1xuICB1c2VybmFtZTogc3RyaW5nO1xufVxuIl19
6
+ import { InjectionToken } from '@angular/core';
7
+ export const HISTORY_NOTIFICATION_URL_PROVIDER = new InjectionToken('HISTORY_NOTIFICATION_URL_PROVIDER');
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS1tb2RlbC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xyLWFkZG9ucy9oaXN0b3J5L2hpc3RvcnktbW9kZWwuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHLElBQUksY0FBYyxDQUFTLG1DQUFtQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjQgUG9yc2NoZSBJbmZvcm1hdGlrLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgSElTVE9SWV9OT1RJRklDQVRJT05fVVJMX1BST1ZJREVSID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0hJU1RPUllfTk9USUZJQ0FUSU9OX1VSTF9QUk9WSURFUicpO1xuXG5leHBvcnQgaW50ZXJmYWNlIENsckhpc3RvcnlNb2RlbCB7XG4gIC8qKlxuICAgKiBUaGUgdXNlcm5hbWVcbiAgICovXG4gIHVzZXJuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBwYWdlXG4gICAqL1xuICBwYWdlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGV4dCBvZiB0aGUgcGFnZVxuICAgKi9cbiAgY29udGV4dDoge1xuICAgIGFwcGxpY2F0aW9uTmFtZT86IHN0cmluZztcbiAgICB0ZW5hbnRpZDogc3RyaW5nO1xuICAgIGNvbnRleHQ/OiBzdHJpbmc7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICB9O1xuXG4gIC8qKlxuICAgKiBUaGUgdGl0bGUgdG8gYmUgZGlzcGxheWVkLlxuICAgKi9cbiAgdGl0bGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHVybCB3aGVyZSB0aGUgbmF2aWdhdGlvbiBnb2VzLlxuICAgKi9cbiAgdXJsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xySGlzdG9yeVNldHRpbmdzTW9kZWwge1xuICAvKipcbiAgICogSW5kaWNhdGluZyBpZiBoaXN0b3J5IGlzIHBpbm5lZCAoYWRkaXRpb25hbCBtZW51IGlzIHNob3duIGlmIHRydWUpXG4gICAqL1xuICBoaXN0b3J5UGlubmVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgdXNlcm5hbWVcbiAgICovXG4gIHVzZXJuYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xySGlzdG9yeU5vdGlmaWNhdGlvbk1vZGVsIHtcbiAgdXNlcm5hbWU6IHN0cmluZztcbiAgcGFnZU5hbWU6IHN0cmluZztcbiAgYXBwbGljYXRpb25OYW1lPzogc3RyaW5nO1xuICB0ZW5hbnRJZDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICB1cmw6IHN0cmluZztcbiAgY29udGV4dD86IHN0cmluZztcbn1cbiJdfQ==
@@ -3,11 +3,16 @@
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 { Injectable } from '@angular/core';
6
+ import { Inject, Injectable, Optional } from '@angular/core';
7
+ import { HISTORY_NOTIFICATION_URL_PROVIDER, } from './history-model.interface';
7
8
  import { BehaviorSubject } from 'rxjs';
9
+ import { HttpClient } from '@angular/common/http';
8
10
  import * as i0 from "@angular/core";
11
+ import * as i1 from "@angular/common/http";
9
12
  export class ClrHistoryService {
10
- constructor() {
13
+ constructor(historyNotificationUrl, httpClient) {
14
+ this.historyNotificationUrl = historyNotificationUrl;
15
+ this.httpClient = httpClient;
11
16
  this.cookieSettings$ = new BehaviorSubject([]);
12
17
  this.cookieName = 'clr.history';
13
18
  this.cookieNameSettings = 'clr.history.settings';
@@ -25,6 +30,7 @@ export class ClrHistoryService {
25
30
  * @returns true when entry added, otherwise false is returned
26
31
  */
27
32
  addHistoryEntry(historyEntry, domain) {
33
+ this.notifyExternalUrl(historyEntry);
28
34
  this.removeFromHistory(historyEntry);
29
35
  let history = this.getHistory(historyEntry.username, historyEntry.context);
30
36
  /* only add to history in case url does not exceed maxUrlSize characters */
@@ -199,10 +205,32 @@ export class ClrHistoryService {
199
205
  domain.shift();
200
206
  return domain.join('.');
201
207
  }
208
+ notifyExternalUrl(historyEntry) {
209
+ if (!this.historyNotificationUrl || !this.httpClient) {
210
+ return;
211
+ }
212
+ const body = {
213
+ username: historyEntry.username,
214
+ pageName: historyEntry.pageName,
215
+ applicationName: historyEntry.context.applicationName,
216
+ tenantId: historyEntry.context.tenantid,
217
+ title: historyEntry.title,
218
+ url: historyEntry.url,
219
+ context: historyEntry.context.context,
220
+ };
221
+ this.httpClient.post(this.historyNotificationUrl, body).subscribe();
222
+ }
202
223
  }
203
- ClrHistoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: ClrHistoryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
224
+ ClrHistoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: ClrHistoryService, deps: [{ token: HISTORY_NOTIFICATION_URL_PROVIDER, optional: true }, { token: i1.HttpClient, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
204
225
  ClrHistoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: ClrHistoryService });
205
226
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: ClrHistoryService, decorators: [{
206
227
  type: Injectable
207
- }], ctorParameters: function () { return []; } });
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Nsci1hZGRvbnMvaGlzdG9yeS9oaXN0b3J5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFHdkMsTUFBTSxPQUFPLGlCQUFpQjtJQVc1QjtRQVZPLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQTRCLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLGVBQVUsR0FBRyxhQUFhLENBQUM7UUFDM0IsdUJBQWtCLEdBQUcsc0JBQXNCLENBQUM7UUFHNUMsMEJBQTBCO1FBQ2xCLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDdkIsMENBQTBDO1FBQ2xDLGVBQVUsR0FBRyxHQUFHLENBQUM7UUFHdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGVBQWUsQ0FBQyxZQUE2QixFQUFFLE1BQWU7UUFDNUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3JDLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFM0UsMkVBQTJFO1FBQzNFLElBQUksWUFBWSxDQUFDLEdBQUcsSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxF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bWF0aWsuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENsckhpc3RvcnlNb2RlbCwgQ2xySGlzdG9yeVNldHRpbmdzTW9kZWwgfSBmcm9tICcuL2hpc3RvcnktbW9kZWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2xySGlzdG9yeVNlcnZpY2Uge1xuICBwdWJsaWMgY29va2llU2V0dGluZ3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDbHJIaXN0b3J5U2V0dGluZ3NNb2RlbFtdPihbXSk7XG4gIGNvb2tpZU5hbWUgPSAnY2xyLmhpc3RvcnknO1xuICBjb29raWVOYW1lU2V0dGluZ3MgPSAnY2xyLmhpc3Rvcnkuc2V0dGluZ3MnO1xuICBwcml2YXRlIGV4cGlyeURhdGU6IERhdGU7XG5cbiAgLy8gbWF4bWltdW0gaGlzdG9yeSBsZW5ndGhcbiAgcHJpdmF0ZSBtYXhTaXplID0gMTAyNDtcbiAgLy8gbWF4aW11bSB1cmwgbGVuZ3RoIGZvciB1c2FnZSBpbiBoaXN0b3J5XG4gIHByaXZhdGUgbWF4VXJsU2l6ZSA9IDI1NjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmV4cGlyeURhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIHRoaXMuZXhwaXJ5RGF0ZS5zZXRUaW1lKHRoaXMuZXhwaXJ5RGF0ZS5nZXRUaW1lKCkgKyAzNjUgKiAyNCAqIDYwICogNjAgKiAxMDAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBuZXcgaGlzdG9yeSBlbnRyeVxuICAgKiBAcGFyYW0gaGlzdG9yeUVudHJ5IFRoZSBlbnRyeSB0byBiZSBhZGRlZFxuICAgKiBAcGFyYW0gZG9tYWluIFRoZSBvcHRpb25hbCBkb21haW4gcGFyYW0gd2hlcmUgdGhlIGNvb2tpZSBpcyBzdG9yZWRcbiAgICogQHJldHVybnMgdHJ1ZSB3aGVuIGVudHJ5IGFkZGVkLCBvdGhlcndpc2UgZmFsc2UgaXMgcmV0dXJuZWRcbiAgICovXG4gIGFkZEhpc3RvcnlFbnRyeShoaXN0b3J5RW50cnk6IENsckhpc3RvcnlNb2RlbCwgZG9tYWluPzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdGhpcy5yZW1vdmVGcm9tSGlzdG9yeShoaXN0b3J5RW50cnkpO1xuICAgIGxldCBoaXN0b3J5ID0gdGhpcy5nZXRIaXN0b3J5KGhpc3RvcnlFbnRyeS51c2VybmFtZSwgaGlzdG9yeUVudHJ5LmNvbnRleHQpO1xuXG4gICAgLyogb25seSBhZGQgdG8gaGlzdG9yeSBpbiBjYXNlIHVybCBkb2VzIG5vdCBleGNlZWQgbWF4VXJsU2l6ZSBjaGFyYWN0ZXJzICovXG4gICAgaWYgKGhpc3RvcnlFbnRyeS51cmwgJiYgaGlzdG9yeUVudHJ5LnVybC5sZW5ndGggPCB0aGlzLm1heFVybFNpemUpIHtcbiAgICAgIC8qIGFkZCBpdCBhcyBsYXN0IGVsZW1lbnQgKi9cbiAgICAgIGhpc3RvcnkucHVzaChoaXN0b3J5RW50cnkpO1xuICAgICAgLyogc3VwcG9ydCBhIG1heGltdW0gb2YgNCBwYWdlcyBpbiBoaXN0b3J5ICovXG4gICAgICBoaXN0b3J5ID0gaGlzdG9yeS5zbGljZSgtNCk7XG4gICAgICB0aGlzLnNldEhpc3RvcnkoaGlzdG9yeSwgZG9tYWluKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXRIaXN0b3J5RGlzcGxheSh1c2VybmFtZTogc3RyaW5nLCBjb250ZXh0OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KTogQ2xySGlzdG9yeU1vZGVsW10ge1xuICAgIGNvbnN0IGhpc3RvcnkgPSB0aGlzLmdldEhpc3RvcnkodXNlcm5hbWUsIGNvbnRleHQpO1xuICAgIGlmIChoaXN0b3J5Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRQYWdlVGl0bGUgPSBoaXN0b3J5W2hpc3RvcnkubGVuZ3RoIC0gMV0udGl0bGU7XG4gICAgICBjb25zdCB0b0Rpc3BsYXk6IENsckhpc3RvcnlNb2RlbFtdID0gW107XG4gICAgICBjb25zdCBhbHJlYWR5RGlzcGxheTogc3RyaW5nW10gPSBbXTtcblxuICAgICAgZm9yIChsZXQgaSA9IGhpc3RvcnkubGVuZ3RoIC0gMTsgaSA+PSAwICYmIGFscmVhZHlEaXNwbGF5Lmxlbmd0aCA8IDQ7IGktLSkge1xuICAgICAgICBpZiAoIWFscmVhZHlEaXNwbGF5LmluY2x1ZGVzKGhpc3RvcnlbaV0udGl0bGUpICYmIGhpc3RvcnlbaV0udGl0bGUgIT09IGN1cnJlbnRQYWdlVGl0bGUpIHtcbiAgICAgICAgICBhbHJlYWR5RGlzcGxheS5wdXNoKGhpc3RvcnlbaV0udGl0bGUpO1xuICAgICAgICAgIHRvRGlzcGxheS5wdXNoKGhpc3RvcnlbaV0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0b0Rpc3BsYXkucmV2ZXJzZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gaGlzdG9yeTtcbiAgICB9XG4gIH1cblxuICBnZXRIaXN0b3J5KHVzZXJuYW1lOiBzdHJpbmcsIGNvbnRleHQ6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pOiBDbHJIaXN0b3J5TW9kZWxbXSB7XG4gICAgY29uc3QgaGlzdG9yeTogQ2xySGlzdG9yeU1vZGVsW10gPSB0aGlzLmdldENvb2tpZUJ5TmFtZSh0aGlzLmNvb2tpZU5hbWUpO1xuICAgIGlmICghaGlzdG9yeSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICByZXR1cm4gaGlzdG9yeS5maWx0ZXIoZWxlbWVudCA9PiB0aGlzLmNoZWNrRXF1YWxDb250ZXh0KGVsZW1lbnQsIGNvbnRleHQpICYmIGVsZW1lbnQudXNlcm5hbWUgPT09IHVzZXJuYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgaGlzdG9yeVxuICAgKiBAcGFyYW0gZW50cmllc1xuICAgKiBAcGFyYW0gZG9tYWluXG4gICAqL1xuICBwcml2YXRlIHNldEhpc3RvcnkoZW50cmllczogQ2xySGlzdG9yeU1vZGVsW10sIGRvbWFpbj86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghZW50cmllcyB8fCBlbnRyaWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgLy8gY2xlYXIgYWxsIGVudHJpZXNcbiAgICAgIHRoaXMuc2V0Q29va2llKHRoaXMuY29va2llTmFtZSwgdGhpcy5lbmNvZGUoW10pLCBkb21haW4pO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbnRyaWVzID0gdGhpcy5yZWR1Y2VTaXplKGVudHJpZXMpO1xuICAgICAgLy8gZW5jb2RlIHRpdGxlICYgcGFnZW5hbWUgdG8gYmUgY29va2llIHNhdmluZyBzYXZlXG4gICAgICBpZiAoZW50cmllcyAmJiBlbnRyaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZW50cmllcy5mb3JFYWNoKGVudHJ5ID0+IHtcbiAgICAgICAgICBlbnRyeS50aXRsZSA9IGVuY29kZVVSSShlbnRyeS50aXRsZSk7XG4gICAgICAgICAgZW50cnkucGFnZU5hbWUgPSBlbmNvZGVVUkkoZW50cnkucGFnZU5hbWUpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2V0Q29va2llKHRoaXMuY29va2llTmFtZSwgdGhpcy5lbmNvZGUoZW50cmllcyksIGRvbWFpbik7XG4gICAgfVxuICB9XG5cbiAgcmVkdWNlU2l6ZShlbnRyaWVzOiBDbHJIaXN0b3J5TW9kZWxbXSk6IENsckhpc3RvcnlNb2RlbFtdIHtcbiAgICBpZiAoSlNPTi5zdHJpbmdpZnkoZW50cmllcykubGVuZ3RoID4gdGhpcy5tYXhTaXplKSB7XG4gICAgICBjb25zdCByZWR1Y2VkOiBDbHJIaXN0b3J5TW9kZWxbXSA9IFsuLi5lbnRyaWVzXTtcbiAgICAgIGRvIHtcbiAgICAgICAgcmVkdWNlZC5zaGlmdCgpO1xuICAgICAgfSB3aGlsZSAoSlNPTi5zdHJpbmdpZnkocmVkdWNlZCkubGVuZ3RoID4gdGhpcy5tYXhTaXplKTtcbiAgICAgIHJldHVybiByZWR1Y2VkO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZW50cmllcztcbiAgICB9XG4gIH1cblxuICByZXNldEhpc3RvcnkoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRIaXN0b3J5KG51bGwpO1xuICB9XG5cbiAgcmVtb3ZlRnJvbUhpc3RvcnkoZW50cnk6IENsckhpc3RvcnlNb2RlbCk6IHZvaWQge1xuICAgIGxldCBoaXN0b3J5ID0gdGhpcy5nZXRIaXN0b3J5KGVudHJ5LnVzZXJuYW1lLCBlbnRyeS5jb250ZXh0KTtcbiAgICAvKiByZW1vdmUgY3VycmVudCBlbnRyeSBmcm9tIGFycmF5ICovXG4gICAgaGlzdG9yeSA9IGhpc3RvcnkuZmlsdGVyKFxuICAgICAgZWxlbWVudCA9PlxuICAgICAgICAhKFxuICAgICAgICAgIGVsZW1lbnQudGl0bGUgPT09IGVudHJ5LnRpdGxlICYmXG4gICAgICAgICAgZWxlbWVudC51c2VybmFtZSA9PT0gZW50cnkudXNlcm5hbWUgJiZcbiAgICAgICAgICB0aGlzLmNoZWNrRXF1YWxDb250ZXh0KGVsZW1lbnQsIGVudHJ5LmNvbnRleHQpXG4gICAgICAgIClcbiAgICApO1xuICAgIHRoaXMuc2V0SGlzdG9yeShoaXN0b3J5KTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tFcXVhbENvbnRleHQoZW50cnk6IENsckhpc3RvcnlNb2RlbCwgdG9Db21wYXJlOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KTogYm9vbGVhbiB7XG4gICAgbGV0IGVxdWFsID0gZmFsc2U7XG4gICAgaWYgKGVudHJ5ICYmIGVudHJ5LmNvbnRleHQgJiYgdG9Db21wYXJlKSB7XG4gICAgICBPYmplY3Qua2V5cyh0b0NvbXBhcmUpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgZXF1YWwgPSBrZXkgaW4gZW50cnkuY29udGV4dCAmJiBlbnRyeS5jb250ZXh0W2tleV0gPT09IHRvQ29tcGFyZVtrZXldO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBlcXVhbDtcbiAgfVxuXG4gIGluaXRpYWxpemVDb29raWVTZXR0aW5ncyh1c2VybmFtZTogc3RyaW5nLCBkb21haW4/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBsZXQgaGlzdG9yeVNldHRpbmdzOiBDbHJIaXN0b3J5U2V0dGluZ3NNb2RlbFtdID0gdGhpcy5nZXRDb29raWVCeU5hbWUodGhpcy5jb29raWVOYW1lU2V0dGluZ3MpO1xuICAgIGlmICghaGlzdG9yeVNldHRpbmdzIHx8IGhpc3RvcnlTZXR0aW5ncy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuc2V0SGlzdG9yeVBpbm5lZCh1c2VybmFtZSwgZmFsc2UsIGRvbWFpbik7XG4gICAgICBoaXN0b3J5U2V0dGluZ3MgPSBbeyB1c2VybmFtZTogdXNlcm5hbWUsIGhpc3RvcnlQaW5uZWQ6IGZhbHNlIH1dO1xuICAgIH1cbiAgICBpZiAoIWhpc3RvcnlTZXR0aW5ncy5maW5kKGhTZXR0aW5nID0+IGhTZXR0aW5nLnVzZXJuYW1lID09PSB1c2VybmFtZSkpIHtcbiAgICAgIHRoaXMuc2V0SGlzdG9yeVBpbm5lZCh1c2VybmFtZSwgZmFsc2UsIGRvbWFpbik7XG4gICAgICBoaXN0b3J5U2V0dGluZ3MucHVzaCh7IHVzZXJuYW1lOiB1c2VybmFtZSwgaGlzdG9yeVBpbm5lZDogZmFsc2UgfSk7XG4gICAgfVxuICAgIHRoaXMuY29va2llU2V0dGluZ3MkLm5leHQoaGlzdG9yeVNldHRpbmdzKTtcbiAgfVxuXG4gIHNldEhpc3RvcnlQaW5uZWQodXNlcm5hbWU6IHN0cmluZywgcGluOiBib29sZWFuLCBkb21haW4/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBoaXN0b3J5U2V0dGluZ3M6IENsckhpc3RvcnlTZXR0aW5nc01vZGVsW10gPSB0aGlzLmdldENvb2tpZUJ5TmFtZSh0aGlzLmNvb2tpZU5hbWVTZXR0aW5ncyk7XG4gICAgY29uc3QgaGlzdG9yeVNldHRpbmcgPSBoaXN0b3J5U2V0dGluZ3MuZmluZChoU2V0dGluZyA9PiBoU2V0dGluZy51c2VybmFtZSA9PT0gdXNlcm5hbWUpO1xuICAgIGlmIChoaXN0b3J5U2V0dGluZykge1xuICAgICAgaGlzdG9yeVNldHRpbmcuaGlzdG9yeVBpbm5lZCA9IHBpbjtcbiAgICB9IGVsc2Uge1xuICAgICAgaGlzdG9yeVNldHRpbmdzLnB1c2goeyB1c2VybmFtZTogdXNlcm5hbWUsIGhpc3RvcnlQaW5uZWQ6IHBpbiB9KTtcbiAgICB9XG4gICAgdGhpcy5jb29raWVTZXR0aW5ncyQubmV4dChoaXN0b3J5U2V0dGluZ3MpO1xuICAgIC8vIFNldCBpdFxuICAgIHRoaXMuc2V0Q29va2llKHRoaXMuY29va2llTmFtZVNldHRpbmdzLCBKU09OLnN0cmluZ2lmeShoaXN0b3J5U2V0dGluZ3MpLCBkb21haW4pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb29raWVCeU5hbWUobmFtZTogc3RyaW5nKTogYW55W10ge1xuICAgIGNvbnN0IGNvb2tpZUVudHJpZXMgPVxuICAgICAgZG9jdW1lbnQuY29va2llXG4gICAgICAgIC5zcGxpdCgnOycpXG4gICAgICAgIC5tYXAoYyA9PiBjLnRyaW0oKSlcbiAgICAgICAgLmZpbHRlcihjb29raWUgPT4ge1xuICAgICAgICAgIHJldHVybiBjb29raWUuc3Vic3RyaW5nKDAsIG5hbWUubGVuZ3RoICsgMSkgPT09IGAke25hbWV9PWA7XG4gICAgICAgIH0pXG4gICAgICAgIC5tYXAoY29va2llID0+IHtcbiAgICAgICAgICByZXR1cm4gbmFtZSA9PT0gdGhpcy5jb29raWVOYW1lXG4gICAgICAgICAgICA/IHRoaXMuZGVjb2RlKGNvb2tpZS5zdWJzdHJpbmcobmFtZS5sZW5ndGggKyAxKSlcbiAgICAgICAgICAgIDogSlNPTi5wYXJzZShjb29raWUuc3Vic3RyaW5nKG5hbWUubGVuZ3RoICsgMSkpO1xuICAgICAgICB9KVswXSB8fCBbXTtcbiAgICBpZiAoY29va2llRW50cmllcyAmJiBjb29raWVFbnRyaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvb2tpZUVudHJpZXMuZm9yRWFjaCgoZW50cnk6IGFueSkgPT4ge1xuICAgICAgICBpZiAoZW50cnkudGl0bGUpIHtcbiAgICAgICAgICBlbnRyeS50aXRsZSA9IGRlY29kZVVSSShlbnRyeS50aXRsZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVudHJ5LnBhZ2VOYW1lKSB7XG4gICAgICAgICAgZW50cnkucGFnZU5hbWUgPSBkZWNvZGVVUkkoZW50cnkucGFnZU5hbWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGNvb2tpZUVudHJpZXM7XG4gIH1cblxuICBwcml2YXRlIGVuY29kZShjb250ZW50OiBDbHJIaXN0b3J5TW9kZWxbXSk6IHN0cmluZyB7XG4gICAgY29uc3QganNvblN0cmluZyA9IGJ0b2EoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KGNvbnRlbnQpKSk7XG4gICAgcmV0dXJuIGpzb25TdHJpbmcucmVwbGFjZSgvXFwrL2csICctJykucmVwbGFjZSgvXFwvL2csICdfJykucmVwbGFjZSgvPS9nLCAnIScpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWNvZGUoY29udGVudDogc3RyaW5nKTogQ2xySGlzdG9yeU1vZGVsW10ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBiYXNlNjQgPSBjb250ZW50LnJlcGxhY2UoLy0vZywgJysnKS5yZXBsYWNlKC9fL2csICcvJykucmVwbGFjZSgvIS9nLCAnPScpO1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGVjb2RlVVJJQ29tcG9uZW50KGF0b2IoYmFzZTY0KSkpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb29raWUobmFtZTogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcsIGRvbWFpbjogc3RyaW5nKTogdm9pZCB7XG4gICAgZG9jdW1lbnQuY29va2llID1cbiAgICAgIG5hbWUgK1xuICAgICAgJz0nICtcbiAgICAgIGNvbnRlbnQgK1xuICAgICAgJztkb21haW49JyArXG4gICAgICAoZG9tYWluID8gZG9tYWluIDogdGhpcy5nZXREb21haW4oKSkgK1xuICAgICAgJztleHBpcmVzPScgK1xuICAgICAgdGhpcy5leHBpcnlEYXRlLnRvVVRDU3RyaW5nKCkgK1xuICAgICAgJztwYXRoPS8nO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREb21haW4oKTogc3RyaW5nIHtcbiAgICBjb25zdCBkb21haW4gPSB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUuc3BsaXQoJy4nKTtcbiAgICAvL2xvY2FsaG9zdCBmYWxsYmFja1xuICAgIGlmIChkb21haW4ubGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4gZG9tYWluWzBdO1xuICAgIH1cbiAgICBkb21haW4uc2hpZnQoKTtcbiAgICByZXR1cm4gZG9tYWluLmpvaW4oJy4nKTtcbiAgfVxufVxuIl19
228
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
229
+ type: Inject,
230
+ args: [HISTORY_NOTIFICATION_URL_PROVIDER]
231
+ }, {
232
+ type: Optional
233
+ }] }, { type: i1.HttpClient, decorators: [{
234
+ type: Optional
235
+ }] }]; } });
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Nsci1hZGRvbnMvaGlzdG9yeS9oaXN0b3J5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBSUwsaUNBQWlDLEdBQ2xDLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQUdsRCxNQUFNLE9BQU8saUJBQWlCO0lBVzVCLFlBQ2lFLHNCQUE4QixFQUN6RSxVQUFzQjtRQURxQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQVE7UUFDekUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVpyQyxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUE0QixFQUFFLENBQUMsQ0FBQztRQUM1RSxlQUFVLEdBQUcsYUFBYSxDQUFDO1FBQzNCLHVCQUFrQixHQUFHLHNCQUFzQixDQUFDO1FBRzVDLDBCQUEwQjtRQUNsQixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLDBDQUEwQztRQUNsQyxlQUFVLEdBQUcsR0FBRyxDQUFDO1FBTXZCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUMsWUFBNkIsRUFBRSxNQUFlO1FBQzVELElBQUksQ0FBQyxpQkFBaUIsQ0FB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TUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2xCO1FBQ0QsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxZQUE2QjtRQUNyRCxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwRCxPQUFPO1NBQ1I7UUFFRCxNQUFNLElBQUksR0FBZ0M7WUFDeEMsUUFBUSxFQUFFLFlBQVksQ0FBQyxRQUFRO1lBQy9CLFFBQVEsRUFBRSxZQUFZLENBQUMsUUFBUTtZQUMvQixlQUFlLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxlQUFlO1lBQ3JELFFBQVEsRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLFFBQVE7WUFDdkMsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLO1lBQ3pCLEdBQUcsRUFBRSxZQUFZLENBQUMsR0FBRztZQUNyQixPQUFPLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPO1NBQ3RDLENBQUM7UUFFRixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDdEUsQ0FBQzs7OEdBNU9VLGlCQUFpQixrQkFZbEIsaUNBQWlDO2tIQVpoQyxpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVTs7MEJBYU4sTUFBTTsyQkFBQyxpQ0FBaUM7OzBCQUFHLFFBQVE7OzBCQUNuRCxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDI0IFBvcnNjaGUgSW5mb3JtYXRpay4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ2xySGlzdG9yeU1vZGVsLFxuICBDbHJIaXN0b3J5Tm90aWZpY2F0aW9uTW9kZWwsXG4gIENsckhpc3RvcnlTZXR0aW5nc01vZGVsLFxuICBISVNUT1JZX05PVElGSUNBVElPTl9VUkxfUFJPVklERVIsXG59IGZyb20gJy4vaGlzdG9yeS1tb2RlbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2xySGlzdG9yeVNlcnZpY2Uge1xuICBwdWJsaWMgY29va2llU2V0dGluZ3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDbHJIaXN0b3J5U2V0dGluZ3NNb2RlbFtdPihbXSk7XG4gIGNvb2tpZU5hbWUgPSAnY2xyLmhpc3RvcnknO1xuICBjb29raWVOYW1lU2V0dGluZ3MgPSAnY2xyLmhpc3Rvcnkuc2V0dGluZ3MnO1xuICBwcml2YXRlIGV4cGlyeURhdGU6IERhdGU7XG5cbiAgLy8gbWF4bWltdW0gaGlzdG9yeSBsZW5ndGhcbiAgcHJpdmF0ZSBtYXhTaXplID0gMTAyNDtcbiAgLy8gbWF4aW11bSB1cmwgbGVuZ3RoIGZvciB1c2FnZSBpbiBoaXN0b3J5XG4gIHByaXZhdGUgbWF4VXJsU2l6ZSA9IDI1NjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEhJU1RPUllfTk9USUZJQ0FUSU9OX1VSTF9QUk9WSURFUikgQE9wdGlvbmFsKCkgcHJpdmF0ZSBoaXN0b3J5Tm90aWZpY2F0aW9uVXJsOiBzdHJpbmcsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50XG4gICkge1xuICAgIHRoaXMuZXhwaXJ5RGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgdGhpcy5leHBpcnlEYXRlLnNldFRpbWUodGhpcy5leHBpcnlEYXRlLmdldFRpbWUoKSArIDM2NSAqIDI0ICogNjAgKiA2MCAqIDEwMDApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyBoaXN0b3J5IGVudHJ5XG4gICAqIEBwYXJhbSBoaXN0b3J5RW50cnkgVGhlIGVudHJ5IHRvIGJlIGFkZGVkXG4gICAqIEBwYXJhbSBkb21haW4gVGhlIG9wdGlvbmFsIGRvbWFpbiBwYXJhbSB3aGVyZSB0aGUgY29va2llIGlzIHN0b3JlZFxuICAgKiBAcmV0dXJucyB0cnVlIHdoZW4gZW50cnkgYWRkZWQsIG90aGVyd2lzZSBmYWxzZSBpcyByZXR1cm5lZFxuICAgKi9cbiAgYWRkSGlzdG9yeUVudHJ5KGhpc3RvcnlFbnRyeTogQ2xySGlzdG9yeU1vZGVsLCBkb21haW4/OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aGlzLm5vdGlmeUV4dGVybmFsVXJsKGhpc3RvcnlFbnRyeSk7XG4gICAgdGhpcy5yZW1vdmVGcm9tSGlzdG9yeShoaXN0b3J5RW50cnkpO1xuICAgIGxldCBoaXN0b3J5ID0gdGhpcy5nZXRIaXN0b3J5KGhpc3RvcnlFbnRyeS51c2VybmFtZSwgaGlzdG9yeUVudHJ5LmNvbnRleHQpO1xuXG4gICAgLyogb25seSBhZGQgdG8gaGlzdG9yeSBpbiBjYXNlIHVybCBkb2VzIG5vdCBleGNlZWQgbWF4VXJsU2l6ZSBjaGFyYWN0ZXJzICovXG4gICAgaWYgKGhpc3RvcnlFbnRyeS51cmwgJiYgaGlzdG9yeUVudHJ5LnVybC5sZW5ndGggPCB0aGlzLm1heFVybFNpemUpIHtcbiAgICAgIC8qIGFkZCBpdCBhcyBsYXN0IGVsZW1lbnQgKi9cbiAgICAgIGhpc3RvcnkucHVzaChoaXN0b3J5RW50cnkpO1xuICAgICAgLyogc3VwcG9ydCBhIG1heGltdW0gb2YgNCBwYWdlcyBpbiBoaXN0b3J5ICovXG4gICAgICBoaXN0b3J5ID0gaGlzdG9yeS5zbGljZSgtNCk7XG4gICAgICB0aGlzLnNldEhpc3RvcnkoaGlzdG9yeSwgZG9tYWluKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXRIaXN0b3J5RGlzcGxheSh1c2VybmFtZTogc3RyaW5nLCBjb250ZXh0OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KTogQ2xySGlzdG9yeU1vZGVsW10ge1xuICAgIGNvbnN0IGhpc3RvcnkgPSB0aGlzLmdldEhpc3RvcnkodXNlcm5hbWUsIGNvbnRleHQpO1xuICAgIGlmIChoaXN0b3J5Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRQYWdlVGl0bGUgPSBoaXN0b3J5W2hpc3RvcnkubGVuZ3RoIC0gMV0udGl0bGU7XG4gICAgICBjb25zdCB0b0Rpc3BsYXk6IENsckhpc3RvcnlNb2RlbFtdID0gW107XG4gICAgICBjb25zdCBhbHJlYWR5RGlzcGxheTogc3RyaW5nW10gPSBbXTtcblxuICAgICAgZm9yIChsZXQgaSA9IGhpc3RvcnkubGVuZ3RoIC0gMTsgaSA+PSAwICYmIGFscmVhZHlEaXNwbGF5Lmxlbmd0aCA8IDQ7IGktLSkge1xuICAgICAgICBpZiAoIWFscmVhZHlEaXNwbGF5LmluY2x1ZGVzKGhpc3RvcnlbaV0udGl0bGUpICYmIGhpc3RvcnlbaV0udGl0bGUgIT09IGN1cnJlbnRQYWdlVGl0bGUpIHtcbiAgICAgICAgICBhbHJlYWR5RGlzcGxheS5wdXNoKGhpc3RvcnlbaV0udGl0bGUpO1xuICAgICAgICAgIHRvRGlzcGxheS5wdXNoKGhpc3RvcnlbaV0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0b0Rpc3BsYXkucmV2ZXJzZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gaGlzdG9yeTtcbiAgICB9XG4gIH1cblxuICBnZXRIaXN0b3J5KHVzZXJuYW1lOiBzdHJpbmcsIGNvbnRleHQ6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pOiBDbHJIaXN0b3J5TW9kZWxbXSB7XG4gICAgY29uc3QgaGlzdG9yeTogQ2xySGlzdG9yeU1vZGVsW10gPSB0aGlzLmdldENvb2tpZUJ5TmFtZSh0aGlzLmNvb2tpZU5hbWUpO1xuICAgIGlmICghaGlzdG9yeSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICByZXR1cm4gaGlzdG9yeS5maWx0ZXIoZWxlbWVudCA9PiB0aGlzLmNoZWNrRXF1YWxDb250ZXh0KGVsZW1lbnQsIGNvbnRleHQpICYmIGVsZW1lbnQudXNlcm5hbWUgPT09IHVzZXJuYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgaGlzdG9yeVxuICAgKiBAcGFyYW0gZW50cmllc1xuICAgKiBAcGFyYW0gZG9tYWluXG4gICAqL1xuICBwcml2YXRlIHNldEhpc3RvcnkoZW50cmllczogQ2xySGlzdG9yeU1vZGVsW10sIGRvbWFpbj86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghZW50cmllcyB8fCBlbnRyaWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgLy8gY2xlYXIgYWxsIGVudHJpZXNcbiAgICAgIHRoaXMuc2V0Q29va2llKHRoaXMuY29va2llTmFtZSwgdGhpcy5lbmNvZGUoW10pLCBkb21haW4pO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbnRyaWVzID0gdGhpcy5yZWR1Y2VTaXplKGVudHJpZXMpO1xuICAgICAgLy8gZW5jb2RlIHRpdGxlICYgcGFnZW5hbWUgdG8gYmUgY29va2llIHNhdmluZyBzYXZlXG4gICAgICBpZiAoZW50cmllcyAmJiBlbnRyaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZW50cmllcy5mb3JFYWNoKGVudHJ5ID0+IHtcbiAgICAgICAgICBlbnRyeS50aXRsZSA9IGVuY29kZVVSSShlbnRyeS50aXRsZSk7XG4gICAgICAgICAgZW50cnkucGFnZU5hbWUgPSBlbmNvZGVVUkkoZW50cnkucGFnZU5hbWUpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2V0Q29va2llKHRoaXMuY29va2llTmFtZSwgdGhpcy5lbmNvZGUoZW50cmllcyksIGRvbWFpbik7XG4gICAgfVxuICB9XG5cbiAgcmVkdWNlU2l6ZShlbnRyaWVzOiBDbHJIaXN0b3J5TW9kZWxbXSk6IENsckhpc3RvcnlNb2RlbFtdIHtcbiAgICBpZiAoSlNPTi5zdHJpbmdpZnkoZW50cmllcykubGVuZ3RoID4gdGhpcy5tYXhTaXplKSB7XG4gICAgICBjb25zdCByZWR1Y2VkOiBDbHJIaXN0b3J5TW9kZWxbXSA9IFsuLi5lbnRyaWVzXTtcbiAgICAgIGRvIHtcbiAgICAgICAgcmVkdWNlZC5zaGlmdCgpO1xuICAgICAgfSB3aGlsZSAoSlNPTi5zdHJpbmdpZnkocmVkdWNlZCkubGVuZ3RoID4gdGhpcy5tYXhTaXplKTtcbiAgICAgIHJldHVybiByZWR1Y2VkO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZW50cmllcztcbiAgICB9XG4gIH1cblxuICByZXNldEhpc3RvcnkoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRIaXN0b3J5KG51bGwpO1xuICB9XG5cbiAgcmVtb3ZlRnJvbUhpc3RvcnkoZW50cnk6IENsckhpc3RvcnlNb2RlbCk6IHZvaWQge1xuICAgIGxldCBoaXN0b3J5ID0gdGhpcy5nZXRIaXN0b3J5KGVudHJ5LnVzZXJuYW1lLCBlbnRyeS5jb250ZXh0KTtcbiAgICAvKiByZW1vdmUgY3VycmVudCBlbnRyeSBmcm9tIGFycmF5ICovXG4gICAgaGlzdG9yeSA9IGhpc3RvcnkuZmlsdGVyKFxuICAgICAgZWxlbWVudCA9PlxuICAgICAgICAhKFxuICAgICAgICAgIGVsZW1lbnQudGl0bGUgPT09IGVudHJ5LnRpdGxlICYmXG4gICAgICAgICAgZWxlbWVudC51c2VybmFtZSA9PT0gZW50cnkudXNlcm5hbWUgJiZcbiAgICAgICAgICB0aGlzLmNoZWNrRXF1YWxDb250ZXh0KGVsZW1lbnQsIGVudHJ5LmNvbnRleHQpXG4gICAgICAgIClcbiAgICApO1xuICAgIHRoaXMuc2V0SGlzdG9yeShoaXN0b3J5KTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tFcXVhbENvbnRleHQoZW50cnk6IENsckhpc3RvcnlNb2RlbCwgdG9Db21wYXJlOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KTogYm9vbGVhbiB7XG4gICAgbGV0IGVxdWFsID0gZmFsc2U7XG4gICAgaWYgKGVudHJ5ICYmIGVudHJ5LmNvbnRleHQgJiYgdG9Db21wYXJlKSB7XG4gICAgICBPYmplY3Qua2V5cyh0b0NvbXBhcmUpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgZXF1YWwgPSBrZXkgaW4gZW50cnkuY29udGV4dCAmJiBlbnRyeS5jb250ZXh0W2tleV0gPT09IHRvQ29tcGFyZVtrZXldO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBlcXVhbDtcbiAgfVxuXG4gIGluaXRpYWxpemVDb29raWVTZXR0aW5ncyh1c2VybmFtZTogc3RyaW5nLCBkb21haW4/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBsZXQgaGlzdG9yeVNldHRpbmdzOiBDbHJIaXN0b3J5U2V0dGluZ3NNb2RlbFtdID0gdGhpcy5nZXRDb29raWVCeU5hbWUodGhpcy5jb29raWVOYW1lU2V0dGluZ3MpO1xuICAgIGlmICghaGlzdG9yeVNldHRpbmdzIHx8IGhpc3RvcnlTZXR0aW5ncy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuc2V0SGlzdG9yeVBpbm5lZCh1c2VybmFtZSwgZmFsc2UsIGRvbWFpbik7XG4gICAgICBoaXN0b3J5U2V0dGluZ3MgPSBbeyB1c2VybmFtZTogdXNlcm5hbWUsIGhpc3RvcnlQaW5uZWQ6IGZhbHNlIH1dO1xuICAgIH1cbiAgICBpZiAoIWhpc3RvcnlTZXR0aW5ncy5maW5kKGhTZXR0aW5nID0+IGhTZXR0aW5nLnVzZXJuYW1lID09PSB1c2VybmFtZSkpIHtcbiAgICAgIHRoaXMuc2V0SGlzdG9yeVBpbm5lZCh1c2VybmFtZSwgZmFsc2UsIGRvbWFpbik7XG4gICAgICBoaXN0b3J5U2V0dGluZ3MucHVzaCh7IHVzZXJuYW1lOiB1c2VybmFtZSwgaGlzdG9yeVBpbm5lZDogZmFsc2UgfSk7XG4gICAgfVxuICAgIHRoaXMuY29va2llU2V0dGluZ3MkLm5leHQoaGlzdG9yeVNldHRpbmdzKTtcbiAgfVxuXG4gIHNldEhpc3RvcnlQaW5uZWQodXNlcm5hbWU6IHN0cmluZywgcGluOiBib29sZWFuLCBkb21haW4/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBoaXN0b3J5U2V0dGluZ3M6IENsckhpc3RvcnlTZXR0aW5nc01vZGVsW10gPSB0aGlzLmdldENvb2tpZUJ5TmFtZSh0aGlzLmNvb2tpZU5hbWVTZXR0aW5ncyk7XG4gICAgY29uc3QgaGlzdG9yeVNldHRpbmcgPSBoaXN0b3J5U2V0dGluZ3MuZmluZChoU2V0dGluZyA9PiBoU2V0dGluZy51c2VybmFtZSA9PT0gdXNlcm5hbWUpO1xuICAgIGlmIChoaXN0b3J5U2V0dGluZykge1xuICAgICAgaGlzdG9yeVNldHRpbmcuaGlzdG9yeVBpbm5lZCA9IHBpbjtcbiAgICB9IGVsc2Uge1xuICAgICAgaGlzdG9yeVNldHRpbmdzLnB1c2goeyB1c2VybmFtZTogdXNlcm5hbWUsIGhpc3RvcnlQaW5uZWQ6IHBpbiB9KTtcbiAgICB9XG4gICAgdGhpcy5jb29raWVTZXR0aW5ncyQubmV4dChoaXN0b3J5U2V0dGluZ3MpO1xuICAgIC8vIFNldCBpdFxuICAgIHRoaXMuc2V0Q29va2llKHRoaXMuY29va2llTmFtZVNldHRpbmdzLCBKU09OLnN0cmluZ2lmeShoaXN0b3J5U2V0dGluZ3MpLCBkb21haW4pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb29raWVCeU5hbWUobmFtZTogc3RyaW5nKTogYW55W10ge1xuICAgIGNvbnN0IGNvb2tpZUVudHJpZXMgPVxuICAgICAgZG9jdW1lbnQuY29va2llXG4gICAgICAgIC5zcGxpdCgnOycpXG4gICAgICAgIC5tYXAoYyA9PiBjLnRyaW0oKSlcbiAgICAgICAgLmZpbHRlcihjb29raWUgPT4ge1xuICAgICAgICAgIHJldHVybiBjb29raWUuc3Vic3RyaW5nKDAsIG5hbWUubGVuZ3RoICsgMSkgPT09IGAke25hbWV9PWA7XG4gICAgICAgIH0pXG4gICAgICAgIC5tYXAoY29va2llID0+IHtcbiAgICAgICAgICByZXR1cm4gbmFtZSA9PT0gdGhpcy5jb29raWVOYW1lXG4gICAgICAgICAgICA/IHRoaXMuZGVjb2RlKGNvb2tpZS5zdWJzdHJpbmcobmFtZS5sZW5ndGggKyAxKSlcbiAgICAgICAgICAgIDogSlNPTi5wYXJzZShjb29raWUuc3Vic3RyaW5nKG5hbWUubGVuZ3RoICsgMSkpO1xuICAgICAgICB9KVswXSB8fCBbXTtcbiAgICBpZiAoY29va2llRW50cmllcyAmJiBjb29raWVFbnRyaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvb2tpZUVudHJpZXMuZm9yRWFjaCgoZW50cnk6IGFueSkgPT4ge1xuICAgICAgICBpZiAoZW50cnkudGl0bGUpIHtcbiAgICAgICAgICBlbnRyeS50aXRsZSA9IGRlY29kZVVSSShlbnRyeS50aXRsZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVudHJ5LnBhZ2VOYW1lKSB7XG4gICAgICAgICAgZW50cnkucGFnZU5hbWUgPSBkZWNvZGVVUkkoZW50cnkucGFnZU5hbWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGNvb2tpZUVudHJpZXM7XG4gIH1cblxuICBwcml2YXRlIGVuY29kZShjb250ZW50OiBDbHJIaXN0b3J5TW9kZWxbXSk6IHN0cmluZyB7XG4gICAgY29uc3QganNvblN0cmluZyA9IGJ0b2EoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KGNvbnRlbnQpKSk7XG4gICAgcmV0dXJuIGpzb25TdHJpbmcucmVwbGFjZSgvXFwrL2csICctJykucmVwbGFjZSgvXFwvL2csICdfJykucmVwbGFjZSgvPS9nLCAnIScpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWNvZGUoY29udGVudDogc3RyaW5nKTogQ2xySGlzdG9yeU1vZGVsW10ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBiYXNlNjQgPSBjb250ZW50LnJlcGxhY2UoLy0vZywgJysnKS5yZXBsYWNlKC9fL2csICcvJykucmVwbGFjZSgvIS9nLCAnPScpO1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGVjb2RlVVJJQ29tcG9uZW50KGF0b2IoYmFzZTY0KSkpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb29raWUobmFtZTogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcsIGRvbWFpbjogc3RyaW5nKTogdm9pZCB7XG4gICAgZG9jdW1lbnQuY29va2llID1cbiAgICAgIG5hbWUgK1xuICAgICAgJz0nICtcbiAgICAgIGNvbnRlbnQgK1xuICAgICAgJztkb21haW49JyArXG4gICAgICAoZG9tYWluID8gZG9tYWluIDogdGhpcy5nZXREb21haW4oKSkgK1xuICAgICAgJztleHBpcmVzPScgK1xuICAgICAgdGhpcy5leHBpcnlEYXRlLnRvVVRDU3RyaW5nKCkgK1xuICAgICAgJztwYXRoPS8nO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREb21haW4oKTogc3RyaW5nIHtcbiAgICBjb25zdCBkb21haW4gPSB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUuc3BsaXQoJy4nKTtcbiAgICAvL2xvY2FsaG9zdCBmYWxsYmFja1xuICAgIGlmIChkb21haW4ubGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4gZG9tYWluWzBdO1xuICAgIH1cbiAgICBkb21haW4uc2hpZnQoKTtcbiAgICByZXR1cm4gZG9tYWluLmpvaW4oJy4nKTtcbiAgfVxuXG4gIHByaXZhdGUgbm90aWZ5RXh0ZXJuYWxVcmwoaGlzdG9yeUVudHJ5OiBDbHJIaXN0b3J5TW9kZWwpIHtcbiAgICBpZiAoIXRoaXMuaGlzdG9yeU5vdGlmaWNhdGlvblVybCB8fCAhdGhpcy5odHRwQ2xpZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYm9keTogQ2xySGlzdG9yeU5vdGlmaWNhdGlvbk1vZGVsID0ge1xuICAgICAgdXNlcm5hbWU6IGhpc3RvcnlFbnRyeS51c2VybmFtZSxcbiAgICAgIHBhZ2VOYW1lOiBoaXN0b3J5RW50cnkucGFnZU5hbWUsXG4gICAgICBhcHBsaWNhdGlvbk5hbWU6IGhpc3RvcnlFbnRyeS5jb250ZXh0LmFwcGxpY2F0aW9uTmFtZSxcbiAgICAgIHRlbmFudElkOiBoaXN0b3J5RW50cnkuY29udGV4dC50ZW5hbnRpZCxcbiAgICAgIHRpdGxlOiBoaXN0b3J5RW50cnkudGl0bGUsXG4gICAgICB1cmw6IGhpc3RvcnlFbnRyeS51cmwsXG4gICAgICBjb250ZXh0OiBoaXN0b3J5RW50cnkuY29udGV4dC5jb250ZXh0LFxuICAgIH07XG5cbiAgICB0aGlzLmh0dHBDbGllbnQucG9zdCh0aGlzLmhpc3RvcnlOb3RpZmljYXRpb25VcmwsIGJvZHkpLnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
@@ -12,10 +12,11 @@ import { takeUntil, take, observeOn } from 'rxjs/operators';
12
12
  import * as i3 from '@angular/router';
13
13
  import { RouterModule } from '@angular/router';
14
14
  import { trigger, transition, style, animate, state } from '@angular/animations';
15
+ import * as i1$2 from '@angular/common/http';
16
+ import { HttpClientModule } from '@angular/common/http';
15
17
  import '@cds/core/icon/register.js';
16
- import * as i1$2 from '@kolkov/angular-editor';
18
+ import * as i1$3 from '@kolkov/angular-editor';
17
19
  import { AngularEditorComponent, AngularEditorModule } from '@kolkov/angular-editor';
18
- import { HttpClientModule } from '@angular/common/http';
19
20
 
20
21
  /*
21
22
  * Copyright (c) 2018-2023 Porsche Informatik. All Rights Reserved.
@@ -4235,13 +4236,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
4235
4236
  * The full license information can be found in LICENSE in the root directory of this project.
4236
4237
  */
4237
4238
 
4239
+ /*
4240
+ * Copyright (c) 2018-2024 Porsche Informatik. All Rights Reserved.
4241
+ * This software is released under MIT license.
4242
+ * The full license information can be found in LICENSE in the root directory of this project.
4243
+ */
4244
+ const HISTORY_NOTIFICATION_URL_PROVIDER = new InjectionToken('HISTORY_NOTIFICATION_URL_PROVIDER');
4245
+
4238
4246
  /*
4239
4247
  * Copyright (c) 2018-2024 Porsche Informatik. All Rights Reserved.
4240
4248
  * This software is released under MIT license.
4241
4249
  * The full license information can be found in LICENSE in the root directory of this project.
4242
4250
  */
4243
4251
  class ClrHistoryService {
4244
- constructor() {
4252
+ constructor(historyNotificationUrl, httpClient) {
4253
+ this.historyNotificationUrl = historyNotificationUrl;
4254
+ this.httpClient = httpClient;
4245
4255
  this.cookieSettings$ = new BehaviorSubject([]);
4246
4256
  this.cookieName = 'clr.history';
4247
4257
  this.cookieNameSettings = 'clr.history.settings';
@@ -4259,6 +4269,7 @@ class ClrHistoryService {
4259
4269
  * @returns true when entry added, otherwise false is returned
4260
4270
  */
4261
4271
  addHistoryEntry(historyEntry, domain) {
4272
+ this.notifyExternalUrl(historyEntry);
4262
4273
  this.removeFromHistory(historyEntry);
4263
4274
  let history = this.getHistory(historyEntry.username, historyEntry.context);
4264
4275
  /* only add to history in case url does not exceed maxUrlSize characters */
@@ -4433,12 +4444,36 @@ class ClrHistoryService {
4433
4444
  domain.shift();
4434
4445
  return domain.join('.');
4435
4446
  }
4447
+ notifyExternalUrl(historyEntry) {
4448
+ if (!this.historyNotificationUrl || !this.httpClient) {
4449
+ return;
4450
+ }
4451
+ const body = {
4452
+ username: historyEntry.username,
4453
+ pageName: historyEntry.pageName,
4454
+ applicationName: historyEntry.context.applicationName,
4455
+ tenantId: historyEntry.context.tenantid,
4456
+ title: historyEntry.title,
4457
+ url: historyEntry.url,
4458
+ context: historyEntry.context.context,
4459
+ };
4460
+ this.httpClient.post(this.historyNotificationUrl, body).subscribe();
4461
+ }
4436
4462
  }
4437
- ClrHistoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: ClrHistoryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4463
+ ClrHistoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: ClrHistoryService, deps: [{ token: HISTORY_NOTIFICATION_URL_PROVIDER, optional: true }, { token: i1$2.HttpClient, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
4438
4464
  ClrHistoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: ClrHistoryService });
4439
4465
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: ClrHistoryService, decorators: [{
4440
4466
  type: Injectable
4441
- }], ctorParameters: function () { return []; } });
4467
+ }], ctorParameters: function () {
4468
+ return [{ type: undefined, decorators: [{
4469
+ type: Inject,
4470
+ args: [HISTORY_NOTIFICATION_URL_PROVIDER]
4471
+ }, {
4472
+ type: Optional
4473
+ }] }, { type: i1$2.HttpClient, decorators: [{
4474
+ type: Optional
4475
+ }] }];
4476
+ } });
4442
4477
 
4443
4478
  /*
4444
4479
  * Copyright (c) 2018-2023 Porsche Informatik. All Rights Reserved.
@@ -7774,7 +7809,7 @@ class ClrHtmlEditorComponent {
7774
7809
  }
7775
7810
  }
7776
7811
  ClrHtmlEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: ClrHtmlEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7777
- ClrHtmlEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: ClrHtmlEditorComponent, selector: "clr-html-editor", inputs: { clrHtmlContent: "clrHtmlContent", clrConfig: "clrConfig" }, outputs: { clrHtmlChanged: "clrHtmlChanged" }, host: { properties: { "class.html-editor": "true" } }, viewQueries: [{ propertyName: "angularEditor", first: true, predicate: AngularEditorComponent, descendants: true }], ngImport: i0, template: "<angular-editor\n [(ngModel)]=\"clrHtmlContent\"\n [config]=\"clrConfig\"\n (ngModelChange)=\"onChange($event)\"\n class=\"editor\"\n [class.readonly]=\"false\"\n></angular-editor>\n", dependencies: [{ kind: "component", type: i1$2.AngularEditorComponent, selector: "angular-editor", inputs: ["id", "config", "placeholder", "tabIndex"], outputs: ["html", "viewMode", "blur", "focus"] }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
7812
+ ClrHtmlEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: ClrHtmlEditorComponent, selector: "clr-html-editor", inputs: { clrHtmlContent: "clrHtmlContent", clrConfig: "clrConfig" }, outputs: { clrHtmlChanged: "clrHtmlChanged" }, host: { properties: { "class.html-editor": "true" } }, viewQueries: [{ propertyName: "angularEditor", first: true, predicate: AngularEditorComponent, descendants: true }], ngImport: i0, template: "<angular-editor\n [(ngModel)]=\"clrHtmlContent\"\n [config]=\"clrConfig\"\n (ngModelChange)=\"onChange($event)\"\n class=\"editor\"\n [class.readonly]=\"false\"\n></angular-editor>\n", dependencies: [{ kind: "component", type: i1$3.AngularEditorComponent, selector: "angular-editor", inputs: ["id", "config", "placeholder", "tabIndex"], outputs: ["html", "viewMode", "blur", "focus"] }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
7778
7813
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: ClrHtmlEditorComponent, decorators: [{
7779
7814
  type: Component,
7780
7815
  args: [{ selector: 'clr-html-editor', host: {
@@ -8035,5 +8070,5 @@ function escapeRegex(s) {
8035
8070
  * Generated bundle index. Do not edit.
8036
8071
  */
8037
8072
 
8038
- 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, ClrHtmlEditorComponent, ClrHtmlEditorModule, 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, 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, WheelToWheelShape, WindscreenWashShape, WrenchForward, YEAR, acceptanceDateIcon, accessoriesIcon, accessoryPartsIcon, airConditionerIcon, 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, vwBrandIcon, vwnBrandIcon, wheelToWheelIcon, windscreenWashIcon, wrenchForwardIcon };
8073
+ 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, ClrHtmlEditorComponent, ClrHtmlEditorModule, 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, WheelToWheelShape, WindscreenWashShape, WrenchForward, YEAR, acceptanceDateIcon, accessoriesIcon, accessoryPartsIcon, airConditionerIcon, 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, vwBrandIcon, vwnBrandIcon, wheelToWheelIcon, windscreenWashIcon, wrenchForwardIcon };
8039
8074
  //# sourceMappingURL=clr-addons.mjs.map