@porscheinformatik/clr-addons 18.2.5 → 19.0.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.
- package/abstract-form-component/abstract-form-component.d.ts +1 -1
- package/daterangepicker/directives/abstract-container.component.d.ts +1 -1
- package/fesm2022/clr-addons.mjs +518 -468
- package/fesm2022/clr-addons.mjs.map +1 -1
- package/multilingual/abstract-multilingual.d.ts +1 -1
- package/package.json +6 -8
- package/esm2022/abstract-form-component/abstract-form-component.mjs +0 -100
- package/esm2022/abstract-form-component/control-id.service.mjs +0 -31
- package/esm2022/abstract-form-component/form.module.mjs +0 -21
- package/esm2022/abstract-form-component/index.mjs +0 -3
- package/esm2022/abstract-form-component/label.mjs +0 -37
- package/esm2022/action-panel/action-panel-container-content.mjs +0 -22
- package/esm2022/action-panel/action-panel-container-footer.mjs +0 -22
- package/esm2022/action-panel/action-panel-container.mjs +0 -35
- package/esm2022/action-panel/action-panel.mjs +0 -80
- package/esm2022/action-panel/action-panel.module.mjs +0 -36
- package/esm2022/action-panel/index.mjs +0 -6
- package/esm2022/autocomplete-off/autocomplete-off.directive.mjs +0 -21
- package/esm2022/autocomplete-off/autocomplete-off.module.mjs +0 -21
- package/esm2022/autocomplete-off/index.mjs +0 -3
- package/esm2022/back-button/back-button.mjs +0 -27
- package/esm2022/back-button/back-button.module.mjs +0 -25
- package/esm2022/back-button/index.mjs +0 -8
- package/esm2022/brand-avatar/brand-avatar.mjs +0 -77
- package/esm2022/brand-avatar/brand-avatar.module.mjs +0 -24
- package/esm2022/brand-avatar/index.mjs +0 -8
- package/esm2022/breadcrumb/breadcrumb-model.interface.mjs +0 -7
- package/esm2022/breadcrumb/breadcrumb.mjs +0 -37
- package/esm2022/breadcrumb/breadcrumb.module.mjs +0 -27
- package/esm2022/breadcrumb/breadcrumb.service.mjs +0 -25
- package/esm2022/breadcrumb/index.mjs +0 -10
- package/esm2022/clr-addons.mjs +0 -5
- package/esm2022/clr-addons.module.mjs +0 -152
- package/esm2022/clr-control-warning/if-warning.directive.mjs +0 -73
- package/esm2022/clr-control-warning/if-warning.module.mjs +0 -20
- package/esm2022/clr-control-warning/index.mjs +0 -3
- package/esm2022/collapse-expand-section/collapse-expand-section.mjs +0 -88
- package/esm2022/collapse-expand-section/collapse-expand-section.module.mjs +0 -25
- package/esm2022/collapse-expand-section/index.mjs +0 -8
- package/esm2022/content-panel/content-panel-container-content.mjs +0 -22
- package/esm2022/content-panel/content-panel-container-footer.mjs +0 -22
- package/esm2022/content-panel/content-panel-container.mjs +0 -35
- package/esm2022/content-panel/content-panel.mjs +0 -81
- package/esm2022/content-panel/content-panel.module.mjs +0 -36
- package/esm2022/content-panel/index.mjs +0 -11
- package/esm2022/data-list-validator/data-list-predefined-validator.directive.mjs +0 -33
- package/esm2022/data-list-validator/data-list-validator.module.mjs +0 -21
- package/esm2022/data-list-validator/data-list.validator.mjs +0 -35
- package/esm2022/data-list-validator/index.mjs +0 -9
- package/esm2022/datagrid/datagrid-state-persistence/column-hidden-state-persistence.directive.mjs +0 -80
- package/esm2022/datagrid/datagrid-state-persistence/datagrid-field.directive.mjs +0 -20
- package/esm2022/datagrid/datagrid-state-persistence/datagrid-state-persistence-model.interface.mjs +0 -2
- package/esm2022/datagrid/datagrid-state-persistence/datagrid-state-persistence.module.mjs +0 -18
- package/esm2022/datagrid/datagrid-state-persistence/index.mjs +0 -7
- package/esm2022/datagrid/datagrid-state-persistence/state-persistence-key.directive.mjs +0 -308
- package/esm2022/datagrid/datagrid-state-persistence/state-persistence-options.interface.mjs +0 -2
- package/esm2022/datagrid/date-filter/date-filter.component.mjs +0 -210
- package/esm2022/datagrid/date-filter/date-filter.module.mjs +0 -22
- package/esm2022/datagrid/date-filter/index.mjs +0 -3
- package/esm2022/datagrid/date-filter/nested-property.mjs +0 -37
- package/esm2022/datagrid/enum-filter/enum-filter.component.mjs +0 -148
- package/esm2022/datagrid/enum-filter/enum-filter.module.mjs +0 -20
- package/esm2022/datagrid/enum-filter/index.mjs +0 -3
- package/esm2022/datagrid/index.mjs +0 -4
- package/esm2022/date-time-container/date-time-container.mjs +0 -53
- package/esm2022/date-time-container/date-time-module.mjs +0 -26
- package/esm2022/date-time-container/index.mjs +0 -9
- package/esm2022/date-time-container/time-input.mjs +0 -21
- package/esm2022/daterangepicker/daterange.constants.mjs +0 -27
- package/esm2022/daterangepicker/daterangepicker.module.mjs +0 -60
- package/esm2022/daterangepicker/directives/abstract-container.component.mjs +0 -104
- package/esm2022/daterangepicker/directives/datepicker/datepicker.component.mjs +0 -100
- package/esm2022/daterangepicker/directives/daterangepicker/daterangepicker.directive.mjs +0 -329
- package/esm2022/daterangepicker/directives/daterangepicker-container/daterangepicker-container.component.mjs +0 -321
- package/esm2022/daterangepicker/directives/if-daterange-error.directive.mjs +0 -94
- package/esm2022/daterangepicker/directives/timepicker/timepicker.component.mjs +0 -54
- package/esm2022/daterangepicker/index.mjs +0 -17
- package/esm2022/daterangepicker/interfaces/daterange-preset.interface.mjs +0 -2
- package/esm2022/daterangepicker/interfaces/daterange.interface.mjs +0 -2
- package/esm2022/daterangepicker/interfaces/timerange-preset.interface.mjs +0 -2
- package/esm2022/daterangepicker/interfaces/timerange.interface.mjs +0 -2
- package/esm2022/daterangepicker/models/day.model.mjs +0 -99
- package/esm2022/daterangepicker/models/popover-positions.model.mjs +0 -66
- package/esm2022/daterangepicker/models/time.model.mjs +0 -82
- package/esm2022/daterangepicker/providers/daterange-control-state.service.mjs +0 -62
- package/esm2022/daterangepicker/providers/daterange-parsing.service.mjs +0 -226
- package/esm2022/daterangepicker/providers/daterange.service.mjs +0 -66
- package/esm2022/daterangepicker/providers/opened-datepickers-tracker.service.mjs +0 -36
- package/esm2022/daterangepicker/validators/daterange-max.validator.mjs +0 -85
- package/esm2022/daterangepicker/validators/daterange-min.validator.mjs +0 -85
- package/esm2022/daterangepicker/validators/daterange-order.validator.mjs +0 -82
- package/esm2022/daterangepicker/validators/daterange-required.validator.mjs +0 -71
- package/esm2022/dot-pager/dot-pager.mjs +0 -58
- package/esm2022/dot-pager/dot-pager.module.mjs +0 -25
- package/esm2022/dot-pager/index.mjs +0 -8
- package/esm2022/dropdown/clr-dropdown-overflow.directive.mjs +0 -117
- package/esm2022/dropdown/clr-dropdown-overflow.module.mjs +0 -21
- package/esm2022/dropdown/index.mjs +0 -8
- package/esm2022/flow-bar/flow-bar.mjs +0 -163
- package/esm2022/flow-bar/flow-bar.module.mjs +0 -26
- package/esm2022/flow-bar/index.mjs +0 -8
- package/esm2022/generic-quick-list/generic-quick-list.mjs +0 -98
- package/esm2022/generic-quick-list/generic-quick-list.module.mjs +0 -24
- package/esm2022/generic-quick-list/index.mjs +0 -8
- package/esm2022/history/history-model.interface.mjs +0 -8
- package/esm2022/history/history-pinned.mjs +0 -60
- package/esm2022/history/history.mjs +0 -91
- package/esm2022/history/history.module.mjs +0 -27
- package/esm2022/history/history.provider.mjs +0 -8
- package/esm2022/history/history.service.mjs +0 -236
- package/esm2022/history/index.mjs +0 -12
- package/esm2022/icons/index.mjs +0 -8
- package/esm2022/icons/shapes.mjs +0 -5453
- package/esm2022/icons/svg-tag-generator.mjs +0 -39
- package/esm2022/index.mjs +0 -41
- package/esm2022/letter-avatar/index.mjs +0 -8
- package/esm2022/letter-avatar/letter-avatar.mjs +0 -52
- package/esm2022/letter-avatar/letter-avatar.module.mjs +0 -24
- package/esm2022/location-bar/index.mjs +0 -6
- package/esm2022/location-bar/location-bar-node/location-bar-node.component.mjs +0 -150
- package/esm2022/location-bar/location-bar-search/location-bar-search.component.mjs +0 -74
- package/esm2022/location-bar/location-bar.component.mjs +0 -64
- package/esm2022/location-bar/location-bar.model.mjs +0 -63
- package/esm2022/location-bar/location-bar.module.mjs +0 -55
- package/esm2022/location-bar/location-bar.provider.mjs +0 -18
- package/esm2022/location-bar/location-bar.search.model.mjs +0 -2
- package/esm2022/main-nav-group/index.mjs +0 -9
- package/esm2022/main-nav-group/main-nav-group-item.mjs +0 -27
- package/esm2022/main-nav-group/main-nav-group.mjs +0 -154
- package/esm2022/main-nav-group/main-nav-group.module.mjs +0 -26
- package/esm2022/multilingual/abstract-multilingual.mjs +0 -133
- package/esm2022/multilingual/index.mjs +0 -11
- package/esm2022/multilingual/multilingual-input/multilingual-input.mjs +0 -42
- package/esm2022/multilingual/multilingual-selector.mjs +0 -84
- package/esm2022/multilingual/multilingual-textarea/multilingual-textarea.mjs +0 -44
- package/esm2022/multilingual/multilingual-validators.mjs +0 -104
- package/esm2022/multilingual/multilingual.module.mjs +0 -49
- package/esm2022/notification/index.mjs +0 -10
- package/esm2022/notification/notification-ref.mjs +0 -61
- package/esm2022/notification/notification.mjs +0 -134
- package/esm2022/notification/notification.module.mjs +0 -24
- package/esm2022/notification/notification.service.mjs +0 -92
- package/esm2022/notification/scheduler-utils.mjs +0 -52
- package/esm2022/numericfield/index.mjs +0 -9
- package/esm2022/numericfield/numeric-field-validators.mjs +0 -140
- package/esm2022/numericfield/numeric-field.mjs +0 -280
- package/esm2022/numericfield/numeric-field.module.mjs +0 -26
- package/esm2022/paged-search-result-list/index.mjs +0 -8
- package/esm2022/paged-search-result-list/paged-search-result-list.mjs +0 -67
- package/esm2022/paged-search-result-list/paged-search-result-list.module.mjs +0 -26
- package/esm2022/pager/index.mjs +0 -8
- package/esm2022/pager/pager.mjs +0 -137
- package/esm2022/pager/pager.module.mjs +0 -25
- package/esm2022/progress-spinner/index.mjs +0 -8
- package/esm2022/progress-spinner/progress-spinner.mjs +0 -78
- package/esm2022/progress-spinner/progress-spinner.module.mjs +0 -23
- package/esm2022/quick-list/add-option.mjs +0 -78
- package/esm2022/quick-list/add-option.service.mjs +0 -7
- package/esm2022/quick-list/index.mjs +0 -9
- package/esm2022/quick-list/quick-list.mjs +0 -128
- package/esm2022/quick-list/quick-list.module.mjs +0 -26
- package/esm2022/readonly/index.mjs +0 -8
- package/esm2022/readonly/readonly.directive.mjs +0 -149
- package/esm2022/readonly/readonly.module.mjs +0 -16
- package/esm2022/searchfield/index.mjs +0 -8
- package/esm2022/searchfield/search-field.mjs +0 -104
- package/esm2022/searchfield/search-field.module.mjs +0 -25
- package/esm2022/treetable/index.mjs +0 -14
- package/esm2022/treetable/renderer/cell-renderer.mjs +0 -28
- package/esm2022/treetable/renderer/header-renderer.mjs +0 -41
- package/esm2022/treetable/renderer/index.mjs +0 -5
- package/esm2022/treetable/renderer/main-renderer.mjs +0 -103
- package/esm2022/treetable/renderer/row-renderer.mjs +0 -20
- package/esm2022/treetable/treetable-action-overflow.mjs +0 -94
- package/esm2022/treetable/treetable-cell.mjs +0 -23
- package/esm2022/treetable/treetable-column.mjs +0 -23
- package/esm2022/treetable/treetable-placeholder.mjs +0 -30
- package/esm2022/treetable/treetable-row.mjs +0 -100
- package/esm2022/treetable/treetable.mjs +0 -79
- package/esm2022/treetable/treetable.module.mjs +0 -63
- package/esm2022/util/escape.util.mjs +0 -20
- package/esm2022/util/index.mjs +0 -8
- package/esm2022/util/numeric.format.util.mjs +0 -99
- package/esm2022/view-edit-section/index.mjs +0 -8
- package/esm2022/view-edit-section/view-edit-section.mjs +0 -154
- package/esm2022/view-edit-section/view-edit-section.module.mjs +0 -25
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2018-2024 Porsche Informatik. All Rights Reserved.
|
|
3
|
-
* This software is released under MIT license.
|
|
4
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
|
-
*/
|
|
6
|
-
import { Component, Inject, Input, Optional } from '@angular/core';
|
|
7
|
-
import { ClrHistoryService } from './history.service';
|
|
8
|
-
import { HISTORY_PROVIDER, HistoryProvider } from './history.provider';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "./history.service";
|
|
11
|
-
import * as i2 from "@angular/common";
|
|
12
|
-
import * as i3 from "./history.provider";
|
|
13
|
-
export class ClrHistoryPinned {
|
|
14
|
-
constructor(historyService, historyProvider) {
|
|
15
|
-
this.historyService = historyService;
|
|
16
|
-
this.historyProvider = historyProvider;
|
|
17
|
-
/**
|
|
18
|
-
* The array of history elements to be displayed.
|
|
19
|
-
*/
|
|
20
|
-
this.historyElements = [];
|
|
21
|
-
this.active = false;
|
|
22
|
-
}
|
|
23
|
-
ngOnInit() {
|
|
24
|
-
const historyElements = this.historyService.getHistoryDisplay(this.username, this.context);
|
|
25
|
-
this.historyElements = this.historyProvider
|
|
26
|
-
? this.historyProvider.getModifiedHistoryEntries(historyElements)
|
|
27
|
-
: historyElements;
|
|
28
|
-
this.historyService.initializeCookieSettings(this.username, this.domain);
|
|
29
|
-
this.settingsSubscription = this.historyService.cookieSettings$.subscribe(settings => {
|
|
30
|
-
const setting = settings.find(setting => setting.username === this.username);
|
|
31
|
-
if (setting) {
|
|
32
|
-
this.active = setting.historyPinned;
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
ngOnDestroy() {
|
|
37
|
-
this.settingsSubscription.unsubscribe();
|
|
38
|
-
}
|
|
39
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrHistoryPinned, deps: [{ token: i1.ClrHistoryService }, { token: HISTORY_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
40
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ClrHistoryPinned, selector: "clr-history-pinned", inputs: { username: ["clrUsername", "username"], context: ["clrContext", "context"], domain: ["clrDomain", "domain"] }, ngImport: i0, template: "<nav aria-label=\"history\" class=\"history-container\" *ngIf=\"historyElements.length && active\">\n <ol class=\"history\">\n <ng-container *ngFor=\"let historyItem of historyElements\">\n <li *ngIf=\"historyItem.url\" class=\"history-item\">\n <a [href]=\"historyItem.url\">{{historyItem.title}}</a>\n </li>\n </ng-container>\n </ol>\n</nav>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
41
|
-
}
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrHistoryPinned, decorators: [{
|
|
43
|
-
type: Component,
|
|
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" }]
|
|
45
|
-
}], ctorParameters: () => [{ type: i1.ClrHistoryService }, { type: i3.HistoryProvider, decorators: [{
|
|
46
|
-
type: Inject,
|
|
47
|
-
args: [HISTORY_PROVIDER]
|
|
48
|
-
}, {
|
|
49
|
-
type: Optional
|
|
50
|
-
}] }], propDecorators: { username: [{
|
|
51
|
-
type: Input,
|
|
52
|
-
args: ['clrUsername']
|
|
53
|
-
}], context: [{
|
|
54
|
-
type: Input,
|
|
55
|
-
args: ['clrContext']
|
|
56
|
-
}], domain: [{
|
|
57
|
-
type: Input,
|
|
58
|
-
args: ['clrDomain']
|
|
59
|
-
}] } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS1waW5uZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xyLWFkZG9ucy9oaXN0b3J5L2hpc3RvcnktcGlubmVkLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2Nsci1hZGRvbnMvaGlzdG9yeS9oaXN0b3J5LXBpbm5lZC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7O0FBTXZFLE1BQU0sT0FBTyxnQkFBZ0I7SUFZM0IsWUFDVSxjQUFpQyxFQUNLLGVBQWdDO1FBRHRFLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNLLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQVRoRjs7V0FFRztRQUNILG9CQUFlLEdBQXNCLEVBQUUsQ0FBQztRQUN4QyxXQUFNLEdBQUcsS0FBSyxDQUFDO0lBTVosQ0FBQztJQUVKLFFBQVE7UUFDTixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWU7WUFDekMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMseUJBQXlCLENBQUMsZUFBZSxDQUFDO1lBQ2pFLENBQUMsQ0FBQyxlQUFlLENBQUM7UUFFcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ25GLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3RSxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztZQUN0QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMxQyxDQUFDOzhHQWxDVSxnQkFBZ0IsbURBY2pCLGdCQUFnQjtrR0FkZixnQkFBZ0Isa0xDaEI3QixvWEFTQTs7MkZET2EsZ0JBQWdCO2tCQUo1QixTQUFTOytCQUNFLG9CQUFvQjs7MEJBaUIzQixNQUFNOzJCQUFDLGdCQUFnQjs7MEJBQUcsUUFBUTt5Q0FiZixRQUFRO3NCQUE3QixLQUFLO3VCQUFDLGFBQWE7Z0JBQ0MsT0FBTztzQkFBM0IsS0FBSzt1QkFBQyxZQUFZO2dCQUNDLE1BQU07c0JBQXpCLEtBQUs7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyNCBQb3JzY2hlIEluZm9ybWF0aWsuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDbHJIaXN0b3J5TW9kZWwgfSBmcm9tICcuL2hpc3RvcnktbW9kZWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IENsckhpc3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi9oaXN0b3J5LnNlcnZpY2UnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBISVNUT1JZX1BST1ZJREVSLCBIaXN0b3J5UHJvdmlkZXIgfSBmcm9tICcuL2hpc3RvcnkucHJvdmlkZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItaGlzdG9yeS1waW5uZWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaGlzdG9yeS1waW5uZWQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIENsckhpc3RvcnlQaW5uZWQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgnY2xyVXNlcm5hbWUnKSB1c2VybmFtZTogc3RyaW5nO1xuICBASW5wdXQoJ2NsckNvbnRleHQnKSBjb250ZXh0OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICBASW5wdXQoJ2NsckRvbWFpbicpIGRvbWFpbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYXJyYXkgb2YgaGlzdG9yeSBlbGVtZW50cyB0byBiZSBkaXNwbGF5ZWQuXG4gICAqL1xuICBoaXN0b3J5RWxlbWVudHM6IENsckhpc3RvcnlNb2RlbFtdID0gW107XG4gIGFjdGl2ZSA9IGZhbHNlO1xuICBwcml2YXRlIHNldHRpbmdzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBoaXN0b3J5U2VydmljZTogQ2xySGlzdG9yeVNlcnZpY2UsXG4gICAgQEluamVjdChISVNUT1JZX1BST1ZJREVSKSBAT3B0aW9uYWwoKSBwcml2YXRlIGhpc3RvcnlQcm92aWRlcjogSGlzdG9yeVByb3ZpZGVyXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBoaXN0b3J5RWxlbWVudHMgPSB0aGlzLmhpc3RvcnlTZXJ2aWNlLmdldEhpc3RvcnlEaXNwbGF5KHRoaXMudXNlcm5hbWUsIHRoaXMuY29udGV4dCk7XG4gICAgdGhpcy5oaXN0b3J5RWxlbWVudHMgPSB0aGlzLmhpc3RvcnlQcm92aWRlclxuICAgICAgPyB0aGlzLmhpc3RvcnlQcm92aWRlci5nZXRNb2RpZmllZEhpc3RvcnlFbnRyaWVzKGhpc3RvcnlFbGVtZW50cylcbiAgICAgIDogaGlzdG9yeUVsZW1lbnRzO1xuXG4gICAgdGhpcy5oaXN0b3J5U2VydmljZS5pbml0aWFsaXplQ29va2llU2V0dGluZ3ModGhpcy51c2VybmFtZSwgdGhpcy5kb21haW4pO1xuICAgIHRoaXMuc2V0dGluZ3NTdWJzY3JpcHRpb24gPSB0aGlzLmhpc3RvcnlTZXJ2aWNlLmNvb2tpZVNldHRpbmdzJC5zdWJzY3JpYmUoc2V0dGluZ3MgPT4ge1xuICAgICAgY29uc3Qgc2V0dGluZyA9IHNldHRpbmdzLmZpbmQoc2V0dGluZyA9PiBzZXR0aW5nLnVzZXJuYW1lID09PSB0aGlzLnVzZXJuYW1lKTtcbiAgICAgIGlmIChzZXR0aW5nKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gc2V0dGluZy5oaXN0b3J5UGlubmVkO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zZXR0aW5nc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8bmF2IGFyaWEtbGFiZWw9XCJoaXN0b3J5XCIgY2xhc3M9XCJoaXN0b3J5LWNvbnRhaW5lclwiICpuZ0lmPVwiaGlzdG9yeUVsZW1lbnRzLmxlbmd0aCAmJiBhY3RpdmVcIj5cbiAgPG9sIGNsYXNzPVwiaGlzdG9yeVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGhpc3RvcnlJdGVtIG9mIGhpc3RvcnlFbGVtZW50c1wiPlxuICAgICAgPGxpICpuZ0lmPVwiaGlzdG9yeUl0ZW0udXJsXCIgY2xhc3M9XCJoaXN0b3J5LWl0ZW1cIj5cbiAgICAgICAgPGEgW2hyZWZdPVwiaGlzdG9yeUl0ZW0udXJsXCI+e3toaXN0b3J5SXRlbS50aXRsZX19PC9hPlxuICAgICAgPC9saT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9vbD5cbjwvbmF2PlxuIl19
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2018-2025 Porsche Informatik. All Rights Reserved.
|
|
3
|
-
* This software is released under MIT license.
|
|
4
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
|
-
*/
|
|
6
|
-
import { Component, Inject, Input, Optional } from '@angular/core';
|
|
7
|
-
import { ClrHistoryService } from './history.service';
|
|
8
|
-
import { Subject } from 'rxjs';
|
|
9
|
-
import { takeUntil } from 'rxjs/operators';
|
|
10
|
-
import { angleIcon, ClarityIcons, historyIcon } from '@cds/core/icon';
|
|
11
|
-
import { HISTORY_PROVIDER, HistoryProvider } from './history.provider';
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
import * as i1 from "./history.service";
|
|
14
|
-
import * as i2 from "@angular/common";
|
|
15
|
-
import * as i3 from "@clr/angular";
|
|
16
|
-
import * as i4 from "../dropdown/clr-dropdown-overflow.directive";
|
|
17
|
-
import * as i5 from "./history.provider";
|
|
18
|
-
ClarityIcons.addIcons(historyIcon, angleIcon);
|
|
19
|
-
export class ClrHistory {
|
|
20
|
-
constructor(historyService, historyProvider) {
|
|
21
|
-
this.historyService = historyService;
|
|
22
|
-
this.historyProvider = historyProvider;
|
|
23
|
-
this.pinActive = true;
|
|
24
|
-
this.dropdownHeader = 'History';
|
|
25
|
-
this.dropdownPin = 'Pin History';
|
|
26
|
-
this.dropdownUnpin = 'Unpin History';
|
|
27
|
-
this.position = 'bottom-right';
|
|
28
|
-
/**
|
|
29
|
-
* The array of history elements to be displayed.
|
|
30
|
-
*/
|
|
31
|
-
this.historyElements = [];
|
|
32
|
-
this.pinActivated = false;
|
|
33
|
-
this.onDestroy$ = new Subject();
|
|
34
|
-
}
|
|
35
|
-
ngOnInit() {
|
|
36
|
-
const historyElements = this.historyService.getHistoryDisplay(this.username, this.context);
|
|
37
|
-
this.historyElements = this.historyProvider
|
|
38
|
-
? this.historyProvider.getModifiedHistoryEntries(historyElements)
|
|
39
|
-
: historyElements;
|
|
40
|
-
this.historyService.initializeCookieSettings(this.username, this.domain);
|
|
41
|
-
this.historyService.cookieSettings$.pipe(takeUntil(this.onDestroy$)).subscribe(settings => {
|
|
42
|
-
this.pinActivated = settings.find(setting => setting.username === this.username).historyPinned;
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
ngOnDestroy() {
|
|
46
|
-
this.onDestroy$.next();
|
|
47
|
-
this.onDestroy$.complete();
|
|
48
|
-
}
|
|
49
|
-
select(history) {
|
|
50
|
-
window.location.href = history.url;
|
|
51
|
-
}
|
|
52
|
-
togglePinHistory() {
|
|
53
|
-
this.historyService.setHistoryPinned(this.username, !this.pinActivated);
|
|
54
|
-
}
|
|
55
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrHistory, deps: [{ token: i1.ClrHistoryService }, { token: HISTORY_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
56
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ClrHistory, selector: "clr-history", inputs: { username: ["clrUsername", "username"], context: ["clrContext", "context"], pinActive: ["clrPinActive", "pinActive"], dropdownHeader: ["clrDropdownHeader", "dropdownHeader"], dropdownPin: ["clrDropdownPin", "dropdownPin"], dropdownUnpin: ["clrDropdownUnpin", "dropdownUnpin"], domain: ["clrDomain", "domain"], position: ["clrPosition", "position"] }, host: { classAttribute: "clr-history" }, ngImport: i0, template: "<clr-dropdown>\n <button type=\"button\" class=\"btn btn-icon btn-outline-primary history-button\" clrDropdownTrigger>\n <cds-icon shape=\"history\" size=\"16\"></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"] }] }); }
|
|
57
|
-
}
|
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrHistory, decorators: [{
|
|
59
|
-
type: Component,
|
|
60
|
-
args: [{ selector: 'clr-history', host: { class: 'clr-history' }, template: "<clr-dropdown>\n <button type=\"button\" class=\"btn btn-icon btn-outline-primary history-button\" clrDropdownTrigger>\n <cds-icon shape=\"history\" size=\"16\"></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" }]
|
|
61
|
-
}], ctorParameters: () => [{ type: i1.ClrHistoryService }, { type: i5.HistoryProvider, decorators: [{
|
|
62
|
-
type: Inject,
|
|
63
|
-
args: [HISTORY_PROVIDER]
|
|
64
|
-
}, {
|
|
65
|
-
type: Optional
|
|
66
|
-
}] }], propDecorators: { username: [{
|
|
67
|
-
type: Input,
|
|
68
|
-
args: ['clrUsername']
|
|
69
|
-
}], context: [{
|
|
70
|
-
type: Input,
|
|
71
|
-
args: ['clrContext']
|
|
72
|
-
}], pinActive: [{
|
|
73
|
-
type: Input,
|
|
74
|
-
args: ['clrPinActive']
|
|
75
|
-
}], dropdownHeader: [{
|
|
76
|
-
type: Input,
|
|
77
|
-
args: ['clrDropdownHeader']
|
|
78
|
-
}], dropdownPin: [{
|
|
79
|
-
type: Input,
|
|
80
|
-
args: ['clrDropdownPin']
|
|
81
|
-
}], dropdownUnpin: [{
|
|
82
|
-
type: Input,
|
|
83
|
-
args: ['clrDropdownUnpin']
|
|
84
|
-
}], domain: [{
|
|
85
|
-
type: Input,
|
|
86
|
-
args: ['clrDomain']
|
|
87
|
-
}], position: [{
|
|
88
|
-
type: Input,
|
|
89
|
-
args: ['clrPosition']
|
|
90
|
-
}] } });
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbHItYWRkb25zL2hpc3RvcnkvaGlzdG9yeS50cyIsIi4uLy4uLy4uLy4uL3NyYy9jbHItYWRkb25zL2hpc3RvcnkvaGlzdG9yeS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7QUFFdkUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFPOUMsTUFBTSxPQUFPLFVBQVU7SUFpQnJCLFlBQ1UsY0FBaUMsRUFDSyxlQUFnQztRQUR0RSxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDSyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFoQnpELGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDWixtQkFBYyxHQUFHLFNBQVMsQ0FBQztRQUM5QixnQkFBVyxHQUFHLGFBQWEsQ0FBQztRQUMxQixrQkFBYSxHQUFHLGVBQWUsQ0FBQztRQUVyQyxhQUFRLEdBQUcsY0FBYyxDQUFDO1FBRWhEOztXQUVHO1FBQ0gsb0JBQWUsR0FBc0IsRUFBRSxDQUFDO1FBQ3hDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ2IsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFLdEMsQ0FBQztJQUVKLFFBQVE7UUFDTixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWU7WUFDekMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMseUJBQXlCLENBQUMsZUFBZSxDQUFDO1lBQ2pFLENBQUMsQ0FBQyxlQUFlLENBQUM7UUFFcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN4RixJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDakcsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQXdCO1FBQzdCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFDckMsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxRSxDQUFDOzhHQTdDVSxVQUFVLG1EQW1CWCxnQkFBZ0I7a0dBbkJmLFVBQVUsb2NDckJ2QixrN0JBaUJBOzsyRkRJYSxVQUFVO2tCQUx0QixTQUFTOytCQUNFLGFBQWEsUUFFakIsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFOzswQkFxQjNCLE1BQU07MkJBQUMsZ0JBQWdCOzswQkFBRyxRQUFRO3lDQWxCZixRQUFRO3NCQUE3QixLQUFLO3VCQUFDLGFBQWE7Z0JBQ0MsT0FBTztzQkFBM0IsS0FBSzt1QkFBQyxZQUFZO2dCQUNJLFNBQVM7c0JBQS9CLEtBQUs7dUJBQUMsY0FBYztnQkFDTyxjQUFjO3NCQUF6QyxLQUFLO3VCQUFDLG1CQUFtQjtnQkFDRCxXQUFXO3NCQUFuQyxLQUFLO3VCQUFDLGdCQUFnQjtnQkFDSSxhQUFhO3NCQUF2QyxLQUFLO3VCQUFDLGtCQUFrQjtnQkFDTCxNQUFNO3NCQUF6QixLQUFLO3VCQUFDLFdBQVc7Z0JBQ0ksUUFBUTtzQkFBN0IsS0FBSzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDI1IFBvcnNjaGUgSW5mb3JtYXRpay4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENsckhpc3RvcnlNb2RlbCB9IGZyb20gJy4vaGlzdG9yeS1tb2RlbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2xySGlzdG9yeVNlcnZpY2UgfSBmcm9tICcuL2hpc3Rvcnkuc2VydmljZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBhbmdsZUljb24sIENsYXJpdHlJY29ucywgaGlzdG9yeUljb24gfSBmcm9tICdAY2RzL2NvcmUvaWNvbic7XG5pbXBvcnQgeyBISVNUT1JZX1BST1ZJREVSLCBIaXN0b3J5UHJvdmlkZXIgfSBmcm9tICcuL2hpc3RvcnkucHJvdmlkZXInO1xuXG5DbGFyaXR5SWNvbnMuYWRkSWNvbnMoaGlzdG9yeUljb24sIGFuZ2xlSWNvbik7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nsci1oaXN0b3J5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hpc3RvcnkuaHRtbCcsXG4gIGhvc3Q6IHsgY2xhc3M6ICdjbHItaGlzdG9yeScgfSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xySGlzdG9yeSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCdjbHJVc2VybmFtZScpIHVzZXJuYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgnY2xyQ29udGV4dCcpIGNvbnRleHQ6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIEBJbnB1dCgnY2xyUGluQWN0aXZlJykgcGluQWN0aXZlID0gdHJ1ZTtcbiAgQElucHV0KCdjbHJEcm9wZG93bkhlYWRlcicpIGRyb3Bkb3duSGVhZGVyID0gJ0hpc3RvcnknO1xuICBASW5wdXQoJ2NsckRyb3Bkb3duUGluJykgZHJvcGRvd25QaW4gPSAnUGluIEhpc3RvcnknO1xuICBASW5wdXQoJ2NsckRyb3Bkb3duVW5waW4nKSBkcm9wZG93blVucGluID0gJ1VucGluIEhpc3RvcnknO1xuICBASW5wdXQoJ2NsckRvbWFpbicpIGRvbWFpbjogc3RyaW5nO1xuICBASW5wdXQoJ2NsclBvc2l0aW9uJykgcG9zaXRpb24gPSAnYm90dG9tLXJpZ2h0JztcblxuICAvKipcbiAgICogVGhlIGFycmF5IG9mIGhpc3RvcnkgZWxlbWVudHMgdG8gYmUgZGlzcGxheWVkLlxuICAgKi9cbiAgaGlzdG9yeUVsZW1lbnRzOiBDbHJIaXN0b3J5TW9kZWxbXSA9IFtdO1xuICBwaW5BY3RpdmF0ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBvbkRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGhpc3RvcnlTZXJ2aWNlOiBDbHJIaXN0b3J5U2VydmljZSxcbiAgICBASW5qZWN0KEhJU1RPUllfUFJPVklERVIpIEBPcHRpb25hbCgpIHByaXZhdGUgaGlzdG9yeVByb3ZpZGVyOiBIaXN0b3J5UHJvdmlkZXJcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGhpc3RvcnlFbGVtZW50cyA9IHRoaXMuaGlzdG9yeVNlcnZpY2UuZ2V0SGlzdG9yeURpc3BsYXkodGhpcy51c2VybmFtZSwgdGhpcy5jb250ZXh0KTtcbiAgICB0aGlzLmhpc3RvcnlFbGVtZW50cyA9IHRoaXMuaGlzdG9yeVByb3ZpZGVyXG4gICAgICA/IHRoaXMuaGlzdG9yeVByb3ZpZGVyLmdldE1vZGlmaWVkSGlzdG9yeUVudHJpZXMoaGlzdG9yeUVsZW1lbnRzKVxuICAgICAgOiBoaXN0b3J5RWxlbWVudHM7XG5cbiAgICB0aGlzLmhpc3RvcnlTZXJ2aWNlLmluaXRpYWxpemVDb29raWVTZXR0aW5ncyh0aGlzLnVzZXJuYW1lLCB0aGlzLmRvbWFpbik7XG4gICAgdGhpcy5oaXN0b3J5U2VydmljZS5jb29raWVTZXR0aW5ncyQucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKHNldHRpbmdzID0+IHtcbiAgICAgIHRoaXMucGluQWN0aXZhdGVkID0gc2V0dGluZ3MuZmluZChzZXR0aW5nID0+IHNldHRpbmcudXNlcm5hbWUgPT09IHRoaXMudXNlcm5hbWUpLmhpc3RvcnlQaW5uZWQ7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uRGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgc2VsZWN0KGhpc3Rvcnk6IENsckhpc3RvcnlNb2RlbCk6IHZvaWQge1xuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gaGlzdG9yeS51cmw7XG4gIH1cblxuICB0b2dnbGVQaW5IaXN0b3J5KCk6IHZvaWQge1xuICAgIHRoaXMuaGlzdG9yeVNlcnZpY2Uuc2V0SGlzdG9yeVBpbm5lZCh0aGlzLnVzZXJuYW1lLCAhdGhpcy5waW5BY3RpdmF0ZWQpO1xuICB9XG59XG4iLCI8Y2xyLWRyb3Bkb3duPlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4taWNvbiBidG4tb3V0bGluZS1wcmltYXJ5IGhpc3RvcnktYnV0dG9uXCIgY2xyRHJvcGRvd25UcmlnZ2VyPlxuICAgIDxjZHMtaWNvbiBzaGFwZT1cImhpc3RvcnlcIiBzaXplPVwiMTZcIj48L2Nkcy1pY29uPlxuICAgIDxjZHMtaWNvbiBzaGFwZT1cImFuZ2xlXCIgZGlyZWN0aW9uPVwiZG93blwiIHNpemU9XCIxMlwiPjwvY2RzLWljb24+XG4gIDwvYnV0dG9uPlxuICA8Y2xyLWRyb3Bkb3duLW1lbnUgW2NsclBvc2l0aW9uXT1cInBvc2l0aW9uXCIgKmNscklmT3Blbj5cbiAgICA8bGFiZWwgY2xhc3M9XCJkcm9wZG93bi1oZWFkZXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj57eyBkcm9wZG93bkhlYWRlciB9fTwvbGFiZWw+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xyRHJvcGRvd25JdGVtICpuZ0Zvcj1cImxldCBoaXN0b3J5IG9mIGhpc3RvcnlFbGVtZW50c1wiIChjbGljayk9XCJzZWxlY3QoaGlzdG9yeSlcIj5cbiAgICAgIHt7IGhpc3RvcnkudGl0bGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8ZGl2ICpuZ0lmPVwicGluQWN0aXZlXCIgY2xhc3M9XCJkcm9wZG93bi1kaXZpZGVyXCIgcm9sZT1cInNlcGFyYXRvclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZGl2PlxuICAgIDxidXR0b24gY2xyRHJvcGRvd25JdGVtIChjbGljayk9XCJ0b2dnbGVQaW5IaXN0b3J5KClcIj5cbiAgICAgIDxzcGFuICpuZ0lmPVwicGluQWN0aXZlICYmICFwaW5BY3RpdmF0ZWRcIj57eyBkcm9wZG93blBpbiB9fTwvc3Bhbj5cbiAgICAgIDxzcGFuICpuZ0lmPVwicGluQWN0aXZlICYmIHBpbkFjdGl2YXRlZFwiPnt7IGRyb3Bkb3duVW5waW4gfX08L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvY2xyLWRyb3Bkb3duLW1lbnU+XG48L2Nsci1kcm9wZG93bj5cbiJdfQ==
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2018-2022 Porsche Informatik. All Rights Reserved.
|
|
3
|
-
* This software is released under MIT license.
|
|
4
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
|
-
*/
|
|
6
|
-
import { CommonModule } from '@angular/common';
|
|
7
|
-
import { NgModule } from '@angular/core';
|
|
8
|
-
import { ClarityModule } from '@clr/angular';
|
|
9
|
-
import { ClrHistory } from './history';
|
|
10
|
-
import { RouterModule } from '@angular/router';
|
|
11
|
-
import { ClrHistoryPinned } from './history-pinned';
|
|
12
|
-
import { ClrDropdownOverflowModule } from '../dropdown';
|
|
13
|
-
import * as i0 from "@angular/core";
|
|
14
|
-
export class ClrHistoryModule {
|
|
15
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrHistoryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
16
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: ClrHistoryModule, declarations: [ClrHistory, ClrHistoryPinned], imports: [CommonModule, ClarityModule, RouterModule, ClrDropdownOverflowModule], exports: [ClrHistory, ClrHistoryPinned] }); }
|
|
17
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrHistoryModule, imports: [CommonModule, ClarityModule, RouterModule, ClrDropdownOverflowModule] }); }
|
|
18
|
-
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrHistoryModule, decorators: [{
|
|
20
|
-
type: NgModule,
|
|
21
|
-
args: [{
|
|
22
|
-
imports: [CommonModule, ClarityModule, RouterModule, ClrDropdownOverflowModule],
|
|
23
|
-
declarations: [ClrHistory, ClrHistoryPinned],
|
|
24
|
-
exports: [ClrHistory, ClrHistoryPinned],
|
|
25
|
-
}]
|
|
26
|
-
}] });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xyLWFkZG9ucy9oaXN0b3J5L2hpc3RvcnkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFPeEQsTUFBTSxPQUFPLGdCQUFnQjs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsaUJBSFosVUFBVSxFQUFFLGdCQUFnQixhQURqQyxZQUFZLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSx5QkFBeUIsYUFFcEUsVUFBVSxFQUFFLGdCQUFnQjsrR0FFM0IsZ0JBQWdCLFlBSmpCLFlBQVksRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLHlCQUF5Qjs7MkZBSW5FLGdCQUFnQjtrQkFMNUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSx5QkFBeUIsQ0FBQztvQkFDL0UsWUFBWSxFQUFFLENBQUMsVUFBVSxFQUFFLGdCQUFnQixDQUFDO29CQUM1QyxPQUFPLEVBQUUsQ0FBQyxVQUFVLEVBQUUsZ0JBQWdCLENBQUM7aUJBQ3hDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIFBvcnNjaGUgSW5mb3JtYXRpay4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDbGFyaXR5TW9kdWxlIH0gZnJvbSAnQGNsci9hbmd1bGFyJztcbmltcG9ydCB7IENsckhpc3RvcnkgfSBmcm9tICcuL2hpc3RvcnknO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IENsckhpc3RvcnlQaW5uZWQgfSBmcm9tICcuL2hpc3RvcnktcGlubmVkJztcbmltcG9ydCB7IENsckRyb3Bkb3duT3ZlcmZsb3dNb2R1bGUgfSBmcm9tICcuLi9kcm9wZG93bic7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIENsYXJpdHlNb2R1bGUsIFJvdXRlck1vZHVsZSwgQ2xyRHJvcGRvd25PdmVyZmxvd01vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW0Nsckhpc3RvcnksIENsckhpc3RvcnlQaW5uZWRdLFxuICBleHBvcnRzOiBbQ2xySGlzdG9yeSwgQ2xySGlzdG9yeVBpbm5lZF0sXG59KVxuZXhwb3J0IGNsYXNzIENsckhpc3RvcnlNb2R1bGUge31cbiJdfQ==
|
|
@@ -1,8 +0,0 @@
|
|
|
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
|
|
@@ -1,236 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2018-2024 Porsche Informatik. All Rights Reserved.
|
|
3
|
-
* This software is released under MIT license.
|
|
4
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
|
-
*/
|
|
6
|
-
import { Inject, Injectable, Optional } from '@angular/core';
|
|
7
|
-
import { HISTORY_NOTIFICATION_URL_PROVIDER, } from './history-model.interface';
|
|
8
|
-
import { BehaviorSubject } from 'rxjs';
|
|
9
|
-
import { HttpClient } from '@angular/common/http';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@angular/common/http";
|
|
12
|
-
export class ClrHistoryService {
|
|
13
|
-
constructor(historyNotificationUrl, httpClient) {
|
|
14
|
-
this.historyNotificationUrl = historyNotificationUrl;
|
|
15
|
-
this.httpClient = httpClient;
|
|
16
|
-
this.cookieSettings$ = new BehaviorSubject([]);
|
|
17
|
-
this.cookieName = 'clr.history';
|
|
18
|
-
this.cookieNameSettings = 'clr.history.settings';
|
|
19
|
-
// maxmimum history length
|
|
20
|
-
this.maxSize = 1024;
|
|
21
|
-
// maximum url length for usage in history
|
|
22
|
-
this.maxUrlSize = 256;
|
|
23
|
-
this.expiryDate = new Date();
|
|
24
|
-
this.expiryDate.setTime(this.expiryDate.getTime() + 365 * 24 * 60 * 60 * 1000);
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Add a new history entry
|
|
28
|
-
* @param historyEntry The entry to be added
|
|
29
|
-
* @param domain The optional domain param where the cookie is stored
|
|
30
|
-
* @returns true when entry added, otherwise false is returned
|
|
31
|
-
*/
|
|
32
|
-
addHistoryEntry(historyEntry, domain) {
|
|
33
|
-
this.notifyExternalUrl(historyEntry);
|
|
34
|
-
this.removeFromHistory(historyEntry);
|
|
35
|
-
let history = this.getHistory(historyEntry.username, historyEntry.context);
|
|
36
|
-
/* only add to history in case url does not exceed maxUrlSize characters */
|
|
37
|
-
if (historyEntry.url && historyEntry.url.length < this.maxUrlSize) {
|
|
38
|
-
/* add it as last element */
|
|
39
|
-
history.push(historyEntry);
|
|
40
|
-
/* support a maximum of 4 pages in history */
|
|
41
|
-
history = history.slice(-4);
|
|
42
|
-
this.setHistory(history, domain);
|
|
43
|
-
return true;
|
|
44
|
-
}
|
|
45
|
-
return false;
|
|
46
|
-
}
|
|
47
|
-
getHistoryDisplay(username, context) {
|
|
48
|
-
const history = this.getHistory(username, context);
|
|
49
|
-
if (history.length > 0) {
|
|
50
|
-
const currentPageTitle = history[history.length - 1].title;
|
|
51
|
-
const toDisplay = [];
|
|
52
|
-
const alreadyDisplay = [];
|
|
53
|
-
for (let i = history.length - 1; i >= 0 && alreadyDisplay.length < 4; i--) {
|
|
54
|
-
if (!alreadyDisplay.includes(history[i].title) && history[i].title !== currentPageTitle) {
|
|
55
|
-
alreadyDisplay.push(history[i].title);
|
|
56
|
-
toDisplay.push(history[i]);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return toDisplay.reverse();
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
return history;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
getHistory(username, context) {
|
|
66
|
-
const history = this.getCookieByName(this.cookieName);
|
|
67
|
-
if (!history) {
|
|
68
|
-
return [];
|
|
69
|
-
}
|
|
70
|
-
return history.filter(element => this.checkEqualContext(element, context) && element.username === username);
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Set history
|
|
74
|
-
* @param entries
|
|
75
|
-
* @param domain
|
|
76
|
-
*/
|
|
77
|
-
setHistory(entries, domain) {
|
|
78
|
-
if (!entries || entries.length === 0) {
|
|
79
|
-
// clear all entries
|
|
80
|
-
this.setCookie(this.cookieName, this.encode([]), domain);
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
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
|
-
this.setCookie(this.cookieName, this.encode(entries), domain);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
reduceSize(entries) {
|
|
95
|
-
if (JSON.stringify(entries).length > this.maxSize) {
|
|
96
|
-
const reduced = [...entries];
|
|
97
|
-
do {
|
|
98
|
-
reduced.shift();
|
|
99
|
-
} while (JSON.stringify(reduced).length > this.maxSize);
|
|
100
|
-
return reduced;
|
|
101
|
-
}
|
|
102
|
-
else {
|
|
103
|
-
return entries;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
resetHistory() {
|
|
107
|
-
this.setHistory(null);
|
|
108
|
-
}
|
|
109
|
-
removeFromHistory(entry) {
|
|
110
|
-
let history = this.getHistory(entry.username, entry.context);
|
|
111
|
-
/* remove current entry from array */
|
|
112
|
-
history = history.filter(element => !(element.title === entry.title &&
|
|
113
|
-
element.username === entry.username &&
|
|
114
|
-
this.checkEqualContext(element, entry.context)));
|
|
115
|
-
this.setHistory(history);
|
|
116
|
-
}
|
|
117
|
-
checkEqualContext(entry, toCompare) {
|
|
118
|
-
let equal = false;
|
|
119
|
-
if (entry && entry.context && toCompare) {
|
|
120
|
-
Object.keys(toCompare).forEach(key => {
|
|
121
|
-
equal = key in entry.context && entry.context[key] === toCompare[key];
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
return equal;
|
|
125
|
-
}
|
|
126
|
-
initializeCookieSettings(username, domain) {
|
|
127
|
-
let historySettings = this.getCookieByName(this.cookieNameSettings);
|
|
128
|
-
if (!historySettings || historySettings.length === 0) {
|
|
129
|
-
this.setHistoryPinned(username, false, domain);
|
|
130
|
-
historySettings = [{ username: username, historyPinned: false }];
|
|
131
|
-
}
|
|
132
|
-
if (!historySettings.find(hSetting => hSetting.username === username)) {
|
|
133
|
-
this.setHistoryPinned(username, false, domain);
|
|
134
|
-
historySettings.push({ username: username, historyPinned: false });
|
|
135
|
-
}
|
|
136
|
-
this.cookieSettings$.next(historySettings);
|
|
137
|
-
}
|
|
138
|
-
setHistoryPinned(username, pin, domain) {
|
|
139
|
-
const historySettings = this.getCookieByName(this.cookieNameSettings);
|
|
140
|
-
const historySetting = historySettings.find(hSetting => hSetting.username === username);
|
|
141
|
-
if (historySetting) {
|
|
142
|
-
historySetting.historyPinned = pin;
|
|
143
|
-
}
|
|
144
|
-
else {
|
|
145
|
-
historySettings.push({ username: username, historyPinned: pin });
|
|
146
|
-
}
|
|
147
|
-
this.cookieSettings$.next(historySettings);
|
|
148
|
-
// Set it
|
|
149
|
-
this.setCookie(this.cookieNameSettings, JSON.stringify(historySettings), domain);
|
|
150
|
-
}
|
|
151
|
-
getCookieByName(name) {
|
|
152
|
-
const cookieEntries = document.cookie
|
|
153
|
-
.split(';')
|
|
154
|
-
.map(c => c.trim())
|
|
155
|
-
.filter(cookie => {
|
|
156
|
-
return cookie.substring(0, name.length + 1) === `${name}=`;
|
|
157
|
-
})
|
|
158
|
-
.map(cookie => {
|
|
159
|
-
return name === this.cookieName
|
|
160
|
-
? this.decode(cookie.substring(name.length + 1))
|
|
161
|
-
: JSON.parse(cookie.substring(name.length + 1));
|
|
162
|
-
})[0] || [];
|
|
163
|
-
if (cookieEntries && cookieEntries.length > 0) {
|
|
164
|
-
cookieEntries.forEach((entry) => {
|
|
165
|
-
if (entry.title) {
|
|
166
|
-
entry.title = decodeURI(entry.title);
|
|
167
|
-
}
|
|
168
|
-
if (entry.pageName) {
|
|
169
|
-
entry.pageName = decodeURI(entry.pageName);
|
|
170
|
-
}
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
return cookieEntries;
|
|
174
|
-
}
|
|
175
|
-
encode(content) {
|
|
176
|
-
const jsonString = btoa(encodeURIComponent(JSON.stringify(content)));
|
|
177
|
-
return jsonString.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '!');
|
|
178
|
-
}
|
|
179
|
-
decode(content) {
|
|
180
|
-
try {
|
|
181
|
-
const base64 = content.replace(/-/g, '+').replace(/_/g, '/').replace(/!/g, '=');
|
|
182
|
-
return JSON.parse(decodeURIComponent(atob(base64)));
|
|
183
|
-
}
|
|
184
|
-
catch (error) {
|
|
185
|
-
return [];
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
setCookie(name, content, domain) {
|
|
189
|
-
document.cookie =
|
|
190
|
-
name +
|
|
191
|
-
'=' +
|
|
192
|
-
content +
|
|
193
|
-
';domain=' +
|
|
194
|
-
(domain ? domain : this.getDomain()) +
|
|
195
|
-
';expires=' +
|
|
196
|
-
this.expiryDate.toUTCString() +
|
|
197
|
-
';path=/';
|
|
198
|
-
}
|
|
199
|
-
getDomain() {
|
|
200
|
-
const domain = window.location.hostname.split('.');
|
|
201
|
-
//localhost fallback
|
|
202
|
-
if (domain.length === 1) {
|
|
203
|
-
return domain[0];
|
|
204
|
-
}
|
|
205
|
-
domain.shift();
|
|
206
|
-
return domain.join('.');
|
|
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
|
-
}
|
|
223
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrHistoryService, deps: [{ token: HISTORY_NOTIFICATION_URL_PROVIDER, optional: true }, { token: i1.HttpClient, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
224
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrHistoryService }); }
|
|
225
|
-
}
|
|
226
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrHistoryService, decorators: [{
|
|
227
|
-
type: Injectable
|
|
228
|
-
}], ctorParameters: () => [{ 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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LFVBQVU7OzBCQWFOLE1BQU07MkJBQUMsaUNBQWlDOzswQkFBRyxRQUFROzswQkFDbkQsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyNCBQb3JzY2hlIEluZm9ybWF0aWsuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENsckhpc3RvcnlNb2RlbCxcbiAgQ2xySGlzdG9yeU5vdGlmaWNhdGlvbk1vZGVsLFxuICBDbHJIaXN0b3J5U2V0dGluZ3NNb2RlbCxcbiAgSElTVE9SWV9OT1RJRklDQVRJT05fVVJMX1BST1ZJREVSLFxufSBmcm9tICcuL2hpc3RvcnktbW9kZWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENsckhpc3RvcnlTZXJ2aWNlIHtcbiAgcHVibGljIGNvb2tpZVNldHRpbmdzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q2xySGlzdG9yeVNldHRpbmdzTW9kZWxbXT4oW10pO1xuICBjb29raWVOYW1lID0gJ2Nsci5oaXN0b3J5JztcbiAgY29va2llTmFtZVNldHRpbmdzID0gJ2Nsci5oaXN0b3J5LnNldHRpbmdzJztcbiAgcHJpdmF0ZSBleHBpcnlEYXRlOiBEYXRlO1xuXG4gIC8vIG1heG1pbXVtIGhpc3RvcnkgbGVuZ3RoXG4gIHByaXZhdGUgbWF4U2l6ZSA9IDEwMjQ7XG4gIC8vIG1heGltdW0gdXJsIGxlbmd0aCBmb3IgdXNhZ2UgaW4gaGlzdG9yeVxuICBwcml2YXRlIG1heFVybFNpemUgPSAyNTY7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChISVNUT1JZX05PVElGSUNBVElPTl9VUkxfUFJPVklERVIpIEBPcHRpb25hbCgpIHByaXZhdGUgaGlzdG9yeU5vdGlmaWNhdGlvblVybDogc3RyaW5nLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudFxuICApIHtcbiAgICB0aGlzLmV4cGlyeURhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIHRoaXMuZXhwaXJ5RGF0ZS5zZXRUaW1lKHRoaXMuZXhwaXJ5RGF0ZS5nZXRUaW1lKCkgKyAzNjUgKiAyNCAqIDYwICogNjAgKiAxMDAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBuZXcgaGlzdG9yeSBlbnRyeVxuICAgKiBAcGFyYW0gaGlzdG9yeUVudHJ5IFRoZSBlbnRyeSB0byBiZSBhZGRlZFxuICAgKiBAcGFyYW0gZG9tYWluIFRoZSBvcHRpb25hbCBkb21haW4gcGFyYW0gd2hlcmUgdGhlIGNvb2tpZSBpcyBzdG9yZWRcbiAgICogQHJldHVybnMgdHJ1ZSB3aGVuIGVudHJ5IGFkZGVkLCBvdGhlcndpc2UgZmFsc2UgaXMgcmV0dXJuZWRcbiAgICovXG4gIGFkZEhpc3RvcnlFbnRyeShoaXN0b3J5RW50cnk6IENsckhpc3RvcnlNb2RlbCwgZG9tYWluPzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdGhpcy5ub3RpZnlFeHRlcm5hbFVybChoaXN0b3J5RW50cnkpO1xuICAgIHRoaXMucmVtb3ZlRnJvbUhpc3RvcnkoaGlzdG9yeUVudHJ5KTtcbiAgICBsZXQgaGlzdG9yeSA9IHRoaXMuZ2V0SGlzdG9yeShoaXN0b3J5RW50cnkudXNlcm5hbWUsIGhpc3RvcnlFbnRyeS5jb250ZXh0KTtcblxuICAgIC8qIG9ubHkgYWRkIHRvIGhpc3RvcnkgaW4gY2FzZSB1cmwgZG9lcyBub3QgZXhjZWVkIG1heFVybFNpemUgY2hhcmFjdGVycyAqL1xuICAgIGlmIChoaXN0b3J5RW50cnkudXJsICYmIGhpc3RvcnlFbnRyeS51cmwubGVuZ3RoIDwgdGhpcy5tYXhVcmxTaXplKSB7XG4gICAgICAvKiBhZGQgaXQgYXMgbGFzdCBlbGVtZW50ICovXG4gICAgICBoaXN0b3J5LnB1c2goaGlzdG9yeUVudHJ5KTtcbiAgICAgIC8qIHN1cHBvcnQgYSBtYXhpbXVtIG9mIDQgcGFnZXMgaW4gaGlzdG9yeSAqL1xuICAgICAgaGlzdG9yeSA9IGhpc3Rvcnkuc2xpY2UoLTQpO1xuICAgICAgdGhpcy5zZXRIaXN0b3J5KGhpc3RvcnksIGRvbWFpbik7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZ2V0SGlzdG9yeURpc3BsYXkodXNlcm5hbWU6IHN0cmluZywgY29udGV4dDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSk6IENsckhpc3RvcnlNb2RlbFtdIHtcbiAgICBjb25zdCBoaXN0b3J5ID0gdGhpcy5nZXRIaXN0b3J5KHVzZXJuYW1lLCBjb250ZXh0KTtcbiAgICBpZiAoaGlzdG9yeS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBjdXJyZW50UGFnZVRpdGxlID0gaGlzdG9yeVtoaXN0b3J5Lmxlbmd0aCAtIDFdLnRpdGxlO1xuICAgICAgY29uc3QgdG9EaXNwbGF5OiBDbHJIaXN0b3J5TW9kZWxbXSA9IFtdO1xuICAgICAgY29uc3QgYWxyZWFkeURpc3BsYXk6IHN0cmluZ1tdID0gW107XG5cbiAgICAgIGZvciAobGV0IGkgPSBoaXN0b3J5Lmxlbmd0aCAtIDE7IGkgPj0gMCAmJiBhbHJlYWR5RGlzcGxheS5sZW5ndGggPCA0OyBpLS0pIHtcbiAgICAgICAgaWYgKCFhbHJlYWR5RGlzcGxheS5pbmNsdWRlcyhoaXN0b3J5W2ldLnRpdGxlKSAmJiBoaXN0b3J5W2ldLnRpdGxlICE9PSBjdXJyZW50UGFnZVRpdGxlKSB7XG4gICAgICAgICAgYWxyZWFkeURpc3BsYXkucHVzaChoaXN0b3J5W2ldLnRpdGxlKTtcbiAgICAgICAgICB0b0Rpc3BsYXkucHVzaChoaXN0b3J5W2ldKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdG9EaXNwbGF5LnJldmVyc2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGhpc3Rvcnk7XG4gICAgfVxuICB9XG5cbiAgZ2V0SGlzdG9yeSh1c2VybmFtZTogc3RyaW5nLCBjb250ZXh0OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KTogQ2xySGlzdG9yeU1vZGVsW10ge1xuICAgIGNvbnN0IGhpc3Rvcnk6IENsckhpc3RvcnlNb2RlbFtdID0gdGhpcy5nZXRDb29raWVCeU5hbWUodGhpcy5jb29raWVOYW1lKTtcbiAgICBpZiAoIWhpc3RvcnkpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgcmV0dXJuIGhpc3RvcnkuZmlsdGVyKGVsZW1lbnQgPT4gdGhpcy5jaGVja0VxdWFsQ29udGV4dChlbGVtZW50LCBjb250ZXh0KSAmJiBlbGVtZW50LnVzZXJuYW1lID09PSB1c2VybmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGhpc3RvcnlcbiAgICogQHBhcmFtIGVudHJpZXNcbiAgICogQHBhcmFtIGRvbWFpblxuICAgKi9cbiAgcHJpdmF0ZSBzZXRIaXN0b3J5KGVudHJpZXM6IENsckhpc3RvcnlNb2RlbFtdLCBkb21haW4/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIWVudHJpZXMgfHwgZW50cmllcy5sZW5ndGggPT09IDApIHtcbiAgICAgIC8vIGNsZWFyIGFsbCBlbnRyaWVzXG4gICAgICB0aGlzLnNldENvb2tpZSh0aGlzLmNvb2tpZU5hbWUsIHRoaXMuZW5jb2RlKFtdKSwgZG9tYWluKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZW50cmllcyA9IHRoaXMucmVkdWNlU2l6ZShlbnRyaWVzKTtcbiAgICAgIC8vIGVuY29kZSB0aXRsZSAmIHBhZ2VuYW1lIHRvIGJlIGNvb2tpZSBzYXZpbmcgc2F2ZVxuICAgICAgaWYgKGVudHJpZXMgJiYgZW50cmllcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGVudHJpZXMuZm9yRWFjaChlbnRyeSA9PiB7XG4gICAgICAgICAgZW50cnkudGl0bGUgPSBlbmNvZGVVUkkoZW50cnkudGl0bGUpO1xuICAgICAgICAgIGVudHJ5LnBhZ2VOYW1lID0gZW5jb2RlVVJJKGVudHJ5LnBhZ2VOYW1lKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLnNldENvb2tpZSh0aGlzLmNvb2tpZU5hbWUsIHRoaXMuZW5jb2RlKGVudHJpZXMpLCBkb21haW4pO1xuICAgIH1cbiAgfVxuXG4gIHJlZHVjZVNpemUoZW50cmllczogQ2xySGlzdG9yeU1vZGVsW10pOiBDbHJIaXN0b3J5TW9kZWxbXSB7XG4gICAgaWYgKEpTT04uc3RyaW5naWZ5KGVudHJpZXMpLmxlbmd0aCA+IHRoaXMubWF4U2l6ZSkge1xuICAgICAgY29uc3QgcmVkdWNlZDogQ2xySGlzdG9yeU1vZGVsW10gPSBbLi4uZW50cmllc107XG4gICAgICBkbyB7XG4gICAgICAgIHJlZHVjZWQuc2hpZnQoKTtcbiAgICAgIH0gd2hpbGUgKEpTT04uc3RyaW5naWZ5KHJlZHVjZWQpLmxlbmd0aCA+IHRoaXMubWF4U2l6ZSk7XG4gICAgICByZXR1cm4gcmVkdWNlZDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGVudHJpZXM7XG4gICAgfVxuICB9XG5cbiAgcmVzZXRIaXN0b3J5KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0SGlzdG9yeShudWxsKTtcbiAgfVxuXG4gIHJlbW92ZUZyb21IaXN0b3J5KGVudHJ5OiBDbHJIaXN0b3J5TW9kZWwpOiB2b2lkIHtcbiAgICBsZXQgaGlzdG9yeSA9IHRoaXMuZ2V0SGlzdG9yeShlbnRyeS51c2VybmFtZSwgZW50cnkuY29udGV4dCk7XG4gICAgLyogcmVtb3ZlIGN1cnJlbnQgZW50cnkgZnJvbSBhcnJheSAqL1xuICAgIGhpc3RvcnkgPSBoaXN0b3J5LmZpbHRlcihcbiAgICAgIGVsZW1lbnQgPT5cbiAgICAgICAgIShcbiAgICAgICAgICBlbGVtZW50LnRpdGxlID09PSBlbnRyeS50aXRsZSAmJlxuICAgICAgICAgIGVsZW1lbnQudXNlcm5hbWUgPT09IGVudHJ5LnVzZXJuYW1lICYmXG4gICAgICAgICAgdGhpcy5jaGVja0VxdWFsQ29udGV4dChlbGVtZW50LCBlbnRyeS5jb250ZXh0KVxuICAgICAgICApXG4gICAgKTtcbiAgICB0aGlzLnNldEhpc3RvcnkoaGlzdG9yeSk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRXF1YWxDb250ZXh0KGVudHJ5OiBDbHJIaXN0b3J5TW9kZWwsIHRvQ29tcGFyZTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSk6IGJvb2xlYW4ge1xuICAgIGxldCBlcXVhbCA9IGZhbHNlO1xuICAgIGlmIChlbnRyeSAmJiBlbnRyeS5jb250ZXh0ICYmIHRvQ29tcGFyZSkge1xuICAgICAgT2JqZWN0LmtleXModG9Db21wYXJlKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGVxdWFsID0ga2V5IGluIGVudHJ5LmNvbnRleHQgJiYgZW50cnkuY29udGV4dFtrZXldID09PSB0b0NvbXBhcmVba2V5XTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gZXF1YWw7XG4gIH1cblxuICBpbml0aWFsaXplQ29va2llU2V0dGluZ3ModXNlcm5hbWU6IHN0cmluZywgZG9tYWluPzogc3RyaW5nKTogdm9pZCB7XG4gICAgbGV0IGhpc3RvcnlTZXR0aW5nczogQ2xySGlzdG9yeVNldHRpbmdzTW9kZWxbXSA9IHRoaXMuZ2V0Q29va2llQnlOYW1lKHRoaXMuY29va2llTmFtZVNldHRpbmdzKTtcbiAgICBpZiAoIWhpc3RvcnlTZXR0aW5ncyB8fCBoaXN0b3J5U2V0dGluZ3MubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLnNldEhpc3RvcnlQaW5uZWQodXNlcm5hbWUsIGZhbHNlLCBkb21haW4pO1xuICAgICAgaGlzdG9yeVNldHRpbmdzID0gW3sgdXNlcm5hbWU6IHVzZXJuYW1lLCBoaXN0b3J5UGlubmVkOiBmYWxzZSB9XTtcbiAgICB9XG4gICAgaWYgKCFoaXN0b3J5U2V0dGluZ3MuZmluZChoU2V0dGluZyA9PiBoU2V0dGluZy51c2VybmFtZSA9PT0gdXNlcm5hbWUpKSB7XG4gICAgICB0aGlzLnNldEhpc3RvcnlQaW5uZWQodXNlcm5hbWUsIGZhbHNlLCBkb21haW4pO1xuICAgICAgaGlzdG9yeVNldHRpbmdzLnB1c2goeyB1c2VybmFtZTogdXNlcm5hbWUsIGhpc3RvcnlQaW5uZWQ6IGZhbHNlIH0pO1xuICAgIH1cbiAgICB0aGlzLmNvb2tpZVNldHRpbmdzJC5uZXh0KGhpc3RvcnlTZXR0aW5ncyk7XG4gIH1cblxuICBzZXRIaXN0b3J5UGlubmVkKHVzZXJuYW1lOiBzdHJpbmcsIHBpbjogYm9vbGVhbiwgZG9tYWluPzogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgaGlzdG9yeVNldHRpbmdzOiBDbHJIaXN0b3J5U2V0dGluZ3NNb2RlbFtdID0gdGhpcy5nZXRDb29raWVCeU5hbWUodGhpcy5jb29raWVOYW1lU2V0dGluZ3MpO1xuICAgIGNvbnN0IGhpc3RvcnlTZXR0aW5nID0gaGlzdG9yeVNldHRpbmdzLmZpbmQoaFNldHRpbmcgPT4gaFNldHRpbmcudXNlcm5hbWUgPT09IHVzZXJuYW1lKTtcbiAgICBpZiAoaGlzdG9yeVNldHRpbmcpIHtcbiAgICAgIGhpc3RvcnlTZXR0aW5nLmhpc3RvcnlQaW5uZWQgPSBwaW47XG4gICAgfSBlbHNlIHtcbiAgICAgIGhpc3RvcnlTZXR0aW5ncy5wdXNoKHsgdXNlcm5hbWU6IHVzZXJuYW1lLCBoaXN0b3J5UGlubmVkOiBwaW4gfSk7XG4gICAgfVxuICAgIHRoaXMuY29va2llU2V0dGluZ3MkLm5leHQoaGlzdG9yeVNldHRpbmdzKTtcbiAgICAvLyBTZXQgaXRcbiAgICB0aGlzLnNldENvb2tpZSh0aGlzLmNvb2tpZU5hbWVTZXR0aW5ncywgSlNPTi5zdHJpbmdpZnkoaGlzdG9yeVNldHRpbmdzKSwgZG9tYWluKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29va2llQnlOYW1lKG5hbWU6IHN0cmluZyk6IGFueVtdIHtcbiAgICBjb25zdCBjb29raWVFbnRyaWVzID1cbiAgICAgIGRvY3VtZW50LmNvb2tpZVxuICAgICAgICAuc3BsaXQoJzsnKVxuICAgICAgICAubWFwKGMgPT4gYy50cmltKCkpXG4gICAgICAgIC5maWx0ZXIoY29va2llID0+IHtcbiAgICAgICAgICByZXR1cm4gY29va2llLnN1YnN0cmluZygwLCBuYW1lLmxlbmd0aCArIDEpID09PSBgJHtuYW1lfT1gO1xuICAgICAgICB9KVxuICAgICAgICAubWFwKGNvb2tpZSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG5hbWUgPT09IHRoaXMuY29va2llTmFtZVxuICAgICAgICAgICAgPyB0aGlzLmRlY29kZShjb29raWUuc3Vic3RyaW5nKG5hbWUubGVuZ3RoICsgMSkpXG4gICAgICAgICAgICA6IEpTT04ucGFyc2UoY29va2llLnN1YnN0cmluZyhuYW1lLmxlbmd0aCArIDEpKTtcbiAgICAgICAgfSlbMF0gfHwgW107XG4gICAgaWYgKGNvb2tpZUVudHJpZXMgJiYgY29va2llRW50cmllcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb29raWVFbnRyaWVzLmZvckVhY2goKGVudHJ5OiBhbnkpID0+IHtcbiAgICAgICAgaWYgKGVudHJ5LnRpdGxlKSB7XG4gICAgICAgICAgZW50cnkudGl0bGUgPSBkZWNvZGVVUkkoZW50cnkudGl0bGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbnRyeS5wYWdlTmFtZSkge1xuICAgICAgICAgIGVudHJ5LnBhZ2VOYW1lID0gZGVjb2RlVVJJKGVudHJ5LnBhZ2VOYW1lKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBjb29raWVFbnRyaWVzO1xuICB9XG5cbiAgcHJpdmF0ZSBlbmNvZGUoY29udGVudDogQ2xySGlzdG9yeU1vZGVsW10pOiBzdHJpbmcge1xuICAgIGNvbnN0IGpzb25TdHJpbmcgPSBidG9hKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShjb250ZW50KSkpO1xuICAgIHJldHVybiBqc29uU3RyaW5nLnJlcGxhY2UoL1xcKy9nLCAnLScpLnJlcGxhY2UoL1xcLy9nLCAnXycpLnJlcGxhY2UoLz0vZywgJyEnKTtcbiAgfVxuXG4gIHByaXZhdGUgZGVjb2RlKGNvbnRlbnQ6IHN0cmluZyk6IENsckhpc3RvcnlNb2RlbFtdIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYmFzZTY0ID0gY29udGVudC5yZXBsYWNlKC8tL2csICcrJykucmVwbGFjZSgvXy9nLCAnLycpLnJlcGxhY2UoLyEvZywgJz0nKTtcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKGRlY29kZVVSSUNvbXBvbmVudChhdG9iKGJhc2U2NCkpKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0Q29va2llKG5hbWU6IHN0cmluZywgY29udGVudDogc3RyaW5nLCBkb21haW46IHN0cmluZyk6IHZvaWQge1xuICAgIGRvY3VtZW50LmNvb2tpZSA9XG4gICAgICBuYW1lICtcbiAgICAgICc9JyArXG4gICAgICBjb250ZW50ICtcbiAgICAgICc7ZG9tYWluPScgK1xuICAgICAgKGRvbWFpbiA/IGRvbWFpbiA6IHRoaXMuZ2V0RG9tYWluKCkpICtcbiAgICAgICc7ZXhwaXJlcz0nICtcbiAgICAgIHRoaXMuZXhwaXJ5RGF0ZS50b1VUQ1N0cmluZygpICtcbiAgICAgICc7cGF0aD0vJztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RG9tYWluKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZG9tYWluID0gd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLnNwbGl0KCcuJyk7XG4gICAgLy9sb2NhbGhvc3QgZmFsbGJhY2tcbiAgICBpZiAoZG9tYWluLmxlbmd0aCA9PT0gMSkge1xuICAgICAgcmV0dXJuIGRvbWFpblswXTtcbiAgICB9XG4gICAgZG9tYWluLnNoaWZ0KCk7XG4gICAgcmV0dXJuIGRvbWFpbi5qb2luKCcuJyk7XG4gIH1cblxuICBwcml2YXRlIG5vdGlmeUV4dGVybmFsVXJsKGhpc3RvcnlFbnRyeTogQ2xySGlzdG9yeU1vZGVsKSB7XG4gICAgaWYgKCF0aGlzLmhpc3RvcnlOb3RpZmljYXRpb25VcmwgfHwgIXRoaXMuaHR0cENsaWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGJvZHk6IENsckhpc3RvcnlOb3RpZmljYXRpb25Nb2RlbCA9IHtcbiAgICAgIHVzZXJuYW1lOiBoaXN0b3J5RW50cnkudXNlcm5hbWUsXG4gICAgICBwYWdlTmFtZTogaGlzdG9yeUVudHJ5LnBhZ2VOYW1lLFxuICAgICAgYXBwbGljYXRpb25OYW1lOiBoaXN0b3J5RW50cnkuY29udGV4dC5hcHBsaWNhdGlvbk5hbWUsXG4gICAgICB0ZW5hbnRJZDogaGlzdG9yeUVudHJ5LmNvbnRleHQudGVuYW50aWQsXG4gICAgICB0aXRsZTogaGlzdG9yeUVudHJ5LnRpdGxlLFxuICAgICAgdXJsOiBoaXN0b3J5RW50cnkudXJsLFxuICAgICAgY29udGV4dDogaGlzdG9yeUVudHJ5LmNvbnRleHQuY29udGV4dCxcbiAgICB9O1xuXG4gICAgdGhpcy5odHRwQ2xpZW50LnBvc3QodGhpcy5oaXN0b3J5Tm90aWZpY2F0aW9uVXJsLCBib2R5KS5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2018-2020 Porsche Informatik. All Rights Reserved.
|
|
3
|
-
* This software is released under MIT license.
|
|
4
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
|
-
*/
|
|
6
|
-
export * from './history';
|
|
7
|
-
export * from './history-pinned';
|
|
8
|
-
export * from './history.module';
|
|
9
|
-
export * from './history-model.interface';
|
|
10
|
-
export * from './history.service';
|
|
11
|
-
export * from './history.provider';
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xyLWFkZG9ucy9oaXN0b3J5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjAgUG9yc2NoZSBJbmZvcm1hdGlrLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2hpc3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9oaXN0b3J5LXBpbm5lZCc7XG5leHBvcnQgKiBmcm9tICcuL2hpc3RvcnkubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vaGlzdG9yeS1tb2RlbC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9oaXN0b3J5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9oaXN0b3J5LnByb3ZpZGVyJztcbiJdfQ==
|
package/esm2022/icons/index.mjs
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2018-2022 Porsche Informatik. All Rights Reserved.
|
|
3
|
-
* This software is released under MIT license.
|
|
4
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
|
-
*/
|
|
6
|
-
export * from './shapes';
|
|
7
|
-
export * from './svg-tag-generator';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xyLWFkZG9ucy9pY29ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMiBQb3JzY2hlIEluZm9ybWF0aWsuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vc2hhcGVzJztcbmV4cG9ydCAqIGZyb20gJy4vc3ZnLXRhZy1nZW5lcmF0b3InO1xuIl19
|