@fundamental-ngx/core 0.36.0-rc.12 → 0.36.0-rc.13
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/esm2020/breadcrumb.component.mjs +1 -1
- package/breadcrumb/fesm2015/fundamental-ngx-core-breadcrumb.mjs +1 -1
- package/breadcrumb/fesm2015/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/breadcrumb/fesm2020/fundamental-ngx-core-breadcrumb.mjs +1 -1
- package/breadcrumb/fesm2020/fundamental-ngx-core-breadcrumb.mjs.map +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/breadcrumb/breadcrumb.component.mjs +1 -1
- package/esm2020/overflow-layout/directives/overflow-layout-focusable-item.directive.mjs +75 -0
- package/esm2020/overflow-layout/directives/overflow-layout-item.directive.mjs +4 -34
- package/esm2020/overflow-layout/directives/overflow-layout-popover-content.directive.mjs +31 -12
- package/esm2020/overflow-layout/index.mjs +3 -1
- package/esm2020/overflow-layout/interfaces/overflow-focusable-item.interface.mjs +2 -0
- package/esm2020/overflow-layout/interfaces/overflow-item.interface.mjs +1 -1
- package/esm2020/overflow-layout/overflow-layout.component.mjs +49 -45
- package/esm2020/overflow-layout/overflow-layout.module.mjs +12 -5
- package/esm2020/overflow-layout/overflow-layout.service.mjs +12 -7
- package/esm2020/overflow-layout/tokens/overflow-focusable-item.token.mjs +3 -0
- package/esm2020/tabs/public_api.mjs +1 -2
- package/esm2020/tabs/tab-item-expand/tab-item-expand.component.mjs +1 -1
- package/esm2020/tabs/tab-link/tab-link.directive.mjs +25 -7
- package/esm2020/tabs/tab-list.component.mjs +51 -148
- package/esm2020/tabs/tab-nav/tab-nav.component.mjs +52 -37
- package/esm2020/tabs/tab-panel/tab-panel.component.mjs +9 -10
- package/esm2020/tabs/tab-utils/tab-directives.mjs +22 -33
- package/esm2020/tabs/tab-utils/tab-info.class.mjs +5 -1
- package/esm2020/tabs/tabs.module.mjs +8 -4
- 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-breadcrumb.mjs +1 -1
- package/fesm2015/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-overflow-layout.mjs +165 -91
- package/fesm2015/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-tabs.mjs +255 -382
- package/fesm2015/fundamental-ngx-core-tabs.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-breadcrumb.mjs +1 -1
- package/fesm2020/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-overflow-layout.mjs +161 -87
- package/fesm2020/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-tabs.mjs +248 -378
- package/fesm2020/fundamental-ngx-core-tabs.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/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/directives/overflow-layout-focusable-item.directive.d.ts +28 -0
- package/overflow-layout/directives/overflow-layout-item.directive.d.ts +6 -11
- package/overflow-layout/directives/overflow-layout-popover-content.directive.d.ts +6 -2
- package/overflow-layout/esm2020/directives/overflow-layout-focusable-item.directive.mjs +75 -0
- package/overflow-layout/esm2020/directives/overflow-layout-item.directive.mjs +4 -34
- package/overflow-layout/esm2020/directives/overflow-layout-popover-content.directive.mjs +31 -12
- package/overflow-layout/esm2020/index.mjs +3 -1
- package/overflow-layout/esm2020/interfaces/overflow-focusable-item.interface.mjs +2 -0
- package/overflow-layout/esm2020/interfaces/overflow-item.interface.mjs +1 -1
- package/overflow-layout/esm2020/overflow-layout.component.mjs +49 -45
- package/overflow-layout/esm2020/overflow-layout.module.mjs +12 -5
- package/overflow-layout/esm2020/overflow-layout.service.mjs +12 -7
- package/overflow-layout/esm2020/tokens/overflow-focusable-item.token.mjs +3 -0
- package/overflow-layout/fesm2015/fundamental-ngx-core-overflow-layout.mjs +165 -91
- package/overflow-layout/fesm2015/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
- package/overflow-layout/fesm2020/fundamental-ngx-core-overflow-layout.mjs +161 -87
- package/overflow-layout/fesm2020/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
- package/overflow-layout/index.d.ts +2 -0
- package/overflow-layout/interfaces/overflow-focusable-item.interface.d.ts +9 -0
- package/overflow-layout/interfaces/overflow-item.interface.d.ts +6 -6
- package/overflow-layout/overflow-layout.component.d.ts +16 -14
- package/overflow-layout/overflow-layout.module.d.ts +6 -5
- package/overflow-layout/overflow-layout.service.d.ts +6 -4
- package/overflow-layout/package.json +4 -4
- package/overflow-layout/tokens/overflow-focusable-item.token.d.ts +3 -0
- 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/esm2020/public_api.mjs +1 -2
- package/tabs/esm2020/tab-item-expand/tab-item-expand.component.mjs +1 -1
- package/tabs/esm2020/tab-link/tab-link.directive.mjs +25 -7
- package/tabs/esm2020/tab-list.component.mjs +51 -148
- package/tabs/esm2020/tab-nav/tab-nav.component.mjs +52 -37
- package/tabs/esm2020/tab-panel/tab-panel.component.mjs +9 -10
- package/tabs/esm2020/tab-utils/tab-directives.mjs +22 -33
- package/tabs/esm2020/tab-utils/tab-info.class.mjs +5 -1
- package/tabs/esm2020/tabs.module.mjs +8 -4
- package/tabs/fesm2015/fundamental-ngx-core-tabs.mjs +255 -382
- package/tabs/fesm2015/fundamental-ngx-core-tabs.mjs.map +1 -1
- package/tabs/fesm2020/fundamental-ngx-core-tabs.mjs +248 -378
- package/tabs/fesm2020/fundamental-ngx-core-tabs.mjs.map +1 -1
- package/tabs/package.json +1 -1
- package/tabs/public_api.d.ts +0 -1
- package/tabs/tab-link/tab-link.directive.d.ts +10 -3
- package/tabs/tab-list.component.d.ts +18 -42
- package/tabs/tab-nav/tab-nav.component.d.ts +15 -10
- package/tabs/tab-panel/tab-panel.component.d.ts +5 -3
- package/tabs/tab-utils/tab-directives.d.ts +12 -12
- package/tabs/tab-utils/tab-info.class.d.ts +2 -0
- package/tabs/tabs.module.d.ts +2 -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/esm2020/tabs/tabs.service.mjs +0 -69
- package/tabs/esm2020/tabs.service.mjs +0 -69
- package/tabs/tabs.service.d.ts +0 -22
|
@@ -70,9 +70,7 @@ export class OverflowLayoutService {
|
|
|
70
70
|
/** @hidden */
|
|
71
71
|
_listenToChanges() {
|
|
72
72
|
this._subscription.add(this.config.items.changes.subscribe(() => {
|
|
73
|
-
|
|
74
|
-
this.fitVisibleItems();
|
|
75
|
-
});
|
|
73
|
+
this.fitVisibleItems();
|
|
76
74
|
}));
|
|
77
75
|
this._listenToSizeChanges(this._elRef.nativeElement, this.config.itemsWrapper);
|
|
78
76
|
}
|
|
@@ -86,12 +84,15 @@ export class OverflowLayoutService {
|
|
|
86
84
|
});
|
|
87
85
|
})));
|
|
88
86
|
}
|
|
89
|
-
/**
|
|
87
|
+
/**
|
|
88
|
+
* Calculates available space for items and hides items that are not fitting into the container.
|
|
89
|
+
*/
|
|
90
90
|
fitVisibleItems() {
|
|
91
91
|
this._listenToItemResize = false;
|
|
92
92
|
this._allItems = this.config.items.toArray();
|
|
93
93
|
let allItems = this.config.items.toArray();
|
|
94
94
|
let visibleContainerItems = this.config.visibleItems.toArray();
|
|
95
|
+
this._elRef.nativeElement.style.height = `${this._elRef.nativeElement.clientHeight}px`;
|
|
95
96
|
allItems.forEach((item, index) => {
|
|
96
97
|
// Softly hide previously completely hidden item in order to correctly calculate it's size.
|
|
97
98
|
item.softHidden = true;
|
|
@@ -121,6 +122,7 @@ export class OverflowLayoutService {
|
|
|
121
122
|
this.result.hiddenItems = this._hiddenItems;
|
|
122
123
|
this._emitResult();
|
|
123
124
|
this._listenToItemResize = true;
|
|
125
|
+
this._elRef.nativeElement.style.height = '';
|
|
124
126
|
return;
|
|
125
127
|
}
|
|
126
128
|
this.result.showMore = true;
|
|
@@ -140,6 +142,8 @@ export class OverflowLayoutService {
|
|
|
140
142
|
const elementSize = this._getElementWidth(container.elementRef.nativeElement);
|
|
141
143
|
layoutWidth -= elementSize;
|
|
142
144
|
});
|
|
145
|
+
const maxVisibleItems = this.config.maxVisibleItems -
|
|
146
|
+
forcedItemsIndexes.filter((index) => index >= this.config.maxVisibleItems).length;
|
|
143
147
|
if (layoutWidth < 0 && forcedItemsIndexes.length > 0) {
|
|
144
148
|
console.warn('There is no enough space to fit all forced visible items into the container. Please adjust their visibility accordingly.');
|
|
145
149
|
}
|
|
@@ -157,7 +161,7 @@ export class OverflowLayoutService {
|
|
|
157
161
|
const condition = (combinedWidth <= layoutWidth ||
|
|
158
162
|
(item === this.config.visibleItems.last &&
|
|
159
163
|
combinedWidth <= layoutWidth + showMoreContainerWidth)) &&
|
|
160
|
-
fittingElmCount <
|
|
164
|
+
fittingElmCount < maxVisibleItems;
|
|
161
165
|
if (condition) {
|
|
162
166
|
fittingElmsWidth += elementSize;
|
|
163
167
|
fittingElmCount++;
|
|
@@ -191,6 +195,7 @@ export class OverflowLayoutService {
|
|
|
191
195
|
this.result.showMore = this._hiddenItems.length > 0;
|
|
192
196
|
this.result.hiddenItems = this._hiddenItems;
|
|
193
197
|
this._emitResult();
|
|
198
|
+
this._elRef.nativeElement.style.height = '';
|
|
194
199
|
this._listenToItemResize = true;
|
|
195
200
|
}
|
|
196
201
|
/** @hidden */
|
|
@@ -203,7 +208,7 @@ export class OverflowLayoutService {
|
|
|
203
208
|
.withWrap()
|
|
204
209
|
.withHorizontalOrientation(this._dir)
|
|
205
210
|
.withVerticalOrientation()
|
|
206
|
-
.skipPredicate((item) => !item.
|
|
211
|
+
.skipPredicate((item) => !item.navigable || item.hidden);
|
|
207
212
|
}
|
|
208
213
|
/** @hidden Rtl change subscription */
|
|
209
214
|
_subscribeToRtl() {
|
|
@@ -240,4 +245,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
240
245
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.RtlService, decorators: [{
|
|
241
246
|
type: Optional
|
|
242
247
|
}] }]; } });
|
|
243
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3ctbGF5b3V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9vdmVyZmxvdy1sYXlvdXQvb3ZlcmZsb3ctbGF5b3V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFhLFFBQVEsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsZ0JBQWdCLEVBQWMsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBYyxJQUFJLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBa0IzRyxNQUFNLE9BQU8sNkJBQTZCO0lBQTFDO1FBQ0ksYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixVQUFLLEdBQXNCLEVBQUUsQ0FBQztRQUM5QixnQkFBVyxHQUFzQixFQUFFLENBQUM7UUFDcEMsaUJBQVksR0FBc0IsRUFBRSxDQUFDO0lBQ3pDLENBQUM7Q0FBQTtBQUdELE1BQU0sT0FBTyxxQkFBcUI7SUFvRDlCLGNBQWM7SUFDZCxZQUFvQixNQUErQixFQUFzQixXQUE4QjtRQUFuRixXQUFNLEdBQU4sTUFBTSxDQUF5QjtRQUFzQixnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUEvQ3ZHOztXQUVHO1FBQ0gsV0FBTSxHQUFHLElBQUksNkJBQTZCLEVBQUUsQ0FBQztRQUs3QyxjQUFjO1FBQ04sd0JBQW1CLEdBQUcsSUFBSSxDQUFDO1FBRW5DLGNBQWM7UUFDRyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFcEQsY0FBYztRQUNOLGNBQVMsR0FBc0IsRUFBRSxDQUFDO1FBRTFDLGNBQWM7UUFDTixpQkFBWSxHQUFzQixFQUFFLENB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LE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxnQkFBZ0IsQ0FBQyxPQUFvQjtRQUN6QyxNQUFNLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDM0QsTUFBTSxXQUFXLEdBQUcsWUFBWSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsVUFBVSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU5RyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEMsQ0FBQzs7a0hBclNRLHFCQUFxQjtzSEFBckIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVU7OzBCQXNEK0MsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzS2V5TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUsIE9uRGVzdHJveSwgT3B0aW9uYWwsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcmVzaXplT2JzZXJ2YWJsZSwgUnRsU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS91dGlscyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIE9ic2VydmFibGUsIHNraXAsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT3ZlcmZsb3dMYXlvdXRJdGVtQ29udGFpbmVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL292ZXJmbG93LWxheW91dC1pdGVtLWNvbnRhaW5lci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT3ZlcmZsb3dJdGVtUmVmIH0gZnJvbSAnLi9pbnRlcmZhY2VzL292ZXJmbG93LWl0ZW0tcmVmLmludGVyZmFjZSc7XG5pbXBvcnQgeyBPdmVyZmxvd0l0ZW0gfSBmcm9tICcuL2ludGVyZmFjZXMvb3ZlcmZsb3ctaXRlbS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE92ZXJmbG93TGF5b3V0Q29uZmlnIHtcbiAgICBpdGVtczogUXVlcnlMaXN0PE92ZXJmbG93SXRlbVJlZj47XG4gICAgZm9jdXNhYmxlSXRlbXM6IFF1ZXJ5TGlzdDxPdmVyZmxvd0l0ZW0+O1xuICAgIHZpc2libGVJdGVtczogUXVlcnlMaXN0PE92ZXJmbG93TGF5b3V0SXRlbUNvbnRhaW5lckRpcmVjdGl2ZT47XG4gICAgaXRlbXNXcmFwcGVyOiBIVE1MRWxlbWVudDtcbiAgICBzaG93TW9yZUNvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG4gICAgbGF5b3V0Q29udGFpbmVyRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gICAgbWF4VmlzaWJsZUl0ZW1zOiBudW1iZXI7XG4gICAgZGlyZWN0aW9uOiAnbGVmdCcgfCAncmlnaHQnO1xuICAgIGVuYWJsZUtleWJvYXJkTmF2aWdhdGlvbjogYm9vbGVhbjtcbiAgICByZXZlcnNlSGlkZGVuSXRlbXM6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBPdmVyZmxvd0xheW91dExpc3RlbmluZ1Jlc3VsdCB7XG4gICAgc2hvd01vcmUgPSBmYWxzZTtcbiAgICBpdGVtczogT3ZlcmZsb3dJdGVtUmVmW10gPSBbXTtcbiAgICBoaWRkZW5JdGVtczogT3ZlcmZsb3dJdGVtUmVmW10gPSBbXTtcbiAgICB2aXNpYmxlSXRlbXM6IE92ZXJmbG93SXRlbVJlZltdID0gW107XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPdmVyZmxvd0xheW91dFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIC8qKlxuICAgICAqIE92ZXJmbG93IExheW91dCBjb25maWcuXG4gICAgICovXG4gICAgY29uZmlnOiBPdmVyZmxvd0xheW91dENvbmZpZztcblxuICAgIC8qKlxuICAgICAqIE92ZXJmbG93IExheW91dCBjYWxjdWxhdGlvbiByZXN1bHQuXG4gICAgICovXG4gICAgcmVzdWx0ID0gbmV3IE92ZXJmbG93TGF5b3V0TGlzdGVuaW5nUmVzdWx0KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9rZXlib2FyZEV2ZW50c01hbmFnZXI6IEZvY3VzS2V5TWFuYWdlcjxPdmVyZmxvd0l0ZW0+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Ub0l0ZW1SZXNpemUgPSB0cnVlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FsbEl0ZW1zOiBPdmVyZmxvd0l0ZW1SZWZbXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9oaWRkZW5JdGVtczogT3ZlcmZsb3dJdGVtUmVmW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfb3ZlcmZsb3dJdGVtczogT3ZlcmZsb3dJdGVtW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGV0ZWN0Q2hhbmdlcyQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9yZXN1bHQkID0gbmV3IFN1YmplY3Q8T3ZlcmZsb3dMYXlvdXRMaXN0ZW5pbmdSZXN1bHQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RpcjogJ3J0bCcgfCAnbHRyJyA9ICdsdHInO1xuXG4gICAgLyoqXG4gICAgICogT2JzZXJ2YWJsZSB3aGljaCBlbWl0cyB3aGVuIGNoYW5nZXMgZGV0ZWN0aW9uIGlzIHJlcXVpcmVkLlxuICAgICAqL1xuICAgIGdldCBkZXRlY3RDaGFuZ2VzKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGV0ZWN0Q2hhbmdlcyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT2JzZXJ2YWJsZSB3aGljaCBlbWl0cyB3aGVuIG5ldyBjYWxjdWxhdGlvbiByZXN1bHQgaXMgYXZhaWxhYmxlLlxuICAgICAqL1xuICAgIGdldCBvblJlc3VsdCgpOiBPYnNlcnZhYmxlPE92ZXJmbG93TGF5b3V0TGlzdGVuaW5nUmVzdWx0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXN1bHQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBAT3B0aW9uYWwoKSBwcml2YXRlIF9ydGxTZXJ2aWNlOiBSdGxTZXJ2aWNlIHwgbnVsbCkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHN0YXJ0TGlzdGVuaW5nKGNvbmZpZzogT3ZlcmZsb3dMYXlvdXRDb25maWcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRDb25maWcoY29uZmlnKTtcbiAgICAgICAgdGhpcy5maXRWaXNpYmxlSXRlbXMoKTtcbiAgICAgICAgdGhpcy5fc2V0Rm9jdXNLZXlNYW5hZ2VyKCk7XG4gICAgICAgIHRoaXMuX2xpc3RlblRvQ2hhbmdlcygpO1xuICAgICAgICB0aGlzLl9zdWJzY3JpYmVUb1J0bCgpO1xuICAgIH1cblxuICAgIHNldENvbmZpZyhjb25maWc6IE92ZXJmbG93TGF5b3V0Q29uZmlnKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2VtaXRSZXN1bHQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Jlc3VsdCQubmV4dCh0aGlzLnJlc3VsdCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Ub0NoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgICAgICB0aGlzLmNvbmZpZy5pdGVtcy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZml0VmlzaWJsZUl0ZW1zKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuX2xpc3RlblRvU2l6ZUNoYW5nZXModGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5jb25maWcuaXRlbXNXcmFwcGVyKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3RlblRvU2l6ZUNoYW5nZXMoLi4uZWxlbWVudHM6IEhUTUxFbGVtZW50W10pOiB2b2lkIHtcbiAgICAgICAgZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT5cbiAgICAgICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgICAgICAgICAgcmVzaXplT2JzZXJ2YWJsZShlbGVtZW50KVxuICAgICAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHNraXAoMSksXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5fbGlzdGVuVG9JdGVtUmVzaXplKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoMzApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpdFZpc2libGVJdGVtcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBmaXRWaXNpYmxlSXRlbXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2xpc3RlblRvSXRlbVJlc2l6ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9hbGxJdGVtcyA9IHRoaXMuY29uZmlnLml0ZW1zLnRvQXJyYXkoKTtcblxuICAgICAgICBsZXQgYWxsSXRlbXMgPSB0aGlzLmNvbmZpZy5pdGVtcy50b0FycmF5KCk7XG4gICAgICAgIGxldCB2aXNpYmxlQ29udGFpbmVySXRlbXMgPSB0aGlzLmNvbmZpZy52aXNpYmxlSXRlbXMudG9BcnJheSgpO1xuXG4gICAgICAgIGFsbEl0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAvLyBTb2Z0bHkgaGlkZSBwcmV2aW91c2x5IGNvbXBsZXRlbHkgaGlkZGVuIGl0ZW0gaW4gb3JkZXIgdG8gY29ycmVjdGx5IGNhbGN1bGF0ZSBpdCdzIHNpemUuXG4gICAgICAgICAgICBpdGVtLnNvZnRIaWRkZW4gPSB0cnVlO1xuICAgICAgICAgICAgaXRlbS5oaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIGl0ZW0uaW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgIGl0ZW0uZmlyc3QgPSBpbmRleCA9PT0gMDtcbiAgICAgICAgICAgIGl0ZW0ubGFzdCA9IGluZGV4ID09PSBhbGxJdGVtcy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgaXRlbS5nbG9iYWxJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgdmlzaWJsZUNvbnRhaW5lckl0ZW1zW2luZGV4XS5jb250YWluZXJSZWYuaGlkZGVuID0gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2RldGVjdENoYW5nZXMkLm5leHQoKTtcblxuICAgICAgICBhbGxJdGVtcyA9IHRoaXMuY29uZmlnLmRpcmVjdGlvbiA9PT0gJ3JpZ2h0JyA/IGFsbEl0ZW1zIDogYWxsSXRlbXMucmV2ZXJzZSgpO1xuICAgICAgICB2aXNpYmxlQ29udGFpbmVySXRlbXMgPVxuICAgICAgICAgICAgdGhpcy5jb25maWcuZGlyZWN0aW9uID09PSAncmlnaHQnID8gdmlzaWJsZUNvbnRhaW5lckl0ZW1zIDogdmlzaWJsZUNvbnRhaW5lckl0ZW1zLnJldmVyc2UoKTtcblxuICAgICAgICB0aGlzLnJlc3VsdC5zaG93TW9yZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9lbWl0UmVzdWx0KCk7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICAgICAgY29uc3QgaXRlbXNDb250YWluZXJXaWR0aCA9IGFsbEl0ZW1zLnJlZHVjZShcbiAgICAgICAgICAgICh0b3RhbCwgaXRlbSkgPT4gdG90YWwgKyB0aGlzLl9nZXRFbGVtZW50V2lkdGgoaXRlbS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLFxuICAgICAgICAgICAgMFxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGNvbnRhaW5lcldpZHRoID49IGl0ZW1zQ29udGFpbmVyV2lkdGggJiZcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLnZpc2libGVJdGVtcy5sZW5ndGggPD0gdGhpcy5jb25maWcubWF4VmlzaWJsZUl0ZW1zICYmXG4gICAgICAgICAgICB0aGlzLl9oaWRkZW5JdGVtcy5sZW5ndGggPT09IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBNYWtlIGFsbCBpdGVtcyBmdWxseSB2aXNpYmxlLlxuICAgICAgICAgICAgYWxsSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIGl0ZW0uc29mdEhpZGRlbiA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnJlc3VsdC5zaG93TW9yZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5yZXN1bHQuaGlkZGVuSXRlbXMgPSB0aGlzLl9oaWRkZW5JdGVtcztcbiAgICAgICAgICAgIHRoaXMuX2VtaXRSZXN1bHQoKTtcbiAgICAgICAgICAgIHRoaXMuX2xpc3RlblRvSXRlbVJlc2l6ZSA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXN1bHQuc2hvd01vcmUgPSB0cnVlO1xuICAgICAgICB0aGlzLl9lbWl0UmVzdWx0KCk7XG4gICAgICAgIGxldCBmaXR0aW5nRWxtQ291bnQgPSAwO1xuICAgICAgICBsZXQgZml0dGluZ0VsbXNXaWR0aCA9IDA7XG4gICAgICAgIGxldCBzaG91bGRIaWRlSXRlbXMgPSBmYWxzZTtcblxuICAgICAgICBjb25zdCBzaG93TW9yZUNvbnRhaW5lcldpZHRoID0gTWF0aC5jZWlsKHRoaXMuX2dldEVsZW1lbnRXaWR0aCh0aGlzLmNvbmZpZy5zaG93TW9yZUNvbnRhaW5lcikpO1xuICAgICAgICBsZXQgbGF5b3V0V2lkdGggPSBjb250YWluZXJXaWR0aCAtIHNob3dNb3JlQ29udGFpbmVyV2lkdGg7XG5cbiAgICAgICAgLy8gVHJ5IHRvIGZpbmQgYWxsIGZvcmNlZCB2aXNpYmxlIGl0ZW1zXG4gICAgICAgIGNvbnN0IGZvcmNlZEl0ZW1zSW5kZXhlcyA9IHRoaXMuX2dldEZvcmNlZEl0ZW1zSW5kZXhlcygpO1xuXG4gICAgICAgIGZvcmNlZEl0ZW1zSW5kZXhlcy5mb3JFYWNoKChpdGVtSW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29uZmlnLnZpc2libGVJdGVtcy5nZXQoaXRlbUluZGV4KTtcbiAgICAgICAgICAgIGlmICghY29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFNpemUgPSB0aGlzLl9nZXRFbGVtZW50V2lkdGgoY29udGFpbmVyLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgICAgIGxheW91dFdpZHRoIC09IGVsZW1lbnRTaXplO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAobGF5b3V0V2lkdGggPCAwICYmIGZvcmNlZEl0ZW1zSW5kZXhlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgJ1RoZXJlIGlzIG5vIGVub3VnaCBzcGFjZSB0byBmaXQgYWxsIGZvcmNlZCB2aXNpYmxlIGl0ZW1zIGludG8gdGhlIGNvbnRhaW5lci4gUGxlYXNlIGFkanVzdCB0aGVpciB2aXNpYmlsaXR5IGFjY29yZGluZ2x5LidcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9kZXRlY3RDaGFuZ2VzJC5uZXh0KCk7XG5cbiAgICAgICAgdmlzaWJsZUNvbnRhaW5lckl0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpdGVtUmVmID0gYWxsSXRlbXNbaW5kZXhdO1xuICAgICAgICAgICAgaWYgKHNob3VsZEhpZGVJdGVtcyAmJiAhaXRlbVJlZi5vdmVyZmxvd0l0ZW0uZm9yY2VWaXNpYmlsaXR5KSB7XG4gICAgICAgICAgICAgICAgaXRlbS5jb250YWluZXJSZWYuaGlkZGVuID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpdGVtLnNvZnRIaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpdGVtUmVmLmhpZGRlbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50U2l6ZSA9IHRoaXMuX2dldEVsZW1lbnRXaWR0aChpdGVtLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICBjb25zdCBjb21iaW5lZFdpZHRoID0gZml0dGluZ0VsbXNXaWR0aCArIGVsZW1lbnRTaXplO1xuXG4gICAgICAgICAgICBjb25zdCBjb25kaXRpb24gPVxuICAgICAgICAgICAgICAgIChjb21iaW5lZFdpZHRoIDw9IGxheW91dFdpZHRoIHx8XG4gICAgICAgICAgICAgICAgICAgIChpdGVtID09PSB0aGlzLmNvbmZpZy52aXNpYmxlSXRlbXMubGFzdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgY29tYmluZWRXaWR0aCA8PSBsYXlvdXRXaWR0aCArIHNob3dNb3JlQ29udGFpbmVyV2lkdGgpKSAmJlxuICAgICAgICAgICAgICAgIGZpdHRpbmdFbG1Db3VudCA8IHRoaXMuY29uZmlnLm1heFZpc2libGVJdGVtcztcblxuICAgICAgICAgICAgaWYgKGNvbmRpdGlvbikge1xuICAgICAgICAgICAgICAgIGZpdHRpbmdFbG1zV2lkdGggKz0gZWxlbWVudFNpemU7XG4gICAgICAgICAgICAgICAgZml0dGluZ0VsbUNvdW50Kys7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFpdGVtUmVmLm92ZXJmbG93SXRlbS5mb3JjZVZpc2liaWxpdHkpIHtcbiAgICAgICAgICAgICAgICBzaG91bGRIaWRlSXRlbXMgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGl0ZW0uc29mdEhpZGRlbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGl0ZW0uY29udGFpbmVyUmVmLmhpZGRlbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgaXRlbVJlZi5oaWRkZW4gPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBSZXZlcnNlIG9yaWdpbmFsIG9yZGVyIGJhY2suXG4gICAgICAgIGFsbEl0ZW1zID0gdGhpcy5jb25maWcuZGlyZWN0aW9uID09PSAncmlnaHQnID8gYWxsSXRlbXMgOiBhbGxJdGVtcy5yZXZlcnNlKCk7XG5cbiAgICAgICAgYWxsSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgaXRlbS5zb2Z0SGlkZGVuID0gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGxldCBoaWRkZW5JdGVtcyA9IGFsbEl0ZW1zLmZpbHRlcigoaSkgPT4gaS5oaWRkZW4pO1xuICAgICAgICBoaWRkZW5JdGVtcyA9IHRoaXMuY29uZmlnLnJldmVyc2VIaWRkZW5JdGVtcyA/IGhpZGRlbkl0ZW1zLnJldmVyc2UoKSA6IGhpZGRlbkl0ZW1zO1xuICAgICAgICBjb25zdCB2aXNpYmxlSXRlbXMgPSBhbGxJdGVtcy5maWx0ZXIoKGkpID0+ICFpLmhpZGRlbik7XG5cbiAgICAgICAgdmlzaWJsZUl0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpdGVtLmluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICBpdGVtLmZpcnN0ID0gaW5kZXggPT09IDA7XG4gICAgICAgICAgICBpdGVtLmxhc3QgPSBpbmRleCA9PT0gdmlzaWJsZUl0ZW1zLmxlbmd0aCAtIDE7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2hpZGRlbkl0ZW1zID0gaGlkZGVuSXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgaXRlbS5maXJzdCA9IGluZGV4ID09PSAwO1xuICAgICAgICAgICAgaXRlbS5sYXN0ID0gaW5kZXggPT09IGhpZGRlbkl0ZW1zLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICBpdGVtLmluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5yZXN1bHQuc2hvd01vcmUgPSB0aGlzLl9oaWRkZW5JdGVtcy5sZW5ndGggPiAwO1xuICAgICAgICB0aGlzLnJlc3VsdC5oaWRkZW5JdGVtcyA9IHRoaXMuX2hpZGRlbkl0ZW1zO1xuICAgICAgICB0aGlzLl9lbWl0UmVzdWx0KCk7XG5cbiAgICAgICAgdGhpcy5fbGlzdGVuVG9JdGVtUmVzaXplID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldEZvY3VzS2V5TWFuYWdlcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbmZpZy5lbmFibGVLZXlib2FyZE5hdmlnYXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9kaXIgPSB0aGlzLl9ydGxTZXJ2aWNlPy5ydGwudmFsdWUgPyAncnRsJyA6ICdsdHInO1xuICAgICAgICB0aGlzLl9rZXlib2FyZEV2ZW50c01hbmFnZXIgPSBuZXcgRm9jdXNLZXlNYW5hZ2VyKHRoaXMuY29uZmlnLmZvY3VzYWJsZUl0ZW1zKVxuICAgICAgICAgICAgLndpdGhXcmFwKClcbiAgICAgICAgICAgIC53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKHRoaXMuX2RpcilcbiAgICAgICAgICAgIC53aXRoVmVydGljYWxPcmllbnRhdGlvbigpXG4gICAgICAgICAgICAuc2tpcFByZWRpY2F0ZSgoaXRlbSkgPT4gIWl0ZW0uZm9jdXNhYmxlIHx8IGl0ZW0uaGlkZGVuKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBSdGwgY2hhbmdlIHN1YnNjcmlwdGlvbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmliZVRvUnRsKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX3J0bFNlcnZpY2UgfHwgIXRoaXMuY29uZmlnLmVuYWJsZUtleWJvYXJkTmF2aWdhdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgICAgIHRoaXMuX3J0bFNlcnZpY2UucnRsLnN1YnNjcmliZSgoaXNSdGwpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kaXIgPSBpc1J0bCA/ICdydGwnIDogJ2x0cic7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9rZXlib2FyZEV2ZW50c01hbmFnZXIgPSB0aGlzLl9rZXlib2FyZEV2ZW50c01hbmFnZXIud2l0aEhvcml6b250YWxPcmllbnRhdGlvbih0aGlzLl9kaXIpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldEZvcmNlZEl0ZW1zSW5kZXhlcygpOiBudW1iZXJbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hbGxJdGVtc1xuICAgICAgICAgICAgLm1hcCgoaXRlbSwgaW5kZXgpID0+IChpdGVtLm92ZXJmbG93SXRlbS5mb3JjZVZpc2liaWxpdHkgPyBpbmRleCA6IC0xKSlcbiAgICAgICAgICAgIC5maWx0ZXIoKGkpID0+IGkgPiAtMSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFJldHVybnMgY29tYmluZWQgd2lkdGggb2YgdGhlIGVsZW1lbnQgaW5jbHVkaW5nIG1hcmdpbnMuXG4gICAgICogQHBhcmFtIGVsZW1lbnQgRWxlbWVudCB0byBjYWxjdWxhdGUgd2lkdGggb2YuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZ2V0RWxlbWVudFdpZHRoKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgZWxlbWVudFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbiAgICAgICAgY29uc3QgZWxlbWVudFdpZHRoID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICAgICAgY29uc3QgZWxlbWVudFNpemUgPSBlbGVtZW50V2lkdGggKyBwYXJzZUZsb2F0KGVsZW1lbnRTdHlsZS5tYXJnaW5MZWZ0KSArIHBhcnNlRmxvYXQoZWxlbWVudFN0eWxlLm1hcmdpblJpZ2h0KTtcblxuICAgICAgICByZXR1cm4gTWF0aC5jZWlsKGVsZW1lbnRTaXplKTtcbiAgICB9XG59XG4iXX0=
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3ctbGF5b3V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9vdmVyZmxvdy1sYXlvdXQvb3ZlcmZsb3ctbGF5b3V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFhLFFBQVEsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsZ0JBQWdCLEVBQWMsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBYyxJQUFJLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBbUIzRyxNQUFNLE9BQU8sNkJBQTZCO0lBQTFDO1FBQ0ksYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixVQUFLLEdBQXNCLEVBQUUsQ0FBQztRQUM5QixnQkFBVyxHQUFzQixFQUFFLENBQUM7UUFDcEMsaUJBQVksR0FBc0IsRUFBRSxDQUFDO0lBQ3pDLENBQUM7Q0FBQTtBQUdELE1BQU0sT0FBTyxxQkFBcUI7SUFvRDlCLGNBQWM7SUFDZCxZQUFvQixNQUErQixFQUFzQixXQUE4QjtRQUFuRixXQUFNLEdBQU4sTUFBTSxDQUF5QjtRQUFzQixnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUEvQ3ZHOztXQUVHO1FBQ0gsV0FBTSxHQUFHLElBQUksNkJBQTZCLEVBQUUsQ0FBQztRQUs3QyxjQUFjO1FBQ04sd0JBQW1CLEdBQUcsSUFBSSxDQUFDO1FBRW5DLGNBQWM7UUFDRyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFcEQsY0FBYztRQUNOLGNBQVMsR0FBc0IsRUFBRSxDQUFDO1FBRTFDLGNBQWM7UUFDTixpQkFBWSxHQUFzQixFQUFFLENB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LENBQUMsS0FBSyxDQUFDO1lBRWxDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25HLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRUQsY0FBYztJQUNOLHNCQUFzQjtRQUMxQixPQUFPLElBQUksQ0FBQyxTQUFTO2FBQ2hCLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN0RSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssZ0JBQWdCLENBQUMsT0FBb0I7UUFDekMsTUFBTSxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUMsS0FBSyxDQUFDO1FBQzNELE1BQU0sV0FBVyxHQUFHLFlBQVksR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFOUcsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7O2tIQTdTUSxxQkFBcUI7c0hBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVOzswQkFzRCtDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c0tleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIE9wdGlvbmFsLCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHJlc2l6ZU9ic2VydmFibGUsIFJ0bFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBPYnNlcnZhYmxlLCBza2lwLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE92ZXJmbG93TGF5b3V0SXRlbUNvbnRhaW5lckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9vdmVyZmxvdy1sYXlvdXQtaXRlbS1jb250YWluZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IE92ZXJmbG93TGF5b3V0Rm9jdXNhYmxlSXRlbSB9IGZyb20gJy4vaW50ZXJmYWNlcy9vdmVyZmxvdy1mb2N1c2FibGUtaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT3ZlcmZsb3dJdGVtUmVmIH0gZnJvbSAnLi9pbnRlcmZhY2VzL292ZXJmbG93LWl0ZW0tcmVmLmludGVyZmFjZSc7XG5pbXBvcnQgeyBPdmVyZmxvd0l0ZW0gfSBmcm9tICcuL2ludGVyZmFjZXMvb3ZlcmZsb3ctaXRlbS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE92ZXJmbG93TGF5b3V0Q29uZmlnIHtcbiAgICBpdGVtczogUXVlcnlMaXN0PE92ZXJmbG93SXRlbVJlZj47XG4gICAgZm9jdXNhYmxlSXRlbXM6IFF1ZXJ5TGlzdDxPdmVyZmxvd0xheW91dEZvY3VzYWJsZUl0ZW0+O1xuICAgIHZpc2libGVJdGVtczogUXVlcnlMaXN0PE92ZXJmbG93TGF5b3V0SXRlbUNvbnRhaW5lckRpcmVjdGl2ZT47XG4gICAgaXRlbXNXcmFwcGVyOiBIVE1MRWxlbWVudDtcbiAgICBzaG93TW9yZUNvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG4gICAgbGF5b3V0Q29udGFpbmVyRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gICAgbWF4VmlzaWJsZUl0ZW1zOiBudW1iZXI7XG4gICAgZGlyZWN0aW9uOiAnbGVmdCcgfCAncmlnaHQnO1xuICAgIGVuYWJsZUtleWJvYXJkTmF2aWdhdGlvbjogYm9vbGVhbjtcbiAgICByZXZlcnNlSGlkZGVuSXRlbXM6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBPdmVyZmxvd0xheW91dExpc3RlbmluZ1Jlc3VsdCB7XG4gICAgc2hvd01vcmUgPSBmYWxzZTtcbiAgICBpdGVtczogT3ZlcmZsb3dJdGVtUmVmW10gPSBbXTtcbiAgICBoaWRkZW5JdGVtczogT3ZlcmZsb3dJdGVtUmVmW10gPSBbXTtcbiAgICB2aXNpYmxlSXRlbXM6IE92ZXJmbG93SXRlbVJlZltdID0gW107XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPdmVyZmxvd0xheW91dFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIC8qKlxuICAgICAqIE92ZXJmbG93IExheW91dCBjb25maWcuXG4gICAgICovXG4gICAgY29uZmlnOiBPdmVyZmxvd0xheW91dENvbmZpZztcblxuICAgIC8qKlxuICAgICAqIE92ZXJmbG93IExheW91dCBjYWxjdWxhdGlvbiByZXN1bHQuXG4gICAgICovXG4gICAgcmVzdWx0ID0gbmV3IE92ZXJmbG93TGF5b3V0TGlzdGVuaW5nUmVzdWx0KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9rZXlib2FyZEV2ZW50c01hbmFnZXI6IEZvY3VzS2V5TWFuYWdlcjxPdmVyZmxvd0xheW91dEZvY3VzYWJsZUl0ZW0+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Ub0l0ZW1SZXNpemUgPSB0cnVlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FsbEl0ZW1zOiBPdmVyZmxvd0l0ZW1SZWZbXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9oaWRkZW5JdGVtczogT3ZlcmZsb3dJdGVtUmVmW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfb3ZlcmZsb3dJdGVtczogT3ZlcmZsb3dJdGVtW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGV0ZWN0Q2hhbmdlcyQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9yZXN1bHQkID0gbmV3IFN1YmplY3Q8T3ZlcmZsb3dMYXlvdXRMaXN0ZW5pbmdSZXN1bHQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RpcjogJ3J0bCcgfCAnbHRyJyA9ICdsdHInO1xuXG4gICAgLyoqXG4gICAgICogT2JzZXJ2YWJsZSB3aGljaCBlbWl0cyB3aGVuIGNoYW5nZXMgZGV0ZWN0aW9uIGlzIHJlcXVpcmVkLlxuICAgICAqL1xuICAgIGdldCBkZXRlY3RDaGFuZ2VzKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGV0ZWN0Q2hhbmdlcyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT2JzZXJ2YWJsZSB3aGljaCBlbWl0cyB3aGVuIG5ldyBjYWxjdWxhdGlvbiByZXN1bHQgaXMgYXZhaWxhYmxlLlxuICAgICAqL1xuICAgIGdldCBvblJlc3VsdCgpOiBPYnNlcnZhYmxlPE92ZXJmbG93TGF5b3V0TGlzdGVuaW5nUmVzdWx0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXN1bHQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBAT3B0aW9uYWwoKSBwcml2YXRlIF9ydGxTZXJ2aWNlOiBSdGxTZXJ2aWNlIHwgbnVsbCkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHN0YXJ0TGlzdGVuaW5nKGNvbmZpZzogT3ZlcmZsb3dMYXlvdXRDb25maWcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRDb25maWcoY29uZmlnKTtcbiAgICAgICAgdGhpcy5maXRWaXNpYmxlSXRlbXMoKTtcbiAgICAgICAgdGhpcy5fc2V0Rm9jdXNLZXlNYW5hZ2VyKCk7XG4gICAgICAgIHRoaXMuX2xpc3RlblRvQ2hhbmdlcygpO1xuICAgICAgICB0aGlzLl9zdWJzY3JpYmVUb1J0bCgpO1xuICAgIH1cblxuICAgIHNldENvbmZpZyhjb25maWc6IE92ZXJmbG93TGF5b3V0Q29uZmlnKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2VtaXRSZXN1bHQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Jlc3VsdCQubmV4dCh0aGlzLnJlc3VsdCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Ub0NoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgICAgICB0aGlzLmNvbmZpZy5pdGVtcy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5maXRWaXNpYmxlSXRlbXMoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5fbGlzdGVuVG9TaXplQ2hhbmdlcyh0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmNvbmZpZy5pdGVtc1dyYXBwZXIpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuVG9TaXplQ2hhbmdlcyguLi5lbGVtZW50czogSFRNTEVsZW1lbnRbXSk6IHZvaWQge1xuICAgICAgICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PlxuICAgICAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgICAgICAgICByZXNpemVPYnNlcnZhYmxlKGVsZW1lbnQpXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgc2tpcCgxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLl9saXN0ZW5Ub0l0ZW1SZXNpemUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSgzMClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZml0VmlzaWJsZUl0ZW1zKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIGF2YWlsYWJsZSBzcGFjZSBmb3IgaXRlbXMgYW5kIGhpZGVzIGl0ZW1zIHRoYXQgYXJlIG5vdCBmaXR0aW5nIGludG8gdGhlIGNvbnRhaW5lci5cbiAgICAgKi9cbiAgICBmaXRWaXNpYmxlSXRlbXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2xpc3RlblRvSXRlbVJlc2l6ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9hbGxJdGVtcyA9IHRoaXMuY29uZmlnLml0ZW1zLnRvQXJyYXkoKTtcblxuICAgICAgICBsZXQgYWxsSXRlbXMgPSB0aGlzLmNvbmZpZy5pdGVtcy50b0FycmF5KCk7XG4gICAgICAgIGxldCB2aXNpYmxlQ29udGFpbmVySXRlbXMgPSB0aGlzLmNvbmZpZy52aXNpYmxlSXRlbXMudG9BcnJheSgpO1xuXG4gICAgICAgIHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gYCR7dGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHR9cHhgO1xuXG4gICAgICAgIGFsbEl0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAvLyBTb2Z0bHkgaGlkZSBwcmV2aW91c2x5IGNvbXBsZXRlbHkgaGlkZGVuIGl0ZW0gaW4gb3JkZXIgdG8gY29ycmVjdGx5IGNhbGN1bGF0ZSBpdCdzIHNpemUuXG4gICAgICAgICAgICBpdGVtLnNvZnRIaWRkZW4gPSB0cnVlO1xuICAgICAgICAgICAgaXRlbS5oaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIGl0ZW0uaW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgIGl0ZW0uZmlyc3QgPSBpbmRleCA9PT0gMDtcbiAgICAgICAgICAgIGl0ZW0ubGFzdCA9IGluZGV4ID09PSBhbGxJdGVtcy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgaXRlbS5nbG9iYWxJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgdmlzaWJsZUNvbnRhaW5lckl0ZW1zW2luZGV4XS5jb250YWluZXJSZWYuaGlkZGVuID0gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2RldGVjdENoYW5nZXMkLm5leHQoKTtcblxuICAgICAgICBhbGxJdGVtcyA9IHRoaXMuY29uZmlnLmRpcmVjdGlvbiA9PT0gJ3JpZ2h0JyA/IGFsbEl0ZW1zIDogYWxsSXRlbXMucmV2ZXJzZSgpO1xuICAgICAgICB2aXNpYmxlQ29udGFpbmVySXRlbXMgPVxuICAgICAgICAgICAgdGhpcy5jb25maWcuZGlyZWN0aW9uID09PSAncmlnaHQnID8gdmlzaWJsZUNvbnRhaW5lckl0ZW1zIDogdmlzaWJsZUNvbnRhaW5lckl0ZW1zLnJldmVyc2UoKTtcblxuICAgICAgICB0aGlzLnJlc3VsdC5zaG93TW9yZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9lbWl0UmVzdWx0KCk7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICAgICAgY29uc3QgaXRlbXNDb250YWluZXJXaWR0aCA9IGFsbEl0ZW1zLnJlZHVjZShcbiAgICAgICAgICAgICh0b3RhbCwgaXRlbSkgPT4gdG90YWwgKyB0aGlzLl9nZXRFbGVtZW50V2lkdGgoaXRlbS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLFxuICAgICAgICAgICAgMFxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGNvbnRhaW5lcldpZHRoID49IGl0ZW1zQ29udGFpbmVyV2lkdGggJiZcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLnZpc2libGVJdGVtcy5sZW5ndGggPD0gdGhpcy5jb25maWcubWF4VmlzaWJsZUl0ZW1zICYmXG4gICAgICAgICAgICB0aGlzLl9oaWRkZW5JdGVtcy5sZW5ndGggPT09IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBNYWtlIGFsbCBpdGVtcyBmdWxseSB2aXNpYmxlLlxuICAgICAgICAgICAgYWxsSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIGl0ZW0uc29mdEhpZGRlbiA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnJlc3VsdC5zaG93TW9yZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5yZXN1bHQuaGlkZGVuSXRlbXMgPSB0aGlzLl9oaWRkZW5JdGVtcztcbiAgICAgICAgICAgIHRoaXMuX2VtaXRSZXN1bHQoKTtcbiAgICAgICAgICAgIHRoaXMuX2xpc3RlblRvSXRlbVJlc2l6ZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmhlaWdodCA9ICcnO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzdWx0LnNob3dNb3JlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fZW1pdFJlc3VsdCgpO1xuICAgICAgICBsZXQgZml0dGluZ0VsbUNvdW50ID0gMDtcbiAgICAgICAgbGV0IGZpdHRpbmdFbG1zV2lkdGggPSAwO1xuICAgICAgICBsZXQgc2hvdWxkSGlkZUl0ZW1zID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3Qgc2hvd01vcmVDb250YWluZXJXaWR0aCA9IE1hdGguY2VpbCh0aGlzLl9nZXRFbGVtZW50V2lkdGgodGhpcy5jb25maWcuc2hvd01vcmVDb250YWluZXIpKTtcbiAgICAgICAgbGV0IGxheW91dFdpZHRoID0gY29udGFpbmVyV2lkdGggLSBzaG93TW9yZUNvbnRhaW5lcldpZHRoO1xuXG4gICAgICAgIC8vIFRyeSB0byBmaW5kIGFsbCBmb3JjZWQgdmlzaWJsZSBpdGVtc1xuICAgICAgICBjb25zdCBmb3JjZWRJdGVtc0luZGV4ZXMgPSB0aGlzLl9nZXRGb3JjZWRJdGVtc0luZGV4ZXMoKTtcblxuICAgICAgICBmb3JjZWRJdGVtc0luZGV4ZXMuZm9yRWFjaCgoaXRlbUluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbmZpZy52aXNpYmxlSXRlbXMuZ2V0KGl0ZW1JbmRleCk7XG4gICAgICAgICAgICBpZiAoIWNvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRTaXplID0gdGhpcy5fZ2V0RWxlbWVudFdpZHRoKGNvbnRhaW5lci5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgICAgICAgICBsYXlvdXRXaWR0aCAtPSBlbGVtZW50U2l6ZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgbWF4VmlzaWJsZUl0ZW1zID1cbiAgICAgICAgICAgIHRoaXMuY29uZmlnLm1heFZpc2libGVJdGVtcyAtXG4gICAgICAgICAgICBmb3JjZWRJdGVtc0luZGV4ZXMuZmlsdGVyKChpbmRleCkgPT4gaW5kZXggPj0gdGhpcy5jb25maWcubWF4VmlzaWJsZUl0ZW1zKS5sZW5ndGg7XG5cbiAgICAgICAgaWYgKGxheW91dFdpZHRoIDwgMCAmJiBmb3JjZWRJdGVtc0luZGV4ZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgICdUaGVyZSBpcyBubyBlbm91Z2ggc3BhY2UgdG8gZml0IGFsbCBmb3JjZWQgdmlzaWJsZSBpdGVtcyBpbnRvIHRoZSBjb250YWluZXIuIFBsZWFzZSBhZGp1c3QgdGhlaXIgdmlzaWJpbGl0eSBhY2NvcmRpbmdseS4nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZGV0ZWN0Q2hhbmdlcyQubmV4dCgpO1xuXG4gICAgICAgIHZpc2libGVDb250YWluZXJJdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXRlbVJlZiA9IGFsbEl0ZW1zW2luZGV4XTtcbiAgICAgICAgICAgIGlmIChzaG91bGRIaWRlSXRlbXMgJiYgIWl0ZW1SZWYub3ZlcmZsb3dJdGVtLmZvcmNlVmlzaWJpbGl0eSkge1xuICAgICAgICAgICAgICAgIGl0ZW0uY29udGFpbmVyUmVmLmhpZGRlbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgaXRlbS5zb2Z0SGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaXRlbVJlZi5oaWRkZW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFNpemUgPSB0aGlzLl9nZXRFbGVtZW50V2lkdGgoaXRlbS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgY29uc3QgY29tYmluZWRXaWR0aCA9IGZpdHRpbmdFbG1zV2lkdGggKyBlbGVtZW50U2l6ZTtcblxuICAgICAgICAgICAgY29uc3QgY29uZGl0aW9uID1cbiAgICAgICAgICAgICAgICAoY29tYmluZWRXaWR0aCA8PSBsYXlvdXRXaWR0aCB8fFxuICAgICAgICAgICAgICAgICAgICAoaXRlbSA9PT0gdGhpcy5jb25maWcudmlzaWJsZUl0ZW1zLmxhc3QgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbWJpbmVkV2lkdGggPD0gbGF5b3V0V2lkdGggKyBzaG93TW9yZUNvbnRhaW5lcldpZHRoKSkgJiZcbiAgICAgICAgICAgICAgICBmaXR0aW5nRWxtQ291bnQgPCBtYXhWaXNpYmxlSXRlbXM7XG5cbiAgICAgICAgICAgIGlmIChjb25kaXRpb24pIHtcbiAgICAgICAgICAgICAgICBmaXR0aW5nRWxtc1dpZHRoICs9IGVsZW1lbnRTaXplO1xuICAgICAgICAgICAgICAgIGZpdHRpbmdFbG1Db3VudCsrO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghaXRlbVJlZi5vdmVyZmxvd0l0ZW0uZm9yY2VWaXNpYmlsaXR5KSB7XG4gICAgICAgICAgICAgICAgc2hvdWxkSGlkZUl0ZW1zID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpdGVtLnNvZnRIaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpdGVtLmNvbnRhaW5lclJlZi5oaWRkZW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgIGl0ZW1SZWYuaGlkZGVuID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gUmV2ZXJzZSBvcmlnaW5hbCBvcmRlciBiYWNrLlxuICAgICAgICBhbGxJdGVtcyA9IHRoaXMuY29uZmlnLmRpcmVjdGlvbiA9PT0gJ3JpZ2h0JyA/IGFsbEl0ZW1zIDogYWxsSXRlbXMucmV2ZXJzZSgpO1xuXG4gICAgICAgIGFsbEl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGl0ZW0uc29mdEhpZGRlbiA9IGZhbHNlO1xuICAgICAgICB9KTtcblxuICAgICAgICBsZXQgaGlkZGVuSXRlbXMgPSBhbGxJdGVtcy5maWx0ZXIoKGkpID0+IGkuaGlkZGVuKTtcbiAgICAgICAgaGlkZGVuSXRlbXMgPSB0aGlzLmNvbmZpZy5yZXZlcnNlSGlkZGVuSXRlbXMgPyBoaWRkZW5JdGVtcy5yZXZlcnNlKCkgOiBoaWRkZW5JdGVtcztcbiAgICAgICAgY29uc3QgdmlzaWJsZUl0ZW1zID0gYWxsSXRlbXMuZmlsdGVyKChpKSA9PiAhaS5oaWRkZW4pO1xuXG4gICAgICAgIHZpc2libGVJdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgaXRlbS5pbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgaXRlbS5maXJzdCA9IGluZGV4ID09PSAwO1xuICAgICAgICAgICAgaXRlbS5sYXN0ID0gaW5kZXggPT09IHZpc2libGVJdGVtcy5sZW5ndGggLSAxO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9oaWRkZW5JdGVtcyA9IGhpZGRlbkl0ZW1zLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGl0ZW0uZmlyc3QgPSBpbmRleCA9PT0gMDtcbiAgICAgICAgICAgIGl0ZW0ubGFzdCA9IGluZGV4ID09PSBoaWRkZW5JdGVtcy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgaXRlbS5pbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMucmVzdWx0LnNob3dNb3JlID0gdGhpcy5faGlkZGVuSXRlbXMubGVuZ3RoID4gMDtcbiAgICAgICAgdGhpcy5yZXN1bHQuaGlkZGVuSXRlbXMgPSB0aGlzLl9oaWRkZW5JdGVtcztcbiAgICAgICAgdGhpcy5fZW1pdFJlc3VsdCgpO1xuICAgICAgICB0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmhlaWdodCA9ICcnO1xuXG4gICAgICAgIHRoaXMuX2xpc3RlblRvSXRlbVJlc2l6ZSA9IHRydWU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXRGb2N1c0tleU1hbmFnZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5jb25maWcuZW5hYmxlS2V5Ym9hcmROYXZpZ2F0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZGlyID0gdGhpcy5fcnRsU2VydmljZT8ucnRsLnZhbHVlID8gJ3J0bCcgOiAnbHRyJztcbiAgICAgICAgdGhpcy5fa2V5Ym9hcmRFdmVudHNNYW5hZ2VyID0gbmV3IEZvY3VzS2V5TWFuYWdlcih0aGlzLmNvbmZpZy5mb2N1c2FibGVJdGVtcylcbiAgICAgICAgICAgIC53aXRoV3JhcCgpXG4gICAgICAgICAgICAud2l0aEhvcml6b250YWxPcmllbnRhdGlvbih0aGlzLl9kaXIpXG4gICAgICAgICAgICAud2l0aFZlcnRpY2FsT3JpZW50YXRpb24oKVxuICAgICAgICAgICAgLnNraXBQcmVkaWNhdGUoKGl0ZW0pID0+ICFpdGVtLm5hdmlnYWJsZSB8fCBpdGVtLmhpZGRlbik7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gUnRsIGNoYW5nZSBzdWJzY3JpcHRpb24gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpYmVUb1J0bCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9ydGxTZXJ2aWNlIHx8ICF0aGlzLmNvbmZpZy5lbmFibGVLZXlib2FyZE5hdmlnYXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgICAgICB0aGlzLl9ydGxTZXJ2aWNlLnJ0bC5zdWJzY3JpYmUoKGlzUnRsKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGlyID0gaXNSdGwgPyAncnRsJyA6ICdsdHInO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fa2V5Ym9hcmRFdmVudHNNYW5hZ2VyID0gdGhpcy5fa2V5Ym9hcmRFdmVudHNNYW5hZ2VyLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24odGhpcy5fZGlyKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRGb3JjZWRJdGVtc0luZGV4ZXMoKTogbnVtYmVyW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWxsSXRlbXNcbiAgICAgICAgICAgIC5tYXAoKGl0ZW0sIGluZGV4KSA9PiAoaXRlbS5vdmVyZmxvd0l0ZW0uZm9yY2VWaXNpYmlsaXR5ID8gaW5kZXggOiAtMSkpXG4gICAgICAgICAgICAuZmlsdGVyKChpKSA9PiBpID4gLTEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBSZXR1cm5zIGNvbWJpbmVkIHdpZHRoIG9mIHRoZSBlbGVtZW50IGluY2x1ZGluZyBtYXJnaW5zLlxuICAgICAqIEBwYXJhbSBlbGVtZW50IEVsZW1lbnQgdG8gY2FsY3VsYXRlIHdpZHRoIG9mLlxuICAgICAqL1xuICAgIHByaXZhdGUgX2dldEVsZW1lbnRXaWR0aChlbGVtZW50OiBIVE1MRWxlbWVudCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRXaWR0aCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRTaXplID0gZWxlbWVudFdpZHRoICsgcGFyc2VGbG9hdChlbGVtZW50U3R5bGUubWFyZ2luTGVmdCkgKyBwYXJzZUZsb2F0KGVsZW1lbnRTdHlsZS5tYXJnaW5SaWdodCk7XG5cbiAgICAgICAgcmV0dXJuIE1hdGguY2VpbChlbGVtZW50U2l6ZSk7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export const FD_OVERFLOW_FOCUSABLE_ITEM = new InjectionToken('FdOverflowLayoutFocusableItem');
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3ctZm9jdXNhYmxlLWl0ZW0udG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9vdmVyZmxvdy1sYXlvdXQvdG9rZW5zL292ZXJmbG93LWZvY3VzYWJsZS1pdGVtLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxjQUFjLENBQ3hELCtCQUErQixDQUNsQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE92ZXJmbG93TGF5b3V0Rm9jdXNhYmxlSXRlbSB9IGZyb20gJy4uL2ludGVyZmFjZXMvb3ZlcmZsb3ctZm9jdXNhYmxlLWl0ZW0uaW50ZXJmYWNlJztcblxuZXhwb3J0IGNvbnN0IEZEX09WRVJGTE9XX0ZPQ1VTQUJMRV9JVEVNID0gbmV3IEluamVjdGlvblRva2VuPE92ZXJmbG93TGF5b3V0Rm9jdXNhYmxlSXRlbT4oXG4gICAgJ0ZkT3ZlcmZsb3dMYXlvdXRGb2N1c2FibGVJdGVtJ1xuKTtcbiJdfQ==
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export * from './tabs.module';
|
|
2
|
-
export * from './tabs.service';
|
|
3
2
|
export * from './tab-list.component';
|
|
4
3
|
export * from './tab-panel/tab-panel.component';
|
|
5
4
|
export * from './tab-item/tab-item.directive';
|
|
@@ -8,4 +7,4 @@ export * from './tab-nav/tab-nav.component';
|
|
|
8
7
|
export * from './tab-utils/tab-directives';
|
|
9
8
|
export * from './tab-item-expand/tab-item-expand.component';
|
|
10
9
|
export * from './deprecated-tabs-compact.directive';
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3RhYnMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMscUNBQXFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3RhYnMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vdGFiLWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGFiLXBhbmVsL3RhYi1wYW5lbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90YWItaXRlbS90YWItaXRlbS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi90YWItbGluay90YWItbGluay5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi90YWItbmF2L3RhYi1uYXYuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGFiLXV0aWxzL3RhYi1kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vdGFiLWl0ZW0tZXhwYW5kL3RhYi1pdGVtLWV4cGFuZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kZXByZWNhdGVkLXRhYnMtY29tcGFjdC5kaXJlY3RpdmUnO1xuIl19
|
|
@@ -10,7 +10,7 @@ import * as i4 from "@fundamental-ngx/i18n";
|
|
|
10
10
|
export class TabItemExpandComponent {
|
|
11
11
|
}
|
|
12
12
|
TabItemExpandComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: TabItemExpandComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13
|
-
TabItemExpandComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: TabItemExpandComponent, selector: "fd-item-expand", inputs: { label: "label" }, host: { attributes: { "role": "tab" }, classAttribute: "fd-tabs__item fd-tabs__item--overflow" }, ngImport: i0, template: "<a class=\"fd-tabs__link\" role=\"tab\" [attr.tabindex]=\"0\">\n <span *ngIf=\"label || ('coreTabs.tabListExpandButtonText' | fdTranslate) as expandButtonText\" fd-tab-tag>{{\n expandButtonText\n }}</span>\n <fd-icon glyph=\"slim-arrow-down\" aria-label=\"See More\"></fd-icon>\n</a>\n", styles: [".fd-tabs__item--overflow{margin-left:auto;margin-right:0}[dir=rtl] .fd-tabs__item--overflow,.fd-tabs__item--overflow[dir=rtl]{margin-left:0;margin-right:auto}.fd-tabs__item--overflow fd-icon:not(:only-child){margin-left:.5rem}[dir=rtl] .fd-tabs__item--overflow fd-icon:not(:only-child),.fd-tabs__item--overflow fd-icon:not(:only-child)[dir=rtl]{margin-left:0;margin-right:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "directive", type: i3.TabTagDirective, selector: "[fd-tab-tag]" }, { kind: "pipe", type: i4.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
13
|
+
TabItemExpandComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: TabItemExpandComponent, selector: "fd-item-expand", inputs: { label: "label" }, host: { attributes: { "role": "tab" }, classAttribute: "fd-tabs__item fd-tabs__item--overflow" }, ngImport: i0, template: "<a class=\"fd-tabs__link\" role=\"tab\" [attr.tabindex]=\"0\">\n <span *ngIf=\"label || ('coreTabs.tabListExpandButtonText' | fdTranslate) as expandButtonText\" fd-tab-tag>{{\n expandButtonText\n }}</span>\n <fd-icon glyph=\"slim-arrow-down\" aria-label=\"See More\"></fd-icon>\n</a>\n", styles: [".fd-tabs__item--overflow{margin-left:auto;margin-right:0}[dir=rtl] .fd-tabs__item--overflow,.fd-tabs__item--overflow[dir=rtl]{margin-left:0;margin-right:auto}.fd-tabs__item--overflow fd-icon:not(:only-child){margin-left:.5rem}[dir=rtl] .fd-tabs__item--overflow fd-icon:not(:only-child),.fd-tabs__item--overflow fd-icon:not(:only-child)[dir=rtl]{margin-left:0;margin-right:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "directive", type: i3.TabTagDirective, selector: "[fdTabTag], [fd-tab-tag]" }, { kind: "pipe", type: i4.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
14
14
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: TabItemExpandComponent, decorators: [{
|
|
15
15
|
type: Component,
|
|
16
16
|
args: [{ selector: 'fd-item-expand', host: {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { ENTER, SPACE } from '@angular/cdk/keycodes';
|
|
1
2
|
import { Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output } from '@angular/core';
|
|
2
|
-
import { AbstractFdNgxClass } from '@fundamental-ngx/core/utils';
|
|
3
|
+
import { AbstractFdNgxClass, KeyUtil } from '@fundamental-ngx/core/utils';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
/**
|
|
5
6
|
* Tab link for nav mode
|
|
@@ -17,6 +18,8 @@ export class TabLinkDirective extends AbstractFdNgxClass {
|
|
|
17
18
|
this.elementRef = elementRef;
|
|
18
19
|
/** Event Emitted always when, any keyboard event is dispatched on this element */
|
|
19
20
|
this.keyDown = new EventEmitter();
|
|
21
|
+
/** Event Emitted when item has been focused. */
|
|
22
|
+
this.focused = new EventEmitter();
|
|
20
23
|
}
|
|
21
24
|
/** @hidden */
|
|
22
25
|
_setProperties() {
|
|
@@ -26,12 +29,22 @@ export class TabLinkDirective extends AbstractFdNgxClass {
|
|
|
26
29
|
}
|
|
27
30
|
}
|
|
28
31
|
/** @hidden */
|
|
29
|
-
|
|
30
|
-
this.
|
|
32
|
+
_onFocus() {
|
|
33
|
+
this.focused.emit();
|
|
34
|
+
}
|
|
35
|
+
/** @hidden */
|
|
36
|
+
_onKeyUp(event) {
|
|
37
|
+
if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {
|
|
38
|
+
this.focused.emit();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/** @hidden */
|
|
42
|
+
focus() {
|
|
43
|
+
this.elementRef.nativeElement.focus();
|
|
31
44
|
}
|
|
32
45
|
}
|
|
33
46
|
TabLinkDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: TabLinkDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
34
|
-
TabLinkDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.2", type: TabLinkDirective, selector: "[fd-tab-link]", inputs: { active: "active", disabled: "disabled" }, outputs: { keyDown: "keyDown" }, host: { attributes: { "role": "tab", "tabindex": "-1" }, listeners: { "
|
|
47
|
+
TabLinkDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.2", type: TabLinkDirective, selector: "[fd-tab-link]", inputs: { active: "active", disabled: "disabled" }, outputs: { keyDown: "keyDown", focused: "focused" }, host: { attributes: { "role": "tab", "tabindex": "-1" }, listeners: { "focus": "_onFocus()", "keyup": "_onKeyUp($event)" }, properties: { "attr.aria-selected": "this.active", "attr.aria-disabled": "this.disabled", "class.is-disabled": "this.disabled" } }, usesInheritance: true, ngImport: i0 });
|
|
35
48
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: TabLinkDirective, decorators: [{
|
|
36
49
|
type: Directive,
|
|
37
50
|
args: [{
|
|
@@ -57,8 +70,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
57
70
|
args: ['class.is-disabled']
|
|
58
71
|
}], keyDown: [{
|
|
59
72
|
type: Output
|
|
60
|
-
}],
|
|
73
|
+
}], focused: [{
|
|
74
|
+
type: Output
|
|
75
|
+
}], _onFocus: [{
|
|
76
|
+
type: HostListener,
|
|
77
|
+
args: ['focus']
|
|
78
|
+
}], _onKeyUp: [{
|
|
61
79
|
type: HostListener,
|
|
62
|
-
args: ['
|
|
80
|
+
args: ['keyup', ['$event']]
|
|
63
81
|
}] } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWxpbmsuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdGFicy90YWItbGluay90YWItbGluay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFFMUU7Ozs7Ozs7O0dBUUc7QUFVSCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsa0JBQWtCO0lBK0JwRCxjQUFjO0lBQ2QsWUFBbUIsVUFBc0I7UUFDckMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBREgsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQWpCekMsa0ZBQWtGO1FBRXpFLFlBQU8sR0FBZ0MsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFFbEYsZ0RBQWdEO1FBRXZDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBYTVDLENBQUM7SUFYRCxjQUFjO0lBQ2QsY0FBYztRQUNWLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN6QyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDYixJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDMUM7SUFDTCxDQUFDO0lBT0QsY0FBYztJQUVOLFFBQVE7UUFDWixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxjQUFjO0lBRU4sUUFBUSxDQUFDLEtBQW9CO1FBQ2pDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ3ZCO0lBQ0wsQ0FBQztJQUVELGNBQWM7SUFDZCxLQUFLO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUMsQ0FBQzs7NkdBckRRLGdCQUFnQjtpR0FBaEIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBUjVCLFNBQVM7bUJBQUM7b0JBQ1AsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsSUFBSSxFQUFFO3dCQUNGLElBQUksRUFBRSxLQUFLO3dCQUNYLFFBQVEsRUFBRSxJQUFJO3FCQUNqQjtpQkFDSjtpR0FLRyxNQUFNO3NCQUZMLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsb0JBQW9CO2dCQVVqQyxRQUFRO3NCQUhQLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsb0JBQW9COztzQkFDaEMsV0FBVzt1QkFBQyxtQkFBbUI7Z0JBS3ZCLE9BQU87c0JBRGYsTUFBTTtnQkFLRSxPQUFPO3NCQURmLE1BQU07Z0JBa0JDLFFBQVE7c0JBRGYsWUFBWTt1QkFBQyxPQUFPO2dCQU9iLFFBQVE7c0JBRGYsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c2FibGVPcHRpb24gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBFTlRFUiwgU1BBQ0UgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0RmROZ3hDbGFzcywgS2V5VXRpbCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS91dGlscyc7XG5cbi8qKlxuICogVGFiIGxpbmsgZm9yIG5hdiBtb2RlXG4gKlxuICogYGBgaHRtbFxuICogPGEgZmQtdGFiLWxpbms+XG4gKiAgICBsaW5rXG4gKiA8L2E+XG4gKiBgYGBcbiAqL1xuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZkLXRhYi1saW5rXScsXG4gICAgaG9zdDoge1xuICAgICAgICByb2xlOiAndGFiJyxcbiAgICAgICAgdGFiaW5kZXg6ICctMSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFRhYkxpbmtEaXJlY3RpdmUgZXh0ZW5kcyBBYnN0cmFjdEZkTmd4Q2xhc3MgaW1wbGVtZW50cyBGb2N1c2FibGVPcHRpb24ge1xuICAgIC8qKiBXaGV0aGVyIHRoZSBsaW5rIGlzIGFjdGl2ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtc2VsZWN0ZWQnKVxuICAgIGFjdGl2ZTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIE9ubHkgdmlzdWFsIC8gYWNjZXNzaWJpbGl0eSB0aGluZyBvbiB0YWItbmF2IG1vZGVcbiAgICAgKiBSb3V0ZXJMaW5rIGRvZXMgbm90IHJlc3BlY3QgcHJldmVudERlZmF1bHQvc3RvcFByb3BhZ2F0aW9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1kaXNhYmxlZCcpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pcy1kaXNhYmxlZCcpXG4gICAgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICAvKiogRXZlbnQgRW1pdHRlZCBhbHdheXMgd2hlbiwgYW55IGtleWJvYXJkIGV2ZW50IGlzIGRpc3BhdGNoZWQgb24gdGhpcyBlbGVtZW50ICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkga2V5RG93bjogRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PigpO1xuXG4gICAgLyoqIEV2ZW50IEVtaXR0ZWQgd2hlbiBpdGVtIGhhcyBiZWVuIGZvY3VzZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgZm9jdXNlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NldFByb3BlcnRpZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2FkZENsYXNzVG9FbGVtZW50KCdmZC10YWJzX19saW5rJyk7XG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5fYWRkQ2xhc3NUb0VsZW1lbnQoJ2lzLXNlbGVjdGVkJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuICAgIHByaXZhdGUgX29uRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9jdXNlZC5lbWl0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXG4gICAgcHJpdmF0ZSBfb25LZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtFTlRFUiwgU1BBQ0VdKSkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c2VkLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxufVxuIl19
|