@fundamental-ngx/core 0.36.0-rc.31 → 0.36.0-rc.32
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/action-bar/package.json +1 -1
- package/action-sheet/package.json +1 -1
- package/alert/package.json +1 -1
- package/avatar/package.json +1 -1
- package/avatar-group/package.json +1 -1
- package/bar/package.json +1 -1
- package/breadcrumb/package.json +1 -1
- package/busy-indicator/package.json +1 -1
- package/button/package.json +1 -1
- package/calendar/package.json +1 -1
- package/card/package.json +1 -1
- package/carousel/package.json +1 -1
- package/checkbox/package.json +1 -1
- package/combobox/package.json +1 -1
- package/content-density/package.json +2 -2
- package/date-picker/package.json +1 -1
- package/datetime/package.json +1 -1
- package/datetime-picker/package.json +1 -1
- package/dialog/package.json +1 -1
- package/dynamic-page/package.json +1 -1
- package/dynamic-side-content/package.json +1 -1
- package/esm2020/list/directives/list-link.directive.mjs +6 -5
- package/esm2020/list/list-item/list-item.component.mjs +24 -3
- package/facets/package.json +1 -1
- package/feed-input/package.json +1 -1
- package/feed-list-item/package.json +1 -1
- package/fesm2015/fundamental-ngx-core-list.mjs +27 -5
- package/fesm2015/fundamental-ngx-core-list.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-list.mjs +27 -5
- package/fesm2020/fundamental-ngx-core-list.mjs.map +1 -1
- package/file-uploader/package.json +1 -1
- package/fixed-card-layout/package.json +1 -1
- package/flexible-column-layout/package.json +1 -1
- package/form/package.json +1 -1
- package/formatted-text/package.json +1 -1
- package/grid-list/package.json +1 -1
- package/icon/package.json +1 -1
- package/illustrated-message/package.json +1 -1
- package/infinite-scroll/package.json +1 -1
- package/info-label/package.json +1 -1
- package/inline-help/package.json +1 -1
- package/input-group/package.json +1 -1
- package/layout-grid/package.json +1 -1
- package/layout-panel/package.json +1 -1
- package/link/package.json +1 -1
- package/list/directives/list-link.directive.d.ts +3 -1
- package/list/esm2020/directives/list-link.directive.mjs +6 -5
- package/list/esm2020/list-item/list-item.component.mjs +24 -3
- package/list/fesm2015/fundamental-ngx-core-list.mjs +27 -5
- package/list/fesm2015/fundamental-ngx-core-list.mjs.map +1 -1
- package/list/fesm2020/fundamental-ngx-core-list.mjs +27 -5
- package/list/fesm2020/fundamental-ngx-core-list.mjs.map +1 -1
- package/list/list-item/list-item.component.d.ts +4 -0
- package/list/package.json +1 -1
- package/menu/package.json +1 -1
- package/message-box/package.json +1 -1
- package/message-strip/package.json +1 -1
- package/message-toast/package.json +1 -1
- package/micro-process-flow/package.json +1 -1
- package/mobile-mode/package.json +1 -1
- package/multi-input/package.json +1 -1
- package/nested-list/package.json +1 -1
- package/notification/package.json +1 -1
- package/object-identifier/package.json +1 -1
- package/object-marker/package.json +1 -1
- package/object-number/package.json +1 -1
- package/object-status/package.json +1 -1
- package/overflow-layout/package.json +4 -4
- package/package.json +2 -2
- package/pagination/package.json +1 -1
- package/panel/package.json +1 -1
- package/popover/package.json +1 -1
- package/product-switch/package.json +1 -1
- package/progress-indicator/package.json +1 -1
- package/quick-view/package.json +1 -1
- package/radio/package.json +1 -1
- package/rating-indicator/package.json +1 -1
- package/resizable-card-layout/package.json +1 -1
- package/scroll-spy/package.json +1 -1
- package/scrollbar/package.json +1 -1
- package/segmented-button/package.json +1 -1
- package/select/package.json +1 -1
- package/shared/package.json +1 -1
- package/shellbar/package.json +1 -1
- package/side-navigation/package.json +1 -1
- package/slider/package.json +1 -1
- package/split-button/package.json +1 -1
- package/splitter/package.json +1 -1
- package/status-indicator/package.json +1 -1
- package/step-input/package.json +1 -1
- package/switch/package.json +1 -1
- package/table/package.json +1 -1
- package/tabs/package.json +1 -1
- package/text/package.json +1 -1
- package/theming/package.json +1 -1
- package/tile/package.json +1 -1
- package/time/package.json +1 -1
- package/time-picker/package.json +1 -1
- package/timeline/package.json +1 -1
- package/title/package.json +1 -1
- package/token/package.json +1 -1
- package/toolbar/package.json +1 -1
- package/tree/package.json +1 -1
- package/upload-collection/package.json +1 -1
- package/utils/package.json +1 -1
- package/vertical-navigation/package.json +1 -1
- package/wizard/package.json +1 -1
package/action-bar/package.json
CHANGED
package/alert/package.json
CHANGED
package/avatar/package.json
CHANGED
package/bar/package.json
CHANGED
package/breadcrumb/package.json
CHANGED
package/button/package.json
CHANGED
package/calendar/package.json
CHANGED
package/card/package.json
CHANGED
package/carousel/package.json
CHANGED
package/checkbox/package.json
CHANGED
package/combobox/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fundamental-ngx/core/content-density",
|
|
3
|
-
"version": "0.36.0-rc.
|
|
3
|
+
"version": "0.36.0-rc.32",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^14.0.0",
|
|
6
6
|
"@angular/core": "^14.0.0",
|
|
7
7
|
"rxjs": "7.5.6",
|
|
8
8
|
"@angular/cdk": "14.0.2",
|
|
9
|
-
"@fundamental-ngx/core/utils": "0.36.0-rc.
|
|
9
|
+
"@fundamental-ngx/core/utils": "0.36.0-rc.32"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"tslib": "^2.0.0"
|
package/date-picker/package.json
CHANGED
package/datetime/package.json
CHANGED
package/dialog/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { Directive, HostBinding, Input } from '@angular/core';
|
|
1
|
+
import { Directive, ElementRef, HostBinding, Input } from '@angular/core';
|
|
2
2
|
import { Subject } from 'rxjs';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class ListLinkDirective {
|
|
5
|
-
constructor() {
|
|
5
|
+
constructor(elementRef) {
|
|
6
|
+
this.elementRef = elementRef;
|
|
6
7
|
/** Defines if navigation indicator arrow should be included inside list item */
|
|
7
8
|
this.navigationIndicator = false;
|
|
8
9
|
/** Defines if link should be treated as a navigated */
|
|
@@ -19,14 +20,14 @@ export class ListLinkDirective {
|
|
|
19
20
|
}
|
|
20
21
|
}
|
|
21
22
|
}
|
|
22
|
-
ListLinkDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ListLinkDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
23
|
+
ListLinkDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ListLinkDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
23
24
|
ListLinkDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.2", type: ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: { navigationIndicator: "navigationIndicator", navigated: "navigated" }, host: { properties: { "class.fd-list__link--navigation-indicator": "this.navigationIndicator", "class.is-navigated": "this.navigated", "class.fd-list__link": "this.fdListLinkClass" } }, usesOnChanges: true, ngImport: i0 });
|
|
24
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ListLinkDirective, decorators: [{
|
|
25
26
|
type: Directive,
|
|
26
27
|
args: [{
|
|
27
28
|
selector: '[fd-list-link], [fdListLink]'
|
|
28
29
|
}]
|
|
29
|
-
}], propDecorators: { navigationIndicator: [{
|
|
30
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { navigationIndicator: [{
|
|
30
31
|
type: Input
|
|
31
32
|
}, {
|
|
32
33
|
type: HostBinding,
|
|
@@ -40,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
40
41
|
type: HostBinding,
|
|
41
42
|
args: ['class.fd-list__link']
|
|
42
43
|
}] } });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1saW5rLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2xpc3QvZGlyZWN0aXZlcy9saXN0LWxpbmsuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSy9CLE1BQU0sT0FBTyxpQkFBaUI7SUFrQjFCLFlBQW1CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFqQnpDLGdGQUFnRjtRQUdoRix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFFNUIsdURBQXVEO1FBR3ZELGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEIsY0FBYztRQUVkLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBRXZCLDBGQUEwRjtRQUNqRixnQ0FBMkIsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRWYsQ0FBQztJQUU3QyxjQUFjO0lBQ2QsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksT0FBTyxDQUFDLG1CQUFtQixJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDbEQsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksRUFBRSxDQUFDO1NBQzNDO0lBQ0wsQ0FBQzs7OEdBekJRLGlCQUFpQjtrR0FBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBSDdCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDhCQUE4QjtpQkFDM0M7aUdBS0csbUJBQW1CO3NCQUZsQixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLDJDQUEyQztnQkFNeEQsU0FBUztzQkFGUixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLG9CQUFvQjtnQkFLakMsZUFBZTtzQkFEZCxXQUFXO3VCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmQtbGlzdC1saW5rXSwgW2ZkTGlzdExpbmtdJ1xufSlcbmV4cG9ydCBjbGFzcyBMaXN0TGlua0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgLyoqIERlZmluZXMgaWYgbmF2aWdhdGlvbiBpbmRpY2F0b3IgYXJyb3cgc2hvdWxkIGJlIGluY2x1ZGVkIGluc2lkZSBsaXN0IGl0ZW0gKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtbGlzdF9fbGluay0tbmF2aWdhdGlvbi1pbmRpY2F0b3InKVxuICAgIG5hdmlnYXRpb25JbmRpY2F0b3IgPSBmYWxzZTtcblxuICAgIC8qKiBEZWZpbmVzIGlmIGxpbmsgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYSBuYXZpZ2F0ZWQgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaXMtbmF2aWdhdGVkJylcbiAgICBuYXZpZ2F0ZWQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1saXN0X19saW5rJylcbiAgICBmZExpc3RMaW5rQ2xhc3MgPSB0cnVlO1xuXG4gICAgLyoqIEVtaXRzIHdoZW4gc29tZSBvZiB0aGUgcHJvcGVydGllcywgdGhhdCBzaG91bGQgYmUgcmVhZCBieSBzY3JlZW5yZWFkZXIsIGFyZSBjaGFuZ2VkICovXG4gICAgcmVhZG9ubHkgX29uUmVhZGFibGVQcm9wZXJ0eUNoYW5nZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLm5hdmlnYXRpb25JbmRpY2F0b3IgfHwgY2hhbmdlcy5uYXZpZ2F0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX29uUmVhZGFibGVQcm9wZXJ0eUNoYW5nZWQkLm5leHQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -45,6 +45,8 @@ export class ListItemComponent extends ListFocusItem {
|
|
|
45
45
|
/** @hidden */
|
|
46
46
|
this.screenReaderContent = '';
|
|
47
47
|
/** @hidden */
|
|
48
|
+
this._listItemRole = 'listitem';
|
|
49
|
+
/** @hidden */
|
|
48
50
|
this._uniqueId = 'fd-list-item-' + ++listItemUniqueId;
|
|
49
51
|
}
|
|
50
52
|
/** @hidden */
|
|
@@ -84,6 +86,9 @@ export class ListItemComponent extends ListFocusItem {
|
|
|
84
86
|
ngAfterContentInit() {
|
|
85
87
|
this._listenOnLinkQueryChange();
|
|
86
88
|
this._listenOnButtonQueryChange();
|
|
89
|
+
if (this.linkDirectives && this.linkDirectives.length) {
|
|
90
|
+
this._listItemRole += ' button';
|
|
91
|
+
}
|
|
87
92
|
}
|
|
88
93
|
/** @hidden */
|
|
89
94
|
ngOnChanges(changes) {
|
|
@@ -115,9 +120,22 @@ export class ListItemComponent extends ListFocusItem {
|
|
|
115
120
|
this._muteEvent(event);
|
|
116
121
|
return;
|
|
117
122
|
}
|
|
123
|
+
else if (this.link) {
|
|
124
|
+
this.linkDirectives.first.elementRef.nativeElement.classList.add('is-active');
|
|
125
|
+
this._muteEvent(event);
|
|
126
|
+
}
|
|
118
127
|
}
|
|
119
128
|
this.keyDown.emit(event);
|
|
120
129
|
}
|
|
130
|
+
/** @hidden */
|
|
131
|
+
keyupHandler(event) {
|
|
132
|
+
if (KeyUtil.isKeyCode(event, [ENTER, SPACE]) && this.link) {
|
|
133
|
+
const _anchorElement = this.linkDirectives.first.elementRef.nativeElement;
|
|
134
|
+
_anchorElement.classList.remove('is-active');
|
|
135
|
+
_anchorElement.click();
|
|
136
|
+
this._muteEvent(event);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
121
139
|
/** Handler for mouse events */
|
|
122
140
|
onClick(event) {
|
|
123
141
|
this._clicked$.next(event);
|
|
@@ -186,7 +204,7 @@ export class ListItemComponent extends ListFocusItem {
|
|
|
186
204
|
}
|
|
187
205
|
}
|
|
188
206
|
ListItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ListItemComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
189
|
-
ListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: { selected: "selected", ariaDescribedBy: "ariaDescribedBy", noData: "noData", action: "action", interactive: "interactive", growing: "growing", counter: "counter", unread: "unread", selectedListItemScreenReaderText: "selectedListItemScreenReaderText", navigatedListItemScreenReaderText: "navigatedListItemScreenReaderText", navigatableListItemScreenReaderText: "navigatableListItemScreenReaderText" }, outputs: { keyDown: "keyDown" }, host: {
|
|
207
|
+
ListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: { selected: "selected", ariaDescribedBy: "ariaDescribedBy", noData: "noData", action: "action", interactive: "interactive", growing: "growing", counter: "counter", unread: "unread", selectedListItemScreenReaderText: "selectedListItemScreenReaderText", navigatedListItemScreenReaderText: "navigatedListItemScreenReaderText", navigatableListItemScreenReaderText: "navigatableListItemScreenReaderText" }, outputs: { keyDown: "keyDown" }, host: { listeners: { "keydown": "keydownHandler($event)", "keyup": "keyupHandler($event)", "click": "onClick($event)" }, properties: { "attr.role": "_listItemRole", "attr.aria-selected": "this.selected", "class.is-selected": "this.selected", "class.fd-list__item--no-data": "this.noData", "class.fd-list__item--action": "this.action", "class.fd-list__item--interractive": "this.interactive", "class.fd-list__item--growing": "this.growing", "class.fd-list__item--unread": "this.unread", "class.fd-list__item--link": "this.link", "attr.aria-describedBy": "this.getCombinedAriaDescribedBy" }, classAttribute: "fd-list__item" }, providers: [
|
|
190
208
|
{
|
|
191
209
|
provide: LIST_ITEM_COMPONENT,
|
|
192
210
|
useExisting: forwardRef(() => ListItemComponent)
|
|
@@ -200,7 +218,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
200
218
|
type: Component,
|
|
201
219
|
args: [{ selector: '[fdListItem] ,[fd-list-item]', host: {
|
|
202
220
|
class: 'fd-list__item',
|
|
203
|
-
role: '
|
|
221
|
+
'[attr.role]': '_listItemRole'
|
|
204
222
|
}, providers: [
|
|
205
223
|
{
|
|
206
224
|
provide: LIST_ITEM_COMPONENT,
|
|
@@ -277,8 +295,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
277
295
|
}], keydownHandler: [{
|
|
278
296
|
type: HostListener,
|
|
279
297
|
args: ['keydown', ['$event']]
|
|
298
|
+
}], keyupHandler: [{
|
|
299
|
+
type: HostListener,
|
|
300
|
+
args: ['keyup', ['$event']]
|
|
280
301
|
}], onClick: [{
|
|
281
302
|
type: HostListener,
|
|
282
303
|
args: ['click', ['$event']]
|
|
283
304
|
}] } });
|
|
284
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2xpc3QvbGlzdC1pdGVtL2xpc3QtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9saXN0L2xpc3QtaXRlbS9saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFFVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG1CQUFtQixFQUFxQixNQUFNLDZCQUE2QixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7OztB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Z0JBdUJuRCwwQkFBMEI7c0JBRDdCLFdBQVc7dUJBQUMsdUJBQXVCO2dCQTZDcEMsY0FBYztzQkFEYixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFvQm5DLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NoZWNrYm94JztcbmltcG9ydCB7IFJhZGlvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3JhZGlvJztcbmltcG9ydCB7IExpc3RMaW5rRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9saXN0LWxpbmsuZGlyZWN0aXZlJztcbmltcG9ydCB7IG1lcmdlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzdGFydFdpdGgsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEtleVV0aWwgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgTElTVF9JVEVNX0NPTVBPTkVOVCwgTGlzdEl0ZW1JbnRlcmZhY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgRU5URVIsIFNQQUNFIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IExpc3RGb2N1c0l0ZW0gfSBmcm9tICcuLi9saXN0LWZvY3VzLWl0ZW0ubW9kZWwnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2J1dHRvbic7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zaGFyZWQnO1xuXG5sZXQgbGlzdEl0ZW1VbmlxdWVJZCA9IDA7XG5cbi8qKlxuICogVGhlIGNvbXBvbmVudCB0aGF0IHJlcHJlc2VudHMgYSBsaXN0IGl0ZW0uXG4gKiBUaGUgbGlzdCBpdGVtIGNhbiBjb250YWluIHBsYWluIHRleHQsIGxpbmtzIG9yIGFjdGlvbnMuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmRMaXN0SXRlbV0gLFtmZC1saXN0LWl0ZW1dJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGlzdC1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnZmQtbGlzdF9faXRlbScsXG4gICAgICAgIHJvbGU6ICdsaXN0aXRlbSdcbiAgICB9LFxuICAgIHN0eWxlVXJsczogWycuL2xpc3QtaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBMSVNUX0lURU1fQ09NUE9ORU5ULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTGlzdEl0ZW1Db21wb25lbnQpXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IExpc3RGb2N1c0l0ZW0sXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBMaXN0SXRlbUNvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBMaXN0SXRlbUNvbXBvbmVudFxuICAgIGV4dGVuZHMgTGlzdEZvY3VzSXRlbVxuICAgIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIExpc3RJdGVtSW50ZXJmYWNlXG57XG4gICAgLyoqIFdoZXRoZXIgbGlzdCBpdGVtIGlzIHNlbGVjdGVkICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1zZWxlY3RlZCcpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pcy1zZWxlY3RlZCcpXG4gICAgc2VsZWN0ZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFNldHMgYXJpYS1kZXNjcmliZWRieSBhdHRyaWJ1dGUgZm9yIGxpc3QgaXRlbS5cbiAgICAgKiBOb3RlLCB0aGF0IGl0IGlzIGJlaW5nIGNvbWJpbmVkIHdpdGggaW50ZXJuYWwgdmFsdWVzIGZvciB0aGlzIGNvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYURlc2NyaWJlZEJ5OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlcmUgaXMgbm8gZGF0YSBpbnNpZGUgbGlzdCBpdGVtICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWxpc3RfX2l0ZW0tLW5vLWRhdGEnKVxuICAgIG5vRGF0YSA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlcmUgaXMgaXRlbSBwZXJmb3JtcyBzb21lIGFjdGlvbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1saXN0X19pdGVtLS1hY3Rpb24nKVxuICAgIGFjdGlvbiA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlcmUgaXMgaXRlbSBwZXJmb3JtcyBzb21lIGFjdGlvbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1saXN0X19pdGVtLS1pbnRlcnJhY3RpdmUnKVxuICAgIGludGVyYWN0aXZlID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciBsaXN0IGl0ZW0gY29udGFpbnMgYnVzeSBpbmRpY2F0b3IgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtbGlzdF9faXRlbS0tZ3Jvd2luZycpXG4gICAgZ3Jvd2luZyA9IGZhbHNlO1xuXG4gICAgLyoqIENvdW50ZXIgb24gbGlzdCBpdGVtICovXG4gICAgQElucHV0KClcbiAgICBjb3VudGVyOiBudW1iZXI7XG5cbiAgICAvKiogV2hldGhlciBsaXN0IGl0ZW0gc2hvdWxkIGNvbnRhaW4gYWRkaXRpb25hbCB1blJlYWQgc3R5bGVzICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWxpc3RfX2l0ZW0tLXVucmVhZCcpXG4gICAgdW5yZWFkID0gZmFsc2U7XG5cbiAgICAvKiogVGV4dCB0byBiZSByZWFkIGJ5IHNjcmVlbiByZWFkZXIgZm9yIHNlbGVjdGVkIGxpc3QgaXRlbSAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VsZWN0ZWRMaXN0SXRlbVNjcmVlblJlYWRlclRleHQ6IHN0cmluZztcblxuICAgIC8qKiBUZXh0IHRvIGJlIHJlYWQgYnkgc2NyZWVuIHJlYWRlciBmb3IgbmF2aWdhdGVkIGxpc3QgaXRlbSAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmF2aWdhdGVkTGlzdEl0ZW1TY3JlZW5SZWFkZXJUZXh0OiBzdHJpbmc7XG5cbiAgICAvKiogVGV4dCB0byBiZSByZWFkIGJ5IHNjcmVlbiByZWFkZXIgZm9yIG5hdmlnYXRhYmxlIGxpc3QgaXRlbSAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmF2aWdhdGFibGVMaXN0SXRlbVNjcmVlblJlYWRlclRleHQ6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuIEltcGxlbWVudGF0aW9uIG9mIEtleWJvYXJkU3VwcG9ydEl0ZW1JbnRlcmZhY2UgfCBUT0RPIFJldmlzaXQgS2V5Ym9hcmRTdXBwb3J0SXRlbUludGVyZmFjZSovXG4gICAgQE91dHB1dCgpXG4gICAga2V5RG93bjogRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PigpO1xuXG4gICAgLyoqIFdoZXRoZXIgbGlzdCBpdGVtIGNvbnRhaW5zIGxpbmsgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWxpc3RfX2l0ZW0tLWxpbmsnKVxuICAgIGxpbmsgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChSYWRpb0J1dHRvbkNvbXBvbmVudClcbiAgICBnZXQgcmFkaW8oKTogUmFkaW9CdXR0b25Db21wb25lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmFkaW87XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXQgcmFkaW8odmFsdWU6IFJhZGlvQnV0dG9uQ29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMuX3JhZGlvID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLl9yYWRpbyAmJiB0aGlzLl9yYWRpby50YWJJbmRleCA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLl9yYWRpby50YWJJbmRleCA9IC0xO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKENoZWNrYm94Q29tcG9uZW50KVxuICAgIGdldCBjaGVja2JveCgpOiBDaGVja2JveENvbXBvbmVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jaGVja2JveDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldCBjaGVja2JveCh2YWx1ZTogQ2hlY2tib3hDb21wb25lbnQpIHtcbiAgICAgICAgdGhpcy5fY2hlY2tib3ggPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuX2NoZWNrYm94ICYmIHRoaXMuX2NoZWNrYm94LnRhYkluZGV4VmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5fY2hlY2tib3gudGFiSW5kZXhWYWx1ZSA9IC0xO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKExpc3RMaW5rRGlyZWN0aXZlKVxuICAgIGxpbmtEaXJlY3RpdmVzOiBRdWVyeUxpc3Q8TGlzdExpbmtEaXJlY3RpdmU+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKEJ1dHRvbkNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIGJ1dHRvbnM6IFF1ZXJ5TGlzdDxCdXR0b25Db21wb25lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gQW4gUnhKUyBTdWJqZWN0IHRoYXQgd2lsbCBraWxsIHRoZSBkYXRhIHN0cmVhbSB1cG9uIGNvbXBvbmVudOKAmXMgZGVzdHJ1Y3Rpb24gKGZvciB1bnN1YnNjcmliaW5nKSAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vbkRlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfb25MaW5rTGlzdENoYW5nZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmFkaW86IFJhZGlvQnV0dG9uQ29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jaGVja2JveDogQ2hlY2tib3hDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNjcmVlblJlYWRlckNvbnRlbnQgPSAnJztcblxuICAgIC8qKiBAaGlkZGVuIGdyb3VwIGhlYWRlciBpZCwgdGhhdCBpcyBiZWluZyBzZXQgYnkgcGFyZW50IGxpc3QgY29tcG9uZW50ICovXG4gICAgX3JlbGF0ZWRHcm91cEhlYWRlcklkOiBzdHJpbmcgfCBudWxsO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1kZXNjcmliZWRCeScpXG4gICAgZ2V0IGdldENvbWJpbmVkQXJpYURlc2NyaWJlZEJ5KCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBsZXQgZGVzY3JpYmVkQnkgPSB0aGlzLnNjcmVlblJlYWRlckNvbnRlbnQgPyB0aGlzLl91bmlxdWVJZCArICctc2NyZWVuUmVhZGVyLWNvbnRlbnQnIDogJyc7XG4gICAgICAgIGlmICh0aGlzLmFyaWFEZXNjcmliZWRCeSkge1xuICAgICAgICAgICAgZGVzY3JpYmVkQnkgKz0gJyAnICsgdGhpcy5hcmlhRGVzY3JpYmVkQnk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX3JlbGF0ZWRHcm91cEhlYWRlcklkKSB7XG4gICAgICAgICAgICBkZXNjcmliZWRCeSArPSAnICcgKyB0aGlzLl9yZWxhdGVkR3JvdXBIZWFkZXJJZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGVzY3JpYmVkQnkudHJpbSgpIHx8IG51bGw7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfdW5pcXVlSWQgPSAnZmQtbGlzdC1pdGVtLScgKyArK2xpc3RJdGVtVW5pcXVlSWQ7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9saXN0ZW5PbkxpbmtRdWVyeUNoYW5nZSgpO1xuICAgICAgICB0aGlzLl9saXN0ZW5PbkJ1dHRvblF1ZXJ5Q2hhbmdlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGNoYW5nZXMuc2VsZWN0ZWRMaXN0SXRlbVNjcmVlblJlYWRlclRleHQgfHxcbiAgICAgICAgICAgIGNoYW5nZXMubmF2aWdhdGVkTGlzdEl0ZW1TY3JlZW5SZWFkZXJUZXh0IHx8XG4gICAgICAgICAgICBjaGFuZ2VzLm5hdmlnYXRhYmxlTGlzdEl0ZW1TY3JlZW5SZWFkZXJUZXh0IHx8XG4gICAgICAgICAgICBjaGFuZ2VzLnNlbGVjdGVkXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlU2NyZWVuUmVhZGVyVGV4dCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIGtleWRvd25IYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VOVEVSLCBTUEFDRV0pKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jaGVja2JveCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tib3gubmV4dFZhbHVlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbXV0ZUV2ZW50KGV2ZW50KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5yYWRpbykge1xuICAgICAgICAgICAgICAgIHRoaXMucmFkaW8ubGFiZWxDbGlja2VkKGV2ZW50LCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbXV0ZUV2ZW50KGV2ZW50KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5pbnRlcmFjdGl2ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPSAhdGhpcy5zZWxlY3RlZDtcbiAgICAgICAgICAgICAgICB0aGlzLl9tdXRlRXZlbnQoZXZlbnQpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmtleURvd24uZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgLyoqIEhhbmRsZXIgZm9yIG1vdXNlIGV2ZW50cyAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NsaWNrZWQkLm5leHQoZXZlbnQpO1xuICAgICAgICBpZiAodGhpcy5jaGVja2JveCAmJiAhdGhpcy5saW5rKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuY2hlY2tib3guZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG9uIHRoZSBjaGVja2JveCBpcyBub3Qgc3VwcHJlc3NlZFxuICAgICAgICAgICAgICAgIC8vIHNvIHdlIHNob3VsZCBvbmx5IHByb2Nlc3MgY2xpY2tzIGlmIGNsaWNrZWQgb24gdGhlIGxpc3QtaXRlbSwgbm90IGNoZWNrYm94IGl0c2VsZlxuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tib3gubmV4dFZhbHVlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucmFkaW8gJiYgIXRoaXMubGluaykge1xuICAgICAgICAgICAgdGhpcy5yYWRpby5sYWJlbENsaWNrZWQoZXZlbnQsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuT25MaW5rUXVlcnlDaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGlua0RpcmVjdGl2ZXMuY2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSwgc3RhcnRXaXRoKDApKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fb25MaW5rTGlzdENoYW5nZWQkLm5leHQoKTtcbiAgICAgICAgICAgIHRoaXMubGluayA9IHRoaXMubGlua0RpcmVjdGl2ZXMubGVuZ3RoID4gMDtcbiAgICAgICAgICAgIGlmICh0aGlzLmxpbmspIHtcbiAgICAgICAgICAgICAgICBtZXJnZSh0aGlzLmxpbmtEaXJlY3RpdmVzLnRvQXJyYXkoKS5tYXAoKGQpID0+IGQuX29uUmVhZGFibGVQcm9wZXJ0eUNoYW5nZWQkKSlcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKG1lcmdlKHRoaXMuX29uRGVzdHJveSQsIHRoaXMuX29uTGlua0xpc3RDaGFuZ2VkJCkpKVxuICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3VwZGF0ZVNjcmVlblJlYWRlclRleHQoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuT25CdXR0b25RdWVyeUNoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5idXR0b25zLmNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksIHN0YXJ0V2l0aCgwKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9ucy5mb3JFYWNoKHRoaXMuX2FkZENsYXNzVG9CdXR0b25zKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hZGRDbGFzc1RvQnV0dG9ucyhidXR0b246IEJ1dHRvbkNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBidXR0b24uY2xhc3MgKz0gJyBmZC1saXN0X19idXR0b24nO1xuICAgICAgICBidXR0b24uYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgICAgICBidXR0b24uZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbXV0ZUV2ZW50KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3VwZGF0ZVNjcmVlblJlYWRlclRleHQoKTogdm9pZCB7XG4gICAgICAgIGxldCBjb250ZW50ID0gJyc7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICBjb250ZW50ICs9IHRoaXMuX2FkZFRleHRQYXJ0KGNvbnRlbnQsIHRoaXMuc2VsZWN0ZWRMaXN0SXRlbVNjcmVlblJlYWRlclRleHQgPz8gJ3NlbGVjdGVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubGlua0RpcmVjdGl2ZXM/LnNvbWUoKGQpID0+IGQubmF2aWdhdGVkKSkge1xuICAgICAgICAgICAgY29udGVudCArPSB0aGlzLl9hZGRUZXh0UGFydChjb250ZW50LCB0aGlzLm5hdmlnYXRlZExpc3RJdGVtU2NyZWVuUmVhZGVyVGV4dCA/PyAnbmF2aWdhdGVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubGlua0RpcmVjdGl2ZXM/LnNvbWUoKGQpID0+IGQubmF2aWdhdGlvbkluZGljYXRvcikpIHtcbiAgICAgICAgICAgIGNvbnRlbnQgKz0gdGhpcy5fYWRkVGV4dFBhcnQoY29udGVudCwgdGhpcy5uYXZpZ2F0YWJsZUxpc3RJdGVtU2NyZWVuUmVhZGVyVGV4dCA/PyAnbmF2aWdhdGFibGUnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29udGVudC5zdGFydHNXaXRoKCcsICcpKSB7XG4gICAgICAgICAgICBjb250ZW50ID0gY29udGVudC5zdWJzdHJpbmcoMik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zY3JlZW5SZWFkZXJDb250ZW50ID0gY29udGVudDtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hZGRUZXh0UGFydChleGlzdGluZzogc3RyaW5nLCB0b0FkZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIChleGlzdGluZyA/ICcsICcgOiAnJykgKyB0b0FkZDtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY2hlY2tib3ggfHwgcmFkaW9cIj5cbiAgICA8ZGl2IGZkLWZvcm0taXRlbSBjbGFzcz1cImZkLWxpc3RfX2Zvcm0taXRlbVwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmZC1jaGVja2JveFwiPjwvbmctY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZmQtcmFkaW8tYnV0dG9uXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuPHNwYW4gKm5nSWY9XCJjb3VudGVyIHx8IGNvdW50ZXIgPT09IDBcIiBjbGFzcz1cImZkLWxpc3RfX2l0ZW0tY291bnRlclwiPlxuICAgIHt7IGNvdW50ZXIgfCBudW1iZXI6ICcxLjAtMicgfX1cbjwvc3Bhbj5cblxuPHNwYW5cbiAgICBjbGFzcz1cImZkLXNjcmVlbnJlYWRlci1vbmx5XCJcbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIFtpZF09XCJfdW5pcXVlSWQgKyAnLXNjcmVlblJlYWRlci1jb250ZW50J1wiXG4gICAgKm5nSWY9XCJzY3JlZW5SZWFkZXJDb250ZW50XCJcbj5cbiAgICB7eyBzY3JlZW5SZWFkZXJDb250ZW50IH19XG48L3NwYW4+XG4iXX0=
|
|
305
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2xpc3QvbGlzdC1pdGVtL2xpc3QtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9saXN0L2xpc3QtaXRlbS9saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFFVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG1CQUFtQixFQUFxQixNQUFNLDZCQUE2QixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7OztB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LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDaGVja2JveENvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jaGVja2JveCc7XG5pbXBvcnQgeyBSYWRpb0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9yYWRpbyc7XG5pbXBvcnQgeyBMaXN0TGlua0RpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvbGlzdC1saW5rLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBtZXJnZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBLZXlVdGlsIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IExJU1RfSVRFTV9DT01QT05FTlQsIExpc3RJdGVtSW50ZXJmYWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IEVOVEVSLCBTUEFDRSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBMaXN0Rm9jdXNJdGVtIH0gZnJvbSAnLi4vbGlzdC1mb2N1cy1pdGVtLm1vZGVsJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9idXR0b24nO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2hhcmVkJztcblxubGV0IGxpc3RJdGVtVW5pcXVlSWQgPSAwO1xuXG4vKipcbiAqIFRoZSBjb21wb25lbnQgdGhhdCByZXByZXNlbnRzIGEgbGlzdCBpdGVtLlxuICogVGhlIGxpc3QgaXRlbSBjYW4gY29udGFpbiBwbGFpbiB0ZXh0LCBsaW5rcyBvciBhY3Rpb25zLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZkTGlzdEl0ZW1dICxbZmQtbGlzdC1pdGVtXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xpc3QtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkLWxpc3RfX2l0ZW0nLFxuICAgICAgICAnW2F0dHIucm9sZV0nOiAnX2xpc3RJdGVtUm9sZSdcbiAgICB9LFxuICAgIHN0eWxlVXJsczogWycuL2xpc3QtaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBMSVNUX0lURU1fQ09NUE9ORU5ULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTGlzdEl0ZW1Db21wb25lbnQpXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IExpc3RGb2N1c0l0ZW0sXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBMaXN0SXRlbUNvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBMaXN0SXRlbUNvbXBvbmVudFxuICAgIGV4dGVuZHMgTGlzdEZvY3VzSXRlbVxuICAgIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIExpc3RJdGVtSW50ZXJmYWNlXG57XG4gICAgLyoqIFdoZXRoZXIgbGlzdCBpdGVtIGlzIHNlbGVjdGVkICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1zZWxlY3RlZCcpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pcy1zZWxlY3RlZCcpXG4gICAgc2VsZWN0ZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFNldHMgYXJpYS1kZXNjcmliZWRieSBhdHRyaWJ1dGUgZm9yIGxpc3QgaXRlbS5cbiAgICAgKiBOb3RlLCB0aGF0IGl0IGlzIGJlaW5nIGNvbWJpbmVkIHdpdGggaW50ZXJuYWwgdmFsdWVzIGZvciB0aGlzIGNvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYURlc2NyaWJlZEJ5OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlcmUgaXMgbm8gZGF0YSBpbnNpZGUgbGlzdCBpdGVtICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWxpc3RfX2l0ZW0tLW5vLWRhdGEnKVxuICAgIG5vRGF0YSA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlcmUgaXMgaXRlbSBwZXJmb3JtcyBzb21lIGFjdGlvbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1saXN0X19pdGVtLS1hY3Rpb24nKVxuICAgIGFjdGlvbiA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlcmUgaXMgaXRlbSBwZXJmb3JtcyBzb21lIGFjdGlvbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1saXN0X19pdGVtLS1pbnRlcnJhY3RpdmUnKVxuICAgIGludGVyYWN0aXZlID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciBsaXN0IGl0ZW0gY29udGFpbnMgYnVzeSBpbmRpY2F0b3IgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtbGlzdF9faXRlbS0tZ3Jvd2luZycpXG4gICAgZ3Jvd2luZyA9IGZhbHNlO1xuXG4gICAgLyoqIENvdW50ZXIgb24gbGlzdCBpdGVtICovXG4gICAgQElucHV0KClcbiAgICBjb3VudGVyOiBudW1iZXI7XG5cbiAgICAvKiogV2hldGhlciBsaXN0IGl0ZW0gc2hvdWxkIGNvbnRhaW4gYWRkaXRpb25hbCB1blJlYWQgc3R5bGVzICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWxpc3RfX2l0ZW0tLXVucmVhZCcpXG4gICAgdW5yZWFkID0gZmFsc2U7XG5cbiAgICAvKiogVGV4dCB0byBiZSByZWFkIGJ5IHNjcmVlbiByZWFkZXIgZm9yIHNlbGVjdGVkIGxpc3QgaXRlbSAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VsZWN0ZWRMaXN0SXRlbVNjcmVlblJlYWRlclRleHQ6IHN0cmluZztcblxuICAgIC8qKiBUZXh0IHRvIGJlIHJlYWQgYnkgc2NyZWVuIHJlYWRlciBmb3IgbmF2aWdhdGVkIGxpc3QgaXRlbSAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmF2aWdhdGVkTGlzdEl0ZW1TY3JlZW5SZWFkZXJUZXh0OiBzdHJpbmc7XG5cbiAgICAvKiogVGV4dCB0byBiZSByZWFkIGJ5IHNjcmVlbiByZWFkZXIgZm9yIG5hdmlnYXRhYmxlIGxpc3QgaXRlbSAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmF2aWdhdGFibGVMaXN0SXRlbVNjcmVlblJlYWRlclRleHQ6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuIEltcGxlbWVudGF0aW9uIG9mIEtleWJvYXJkU3VwcG9ydEl0ZW1JbnRlcmZhY2UgfCBUT0RPIFJldmlzaXQgS2V5Ym9hcmRTdXBwb3J0SXRlbUludGVyZmFjZSovXG4gICAgQE91dHB1dCgpXG4gICAga2V5RG93bjogRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PigpO1xuXG4gICAgLyoqIFdoZXRoZXIgbGlzdCBpdGVtIGNvbnRhaW5zIGxpbmsgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWxpc3RfX2l0ZW0tLWxpbmsnKVxuICAgIGxpbmsgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChSYWRpb0J1dHRvbkNvbXBvbmVudClcbiAgICBnZXQgcmFkaW8oKTogUmFkaW9CdXR0b25Db21wb25lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmFkaW87XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXQgcmFkaW8odmFsdWU6IFJhZGlvQnV0dG9uQ29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMuX3JhZGlvID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLl9yYWRpbyAmJiB0aGlzLl9yYWRpby50YWJJbmRleCA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLl9yYWRpby50YWJJbmRleCA9IC0xO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKENoZWNrYm94Q29tcG9uZW50KVxuICAgIGdldCBjaGVja2JveCgpOiBDaGVja2JveENvbXBvbmVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jaGVja2JveDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldCBjaGVja2JveCh2YWx1ZTogQ2hlY2tib3hDb21wb25lbnQpIHtcbiAgICAgICAgdGhpcy5fY2hlY2tib3ggPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuX2NoZWNrYm94ICYmIHRoaXMuX2NoZWNrYm94LnRhYkluZGV4VmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5fY2hlY2tib3gudGFiSW5kZXhWYWx1ZSA9IC0xO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKExpc3RMaW5rRGlyZWN0aXZlKVxuICAgIGxpbmtEaXJlY3RpdmVzOiBRdWVyeUxpc3Q8TGlzdExpbmtEaXJlY3RpdmU+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKEJ1dHRvbkNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIGJ1dHRvbnM6IFF1ZXJ5TGlzdDxCdXR0b25Db21wb25lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gQW4gUnhKUyBTdWJqZWN0IHRoYXQgd2lsbCBraWxsIHRoZSBkYXRhIHN0cmVhbSB1cG9uIGNvbXBvbmVudOKAmXMgZGVzdHJ1Y3Rpb24gKGZvciB1bnN1YnNjcmliaW5nKSAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vbkRlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfb25MaW5rTGlzdENoYW5nZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmFkaW86IFJhZGlvQnV0dG9uQ29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jaGVja2JveDogQ2hlY2tib3hDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNjcmVlblJlYWRlckNvbnRlbnQgPSAnJztcblxuICAgIC8qKiBAaGlkZGVuIGdyb3VwIGhlYWRlciBpZCwgdGhhdCBpcyBiZWluZyBzZXQgYnkgcGFyZW50IGxpc3QgY29tcG9uZW50ICovXG4gICAgX3JlbGF0ZWRHcm91cEhlYWRlcklkOiBzdHJpbmcgfCBudWxsO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0SXRlbVJvbGUgPSAnbGlzdGl0ZW0nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1kZXNjcmliZWRCeScpXG4gICAgZ2V0IGdldENvbWJpbmVkQXJpYURlc2NyaWJlZEJ5KCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBsZXQgZGVzY3JpYmVkQnkgPSB0aGlzLnNjcmVlblJlYWRlckNvbnRlbnQgPyB0aGlzLl91bmlxdWVJZCArICctc2NyZWVuUmVhZGVyLWNvbnRlbnQnIDogJyc7XG4gICAgICAgIGlmICh0aGlzLmFyaWFEZXNjcmliZWRCeSkge1xuICAgICAgICAgICAgZGVzY3JpYmVkQnkgKz0gJyAnICsgdGhpcy5hcmlhRGVzY3JpYmVkQnk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX3JlbGF0ZWRHcm91cEhlYWRlcklkKSB7XG4gICAgICAgICAgICBkZXNjcmliZWRCeSArPSAnICcgKyB0aGlzLl9yZWxhdGVkR3JvdXBIZWFkZXJJZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGVzY3JpYmVkQnkudHJpbSgpIHx8IG51bGw7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfdW5pcXVlSWQgPSAnZmQtbGlzdC1pdGVtLScgKyArK2xpc3RJdGVtVW5pcXVlSWQ7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9saXN0ZW5PbkxpbmtRdWVyeUNoYW5nZSgpO1xuICAgICAgICB0aGlzLl9saXN0ZW5PbkJ1dHRvblF1ZXJ5Q2hhbmdlKCk7XG4gICAgICAgIGlmICh0aGlzLmxpbmtEaXJlY3RpdmVzICYmIHRoaXMubGlua0RpcmVjdGl2ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLl9saXN0SXRlbVJvbGUgKz0gJyBidXR0b24nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGNoYW5nZXMuc2VsZWN0ZWRMaXN0SXRlbVNjcmVlblJlYWRlclRleHQgfHxcbiAgICAgICAgICAgIGNoYW5nZXMubmF2aWdhdGVkTGlzdEl0ZW1TY3JlZW5SZWFkZXJUZXh0IHx8XG4gICAgICAgICAgICBjaGFuZ2VzLm5hdmlnYXRhYmxlTGlzdEl0ZW1TY3JlZW5SZWFkZXJUZXh0IHx8XG4gICAgICAgICAgICBjaGFuZ2VzLnNlbGVjdGVkXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlU2NyZWVuUmVhZGVyVGV4dCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIGtleWRvd25IYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VOVEVSLCBTUEFDRV0pKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jaGVja2JveCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tib3gubmV4dFZhbHVlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbXV0ZUV2ZW50KGV2ZW50KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5yYWRpbykge1xuICAgICAgICAgICAgICAgIHRoaXMucmFkaW8ubGFiZWxDbGlja2VkKGV2ZW50LCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbXV0ZUV2ZW50KGV2ZW50KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5pbnRlcmFjdGl2ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPSAhdGhpcy5zZWxlY3RlZDtcbiAgICAgICAgICAgICAgICB0aGlzLl9tdXRlRXZlbnQoZXZlbnQpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5saW5rKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5saW5rRGlyZWN0aXZlcy5maXJzdC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnaXMtYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbXV0ZUV2ZW50KGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmtleURvd24uZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXG4gICAga2V5dXBIYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VOVEVSLCBTUEFDRV0pICYmIHRoaXMubGluaykge1xuICAgICAgICAgICAgY29uc3QgX2FuY2hvckVsZW1lbnQgPSB0aGlzLmxpbmtEaXJlY3RpdmVzLmZpcnN0LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIF9hbmNob3JFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2lzLWFjdGl2ZScpO1xuICAgICAgICAgICAgX2FuY2hvckVsZW1lbnQuY2xpY2soKTtcbiAgICAgICAgICAgIHRoaXMuX211dGVFdmVudChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogSGFuZGxlciBmb3IgbW91c2UgZXZlbnRzICovXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2xpY2tlZCQubmV4dChldmVudCk7XG4gICAgICAgIGlmICh0aGlzLmNoZWNrYm94ICYmICF0aGlzLmxpbmspIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5jaGVja2JveC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb24gdGhlIGNoZWNrYm94IGlzIG5vdCBzdXBwcmVzc2VkXG4gICAgICAgICAgICAgICAgLy8gc28gd2Ugc2hvdWxkIG9ubHkgcHJvY2VzcyBjbGlja3MgaWYgY2xpY2tlZCBvbiB0aGUgbGlzdC1pdGVtLCBub3QgY2hlY2tib3ggaXRzZWxmXG4gICAgICAgICAgICAgICAgdGhpcy5jaGVja2JveC5uZXh0VmFsdWUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5yYWRpbyAmJiAhdGhpcy5saW5rKSB7XG4gICAgICAgICAgICB0aGlzLnJhZGlvLmxhYmVsQ2xpY2tlZChldmVudCwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5PbkxpbmtRdWVyeUNoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5saW5rRGlyZWN0aXZlcy5jaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLCBzdGFydFdpdGgoMCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9vbkxpbmtMaXN0Q2hhbmdlZCQubmV4dCgpO1xuICAgICAgICAgICAgdGhpcy5saW5rID0gdGhpcy5saW5rRGlyZWN0aXZlcy5sZW5ndGggPiAwO1xuICAgICAgICAgICAgaWYgKHRoaXMubGluaykge1xuICAgICAgICAgICAgICAgIG1lcmdlKHRoaXMubGlua0RpcmVjdGl2ZXMudG9BcnJheSgpLm1hcCgoZCkgPT4gZC5fb25SZWFkYWJsZVByb3BlcnR5Q2hhbmdlZCQpKVxuICAgICAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwobWVyZ2UodGhpcy5fb25EZXN0cm95JCwgdGhpcy5fb25MaW5rTGlzdENoYW5nZWQkKSkpXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fdXBkYXRlU2NyZWVuUmVhZGVyVGV4dCgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5PbkJ1dHRvblF1ZXJ5Q2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1dHRvbnMuY2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSwgc3RhcnRXaXRoKDApKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5idXR0b25zLmZvckVhY2godGhpcy5fYWRkQ2xhc3NUb0J1dHRvbnMpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FkZENsYXNzVG9CdXR0b25zKGJ1dHRvbjogQnV0dG9uQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIGJ1dHRvbi5jbGFzcyArPSAnIGZkLWxpc3RfX2J1dHRvbic7XG4gICAgICAgIGJ1dHRvbi5idWlsZENvbXBvbmVudENzc0NsYXNzKCk7XG4gICAgICAgIGJ1dHRvbi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9tdXRlRXZlbnQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdXBkYXRlU2NyZWVuUmVhZGVyVGV4dCgpOiB2b2lkIHtcbiAgICAgICAgbGV0IGNvbnRlbnQgPSAnJztcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIGNvbnRlbnQgKz0gdGhpcy5fYWRkVGV4dFBhcnQoY29udGVudCwgdGhpcy5zZWxlY3RlZExpc3RJdGVtU2NyZWVuUmVhZGVyVGV4dCA/PyAnc2VsZWN0ZWQnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5saW5rRGlyZWN0aXZlcz8uc29tZSgoZCkgPT4gZC5uYXZpZ2F0ZWQpKSB7XG4gICAgICAgICAgICBjb250ZW50ICs9IHRoaXMuX2FkZFRleHRQYXJ0KGNvbnRlbnQsIHRoaXMubmF2aWdhdGVkTGlzdEl0ZW1TY3JlZW5SZWFkZXJUZXh0ID8/ICduYXZpZ2F0ZWQnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5saW5rRGlyZWN0aXZlcz8uc29tZSgoZCkgPT4gZC5uYXZpZ2F0aW9uSW5kaWNhdG9yKSkge1xuICAgICAgICAgICAgY29udGVudCArPSB0aGlzLl9hZGRUZXh0UGFydChjb250ZW50LCB0aGlzLm5hdmlnYXRhYmxlTGlzdEl0ZW1TY3JlZW5SZWFkZXJUZXh0ID8/ICduYXZpZ2F0YWJsZScpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb250ZW50LnN0YXJ0c1dpdGgoJywgJykpIHtcbiAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50LnN1YnN0cmluZygyKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNjcmVlblJlYWRlckNvbnRlbnQgPSBjb250ZW50O1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FkZFRleHRQYXJ0KGV4aXN0aW5nOiBzdHJpbmcsIHRvQWRkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gKGV4aXN0aW5nID8gJywgJyA6ICcnKSArIHRvQWRkO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJjaGVja2JveCB8fCByYWRpb1wiPlxuICAgIDxkaXYgZmQtZm9ybS1pdGVtIGNsYXNzPVwiZmQtbGlzdF9fZm9ybS1pdGVtXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImZkLWNoZWNrYm94XCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmZC1yYWRpby1idXR0b25cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG48c3BhbiAqbmdJZj1cImNvdW50ZXIgfHwgY291bnRlciA9PT0gMFwiIGNsYXNzPVwiZmQtbGlzdF9faXRlbS1jb3VudGVyXCI+XG4gICAge3sgY291bnRlciB8IG51bWJlcjogJzEuMC0yJyB9fVxuPC9zcGFuPlxuXG48c3BhblxuICAgIGNsYXNzPVwiZmQtc2NyZWVucmVhZGVyLW9ubHlcIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgW2lkXT1cIl91bmlxdWVJZCArICctc2NyZWVuUmVhZGVyLWNvbnRlbnQnXCJcbiAgICAqbmdJZj1cInNjcmVlblJlYWRlckNvbnRlbnRcIlxuPlxuICAgIHt7IHNjcmVlblJlYWRlckNvbnRlbnQgfX1cbjwvc3Bhbj5cbiJdfQ==
|
package/facets/package.json
CHANGED
package/feed-input/package.json
CHANGED
|
@@ -20,7 +20,8 @@ import { contentDensityObserverProviders, ContentDensityMode, DeprecatedCompactD
|
|
|
20
20
|
import { __decorate, __metadata } from 'tslib';
|
|
21
21
|
|
|
22
22
|
class ListLinkDirective {
|
|
23
|
-
constructor() {
|
|
23
|
+
constructor(elementRef) {
|
|
24
|
+
this.elementRef = elementRef;
|
|
24
25
|
/** Defines if navigation indicator arrow should be included inside list item */
|
|
25
26
|
this.navigationIndicator = false;
|
|
26
27
|
/** Defines if link should be treated as a navigated */
|
|
@@ -37,14 +38,14 @@ class ListLinkDirective {
|
|
|
37
38
|
}
|
|
38
39
|
}
|
|
39
40
|
}
|
|
40
|
-
ListLinkDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ListLinkDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
41
|
+
ListLinkDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ListLinkDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
41
42
|
ListLinkDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.2", type: ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: { navigationIndicator: "navigationIndicator", navigated: "navigated" }, host: { properties: { "class.fd-list__link--navigation-indicator": "this.navigationIndicator", "class.is-navigated": "this.navigated", "class.fd-list__link": "this.fdListLinkClass" } }, usesOnChanges: true, ngImport: i0 });
|
|
42
43
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ListLinkDirective, decorators: [{
|
|
43
44
|
type: Directive,
|
|
44
45
|
args: [{
|
|
45
46
|
selector: '[fd-list-link], [fdListLink]'
|
|
46
47
|
}]
|
|
47
|
-
}], propDecorators: { navigationIndicator: [{
|
|
48
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { navigationIndicator: [{
|
|
48
49
|
type: Input
|
|
49
50
|
}, {
|
|
50
51
|
type: HostBinding,
|
|
@@ -151,6 +152,8 @@ class ListItemComponent extends ListFocusItem {
|
|
|
151
152
|
/** @hidden */
|
|
152
153
|
this.screenReaderContent = '';
|
|
153
154
|
/** @hidden */
|
|
155
|
+
this._listItemRole = 'listitem';
|
|
156
|
+
/** @hidden */
|
|
154
157
|
this._uniqueId = 'fd-list-item-' + ++listItemUniqueId;
|
|
155
158
|
}
|
|
156
159
|
/** @hidden */
|
|
@@ -190,6 +193,9 @@ class ListItemComponent extends ListFocusItem {
|
|
|
190
193
|
ngAfterContentInit() {
|
|
191
194
|
this._listenOnLinkQueryChange();
|
|
192
195
|
this._listenOnButtonQueryChange();
|
|
196
|
+
if (this.linkDirectives && this.linkDirectives.length) {
|
|
197
|
+
this._listItemRole += ' button';
|
|
198
|
+
}
|
|
193
199
|
}
|
|
194
200
|
/** @hidden */
|
|
195
201
|
ngOnChanges(changes) {
|
|
@@ -221,9 +227,22 @@ class ListItemComponent extends ListFocusItem {
|
|
|
221
227
|
this._muteEvent(event);
|
|
222
228
|
return;
|
|
223
229
|
}
|
|
230
|
+
else if (this.link) {
|
|
231
|
+
this.linkDirectives.first.elementRef.nativeElement.classList.add('is-active');
|
|
232
|
+
this._muteEvent(event);
|
|
233
|
+
}
|
|
224
234
|
}
|
|
225
235
|
this.keyDown.emit(event);
|
|
226
236
|
}
|
|
237
|
+
/** @hidden */
|
|
238
|
+
keyupHandler(event) {
|
|
239
|
+
if (KeyUtil.isKeyCode(event, [ENTER, SPACE]) && this.link) {
|
|
240
|
+
const _anchorElement = this.linkDirectives.first.elementRef.nativeElement;
|
|
241
|
+
_anchorElement.classList.remove('is-active');
|
|
242
|
+
_anchorElement.click();
|
|
243
|
+
this._muteEvent(event);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
227
246
|
/** Handler for mouse events */
|
|
228
247
|
onClick(event) {
|
|
229
248
|
this._clicked$.next(event);
|
|
@@ -293,7 +312,7 @@ class ListItemComponent extends ListFocusItem {
|
|
|
293
312
|
}
|
|
294
313
|
}
|
|
295
314
|
ListItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: ListItemComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
296
|
-
ListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: { selected: "selected", ariaDescribedBy: "ariaDescribedBy", noData: "noData", action: "action", interactive: "interactive", growing: "growing", counter: "counter", unread: "unread", selectedListItemScreenReaderText: "selectedListItemScreenReaderText", navigatedListItemScreenReaderText: "navigatedListItemScreenReaderText", navigatableListItemScreenReaderText: "navigatableListItemScreenReaderText" }, outputs: { keyDown: "keyDown" }, host: {
|
|
315
|
+
ListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: { selected: "selected", ariaDescribedBy: "ariaDescribedBy", noData: "noData", action: "action", interactive: "interactive", growing: "growing", counter: "counter", unread: "unread", selectedListItemScreenReaderText: "selectedListItemScreenReaderText", navigatedListItemScreenReaderText: "navigatedListItemScreenReaderText", navigatableListItemScreenReaderText: "navigatableListItemScreenReaderText" }, outputs: { keyDown: "keyDown" }, host: { listeners: { "keydown": "keydownHandler($event)", "keyup": "keyupHandler($event)", "click": "onClick($event)" }, properties: { "attr.role": "_listItemRole", "attr.aria-selected": "this.selected", "class.is-selected": "this.selected", "class.fd-list__item--no-data": "this.noData", "class.fd-list__item--action": "this.action", "class.fd-list__item--interractive": "this.interactive", "class.fd-list__item--growing": "this.growing", "class.fd-list__item--unread": "this.unread", "class.fd-list__item--link": "this.link", "attr.aria-describedBy": "this.getCombinedAriaDescribedBy" }, classAttribute: "fd-list__item" }, providers: [
|
|
297
316
|
{
|
|
298
317
|
provide: LIST_ITEM_COMPONENT,
|
|
299
318
|
useExisting: forwardRef(() => ListItemComponent)
|
|
@@ -307,7 +326,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
307
326
|
type: Component,
|
|
308
327
|
args: [{ selector: '[fdListItem] ,[fd-list-item]', host: {
|
|
309
328
|
class: 'fd-list__item',
|
|
310
|
-
role: '
|
|
329
|
+
'[attr.role]': '_listItemRole'
|
|
311
330
|
}, providers: [
|
|
312
331
|
{
|
|
313
332
|
provide: LIST_ITEM_COMPONENT,
|
|
@@ -384,6 +403,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
384
403
|
}], keydownHandler: [{
|
|
385
404
|
type: HostListener,
|
|
386
405
|
args: ['keydown', ['$event']]
|
|
406
|
+
}], keyupHandler: [{
|
|
407
|
+
type: HostListener,
|
|
408
|
+
args: ['keyup', ['$event']]
|
|
387
409
|
}], onClick: [{
|
|
388
410
|
type: HostListener,
|
|
389
411
|
args: ['click', ['$event']]
|