@fundamental-ngx/platform 0.52.2-rc.34 → 0.52.2-rc.35
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/esm2022/icon-tab-bar/components/icon-tab-bar-filter-type/icon-tab-bar-filter-type.component.mjs +6 -5
- package/esm2022/icon-tab-bar/components/icon-tab-bar-icon-type/icon-tab-bar-icon-type.component.mjs +6 -5
- package/esm2022/icon-tab-bar/components/icon-tab-bar-process-type/icon-tab-bar-process-type.component.mjs +6 -4
- package/esm2022/icon-tab-bar/components/icon-tab-bar-tab/icon-tab-bar-tab.component.mjs +6 -3
- package/esm2022/icon-tab-bar/components/icon-tab-bar-text-type/icon-tab-bar-text-type.component.mjs +4 -3
- package/esm2022/icon-tab-bar/components/text-type-tab-item/icon-tab-bar-text-type-tab-item.component.mjs +5 -4
- package/esm2022/icon-tab-bar/directives/icon-tab-title.directive.mjs +14 -0
- package/esm2022/icon-tab-bar/icon-tab-bar.component.mjs +2 -1
- package/esm2022/icon-tab-bar/interfaces/tab-config.interface.mjs +1 -1
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +34 -15
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
- package/icon-tab-bar/components/icon-tab-bar-tab/icon-tab-bar-tab.component.d.ts +3 -1
- package/icon-tab-bar/directives/icon-tab-title.directive.d.ts +5 -0
- package/icon-tab-bar/icon-tab-bar.component.d.ts +2 -0
- package/icon-tab-bar/interfaces/tab-config.interface.d.ts +2 -0
- package/package.json +4 -4
- package/schematics/ng-add/index.js +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SlicePipe } from '@angular/common';
|
|
1
|
+
import { NgTemplateOutlet, SlicePipe } from '@angular/common';
|
|
2
2
|
import { Component, Input, QueryList, ViewChild, ViewChildren } from '@angular/core';
|
|
3
3
|
import { AsyncOrSyncPipe, OverflowListDirective, OverflowListItemDirective } from '@fundamental-ngx/cdk/utils';
|
|
4
4
|
import { ButtonComponent } from '@fundamental-ngx/core/button';
|
|
@@ -29,7 +29,7 @@ export class IconTabBarFilterTypeComponent extends ClosableIconTabBar {
|
|
|
29
29
|
provide: IconTabBarBase,
|
|
30
30
|
useExisting: IconTabBarFilterTypeComponent
|
|
31
31
|
}
|
|
32
|
-
], viewQueries: [{ propertyName: "_tabBarPopover", first: true, predicate: IconTabBarPopoverComponent, descendants: true }, { propertyName: "_tabUIElements", predicate: ["tabItem"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ul\n class=\"fd-icon-tab-bar__header\"\n [class.fd-dynamic-page__tabs]=\"_inDynamicPage\"\n role=\"tablist\"\n fdkOverflowList\n [isRtl]=\"isRtl\"\n #tablist\n [overflowOffset]=\"100\"\n (overflowChanged)=\"_recalculateVisibleItems($event)\"\n>\n @if (showTotalTab) {\n <li class=\"fd-icon-tab-bar__item\" role=\"presentation\" fdkOverflowListItem>\n <a\n (click)=\"_totalTab && _selectItem(_totalTab)\"\n (keydown)=\"_keyDownHandler($event, _totalTab, 0)\"\n [attr.aria-selected]=\"_totalTab?.uId === selectedUid\"\n class=\"fd-icon-tab-bar__tab\"\n tabindex=\"0\"\n #tabItem\n role=\"tab\"\n >\n <div class=\"fd-icon-tab-bar__container fd-icon-tab-bar__container--filter\">\n @if (_totalTab?.counter) {\n <span class=\"fd-icon-tab-bar__filter-counter\">{{ _totalTab?.counter }}</span>\n }\n <span class=\"fd-icon-tab-bar__filter-label\">{{ _totalTab?.label | fdkAsyncOrSync }}</span>\n </div>\n </a>\n </li>\n }\n @for (item of tabs | slice: 1; track item.uId; let idx = $index) {\n <li\n [class]=\"item.cssClasses\"\n class=\"fd-icon-tab-bar__item\"\n role=\"presentation\"\n fdkOverflowListItem\n [attr.aria-hidden]=\"item.hidden\"\n >\n <a\n (click)=\"_selectItem(item)\"\n [attr.aria-selected]=\"item.uId === selectedUid\"\n class=\"fd-icon-tab-bar__tab\"\n #tabItem\n [attr.tabindex]=\"showTotalTab ? -1 : idx > 0 ? -1 : 0\"\n (keydown)=\"_keyDownHandler($event, item, idx + (showTotalTab ? 1 : 0))\"\n role=\"tab\"\n >\n <div class=\"fd-icon-tab-bar__container\">\n
|
|
32
|
+
], viewQueries: [{ propertyName: "_tabBarPopover", first: true, predicate: IconTabBarPopoverComponent, descendants: true }, { propertyName: "_tabUIElements", predicate: ["tabItem"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ul\n class=\"fd-icon-tab-bar__header\"\n [class.fd-dynamic-page__tabs]=\"_inDynamicPage\"\n role=\"tablist\"\n fdkOverflowList\n [isRtl]=\"isRtl\"\n #tablist\n [overflowOffset]=\"100\"\n (overflowChanged)=\"_recalculateVisibleItems($event)\"\n>\n @if (showTotalTab) {\n <li class=\"fd-icon-tab-bar__item\" role=\"presentation\" fdkOverflowListItem>\n <a\n (click)=\"_totalTab && _selectItem(_totalTab)\"\n (keydown)=\"_keyDownHandler($event, _totalTab, 0)\"\n [attr.aria-selected]=\"_totalTab?.uId === selectedUid\"\n class=\"fd-icon-tab-bar__tab\"\n tabindex=\"0\"\n #tabItem\n role=\"tab\"\n >\n <div class=\"fd-icon-tab-bar__container fd-icon-tab-bar__container--filter\">\n @if (_totalTab?.counter) {\n <span class=\"fd-icon-tab-bar__filter-counter\">{{ _totalTab?.counter }}</span>\n }\n <span class=\"fd-icon-tab-bar__filter-label\">{{ _totalTab?.label | fdkAsyncOrSync }}</span>\n </div>\n </a>\n </li>\n }\n @for (item of tabs | slice: 1; track item.uId; let idx = $index) {\n <li\n [class]=\"item.cssClasses\"\n class=\"fd-icon-tab-bar__item\"\n role=\"presentation\"\n fdkOverflowListItem\n [attr.aria-hidden]=\"item.hidden\"\n >\n <a\n (click)=\"_selectItem(item)\"\n [attr.aria-selected]=\"item.uId === selectedUid\"\n class=\"fd-icon-tab-bar__tab\"\n #tabItem\n [attr.tabindex]=\"showTotalTab ? -1 : idx > 0 ? -1 : 0\"\n (keydown)=\"_keyDownHandler($event, item, idx + (showTotalTab ? 1 : 0))\"\n role=\"tab\"\n >\n @if (item?.titleTemplate) {\n <ng-container [ngTemplateOutlet]=\"item.titleTemplate || null\"></ng-container>\n } @else {\n <div class=\"fd-icon-tab-bar__container\">\n <span class=\"fd-icon-tab-bar__icon\">\n <fd-icon [glyph]=\"item.icon\"></fd-icon>\n </span>\n @if (item.counter) {\n <span class=\"fd-icon-tab-bar__counter\">{{ item.counter }}</span>\n }\n </div>\n <div class=\"fd-icon-tab-bar__label\">{{ item.label | fdkAsyncOrSync }}</div>\n }\n @if (item.color | fdkAsyncOrSync; as itemColor) {\n <div class=\"screenreader-only\">\n {{ colorAssociations()?.[itemColor] || itemColor }}\n </div>\n }\n </a>\n @if (item.closable) {\n <div class=\"fd-icon-tab-bar__button-container\">\n <button\n fd-button\n tabindex=\"-1\"\n class=\"fd-icon-tab-bar__button\"\n fdType=\"transparent\"\n (click)=\"_closeTab(item.uId)\"\n >\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </div>\n }\n </li>\n }\n @if (_extraItems$()) {\n <li role=\"presentation\" class=\"fd-icon-tab-bar__item fd-icon-tab-bar__item--overflow\">\n <fdp-icon-tab-bar-popover\n [isRtl]=\"isRtl\"\n [extraTabs]=\"_extraTabs$()\"\n [colorAssociations]=\"colorAssociations()\"\n (selectedExtraItem)=\"_selectExtraItem($event)\"\n (focusFirstVisibleItem)=\"_focusItem(0)\"\n (focusLastVisibleItem)=\"_focusItem(_lastVisibleTabIndex)\"\n (closeTab)=\"_closeTab($event, true)\"\n ></fdp-icon-tab-bar-popover>\n </li>\n }\n</ul>\n", dependencies: [{ kind: "directive", type: OverflowListDirective, selector: "[fdkOverflowList]", inputs: ["overflowOffset", "isRtl", "itemCssBlockValue"], outputs: ["overflowChanged"] }, { kind: "directive", type: OverflowListItemDirective, selector: "[fdkOverflowListItem]" }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: IconTabBarPopoverComponent, selector: "fdp-icon-tab-bar-popover", inputs: ["leftSide", "label", "showItemLabel"] }, { kind: "pipe", type: SlicePipe, name: "slice" }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "pipe", type: AsyncOrSyncPipe, name: "fdkAsyncOrSync" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
33
33
|
}
|
|
34
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: IconTabBarFilterTypeComponent, decorators: [{
|
|
35
35
|
type: Component,
|
|
@@ -45,8 +45,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
45
45
|
IconTabBarPopoverComponent,
|
|
46
46
|
SlicePipe,
|
|
47
47
|
ButtonComponent,
|
|
48
|
-
AsyncOrSyncPipe
|
|
49
|
-
|
|
48
|
+
AsyncOrSyncPipe,
|
|
49
|
+
NgTemplateOutlet
|
|
50
|
+
], template: "<ul\n class=\"fd-icon-tab-bar__header\"\n [class.fd-dynamic-page__tabs]=\"_inDynamicPage\"\n role=\"tablist\"\n fdkOverflowList\n [isRtl]=\"isRtl\"\n #tablist\n [overflowOffset]=\"100\"\n (overflowChanged)=\"_recalculateVisibleItems($event)\"\n>\n @if (showTotalTab) {\n <li class=\"fd-icon-tab-bar__item\" role=\"presentation\" fdkOverflowListItem>\n <a\n (click)=\"_totalTab && _selectItem(_totalTab)\"\n (keydown)=\"_keyDownHandler($event, _totalTab, 0)\"\n [attr.aria-selected]=\"_totalTab?.uId === selectedUid\"\n class=\"fd-icon-tab-bar__tab\"\n tabindex=\"0\"\n #tabItem\n role=\"tab\"\n >\n <div class=\"fd-icon-tab-bar__container fd-icon-tab-bar__container--filter\">\n @if (_totalTab?.counter) {\n <span class=\"fd-icon-tab-bar__filter-counter\">{{ _totalTab?.counter }}</span>\n }\n <span class=\"fd-icon-tab-bar__filter-label\">{{ _totalTab?.label | fdkAsyncOrSync }}</span>\n </div>\n </a>\n </li>\n }\n @for (item of tabs | slice: 1; track item.uId; let idx = $index) {\n <li\n [class]=\"item.cssClasses\"\n class=\"fd-icon-tab-bar__item\"\n role=\"presentation\"\n fdkOverflowListItem\n [attr.aria-hidden]=\"item.hidden\"\n >\n <a\n (click)=\"_selectItem(item)\"\n [attr.aria-selected]=\"item.uId === selectedUid\"\n class=\"fd-icon-tab-bar__tab\"\n #tabItem\n [attr.tabindex]=\"showTotalTab ? -1 : idx > 0 ? -1 : 0\"\n (keydown)=\"_keyDownHandler($event, item, idx + (showTotalTab ? 1 : 0))\"\n role=\"tab\"\n >\n @if (item?.titleTemplate) {\n <ng-container [ngTemplateOutlet]=\"item.titleTemplate || null\"></ng-container>\n } @else {\n <div class=\"fd-icon-tab-bar__container\">\n <span class=\"fd-icon-tab-bar__icon\">\n <fd-icon [glyph]=\"item.icon\"></fd-icon>\n </span>\n @if (item.counter) {\n <span class=\"fd-icon-tab-bar__counter\">{{ item.counter }}</span>\n }\n </div>\n <div class=\"fd-icon-tab-bar__label\">{{ item.label | fdkAsyncOrSync }}</div>\n }\n @if (item.color | fdkAsyncOrSync; as itemColor) {\n <div class=\"screenreader-only\">\n {{ colorAssociations()?.[itemColor] || itemColor }}\n </div>\n }\n </a>\n @if (item.closable) {\n <div class=\"fd-icon-tab-bar__button-container\">\n <button\n fd-button\n tabindex=\"-1\"\n class=\"fd-icon-tab-bar__button\"\n fdType=\"transparent\"\n (click)=\"_closeTab(item.uId)\"\n >\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </div>\n }\n </li>\n }\n @if (_extraItems$()) {\n <li role=\"presentation\" class=\"fd-icon-tab-bar__item fd-icon-tab-bar__item--overflow\">\n <fdp-icon-tab-bar-popover\n [isRtl]=\"isRtl\"\n [extraTabs]=\"_extraTabs$()\"\n [colorAssociations]=\"colorAssociations()\"\n (selectedExtraItem)=\"_selectExtraItem($event)\"\n (focusFirstVisibleItem)=\"_focusItem(0)\"\n (focusLastVisibleItem)=\"_focusItem(_lastVisibleTabIndex)\"\n (closeTab)=\"_closeTab($event, true)\"\n ></fdp-icon-tab-bar-popover>\n </li>\n }\n</ul>\n" }]
|
|
50
51
|
}], propDecorators: { _tabUIElements: [{
|
|
51
52
|
type: ViewChildren,
|
|
52
53
|
args: ['tabItem']
|
|
@@ -56,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
56
57
|
}], showTotalTab: [{
|
|
57
58
|
type: Input
|
|
58
59
|
}] } });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10YWItYmFyLWZpbHRlci10eXBlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vaWNvbi10YWItYmFyL2NvbXBvbmVudHMvaWNvbi10YWItYmFyLWZpbHRlci10eXBlL2ljb24tdGFiLWJhci1maWx0ZXItdHlwZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2ljb24tdGFiLWJhci9jb21wb25lbnRzL2ljb24tdGFiLWJhci1maWx0ZXItdHlwZS9pY29uLXRhYi1iYXItZmlsdGVyLXR5cGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQUUscUJBQXFCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQzs7QUFzQjdHLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxrQkFBa0I7SUFwQnJFOztRQTJCSTs7V0FFRztRQUVILGlCQUFZLEdBQUcsSUFBSSxDQUFDO0tBYXZCO0lBUkc7OztPQUdHO0lBQ08sU0FBUztRQUNmLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNsRSxDQUFDOzhHQXZCUSw2QkFBNkI7a0dBQTdCLDZCQUE2QixxSEFoQjNCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGNBQWM7Z0JBQ3ZCLFdBQVcsRUFBRSw2QkFBNkI7YUFDN0M7U0FDSiwwRUFnQlUsMEJBQTBCLHNKQ25DekMsMHhIQTJGQSw0Q0R0RVEscUJBQXFCLHNKQUNyQix5QkFBeUIsa0VBQ3pCLGFBQWEsMElBQ2IsMEJBQTBCLGdIQUMxQixTQUFTLDhDQUNULGVBQWUsb0lBQ2YsZUFBZTs7MkZBR1YsNkJBQTZCO2tCQXBCekMsU0FBUzsrQkFDSSw4QkFBOEIsY0FFNUIsSUFBSSxhQUNMO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxjQUFjOzRCQUN2QixXQUFXLCtCQUErQjt5QkFDN0M7cUJBQ0osV0FDUTt3QkFDTCxxQkFBcUI7d0JBQ3JCLHlCQUF5Qjt3QkFDekIsYUFBYTt3QkFDYiwwQkFBMEI7d0JBQzFCLFNBQVM7d0JBQ1QsZUFBZTt3QkFDZixlQUFlO3FCQUNsQjs4QkFJd0IsY0FBYztzQkFBdEMsWUFBWTt1QkFBQyxTQUFTO2dCQUdnQixjQUFjO3NCQUFwRCxTQUFTO3VCQUFDLDBCQUEwQjtnQkFNckMsWUFBWTtzQkFEWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2xpY2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFzeW5jT3JTeW5jUGlwZSwgT3ZlcmZsb3dMaXN0RGlyZWN0aXZlLCBPdmVyZmxvd0xpc3RJdGVtRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2J1dHRvbic7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2ljb24nO1xuaW1wb3J0IHsgSWNvblRhYkJhckl0ZW0gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2ljb24tdGFiLWJhci1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDbG9zYWJsZUljb25UYWJCYXIgfSBmcm9tICcuLi9jbG9zYWJsZS1pY29uLXRhYi1iYXIuY2xhc3MnO1xuaW1wb3J0IHsgSWNvblRhYkJhckJhc2UgfSBmcm9tICcuLi9pY29uLXRhYi1iYXItYmFzZS5jbGFzcyc7XG5pbXBvcnQgeyBJY29uVGFiQmFyUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4uL3BvcG92ZXJzL2ljb24tdGFiLWJhci1wb3BvdmVyL2ljb24tdGFiLWJhci1wb3BvdmVyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLWljb24tdGFiLWJhci1maWx0ZXItdHlwZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ljb24tdGFiLWJhci1maWx0ZXItdHlwZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogSWNvblRhYkJhckJhc2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogSWNvblRhYkJhckZpbHRlclR5cGVDb21wb25lbnRcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBPdmVyZmxvd0xpc3REaXJlY3RpdmUsXG4gICAgICAgIE92ZXJmbG93TGlzdEl0ZW1EaXJlY3RpdmUsXG4gICAgICAgIEljb25Db21wb25lbnQsXG4gICAgICAgIEljb25UYWJCYXJQb3BvdmVyQ29tcG9uZW50LFxuICAgICAgICBTbGljZVBpcGUsXG4gICAgICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICAgICAgQXN5bmNPclN5bmNQaXBlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBJY29uVGFiQmFyRmlsdGVyVHlwZUNvbXBvbmVudCBleHRlbmRzIENsb3NhYmxlSWNvblRhYkJhciB7XG4gICAgLyoqIEBoaWRkZW4gbGlzdCBvZiB0YWIgaHRtbCBlbGVtZW50cywgdGhhdCBjYW4gcmVjZWl2ZSBmb2N1cyAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oJ3RhYkl0ZW0nKSBfdGFiVUlFbGVtZW50czogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChJY29uVGFiQmFyUG9wb3ZlckNvbXBvbmVudCkgX3RhYkJhclBvcG92ZXI6IEljb25UYWJCYXJQb3BvdmVyQ29tcG9uZW50O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEJvb2xlYW4gZmxhZyBpbmRpY2F0aW5nIHRvIHNob3cgdG90YWwgdGFiXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzaG93VG90YWxUYWIgPSB0cnVlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfdG90YWxUYWI/OiBJY29uVGFiQmFySXRlbTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAZGVzY3JpcHRpb24gaW5pdGlhbGl6ZSBzdGF0ZSBvZiB0YWJzXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9pbml0VGFicygpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuX2luaXRUYWJzKCk7XG4gICAgICAgIHRoaXMuX3RvdGFsVGFiID0gdGhpcy5zaG93VG90YWxUYWIgPyB0aGlzLnRhYnNbMF0gOiB1bmRlZmluZWQ7XG4gICAgfVxufVxuIiwiPHVsXG4gICAgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2hlYWRlclwiXG4gICAgW2NsYXNzLmZkLWR5bmFtaWMtcGFnZV9fdGFic109XCJfaW5EeW5hbWljUGFnZVwiXG4gICAgcm9sZT1cInRhYmxpc3RcIlxuICAgIGZka092ZXJmbG93TGlzdFxuICAgIFtpc1J0bF09XCJpc1J0bFwiXG4gICAgI3RhYmxpc3RcbiAgICBbb3ZlcmZsb3dPZmZzZXRdPVwiMTAwXCJcbiAgICAob3ZlcmZsb3dDaGFuZ2VkKT1cIl9yZWNhbGN1bGF0ZVZpc2libGVJdGVtcygkZXZlbnQpXCJcbj5cbiAgICBAaWYgKHNob3dUb3RhbFRhYikge1xuICAgICAgICA8bGkgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2l0ZW1cIiByb2xlPVwicHJlc2VudGF0aW9uXCIgZmRrT3ZlcmZsb3dMaXN0SXRlbT5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIl90b3RhbFRhYiAmJiBfc2VsZWN0SXRlbShfdG90YWxUYWIpXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJfa2V5RG93bkhhbmRsZXIoJGV2ZW50LCBfdG90YWxUYWIsIDApXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cIl90b3RhbFRhYj8udUlkID09PSBzZWxlY3RlZFVpZFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX3RhYlwiXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICAjdGFiSXRlbVxuICAgICAgICAgICAgICAgIHJvbGU9XCJ0YWJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2NvbnRhaW5lciBmZC1pY29uLXRhYi1iYXJfX2NvbnRhaW5lci0tZmlsdGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoX3RvdGFsVGFiPy5jb3VudGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fZmlsdGVyLWNvdW50ZXJcIj57eyBfdG90YWxUYWI/LmNvdW50ZXIgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2ZpbHRlci1sYWJlbFwiPnt7IF90b3RhbFRhYj8ubGFiZWwgfCBmZGtBc3luY09yU3luYyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiAgICB9XG4gICAgQGZvciAoaXRlbSBvZiB0YWJzIHwgc2xpY2U6IDE7IHRyYWNrIGl0ZW0udUlkOyBsZXQgaWR4ID0gJGluZGV4KSB7XG4gICAgICAgIDxsaVxuICAgICAgICAgICAgW2NsYXNzXT1cIml0ZW0uY3NzQ2xhc3Nlc1wiXG4gICAgICAgICAgICBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9faXRlbVwiXG4gICAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgICAgIGZka092ZXJmbG93TGlzdEl0ZW1cbiAgICAgICAgICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cIml0ZW0uaGlkZGVuXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiX3NlbGVjdEl0ZW0oaXRlbSlcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXRlbS51SWQgPT09IHNlbGVjdGVkVWlkXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fdGFiXCJcbiAgICAgICAgICAgICAgICAjdGFiSXRlbVxuICAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cInNob3dUb3RhbFRhYiA/IC0xIDogaWR4ID4gMCA/IC0xIDogMFwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24pPVwiX2tleURvd25IYW5kbGVyKCRldmVudCwgaXRlbSwgaWR4ICsgKHNob3dUb3RhbFRhYiA/IDEgOiAwKSlcIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJ0YWJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2NvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9faWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWljb24gW2dseXBoXT1cIml0ZW0uaWNvblwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uY291bnRlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2NvdW50ZXJcIj57eyBpdGVtLmNvdW50ZXIgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19sYWJlbFwiPnt7IGl0ZW0ubGFiZWwgfCBmZGtBc3luY09yU3luYyB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5jb2xvciB8IGZka0FzeW5jT3JTeW5jOyBhcyBpdGVtQ29sb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjcmVlbnJlYWRlci1vbmx5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBjb2xvckFzc29jaWF0aW9ucygpPy5baXRlbUNvbG9yXSB8fCBpdGVtQ29sb3IgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgQGlmIChpdGVtLmNsb3NhYmxlKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fYnV0dG9uLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2J1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiX2Nsb3NlVGFiKGl0ZW0udUlkKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1pY29uIGdseXBoPVwiZGVjbGluZVwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvbGk+XG4gICAgfVxuICAgIEBpZiAoX2V4dHJhSXRlbXMkKCkpIHtcbiAgICAgICAgPGxpIHJvbGU9XCJwcmVzZW50YXRpb25cIiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9faXRlbSBmZC1pY29uLXRhYi1iYXJfX2l0ZW0tLW92ZXJmbG93XCI+XG4gICAgICAgICAgICA8ZmRwLWljb24tdGFiLWJhci1wb3BvdmVyXG4gICAgICAgICAgICAgICAgW2lzUnRsXT1cImlzUnRsXCJcbiAgICAgICAgICAgICAgICBbZXh0cmFUYWJzXT1cIl9leHRyYVRhYnMkKClcIlxuICAgICAgICAgICAgICAgIFtjb2xvckFzc29jaWF0aW9uc109XCJjb2xvckFzc29jaWF0aW9ucygpXCJcbiAgICAgICAgICAgICAgICAoc2VsZWN0ZWRFeHRyYUl0ZW0pPVwiX3NlbGVjdEV4dHJhSXRlbSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoZm9jdXNGaXJzdFZpc2libGVJdGVtKT1cIl9mb2N1c0l0ZW0oMClcIlxuICAgICAgICAgICAgICAgIChmb2N1c0xhc3RWaXNpYmxlSXRlbSk9XCJfZm9jdXNJdGVtKF9sYXN0VmlzaWJsZVRhYkluZGV4KVwiXG4gICAgICAgICAgICAgICAgKGNsb3NlVGFiKT1cIl9jbG9zZVRhYigkZXZlbnQsIHRydWUpXCJcbiAgICAgICAgICAgID48L2ZkcC1pY29uLXRhYi1iYXItcG9wb3Zlcj5cbiAgICAgICAgPC9saT5cbiAgICB9XG48L3VsPlxuIl19
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10YWItYmFyLWZpbHRlci10eXBlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vaWNvbi10YWItYmFyL2NvbXBvbmVudHMvaWNvbi10YWItYmFyLWZpbHRlci10eXBlL2ljb24tdGFiLWJhci1maWx0ZXItdHlwZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2ljb24tdGFiLWJhci9jb21wb25lbnRzL2ljb24tdGFiLWJhci1maWx0ZXItdHlwZS9pY29uLXRhYi1iYXItZmlsdGVyLXR5cGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQUUscUJBQXFCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQzs7QUF1QjdHLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxrQkFBa0I7SUFyQnJFOztRQTRCSTs7V0FFRztRQUVILGlCQUFZLEdBQUcsSUFBSSxDQUFDO0tBYXZCO0lBUkc7OztPQUdHO0lBQ08sU0FBUztRQUNmLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNsRSxDQUFDOzhHQXZCUSw2QkFBNkI7a0dBQTdCLDZCQUE2QixxSEFqQjNCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGNBQWM7Z0JBQ3ZCLFdBQVcsRUFBRSw2QkFBNkI7YUFDN0M7U0FDSiwwRUFpQlUsMEJBQTBCLHNKQ3BDekMsOC9IQStGQSw0Q0QxRVEscUJBQXFCLHNKQUNyQix5QkFBeUIsa0VBQ3pCLGFBQWEsMElBQ2IsMEJBQTBCLGdIQUMxQixTQUFTLDhDQUNULGVBQWUsb0lBQ2YsZUFBZSx1REFDZixnQkFBZ0I7OzJGQUdYLDZCQUE2QjtrQkFyQnpDLFNBQVM7K0JBQ0ksOEJBQThCLGNBRTVCLElBQUksYUFDTDt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsY0FBYzs0QkFDdkIsV0FBVywrQkFBK0I7eUJBQzdDO3FCQUNKLFdBQ1E7d0JBQ0wscUJBQXFCO3dCQUNyQix5QkFBeUI7d0JBQ3pCLGFBQWE7d0JBQ2IsMEJBQTBCO3dCQUMxQixTQUFTO3dCQUNULGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixnQkFBZ0I7cUJBQ25COzhCQUl3QixjQUFjO3NCQUF0QyxZQUFZO3VCQUFDLFNBQVM7Z0JBR2dCLGNBQWM7c0JBQXBELFNBQVM7dUJBQUMsMEJBQTBCO2dCQU1yQyxZQUFZO3NCQURYLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0LCBTbGljZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXN5bmNPclN5bmNQaXBlLCBPdmVyZmxvd0xpc3REaXJlY3RpdmUsIE92ZXJmbG93TGlzdEl0ZW1EaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYnV0dG9uJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvaWNvbic7XG5pbXBvcnQgeyBJY29uVGFiQmFySXRlbSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvaWNvbi10YWItYmFyLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IENsb3NhYmxlSWNvblRhYkJhciB9IGZyb20gJy4uL2Nsb3NhYmxlLWljb24tdGFiLWJhci5jbGFzcyc7XG5pbXBvcnQgeyBJY29uVGFiQmFyQmFzZSB9IGZyb20gJy4uL2ljb24tdGFiLWJhci1iYXNlLmNsYXNzJztcbmltcG9ydCB7IEljb25UYWJCYXJQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vcG9wb3ZlcnMvaWNvbi10YWItYmFyLXBvcG92ZXIvaWNvbi10YWItYmFyLXBvcG92ZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtaWNvbi10YWItYmFyLWZpbHRlci10eXBlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaWNvbi10YWItYmFyLWZpbHRlci10eXBlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBJY29uVGFiQmFyQmFzZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBJY29uVGFiQmFyRmlsdGVyVHlwZUNvbXBvbmVudFxuICAgICAgICB9XG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE92ZXJmbG93TGlzdERpcmVjdGl2ZSxcbiAgICAgICAgT3ZlcmZsb3dMaXN0SXRlbURpcmVjdGl2ZSxcbiAgICAgICAgSWNvbkNvbXBvbmVudCxcbiAgICAgICAgSWNvblRhYkJhclBvcG92ZXJDb21wb25lbnQsXG4gICAgICAgIFNsaWNlUGlwZSxcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBBc3luY09yU3luY1BpcGUsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXRcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEljb25UYWJCYXJGaWx0ZXJUeXBlQ29tcG9uZW50IGV4dGVuZHMgQ2xvc2FibGVJY29uVGFiQmFyIHtcbiAgICAvKiogQGhpZGRlbiBsaXN0IG9mIHRhYiBodG1sIGVsZW1lbnRzLCB0aGF0IGNhbiByZWNlaXZlIGZvY3VzICovXG4gICAgQFZpZXdDaGlsZHJlbigndGFiSXRlbScpIF90YWJVSUVsZW1lbnRzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKEljb25UYWJCYXJQb3BvdmVyQ29tcG9uZW50KSBfdGFiQmFyUG9wb3ZlcjogSWNvblRhYkJhclBvcG92ZXJDb21wb25lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQm9vbGVhbiBmbGFnIGluZGljYXRpbmcgdG8gc2hvdyB0b3RhbCB0YWJcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dUb3RhbFRhYiA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF90b3RhbFRhYj86IEljb25UYWJCYXJJdGVtO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBkZXNjcmlwdGlvbiBpbml0aWFsaXplIHN0YXRlIG9mIHRhYnNcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2luaXRUYWJzKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5faW5pdFRhYnMoKTtcbiAgICAgICAgdGhpcy5fdG90YWxUYWIgPSB0aGlzLnNob3dUb3RhbFRhYiA/IHRoaXMudGFic1swXSA6IHVuZGVmaW5lZDtcbiAgICB9XG59XG4iLCI8dWxcbiAgICBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9faGVhZGVyXCJcbiAgICBbY2xhc3MuZmQtZHluYW1pYy1wYWdlX190YWJzXT1cIl9pbkR5bmFtaWNQYWdlXCJcbiAgICByb2xlPVwidGFibGlzdFwiXG4gICAgZmRrT3ZlcmZsb3dMaXN0XG4gICAgW2lzUnRsXT1cImlzUnRsXCJcbiAgICAjdGFibGlzdFxuICAgIFtvdmVyZmxvd09mZnNldF09XCIxMDBcIlxuICAgIChvdmVyZmxvd0NoYW5nZWQpPVwiX3JlY2FsY3VsYXRlVmlzaWJsZUl0ZW1zKCRldmVudClcIlxuPlxuICAgIEBpZiAoc2hvd1RvdGFsVGFiKSB7XG4gICAgICAgIDxsaSBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9faXRlbVwiIHJvbGU9XCJwcmVzZW50YXRpb25cIiBmZGtPdmVyZmxvd0xpc3RJdGVtPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiX3RvdGFsVGFiICYmIF9zZWxlY3RJdGVtKF90b3RhbFRhYilcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duKT1cIl9rZXlEb3duSGFuZGxlcigkZXZlbnQsIF90b3RhbFRhYiwgMClcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiX3RvdGFsVGFiPy51SWQgPT09IHNlbGVjdGVkVWlkXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fdGFiXCJcbiAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICN0YWJJdGVtXG4gICAgICAgICAgICAgICAgcm9sZT1cInRhYlwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fY29udGFpbmVyIGZkLWljb24tdGFiLWJhcl9fY29udGFpbmVyLS1maWx0ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChfdG90YWxUYWI/LmNvdW50ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19maWx0ZXItY291bnRlclwiPnt7IF90b3RhbFRhYj8uY291bnRlciB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fZmlsdGVyLWxhYmVsXCI+e3sgX3RvdGFsVGFiPy5sYWJlbCB8IGZka0FzeW5jT3JTeW5jIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L2xpPlxuICAgIH1cbiAgICBAZm9yIChpdGVtIG9mIHRhYnMgfCBzbGljZTogMTsgdHJhY2sgaXRlbS51SWQ7IGxldCBpZHggPSAkaW5kZXgpIHtcbiAgICAgICAgPGxpXG4gICAgICAgICAgICBbY2xhc3NdPVwiaXRlbS5jc3NDbGFzc2VzXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19pdGVtXCJcbiAgICAgICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxuICAgICAgICAgICAgZmRrT3ZlcmZsb3dMaXN0SXRlbVxuICAgICAgICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiaXRlbS5oaWRkZW5cIlxuICAgICAgICA+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIChjbGljayk9XCJfc2VsZWN0SXRlbShpdGVtKVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpdGVtLnVJZCA9PT0gc2VsZWN0ZWRVaWRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX190YWJcIlxuICAgICAgICAgICAgICAgICN0YWJJdGVtXG4gICAgICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwic2hvd1RvdGFsVGFiID8gLTEgOiBpZHggPiAwID8gLTEgOiAwXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJfa2V5RG93bkhhbmRsZXIoJGV2ZW50LCBpdGVtLCBpZHggKyAoc2hvd1RvdGFsVGFiID8gMSA6IDApKVwiXG4gICAgICAgICAgICAgICAgcm9sZT1cInRhYlwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQGlmIChpdGVtPy50aXRsZVRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbS50aXRsZVRlbXBsYXRlIHx8IG51bGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9faWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1pY29uIFtnbHlwaF09XCJpdGVtLmljb25cIj48L2ZkLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uY291bnRlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19jb3VudGVyXCI+e3sgaXRlbS5jb3VudGVyIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fbGFiZWxcIj57eyBpdGVtLmxhYmVsIHwgZmRrQXN5bmNPclN5bmMgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChpdGVtLmNvbG9yIHwgZmRrQXN5bmNPclN5bmM7IGFzIGl0ZW1Db2xvcikge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NyZWVucmVhZGVyLW9ubHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNvbG9yQXNzb2NpYXRpb25zKCk/LltpdGVtQ29sb3JdIHx8IGl0ZW1Db2xvciB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICBAaWYgKGl0ZW0uY2xvc2FibGUpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19idXR0b24tY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfY2xvc2VUYWIoaXRlbS51SWQpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWljb24gZ2x5cGg9XCJkZWNsaW5lXCI+PC9mZC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9saT5cbiAgICB9XG4gICAgQGlmIChfZXh0cmFJdGVtcyQoKSkge1xuICAgICAgICA8bGkgcm9sZT1cInByZXNlbnRhdGlvblwiIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19pdGVtIGZkLWljb24tdGFiLWJhcl9faXRlbS0tb3ZlcmZsb3dcIj5cbiAgICAgICAgICAgIDxmZHAtaWNvbi10YWItYmFyLXBvcG92ZXJcbiAgICAgICAgICAgICAgICBbaXNSdGxdPVwiaXNSdGxcIlxuICAgICAgICAgICAgICAgIFtleHRyYVRhYnNdPVwiX2V4dHJhVGFicyQoKVwiXG4gICAgICAgICAgICAgICAgW2NvbG9yQXNzb2NpYXRpb25zXT1cImNvbG9yQXNzb2NpYXRpb25zKClcIlxuICAgICAgICAgICAgICAgIChzZWxlY3RlZEV4dHJhSXRlbSk9XCJfc2VsZWN0RXh0cmFJdGVtKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChmb2N1c0ZpcnN0VmlzaWJsZUl0ZW0pPVwiX2ZvY3VzSXRlbSgwKVwiXG4gICAgICAgICAgICAgICAgKGZvY3VzTGFzdFZpc2libGVJdGVtKT1cIl9mb2N1c0l0ZW0oX2xhc3RWaXNpYmxlVGFiSW5kZXgpXCJcbiAgICAgICAgICAgICAgICAoY2xvc2VUYWIpPVwiX2Nsb3NlVGFiKCRldmVudCwgdHJ1ZSlcIlxuICAgICAgICAgICAgPjwvZmRwLWljb24tdGFiLWJhci1wb3BvdmVyPlxuICAgICAgICA8L2xpPlxuICAgIH1cbjwvdWw+XG4iXX0=
|
package/esm2022/icon-tab-bar/components/icon-tab-bar-icon-type/icon-tab-bar-icon-type.component.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NgClass } from '@angular/common';
|
|
1
|
+
import { NgClass, NgTemplateOutlet } from '@angular/common';
|
|
2
2
|
import { Component, Input, QueryList, ViewChild, ViewChildren } from '@angular/core';
|
|
3
3
|
import { AsyncOrSyncPipe, OverflowListDirective, OverflowListItemDirective } from '@fundamental-ngx/cdk/utils';
|
|
4
4
|
import { ButtonComponent } from '@fundamental-ngx/core/button';
|
|
@@ -19,7 +19,7 @@ export class IconTabBarIconTypeComponent extends ClosableIconTabBar {
|
|
|
19
19
|
provide: IconTabBarBase,
|
|
20
20
|
useExisting: IconTabBarIconTypeComponent
|
|
21
21
|
}
|
|
22
|
-
], viewQueries: [{ propertyName: "_tabBarPopover", first: true, predicate: IconTabBarPopoverComponent, descendants: true }, { propertyName: "_tabUIElements", predicate: ["tabItem"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ul\n class=\"fd-icon-tab-bar__header\"\n [class.fd-dynamic-page__tabs]=\"_inDynamicPage\"\n role=\"tablist\"\n fdkOverflowList\n [isRtl]=\"isRtl\"\n #tablist\n [overflowOffset]=\"100\"\n (overflowChanged)=\"_recalculateVisibleItems($event)\"\n>\n @for (item of tabs; track item.uId; let idx = $index) {\n <li\n [ngClass]=\"item.cssClasses\"\n [class.fd-icon-tab-bar__item--closable]=\"item.closable\"\n fdkOverflowListItem\n [attr.aria-hidden]=\"item.hidden\"\n class=\"fd-icon-tab-bar__item\"\n role=\"presentation\"\n >\n <a\n class=\"fd-icon-tab-bar__tab\"\n #tabItem\n role=\"tab\"\n [attr.tabindex]=\"idx === 0 ? 0 : -1\"\n [attr.aria-selected]=\"item.uId === selectedUid\"\n (click)=\"_selectItem(item)\"\n (keydown)=\"_keyDownHandler($event, item, idx)\"\n >\n <div class=\"fd-icon-tab-bar__container\">\n
|
|
22
|
+
], viewQueries: [{ propertyName: "_tabBarPopover", first: true, predicate: IconTabBarPopoverComponent, descendants: true }, { propertyName: "_tabUIElements", predicate: ["tabItem"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ul\n class=\"fd-icon-tab-bar__header\"\n [class.fd-dynamic-page__tabs]=\"_inDynamicPage\"\n role=\"tablist\"\n fdkOverflowList\n [isRtl]=\"isRtl\"\n #tablist\n [overflowOffset]=\"100\"\n (overflowChanged)=\"_recalculateVisibleItems($event)\"\n>\n @for (item of tabs; track item.uId; let idx = $index) {\n <li\n [ngClass]=\"item.cssClasses\"\n [class.fd-icon-tab-bar__item--closable]=\"item.closable\"\n fdkOverflowListItem\n [attr.aria-hidden]=\"item.hidden\"\n class=\"fd-icon-tab-bar__item\"\n role=\"presentation\"\n >\n <a\n class=\"fd-icon-tab-bar__tab\"\n #tabItem\n role=\"tab\"\n [attr.tabindex]=\"idx === 0 ? 0 : -1\"\n [attr.aria-selected]=\"item.uId === selectedUid\"\n (click)=\"_selectItem(item)\"\n (keydown)=\"_keyDownHandler($event, item, idx)\"\n >\n @if (item?.titleTemplate) {\n <ng-template [ngTemplateOutlet]=\"item.titleTemplate || null\"></ng-template>\n } @else {\n <div class=\"fd-icon-tab-bar__container\">\n <span class=\"fd-icon-tab-bar__icon\">\n <fd-icon [glyph]=\"item.icon\" [font]=\"item.iconFont || _defaultFontFamily\"></fd-icon>\n </span>\n @if (item.counter && (!item.label || !showLabel)) {\n <span class=\"fd-icon-tab-bar__counter\">{{ item.counter }}</span>\n }\n </div>\n @if (showLabel && item.label) {\n <div class=\"fd-icon-tab-bar__details\">\n <span class=\"fd-icon-tab-bar__counter\">{{ item.counter }}</span>\n <span class=\"fd-icon-tab-bar__label\">{{ item.label }}</span>\n </div>\n }\n @if (item.color | fdkAsyncOrSync; as itemColor) {\n <div class=\"screenreader-only\">\n {{ colorAssociations()?.[itemColor] || itemColor }}\n </div>\n }\n }\n </a>\n @if (item.closable) {\n <div class=\"fd-icon-tab-bar__button-container\">\n <button\n fd-button\n tabindex=\"-1\"\n class=\"fd-icon-tab-bar__button\"\n fdType=\"transparent\"\n (click)=\"_closeTab(item.uId)\"\n >\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </div>\n }\n </li>\n }\n @if (_extraItems$()) {\n <li role=\"presentation\" class=\"fd-icon-tab-bar__item fd-icon-tab-bar__item--overflow\">\n <fdp-icon-tab-bar-popover\n [showItemLabel]=\"showLabel\"\n [isRtl]=\"isRtl\"\n [extraTabs]=\"_extraTabs$()\"\n [colorAssociations]=\"colorAssociations()\"\n (selectedExtraItem)=\"_selectExtraItem($event)\"\n (focusFirstVisibleItem)=\"_focusItem(0)\"\n (focusLastVisibleItem)=\"_focusItem(_lastVisibleTabIndex)\"\n (closeTab)=\"_closeTab($event, true)\"\n ></fdp-icon-tab-bar-popover>\n </li>\n }\n</ul>\n", dependencies: [{ kind: "directive", type: OverflowListDirective, selector: "[fdkOverflowList]", inputs: ["overflowOffset", "isRtl", "itemCssBlockValue"], outputs: ["overflowChanged"] }, { kind: "directive", type: OverflowListItemDirective, selector: "[fdkOverflowListItem]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: IconTabBarPopoverComponent, selector: "fdp-icon-tab-bar-popover", inputs: ["leftSide", "label", "showItemLabel"] }, { kind: "pipe", type: AsyncOrSyncPipe, name: "fdkAsyncOrSync" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
23
23
|
}
|
|
24
24
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: IconTabBarIconTypeComponent, decorators: [{
|
|
25
25
|
type: Component,
|
|
@@ -35,8 +35,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
35
35
|
IconComponent,
|
|
36
36
|
ButtonComponent,
|
|
37
37
|
IconTabBarPopoverComponent,
|
|
38
|
-
AsyncOrSyncPipe
|
|
39
|
-
|
|
38
|
+
AsyncOrSyncPipe,
|
|
39
|
+
NgTemplateOutlet
|
|
40
|
+
], template: "<ul\n class=\"fd-icon-tab-bar__header\"\n [class.fd-dynamic-page__tabs]=\"_inDynamicPage\"\n role=\"tablist\"\n fdkOverflowList\n [isRtl]=\"isRtl\"\n #tablist\n [overflowOffset]=\"100\"\n (overflowChanged)=\"_recalculateVisibleItems($event)\"\n>\n @for (item of tabs; track item.uId; let idx = $index) {\n <li\n [ngClass]=\"item.cssClasses\"\n [class.fd-icon-tab-bar__item--closable]=\"item.closable\"\n fdkOverflowListItem\n [attr.aria-hidden]=\"item.hidden\"\n class=\"fd-icon-tab-bar__item\"\n role=\"presentation\"\n >\n <a\n class=\"fd-icon-tab-bar__tab\"\n #tabItem\n role=\"tab\"\n [attr.tabindex]=\"idx === 0 ? 0 : -1\"\n [attr.aria-selected]=\"item.uId === selectedUid\"\n (click)=\"_selectItem(item)\"\n (keydown)=\"_keyDownHandler($event, item, idx)\"\n >\n @if (item?.titleTemplate) {\n <ng-template [ngTemplateOutlet]=\"item.titleTemplate || null\"></ng-template>\n } @else {\n <div class=\"fd-icon-tab-bar__container\">\n <span class=\"fd-icon-tab-bar__icon\">\n <fd-icon [glyph]=\"item.icon\" [font]=\"item.iconFont || _defaultFontFamily\"></fd-icon>\n </span>\n @if (item.counter && (!item.label || !showLabel)) {\n <span class=\"fd-icon-tab-bar__counter\">{{ item.counter }}</span>\n }\n </div>\n @if (showLabel && item.label) {\n <div class=\"fd-icon-tab-bar__details\">\n <span class=\"fd-icon-tab-bar__counter\">{{ item.counter }}</span>\n <span class=\"fd-icon-tab-bar__label\">{{ item.label }}</span>\n </div>\n }\n @if (item.color | fdkAsyncOrSync; as itemColor) {\n <div class=\"screenreader-only\">\n {{ colorAssociations()?.[itemColor] || itemColor }}\n </div>\n }\n }\n </a>\n @if (item.closable) {\n <div class=\"fd-icon-tab-bar__button-container\">\n <button\n fd-button\n tabindex=\"-1\"\n class=\"fd-icon-tab-bar__button\"\n fdType=\"transparent\"\n (click)=\"_closeTab(item.uId)\"\n >\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </div>\n }\n </li>\n }\n @if (_extraItems$()) {\n <li role=\"presentation\" class=\"fd-icon-tab-bar__item fd-icon-tab-bar__item--overflow\">\n <fdp-icon-tab-bar-popover\n [showItemLabel]=\"showLabel\"\n [isRtl]=\"isRtl\"\n [extraTabs]=\"_extraTabs$()\"\n [colorAssociations]=\"colorAssociations()\"\n (selectedExtraItem)=\"_selectExtraItem($event)\"\n (focusFirstVisibleItem)=\"_focusItem(0)\"\n (focusLastVisibleItem)=\"_focusItem(_lastVisibleTabIndex)\"\n (closeTab)=\"_closeTab($event, true)\"\n ></fdp-icon-tab-bar-popover>\n </li>\n }\n</ul>\n" }]
|
|
40
41
|
}], propDecorators: { _tabUIElements: [{
|
|
41
42
|
type: ViewChildren,
|
|
42
43
|
args: ['tabItem']
|
|
@@ -46,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
46
47
|
}], showLabel: [{
|
|
47
48
|
type: Input
|
|
48
49
|
}] } });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10YWItYmFyLWljb24tdHlwZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2ljb24tdGFiLWJhci9jb21wb25lbnRzL2ljb24tdGFiLWJhci1pY29uLXR5cGUvaWNvbi10YWItYmFyLWljb24tdHlwZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2ljb24tdGFiLWJhci9jb21wb25lbnRzL2ljb24tdGFiLWJhci1pY29uLXR5cGUvaWNvbi10YWItYmFyLWljb24tdHlwZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9HLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlFQUFpRSxDQUFDOztBQXVCN0csTUFBTSxPQUFPLDJCQUE0QixTQUFRLGtCQUFrQjtJQXJCbkU7O1FBZ0NJLGNBQWM7UUFDTCx1QkFBa0IsR0FBRywyQkFBMkIsQ0FBQztLQUM3RDs4R0FiWSwyQkFBMkI7a0dBQTNCLDJCQUEyQiw2R0FqQnpCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGNBQWM7Z0JBQ3ZCLFdBQVcsRUFBRSwyQkFBMkI7YUFDM0M7U0FDSiwwRUFpQlUsMEJBQTBCLHNKQ25DekMsOC9HQWtGQSw0Q0Q5RFEscUJBQXFCLHNKQUNyQix5QkFBeUIsa0VBQ3pCLE9BQU8sb0ZBQ1AsYUFBYSwwSUFDYixlQUFlLHlJQUNmLDBCQUEwQixnSEFDMUIsZUFBZSx1REFDZixnQkFBZ0I7OzJGQUdYLDJCQUEyQjtrQkFyQnZDLFNBQVM7K0JBQ0ksNEJBQTRCLGNBRTFCLElBQUksYUFDTDt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsY0FBYzs0QkFDdkIsV0FBVyw2QkFBNkI7eUJBQzNDO3FCQUNKLFdBQ1E7d0JBQ0wscUJBQXFCO3dCQUNyQix5QkFBeUI7d0JBQ3pCLE9BQU87d0JBQ1AsYUFBYTt3QkFDYixlQUFlO3dCQUNmLDBCQUEwQjt3QkFDMUIsZUFBZTt3QkFDZixnQkFBZ0I7cUJBQ25COzhCQUl3QixjQUFjO3NCQUF0QyxZQUFZO3VCQUFDLFNBQVM7Z0JBR2dCLGNBQWM7c0JBQXBELFNBQVM7dUJBQUMsMEJBQTBCO2dCQUlyQyxTQUFTO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFzeW5jT3JTeW5jUGlwZSwgT3ZlcmZsb3dMaXN0RGlyZWN0aXZlLCBPdmVyZmxvd0xpc3RJdGVtRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2J1dHRvbic7XG5pbXBvcnQgeyBGRF9ERUZBVUxUX0lDT05fRk9OVF9GQU1JTFksIEljb25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvaWNvbic7XG5pbXBvcnQgeyBDbG9zYWJsZUljb25UYWJCYXIgfSBmcm9tICcuLi9jbG9zYWJsZS1pY29uLXRhYi1iYXIuY2xhc3MnO1xuaW1wb3J0IHsgSWNvblRhYkJhckJhc2UgfSBmcm9tICcuLi9pY29uLXRhYi1iYXItYmFzZS5jbGFzcyc7XG5pbXBvcnQgeyBJY29uVGFiQmFyUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4uL3BvcG92ZXJzL2ljb24tdGFiLWJhci1wb3BvdmVyL2ljb24tdGFiLWJhci1wb3BvdmVyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLWljb24tdGFiLWJhci1pY29uLXR5cGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pY29uLXRhYi1iYXItaWNvbi10eXBlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBJY29uVGFiQmFyQmFzZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBJY29uVGFiQmFySWNvblR5cGVDb21wb25lbnRcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBPdmVyZmxvd0xpc3REaXJlY3RpdmUsXG4gICAgICAgIE92ZXJmbG93TGlzdEl0ZW1EaXJlY3RpdmUsXG4gICAgICAgIE5nQ2xhc3MsXG4gICAgICAgIEljb25Db21wb25lbnQsXG4gICAgICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICAgICAgSWNvblRhYkJhclBvcG92ZXJDb21wb25lbnQsXG4gICAgICAgIEFzeW5jT3JTeW5jUGlwZSxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgSWNvblRhYkJhckljb25UeXBlQ29tcG9uZW50IGV4dGVuZHMgQ2xvc2FibGVJY29uVGFiQmFyIHtcbiAgICAvKiogQGhpZGRlbiBsaXN0IG9mIHRhYiBodG1sIGVsZW1lbnRzLCB0aGF0IGNhbiByZWNlaXZlIGZvY3VzICovXG4gICAgQFZpZXdDaGlsZHJlbigndGFiSXRlbScpIF90YWJVSUVsZW1lbnRzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKEljb25UYWJCYXJQb3BvdmVyQ29tcG9uZW50KSBfdGFiQmFyUG9wb3ZlcjogSWNvblRhYkJhclBvcG92ZXJDb21wb25lbnQ7XG5cbiAgICAvKiogV2hldGhlciB0byBkaXNwbGF5IGxhYmVscyBmb3IgdGFiIGl0ZW1zICovXG4gICAgQElucHV0KClcbiAgICBzaG93TGFiZWw6IGJvb2xlYW47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF9kZWZhdWx0Rm9udEZhbWlseSA9IEZEX0RFRkFVTFRfSUNPTl9GT05UX0ZBTUlMWTtcbn1cbiIsIjx1bFxuICAgIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19oZWFkZXJcIlxuICAgIFtjbGFzcy5mZC1keW5hbWljLXBhZ2VfX3RhYnNdPVwiX2luRHluYW1pY1BhZ2VcIlxuICAgIHJvbGU9XCJ0YWJsaXN0XCJcbiAgICBmZGtPdmVyZmxvd0xpc3RcbiAgICBbaXNSdGxdPVwiaXNSdGxcIlxuICAgICN0YWJsaXN0XG4gICAgW292ZXJmbG93T2Zmc2V0XT1cIjEwMFwiXG4gICAgKG92ZXJmbG93Q2hhbmdlZCk9XCJfcmVjYWxjdWxhdGVWaXNpYmxlSXRlbXMoJGV2ZW50KVwiXG4+XG4gICAgQGZvciAoaXRlbSBvZiB0YWJzOyB0cmFjayBpdGVtLnVJZDsgbGV0IGlkeCA9ICRpbmRleCkge1xuICAgICAgICA8bGlcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uY3NzQ2xhc3Nlc1wiXG4gICAgICAgICAgICBbY2xhc3MuZmQtaWNvbi10YWItYmFyX19pdGVtLS1jbG9zYWJsZV09XCJpdGVtLmNsb3NhYmxlXCJcbiAgICAgICAgICAgIGZka092ZXJmbG93TGlzdEl0ZW1cbiAgICAgICAgICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cIml0ZW0uaGlkZGVuXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19pdGVtXCJcbiAgICAgICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxuICAgICAgICA+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX190YWJcIlxuICAgICAgICAgICAgICAgICN0YWJJdGVtXG4gICAgICAgICAgICAgICAgcm9sZT1cInRhYlwiXG4gICAgICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiaWR4ID09PSAwID8gMCA6IC0xXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cIml0ZW0udUlkID09PSBzZWxlY3RlZFVpZFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9zZWxlY3RJdGVtKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJfa2V5RG93bkhhbmRsZXIoJGV2ZW50LCBpdGVtLCBpZHgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAaWYgKGl0ZW0/LnRpdGxlVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW0udGl0bGVUZW1wbGF0ZSB8fCBudWxsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9faWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1pY29uIFtnbHlwaF09XCJpdGVtLmljb25cIiBbZm9udF09XCJpdGVtLmljb25Gb250IHx8IF9kZWZhdWx0Rm9udEZhbWlseVwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5jb3VudGVyICYmICghaXRlbS5sYWJlbCB8fCAhc2hvd0xhYmVsKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19jb3VudGVyXCI+e3sgaXRlbS5jb3VudGVyIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChzaG93TGFiZWwgJiYgaXRlbS5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fZGV0YWlsc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19jb3VudGVyXCI+e3sgaXRlbS5jb3VudGVyIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19sYWJlbFwiPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uY29sb3IgfCBmZGtBc3luY09yU3luYzsgYXMgaXRlbUNvbG9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NyZWVucmVhZGVyLW9ubHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjb2xvckFzc29jaWF0aW9ucygpPy5baXRlbUNvbG9yXSB8fCBpdGVtQ29sb3IgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgQGlmIChpdGVtLmNsb3NhYmxlKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fYnV0dG9uLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2J1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiX2Nsb3NlVGFiKGl0ZW0udUlkKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1pY29uIGdseXBoPVwiZGVjbGluZVwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvbGk+XG4gICAgfVxuICAgIEBpZiAoX2V4dHJhSXRlbXMkKCkpIHtcbiAgICAgICAgPGxpIHJvbGU9XCJwcmVzZW50YXRpb25cIiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9faXRlbSBmZC1pY29uLXRhYi1iYXJfX2l0ZW0tLW92ZXJmbG93XCI+XG4gICAgICAgICAgICA8ZmRwLWljb24tdGFiLWJhci1wb3BvdmVyXG4gICAgICAgICAgICAgICAgW3Nob3dJdGVtTGFiZWxdPVwic2hvd0xhYmVsXCJcbiAgICAgICAgICAgICAgICBbaXNSdGxdPVwiaXNSdGxcIlxuICAgICAgICAgICAgICAgIFtleHRyYVRhYnNdPVwiX2V4dHJhVGFicyQoKVwiXG4gICAgICAgICAgICAgICAgW2NvbG9yQXNzb2NpYXRpb25zXT1cImNvbG9yQXNzb2NpYXRpb25zKClcIlxuICAgICAgICAgICAgICAgIChzZWxlY3RlZEV4dHJhSXRlbSk9XCJfc2VsZWN0RXh0cmFJdGVtKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChmb2N1c0ZpcnN0VmlzaWJsZUl0ZW0pPVwiX2ZvY3VzSXRlbSgwKVwiXG4gICAgICAgICAgICAgICAgKGZvY3VzTGFzdFZpc2libGVJdGVtKT1cIl9mb2N1c0l0ZW0oX2xhc3RWaXNpYmxlVGFiSW5kZXgpXCJcbiAgICAgICAgICAgICAgICAoY2xvc2VUYWIpPVwiX2Nsb3NlVGFiKCRldmVudCwgdHJ1ZSlcIlxuICAgICAgICAgICAgPjwvZmRwLWljb24tdGFiLWJhci1wb3BvdmVyPlxuICAgICAgICA8L2xpPlxuICAgIH1cbjwvdWw+XG4iXX0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Component, QueryList, ViewChild, ViewChildren } from '@angular/core';
|
|
2
2
|
import { take } from 'rxjs/operators';
|
|
3
|
+
import { NgTemplateOutlet } from '@angular/common';
|
|
3
4
|
import { AsyncOrSyncPipe, OverflowListDirective, OverflowListItemDirective } from '@fundamental-ngx/cdk/utils';
|
|
4
5
|
import { ButtonComponent } from '@fundamental-ngx/core/button';
|
|
5
6
|
import { IconComponent } from '@fundamental-ngx/core/icon';
|
|
@@ -185,7 +186,7 @@ export class IconTabBarProcessTypeComponent extends ClosableIconTabBar {
|
|
|
185
186
|
provide: IconTabBarBase,
|
|
186
187
|
useExisting: IconTabBarProcessTypeComponent
|
|
187
188
|
}
|
|
188
|
-
], viewQueries: [{ propertyName: "_tabBarPopover", first: true, predicate: IconTabBarPopoverComponent, descendants: true }, { propertyName: "_tabUIElements", predicate: ["tabItem"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ul\n class=\"fd-icon-tab-bar__header\"\n [class.fd-dynamic-page__tabs]=\"_inDynamicPage\"\n role=\"tablist\"\n #tablist\n [class.fd-icon-tab-bar__header--left-offset]=\"_showLeftBtn\"\n fdkOverflowList\n [isRtl]=\"isRtl\"\n [overflowOffset]=\"_offsetOverflowDirective\"\n (overflowChanged)=\"_recalculateVisibleItems($event)\"\n>\n @if (_showLeftBtn) {\n <li\n role=\"presentation\"\n class=\"fd-icon-tab-bar__item fd-icon-tab-bar__item--overflow fd-icon-tab-bar__item--overflow-left\"\n >\n <fdp-icon-tab-bar-popover\n [extraTabs]=\"_prevSteps\"\n [label]=\"_prevSteps.length.toString()\"\n [isSeparators]=\"true\"\n [colorAssociations]=\"colorAssociations()\"\n (selectedExtraItem)=\"_selectExtraItem($event)\"\n ></fdp-icon-tab-bar-popover>\n </li>\n }\n @for (item of tabs; track item.uId; let idx = $index) {\n <li\n [class]=\"item.cssClasses\"\n class=\"fd-icon-tab-bar__item\"\n role=\"presentation\"\n fdkOverflowListItem\n [attr.aria-hidden]=\"item.hidden\"\n >\n <a\n (click)=\"_selectItem(item)\"\n (keydown)=\"_keyDownHandler($event, item, idx)\"\n [attr.aria-selected]=\"item.uId === selectedUid\"\n class=\"fd-icon-tab-bar__tab\"\n #tabItem\n [attr.tabindex]=\"idx === 0 ? 0 : -1\"\n role=\"tab\"\n >\n @if (item.icon) {\n
|
|
189
|
+
], viewQueries: [{ propertyName: "_tabBarPopover", first: true, predicate: IconTabBarPopoverComponent, descendants: true }, { propertyName: "_tabUIElements", predicate: ["tabItem"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ul\n class=\"fd-icon-tab-bar__header\"\n [class.fd-dynamic-page__tabs]=\"_inDynamicPage\"\n role=\"tablist\"\n #tablist\n [class.fd-icon-tab-bar__header--left-offset]=\"_showLeftBtn\"\n fdkOverflowList\n [isRtl]=\"isRtl\"\n [overflowOffset]=\"_offsetOverflowDirective\"\n (overflowChanged)=\"_recalculateVisibleItems($event)\"\n>\n @if (_showLeftBtn) {\n <li\n role=\"presentation\"\n class=\"fd-icon-tab-bar__item fd-icon-tab-bar__item--overflow fd-icon-tab-bar__item--overflow-left\"\n >\n <fdp-icon-tab-bar-popover\n [extraTabs]=\"_prevSteps\"\n [label]=\"_prevSteps.length.toString()\"\n [isSeparators]=\"true\"\n [colorAssociations]=\"colorAssociations()\"\n (selectedExtraItem)=\"_selectExtraItem($event)\"\n ></fdp-icon-tab-bar-popover>\n </li>\n }\n @for (item of tabs; track item.uId; let idx = $index) {\n <li\n [class]=\"item.cssClasses\"\n class=\"fd-icon-tab-bar__item\"\n role=\"presentation\"\n fdkOverflowListItem\n [attr.aria-hidden]=\"item.hidden\"\n >\n <a\n (click)=\"_selectItem(item)\"\n (keydown)=\"_keyDownHandler($event, item, idx)\"\n [attr.aria-selected]=\"item.uId === selectedUid\"\n class=\"fd-icon-tab-bar__tab\"\n #tabItem\n [attr.tabindex]=\"idx === 0 ? 0 : -1\"\n role=\"tab\"\n >\n @if (item?.titleTemplate) {\n <ng-container [ngTemplateOutlet]=\"item.titleTemplate || null\"></ng-container>\n } @else {\n @if (item.icon) {\n <div class=\"fd-icon-tab-bar__container\">\n <span class=\"fd-icon-tab-bar__icon\">\n <fd-icon [glyph]=\"item.icon\"></fd-icon>\n </span>\n @if (item.badge) {\n <span class=\"fd-icon-tab-bar__badge\"></span>\n }\n </div>\n <div class=\"fd-icon-tab-bar__details\">\n <span class=\"fd-icon-tab-bar__counter\">{{ item.counter }}</span>\n <span class=\"fd-icon-tab-bar__label\">{{ item.label | fdkAsyncOrSync }}</span>\n </div>\n } @else {\n <span class=\"fd-icon-tab-bar__tag\">{{ item.label | fdkAsyncOrSync }}</span>\n @if (item.badge) {\n <span class=\"fd-icon-tab-bar__badge\"></span>\n }\n }\n @if (item.color | fdkAsyncOrSync; as itemColor) {\n <div class=\"screenreader-only\">\n {{ colorAssociations()?.[itemColor] || itemColor }}\n </div>\n }\n }\n </a>\n @if (item.closable) {\n <div class=\"fd-icon-tab-bar__button-container\">\n <button\n fd-button\n tabindex=\"-1\"\n class=\"fd-icon-tab-bar__button\"\n fdType=\"transparent\"\n (click)=\"_closeTab(item.uId)\"\n >\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </div>\n }\n @if (_lastVisibleTabIndex !== idx) {\n <span class=\"fd-icon-tab-bar__separator\">\n <fd-icon glyph=\"process\"></fd-icon>\n </span>\n }\n </li>\n }\n @if (_showRightBtn) {\n <li role=\"presentation\" class=\"fd-icon-tab-bar__item fd-icon-tab-bar__item--overflow\">\n <fdp-icon-tab-bar-popover\n [isRtl]=\"isRtl\"\n [extraTabs]=\"_nextSteps\"\n [isSeparators]=\"true\"\n [label]=\"_nextSteps.length.toString()\"\n [colorAssociations]=\"colorAssociations()\"\n (selectedExtraItem)=\"_selectExtraItem($event)\"\n (focusFirstVisibleItem)=\"_focusItem(0)\"\n (focusLastVisibleItem)=\"_focusItem(_lastVisibleTabIndex)\"\n (closeTab)=\"_closeTab($event, true)\"\n >\n </fdp-icon-tab-bar-popover>\n </li>\n }\n</ul>\n", dependencies: [{ kind: "directive", type: OverflowListDirective, selector: "[fdkOverflowList]", inputs: ["overflowOffset", "isRtl", "itemCssBlockValue"], outputs: ["overflowChanged"] }, { kind: "component", type: IconTabBarPopoverComponent, selector: "fdp-icon-tab-bar-popover", inputs: ["leftSide", "label", "showItemLabel"] }, { kind: "directive", type: OverflowListItemDirective, selector: "[fdkOverflowListItem]" }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "pipe", type: AsyncOrSyncPipe, name: "fdkAsyncOrSync" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
189
190
|
}
|
|
190
191
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: IconTabBarProcessTypeComponent, decorators: [{
|
|
191
192
|
type: Component,
|
|
@@ -200,8 +201,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
200
201
|
OverflowListItemDirective,
|
|
201
202
|
IconComponent,
|
|
202
203
|
ButtonComponent,
|
|
203
|
-
AsyncOrSyncPipe
|
|
204
|
-
|
|
204
|
+
AsyncOrSyncPipe,
|
|
205
|
+
NgTemplateOutlet
|
|
206
|
+
], template: "<ul\n class=\"fd-icon-tab-bar__header\"\n [class.fd-dynamic-page__tabs]=\"_inDynamicPage\"\n role=\"tablist\"\n #tablist\n [class.fd-icon-tab-bar__header--left-offset]=\"_showLeftBtn\"\n fdkOverflowList\n [isRtl]=\"isRtl\"\n [overflowOffset]=\"_offsetOverflowDirective\"\n (overflowChanged)=\"_recalculateVisibleItems($event)\"\n>\n @if (_showLeftBtn) {\n <li\n role=\"presentation\"\n class=\"fd-icon-tab-bar__item fd-icon-tab-bar__item--overflow fd-icon-tab-bar__item--overflow-left\"\n >\n <fdp-icon-tab-bar-popover\n [extraTabs]=\"_prevSteps\"\n [label]=\"_prevSteps.length.toString()\"\n [isSeparators]=\"true\"\n [colorAssociations]=\"colorAssociations()\"\n (selectedExtraItem)=\"_selectExtraItem($event)\"\n ></fdp-icon-tab-bar-popover>\n </li>\n }\n @for (item of tabs; track item.uId; let idx = $index) {\n <li\n [class]=\"item.cssClasses\"\n class=\"fd-icon-tab-bar__item\"\n role=\"presentation\"\n fdkOverflowListItem\n [attr.aria-hidden]=\"item.hidden\"\n >\n <a\n (click)=\"_selectItem(item)\"\n (keydown)=\"_keyDownHandler($event, item, idx)\"\n [attr.aria-selected]=\"item.uId === selectedUid\"\n class=\"fd-icon-tab-bar__tab\"\n #tabItem\n [attr.tabindex]=\"idx === 0 ? 0 : -1\"\n role=\"tab\"\n >\n @if (item?.titleTemplate) {\n <ng-container [ngTemplateOutlet]=\"item.titleTemplate || null\"></ng-container>\n } @else {\n @if (item.icon) {\n <div class=\"fd-icon-tab-bar__container\">\n <span class=\"fd-icon-tab-bar__icon\">\n <fd-icon [glyph]=\"item.icon\"></fd-icon>\n </span>\n @if (item.badge) {\n <span class=\"fd-icon-tab-bar__badge\"></span>\n }\n </div>\n <div class=\"fd-icon-tab-bar__details\">\n <span class=\"fd-icon-tab-bar__counter\">{{ item.counter }}</span>\n <span class=\"fd-icon-tab-bar__label\">{{ item.label | fdkAsyncOrSync }}</span>\n </div>\n } @else {\n <span class=\"fd-icon-tab-bar__tag\">{{ item.label | fdkAsyncOrSync }}</span>\n @if (item.badge) {\n <span class=\"fd-icon-tab-bar__badge\"></span>\n }\n }\n @if (item.color | fdkAsyncOrSync; as itemColor) {\n <div class=\"screenreader-only\">\n {{ colorAssociations()?.[itemColor] || itemColor }}\n </div>\n }\n }\n </a>\n @if (item.closable) {\n <div class=\"fd-icon-tab-bar__button-container\">\n <button\n fd-button\n tabindex=\"-1\"\n class=\"fd-icon-tab-bar__button\"\n fdType=\"transparent\"\n (click)=\"_closeTab(item.uId)\"\n >\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </div>\n }\n @if (_lastVisibleTabIndex !== idx) {\n <span class=\"fd-icon-tab-bar__separator\">\n <fd-icon glyph=\"process\"></fd-icon>\n </span>\n }\n </li>\n }\n @if (_showRightBtn) {\n <li role=\"presentation\" class=\"fd-icon-tab-bar__item fd-icon-tab-bar__item--overflow\">\n <fdp-icon-tab-bar-popover\n [isRtl]=\"isRtl\"\n [extraTabs]=\"_nextSteps\"\n [isSeparators]=\"true\"\n [label]=\"_nextSteps.length.toString()\"\n [colorAssociations]=\"colorAssociations()\"\n (selectedExtraItem)=\"_selectExtraItem($event)\"\n (focusFirstVisibleItem)=\"_focusItem(0)\"\n (focusLastVisibleItem)=\"_focusItem(_lastVisibleTabIndex)\"\n (closeTab)=\"_closeTab($event, true)\"\n >\n </fdp-icon-tab-bar-popover>\n </li>\n }\n</ul>\n" }]
|
|
205
207
|
}], propDecorators: { _tabUIElements: [{
|
|
206
208
|
type: ViewChildren,
|
|
207
209
|
args: ['tabItem']
|
|
@@ -209,4 +211,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
209
211
|
type: ViewChild,
|
|
210
212
|
args: [IconTabBarPopoverComponent]
|
|
211
213
|
}] } });
|
|
212
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10YWItYmFyLXByb2Nlc3MtdHlwZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2ljb24tdGFiLWJhci9jb21wb25lbnRzL2ljb24tdGFiLWJhci1wcm9jZXNzLXR5cGUvaWNvbi10YWItYmFyLXByb2Nlc3MtdHlwZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2ljb24tdGFiLWJhci9jb21wb25lbnRzL2ljb24tdGFiLWJhci1wcm9jZXNzLXR5cGUvaWNvbi10YWItYmFyLXByb2Nlc3MtdHlwZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLHFCQUFxQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0csT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQzs7QUFxQjdHLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxrQkFBa0I7SUFuQnRFOztRQTBC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QUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDOzhHQXJNUSw4QkFBOEI7a0dBQTlCLDhCQUE4Qiw0RUFmNUI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsY0FBYztnQkFDdkIsV0FBVyxFQUFFLDhCQUE4QjthQUM5QztTQUNKLDBFQWVVLDBCQUEwQixzSkNyQ3pDLG14SUF3R0EsNENEaEZRLHFCQUFxQixzSkFDckIsMEJBQTBCLHFIQUMxQix5QkFBeUIsa0VBQ3pCLGFBQWEsMElBQ2IsZUFBZSxvSUFDZixlQUFlOzsyRkFHViw4QkFBOEI7a0JBbkIxQyxTQUFTOytCQUNJLCtCQUErQixjQUU3QixJQUFJLGFBQ0w7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGNBQWM7NEJBQ3ZCLFdBQVcsZ0NBQWdDO3lCQUM5QztxQkFDSixXQUNRO3dCQUNMLHFCQUFxQjt3QkFDckIsMEJBQTBCO3dCQUMxQix5QkFBeUI7d0JBQ3pCLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixlQUFlO3FCQUNsQjs4QkFJd0IsY0FBYztzQkFBdEMsWUFBWTt1QkFBQyxTQUFTO2dCQUdnQixjQUFjO3NCQUFwRCxTQUFTO3VCQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgUXVlcnlMaXN0LCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQXN5bmNPclN5bmNQaXBlLCBPdmVyZmxvd0xpc3REaXJlY3RpdmUsIE92ZXJmbG93TGlzdEl0ZW1EaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYnV0dG9uJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvaWNvbic7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgSUNPTl9UQUJfSElEREVOX0NMQVNTX05BTUUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgSWNvblRhYkJhckl0ZW0gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2ljb24tdGFiLWJhci1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDbG9zYWJsZUljb25UYWJCYXIgfSBmcm9tICcuLi9jbG9zYWJsZS1pY29uLXRhYi1iYXIuY2xhc3MnO1xuaW1wb3J0IHsgSWNvblRhYkJhckJhc2UgfSBmcm9tICcuLi9pY29uLXRhYi1iYXItYmFzZS5jbGFzcyc7XG5pbXBvcnQgeyBJY29uVGFiQmFyUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4uL3BvcG92ZXJzL2ljb24tdGFiLWJhci1wb3BvdmVyL2ljb24tdGFiLWJhci1wb3BvdmVyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLWljb24tdGFiLWJhci1wcm9jZXNzLXR5cGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pY29uLXRhYi1iYXItcHJvY2Vzcy10eXBlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBJY29uVGFiQmFyQmFzZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBJY29uVGFiQmFyUHJvY2Vzc1R5cGVDb21wb25lbnRcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBPdmVyZmxvd0xpc3REaXJlY3RpdmUsXG4gICAgICAgIEljb25UYWJCYXJQb3BvdmVyQ29tcG9uZW50LFxuICAgICAgICBPdmVyZmxvd0xpc3RJdGVtRGlyZWN0aXZlLFxuICAgICAgICBJY29uQ29tcG9uZW50LFxuICAgICAgICBCdXR0b25Db21wb25lbnQsXG4gICAgICAgIEFzeW5jT3JTeW5jUGlwZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgSWNvblRhYkJhclByb2Nlc3NUeXBlQ29tcG9uZW50IGV4dGVuZHMgQ2xvc2FibGVJY29uVGFiQmFyIHtcbiAgICAvKiogQGhpZGRlbiBsaXN0IG9mIHRhYiBodG1sIGVsZW1lbnRzLCB0aGF0IGNhbiByZWNlaXZlIGZvY3VzICovXG4gICAgQFZpZXdDaGlsZHJlbigndGFiSXRlbScpIF90YWJVSUVsZW1lbnRzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKEljb25UYWJCYXJQb3BvdmVyQ29tcG9uZW50KSBfdGFiQmFyUG9wb3ZlcjogSWNvblRhYkJhclBvcG92ZXJDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9vZmZzZXRPdmVyZmxvd0RpcmVjdGl2ZSA9IDMwO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEFuIGFycmF5IGNvbnRhaW5pbmcgZXh0cmEgdGFicyBmb3IgdGhlIG5leHQgc3RlcHNcbiAgICAgKi9cbiAgICBfbmV4dFN0ZXBzOiBJY29uVGFiQmFySXRlbVtdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQW4gYXJyYXkgY29udGFpbmluZyBleHRyYSB0YWJzIGZvciB0aGUgbmV4dCBzdGVwc1xuICAgICAqL1xuICAgIF9wcmV2U3RlcHM6IEljb25UYWJCYXJJdGVtW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3Nob3dMZWZ0QnRuID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zaG93UmlnaHRCdG4gPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2FuY2hvckluZGV4Rm9yRXh0cmFCdG5EaXJlY3RpdmU6IG51bWJlcjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZmlyc3RWaXNpYmxlVGFiSW5kZXggPSAwO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jdXJyZW50U3RlcEluZGV4ID0gMDtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gc2VsZWN0ZWRJdGVtXG4gICAgICovXG4gICAgX3NlbGVjdEl0ZW0oc2VsZWN0ZWRJdGVtOiBJY29uVGFiQmFySXRlbSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jdXJyZW50U3RlcEluZGV4ID0gc2VsZWN0ZWRJdGVtLmluZGV4O1xuICAgICAgICBzdXBlci5fc2VsZWN0SXRlbShzZWxlY3RlZEl0ZW0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gc2VsZWN0ZWRJdGVtXG4gICAgICogQGRlc2NyaXB0aW9uIHNlbGVjdCBleHRyYSBpdGVtIGluc2lkZSBwb3BvdmVyXG4gICAgICovXG4gICAgYXN5bmMgX3NlbGVjdEV4dHJhSXRlbShzZWxlY3RlZEl0ZW06IEljb25UYWJCYXJJdGVtKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRTdGVwSW5kZXggPSBzZWxlY3RlZEl0ZW0uaW5kZXg7XG4gICAgICAgIGxldCBhbW91bnRPZlByZXZpb3VzU3RlcHM7XG4gICAgICAgIGxldCBhbW91bnRPZk5leHRTdGVwcztcbiAgICAgICAgLy8gV2UgaGF2ZSB0byBjYXNlcyAoc3RyYXRlZ3kpIGZvciBvdmVyZmxvdyBleHRyYSB0YWJzLlxuICAgICAgICAvLyAxKSBXaGVuIHVzZXIgY2xpY2sgb24gc3RlcCBpbnNpZGUgcHJldmlvdXMgc3RlcHMgcG9wb3ZlclxuICAgICAgICAvLyAyKSBXaGVuIHVzZXIgY2xpY2sgb24gc3RlcCBpbnNpZGUgbmV4dCBzdGVwcyBwb3BvdmVyXG4gICAgICAgIGxldCBpc1ByZXZpb3VzU3RlcHNTdHJhdGVneTogYm9vbGVhbjtcbiAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRTdGVwSW5kZXggPiB0aGlzLl9sYXN0VmlzaWJsZVRhYkluZGV4KSB7XG4gICAgICAgICAgICBhbW91bnRPZk5leHRTdGVwcyA9IHRoaXMuX25leHRTdGVwcy5sZW5ndGggLSAodGhpcy5fY3VycmVudFN0ZXBJbmRleCAtIHRoaXMuX2xhc3RWaXNpYmxlVGFiSW5kZXgpO1xuICAgICAgICAgICAgdGhpcy5fc2hvd1JpZ2h0QnRuID0gYW1vdW50T2ZOZXh0U3RlcHMgPiAwO1xuICAgICAgICAgICAgdGhpcy5fc2hvd0xlZnRCdG4gPSB0cnVlO1xuICAgICAgICAgICAgaXNQcmV2aW91c1N0ZXBzU3RyYXRlZ3kgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFtb3VudE9mUHJldmlvdXNTdGVwcyA9IHRoaXMuX3ByZXZTdGVwcy5sZW5ndGggLSAodGhpcy5fZmlyc3RWaXNpYmxlVGFiSW5kZXggLSB0aGlzLl9jdXJyZW50U3RlcEluZGV4KTtcbiAgICAgICAgICAgIHRoaXMuX3Nob3dSaWdodEJ0biA9IHRydWU7XG4gICAgICAgICAgICBpc1ByZXZpb3VzU3RlcHNTdHJhdGVneSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9zaG93TGVmdEJ0biA9IGFtb3VudE9mUHJldmlvdXNTdGVwcyA+IDA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2VsZWN0SXRlbShzZWxlY3RlZEl0ZW0pO1xuXG4gICAgICAgIHRoaXMuX25nWm9uZS5vbk1pY3JvdGFza0VtcHR5LnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLm92ZXJmbG93RGlyZWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXh0cmEgPSB0aGlzLm92ZXJmbG93RGlyZWN0aXZlLmdldEFtb3VudE9mRXh0cmFJdGVtcygpO1xuICAgICAgICAgICAgICAgIGlzUHJldmlvdXNTdGVwc1N0cmF0ZWd5XG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5yZWNhbGN1bGF0ZUl0ZW1zQnlQcmV2QXJyKGV4dHJhLCBhbW91bnRPZlByZXZpb3VzU3RlcHMpXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5fcmVjYWxjdWxhdGVJdGVtc0J5TmV4dEFycihleHRyYSwgYW1vdW50T2ZOZXh0U3RlcHMpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSBleHRyYUl0ZW1zXG4gICAgICogQGRlc2NyaXB0aW9uIHJlY2FsY3VsYXRlIF9uZXh0U3RlcHMgYW5kIF9wcmV2U3RlcHMgYXJyYXkgaWYgd2UgaGF2ZSBleHRyYSBpdGVtc1xuICAgICAqL1xuICAgIF9yZWNhbGN1bGF0ZVZpc2libGVJdGVtcyhleHRyYUl0ZW1zOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYW1vdW50T2ZQcmV2U3RlcHMgPSB0aGlzLl9jdXJyZW50U3RlcEluZGV4ID4gZXh0cmFJdGVtcyA/IGV4dHJhSXRlbXMgOiB0aGlzLl9jdXJyZW50U3RlcEluZGV4O1xuICAgICAgICB0aGlzLnJlY2FsY3VsYXRlSXRlbXNCeVByZXZBcnIoZXh0cmFJdGVtcywgYW1vdW50T2ZQcmV2U3RlcHMpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY2xlYXJFeHRyYUxpc3QoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX25leHRTdGVwcyA9IFtdO1xuICAgICAgICB0aGlzLl9wcmV2U3RlcHMgPSBbXTtcbiAgICAgICAgdGhpcy50YWJzLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGl0ZW0uaGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICBpdGVtLmNzc0NsYXNzZXMgPSBpdGVtLmNzc0NsYXNzZXMuZmlsdGVyKChjc3NDbGFzcykgPT4gY3NzQ2xhc3MgIT09IElDT05fVEFCX0hJRERFTl9DTEFTU19OQU1FKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSBleHRyYUl0ZW1zXG4gICAgICogQHBhcmFtIGFtb3VudE9mTmV4dFN0ZXBzXG4gICAgICogQGRlc2NyaXB0aW9uIFdlIGZpbGwgdGhlIGFycmF5IG9mIHRoZSBuZXh0IHN0ZXBzIHRvIHRoZSBzZWxlY3RlZCB0YWIsXG4gICAgICogYmFzZWQgb24gdGhpcyB3ZSBnZW5lcmF0ZSB0aGUgYXJyYXkgb2YgdGhlIHByZXZpb3VzIHN0ZXBzIGlmIGl0IGlzIG5lY2Vzc2FyeVxuICAgICAqL1xuICAgIHByaXZhdGUgX3JlY2FsY3VsYXRlSXRlbXNCeU5leHRBcnIoZXh0cmFJdGVtczogbnVtYmVyLCBhbW91bnRPZk5leHRTdGVwczogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NsZWFyRXh0cmFMaXN0KCk7XG4gICAgICAgIGlmICghZXh0cmFJdGVtcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRhYnMgPSBbLi4udGhpcy50YWJzXTtcbiAgICAgICAgY29uc3QgdmlzaWJsZUFtb3VudE9mSXRlbXMgPSB0YWJzLmxlbmd0aCAtIGV4dHJhSXRlbXM7XG4gICAgICAgIGZvciAobGV0IGkgPSB0YWJzLmxlbmd0aCAtIGFtb3VudE9mTmV4dFN0ZXBzOyBpIDwgdGFicy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5fbmV4dFN0ZXBzLnB1c2goY2xvbmVEZWVwKHRhYnNbaV0pKTtcbiAgICAgICAgICAgIHRhYnNbaV0uaGlkZGVuID0gdHJ1ZTtcbiAgICAgICAgICAgIHRhYnNbaV0uY3NzQ2xhc3Nlcy5wdXNoKElDT05fVEFCX0hJRERFTl9DTEFTU19OQU1FKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3Nob3dSaWdodEJ0biA9ICEhdGhpcy5fbmV4dFN0ZXBzLmxlbmd0aDtcbiAgICAgICAgdGhpcy5fZmlyc3RWaXNpYmxlVGFiSW5kZXggPSB0YWJzLmxlbmd0aCAtIHZpc2libGVBbW91bnRPZkl0ZW1zIC0gdGhpcy5fbmV4dFN0ZXBzLmxlbmd0aDtcbiAgICAgICAgdGhpcy5fbGFzdFZpc2libGVUYWJJbmRleCA9IHRhYnMubGVuZ3RoIC0gYW1vdW50T2ZOZXh0U3RlcHMgLSAxO1xuXG4gICAgICAgIGlmICh0aGlzLl9uZXh0U3RlcHMubGVuZ3RoID09PSBleHRyYUl0ZW1zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgYW1vdW50T2ZQcmV2U3RlcHMgPSBleHRyYUl0ZW1zIC0gdGhpcy5fbmV4dFN0ZXBzLmxlbmd0aDtcbiAgICAgICAgbGV0IG5leHRJbmRleCA9IHRoaXMuX2ZpcnN0VmlzaWJsZVRhYkluZGV4IC0gMTtcbiAgICAgICAgd2hpbGUgKGFtb3VudE9mUHJldlN0ZXBzID4gMCkge1xuICAgICAgICAgICAgdGhpcy5fcHJldlN0ZXBzLnB1c2goY2xvbmVEZWVwKHRhYnNbbmV4dEluZGV4XSkpO1xuICAgICAgICAgICAgdGFic1tuZXh0SW5kZXhdLmhpZGRlbiA9IHRydWU7XG4gICAgICAgICAgICB0YWJzW25leHRJbmRleF0uY3NzQ2xhc3Nlcy5wdXNoKElDT05fVEFCX0hJRERFTl9DTEFTU19OQU1FKTtcblxuICAgICAgICAgICAgLS1uZXh0SW5kZXg7XG4gICAgICAgICAgICAtLWFtb3VudE9mUHJldlN0ZXBzO1xuICAgICAgICB9XG4gICAgICAgIC8vIEFkZGVkICsxIGZvciBsZWZ0IGJ1dHRvblxuICAgICAgICB0aGlzLl9hbmNob3JJbmRleEZvckV4dHJhQnRuRGlyZWN0aXZlID0gdGhpcy5fcHJldlN0ZXBzLmxlbmd0aFxuICAgICAgICAgICAgPyB0aGlzLl9wcmV2U3RlcHMubGVuZ3RoICsgdmlzaWJsZUFtb3VudE9mSXRlbXNcbiAgICAgICAgICAgIDogdGhpcy5fcHJldlN0ZXBzLmxlbmd0aCArIHZpc2libGVBbW91bnRPZkl0ZW1zIC0gMTtcblxuICAgICAgICB0aGlzLl9zaG93TGVmdEJ0biA9ICEhdGhpcy5fcHJldlN0ZXBzLmxlbmd0aDtcbiAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gZXh0cmFJdGVtc1xuICAgICAqIEBwYXJhbSBhbW91bnRPZlByZXZpb3VzU3RlcHNcbiAgICAgKiBAZGVzY3JpcHRpb24gV2UgZmlsbCB0aGUgYXJyYXkgb2YgdGhlIHByZXZpb3VzIHN0ZXBzIHRvIHRoZSBzZWxlY3RlZCB0YWIsXG4gICAgICogYmFzZWQgb24gdGhpcyB3ZSBnZW5lcmF0ZSB0aGUgYXJyYXkgb2YgdGhlIG5leHQgc3RlcHMgaWYgaXQgaXMgbmVjZXNzYXJ5XG4gICAgICovXG4gICAgcHJpdmF0ZSByZWNhbGN1bGF0ZUl0ZW1zQnlQcmV2QXJyKGV4dHJhSXRlbXM6IG51bWJlciwgYW1vdW50T2ZQcmV2aW91c1N0ZXBzOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2xlYXJFeHRyYUxpc3QoKTtcbiAgICAgICAgaWYgKCFleHRyYUl0ZW1zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGFicyA9IFsuLi50aGlzLnRhYnNdO1xuICAgICAgICBjb25zdCB2aXNpYmxlQW1vdW50T2ZJdGVtcyA9IHRhYnMubGVuZ3RoIC0gZXh0cmFJdGVtcztcbiAgICAgICAgZm9yIChsZXQgaSA9IGFtb3VudE9mUHJldmlvdXNTdGVwcyAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICB0aGlzLl9wcmV2U3RlcHMucHVzaChjbG9uZURlZXAodGFic1tpXSkpO1xuICAgICAgICAgICAgdGFic1tpXS5oaWRkZW4gPSB0cnVlO1xuICAgICAgICAgICAgdGFic1tpXS5jc3NDbGFzc2VzLnB1c2goSUNPTl9UQUJfSElEREVOX0NMQVNTX05BTUUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZmlyc3RWaXNpYmxlVGFiSW5kZXggPSB0aGlzLl9wcmV2U3RlcHMubGVuZ3RoO1xuICAgICAgICB0aGlzLl9sYXN0VmlzaWJsZVRhYkluZGV4ID0gdGhpcy5fcHJldlN0ZXBzLmxlbmd0aCArIHZpc2libGVBbW91bnRPZkl0ZW1zIC0gMTtcbiAgICAgICAgdGhpcy5fc2hvd0xlZnRCdG4gPSAhIXRoaXMuX3ByZXZTdGVwcy5sZW5ndGg7XG5cbiAgICAgICAgaWYgKHRoaXMuX3ByZXZTdGVwcy5sZW5ndGggPT09IGV4dHJhSXRlbXMpIHtcbiAgICAgICAgICAgIHRoaXMuX3Nob3dSaWdodEJ0biA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGFtb3VudE9mTmV4dFN0ZXBzID0gZXh0cmFJdGVtcyAtIHRoaXMuX3ByZXZTdGVwcy5sZW5ndGg7XG4gICAgICAgIGxldCBuZXh0SW5kZXggPSB0aGlzLl9wcmV2U3RlcHMubGVuZ3RoID8gdGhpcy5fcHJldlN0ZXBzLmxlbmd0aCArIHZpc2libGVBbW91bnRPZkl0ZW1zIDogdmlzaWJsZUFtb3VudE9mSXRlbXM7XG4gICAgICAgIHdoaWxlIChhbW91bnRPZk5leHRTdGVwcyA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuX25leHRTdGVwcy5wdXNoKGNsb25lRGVlcCh0YWJzW25leHRJbmRleF0pKTtcbiAgICAgICAgICAgIHRhYnNbbmV4dEluZGV4XS5oaWRkZW4gPSB0cnVlO1xuICAgICAgICAgICAgdGFic1tuZXh0SW5kZXhdLmNzc0NsYXNzZXMucHVzaChJQ09OX1RBQl9ISURERU5fQ0xBU1NfTkFNRSk7XG5cbiAgICAgICAgICAgICsrbmV4dEluZGV4O1xuICAgICAgICAgICAgLS1hbW91bnRPZk5leHRTdGVwcztcbiAgICAgICAgfVxuICAgICAgICAvLyBBZGQgKzEgZm9yIGxlZnQgYnRuXG4gICAgICAgIHRoaXMuX2FuY2hvckluZGV4Rm9yRXh0cmFCdG5EaXJlY3RpdmUgPSB0aGlzLl9wcmV2U3RlcHMubGVuZ3RoXG4gICAgICAgICAgICA/IHRoaXMuX3ByZXZTdGVwcy5sZW5ndGggKyB2aXNpYmxlQW1vdW50T2ZJdGVtc1xuICAgICAgICAgICAgOiB0aGlzLl9wcmV2U3RlcHMubGVuZ3RoICsgdmlzaWJsZUFtb3VudE9mSXRlbXMgLSAxO1xuXG4gICAgICAgIHRoaXMuX3Nob3dSaWdodEJ0biA9ICEhdGhpcy5fbmV4dFN0ZXBzLmxlbmd0aDtcbiAgICAgICAgdGhpcy5fb2Zmc2V0T3ZlcmZsb3dEaXJlY3RpdmUgPSB0aGlzLl9uZXh0U3RlcHMubGVuZ3RoID8gNzAgOiAwO1xuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxufVxuIiwiPHVsXG4gICAgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2hlYWRlclwiXG4gICAgW2NsYXNzLmZkLWR5bmFtaWMtcGFnZV9fdGFic109XCJfaW5EeW5hbWljUGFnZVwiXG4gICAgcm9sZT1cInRhYmxpc3RcIlxuICAgICN0YWJsaXN0XG4gICAgW2NsYXNzLmZkLWljb24tdGFiLWJhcl9faGVhZGVyLS1sZWZ0LW9mZnNldF09XCJfc2hvd0xlZnRCdG5cIlxuICAgIGZka092ZXJmbG93TGlzdFxuICAgIFtpc1J0bF09XCJpc1J0bFwiXG4gICAgW292ZXJmbG93T2Zmc2V0XT1cIl9vZmZzZXRPdmVyZmxvd0RpcmVjdGl2ZVwiXG4gICAgKG92ZXJmbG93Q2hhbmdlZCk9XCJfcmVjYWxjdWxhdGVWaXNpYmxlSXRlbXMoJGV2ZW50KVwiXG4+XG4gICAgQGlmIChfc2hvd0xlZnRCdG4pIHtcbiAgICAgICAgPGxpXG4gICAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19pdGVtIGZkLWljb24tdGFiLWJhcl9faXRlbS0tb3ZlcmZsb3cgZmQtaWNvbi10YWItYmFyX19pdGVtLS1vdmVyZmxvdy1sZWZ0XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGZkcC1pY29uLXRhYi1iYXItcG9wb3ZlclxuICAgICAgICAgICAgICAgIFtleHRyYVRhYnNdPVwiX3ByZXZTdGVwc1wiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIl9wcmV2U3RlcHMubGVuZ3RoLnRvU3RyaW5nKClcIlxuICAgICAgICAgICAgICAgIFtpc1NlcGFyYXRvcnNdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2NvbG9yQXNzb2NpYXRpb25zXT1cImNvbG9yQXNzb2NpYXRpb25zKClcIlxuICAgICAgICAgICAgICAgIChzZWxlY3RlZEV4dHJhSXRlbSk9XCJfc2VsZWN0RXh0cmFJdGVtKCRldmVudClcIlxuICAgICAgICAgICAgPjwvZmRwLWljb24tdGFiLWJhci1wb3BvdmVyPlxuICAgICAgICA8L2xpPlxuICAgIH1cbiAgICBAZm9yIChpdGVtIG9mIHRhYnM7IHRyYWNrIGl0ZW0udUlkOyBsZXQgaWR4ID0gJGluZGV4KSB7XG4gICAgICAgIDxsaVxuICAgICAgICAgICAgW2NsYXNzXT1cIml0ZW0uY3NzQ2xhc3Nlc1wiXG4gICAgICAgICAgICBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9faXRlbVwiXG4gICAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgICAgIGZka092ZXJmbG93TGlzdEl0ZW1cbiAgICAgICAgICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cIml0ZW0uaGlkZGVuXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiX3NlbGVjdEl0ZW0oaXRlbSlcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duKT1cIl9rZXlEb3duSGFuZGxlcigkZXZlbnQsIGl0ZW0sIGlkeClcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXRlbS51SWQgPT09IHNlbGVjdGVkVWlkXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fdGFiXCJcbiAgICAgICAgICAgICAgICAjdGFiSXRlbVxuICAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cImlkeCA9PT0gMCA/IDAgOiAtMVwiXG4gICAgICAgICAgICAgICAgcm9sZT1cInRhYlwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQGlmIChpdGVtLmljb24pIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9faWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1pY29uIFtnbHlwaF09XCJpdGVtLmljb25cIj48L2ZkLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uYmFkZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fYmFkZ2VcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19kZXRhaWxzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fY291bnRlclwiPnt7IGl0ZW0uY291bnRlciB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19sYWJlbFwiPnt7IGl0ZW0ubGFiZWwgfCBmZGtBc3luY09yU3luYyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX190YWdcIj57eyBpdGVtLmxhYmVsIHwgZmRrQXN5bmNPclN5bmMgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5iYWRnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2JhZGdlXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5jb2xvciB8IGZka0FzeW5jT3JTeW5jOyBhcyBpdGVtQ29sb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjcmVlbnJlYWRlci1vbmx5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBjb2xvckFzc29jaWF0aW9ucygpPy5baXRlbUNvbG9yXSB8fCBpdGVtQ29sb3IgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgQGlmIChpdGVtLmNsb3NhYmxlKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fYnV0dG9uLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2J1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiX2Nsb3NlVGFiKGl0ZW0udUlkKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1pY29uIGdseXBoPVwiZGVjbGluZVwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKF9sYXN0VmlzaWJsZVRhYkluZGV4ICE9PSBpZHgpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fc2VwYXJhdG9yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1pY29uIGdseXBoPVwicHJvY2Vzc1wiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvbGk+XG4gICAgfVxuICAgIEBpZiAoX3Nob3dSaWdodEJ0bikge1xuICAgICAgICA8bGkgcm9sZT1cInByZXNlbnRhdGlvblwiIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19pdGVtIGZkLWljb24tdGFiLWJhcl9faXRlbS0tb3ZlcmZsb3dcIj5cbiAgICAgICAgICAgIDxmZHAtaWNvbi10YWItYmFyLXBvcG92ZXJcbiAgICAgICAgICAgICAgICBbaXNSdGxdPVwiaXNSdGxcIlxuICAgICAgICAgICAgICAgIFtleHRyYVRhYnNdPVwiX25leHRTdGVwc1wiXG4gICAgICAgICAgICAgICAgW2lzU2VwYXJhdG9yc109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiX25leHRTdGVwcy5sZW5ndGgudG9TdHJpbmcoKVwiXG4gICAgICAgICAgICAgICAgW2NvbG9yQXNzb2NpYXRpb25zXT1cImNvbG9yQXNzb2NpYXRpb25zKClcIlxuICAgICAgICAgICAgICAgIChzZWxlY3RlZEV4dHJhSXRlbSk9XCJfc2VsZWN0RXh0cmFJdGVtKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChmb2N1c0ZpcnN0VmlzaWJsZUl0ZW0pPVwiX2ZvY3VzSXRlbSgwKVwiXG4gICAgICAgICAgICAgICAgKGZvY3VzTGFzdFZpc2libGVJdGVtKT1cIl9mb2N1c0l0ZW0oX2xhc3RWaXNpYmxlVGFiSW5kZXgpXCJcbiAgICAgICAgICAgICAgICAoY2xvc2VUYWIpPVwiX2Nsb3NlVGFiKCRldmVudCwgdHJ1ZSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9mZHAtaWNvbi10YWItYmFyLXBvcG92ZXI+XG4gICAgICAgIDwvbGk+XG4gICAgfVxuPC91bD5cbiJdfQ==
|
|
214
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10YWItYmFyLXByb2Nlc3MtdHlwZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2ljb24tdGFiLWJhci9jb21wb25lbnRzL2ljb24tdGFiLWJhci1wcm9jZXNzLXR5cGUvaWNvbi10YWItYmFyLXByb2Nlc3MtdHlwZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2ljb24tdGFiLWJhci9jb21wb25lbnRzL2ljb24tdGFiLWJhci1wcm9jZXNzLXR5cGUvaWNvbi10YWItYmFyLXByb2Nlc3MtdHlwZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLHFCQUFxQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0csT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQzs7QUFz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QUMsQ0FBQyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDOzhHQXJNUSw4QkFBOEI7a0dBQTlCLDhCQUE4Qiw0RUFoQjVCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGNBQWM7Z0JBQ3ZCLFdBQVcsRUFBRSw4QkFBOEI7YUFDOUM7U0FDSiwwRUFnQlUsMEJBQTBCLHNKQ3ZDekMsbWpKQTRHQSw0Q0RuRlEscUJBQXFCLHNKQUNyQiwwQkFBMEIscUhBQzFCLHlCQUF5QixrRUFDekIsYUFBYSwwSUFDYixlQUFlLG9JQUNmLGVBQWUsdURBQ2YsZ0JBQWdCOzsyRkFHWCw4QkFBOEI7a0JBcEIxQyxTQUFTOytCQUNJLCtCQUErQixjQUU3QixJQUFJLGFBQ0w7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGNBQWM7NEJBQ3ZCLFdBQVcsZ0NBQWdDO3lCQUM5QztxQkFDSixXQUNRO3dCQUNMLHFCQUFxQjt3QkFDckIsMEJBQTBCO3dCQUMxQix5QkFBeUI7d0JBQ3pCLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGdCQUFnQjtxQkFDbkI7OEJBSXdCLGNBQWM7c0JBQXRDLFlBQVk7dUJBQUMsU0FBUztnQkFHZ0IsY0FBYztzQkFBcEQsU0FBUzt1QkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQXN5bmNPclN5bmNQaXBlLCBPdmVyZmxvd0xpc3REaXJlY3RpdmUsIE92ZXJmbG93TGlzdEl0ZW1EaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYnV0dG9uJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvaWNvbic7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgSUNPTl9UQUJfSElEREVOX0NMQVNTX05BTUUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgSWNvblRhYkJhckl0ZW0gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2ljb24tdGFiLWJhci1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDbG9zYWJsZUljb25UYWJCYXIgfSBmcm9tICcuLi9jbG9zYWJsZS1pY29uLXRhYi1iYXIuY2xhc3MnO1xuaW1wb3J0IHsgSWNvblRhYkJhckJhc2UgfSBmcm9tICcuLi9pY29uLXRhYi1iYXItYmFzZS5jbGFzcyc7XG5pbXBvcnQgeyBJY29uVGFiQmFyUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4uL3BvcG92ZXJzL2ljb24tdGFiLWJhci1wb3BvdmVyL2ljb24tdGFiLWJhci1wb3BvdmVyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLWljb24tdGFiLWJhci1wcm9jZXNzLXR5cGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pY29uLXRhYi1iYXItcHJvY2Vzcy10eXBlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBJY29uVGFiQmFyQmFzZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBJY29uVGFiQmFyUHJvY2Vzc1R5cGVDb21wb25lbnRcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBPdmVyZmxvd0xpc3REaXJlY3RpdmUsXG4gICAgICAgIEljb25UYWJCYXJQb3BvdmVyQ29tcG9uZW50LFxuICAgICAgICBPdmVyZmxvd0xpc3RJdGVtRGlyZWN0aXZlLFxuICAgICAgICBJY29uQ29tcG9uZW50LFxuICAgICAgICBCdXR0b25Db21wb25lbnQsXG4gICAgICAgIEFzeW5jT3JTeW5jUGlwZSxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgSWNvblRhYkJhclByb2Nlc3NUeXBlQ29tcG9uZW50IGV4dGVuZHMgQ2xvc2FibGVJY29uVGFiQmFyIHtcbiAgICAvKiogQGhpZGRlbiBsaXN0IG9mIHRhYiBodG1sIGVsZW1lbnRzLCB0aGF0IGNhbiByZWNlaXZlIGZvY3VzICovXG4gICAgQFZpZXdDaGlsZHJlbigndGFiSXRlbScpIF90YWJVSUVsZW1lbnRzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKEljb25UYWJCYXJQb3BvdmVyQ29tcG9uZW50KSBfdGFiQmFyUG9wb3ZlcjogSWNvblRhYkJhclBvcG92ZXJDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9vZmZzZXRPdmVyZmxvd0RpcmVjdGl2ZSA9IDMwO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEFuIGFycmF5IGNvbnRhaW5pbmcgZXh0cmEgdGFicyBmb3IgdGhlIG5leHQgc3RlcHNcbiAgICAgKi9cbiAgICBfbmV4dFN0ZXBzOiBJY29uVGFiQmFySXRlbVtdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQW4gYXJyYXkgY29udGFpbmluZyBleHRyYSB0YWJzIGZvciB0aGUgbmV4dCBzdGVwc1xuICAgICAqL1xuICAgIF9wcmV2U3RlcHM6IEljb25UYWJCYXJJdGVtW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3Nob3dMZWZ0QnRuID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zaG93UmlnaHRCdG4gPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2FuY2hvckluZGV4Rm9yRXh0cmFCdG5EaXJlY3RpdmU6IG51bWJlcjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZmlyc3RWaXNpYmxlVGFiSW5kZXggPSAwO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jdXJyZW50U3RlcEluZGV4ID0gMDtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gc2VsZWN0ZWRJdGVtXG4gICAgICovXG4gICAgX3NlbGVjdEl0ZW0oc2VsZWN0ZWRJdGVtOiBJY29uVGFiQmFySXRlbSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jdXJyZW50U3RlcEluZGV4ID0gc2VsZWN0ZWRJdGVtLmluZGV4O1xuICAgICAgICBzdXBlci5fc2VsZWN0SXRlbShzZWxlY3RlZEl0ZW0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gc2VsZWN0ZWRJdGVtXG4gICAgICogQGRlc2NyaXB0aW9uIHNlbGVjdCBleHRyYSBpdGVtIGluc2lkZSBwb3BvdmVyXG4gICAgICovXG4gICAgYXN5bmMgX3NlbGVjdEV4dHJhSXRlbShzZWxlY3RlZEl0ZW06IEljb25UYWJCYXJJdGVtKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRTdGVwSW5kZXggPSBzZWxlY3RlZEl0ZW0uaW5kZXg7XG4gICAgICAgIGxldCBhbW91bnRPZlByZXZpb3VzU3RlcHM7XG4gICAgICAgIGxldCBhbW91bnRPZk5leHRTdGVwcztcbiAgICAgICAgLy8gV2UgaGF2ZSB0byBjYXNlcyAoc3RyYXRlZ3kpIGZvciBvdmVyZmxvdyBleHRyYSB0YWJzLlxuICAgICAgICAvLyAxKSBXaGVuIHVzZXIgY2xpY2sgb24gc3RlcCBpbnNpZGUgcHJldmlvdXMgc3RlcHMgcG9wb3ZlclxuICAgICAgICAvLyAyKSBXaGVuIHVzZXIgY2xpY2sgb24gc3RlcCBpbnNpZGUgbmV4dCBzdGVwcyBwb3BvdmVyXG4gICAgICAgIGxldCBpc1ByZXZpb3VzU3RlcHNTdHJhdGVneTogYm9vbGVhbjtcbiAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRTdGVwSW5kZXggPiB0aGlzLl9sYXN0VmlzaWJsZVRhYkluZGV4KSB7XG4gICAgICAgICAgICBhbW91bnRPZk5leHRTdGVwcyA9IHRoaXMuX25leHRTdGVwcy5sZW5ndGggLSAodGhpcy5fY3VycmVudFN0ZXBJbmRleCAtIHRoaXMuX2xhc3RWaXNpYmxlVGFiSW5kZXgpO1xuICAgICAgICAgICAgdGhpcy5fc2hvd1JpZ2h0QnRuID0gYW1vdW50T2ZOZXh0U3RlcHMgPiAwO1xuICAgICAgICAgICAgdGhpcy5fc2hvd0xlZnRCdG4gPSB0cnVlO1xuICAgICAgICAgICAgaXNQcmV2aW91c1N0ZXBzU3RyYXRlZ3kgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFtb3VudE9mUHJldmlvdXNTdGVwcyA9IHRoaXMuX3ByZXZTdGVwcy5sZW5ndGggLSAodGhpcy5fZmlyc3RWaXNpYmxlVGFiSW5kZXggLSB0aGlzLl9jdXJyZW50U3RlcEluZGV4KTtcbiAgICAgICAgICAgIHRoaXMuX3Nob3dSaWdodEJ0biA9IHRydWU7XG4gICAgICAgICAgICBpc1ByZXZpb3VzU3RlcHNTdHJhdGVneSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9zaG93TGVmdEJ0biA9IGFtb3VudE9mUHJldmlvdXNTdGVwcyA+IDA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2VsZWN0SXRlbShzZWxlY3RlZEl0ZW0pO1xuXG4gICAgICAgIHRoaXMuX25nWm9uZS5vbk1pY3JvdGFza0VtcHR5LnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLm92ZXJmbG93RGlyZWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXh0cmEgPSB0aGlzLm92ZXJmbG93RGlyZWN0aXZlLmdldEFtb3VudE9mRXh0cmFJdGVtcygpO1xuICAgICAgICAgICAgICAgIGlzUHJldmlvdXNTdGVwc1N0cmF0ZWd5XG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5yZWNhbGN1bGF0ZUl0ZW1zQnlQcmV2QXJyKGV4dHJhLCBhbW91bnRPZlByZXZpb3VzU3RlcHMpXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5fcmVjYWxjdWxhdGVJdGVtc0J5TmV4dEFycihleHRyYSwgYW1vdW50T2ZOZXh0U3RlcHMpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSBleHRyYUl0ZW1zXG4gICAgICogQGRlc2NyaXB0aW9uIHJlY2FsY3VsYXRlIF9uZXh0U3RlcHMgYW5kIF9wcmV2U3RlcHMgYXJyYXkgaWYgd2UgaGF2ZSBleHRyYSBpdGVtc1xuICAgICAqL1xuICAgIF9yZWNhbGN1bGF0ZVZpc2libGVJdGVtcyhleHRyYUl0ZW1zOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYW1vdW50T2ZQcmV2U3RlcHMgPSB0aGlzLl9jdXJyZW50U3RlcEluZGV4ID4gZXh0cmFJdGVtcyA/IGV4dHJhSXRlbXMgOiB0aGlzLl9jdXJyZW50U3RlcEluZGV4O1xuICAgICAgICB0aGlzLnJlY2FsY3VsYXRlSXRlbXNCeVByZXZBcnIoZXh0cmFJdGVtcywgYW1vdW50T2ZQcmV2U3RlcHMpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY2xlYXJFeHRyYUxpc3QoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX25leHRTdGVwcyA9IFtdO1xuICAgICAgICB0aGlzLl9wcmV2U3RlcHMgPSBbXTtcbiAgICAgICAgdGhpcy50YWJzLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGl0ZW0uaGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICBpdGVtLmNzc0NsYXNzZXMgPSBpdGVtLmNzc0NsYXNzZXMuZmlsdGVyKChjc3NDbGFzcykgPT4gY3NzQ2xhc3MgIT09IElDT05fVEFCX0hJRERFTl9DTEFTU19OQU1FKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSBleHRyYUl0ZW1zXG4gICAgICogQHBhcmFtIGFtb3VudE9mTmV4dFN0ZXBzXG4gICAgICogQGRlc2NyaXB0aW9uIFdlIGZpbGwgdGhlIGFycmF5IG9mIHRoZSBuZXh0IHN0ZXBzIHRvIHRoZSBzZWxlY3RlZCB0YWIsXG4gICAgICogYmFzZWQgb24gdGhpcyB3ZSBnZW5lcmF0ZSB0aGUgYXJyYXkgb2YgdGhlIHByZXZpb3VzIHN0ZXBzIGlmIGl0IGlzIG5lY2Vzc2FyeVxuICAgICAqL1xuICAgIHByaXZhdGUgX3JlY2FsY3VsYXRlSXRlbXNCeU5leHRBcnIoZXh0cmFJdGVtczogbnVtYmVyLCBhbW91bnRPZk5leHRTdGVwczogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NsZWFyRXh0cmFMaXN0KCk7XG4gICAgICAgIGlmICghZXh0cmFJdGVtcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRhYnMgPSBbLi4udGhpcy50YWJzXTtcbiAgICAgICAgY29uc3QgdmlzaWJsZUFtb3VudE9mSXRlbXMgPSB0YWJzLmxlbmd0aCAtIGV4dHJhSXRlbXM7XG4gICAgICAgIGZvciAobGV0IGkgPSB0YWJzLmxlbmd0aCAtIGFtb3VudE9mTmV4dFN0ZXBzOyBpIDwgdGFicy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5fbmV4dFN0ZXBzLnB1c2goY2xvbmVEZWVwKHRhYnNbaV0pKTtcbiAgICAgICAgICAgIHRhYnNbaV0uaGlkZGVuID0gdHJ1ZTtcbiAgICAgICAgICAgIHRhYnNbaV0uY3NzQ2xhc3Nlcy5wdXNoKElDT05fVEFCX0hJRERFTl9DTEFTU19OQU1FKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3Nob3dSaWdodEJ0biA9ICEhdGhpcy5fbmV4dFN0ZXBzLmxlbmd0aDtcbiAgICAgICAgdGhpcy5fZmlyc3RWaXNpYmxlVGFiSW5kZXggPSB0YWJzLmxlbmd0aCAtIHZpc2libGVBbW91bnRPZkl0ZW1zIC0gdGhpcy5fbmV4dFN0ZXBzLmxlbmd0aDtcbiAgICAgICAgdGhpcy5fbGFzdFZpc2libGVUYWJJbmRleCA9IHRhYnMubGVuZ3RoIC0gYW1vdW50T2ZOZXh0U3RlcHMgLSAxO1xuXG4gICAgICAgIGlmICh0aGlzLl9uZXh0U3RlcHMubGVuZ3RoID09PSBleHRyYUl0ZW1zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgYW1vdW50T2ZQcmV2U3RlcHMgPSBleHRyYUl0ZW1zIC0gdGhpcy5fbmV4dFN0ZXBzLmxlbmd0aDtcbiAgICAgICAgbGV0IG5leHRJbmRleCA9IHRoaXMuX2ZpcnN0VmlzaWJsZVRhYkluZGV4IC0gMTtcbiAgICAgICAgd2hpbGUgKGFtb3VudE9mUHJldlN0ZXBzID4gMCkge1xuICAgICAgICAgICAgdGhpcy5fcHJldlN0ZXBzLnB1c2goY2xvbmVEZWVwKHRhYnNbbmV4dEluZGV4XSkpO1xuICAgICAgICAgICAgdGFic1tuZXh0SW5kZXhdLmhpZGRlbiA9IHRydWU7XG4gICAgICAgICAgICB0YWJzW25leHRJbmRleF0uY3NzQ2xhc3Nlcy5wdXNoKElDT05fVEFCX0hJRERFTl9DTEFTU19OQU1FKTtcblxuICAgICAgICAgICAgLS1uZXh0SW5kZXg7XG4gICAgICAgICAgICAtLWFtb3VudE9mUHJldlN0ZXBzO1xuICAgICAgICB9XG4gICAgICAgIC8vIEFkZGVkICsxIGZvciBsZWZ0IGJ1dHRvblxuICAgICAgICB0aGlzLl9hbmNob3JJbmRleEZvckV4dHJhQnRuRGlyZWN0aXZlID0gdGhpcy5fcHJldlN0ZXBzLmxlbmd0aFxuICAgICAgICAgICAgPyB0aGlzLl9wcmV2U3RlcHMubGVuZ3RoICsgdmlzaWJsZUFtb3VudE9mSXRlbXNcbiAgICAgICAgICAgIDogdGhpcy5fcHJldlN0ZXBzLmxlbmd0aCArIHZpc2libGVBbW91bnRPZkl0ZW1zIC0gMTtcblxuICAgICAgICB0aGlzLl9zaG93TGVmdEJ0biA9ICEhdGhpcy5fcHJldlN0ZXBzLmxlbmd0aDtcbiAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gZXh0cmFJdGVtc1xuICAgICAqIEBwYXJhbSBhbW91bnRPZlByZXZpb3VzU3RlcHNcbiAgICAgKiBAZGVzY3JpcHRpb24gV2UgZmlsbCB0aGUgYXJyYXkgb2YgdGhlIHByZXZpb3VzIHN0ZXBzIHRvIHRoZSBzZWxlY3RlZCB0YWIsXG4gICAgICogYmFzZWQgb24gdGhpcyB3ZSBnZW5lcmF0ZSB0aGUgYXJyYXkgb2YgdGhlIG5leHQgc3RlcHMgaWYgaXQgaXMgbmVjZXNzYXJ5XG4gICAgICovXG4gICAgcHJpdmF0ZSByZWNhbGN1bGF0ZUl0ZW1zQnlQcmV2QXJyKGV4dHJhSXRlbXM6IG51bWJlciwgYW1vdW50T2ZQcmV2aW91c1N0ZXBzOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2xlYXJFeHRyYUxpc3QoKTtcbiAgICAgICAgaWYgKCFleHRyYUl0ZW1zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGFicyA9IFsuLi50aGlzLnRhYnNdO1xuICAgICAgICBjb25zdCB2aXNpYmxlQW1vdW50T2ZJdGVtcyA9IHRhYnMubGVuZ3RoIC0gZXh0cmFJdGVtcztcbiAgICAgICAgZm9yIChsZXQgaSA9IGFtb3VudE9mUHJldmlvdXNTdGVwcyAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICB0aGlzLl9wcmV2U3RlcHMucHVzaChjbG9uZURlZXAodGFic1tpXSkpO1xuICAgICAgICAgICAgdGFic1tpXS5oaWRkZW4gPSB0cnVlO1xuICAgICAgICAgICAgdGFic1tpXS5jc3NDbGFzc2VzLnB1c2goSUNPTl9UQUJfSElEREVOX0NMQVNTX05BTUUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZmlyc3RWaXNpYmxlVGFiSW5kZXggPSB0aGlzLl9wcmV2U3RlcHMubGVuZ3RoO1xuICAgICAgICB0aGlzLl9sYXN0VmlzaWJsZVRhYkluZGV4ID0gdGhpcy5fcHJldlN0ZXBzLmxlbmd0aCArIHZpc2libGVBbW91bnRPZkl0ZW1zIC0gMTtcbiAgICAgICAgdGhpcy5fc2hvd0xlZnRCdG4gPSAhIXRoaXMuX3ByZXZTdGVwcy5sZW5ndGg7XG5cbiAgICAgICAgaWYgKHRoaXMuX3ByZXZTdGVwcy5sZW5ndGggPT09IGV4dHJhSXRlbXMpIHtcbiAgICAgICAgICAgIHRoaXMuX3Nob3dSaWdodEJ0biA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGFtb3VudE9mTmV4dFN0ZXBzID0gZXh0cmFJdGVtcyAtIHRoaXMuX3ByZXZTdGVwcy5sZW5ndGg7XG4gICAgICAgIGxldCBuZXh0SW5kZXggPSB0aGlzLl9wcmV2U3RlcHMubGVuZ3RoID8gdGhpcy5fcHJldlN0ZXBzLmxlbmd0aCArIHZpc2libGVBbW91bnRPZkl0ZW1zIDogdmlzaWJsZUFtb3VudE9mSXRlbXM7XG4gICAgICAgIHdoaWxlIChhbW91bnRPZk5leHRTdGVwcyA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuX25leHRTdGVwcy5wdXNoKGNsb25lRGVlcCh0YWJzW25leHRJbmRleF0pKTtcbiAgICAgICAgICAgIHRhYnNbbmV4dEluZGV4XS5oaWRkZW4gPSB0cnVlO1xuICAgICAgICAgICAgdGFic1tuZXh0SW5kZXhdLmNzc0NsYXNzZXMucHVzaChJQ09OX1RBQl9ISURERU5fQ0xBU1NfTkFNRSk7XG5cbiAgICAgICAgICAgICsrbmV4dEluZGV4O1xuICAgICAgICAgICAgLS1hbW91bnRPZk5leHRTdGVwcztcbiAgICAgICAgfVxuICAgICAgICAvLyBBZGQgKzEgZm9yIGxlZnQgYnRuXG4gICAgICAgIHRoaXMuX2FuY2hvckluZGV4Rm9yRXh0cmFCdG5EaXJlY3RpdmUgPSB0aGlzLl9wcmV2U3RlcHMubGVuZ3RoXG4gICAgICAgICAgICA/IHRoaXMuX3ByZXZTdGVwcy5sZW5ndGggKyB2aXNpYmxlQW1vdW50T2ZJdGVtc1xuICAgICAgICAgICAgOiB0aGlzLl9wcmV2U3RlcHMubGVuZ3RoICsgdmlzaWJsZUFtb3VudE9mSXRlbXMgLSAxO1xuXG4gICAgICAgIHRoaXMuX3Nob3dSaWdodEJ0biA9ICEhdGhpcy5fbmV4dFN0ZXBzLmxlbmd0aDtcbiAgICAgICAgdGhpcy5fb2Zmc2V0T3ZlcmZsb3dEaXJlY3RpdmUgPSB0aGlzLl9uZXh0U3RlcHMubGVuZ3RoID8gNzAgOiAwO1xuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxufVxuIiwiPHVsXG4gICAgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2hlYWRlclwiXG4gICAgW2NsYXNzLmZkLWR5bmFtaWMtcGFnZV9fdGFic109XCJfaW5EeW5hbWljUGFnZVwiXG4gICAgcm9sZT1cInRhYmxpc3RcIlxuICAgICN0YWJsaXN0XG4gICAgW2NsYXNzLmZkLWljb24tdGFiLWJhcl9faGVhZGVyLS1sZWZ0LW9mZnNldF09XCJfc2hvd0xlZnRCdG5cIlxuICAgIGZka092ZXJmbG93TGlzdFxuICAgIFtpc1J0bF09XCJpc1J0bFwiXG4gICAgW292ZXJmbG93T2Zmc2V0XT1cIl9vZmZzZXRPdmVyZmxvd0RpcmVjdGl2ZVwiXG4gICAgKG92ZXJmbG93Q2hhbmdlZCk9XCJfcmVjYWxjdWxhdGVWaXNpYmxlSXRlbXMoJGV2ZW50KVwiXG4+XG4gICAgQGlmIChfc2hvd0xlZnRCdG4pIHtcbiAgICAgICAgPGxpXG4gICAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19pdGVtIGZkLWljb24tdGFiLWJhcl9faXRlbS0tb3ZlcmZsb3cgZmQtaWNvbi10YWItYmFyX19pdGVtLS1vdmVyZmxvdy1sZWZ0XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGZkcC1pY29uLXRhYi1iYXItcG9wb3ZlclxuICAgICAgICAgICAgICAgIFtleHRyYVRhYnNdPVwiX3ByZXZTdGVwc1wiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIl9wcmV2U3RlcHMubGVuZ3RoLnRvU3RyaW5nKClcIlxuICAgICAgICAgICAgICAgIFtpc1NlcGFyYXRvcnNdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2NvbG9yQXNzb2NpYXRpb25zXT1cImNvbG9yQXNzb2NpYXRpb25zKClcIlxuICAgICAgICAgICAgICAgIChzZWxlY3RlZEV4dHJhSXRlbSk9XCJfc2VsZWN0RXh0cmFJdGVtKCRldmVudClcIlxuICAgICAgICAgICAgPjwvZmRwLWljb24tdGFiLWJhci1wb3BvdmVyPlxuICAgICAgICA8L2xpPlxuICAgIH1cbiAgICBAZm9yIChpdGVtIG9mIHRhYnM7IHRyYWNrIGl0ZW0udUlkOyBsZXQgaWR4ID0gJGluZGV4KSB7XG4gICAgICAgIDxsaVxuICAgICAgICAgICAgW2NsYXNzXT1cIml0ZW0uY3NzQ2xhc3Nlc1wiXG4gICAgICAgICAgICBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9faXRlbVwiXG4gICAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgICAgIGZka092ZXJmbG93TGlzdEl0ZW1cbiAgICAgICAgICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cIml0ZW0uaGlkZGVuXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiX3NlbGVjdEl0ZW0oaXRlbSlcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duKT1cIl9rZXlEb3duSGFuZGxlcigkZXZlbnQsIGl0ZW0sIGlkeClcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXRlbS51SWQgPT09IHNlbGVjdGVkVWlkXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fdGFiXCJcbiAgICAgICAgICAgICAgICAjdGFiSXRlbVxuICAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cImlkeCA9PT0gMCA/IDAgOiAtMVwiXG4gICAgICAgICAgICAgICAgcm9sZT1cInRhYlwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQGlmIChpdGVtPy50aXRsZVRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbS50aXRsZVRlbXBsYXRlIHx8IG51bGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtLmljb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2NvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1pY29uIFtnbHlwaF09XCJpdGVtLmljb25cIj48L2ZkLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5iYWRnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fYmFkZ2VcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19kZXRhaWxzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2NvdW50ZXJcIj57eyBpdGVtLmNvdW50ZXIgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2xhYmVsXCI+e3sgaXRlbS5sYWJlbCB8IGZka0FzeW5jT3JTeW5jIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX3RhZ1wiPnt7IGl0ZW0ubGFiZWwgfCBmZGtBc3luY09yU3luYyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5iYWRnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19iYWRnZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uY29sb3IgfCBmZGtBc3luY09yU3luYzsgYXMgaXRlbUNvbG9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NyZWVucmVhZGVyLW9ubHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjb2xvckFzc29jaWF0aW9ucygpPy5baXRlbUNvbG9yXSB8fCBpdGVtQ29sb3IgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgQGlmIChpdGVtLmNsb3NhYmxlKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fYnV0dG9uLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1pY29uLXRhYi1iYXJfX2J1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiX2Nsb3NlVGFiKGl0ZW0udUlkKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1pY29uIGdseXBoPVwiZGVjbGluZVwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKF9sYXN0VmlzaWJsZVRhYkluZGV4ICE9PSBpZHgpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWljb24tdGFiLWJhcl9fc2VwYXJhdG9yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1pY29uIGdseXBoPVwicHJvY2Vzc1wiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvbGk+XG4gICAgfVxuICAgIEBpZiAoX3Nob3dSaWdodEJ0bikge1xuICAgICAgICA8bGkgcm9sZT1cInByZXNlbnRhdGlvblwiIGNsYXNzPVwiZmQtaWNvbi10YWItYmFyX19pdGVtIGZkLWljb24tdGFiLWJhcl9faXRlbS0tb3ZlcmZsb3dcIj5cbiAgICAgICAgICAgIDxmZHAtaWNvbi10YWItYmFyLXBvcG92ZXJcbiAgICAgICAgICAgICAgICBbaXNSdGxdPVwiaXNSdGxcIlxuICAgICAgICAgICAgICAgIFtleHRyYVRhYnNdPVwiX25leHRTdGVwc1wiXG4gICAgICAgICAgICAgICAgW2lzU2VwYXJhdG9yc109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiX25leHRTdGVwcy5sZW5ndGgudG9TdHJpbmcoKVwiXG4gICAgICAgICAgICAgICAgW2NvbG9yQXNzb2NpYXRpb25zXT1cImNvbG9yQXNzb2NpYXRpb25zKClcIlxuICAgICAgICAgICAgICAgIChzZWxlY3RlZEV4dHJhSXRlbSk9XCJfc2VsZWN0RXh0cmFJdGVtKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChmb2N1c0ZpcnN0VmlzaWJsZUl0ZW0pPVwiX2ZvY3VzSXRlbSgwKVwiXG4gICAgICAgICAgICAgICAgKGZvY3VzTGFzdFZpc2libGVJdGVtKT1cIl9mb2N1c0l0ZW0oX2xhc3RWaXNpYmxlVGFiSW5kZXgpXCJcbiAgICAgICAgICAgICAgICAoY2xvc2VUYWIpPVwiX2Nsb3NlVGFiKCRldmVudCwgdHJ1ZSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9mZHAtaWNvbi10YWItYmFyLXBvcG92ZXI+XG4gICAgICAgIDwvbGk+XG4gICAgfVxuPC91bD5cbiJdfQ==
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { booleanAttribute, ChangeDetectionStrategy, Component, contentChildren, Directive, ElementRef, inject, input, viewChild } from '@angular/core';
|
|
2
|
+
import { booleanAttribute, ChangeDetectionStrategy, Component, contentChild, contentChildren, Directive, ElementRef, inject, input, TemplateRef, viewChild } from '@angular/core';
|
|
3
3
|
import { FD_DEFAULT_ICON_FONT_FAMILY } from '@fundamental-ngx/core/icon';
|
|
4
|
+
import { IconTabTitleDirective } from '../../directives/icon-tab-title.directive';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
let defaultIdIndex = 0;
|
|
6
7
|
export class IconTabBarTabContentDirective {
|
|
@@ -46,14 +47,16 @@ export class IconTabBarTabComponent {
|
|
|
46
47
|
this.id = input(`fdp-icon-tab-bar-tab-${defaultIdIndex++}`);
|
|
47
48
|
/** Content renderer. */
|
|
48
49
|
this.renderer = viewChild('renderer');
|
|
50
|
+
/** Title template. */
|
|
51
|
+
this.titleTemplate = contentChild(IconTabTitleDirective, { read: TemplateRef });
|
|
49
52
|
/** @hidden */
|
|
50
53
|
this.children = contentChildren(IconTabBarTabComponent);
|
|
51
54
|
}
|
|
52
55
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: IconTabBarTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
53
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.0.3", type: IconTabBarTabComponent, isStandalone: true, selector: "fdp-icon-tab-bar-tab", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconFont: { classPropertyName: "iconFont", publicName: "iconFont", isSignal: true, isRequired: false, transformFunction: null }, counter: { classPropertyName: "counter", publicName: "counter", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, badge: { classPropertyName: "badge", publicName: "badge", isSignal: true, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "children", predicate: IconTabBarTabComponent, isSignal: true }], viewQueries: [{ propertyName: "renderer", first: true, predicate: ["renderer"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template #renderer>\n <ng-content></ng-content>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
56
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.0.3", type: IconTabBarTabComponent, isStandalone: true, selector: "fdp-icon-tab-bar-tab", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconFont: { classPropertyName: "iconFont", publicName: "iconFont", isSignal: true, isRequired: false, transformFunction: null }, counter: { classPropertyName: "counter", publicName: "counter", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, badge: { classPropertyName: "badge", publicName: "badge", isSignal: true, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "titleTemplate", first: true, predicate: IconTabTitleDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "children", predicate: IconTabBarTabComponent, isSignal: true }], viewQueries: [{ propertyName: "renderer", first: true, predicate: ["renderer"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template #renderer>\n <ng-content></ng-content>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
54
57
|
}
|
|
55
58
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: IconTabBarTabComponent, decorators: [{
|
|
56
59
|
type: Component,
|
|
57
60
|
args: [{ selector: 'fdp-icon-tab-bar-tab', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #renderer>\n <ng-content></ng-content>\n</ng-template>\n" }]
|
|
58
61
|
}] });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10YWItYmFyLXRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2ljb24tdGFiLWJhci9jb21wb25lbnRzL2ljb24tdGFiLWJhci10YWIvaWNvbi10YWItYmFyLXRhYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2ljb24tdGFiLWJhci9jb21wb25lbnRzL2ljb24tdGFiLWJhci10YWIvaWNvbi10YWItYmFyLXRhYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLFdBQVcsRUFDWCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLDJCQUEyQixFQUFZLE1BQU0sNEJBQTRCLENBQUM7QUFDbkYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7O0FBSWxGLElBQUksY0FBYyxHQUFHLENBQUMsQ0FBQztBQVF2QixNQUFNLE9BQU8sNkJBQTZCO0lBTjFDO1FBT0ksYUFBYTtRQUNiLE9BQUUsR0FBRyxLQUFLLEVBQW9CLENBQUM7UUFFL0IscUJBQXFCO1FBQ3JCLFFBQUcsR0FBRyxLQUFLLEVBQW9CLENBQUM7UUFFaEMseUJBQXlCO1FBQ2hCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7S0FDNUM7OEdBVFksNkJBQTZCO2tHQUE3Qiw2QkFBNkI7OzJGQUE3Qiw2QkFBNkI7a0JBTnpDLFNBQVM7bUJBQUM7b0JBQ1AsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRTtpQkFDaEM7O0FBbUJELE1BQU0sT0FBTyxzQkFBc0I7SUFQbkM7UUFRSSxpQkFBaUI7UUFDakIsVUFBSyxHQUFHLEtBQUssRUFBb0IsQ0FBQztRQUVsQyxzQkFBc0I7UUFDdEIsVUFBSyxHQUFHLEtBQUssQ0FBZ0IsU0FBUyxDQUFDLENBQUM7UUFFeEMsZ0JBQWdCO1FBQ2hCLFNBQUksR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUV2Qiw0QkFBNEI7UUFDNUIsYUFBUSxHQUFHLEtBQUssQ0FBVywyQkFBMkIsQ0FBQyxDQUFDO1FBRXhELG1CQUFtQjtRQUNuQixZQUFPLEdBQUcsS0FBSyxFQUFvQixDQUFDO1FBRXBDLGtDQUFrQztRQUNsQyxXQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFFdkQsc0VBQXNFO1FBQ3RFLFVBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUV0RCxxQ0FBcUM7UUFDckMsYUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBRXpELGNBQWM7UUFDZCxPQUFFLEdBQUcsS0FBSyxDQUFDLHdCQUF3QixjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFdkQsd0JBQXdCO1FBQ2YsYUFBUSxHQUFHLFNBQVMsQ0FBbUIsVUFBVSxDQUFDLENBQUM7UUFFNUQsc0JBQXNCO1FBQ2Isa0JBQWEsR0FBRyxZQUFZLENBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUVwRixjQUFjO1FBQ0wsYUFBUSxHQUFHLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0tBQy9EOzhHQXBDWSxzQkFBc0I7a0dBQXRCLHNCQUFzQiw4c0NBZ0NPLHFCQUFxQiwyQkFBVSxXQUFXLDJEQUc1QyxzQkFBc0IsbUtDakY5RCwwRUFHQSwyQ0R1Q2MsWUFBWTs7MkZBSWIsc0JBQXNCO2tCQVBsQyxTQUFTOytCQUNJLHNCQUFzQixjQUNwQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsbUJBRU4sdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbnRlbnRDaGlsZCxcbiAgICBjb250ZW50Q2hpbGRyZW4sXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIHZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEhhc0VsZW1lbnRSZWYsIE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgRkRfREVGQVVMVF9JQ09OX0ZPTlRfRkFNSUxZLCBJY29uRm9udCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pY29uJztcbmltcG9ydCB7IEljb25UYWJUaXRsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvaWNvbi10YWItdGl0bGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFJlYWN0aXZlVGFiQ29uZmlnIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy90YWItY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZW1hbnRpY0NvbG9yIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5sZXQgZGVmYXVsdElkSW5kZXggPSAwO1xuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnZmRwLWljb24tdGFiLWJhci10YWItY29udGVudCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBob3N0OiB7ICdbYXR0ci5pZF0nOiAnaWQoKScgfVxufSlcbmV4cG9ydCBjbGFzcyBJY29uVGFiQmFyVGFiQ29udGVudERpcmVjdGl2ZSBpbXBsZW1lbnRzIEhhc0VsZW1lbnRSZWYge1xuICAgIC8qKiBUYWIgSUQgKi9cbiAgICBpZCA9IGlucHV0PE51bGxhYmxlPHN0cmluZz4+KCk7XG5cbiAgICAvKiogVGFiIFVuaXF1ZSBJRC4gKi9cbiAgICB1SWQgPSBpbnB1dDxOdWxsYWJsZTxzdHJpbmc+PigpO1xuXG4gICAgLyoqIEVsZW1lbnQgcmVmZXJlbmNlLiAqL1xuICAgIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLWljb24tdGFiLWJhci10YWInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ljb24tdGFiLWJhci10YWIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEljb25UYWJCYXJUYWJDb21wb25lbnQgaW1wbGVtZW50cyBSZWFjdGl2ZVRhYkNvbmZpZyB7XG4gICAgLyoqIFRhYiBMYWJlbC4gKi9cbiAgICBsYWJlbCA9IGlucHV0PE51bGxhYmxlPHN0cmluZz4+KCk7XG5cbiAgICAvKiogVGFiIHRleHQgY29sb3IuICovXG4gICAgY29sb3IgPSBpbnB1dDxTZW1hbnRpY0NvbG9yPignZGVmYXVsdCcpO1xuXG4gICAgLyoqIFRhYiBpY29uLiAqL1xuICAgIGljb24gPSBpbnB1dDxzdHJpbmc+KCk7XG5cbiAgICAvKiogVGFiIGljb24gZm9udCBmYW1pbHkuICovXG4gICAgaWNvbkZvbnQgPSBpbnB1dDxJY29uRm9udD4oRkRfREVGQVVMVF9JQ09OX0ZPTlRfRkFNSUxZKTtcblxuICAgIC8qKiBUYWIgY291bnRlci4gKi9cbiAgICBjb3VudGVyID0gaW5wdXQ8TnVsbGFibGU8bnVtYmVyPj4oKTtcblxuICAgIC8qKiB3aGV0aGVyIHRoZSB0YWIgaXMgc2VsZWN0ZWQgKi9cbiAgICBhY3RpdmUgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgICAvKiogaWYgc2V0IHRvIHRydWUsIHdpbGwgc2hvdyByZWQgY2lyY2xlIGluIHRvcC1yaWdodCBjb3JuZXIgb2YgdGFiICovXG4gICAgYmFkZ2UgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgICAvKiogV2hldGhlciB0aGUgdGFiIGNhbiBiZSBjbG9zZWQuICovXG4gICAgY2xvc2FibGUgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgICAvKiogVGFiIElELiAqL1xuICAgIGlkID0gaW5wdXQoYGZkcC1pY29uLXRhYi1iYXItdGFiLSR7ZGVmYXVsdElkSW5kZXgrK31gKTtcblxuICAgIC8qKiBDb250ZW50IHJlbmRlcmVyLiAqL1xuICAgIHJlYWRvbmx5IHJlbmRlcmVyID0gdmlld0NoaWxkPFRlbXBsYXRlUmVmPGFueT4+KCdyZW5kZXJlcicpO1xuXG4gICAgLyoqIFRpdGxlIHRlbXBsYXRlLiAqL1xuICAgIHJlYWRvbmx5IHRpdGxlVGVtcGxhdGUgPSBjb250ZW50Q2hpbGQoSWNvblRhYlRpdGxlRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBjaGlsZHJlbiA9IGNvbnRlbnRDaGlsZHJlbihJY29uVGFiQmFyVGFiQ29tcG9uZW50KTtcbn1cbiIsIjxuZy10ZW1wbGF0ZSAjcmVuZGVyZXI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|