@fundamental-ngx/cx 0.38.3-rc.2 → 0.38.3-rc.4

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.
Files changed (73) hide show
  1. package/README.md +1 -1
  2. package/esm2020/fundamental-ngx-cx.module.mjs +19 -0
  3. package/esm2020/nested-list/fundamental-ngx-cx-nested-list.mjs +5 -0
  4. package/esm2020/nested-list/nested-content/nested-list-content.directive.mjs +131 -0
  5. package/esm2020/nested-list/nested-item/nested-item.component.mjs +290 -0
  6. package/esm2020/nested-list/nested-item/nested-item.interface.mjs +2 -0
  7. package/esm2020/nested-list/nested-item/nested-item.service.mjs +15 -0
  8. package/esm2020/nested-list/nested-link/nested-link.component.mjs +151 -0
  9. package/esm2020/nested-list/nested-list/nested-list.component.mjs +191 -0
  10. package/esm2020/nested-list/nested-list/nested-list.interface.mjs +2 -0
  11. package/esm2020/nested-list/nested-list-directives.mjs +248 -0
  12. package/esm2020/nested-list/nested-list-keyboard.service.mjs +106 -0
  13. package/esm2020/nested-list/nested-list-model.mjs +2 -0
  14. package/esm2020/nested-list/nested-list-popover/nested-list-popover.component.mjs +87 -0
  15. package/esm2020/nested-list/nested-list-popover/nested-list-popover.interface.mjs +2 -0
  16. package/esm2020/nested-list/nested-list-state.service.mjs +24 -0
  17. package/esm2020/nested-list/nested-list.module.mjs +78 -0
  18. package/esm2020/nested-list/prepared-nested-list/prepared-nested-list.component.mjs +53 -0
  19. package/esm2020/nested-list/public_api.mjs +13 -0
  20. package/esm2020/public_api.mjs +4 -2
  21. package/esm2020/side-navigation/fundamental-ngx-cx-side-navigation.mjs +5 -0
  22. package/esm2020/side-navigation/public_api.mjs +7 -0
  23. package/esm2020/side-navigation/side-navigation-button.directive.mjs +20 -0
  24. package/esm2020/side-navigation/side-navigation-main.component.mjs +45 -0
  25. package/esm2020/side-navigation/side-navigation-model.mjs +2 -0
  26. package/esm2020/side-navigation/side-navigation-utility.directive.mjs +25 -0
  27. package/esm2020/side-navigation/side-navigation.component.mjs +159 -0
  28. package/esm2020/side-navigation/side-navigation.module.mjs +41 -0
  29. package/fesm2015/fundamental-ngx-cx-nested-list.mjs +1306 -0
  30. package/fesm2015/fundamental-ngx-cx-nested-list.mjs.map +1 -0
  31. package/fesm2015/fundamental-ngx-cx-side-navigation.mjs +276 -0
  32. package/fesm2015/fundamental-ngx-cx-side-navigation.mjs.map +1 -0
  33. package/fesm2015/fundamental-ngx-cx.mjs +9 -4
  34. package/fesm2015/fundamental-ngx-cx.mjs.map +1 -1
  35. package/fesm2020/fundamental-ngx-cx-nested-list.mjs +1292 -0
  36. package/fesm2020/fundamental-ngx-cx-nested-list.mjs.map +1 -0
  37. package/fesm2020/fundamental-ngx-cx-side-navigation.mjs +275 -0
  38. package/fesm2020/fundamental-ngx-cx-side-navigation.mjs.map +1 -0
  39. package/fesm2020/fundamental-ngx-cx.mjs +9 -4
  40. package/fesm2020/fundamental-ngx-cx.mjs.map +1 -1
  41. package/fundamental-ngx-cx-v0.38.3-rc.4.tgz +0 -0
  42. package/{fundamental-ngx.module.d.ts → fundamental-ngx-cx.module.d.ts} +4 -1
  43. package/nested-list/README.md +25 -0
  44. package/nested-list/index.d.ts +5 -0
  45. package/nested-list/nested-content/nested-list-content.directive.d.ts +58 -0
  46. package/nested-list/nested-item/nested-item.component.d.ts +111 -0
  47. package/nested-list/nested-item/nested-item.interface.d.ts +16 -0
  48. package/nested-list/nested-item/nested-item.service.d.ts +18 -0
  49. package/nested-list/nested-link/nested-link.component.d.ts +57 -0
  50. package/nested-list/nested-list/nested-list.component.d.ts +74 -0
  51. package/nested-list/nested-list/nested-list.interface.d.ts +8 -0
  52. package/nested-list/nested-list-directives.d.ts +101 -0
  53. package/nested-list/nested-list-keyboard.service.d.ts +43 -0
  54. package/nested-list/nested-list-model.d.ts +18 -0
  55. package/nested-list/nested-list-popover/nested-list-popover.component.d.ts +49 -0
  56. package/nested-list/nested-list-popover/nested-list-popover.interface.d.ts +7 -0
  57. package/nested-list/nested-list-state.service.d.ts +17 -0
  58. package/nested-list/nested-list.module.d.ts +18 -0
  59. package/nested-list/prepared-nested-list/prepared-nested-list.component.d.ts +31 -0
  60. package/nested-list/public_api.d.ts +12 -0
  61. package/package.json +21 -4
  62. package/public_api.d.ts +3 -1
  63. package/side-navigation/README.md +25 -0
  64. package/side-navigation/index.d.ts +5 -0
  65. package/side-navigation/public_api.d.ts +6 -0
  66. package/side-navigation/side-navigation-button.directive.d.ts +7 -0
  67. package/side-navigation/side-navigation-main.component.d.ts +22 -0
  68. package/side-navigation/side-navigation-model.d.ts +6 -0
  69. package/side-navigation/side-navigation-utility.directive.d.ts +10 -0
  70. package/side-navigation/side-navigation.component.d.ts +72 -0
  71. package/side-navigation/side-navigation.module.d.ts +13 -0
  72. package/esm2020/fundamental-ngx.module.mjs +0 -16
  73. package/fundamental-ngx-cx-v0.38.3-rc.2.tgz +0 -0
package/README.md CHANGED
@@ -43,7 +43,7 @@ Check the [Breaking Changes](https://github.com/SAP/fundamental-ngx/wiki#breakin
43
43
  For an existing Angular CLI application,
44
44
 
45
45
  0. **Video tutorial**
46
- [How to use the Fundamental Core Library](https://www.youtube.com/watch?v=i4VIiuzD2Fg)
46
+ [How to use the Fundamental Cx Library](https://www.youtube.com/watch?v=i4VIiuzD2Fg)
47
47
 
48
48
  1. **Install Fundamental-NGX.**
49
49
  `ng add @fundamental-ngx/cx`
@@ -0,0 +1,19 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { CxNestedListModule } from '@fundamental-ngx/cx/nested-list';
4
+ import { CxSideNavigationModule } from '@fundamental-ngx/cx/side-navigation';
5
+ import * as i0 from "@angular/core";
6
+ export class FundamentalNgxCxModule {
7
+ }
8
+ FundamentalNgxCxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FundamentalNgxCxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ FundamentalNgxCxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: FundamentalNgxCxModule, imports: [CommonModule], exports: [CxNestedListModule, CxSideNavigationModule] });
10
+ FundamentalNgxCxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FundamentalNgxCxModule, imports: [CommonModule, CxNestedListModule, CxSideNavigationModule] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FundamentalNgxCxModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ imports: [CommonModule],
15
+ declarations: [],
16
+ exports: [CxNestedListModule, CxSideNavigationModule]
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtbmd4LWN4Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvY3gvc3JjL2xpYi9mdW5kYW1lbnRhbC1uZ3gtY3gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQU83RSxNQUFNLE9BQU8sc0JBQXNCOzttSEFBdEIsc0JBQXNCO29IQUF0QixzQkFBc0IsWUFKckIsWUFBWSxhQUVaLGtCQUFrQixFQUFFLHNCQUFzQjtvSEFFM0Msc0JBQXNCLFlBSnJCLFlBQVksRUFFWixrQkFBa0IsRUFBRSxzQkFBc0I7MkZBRTNDLHNCQUFzQjtrQkFMbEMsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxzQkFBc0IsQ0FBQztpQkFDeEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEN4TmVzdGVkTGlzdE1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY3gvbmVzdGVkLWxpc3QnO1xuaW1wb3J0IHsgQ3hTaWRlTmF2aWdhdGlvbk1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY3gvc2lkZS1uYXZpZ2F0aW9uJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtdLFxuICAgIGV4cG9ydHM6IFtDeE5lc3RlZExpc3RNb2R1bGUsIEN4U2lkZU5hdmlnYXRpb25Nb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEZ1bmRhbWVudGFsTmd4Q3hNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtbmd4LWN4LW5lc3RlZC1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jeC9zcmMvbGliL25lc3RlZC1saXN0L2Z1bmRhbWVudGFsLW5neC1jeC1uZXN0ZWQtbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19
@@ -0,0 +1,131 @@
1
+ import { ChangeDetectorRef, ContentChild, Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output, Renderer2 } from '@angular/core';
2
+ import { NestedLinkComponent } from '../nested-link/nested-link.component';
3
+ import { NestedListExpandIconComponent } from '../nested-list-directives';
4
+ import { NestedItemService } from '../nested-item/nested-item.service';
5
+ import { Subject } from 'rxjs';
6
+ import { takeUntil } from 'rxjs/operators';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../nested-item/nested-item.service";
9
+ export class NestedListContentDirective {
10
+ /** @hidden */
11
+ constructor(changeDetRef, _renderer, _elementRef, _itemService) {
12
+ this.changeDetRef = changeDetRef;
13
+ this._renderer = _renderer;
14
+ this._elementRef = _elementRef;
15
+ this._itemService = _itemService;
16
+ /** Whether this element is selected*/
17
+ this.selected = false;
18
+ /** @hidden */
19
+ this.role = 'treeitem';
20
+ /** @hidden */
21
+ this.ariaExpanded = false;
22
+ /** Event thrown, when selected state is changed */
23
+ this.selectedChange = new EventEmitter();
24
+ /** Event that is thrown, when any keyboard event is dispatched on this element */
25
+ this.keyboardTriggered = new EventEmitter();
26
+ /** Event that is thrown, when this element is clicked */
27
+ this.clicked = new EventEmitter();
28
+ /** @hidden */
29
+ this.cxNestedListContentClass = true;
30
+ /**
31
+ * @hidden
32
+ * Attribute controlled by the parent `NestedItemComponent`
33
+ */
34
+ this.hasChildren = false;
35
+ /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */
36
+ this.onDestroy$ = new Subject();
37
+ }
38
+ /** @hidden */
39
+ ngAfterContentInit() {
40
+ this._makeLinkUnFocusable();
41
+ this._setFocusSubscription();
42
+ }
43
+ /** @hidden */
44
+ ngOnDestroy() {
45
+ this.onDestroy$.next();
46
+ this.onDestroy$.complete();
47
+ }
48
+ /** Keyboard Event Handler */
49
+ onKeyDown(event) {
50
+ this.keyboardTriggered.emit(event);
51
+ this._itemService.keyDown.next(event);
52
+ }
53
+ /** Handler for mouse events */
54
+ onClick() {
55
+ this._itemService.click.next();
56
+ }
57
+ /** Method to trigger selected state change */
58
+ changeSelected(selected) {
59
+ this.selected = selected;
60
+ this.selectedChange.emit(selected);
61
+ }
62
+ /** Set focus on the element. */
63
+ focus() {
64
+ this._elementRef.nativeElement.focus();
65
+ }
66
+ /** Dispatches the click event on the element */
67
+ click() {
68
+ this.focus();
69
+ if (this.nestedLink) {
70
+ this.nestedLink.click();
71
+ }
72
+ }
73
+ /** Add subscription for child focusing */
74
+ _setFocusSubscription() {
75
+ this._itemService.focus.pipe(takeUntil(this.onDestroy$)).subscribe(() => this.focus());
76
+ }
77
+ /** Hide link child element from tab key */
78
+ _makeLinkUnFocusable() {
79
+ if (this.nestedLink) {
80
+ this.nestedLink.elementRef.nativeElement.tabIndex = -1;
81
+ this.changeDetRef.detectChanges();
82
+ }
83
+ }
84
+ }
85
+ NestedListContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: NestedListContentDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.NestedItemService }], target: i0.ɵɵFactoryTarget.Directive });
86
+ NestedListContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: NestedListContentDirective, selector: "[cxNestedListContent], [fdx-nested-list-content]", inputs: { selected: "selected" }, outputs: { selectedChange: "selectedChange", keyboardTriggered: "keyboardTriggered", clicked: "clicked" }, host: { attributes: { "tabindex": "0" }, listeners: { "keydown": "onKeyDown($event)", "click": "onClick($event)" }, properties: { "class.is-selected": "this.selected", "attr.role": "this.role", "attr.aria-expanded": "this.ariaExpanded", "class.fdx-nested-list__content": "this.cxNestedListContentClass", "class.has-child": "this.hasChildren" } }, queries: [{ propertyName: "nestedLink", first: true, predicate: NestedLinkComponent, descendants: true }, { propertyName: "nestedExpandIcon", first: true, predicate: NestedListExpandIconComponent, descendants: true }], ngImport: i0 });
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: NestedListContentDirective, decorators: [{
88
+ type: Directive,
89
+ args: [{
90
+ selector: '[cxNestedListContent], [fdx-nested-list-content]',
91
+ host: {
92
+ tabindex: '0'
93
+ }
94
+ }]
95
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.NestedItemService }]; }, propDecorators: { selected: [{
96
+ type: Input
97
+ }, {
98
+ type: HostBinding,
99
+ args: ['class.is-selected']
100
+ }], role: [{
101
+ type: HostBinding,
102
+ args: ['attr.role']
103
+ }], ariaExpanded: [{
104
+ type: HostBinding,
105
+ args: ['attr.aria-expanded']
106
+ }], selectedChange: [{
107
+ type: Output
108
+ }], keyboardTriggered: [{
109
+ type: Output
110
+ }], clicked: [{
111
+ type: Output
112
+ }], cxNestedListContentClass: [{
113
+ type: HostBinding,
114
+ args: ['class.fdx-nested-list__content']
115
+ }], hasChildren: [{
116
+ type: HostBinding,
117
+ args: ['class.has-child']
118
+ }], nestedLink: [{
119
+ type: ContentChild,
120
+ args: [NestedLinkComponent]
121
+ }], nestedExpandIcon: [{
122
+ type: ContentChild,
123
+ args: [NestedListExpandIconComponent]
124
+ }], onKeyDown: [{
125
+ type: HostListener,
126
+ args: ['keydown', ['$event']]
127
+ }], onClick: [{
128
+ type: HostListener,
129
+ args: ['click', ['$event']]
130
+ }] } });
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkLWxpc3QtY29udGVudC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2N4L3NyYy9saWIvbmVzdGVkLWxpc3QvbmVzdGVkLWNvbnRlbnQvbmVzdGVkLWxpc3QtY29udGVudC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILGlCQUFpQixFQUNqQixZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBUTNDLE1BQU0sT0FBTywwQkFBMEI7SUFnRG5DLGNBQWM7SUFDZCxZQUNXLFlBQStCLEVBQzlCLFNBQW9CLEVBQ3BCLFdBQXVCLEVBQ3ZCLFlBQStCO1FBSGhDLGlCQUFZLEdBQVosWUFBWSxDQUFtQjtRQUM5QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLGlCQUFZLEdBQVosWUFBWSxDQUFtQjtRQXBEM0Msc0NBQXNDO1FBR3RDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsY0FBYztRQUVkLFNBQUksR0FBRyxVQUFVLENBQUM7UUFFbEIsY0FBYztRQUVkLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRXJCLG1EQUFtRDtRQUVuRCxtQkFBYyxHQUEwQixJQUFJ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V0FBVzt1QkFBQyxnQ0FBZ0M7Z0JBUTdDLFdBQVc7c0JBRFYsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBSzlCLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxtQkFBbUI7Z0JBS2pDLGdCQUFnQjtzQkFEZixZQUFZO3VCQUFDLDZCQUE2QjtnQkE0QjNDLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBUW5DLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29udGVudENoaWxkLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBSZW5kZXJlcjJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZXN0ZWRMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi4vbmVzdGVkLWxpbmsvbmVzdGVkLWxpbmsuY29tcG9uZW50JztcbmltcG9ydCB7IE5lc3RlZExpc3RFeHBhbmRJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vbmVzdGVkLWxpc3QtZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBOZXN0ZWRJdGVtU2VydmljZSB9IGZyb20gJy4uL25lc3RlZC1pdGVtL25lc3RlZC1pdGVtLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tjeE5lc3RlZExpc3RDb250ZW50XSwgW2ZkeC1uZXN0ZWQtbGlzdC1jb250ZW50XScsXG4gICAgaG9zdDoge1xuICAgICAgICB0YWJpbmRleDogJzAnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBOZXN0ZWRMaXN0Q29udGVudERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqIFdoZXRoZXIgdGhpcyBlbGVtZW50IGlzIHNlbGVjdGVkKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaXMtc2VsZWN0ZWQnKVxuICAgIHNlbGVjdGVkID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgICByb2xlID0gJ3RyZWVpdGVtJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZXhwYW5kZWQnKVxuICAgIGFyaWFFeHBhbmRlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEV2ZW50IHRocm93biwgd2hlbiBzZWxlY3RlZCBzdGF0ZSBpcyBjaGFuZ2VkICovXG4gICAgQE91dHB1dCgpXG4gICAgc2VsZWN0ZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKiBFdmVudCB0aGF0IGlzIHRocm93biwgd2hlbiBhbnkga2V5Ym9hcmQgZXZlbnQgaXMgZGlzcGF0Y2hlZCBvbiB0aGlzIGVsZW1lbnQgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBrZXlib2FyZFRyaWdnZXJlZDogRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PigpO1xuXG4gICAgLyoqIEV2ZW50IHRoYXQgaXMgdGhyb3duLCB3aGVuIHRoaXMgZWxlbWVudCBpcyBjbGlja2VkICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgY2xpY2tlZDogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkeC1uZXN0ZWQtbGlzdF9fY29udGVudCcpXG4gICAgY3hOZXN0ZWRMaXN0Q29udGVudENsYXNzID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBBdHRyaWJ1dGUgY29udHJvbGxlZCBieSB0aGUgcGFyZW50IGBOZXN0ZWRJdGVtQ29tcG9uZW50YFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaGFzLWNoaWxkJylcbiAgICBoYXNDaGlsZHJlbiA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKE5lc3RlZExpbmtDb21wb25lbnQpXG4gICAgbmVzdGVkTGluazogTmVzdGVkTGlua0NvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChOZXN0ZWRMaXN0RXhwYW5kSWNvbkNvbXBvbmVudClcbiAgICBuZXN0ZWRFeHBhbmRJY29uOiBOZXN0ZWRMaXN0RXhwYW5kSWNvbkNvbXBvbmVudDtcblxuICAgIC8qKiBBbiBSeEpTIFN1YmplY3QgdGhhdCB3aWxsIGtpbGwgdGhlIGRhdGEgc3RyZWFtIHVwb24gY29tcG9uZW504oCZcyBkZXN0cnVjdGlvbiAoZm9yIHVuc3Vic2NyaWJpbmcpICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb25EZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgY2hhbmdlRGV0UmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBfaXRlbVNlcnZpY2U6IE5lc3RlZEl0ZW1TZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX21ha2VMaW5rVW5Gb2N1c2FibGUoKTtcbiAgICAgICAgdGhpcy5fc2V0Rm9jdXNTdWJzY3JpcHRpb24oKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uRGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLm9uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKiogS2V5Ym9hcmQgRXZlbnQgSGFuZGxlciAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmtleWJvYXJkVHJpZ2dlcmVkLmVtaXQoZXZlbnQpO1xuICAgICAgICB0aGlzLl9pdGVtU2VydmljZS5rZXlEb3duLm5leHQoZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKiBIYW5kbGVyIGZvciBtb3VzZSBldmVudHMgKi9cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgb25DbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXRlbVNlcnZpY2UuY2xpY2submV4dCgpO1xuICAgIH1cblxuICAgIC8qKiBNZXRob2QgdG8gdHJpZ2dlciBzZWxlY3RlZCBzdGF0ZSBjaGFuZ2UgKi9cbiAgICBjaGFuZ2VTZWxlY3RlZChzZWxlY3RlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdChzZWxlY3RlZCk7XG4gICAgfVxuXG4gICAgLyoqIFNldCBmb2N1cyBvbiB0aGUgZWxlbWVudC4gKi9cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqIERpc3BhdGNoZXMgdGhlIGNsaWNrIGV2ZW50IG9uIHRoZSBlbGVtZW50ICovXG4gICAgY2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgaWYgKHRoaXMubmVzdGVkTGluaykge1xuICAgICAgICAgICAgdGhpcy5uZXN0ZWRMaW5rLmNsaWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQWRkIHN1YnNjcmlwdGlvbiBmb3IgY2hpbGQgZm9jdXNpbmcgKi9cbiAgICBwcml2YXRlIF9zZXRGb2N1c1N1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXRlbVNlcnZpY2UuZm9jdXMucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuZm9jdXMoKSk7XG4gICAgfVxuXG4gICAgLyoqIEhpZGUgbGluayBjaGlsZCBlbGVtZW50IGZyb20gdGFiIGtleSAqL1xuICAgIHByaXZhdGUgX21ha2VMaW5rVW5Gb2N1c2FibGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5lc3RlZExpbmspIHtcbiAgICAgICAgICAgIHRoaXMubmVzdGVkTGluay5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGFiSW5kZXggPSAtMTtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0UmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,290 @@
1
+ import { ContentChild, Component, ElementRef, EventEmitter, HostBinding, Input, Output, forwardRef } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { filter, takeUntil } from 'rxjs/operators';
4
+ import { NestedLinkComponent } from '../nested-link/nested-link.component';
5
+ import { NestedListKeyboardService } from '../nested-list-keyboard.service';
6
+ import { NestedListContentDirective } from '../nested-content/nested-list-content.directive';
7
+ import { NestedListStateService } from '../nested-list-state.service';
8
+ import { NestedItemService } from './nested-item.service';
9
+ import { NestedListComponent } from '../nested-list/nested-list.component';
10
+ import { NestedListExpandIconComponent } from '../nested-list-directives';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "./nested-item.service";
13
+ import * as i2 from "../nested-list-keyboard.service";
14
+ import * as i3 from "../nested-list-state.service";
15
+ let sideNavigationItemUniqueId = 0;
16
+ export class NestedItemComponent {
17
+ /** @hidden */
18
+ constructor(_itemService, _keyboardService, _stateService, elementRef) {
19
+ this._itemService = _itemService;
20
+ this._keyboardService = _keyboardService;
21
+ this._stateService = _stateService;
22
+ this.elementRef = elementRef;
23
+ /** Event thrown, when expanded state is changed */
24
+ this.expandedChange = new EventEmitter();
25
+ /** Event thrown, when any keyboard event is dispatched on this, or link element */
26
+ this.keyboardTriggered = new EventEmitter();
27
+ /** @hidden */
28
+ this.fdNestedListItemClass = true;
29
+ /** Whether this item is a header item. */
30
+ this.header = false;
31
+ /** Whether this item is only meant for display purposes, meaning it cannot be used for navigation or shown as selected. */
32
+ this.display = false;
33
+ /** @hidden */
34
+ this._ariaLevel = null;
35
+ /** @hidden */
36
+ this._display = 'block';
37
+ /** @hidden */
38
+ this._narrow = false;
39
+ /** @hidden */
40
+ this._expanded = false;
41
+ /** @hidden */
42
+ this._ariaExpanded = null;
43
+ /** @hidden */
44
+ this._ariaSelected = null;
45
+ /** @hidden */
46
+ this._ariaDisabled = false;
47
+ /** @hidden */
48
+ this._ariaHidden = true;
49
+ /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */
50
+ this._onDestroy$ = new Subject();
51
+ /** Unique element ID */
52
+ this._elementId = 'fdNestedItem' + sideNavigationItemUniqueId++;
53
+ }
54
+ /** Whether item should be expanded */
55
+ set expanded(expanded) {
56
+ if (expanded !== this._expanded) {
57
+ this.propagateOpenChange(expanded);
58
+ }
59
+ }
60
+ /** @hidden */
61
+ get expanded() {
62
+ return this._expanded;
63
+ }
64
+ /** @hidden */
65
+ ngAfterContentInit() {
66
+ this._setUpSubscriptions();
67
+ this._propagateHasChildrenProperty();
68
+ this._passItemReferences();
69
+ /** Propagate initial open state to children */
70
+ this.propagateOpenChange(this._expanded);
71
+ if (this.linkItem) {
72
+ this._ariaSelected = this.linkItem.selected;
73
+ this._ariaDisabled = !this._stateService.selectable && !this.linkItem.selected;
74
+ this._title = this.linkItem.getTitle();
75
+ }
76
+ }
77
+ /** @hidden */
78
+ ngOnDestroy() {
79
+ this._onDestroy$.next();
80
+ this._onDestroy$.complete();
81
+ }
82
+ /** Check if the item element has any child */
83
+ get hasChildren() {
84
+ return !!this._itemService?.list;
85
+ }
86
+ /** Get all of the children item elements */
87
+ get allChildrenItems() {
88
+ if (this._itemService?.list) {
89
+ return this._itemService.list.nestedItems.toArray();
90
+ }
91
+ return [];
92
+ }
93
+ /** Method that expand the item and propagate it to children */
94
+ triggerOpen() {
95
+ if (!this.expanded) {
96
+ /** Propagate initial open state to children */
97
+ this.propagateOpenChange(true);
98
+ }
99
+ }
100
+ /** Method that close the item and propagate it to children */
101
+ triggerClose() {
102
+ if (this.expanded) {
103
+ /** Propagate initial open state to children */
104
+ this.propagateOpenChange(false);
105
+ }
106
+ }
107
+ /** Method that toggle the item and propagate it to children */
108
+ toggle() {
109
+ /** Propagate initial open state to children */
110
+ this.propagateOpenChange(!this._expanded);
111
+ }
112
+ /** Method that dispatches `click` event on link item*/
113
+ click() {
114
+ if (!this.display) {
115
+ if (this.contentItem) {
116
+ this.contentItem.click();
117
+ }
118
+ else if (this.linkItem) {
119
+ this.linkItem.click();
120
+ }
121
+ }
122
+ }
123
+ /** Method that focuses link item*/
124
+ focus() {
125
+ if (this.contentItem) {
126
+ this.contentItem.focus();
127
+ }
128
+ else if (this.linkItem) {
129
+ this.linkItem.focus();
130
+ }
131
+ }
132
+ /** Method that provides information if element, or children of this element has passed id */
133
+ containsId(id) {
134
+ if (this._elementId === id) {
135
+ return true;
136
+ }
137
+ if (this._itemService.list) {
138
+ return !!this._itemService.list.nestedItems.find((item) => item.containsId(id));
139
+ }
140
+ return false;
141
+ }
142
+ /**
143
+ * @hidden
144
+ * Propagate open state to all of the children
145
+ */
146
+ propagateOpenChange(open) {
147
+ this._expanded = open;
148
+ if (this.hasChildren) {
149
+ this._ariaExpanded = this._expanded;
150
+ }
151
+ this.expandIcon?.changeExpandedState(open);
152
+ /** Propagate hidden flag to list component, that is passed from child */
153
+ if (this._itemService.list) {
154
+ this._itemService.list.hidden = !open;
155
+ this._itemService.list.detectChanges();
156
+ }
157
+ /** Propagate open flag to popover list component, that is passed from child */
158
+ if (this._itemService.popover) {
159
+ this._itemService.popover.open = open;
160
+ }
161
+ /**
162
+ * If there are any list below
163
+ * Trigger event to provide keyboard support to new list of opened item element.
164
+ * */
165
+ if (this._shouldRefreshKeyboardService()) {
166
+ this._keyboardService.refresh$.next();
167
+ }
168
+ this.expandedChange.emit(open);
169
+ }
170
+ /** @hidden */
171
+ _shouldRefreshKeyboardService() {
172
+ return !!(this._itemService.popover || this._itemService.list || this.contentItem);
173
+ }
174
+ /** @hidden */
175
+ _setUpSubscriptions() {
176
+ if (this._stateService.condensed) {
177
+ this._role = 'menuitemradio';
178
+ }
179
+ if (!this.display) {
180
+ /** Subscribe to mouse click event, thrown by link item */
181
+ this._itemService.toggle.pipe(takeUntil(this._onDestroy$)).subscribe(() => this.toggle());
182
+ /** Subscribe to mouse click event, thrown by link item */
183
+ this._itemService.click
184
+ .pipe(takeUntil(this._onDestroy$))
185
+ .subscribe(() => this._stateService.onSelected.next(this._elementId));
186
+ }
187
+ /** Subscribe to keyboard event and throw it farther */
188
+ this._itemService.keyDown
189
+ .pipe(takeUntil(this._onDestroy$))
190
+ .subscribe((keyboardEvent) => this.keyboardTriggered.emit(keyboardEvent));
191
+ /** Subscribe to selected state change, it's not triggered, when selectable flag is disabled*/
192
+ this._stateService.onSelected
193
+ .pipe(takeUntil(this._onDestroy$), filter(() => this._stateService.selectable))
194
+ .subscribe((id) => this._selectedChange(id));
195
+ }
196
+ /** @hidden */
197
+ _propagateHasChildrenProperty() {
198
+ if (this.contentItem && this.hasChildren) {
199
+ this._ariaExpanded = false;
200
+ this.contentItem.hasChildren = true;
201
+ this.contentItem.changeDetRef.detectChanges();
202
+ }
203
+ }
204
+ /** Pass this element to popover child item, to allow control `expanded` value */
205
+ _passItemReferences() {
206
+ if (this._itemService.popover) {
207
+ this._itemService.popover.parentItemElement = this;
208
+ }
209
+ }
210
+ /** Change of selected state of content or link, if there is any children with I */
211
+ _selectedChange(id) {
212
+ const selected = this.containsId(id);
213
+ this._ariaSelected = selected;
214
+ if (this.contentItem) {
215
+ this.contentItem.changeSelected(selected);
216
+ }
217
+ else if (this.linkItem) {
218
+ this.linkItem.changeSelected(selected);
219
+ }
220
+ }
221
+ }
222
+ NestedItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: NestedItemComponent, deps: [{ token: i1.NestedItemService }, { token: i2.NestedListKeyboardService }, { token: i3.NestedListStateService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
223
+ NestedItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: NestedItemComponent, selector: "[cxNestedItem], [fdx-nested-list-item], li[fdx-nested-list-item]", inputs: { expanded: "expanded", fdNestedListItemClass: "fdNestedListItemClass", header: "header", display: "display" }, outputs: { expandedChange: "expandedChange", keyboardTriggered: "keyboardTriggered" }, host: { properties: { "class.fdx-nested-list__item": "this.fdNestedListItemClass", "class.fdx-nested-list__item--header": "this.header", "attr.aria-level": "this._ariaLevel", "attr.title": "this._title", "style.display": "this._display", "attr.role": "this._role", "attr.aria-expanded": "this._ariaExpanded", "attr.aria-selected": "this._ariaSelected", "attr.aria-disabled": "this._ariaDisabled", "attr.aria-label": "this._ariaLabel", "attr.aria-hidden": "this._ariaHidden" } }, providers: [NestedItemService], queries: [{ propertyName: "linkItem", first: true, predicate: NestedLinkComponent, descendants: true }, { propertyName: "contentItem", first: true, predicate: NestedListContentDirective, descendants: true }, { propertyName: "expandIcon", first: true, predicate: NestedListExpandIconComponent, descendants: true }, { propertyName: "_nestedList", first: true, predicate: i0.forwardRef(function () { return NestedListComponent; }), descendants: true }], ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true });
224
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: NestedItemComponent, decorators: [{
225
+ type: Component,
226
+ args: [{
227
+ // eslint-disable-next-line @angular-eslint/component-selector
228
+ selector: '[cxNestedItem], [fdx-nested-list-item], li[fdx-nested-list-item]',
229
+ template: ` <ng-content></ng-content> `,
230
+ providers: [NestedItemService]
231
+ }]
232
+ }], ctorParameters: function () { return [{ type: i1.NestedItemService }, { type: i2.NestedListKeyboardService }, { type: i3.NestedListStateService }, { type: i0.ElementRef }]; }, propDecorators: { expanded: [{
233
+ type: Input
234
+ }], expandedChange: [{
235
+ type: Output
236
+ }], keyboardTriggered: [{
237
+ type: Output
238
+ }], fdNestedListItemClass: [{
239
+ type: Input
240
+ }, {
241
+ type: HostBinding,
242
+ args: ['class.fdx-nested-list__item']
243
+ }], header: [{
244
+ type: Input
245
+ }, {
246
+ type: HostBinding,
247
+ args: ['class.fdx-nested-list__item--header']
248
+ }], display: [{
249
+ type: Input
250
+ }], linkItem: [{
251
+ type: ContentChild,
252
+ args: [NestedLinkComponent]
253
+ }], contentItem: [{
254
+ type: ContentChild,
255
+ args: [NestedListContentDirective]
256
+ }], expandIcon: [{
257
+ type: ContentChild,
258
+ args: [NestedListExpandIconComponent, { descendants: true }]
259
+ }], _nestedList: [{
260
+ type: ContentChild,
261
+ args: [forwardRef(() => NestedListComponent)]
262
+ }], _ariaLevel: [{
263
+ type: HostBinding,
264
+ args: ['attr.aria-level']
265
+ }], _title: [{
266
+ type: HostBinding,
267
+ args: ['attr.title']
268
+ }], _display: [{
269
+ type: HostBinding,
270
+ args: ['style.display']
271
+ }], _role: [{
272
+ type: HostBinding,
273
+ args: ['attr.role']
274
+ }], _ariaExpanded: [{
275
+ type: HostBinding,
276
+ args: ['attr.aria-expanded']
277
+ }], _ariaSelected: [{
278
+ type: HostBinding,
279
+ args: ['attr.aria-selected']
280
+ }], _ariaDisabled: [{
281
+ type: HostBinding,
282
+ args: ['attr.aria-disabled']
283
+ }], _ariaLabel: [{
284
+ type: HostBinding,
285
+ args: ['attr.aria-label']
286
+ }], _ariaHidden: [{
287
+ type: HostBinding,
288
+ args: ['attr.aria-hidden']
289
+ }] } });
290
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jeC9zcmMvbGliL25lc3RlZC1saXN0L25lc3RlZC1pdGVtL25lc3RlZC1pdGVtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsWUFBWSxFQUNaLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBRUwsTUFBTSxFQUNOLFVBQVUsRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDN0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7O0FBRTFFLElBQUksMEJBQTBCLEdBQUcsQ0FBQyxDQUFDO0FBUW5DLE1BQU0sT0FBTyxtQkFBbUI7SUEwRzVCLGNBQWM7SUFDZCxZQUNZLFlBQStCLEVBQy9CLGdCQUEyQyxFQUMzQyxhQUFxQyxFQUN0QyxVQUFzQjtRQUhyQixpQkFBWSxHQUFaLFlBQVksQ0FBbUI7UUFDL0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUEyQjtRQUMzQyxrQkFBYSxH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QVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFNBQVMsRUFBRSxDQUFDLGlCQUFpQixDQUFDO2lCQUNqQzs4TUFHZ0IsUUFBUTtzQkFBcEIsS0FBSztnQkFhRyxjQUFjO3NCQUR0QixNQUFNO2dCQUtFLGlCQUFpQjtzQkFEekIsTUFBTTtnQkFNUCxxQkFBcUI7c0JBRnBCLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsNkJBQTZCO2dCQU0xQyxNQUFNO3NCQUZMLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMscUNBQXFDO2dCQUtsRCxPQUFPO3NCQUROLEtBQUs7Z0JBUU4sUUFBUTtzQkFEUCxZQUFZO3VCQUFDLG1CQUFtQjtnQkFTakMsV0FBVztzQkFEVixZQUFZO3VCQUFDLDBCQUEwQjtnQkFLeEMsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLDZCQUE2QixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFLbEUsV0FBVztzQkFEVixZQUFZO3VCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztnQkFLbkQsVUFBVTtzQkFEVCxXQUFXO3VCQUFDLGlCQUFpQjtnQkFLOUIsTUFBTTtzQkFETCxXQUFXO3VCQUFDLFlBQVk7Z0JBS3pCLFFBQVE7c0JBRFAsV0FBVzt1QkFBQyxlQUFlO2dCQVFwQixLQUFLO3NCQURaLFdBQVc7dUJBQUMsV0FBVztnQkFRaEIsYUFBYTtzQkFEcEIsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBS3pCLGFBQWE7c0JBRHBCLFdBQVc7dUJBQUMsb0JBQW9CO2dCQUt6QixhQUFhO3NCQURwQixXQUFXO3VCQUFDLG9CQUFvQjtnQkFLekIsVUFBVTtzQkFEakIsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBS3RCLFdBQVc7c0JBRGxCLFdBQVc7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBmb3J3YXJkUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE5lc3RlZExpbmtDb21wb25lbnQgfSBmcm9tICcuLi9uZXN0ZWQtbGluay9uZXN0ZWQtbGluay5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmVzdGVkTGlzdEtleWJvYXJkU2VydmljZSB9IGZyb20gJy4uL25lc3RlZC1saXN0LWtleWJvYXJkLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmVzdGVkTGlzdENvbnRlbnREaXJlY3RpdmUgfSBmcm9tICcuLi9uZXN0ZWQtY29udGVudC9uZXN0ZWQtbGlzdC1jb250ZW50LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOZXN0ZWRMaXN0U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vbmVzdGVkLWxpc3Qtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBOZXN0ZWRJdGVtSW50ZXJmYWNlIH0gZnJvbSAnLi9uZXN0ZWQtaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTmVzdGVkSXRlbVNlcnZpY2UgfSBmcm9tICcuL25lc3RlZC1pdGVtLnNlcnZpY2UnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2hhcmVkJztcbmltcG9ydCB7IE5lc3RlZExpc3RDb21wb25lbnQgfSBmcm9tICcuLi9uZXN0ZWQtbGlzdC9uZXN0ZWQtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmVzdGVkTGlzdEV4cGFuZEljb25Db21wb25lbnQgfSBmcm9tICcuLi9uZXN0ZWQtbGlzdC1kaXJlY3RpdmVzJztcblxubGV0IHNpZGVOYXZpZ2F0aW9uSXRlbVVuaXF1ZUlkID0gMDtcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1tjeE5lc3RlZEl0ZW1dLCBbZmR4LW5lc3RlZC1saXN0LWl0ZW1dLCBsaVtmZHgtbmVzdGVkLWxpc3QtaXRlbV0nLFxuICAgIHRlbXBsYXRlOiBgIDxuZy1jb250ZW50PjwvbmctY29udGVudD4gYCxcbiAgICBwcm92aWRlcnM6IFtOZXN0ZWRJdGVtU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgTmVzdGVkSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE5lc3RlZEl0ZW1JbnRlcmZhY2UsIE9uRGVzdHJveSB7XG4gICAgLyoqIFdoZXRoZXIgaXRlbSBzaG91bGQgYmUgZXhwYW5kZWQgKi9cbiAgICBASW5wdXQoKSBzZXQgZXhwYW5kZWQoZXhwYW5kZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKGV4cGFuZGVkICE9PSB0aGlzLl9leHBhbmRlZCkge1xuICAgICAgICAgICAgdGhpcy5wcm9wYWdhdGVPcGVuQ2hhbmdlKGV4cGFuZGVkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IGV4cGFuZGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZXhwYW5kZWQ7XG4gICAgfVxuXG4gICAgLyoqIEV2ZW50IHRocm93biwgd2hlbiBleHBhbmRlZCBzdGF0ZSBpcyBjaGFuZ2VkICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgZXhwYW5kZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKiBFdmVudCB0aHJvd24sIHdoZW4gYW55IGtleWJvYXJkIGV2ZW50IGlzIGRpc3BhdGNoZWQgb24gdGhpcywgb3IgbGluayBlbGVtZW50ICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkga2V5Ym9hcmRUcmlnZ2VyZWQ6IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkeC1uZXN0ZWQtbGlzdF9faXRlbScpXG4gICAgZmROZXN0ZWRMaXN0SXRlbUNsYXNzID0gdHJ1ZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoaXMgaXRlbSBpcyBhIGhlYWRlciBpdGVtLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZHgtbmVzdGVkLWxpc3RfX2l0ZW0tLWhlYWRlcicpXG4gICAgaGVhZGVyID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGlzIGl0ZW0gaXMgb25seSBtZWFudCBmb3IgZGlzcGxheSBwdXJwb3NlcywgbWVhbmluZyBpdCBjYW5ub3QgYmUgdXNlZCBmb3IgbmF2aWdhdGlvbiBvciBzaG93biBhcyBzZWxlY3RlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXkgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBSZWZlcmVuY2UgdG8gdGhlIGxpbmsgZGlyZWN0aXZlLCB0byBhbGxvdyBtYW5pcHVsYXRpbmcgdGhlIHByb3BlcnRpZXMgb2YgdGhpcyBlbGVtZW50LlxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoTmVzdGVkTGlua0NvbXBvbmVudClcbiAgICBsaW5rSXRlbTogTmVzdGVkTGlua0NvbXBvbmVudDtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBNb3N0bHkgdXNlZCwgd2hlbiB0aGlzIGl0ZW0gaGFzIGxpc3RcbiAgICAgKiBSZWZlcmVuY2UgdG8gdGhlIGNvbnRlbnQgZGlyZWN0aXZlLCB0byBhbGxvdyBtYW5pcHVsYXRpbmcgdGhlIHByb3BlcnRpZXMgb2YgdGhpcyBlbGVtZW50LlxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoTmVzdGVkTGlzdENvbnRlbnREaXJlY3RpdmUpXG4gICAgY29udGVudEl0ZW06IE5lc3RlZExpc3RDb250ZW50RGlyZWN0aXZlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKE5lc3RlZExpc3RFeHBhbmRJY29uQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgZXhwYW5kSWNvbjogTmVzdGVkTGlzdEV4cGFuZEljb25Db21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBOZXN0ZWRMaXN0Q29tcG9uZW50KSlcbiAgICBfbmVzdGVkTGlzdDogTmVzdGVkTGlzdENvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGV2ZWwnKVxuICAgIF9hcmlhTGV2ZWw6IE51bGxhYmxlPG51bWJlcj4gPSBudWxsO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudGl0bGUnKVxuICAgIF90aXRsZTogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmRpc3BsYXknKVxuICAgIF9kaXNwbGF5ID0gJ2Jsb2NrJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX25hcnJvdyA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpXG4gICAgcHJpdmF0ZSBfcm9sZTogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9leHBhbmRlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1leHBhbmRlZCcpXG4gICAgcHJpdmF0ZSBfYXJpYUV4cGFuZGVkOiBOdWxsYWJsZTxib29sZWFuPiA9IG51bGw7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLXNlbGVjdGVkJylcbiAgICBwcml2YXRlIF9hcmlhU2VsZWN0ZWQ6IE51bGxhYmxlPGJvb2xlYW4+ID0gbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGlzYWJsZWQnKVxuICAgIHByaXZhdGUgX2FyaWFEaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1sYWJlbCcpXG4gICAgcHJpdmF0ZSBfYXJpYUxhYmVsOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWhpZGRlbicpXG4gICAgcHJpdmF0ZSBfYXJpYUhpZGRlbiA9IHRydWU7XG5cbiAgICAvKiogQW4gUnhKUyBTdWJqZWN0IHRoYXQgd2lsbCBraWxsIHRoZSBkYXRhIHN0cmVhbSB1cG9uIGNvbXBvbmVudOKAmXMgZGVzdHJ1Y3Rpb24gKGZvciB1bnN1YnNjcmliaW5nKSAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vbkRlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBVbmlxdWUgZWxlbWVudCBJRCAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRJZDogc3RyaW5nID0gJ2ZkTmVzdGVkSXRlbScgKyBzaWRlTmF2aWdhdGlvbkl0ZW1VbmlxdWVJZCsrO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfaXRlbVNlcnZpY2U6IE5lc3RlZEl0ZW1TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9rZXlib2FyZFNlcnZpY2U6IE5lc3RlZExpc3RLZXlib2FyZFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX3N0YXRlU2VydmljZTogTmVzdGVkTGlzdFN0YXRlU2VydmljZSxcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2V0VXBTdWJzY3JpcHRpb25zKCk7XG4gICAgICAgIHRoaXMuX3Byb3BhZ2F0ZUhhc0NoaWxkcmVuUHJvcGVydHkoKTtcbiAgICAgICAgdGhpcy5fcGFzc0l0ZW1SZWZlcmVuY2VzKCk7XG4gICAgICAgIC8qKiBQcm9wYWdhdGUgaW5pdGlhbCBvcGVuIHN0YXRlIHRvIGNoaWxkcmVuICovXG4gICAgICAgIHRoaXMucHJvcGFnYXRlT3BlbkNoYW5nZSh0aGlzLl9leHBhbmRlZCk7XG5cbiAgICAgICAgaWYgKHRoaXMubGlua0l0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuX2FyaWFTZWxlY3RlZCA9IHRoaXMubGlua0l0ZW0uc2VsZWN0ZWQ7XG4gICAgICAgICAgICB0aGlzLl9hcmlhRGlzYWJsZWQgPSAhdGhpcy5fc3RhdGVTZXJ2aWNlLnNlbGVjdGFibGUgJiYgIXRoaXMubGlua0l0ZW0uc2VsZWN0ZWQ7XG4gICAgICAgICAgICB0aGlzLl90aXRsZSA9IHRoaXMubGlua0l0ZW0uZ2V0VGl0bGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgLyoqIENoZWNrIGlmIHRoZSBpdGVtIGVsZW1lbnQgaGFzIGFueSBjaGlsZCAqL1xuICAgIGdldCBoYXNDaGlsZHJlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5faXRlbVNlcnZpY2U/Lmxpc3Q7XG4gICAgfVxuXG4gICAgLyoqIEdldCBhbGwgb2YgdGhlIGNoaWxkcmVuIGl0ZW0gZWxlbWVudHMgKi9cbiAgICBnZXQgYWxsQ2hpbGRyZW5JdGVtcygpOiBOZXN0ZWRJdGVtSW50ZXJmYWNlW10ge1xuICAgICAgICBpZiAodGhpcy5faXRlbVNlcnZpY2U/Lmxpc3QpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9pdGVtU2VydmljZS5saXN0Lm5lc3RlZEl0ZW1zLnRvQXJyYXkoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICAvKiogTWV0aG9kIHRoYXQgZXhwYW5kIHRoZSBpdGVtIGFuZCBwcm9wYWdhdGUgaXQgdG8gY2hpbGRyZW4gKi9cbiAgICB0cmlnZ2VyT3BlbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmV4cGFuZGVkKSB7XG4gICAgICAgICAgICAvKiogUHJvcGFnYXRlIGluaXRpYWwgb3BlbiBzdGF0ZSB0byBjaGlsZHJlbiAqL1xuICAgICAgICAgICAgdGhpcy5wcm9wYWdhdGVPcGVuQ2hhbmdlKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCB0aGF0IGNsb3NlIHRoZSBpdGVtIGFuZCBwcm9wYWdhdGUgaXQgdG8gY2hpbGRyZW4gKi9cbiAgICB0cmlnZ2VyQ2xvc2UoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmV4cGFuZGVkKSB7XG4gICAgICAgICAgICAvKiogUHJvcGFnYXRlIGluaXRpYWwgb3BlbiBzdGF0ZSB0byBjaGlsZHJlbiAqL1xuICAgICAgICAgICAgdGhpcy5wcm9wYWdhdGVPcGVuQ2hhbmdlKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBNZXRob2QgdGhhdCB0b2dnbGUgdGhlIGl0ZW0gYW5kIHByb3BhZ2F0ZSBpdCB0byBjaGlsZHJlbiAqL1xuICAgIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICAgICAgLyoqIFByb3BhZ2F0ZSBpbml0aWFsIG9wZW4gc3RhdGUgdG8gY2hpbGRyZW4gKi9cbiAgICAgICAgdGhpcy5wcm9wYWdhdGVPcGVuQ2hhbmdlKCF0aGlzLl9leHBhbmRlZCk7XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCB0aGF0IGRpc3BhdGNoZXMgYGNsaWNrYCBldmVudCBvbiBsaW5rIGl0ZW0qL1xuICAgIGNsaWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGlzcGxheSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuY29udGVudEl0ZW0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRJdGVtLmNsaWNrKCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMubGlua0l0ZW0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpbmtJdGVtLmNsaWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogTWV0aG9kIHRoYXQgZm9jdXNlcyBsaW5rIGl0ZW0qL1xuICAgIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jb250ZW50SXRlbSkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50SXRlbS5mb2N1cygpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubGlua0l0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMubGlua0l0ZW0uZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBNZXRob2QgdGhhdCBwcm92aWRlcyBpbmZvcm1hdGlvbiBpZiBlbGVtZW50LCBvciBjaGlsZHJlbiBvZiB0aGlzIGVsZW1lbnQgaGFzIHBhc3NlZCBpZCAqL1xuICAgIGNvbnRhaW5zSWQoaWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5fZWxlbWVudElkID09PSBpZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5faXRlbVNlcnZpY2UubGlzdCkge1xuICAgICAgICAgICAgcmV0dXJuICEhdGhpcy5faXRlbVNlcnZpY2UubGlzdC5uZXN0ZWRJdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLmNvbnRhaW5zSWQoaWQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogUHJvcGFnYXRlIG9wZW4gc3RhdGUgdG8gYWxsIG9mIHRoZSBjaGlsZHJlblxuICAgICAqL1xuICAgIHByaXZhdGUgcHJvcGFnYXRlT3BlbkNoYW5nZShvcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2V4cGFuZGVkID0gb3BlbjtcblxuICAgICAgICBpZiAodGhpcy5oYXNDaGlsZHJlbikge1xuICAgICAgICAgICAgdGhpcy5fYXJpYUV4cGFuZGVkID0gdGhpcy5fZXhwYW5kZWQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmV4cGFuZEljb24/LmNoYW5nZUV4cGFuZGVkU3RhdGUob3Blbik7XG5cbiAgICAgICAgLyoqIFByb3BhZ2F0ZSBoaWRkZW4gZmxhZyB0byBsaXN0IGNvbXBvbmVudCwgdGhhdCBpcyBwYXNzZWQgZnJvbSBjaGlsZCAqL1xuICAgICAgICBpZiAodGhpcy5faXRlbVNlcnZpY2UubGlzdCkge1xuICAgICAgICAgICAgdGhpcy5faXRlbVNlcnZpY2UubGlzdC5oaWRkZW4gPSAhb3BlbjtcbiAgICAgICAgICAgIHRoaXMuX2l0ZW1TZXJ2aWNlLmxpc3QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqIFByb3BhZ2F0ZSBvcGVuIGZsYWcgdG8gcG9wb3ZlciBsaXN0IGNvbXBvbmVudCwgdGhhdCBpcyBwYXNzZWQgZnJvbSBjaGlsZCAqL1xuICAgICAgICBpZiAodGhpcy5faXRlbVNlcnZpY2UucG9wb3Zlcikge1xuICAgICAgICAgICAgdGhpcy5faXRlbVNlcnZpY2UucG9wb3Zlci5vcGVuID0gb3BlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGVyZSBhcmUgYW55IGxpc3QgYmVsb3dcbiAgICAgICAgICogVHJpZ2dlciBldmVudCB0byBwcm92aWRlIGtleWJvYXJkIHN1cHBvcnQgdG8gbmV3IGxpc3Qgb2Ygb3BlbmVkIGl0ZW0gZWxlbWVudC5cbiAgICAgICAgICogKi9cbiAgICAgICAgaWYgKHRoaXMuX3Nob3VsZFJlZnJlc2hLZXlib2FyZFNlcnZpY2UoKSkge1xuICAgICAgICAgICAgdGhpcy5fa2V5Ym9hcmRTZXJ2aWNlLnJlZnJlc2gkLm5leHQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZXhwYW5kZWRDaGFuZ2UuZW1pdChvcGVuKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Nob3VsZFJlZnJlc2hLZXlib2FyZFNlcnZpY2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhISh0aGlzLl9pdGVtU2VydmljZS5wb3BvdmVyIHx8IHRoaXMuX2l0ZW1TZXJ2aWNlLmxpc3QgfHwgdGhpcy5jb250ZW50SXRlbSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXRVcFN1YnNjcmlwdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9zdGF0ZVNlcnZpY2UuY29uZGVuc2VkKSB7XG4gICAgICAgICAgICB0aGlzLl9yb2xlID0gJ21lbnVpdGVtcmFkaW8nO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmRpc3BsYXkpIHtcbiAgICAgICAgICAgIC8qKiBTdWJzY3JpYmUgdG8gbW91c2UgY2xpY2sgZXZlbnQsIHRocm93biBieSBsaW5rIGl0ZW0gKi9cbiAgICAgICAgICAgIHRoaXMuX2l0ZW1TZXJ2aWNlLnRvZ2dsZS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMudG9nZ2xlKCkpO1xuXG4gICAgICAgICAgICAvKiogU3Vic2NyaWJlIHRvIG1vdXNlIGNsaWNrIGV2ZW50LCB0aHJvd24gYnkgbGluayBpdGVtICovXG4gICAgICAgICAgICB0aGlzLl9pdGVtU2VydmljZS5jbGlja1xuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3N0YXRlU2VydmljZS5vblNlbGVjdGVkLm5leHQodGhpcy5fZWxlbWVudElkKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvKiogU3Vic2NyaWJlIHRvIGtleWJvYXJkIGV2ZW50IGFuZCB0aHJvdyBpdCBmYXJ0aGVyICovXG4gICAgICAgIHRoaXMuX2l0ZW1TZXJ2aWNlLmtleURvd25cbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGtleWJvYXJkRXZlbnQpID0+IHRoaXMua2V5Ym9hcmRUcmlnZ2VyZWQuZW1pdChrZXlib2FyZEV2ZW50KSk7XG5cbiAgICAgICAgLyoqIFN1YnNjcmliZSB0byBzZWxlY3RlZCBzdGF0ZSBjaGFuZ2UsIGl0J3Mgbm90IHRyaWdnZXJlZCwgd2hlbiBzZWxlY3RhYmxlIGZsYWcgaXMgZGlzYWJsZWQqL1xuICAgICAgICB0aGlzLl9zdGF0ZVNlcnZpY2Uub25TZWxlY3RlZFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxuICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLl9zdGF0ZVNlcnZpY2Uuc2VsZWN0YWJsZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGlkKSA9PiB0aGlzLl9zZWxlY3RlZENoYW5nZShpZCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcHJvcGFnYXRlSGFzQ2hpbGRyZW5Qcm9wZXJ0eSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY29udGVudEl0ZW0gJiYgdGhpcy5oYXNDaGlsZHJlbikge1xuICAgICAgICAgICAgdGhpcy5fYXJpYUV4cGFuZGVkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRJdGVtLmhhc0NoaWxkcmVuID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuY29udGVudEl0ZW0uY2hhbmdlRGV0UmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBQYXNzIHRoaXMgZWxlbWVudCB0byBwb3BvdmVyIGNoaWxkIGl0ZW0sIHRvIGFsbG93IGNvbnRyb2wgYGV4cGFuZGVkYCB2YWx1ZSAqL1xuICAgIHByaXZhdGUgX3Bhc3NJdGVtUmVmZXJlbmNlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2l0ZW1TZXJ2aWNlLnBvcG92ZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2l0ZW1TZXJ2aWNlLnBvcG92ZXIucGFyZW50SXRlbUVsZW1lbnQgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIENoYW5nZSBvZiBzZWxlY3RlZCBzdGF0ZSBvZiBjb250ZW50IG9yIGxpbmssIGlmIHRoZXJlIGlzIGFueSBjaGlsZHJlbiB3aXRoIEkgKi9cbiAgICBwcml2YXRlIF9zZWxlY3RlZENoYW5nZShpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5jb250YWluc0lkKGlkKTtcbiAgICAgICAgdGhpcy5fYXJpYVNlbGVjdGVkID0gc2VsZWN0ZWQ7XG5cbiAgICAgICAgaWYgKHRoaXMuY29udGVudEl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudEl0ZW0uY2hhbmdlU2VsZWN0ZWQoc2VsZWN0ZWQpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubGlua0l0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMubGlua0l0ZW0uY2hhbmdlU2VsZWN0ZWQoc2VsZWN0ZWQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkLWl0ZW0uaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jeC9zcmMvbGliL25lc3RlZC1saXN0L25lc3RlZC1pdGVtL25lc3RlZC1pdGVtLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZWZhdWx0TWVudUl0ZW0gfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbWVudSc7XG5pbXBvcnQgeyBOZXN0ZWRMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi4vbmVzdGVkLWxpbmsvbmVzdGVkLWxpbmsuY29tcG9uZW50JztcblxuLyoqIEludGVyZmFjZSwgdG8gcmVkdWNlIGFtb3VudCBvZiBjaXJjdWxhciBkZXBlbmRlbmN5IHdhcm5pbmdzICovXG5leHBvcnQgaW50ZXJmYWNlIE5lc3RlZEl0ZW1JbnRlcmZhY2UgZXh0ZW5kcyBEZWZhdWx0TWVudUl0ZW0ge1xuICAgIGV4cGFuZGVkOiBib29sZWFuO1xuICAgIGtleWJvYXJkVHJpZ2dlcmVkOiBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD47XG4gICAgdHJpZ2dlck9wZW46ICgpID0+IHZvaWQ7XG4gICAgdHJpZ2dlckNsb3NlOiAoKSA9PiB2b2lkO1xuICAgIGxpbmtJdGVtOiBOZXN0ZWRMaW5rQ29tcG9uZW50O1xuICAgIGFsbENoaWxkcmVuSXRlbXM6IE5lc3RlZEl0ZW1JbnRlcmZhY2VbXTtcbiAgICBoYXNDaGlsZHJlbjogYm9vbGVhbjtcbiAgICBjb250YWluc0lkOiAoaWQ6IHN0cmluZykgPT4gYm9vbGVhbjtcbiAgICBjbGljazogKCkgPT4gdm9pZDtcbiAgICBmb2N1czogKCkgPT4gdm9pZDtcbn1cbiJdfQ==
@@ -0,0 +1,15 @@
1
+ import { Subject } from 'rxjs';
2
+ /** Contains references to popover or list nested components, that are placed as direct children of item component */
3
+ export class NestedItemService {
4
+ constructor() {
5
+ /** Subject fired when expand icon is clicked */
6
+ this.toggle = new Subject();
7
+ /** Subject fired, when child elements are focused */
8
+ this.focus = new Subject();
9
+ /** Subject fired, when content or link is clicked */
10
+ this.click = new Subject();
11
+ /** KeyDown handler, it is triggered from link, content and item elements */
12
+ this.keyDown = new Subject();
13
+ }
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkLWl0ZW0uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3gvc3JjL2xpYi9uZXN0ZWQtbGlzdC9uZXN0ZWQtaXRlbS9uZXN0ZWQtaXRlbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IscUhBQXFIO0FBQ3JILE1BQU0sT0FBTyxpQkFBaUI7SUFBOUI7UUFNSSxnREFBZ0Q7UUFDaEQsV0FBTSxHQUFxQixJQUFJLE9BQU8sRUFBVyxDQUFDO1FBRWxELHFEQUFxRDtRQUNyRCxVQUFLLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFFM0MscURBQXFEO1FBQ3JELFVBQUssR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUUzQyw0RUFBNEU7UUFDNUUsWUFBTyxHQUEyQixJQUFJLE9BQU8sRUFBaUIsQ0FBQztJQUNuRSxDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZXN0ZWRMaXN0SW50ZXJmYWNlIH0gZnJvbSAnLi4vbmVzdGVkLWxpc3QvbmVzdGVkLWxpc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IE5lc3RlZExpc3RQb3BvdmVySW50ZXJmYWNlIH0gZnJvbSAnLi4vbmVzdGVkLWxpc3QtcG9wb3Zlci9uZXN0ZWQtbGlzdC1wb3BvdmVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbi8qKiBDb250YWlucyByZWZlcmVuY2VzIHRvIHBvcG92ZXIgb3IgbGlzdCBuZXN0ZWQgY29tcG9uZW50cywgdGhhdCBhcmUgcGxhY2VkIGFzIGRpcmVjdCBjaGlsZHJlbiBvZiBpdGVtIGNvbXBvbmVudCAqL1xuZXhwb3J0IGNsYXNzIE5lc3RlZEl0ZW1TZXJ2aWNlIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGxpc3Q6IE5lc3RlZExpc3RJbnRlcmZhY2U7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwb3BvdmVyPzogTmVzdGVkTGlzdFBvcG92ZXJJbnRlcmZhY2U7XG5cbiAgICAvKiogU3ViamVjdCBmaXJlZCB3aGVuIGV4cGFuZCBpY29uIGlzIGNsaWNrZWQgKi9cbiAgICB0b2dnbGU6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgLyoqIFN1YmplY3QgZmlyZWQsIHdoZW4gY2hpbGQgZWxlbWVudHMgYXJlIGZvY3VzZWQgKi9cbiAgICBmb2N1czogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogU3ViamVjdCBmaXJlZCwgd2hlbiBjb250ZW50IG9yIGxpbmsgaXMgY2xpY2tlZCAqL1xuICAgIGNsaWNrOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBLZXlEb3duIGhhbmRsZXIsIGl0IGlzIHRyaWdnZXJlZCBmcm9tIGxpbmssIGNvbnRlbnQgYW5kIGl0ZW0gZWxlbWVudHMgKi9cbiAgICBrZXlEb3duOiBTdWJqZWN0PEtleWJvYXJkRXZlbnQ+ID0gbmV3IFN1YmplY3Q8S2V5Ym9hcmRFdmVudD4oKTtcbn1cbiJdfQ==