@fundamental-ngx/btp 0.46.0-rc.100
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/README.md +7 -0
- package/esm2022/fundamental-ngx-btp.mjs +5 -0
- package/esm2022/index.mjs +3 -0
- package/esm2022/navigation/directives/navigation-home.directive.mjs +19 -0
- package/esm2022/navigation/directives/navigation-list-spacer.directive.mjs +24 -0
- package/esm2022/navigation/fundamental-ngx-btp-navigation.mjs +5 -0
- package/esm2022/navigation/index.mjs +11 -0
- package/esm2022/navigation/navigation-component.token.mjs +22 -0
- package/esm2022/navigation/navigation-content-end.component.mjs +62 -0
- package/esm2022/navigation/navigation-content-start.component.mjs +207 -0
- package/esm2022/navigation/navigation-content.token.mjs +3 -0
- package/esm2022/navigation/navigation-link.component.mjs +188 -0
- package/esm2022/navigation/navigation-list/navigation-list-item.component.mjs +423 -0
- package/esm2022/navigation/navigation-list/navigation-list-overflow-item.component.mjs +57 -0
- package/esm2022/navigation/navigation-list/navigation-list.component.mjs +125 -0
- package/esm2022/navigation/navigation-list-component.token.mjs +3 -0
- package/esm2022/navigation/navigation-list-item-component.token.mjs +90 -0
- package/esm2022/navigation/navigation.component.mjs +251 -0
- package/esm2022/navigation/navigation.service.mjs +14 -0
- package/esm2022/navigation/navigation.types.mjs +2 -0
- package/esm2022/navigation-menu/fundamental-ngx-btp-navigation-menu.mjs +5 -0
- package/esm2022/navigation-menu/index.mjs +6 -0
- package/esm2022/navigation-menu/lib/navigation-menu-item.component.mjs +48 -0
- package/esm2022/navigation-menu/lib/navigation-menu-popover-control.directive.mjs +19 -0
- package/esm2022/navigation-menu/lib/navigation-menu-popover.component.mjs +38 -0
- package/esm2022/navigation-menu/lib/navigation-menu.component.mjs +13 -0
- package/esm2022/navigation-menu/lib/navigation-menu.module.mjs +17 -0
- package/esm2022/search-field/fundamental-ngx-btp-search-field.mjs +5 -0
- package/esm2022/search-field/index.mjs +2 -0
- package/esm2022/search-field/search-field.component.mjs +62 -0
- package/esm2022/shared/fundamental-ngx-btp-shared.mjs +5 -0
- package/esm2022/shared/index.mjs +2 -0
- package/esm2022/tool-header/components/tool-header/tool-header.component.mjs +227 -0
- package/esm2022/tool-header/components/tool-header-product-switch.component.mjs +102 -0
- package/esm2022/tool-header/directives/tool-header-action.directive.mjs +43 -0
- package/esm2022/tool-header/directives/tool-header-actions.directive.mjs +63 -0
- package/esm2022/tool-header/directives/tool-header-auto-mode.directive.mjs +114 -0
- package/esm2022/tool-header/directives/tool-header-button.directive.mjs +51 -0
- package/esm2022/tool-header/directives/tool-header-element.directive.mjs +17 -0
- package/esm2022/tool-header/directives/tool-header-group.directive.mjs +26 -0
- package/esm2022/tool-header/directives/tool-header-logo.directive.mjs +19 -0
- package/esm2022/tool-header/directives/tool-header-user.directive.mjs +14 -0
- package/esm2022/tool-header/fundamental-ngx-btp-tool-header.mjs +5 -0
- package/esm2022/tool-header/index.mjs +10 -0
- package/esm2022/tool-header/tool-header-action-button.type.mjs +2 -0
- package/esm2022/tool-header/tool-header-component.class.mjs +74 -0
- package/esm2022/tool-header/tool-header-state.type.mjs +2 -0
- package/esm2022/tool-layout/directives/tool-layout-container.directive.mjs +17 -0
- package/esm2022/tool-layout/directives/tool-layout-content-container.directive.mjs +50 -0
- package/esm2022/tool-layout/directives/tool-layout-header-container.directive.mjs +17 -0
- package/esm2022/tool-layout/directives/tool-layout-navigation-container.directive.mjs +37 -0
- package/esm2022/tool-layout/fundamental-ngx-btp-tool-layout.mjs +5 -0
- package/esm2022/tool-layout/index.mjs +7 -0
- package/esm2022/tool-layout/tool-layout.component.mjs +43 -0
- package/esm2022/tool-layout/tool-layout.module.mjs +40 -0
- package/fesm2022/fundamental-ngx-btp-navigation-menu.mjs +130 -0
- package/fesm2022/fundamental-ngx-btp-navigation-menu.mjs.map +1 -0
- package/fesm2022/fundamental-ngx-btp-navigation.mjs +1409 -0
- package/fesm2022/fundamental-ngx-btp-navigation.mjs.map +1 -0
- package/fesm2022/fundamental-ngx-btp-search-field.mjs +69 -0
- package/fesm2022/fundamental-ngx-btp-search-field.mjs.map +1 -0
- package/fesm2022/fundamental-ngx-btp-shared.mjs +4 -0
- package/fesm2022/fundamental-ngx-btp-shared.mjs.map +1 -0
- package/fesm2022/fundamental-ngx-btp-tool-header.mjs +717 -0
- package/fesm2022/fundamental-ngx-btp-tool-header.mjs.map +1 -0
- package/fesm2022/fundamental-ngx-btp-tool-layout.mjs +194 -0
- package/fesm2022/fundamental-ngx-btp-tool-layout.mjs.map +1 -0
- package/fesm2022/fundamental-ngx-btp.mjs +7 -0
- package/fesm2022/fundamental-ngx-btp.mjs.map +1 -0
- package/fundamental-ngx-btp-v0.46.0-rc.100.tgz +0 -0
- package/index.d.ts +2 -0
- package/navigation/README.md +3 -0
- package/navigation/directives/navigation-home.directive.d.ts +10 -0
- package/navigation/directives/navigation-list-spacer.directive.d.ts +8 -0
- package/navigation/index.d.ts +10 -0
- package/navigation/navigation-component.token.d.ts +34 -0
- package/navigation/navigation-content-end.component.d.ts +23 -0
- package/navigation/navigation-content-start.component.d.ts +54 -0
- package/navigation/navigation-content.token.d.ts +11 -0
- package/navigation/navigation-link.component.d.ts +49 -0
- package/navigation/navigation-list/navigation-list-item.component.d.ts +142 -0
- package/navigation/navigation-list/navigation-list-overflow-item.component.d.ts +16 -0
- package/navigation/navigation-list/navigation-list.component.d.ts +60 -0
- package/navigation/navigation-list-component.token.d.ts +17 -0
- package/navigation/navigation-list-item-component.token.d.ts +68 -0
- package/navigation/navigation.component.d.ts +82 -0
- package/navigation/navigation.service.d.ts +8 -0
- package/navigation/navigation.types.d.ts +2 -0
- package/navigation-menu/README.md +3 -0
- package/navigation-menu/index.d.ts +5 -0
- package/navigation-menu/lib/navigation-menu-item.component.d.ts +13 -0
- package/navigation-menu/lib/navigation-menu-popover-control.directive.d.ts +10 -0
- package/navigation-menu/lib/navigation-menu-popover.component.d.ts +11 -0
- package/navigation-menu/lib/navigation-menu.component.d.ts +5 -0
- package/navigation-menu/lib/navigation-menu.module.d.ts +8 -0
- package/package.json +63 -0
- package/search-field/README.md +3 -0
- package/search-field/index.d.ts +1 -0
- package/search-field/search-field.component.d.ts +34 -0
- package/shared/README.md +3 -0
- package/shared/index.d.ts +1 -0
- package/tool-header/README.md +3 -0
- package/tool-header/components/tool-header/tool-header.component.d.ts +91 -0
- package/tool-header/components/tool-header-product-switch.component.d.ts +11 -0
- package/tool-header/directives/tool-header-action.directive.d.ts +35 -0
- package/tool-header/directives/tool-header-actions.directive.d.ts +27 -0
- package/tool-header/directives/tool-header-auto-mode.directive.d.ts +68 -0
- package/tool-header/directives/tool-header-button.directive.d.ts +22 -0
- package/tool-header/directives/tool-header-element.directive.d.ts +5 -0
- package/tool-header/directives/tool-header-group.directive.d.ts +12 -0
- package/tool-header/directives/tool-header-logo.directive.d.ts +5 -0
- package/tool-header/directives/tool-header-user.directive.d.ts +5 -0
- package/tool-header/index.d.ts +9 -0
- package/tool-header/tool-header-action-button.type.d.ts +10 -0
- package/tool-header/tool-header-component.class.d.ts +20 -0
- package/tool-header/tool-header-state.type.d.ts +14 -0
- package/tool-layout/README.md +3 -0
- package/tool-layout/directives/tool-layout-container.directive.d.ts +5 -0
- package/tool-layout/directives/tool-layout-content-container.directive.d.ts +29 -0
- package/tool-layout/directives/tool-layout-header-container.directive.d.ts +5 -0
- package/tool-layout/directives/tool-layout-navigation-container.directive.d.ts +13 -0
- package/tool-layout/index.d.ts +6 -0
- package/tool-layout/tool-layout.component.d.ts +27 -0
- package/tool-layout/tool-layout.module.d.ts +11 -0
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
/* eslint-disable @angular-eslint/no-host-metadata-property */
|
|
3
|
+
import { AsyncPipe, NgIf, NgTemplateOutlet } from '@angular/common';
|
|
4
|
+
import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, HostListener, Input, TemplateRef, ViewChild, ViewEncapsulation, inject } from '@angular/core';
|
|
5
|
+
import { toSignal } from '@angular/core/rxjs-interop';
|
|
6
|
+
import { RouterLink, RouterLinkActive } from '@angular/router';
|
|
7
|
+
import { applyCssClass } from '@fundamental-ngx/cdk/utils';
|
|
8
|
+
import { IconComponent } from '@fundamental-ngx/core/icon';
|
|
9
|
+
import { FdbNavigationComponent } from './navigation-component.token';
|
|
10
|
+
import { FdbNavigationListItemComponent } from './navigation-list-item-component.token';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "@angular/router";
|
|
13
|
+
export class NavigationLinkComponent {
|
|
14
|
+
/** @hidden */
|
|
15
|
+
constructor() {
|
|
16
|
+
/** Whether the link is for the external resource. */
|
|
17
|
+
this.external = false;
|
|
18
|
+
/** @hidden */
|
|
19
|
+
this._tabindex = 0;
|
|
20
|
+
/** @hidden */
|
|
21
|
+
this.elementRef = inject(ElementRef);
|
|
22
|
+
/** @hidden */
|
|
23
|
+
this._routerLink = inject(RouterLink, {
|
|
24
|
+
optional: true,
|
|
25
|
+
self: true
|
|
26
|
+
});
|
|
27
|
+
/** @hidden */
|
|
28
|
+
this._routerLinkActive = inject(RouterLinkActive, { optional: true });
|
|
29
|
+
/**
|
|
30
|
+
* If user applies RouterLink, we need to check if the link is active
|
|
31
|
+
* @hidden
|
|
32
|
+
**/
|
|
33
|
+
this.isActive = toSignal(inject(RouterLinkActive).isActiveChange);
|
|
34
|
+
/** @hidden */
|
|
35
|
+
this.navigationListItemComponent = inject(FdbNavigationListItemComponent);
|
|
36
|
+
/** @hidden */
|
|
37
|
+
this._navigationComponent = inject(FdbNavigationComponent);
|
|
38
|
+
this.navigationListItemComponent.linkComponent = this;
|
|
39
|
+
this.navigationListItemComponent.routerLink.set(this._routerLink);
|
|
40
|
+
this.navigationListItemComponent.routerLinkActive.set(this._routerLinkActive);
|
|
41
|
+
}
|
|
42
|
+
/** @hidden */
|
|
43
|
+
buildComponentCssClass() {
|
|
44
|
+
return [this.class || '', 'fd-navigation__link'];
|
|
45
|
+
}
|
|
46
|
+
/** @hidden */
|
|
47
|
+
_onClick() {
|
|
48
|
+
if (this.navigationListItemComponent.childNavigationListComponent()) {
|
|
49
|
+
this.navigationListItemComponent.toggle();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/** @hidden */
|
|
53
|
+
_focusHandler() {
|
|
54
|
+
this._navigationComponent.setActiveItem(this.navigationListItemComponent);
|
|
55
|
+
}
|
|
56
|
+
/** @hidden */
|
|
57
|
+
ngOnChanges() {
|
|
58
|
+
this.buildComponentCssClass();
|
|
59
|
+
}
|
|
60
|
+
/** @hidden */
|
|
61
|
+
ngOnInit() {
|
|
62
|
+
this.buildComponentCssClass();
|
|
63
|
+
}
|
|
64
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
65
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: NavigationLinkComponent, isStandalone: true, selector: "a[fdb-navigation-link]", inputs: { class: "class", glyph: "glyph", label: "label", external: "external" }, host: { attributes: { "role": "link" }, listeners: { "click": "_onClick()", "focus": "_focusHandler()" }, properties: { "attr.tabindex": "this._tabindex" } }, viewQueries: [{ propertyName: "textRenderer", first: true, predicate: ["textRenderer"], descendants: true }], usesOnChanges: true, hostDirectives: [{ directive: i1.RouterLinkActive }], ngImport: i0, template: `
|
|
66
|
+
<ng-container *ngIf="glyph">
|
|
67
|
+
<fd-icon
|
|
68
|
+
[glyph]="glyph"
|
|
69
|
+
class="fd-navigation__icon"
|
|
70
|
+
[attr.role]="'presentation'"
|
|
71
|
+
[ariaHidden]="true"
|
|
72
|
+
></fd-icon>
|
|
73
|
+
</ng-container>
|
|
74
|
+
<ng-template #textRenderer>
|
|
75
|
+
<span class="fd-navigation__text">{{ label }}</span>
|
|
76
|
+
<span
|
|
77
|
+
class="fd-navigation__external-link-indicator"
|
|
78
|
+
role="presentation"
|
|
79
|
+
aria-hidden="true"
|
|
80
|
+
aria-label="external link indicator"
|
|
81
|
+
*ngIf="external"
|
|
82
|
+
></span>
|
|
83
|
+
</ng-template>
|
|
84
|
+
<ng-container *ngTemplateOutlet="textRenderer" />
|
|
85
|
+
<span
|
|
86
|
+
class="fd-navigation__selection-indicator"
|
|
87
|
+
role="presentation"
|
|
88
|
+
aria-hidden="true"
|
|
89
|
+
aria-label="selection indicator"
|
|
90
|
+
>
|
|
91
|
+
</span>
|
|
92
|
+
<span
|
|
93
|
+
*ngIf="
|
|
94
|
+
navigationListItemComponent?.childNavigationListComponent() &&
|
|
95
|
+
navigationListItemComponent?.normalizedLevel() !== 3 &&
|
|
96
|
+
!_routerLink
|
|
97
|
+
"
|
|
98
|
+
class="fd-navigation__has-children-indicator"
|
|
99
|
+
role="presentation"
|
|
100
|
+
aria-hidden="true"
|
|
101
|
+
aria-label="has children indicator, expanded"
|
|
102
|
+
>
|
|
103
|
+
</span>
|
|
104
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel", "ariaHidden"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
105
|
+
}
|
|
106
|
+
__decorate([
|
|
107
|
+
applyCssClass,
|
|
108
|
+
__metadata("design:type", Function),
|
|
109
|
+
__metadata("design:paramtypes", []),
|
|
110
|
+
__metadata("design:returntype", Array)
|
|
111
|
+
], NavigationLinkComponent.prototype, "buildComponentCssClass", null);
|
|
112
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationLinkComponent, decorators: [{
|
|
113
|
+
type: Component,
|
|
114
|
+
args: [{
|
|
115
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
116
|
+
selector: 'a[fdb-navigation-link]',
|
|
117
|
+
template: `
|
|
118
|
+
<ng-container *ngIf="glyph">
|
|
119
|
+
<fd-icon
|
|
120
|
+
[glyph]="glyph"
|
|
121
|
+
class="fd-navigation__icon"
|
|
122
|
+
[attr.role]="'presentation'"
|
|
123
|
+
[ariaHidden]="true"
|
|
124
|
+
></fd-icon>
|
|
125
|
+
</ng-container>
|
|
126
|
+
<ng-template #textRenderer>
|
|
127
|
+
<span class="fd-navigation__text">{{ label }}</span>
|
|
128
|
+
<span
|
|
129
|
+
class="fd-navigation__external-link-indicator"
|
|
130
|
+
role="presentation"
|
|
131
|
+
aria-hidden="true"
|
|
132
|
+
aria-label="external link indicator"
|
|
133
|
+
*ngIf="external"
|
|
134
|
+
></span>
|
|
135
|
+
</ng-template>
|
|
136
|
+
<ng-container *ngTemplateOutlet="textRenderer" />
|
|
137
|
+
<span
|
|
138
|
+
class="fd-navigation__selection-indicator"
|
|
139
|
+
role="presentation"
|
|
140
|
+
aria-hidden="true"
|
|
141
|
+
aria-label="selection indicator"
|
|
142
|
+
>
|
|
143
|
+
</span>
|
|
144
|
+
<span
|
|
145
|
+
*ngIf="
|
|
146
|
+
navigationListItemComponent?.childNavigationListComponent() &&
|
|
147
|
+
navigationListItemComponent?.normalizedLevel() !== 3 &&
|
|
148
|
+
!_routerLink
|
|
149
|
+
"
|
|
150
|
+
class="fd-navigation__has-children-indicator"
|
|
151
|
+
role="presentation"
|
|
152
|
+
aria-hidden="true"
|
|
153
|
+
aria-label="has children indicator, expanded"
|
|
154
|
+
>
|
|
155
|
+
</span>
|
|
156
|
+
`,
|
|
157
|
+
imports: [NgIf, IconComponent, AsyncPipe, NgTemplateOutlet],
|
|
158
|
+
hostDirectives: [RouterLinkActive],
|
|
159
|
+
standalone: true,
|
|
160
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
161
|
+
encapsulation: ViewEncapsulation.None,
|
|
162
|
+
host: {
|
|
163
|
+
role: 'link'
|
|
164
|
+
}
|
|
165
|
+
}]
|
|
166
|
+
}], ctorParameters: function () { return []; }, propDecorators: { class: [{
|
|
167
|
+
type: Input
|
|
168
|
+
}], glyph: [{
|
|
169
|
+
type: Input
|
|
170
|
+
}], label: [{
|
|
171
|
+
type: Input,
|
|
172
|
+
args: [{ required: true }]
|
|
173
|
+
}], external: [{
|
|
174
|
+
type: Input
|
|
175
|
+
}], textRenderer: [{
|
|
176
|
+
type: ViewChild,
|
|
177
|
+
args: ['textRenderer']
|
|
178
|
+
}], _tabindex: [{
|
|
179
|
+
type: HostBinding,
|
|
180
|
+
args: ['attr.tabindex']
|
|
181
|
+
}], buildComponentCssClass: [], _onClick: [{
|
|
182
|
+
type: HostListener,
|
|
183
|
+
args: ['click']
|
|
184
|
+
}], _focusHandler: [{
|
|
185
|
+
type: HostListener,
|
|
186
|
+
args: ['focus']
|
|
187
|
+
}] } });
|
|
188
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1saW5rLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vbmF2aWdhdGlvbi1saW5rLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsOERBQThEO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEUsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUdMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBa0MsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7QUFzRHhGLE1BQU0sT0FBTyx1QkFBdUI7SUFpRGhDLGNBQWM7SUFDZDtRQXJDQSxxREFBcUQ7UUFFckQsYUFBUSxHQUFHLEtBQUssQ0FBQztRQU1qQixjQUFjO1FBRWQsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUVkLGNBQWM7UUFDTCxlQUFVLEdBQTRCLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVsRSxjQUFjO1FBQ0wsZ0JBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFO1lBQ3RDLFFBQVEsRUFBRSxJQUFJO1lBQ2Qs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ZXRhZGF0YS1wcm9wZXJ0eSAqL1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgUm91dGVyTGluaywgUm91dGVyTGlua0FjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDc3NDbGFzc0J1aWxkZXIsIEhhc0VsZW1lbnRSZWYsIGFwcGx5Q3NzQ2xhc3MgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2ljb24nO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vbmF2aWdhdGlvbi1jb21wb25lbnQudG9rZW4nO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbkxpc3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLWxpc3QtaXRlbS1jb21wb25lbnQudG9rZW4nO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnYVtmZGItbmF2aWdhdGlvbi1saW5rXScsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdseXBoXCI+XG4gICAgICAgICAgICA8ZmQtaWNvblxuICAgICAgICAgICAgICAgIFtnbHlwaF09XCJnbHlwaFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1uYXZpZ2F0aW9uX19pY29uXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5yb2xlXT1cIidwcmVzZW50YXRpb24nXCJcbiAgICAgICAgICAgICAgICBbYXJpYUhpZGRlbl09XCJ0cnVlXCJcbiAgICAgICAgICAgID48L2ZkLWljb24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3RleHRSZW5kZXJlcj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtbmF2aWdhdGlvbl9fdGV4dFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cImZkLW5hdmlnYXRpb25fX2V4dGVybmFsLWxpbmstaW5kaWNhdG9yXCJcbiAgICAgICAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJleHRlcm5hbCBsaW5rIGluZGljYXRvclwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJleHRlcm5hbFwiXG4gICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGV4dFJlbmRlcmVyXCIgLz5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwiZmQtbmF2aWdhdGlvbl9fc2VsZWN0aW9uLWluZGljYXRvclwiXG4gICAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwic2VsZWN0aW9uIGluZGljYXRvclwiXG4gICAgICAgID5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICBuYXZpZ2F0aW9uTGlzdEl0ZW1Db21wb25lbnQ/LmNoaWxkTmF2aWdhdGlvbkxpc3RDb21wb25lbnQoKSAmJlxuICAgICAgICAgICAgICAgIG5hdmlnYXRpb25MaXN0SXRlbUNvbXBvbmVudD8ubm9ybWFsaXplZExldmVsKCkgIT09IDMgJiZcbiAgICAgICAgICAgICAgICAhX3JvdXRlckxpbmtcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBjbGFzcz1cImZkLW5hdmlnYXRpb25fX2hhcy1jaGlsZHJlbi1pbmRpY2F0b3JcIlxuICAgICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cImhhcyBjaGlsZHJlbiBpbmRpY2F0b3IsIGV4cGFuZGVkXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NwYW4+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmdJZiwgSWNvbkNvbXBvbmVudCwgQXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0XSxcbiAgICBob3N0RGlyZWN0aXZlczogW1JvdXRlckxpbmtBY3RpdmVdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgIHJvbGU6ICdsaW5rJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvbkxpbmtDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQ3NzQ2xhc3NCdWlsZGVyLCBIYXNFbGVtZW50UmVmIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2xhc3M6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQElucHV0KClcbiAgICBnbHlwaDogc3RyaW5nO1xuXG4gICAgLyoqIExhYmVsIHRvIGJlIGRpc3BsYXllZCBhcyBhIGxpbmsgdGV4dC4gKi9cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICAgIGxhYmVsOiBzdHJpbmc7XG5cbiAgICAvKiogV2hldGhlciB0aGUgbGluayBpcyBmb3IgdGhlIGV4dGVybmFsIHJlc291cmNlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZXh0ZXJuYWwgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgndGV4dFJlbmRlcmVyJylcbiAgICB0ZXh0UmVuZGVyZXI6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gICAgX3RhYmluZGV4ID0gMDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF9yb3V0ZXJMaW5rID0gaW5qZWN0KFJvdXRlckxpbmssIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWUsXG4gICAgICAgIHNlbGY6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3JvdXRlckxpbmtBY3RpdmUgPSBpbmplY3QoUm91dGVyTGlua0FjdGl2ZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAgIC8qKlxuICAgICAqIElmIHVzZXIgYXBwbGllcyBSb3V0ZXJMaW5rLCB3ZSBuZWVkIHRvIGNoZWNrIGlmIHRoZSBsaW5rIGlzIGFjdGl2ZVxuICAgICAqIEBoaWRkZW5cbiAgICAgKiovXG4gICAgcHJvdGVjdGVkIGlzQWN0aXZlID0gdG9TaWduYWwoaW5qZWN0KFJvdXRlckxpbmtBY3RpdmUpLmlzQWN0aXZlQ2hhbmdlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIG5hdmlnYXRpb25MaXN0SXRlbUNvbXBvbmVudCA9IGluamVjdChGZGJOYXZpZ2F0aW9uTGlzdEl0ZW1Db21wb25lbnQpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9uYXZpZ2F0aW9uQ29tcG9uZW50ID0gaW5qZWN0KEZkYk5hdmlnYXRpb25Db21wb25lbnQpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uTGlzdEl0ZW1Db21wb25lbnQubGlua0NvbXBvbmVudCA9IHRoaXM7XG4gICAgICAgIHRoaXMubmF2aWdhdGlvbkxpc3RJdGVtQ29tcG9uZW50LnJvdXRlckxpbmsuc2V0KHRoaXMuX3JvdXRlckxpbmspO1xuICAgICAgICB0aGlzLm5hdmlnYXRpb25MaXN0SXRlbUNvbXBvbmVudC5yb3V0ZXJMaW5rQWN0aXZlLnNldCh0aGlzLl9yb3V0ZXJMaW5rQWN0aXZlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBhcHBseUNzc0NsYXNzXG4gICAgYnVpbGRDb21wb25lbnRDc3NDbGFzcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBbdGhpcy5jbGFzcyB8fCAnJywgJ2ZkLW5hdmlnYXRpb25fX2xpbmsnXTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgICBwcml2YXRlIF9vbkNsaWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uYXZpZ2F0aW9uTGlzdEl0ZW1Db21wb25lbnQuY2hpbGROYXZpZ2F0aW9uTGlzdENvbXBvbmVudCgpKSB7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25MaXN0SXRlbUNvbXBvbmVudC50b2dnbGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuICAgIHByaXZhdGUgX2ZvY3VzSGFuZGxlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbmF2aWdhdGlvbkNvbXBvbmVudC5zZXRBY3RpdmVJdGVtKHRoaXMubmF2aWdhdGlvbkxpc3RJdGVtQ29tcG9uZW50KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTtcbiAgICB9XG59XG4iXX0=
|