@theseam/ui-common 0.4.21 → 0.4.23
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/esm2020/tabbed/tabbed.component.mjs +25 -18
- package/esm2020/toggle-group/toggle-group.directive.mjs +2 -1
- package/fesm2015/theseam-ui-common-tabbed.mjs +26 -19
- package/fesm2015/theseam-ui-common-tabbed.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-toggle-group.mjs +2 -0
- package/fesm2015/theseam-ui-common-toggle-group.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-tabbed.mjs +24 -17
- package/fesm2020/theseam-ui-common-tabbed.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-toggle-group.mjs +1 -0
- package/fesm2020/theseam-ui-common-toggle-group.mjs.map +1 -1
- package/package.json +1 -1
- package/tabbed/tabbed.component.d.ts +9 -4
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { Component, ContentChildren, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, combineLatest, shareReplay, tap } from 'rxjs';
|
|
3
|
+
import { isNullOrUndefined } from '@theseam/ui-common/utils';
|
|
2
4
|
import { TabbedItemComponent } from './tabbed-item/tabbed-item.component';
|
|
3
5
|
import { TabbedService } from './tabbed.service';
|
|
4
6
|
import * as i0 from "@angular/core";
|
|
@@ -8,6 +10,12 @@ import * as i3 from "@angular/common";
|
|
|
8
10
|
import * as i4 from "@angular/flex-layout/flex";
|
|
9
11
|
import * as i5 from "./tabbed-content/tabbed-content.component";
|
|
10
12
|
export class TabbedComponent {
|
|
13
|
+
set tabbedItems(val) {
|
|
14
|
+
this._tabbedItems.next(val);
|
|
15
|
+
}
|
|
16
|
+
get tabbedItems() {
|
|
17
|
+
return this._tabbedItems.value;
|
|
18
|
+
}
|
|
11
19
|
set direction(val) {
|
|
12
20
|
this._direction = val;
|
|
13
21
|
}
|
|
@@ -31,20 +39,12 @@ export class TabbedComponent {
|
|
|
31
39
|
}
|
|
32
40
|
}
|
|
33
41
|
else {
|
|
34
|
-
return this._selectedTab;
|
|
42
|
+
return this._selectedTab.value;
|
|
35
43
|
}
|
|
36
44
|
}
|
|
37
|
-
set selectedTab(tab) { this._selectedTab
|
|
45
|
+
set selectedTab(tab) { this._selectedTab.next(tab); }
|
|
38
46
|
set activeTabName(val) {
|
|
39
|
-
|
|
40
|
-
this._activeTabNameTimeout = setTimeout(() => {
|
|
41
|
-
if (!val) {
|
|
42
|
-
this.selectedTab = undefined;
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
this.selectTab(val);
|
|
46
|
-
}
|
|
47
|
-
});
|
|
47
|
+
this._activeTabName.next(val);
|
|
48
48
|
}
|
|
49
49
|
constructor(tabbedService, router, route) {
|
|
50
50
|
this.tabbedService = tabbedService;
|
|
@@ -52,8 +52,14 @@ export class TabbedComponent {
|
|
|
52
52
|
this.route = route;
|
|
53
53
|
this._direction = 'vertical';
|
|
54
54
|
this._hideTabs = false;
|
|
55
|
+
this._tabbedItems = new BehaviorSubject(undefined);
|
|
56
|
+
this.tabbedItems$ = this._tabbedItems.asObservable();
|
|
55
57
|
this.tabChanged = new EventEmitter();
|
|
56
58
|
this.onlyRouteContent = false;
|
|
59
|
+
this._selectedTab = new BehaviorSubject(undefined);
|
|
60
|
+
this.selectedTab$ = this._selectedTab.asObservable().pipe(shareReplay({ bufferSize: 1, refCount: true }));
|
|
61
|
+
this._activeTabName = new BehaviorSubject(undefined);
|
|
62
|
+
this.activeTabName$ = this._activeTabName.asObservable();
|
|
57
63
|
}
|
|
58
64
|
ngOnInit() {
|
|
59
65
|
this.tabbedService.registerTab(this, 'main');
|
|
@@ -62,9 +68,7 @@ export class TabbedComponent {
|
|
|
62
68
|
this.tabbedService.unregisterTab(this, 'main');
|
|
63
69
|
}
|
|
64
70
|
ngAfterContentInit() {
|
|
65
|
-
|
|
66
|
-
this.selectedTab = this.tabbedItems.first;
|
|
67
|
-
}
|
|
71
|
+
combineLatest([this.tabbedItems$, this.activeTabName$]).pipe(tap(([_, activeTabName]) => this.selectTab(activeTabName))).subscribe();
|
|
68
72
|
}
|
|
69
73
|
/**
|
|
70
74
|
*
|
|
@@ -81,20 +85,23 @@ export class TabbedComponent {
|
|
|
81
85
|
* to select a tab
|
|
82
86
|
*/
|
|
83
87
|
selectTab(name) {
|
|
88
|
+
if (isNullOrUndefined(name) || name === this.selectedTab?.name) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
84
91
|
const tab = this.tabbedItems?.find(t => t.name === name);
|
|
85
92
|
if (tab) {
|
|
86
93
|
this.selectedTab = tab;
|
|
87
94
|
}
|
|
88
95
|
else {
|
|
89
|
-
|
|
96
|
+
console.warn(`Tab with name '${name}' not found`);
|
|
90
97
|
}
|
|
91
98
|
}
|
|
92
99
|
}
|
|
93
100
|
TabbedComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TabbedComponent, deps: [{ token: i1.TabbedService }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
94
|
-
TabbedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TabbedComponent, selector: "seam-tabbed", inputs: { direction: "direction", hideTabs: "hideTabs", onlyRouteContent: "onlyRouteContent", activeTabName: "activeTabName" }, outputs: { tabChanged: "tabChanged" }, providers: [TabbedService], queries: [{ propertyName: "tabbedItems", predicate: TabbedItemComponent }], ngImport: i0, template: "<div [fxLayout]=\"(direction === 'horizontal') ? 'column' : 'row'\" fxFlexFill>\n\n <!-- Tabs -->\n <div *ngIf=\"!hideTabs\"\n [fxLayout]=\"(direction === 'horizontal') ? 'row' : 'column'\"\n style=\"position: relative;\">\n <ng-container *ngFor=\"let tabbedItem of tabbedItems\">\n <div class=\"tabbed-tab pt-2 pb-2 pl-4 pr-4 bg-light text-nowrap\"\n [class.tab-dir-horizontal]=\"direction === 'horizontal'\"\n [class.tab-dir-vertical]=\"direction === 'vertical'\"\n (click)=\"onClickTab($event, tabbedItem)\"\n [class.active]=\"tabbedItem === selectedTab\">\n <ng-template *ngIf=\"tabbedItem.tabbedTabTpl; else tabLabelTpl\" [ngTemplateOutlet]=\"tabbedItem.tabbedTabTpl\"></ng-template>\n <ng-template #tabLabelTpl>{{ tabbedItem?.label }}</ng-template>\n </div>\n </ng-container>\n <!-- <div class=\"active-indicator\"\n [class.active-indicator-horizontal]=\"direction === 'horizontal'\"\n [class.active-indicator-vertical]=\"direction === 'vertical'\">\n </div> -->\n </div>\n\n <!-- Tabs Content -->\n <div class=\"tabbed-tabs-content bg-light\">\n <ng-container *ngIf=\"onlyRouteContent; else notOnlyRouteContent\">\n <!-- <app-slide-over-router-outlet></app-slide-over-router-outlet> -->\n <router-outlet></router-outlet>\n </ng-container>\n <ng-template #notOnlyRouteContent>\n <ng-container *ngIf=\"
|
|
101
|
+
TabbedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TabbedComponent, selector: "seam-tabbed", inputs: { direction: "direction", hideTabs: "hideTabs", onlyRouteContent: "onlyRouteContent", activeTabName: "activeTabName" }, outputs: { tabChanged: "tabChanged" }, providers: [TabbedService], queries: [{ propertyName: "tabbedItems", predicate: TabbedItemComponent }], ngImport: i0, template: "<div [fxLayout]=\"(direction === 'horizontal') ? 'column' : 'row'\" fxFlexFill>\n\n <!-- Tabs -->\n <div *ngIf=\"!hideTabs\"\n [fxLayout]=\"(direction === 'horizontal') ? 'row' : 'column'\"\n style=\"position: relative;\">\n <ng-container *ngFor=\"let tabbedItem of tabbedItems$ | async\">\n <div class=\"tabbed-tab pt-2 pb-2 pl-4 pr-4 bg-light text-nowrap\"\n [class.tab-dir-horizontal]=\"direction === 'horizontal'\"\n [class.tab-dir-vertical]=\"direction === 'vertical'\"\n (click)=\"onClickTab($event, tabbedItem)\"\n [class.active]=\"tabbedItem === (selectedTab$ | async)\">\n <ng-template *ngIf=\"tabbedItem.tabbedTabTpl; else tabLabelTpl\" [ngTemplateOutlet]=\"tabbedItem.tabbedTabTpl\"></ng-template>\n <ng-template #tabLabelTpl>{{ tabbedItem?.label }}</ng-template>\n </div>\n </ng-container>\n <!-- <div class=\"active-indicator\"\n [class.active-indicator-horizontal]=\"direction === 'horizontal'\"\n [class.active-indicator-vertical]=\"direction === 'vertical'\">\n </div> -->\n </div>\n\n <!-- Tabs Content -->\n <div class=\"tabbed-tabs-content bg-light\">\n <ng-container *ngIf=\"onlyRouteContent; else notOnlyRouteContent\">\n <!-- <app-slide-over-router-outlet></app-slide-over-router-outlet> -->\n <router-outlet></router-outlet>\n </ng-container>\n <ng-template #notOnlyRouteContent>\n <ng-container *ngIf=\"selectedTab$ | async as selectedTab\">\n <seam-tabbed-content fxFlexFill [tabbedItem]=\"selectedTab\"></seam-tabbed-content>\n </ng-container>\n </ng-template>\n </div>\n\n</div>\n", styles: [":host{display:block}.tabbed-tab{box-sizing:border-box;font-weight:400;font-size:10pt;min-width:130px;transform:translateZ(0);overflow:hidden;border:1px solid #dee2e6}.tabbed-tab:not(.active){background-color:#fff!important}.tabbed-tab.active{font-weight:700;color:#357ebd}.tabbed-tab:hover{cursor:pointer}.tabbed-tab.tab-dir-horizontal{border-bottom:0}.tabbed-tab.tab-dir-horizontal:first-child{border-top-left-radius:.25rem}.tabbed-tab.tab-dir-horizontal:last-child{border-top-right-radius:.25rem}.tabbed-tab.tab-dir-horizontal:not(:last-child){border-right:0}.tabbed-tab.tab-dir-horizontal.active{margin-bottom:-2px}.tabbed-tab.tab-dir-vertical{border-right:0}.tabbed-tab.tab-dir-vertical:first-child{border-top-left-radius:.25rem}.tabbed-tab.tab-dir-vertical:last-child{border-bottom-left-radius:.25rem}.tabbed-tab.tab-dir-vertical:not(:last-child){border-bottom:0}.tabbed-tab.tab-dir-vertical.active{margin-right:-2px}.tabbed-tabs-content{display:block;flex:1 1 auto;overflow:hidden;border:1px solid #dee2e6;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}app-slide-over-router-outlet{width:100%;height:100%;min-width:0;min-height:0}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i4.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "component", type: i5.TabbedContentComponent, selector: "seam-tabbed-content", inputs: ["tabbedItem"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] });
|
|
95
102
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TabbedComponent, decorators: [{
|
|
96
103
|
type: Component,
|
|
97
|
-
args: [{ selector: 'seam-tabbed', providers: [TabbedService], template: "<div [fxLayout]=\"(direction === 'horizontal') ? 'column' : 'row'\" fxFlexFill>\n\n <!-- Tabs -->\n <div *ngIf=\"!hideTabs\"\n [fxLayout]=\"(direction === 'horizontal') ? 'row' : 'column'\"\n style=\"position: relative;\">\n <ng-container *ngFor=\"let tabbedItem of tabbedItems\">\n <div class=\"tabbed-tab pt-2 pb-2 pl-4 pr-4 bg-light text-nowrap\"\n [class.tab-dir-horizontal]=\"direction === 'horizontal'\"\n [class.tab-dir-vertical]=\"direction === 'vertical'\"\n (click)=\"onClickTab($event, tabbedItem)\"\n [class.active]=\"tabbedItem === selectedTab\">\n <ng-template *ngIf=\"tabbedItem.tabbedTabTpl; else tabLabelTpl\" [ngTemplateOutlet]=\"tabbedItem.tabbedTabTpl\"></ng-template>\n <ng-template #tabLabelTpl>{{ tabbedItem?.label }}</ng-template>\n </div>\n </ng-container>\n <!-- <div class=\"active-indicator\"\n [class.active-indicator-horizontal]=\"direction === 'horizontal'\"\n [class.active-indicator-vertical]=\"direction === 'vertical'\">\n </div> -->\n </div>\n\n <!-- Tabs Content -->\n <div class=\"tabbed-tabs-content bg-light\">\n <ng-container *ngIf=\"onlyRouteContent; else notOnlyRouteContent\">\n <!-- <app-slide-over-router-outlet></app-slide-over-router-outlet> -->\n <router-outlet></router-outlet>\n </ng-container>\n <ng-template #notOnlyRouteContent>\n <ng-container *ngIf=\"
|
|
104
|
+
args: [{ selector: 'seam-tabbed', providers: [TabbedService], template: "<div [fxLayout]=\"(direction === 'horizontal') ? 'column' : 'row'\" fxFlexFill>\n\n <!-- Tabs -->\n <div *ngIf=\"!hideTabs\"\n [fxLayout]=\"(direction === 'horizontal') ? 'row' : 'column'\"\n style=\"position: relative;\">\n <ng-container *ngFor=\"let tabbedItem of tabbedItems$ | async\">\n <div class=\"tabbed-tab pt-2 pb-2 pl-4 pr-4 bg-light text-nowrap\"\n [class.tab-dir-horizontal]=\"direction === 'horizontal'\"\n [class.tab-dir-vertical]=\"direction === 'vertical'\"\n (click)=\"onClickTab($event, tabbedItem)\"\n [class.active]=\"tabbedItem === (selectedTab$ | async)\">\n <ng-template *ngIf=\"tabbedItem.tabbedTabTpl; else tabLabelTpl\" [ngTemplateOutlet]=\"tabbedItem.tabbedTabTpl\"></ng-template>\n <ng-template #tabLabelTpl>{{ tabbedItem?.label }}</ng-template>\n </div>\n </ng-container>\n <!-- <div class=\"active-indicator\"\n [class.active-indicator-horizontal]=\"direction === 'horizontal'\"\n [class.active-indicator-vertical]=\"direction === 'vertical'\">\n </div> -->\n </div>\n\n <!-- Tabs Content -->\n <div class=\"tabbed-tabs-content bg-light\">\n <ng-container *ngIf=\"onlyRouteContent; else notOnlyRouteContent\">\n <!-- <app-slide-over-router-outlet></app-slide-over-router-outlet> -->\n <router-outlet></router-outlet>\n </ng-container>\n <ng-template #notOnlyRouteContent>\n <ng-container *ngIf=\"selectedTab$ | async as selectedTab\">\n <seam-tabbed-content fxFlexFill [tabbedItem]=\"selectedTab\"></seam-tabbed-content>\n </ng-container>\n </ng-template>\n </div>\n\n</div>\n", styles: [":host{display:block}.tabbed-tab{box-sizing:border-box;font-weight:400;font-size:10pt;min-width:130px;transform:translateZ(0);overflow:hidden;border:1px solid #dee2e6}.tabbed-tab:not(.active){background-color:#fff!important}.tabbed-tab.active{font-weight:700;color:#357ebd}.tabbed-tab:hover{cursor:pointer}.tabbed-tab.tab-dir-horizontal{border-bottom:0}.tabbed-tab.tab-dir-horizontal:first-child{border-top-left-radius:.25rem}.tabbed-tab.tab-dir-horizontal:last-child{border-top-right-radius:.25rem}.tabbed-tab.tab-dir-horizontal:not(:last-child){border-right:0}.tabbed-tab.tab-dir-horizontal.active{margin-bottom:-2px}.tabbed-tab.tab-dir-vertical{border-right:0}.tabbed-tab.tab-dir-vertical:first-child{border-top-left-radius:.25rem}.tabbed-tab.tab-dir-vertical:last-child{border-bottom-left-radius:.25rem}.tabbed-tab.tab-dir-vertical:not(:last-child){border-bottom:0}.tabbed-tab.tab-dir-vertical.active{margin-right:-2px}.tabbed-tabs-content{display:block;flex:1 1 auto;overflow:hidden;border:1px solid #dee2e6;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}app-slide-over-router-outlet{width:100%;height:100%;min-width:0;min-height:0}\n"] }]
|
|
98
105
|
}], ctorParameters: function () { return [{ type: i1.TabbedService }, { type: i2.Router }, { type: i2.ActivatedRoute }]; }, propDecorators: { tabbedItems: [{
|
|
99
106
|
type: ContentChildren,
|
|
100
107
|
args: [TabbedItemComponent]
|
|
@@ -109,4 +116,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
109
116
|
}], activeTabName: [{
|
|
110
117
|
type: Input
|
|
111
118
|
}] } });
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiYmVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi90YWJiZWQvdGFiYmVkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi90YWJiZWQvdGFiYmVkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDYSxTQUFTLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFDN0YsTUFBTSxlQUFlLENBQUE7QUFHdEIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBaUIsTUFBTSxrQkFBa0IsQ0FBQTs7Ozs7OztBQVEvRCxNQUFNLE9BQU8sZUFBZTtJQVMxQixJQUNJLFNBQVMsQ0FBQyxHQUFrQjtRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQTtJQUN2QixDQUFDO0lBQ0QsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxJQUNJLFFBQVEsQ0FBQyxHQUFZO1FBQ3ZCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQTtRQUN0QixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUE7SUFDdkIsQ0FBQztJQUtELElBQUksV0FBVztRQUNiLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQzNDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUE7Z0JBQzFELE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFBO2dCQUN2QyxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQTthQUN6RDtTQUNGO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUE7U0FDekI7SUFDSCxDQUFDO0lBQ0QsSUFBSSxXQUFXLENBQUMsR0FBb0MsSUFBSSxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQSxDQUFDLENBQUM7SUFJakYsSUFDSSxhQUFhLENBQUMsR0FBVztRQUMzQixZQUFZLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUE7UUFDeEMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDM0MsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDUixJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQTthQUM3QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ3BCO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsWUFDUyxhQUE0QixFQUMzQixNQUFjLEVBQ2QsS0FBcUI7UUFGdEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDM0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBMUR2QixlQUFVLEdBQWtCLFVBQVUsQ0FBQTtRQUN0QyxjQUFTLEdBQUcsS0FBSyxDQUFBO1FBSWYsZUFBVSxHQUFHLElBQUksWUFBWSxFQUF1QixDQUFBO1FBcUJ2RCxxQkFBZ0IsR0FBRyxLQUFLLENBQUE7SUFpQzNCLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQzlDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQ2hELENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNuRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFBO1NBQzFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksVUFBVSxDQUFDLEtBQVUsRUFBRSxHQUF3QjtRQUNwRCxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQTtRQUN0QixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQTtTQUMvRDtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxTQUFTLENBQUMsSUFBWTtRQUMzQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUE7UUFDeEQsSUFBSSxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQTtTQUN2QjthQUFNO1lBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxhQUFhLENBQUMsQ0FBQTtTQUNyRDtJQUNILENBQUM7OzRHQW5HVSxlQUFlO2dHQUFmLGVBQWUsNk1BRmYsQ0FBRSxhQUFhLENBQUUsc0RBT1gsbUJBQW1CLDZCQ25CdEMsazZEQTJDQTsyRkQ3QmEsZUFBZTtrQkFOM0IsU0FBUzsrQkFDRSxhQUFhLGFBR1osQ0FBRSxhQUFhLENBQUU7c0pBT1UsV0FBVztzQkFBaEQsZUFBZTt1QkFBQyxtQkFBbUI7Z0JBRTFCLFVBQVU7c0JBQW5CLE1BQU07Z0JBR0gsU0FBUztzQkFEWixLQUFLO2dCQVNGLFFBQVE7c0JBRFgsS0FBSztnQkFXQyxnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBbUJGLGFBQWE7c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgUXVlcnlMaXN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJ1xuXG5pbXBvcnQgeyBUYWJiZWRJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi90YWJiZWQtaXRlbS90YWJiZWQtaXRlbS5jb21wb25lbnQnXG5pbXBvcnQgeyBUYWJiZWRTZXJ2aWNlLCBUYWJzRGlyZWN0aW9uIH0gZnJvbSAnLi90YWJiZWQuc2VydmljZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2VhbS10YWJiZWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFiYmVkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFiYmVkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogWyBUYWJiZWRTZXJ2aWNlIF1cbn0pXG5leHBvcnQgY2xhc3MgVGFiYmVkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgX2RpcmVjdGlvbjogVGFic0RpcmVjdGlvbiA9ICd2ZXJ0aWNhbCdcbiAgcHJpdmF0ZSBfaGlkZVRhYnMgPSBmYWxzZVxuXG4gIEBDb250ZW50Q2hpbGRyZW4oVGFiYmVkSXRlbUNvbXBvbmVudCkgdGFiYmVkSXRlbXM/OiBRdWVyeUxpc3Q8VGFiYmVkSXRlbUNvbXBvbmVudD5cblxuICBAT3V0cHV0KCkgdGFiQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VGFiYmVkSXRlbUNvbXBvbmVudD4oKVxuXG4gIEBJbnB1dCgpXG4gIHNldCBkaXJlY3Rpb24odmFsOiBUYWJzRGlyZWN0aW9uKSB7XG4gICAgdGhpcy5fZGlyZWN0aW9uID0gdmFsXG4gIH1cbiAgZ2V0IGRpcmVjdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fZGlyZWN0aW9uXG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgaGlkZVRhYnModmFsOiBib29sZWFuKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9oaWRlVGFicyA9IHZhbFxuICAgIH0pXG4gIH1cbiAgZ2V0IGhpZGVUYWJzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9oaWRlVGFic1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIG9ubHlSb3V0ZUNvbnRlbnQgPSBmYWxzZVxuXG4gIGdldCBzZWxlY3RlZFRhYigpOiBUYWJiZWRJdGVtQ29tcG9uZW50IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5vbmx5Um91dGVDb250ZW50KSB7XG4gICAgICBpZiAodGhpcy5yb3V0ZS5zbmFwc2hvdC5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMucm91dGUuc25hcHNob3QuY2hpbGRyZW5bMF0ucm91dGVDb25maWdcbiAgICAgICAgY29uc3QgY2hpbGRQYXRoID0gY29uZmlnICYmIGNvbmZpZy5wYXRoXG4gICAgICAgIHJldHVybiB0aGlzLnRhYmJlZEl0ZW1zPy5maW5kKHQgPT4gdC5uYW1lID09PSBjaGlsZFBhdGgpXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZFRhYlxuICAgIH1cbiAgfVxuICBzZXQgc2VsZWN0ZWRUYWIodGFiOiBUYWJiZWRJdGVtQ29tcG9uZW50IHwgdW5kZWZpbmVkKSB7IHRoaXMuX3NlbGVjdGVkVGFiID0gdGFiIH1cbiAgcHJpdmF0ZSBfc2VsZWN0ZWRUYWI6IFRhYmJlZEl0ZW1Db21wb25lbnQgfCB1bmRlZmluZWRcblxuICBwcml2YXRlIF9hY3RpdmVUYWJOYW1lVGltZW91dDogYW55XG4gIEBJbnB1dCgpXG4gIHNldCBhY3RpdmVUYWJOYW1lKHZhbDogc3RyaW5nKSB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX2FjdGl2ZVRhYk5hbWVUaW1lb3V0KVxuICAgIHRoaXMuX2FjdGl2ZVRhYk5hbWVUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIXZhbCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVGFiID0gdW5kZWZpbmVkXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdFRhYih2YWwpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0YWJiZWRTZXJ2aWNlOiBUYWJiZWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGVcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnRhYmJlZFNlcnZpY2UucmVnaXN0ZXJUYWIodGhpcywgJ21haW4nKVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy50YWJiZWRTZXJ2aWNlLnVucmVnaXN0ZXJUYWIodGhpcywgJ21haW4nKVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIGlmICh0aGlzLnRhYmJlZEl0ZW1zICYmIHRoaXMudGFiYmVkSXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9IHRoaXMudGFiYmVkSXRlbXMuZmlyc3RcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICpcbiAgICovXG4gIHB1YmxpYyBvbkNsaWNrVGFiKGV2ZW50OiBhbnksIHRhYjogVGFiYmVkSXRlbUNvbXBvbmVudCkge1xuICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSB0YWJcbiAgICBpZiAodGhpcy5vbmx5Um91dGVDb250ZW50KSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbIHRhYi5uYW1lIF0sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KVxuICAgIH1cbiAgICB0aGlzLnRhYkNoYW5nZWQuZW1pdCh0YWIpXG4gIH1cblxuICAvKipcbiAgICogVE9ETzogTWFrZSBtb3JlIGdlbmVyaWMsIHNvIHRoYXQgdGhlIG5hbWUgaXNuJ3QgdGhlIG9ubHkgd2F5XG4gICAqICB0byBzZWxlY3QgYSB0YWJcbiAgICovXG4gIHB1YmxpYyBzZWxlY3RUYWIobmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgdGFiID0gdGhpcy50YWJiZWRJdGVtcz8uZmluZCh0ID0+IHQubmFtZSA9PT0gbmFtZSlcbiAgICBpZiAodGFiKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVGFiID0gdGFiXG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGFiIHdpdGggbmFtZSAnJHtuYW1lfScgbm90IGZvdW5kYClcbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiBbZnhMYXlvdXRdPVwiKGRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnKSA/ICdjb2x1bW4nIDogJ3JvdydcIiBmeEZsZXhGaWxsPlxuXG4gIDwhLS0gVGFicyAtLT5cbiAgPGRpdiAqbmdJZj1cIiFoaWRlVGFic1wiXG4gICAgW2Z4TGF5b3V0XT1cIihkaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJykgPyAncm93JyA6ICdjb2x1bW4nXCJcbiAgICBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTtcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWJiZWRJdGVtIG9mIHRhYmJlZEl0ZW1zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidGFiYmVkLXRhYiBwdC0yIHBiLTIgcGwtNCBwci00IGJnLWxpZ2h0IHRleHQtbm93cmFwXCJcbiAgICAgICAgW2NsYXNzLnRhYi1kaXItaG9yaXpvbnRhbF09XCJkaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJ1wiXG4gICAgICAgIFtjbGFzcy50YWItZGlyLXZlcnRpY2FsXT1cImRpcmVjdGlvbiA9PT0gJ3ZlcnRpY2FsJ1wiXG4gICAgICAgIChjbGljayk9XCJvbkNsaWNrVGFiKCRldmVudCwgdGFiYmVkSXRlbSlcIlxuICAgICAgICBbY2xhc3MuYWN0aXZlXT1cInRhYmJlZEl0ZW0gPT09IHNlbGVjdGVkVGFiXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cInRhYmJlZEl0ZW0udGFiYmVkVGFiVHBsOyBlbHNlIHRhYkxhYmVsVHBsXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFiYmVkSXRlbS50YWJiZWRUYWJUcGxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3RhYkxhYmVsVHBsPnt7IHRhYmJlZEl0ZW0/LmxhYmVsIH19PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gPGRpdiBjbGFzcz1cImFjdGl2ZS1pbmRpY2F0b3JcIlxuICAgICAgW2NsYXNzLmFjdGl2ZS1pbmRpY2F0b3ItaG9yaXpvbnRhbF09XCJkaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJ1wiXG4gICAgICBbY2xhc3MuYWN0aXZlLWluZGljYXRvci12ZXJ0aWNhbF09XCJkaXJlY3Rpb24gPT09ICd2ZXJ0aWNhbCdcIj5cbiAgICA8L2Rpdj4gLS0+XG4gIDwvZGl2PlxuXG4gIDwhLS0gVGFicyBDb250ZW50IC0tPlxuICA8ZGl2IGNsYXNzPVwidGFiYmVkLXRhYnMtY29udGVudCBiZy1saWdodFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvbmx5Um91dGVDb250ZW50OyBlbHNlIG5vdE9ubHlSb3V0ZUNvbnRlbnRcIj5cbiAgICAgIDwhLS0gPGFwcC1zbGlkZS1vdmVyLXJvdXRlci1vdXRsZXQ+PC9hcHAtc2xpZGUtb3Zlci1yb3V0ZXItb3V0bGV0PiAtLT5cbiAgICAgIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI25vdE9ubHlSb3V0ZUNvbnRlbnQ+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNlbGVjdGVkVGFiOyBlbHNlIGZpbmRDb250ZW50VHBsXCI+XG4gICAgICAgIDxzZWFtLXRhYmJlZC1jb250ZW50IGZ4RmxleEZpbGwgW3RhYmJlZEl0ZW1dPVwidGFiYmVkSXRlbXM/LmZpcnN0XCI+PC9zZWFtLXRhYmJlZC1jb250ZW50PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2ZpbmRDb250ZW50VHBsPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0YWJiZWRJdGVtIG9mIHRhYmJlZEl0ZW1zXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkVGFiID09PSB0YWJiZWRJdGVtXCI+XG4gICAgICAgICAgICA8c2VhbS10YWJiZWQtY29udGVudCBmeEZsZXhGaWxsIFt0YWJiZWRJdGVtXT1cInRhYmJlZEl0ZW1cIj48L3NlYW0tdGFiYmVkLWNvbnRlbnQ+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cblxuPC9kaXY+XG4iXX0=
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiYmVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi90YWJiZWQvdGFiYmVkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi90YWJiZWQvdGFiYmVkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDYSxTQUFTLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFDN0YsTUFBTSxlQUFlLENBQUE7QUFFdEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUV2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUU1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFpQixNQUFNLGtCQUFrQixDQUFBOzs7Ozs7O0FBUS9ELE1BQU0sT0FBTyxlQUFlO0lBSzFCLElBQ0ksV0FBVyxDQUFDLEdBQStDO1FBQzdELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzdCLENBQUM7SUFDRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFBO0lBQ2hDLENBQUM7SUFNRCxJQUNJLFNBQVMsQ0FBQyxHQUFrQjtRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQTtJQUN2QixDQUFDO0lBQ0QsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxJQUNJLFFBQVEsQ0FBQyxHQUFZO1FBQ3ZCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQTtR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dENoaWxkcmVuLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIHNoYXJlUmVwbGF5LCB0YXAgfSBmcm9tICdyeGpzJ1xuXG5pbXBvcnQgeyBpc051bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcblxuaW1wb3J0IHsgVGFiYmVkSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vdGFiYmVkLWl0ZW0vdGFiYmVkLWl0ZW0uY29tcG9uZW50J1xuaW1wb3J0IHsgVGFiYmVkU2VydmljZSwgVGFic0RpcmVjdGlvbiB9IGZyb20gJy4vdGFiYmVkLnNlcnZpY2UnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NlYW0tdGFiYmVkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmJlZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYmJlZC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFsgVGFiYmVkU2VydmljZSBdXG59KVxuZXhwb3J0IGNsYXNzIFRhYmJlZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIF9kaXJlY3Rpb246IFRhYnNEaXJlY3Rpb24gPSAndmVydGljYWwnXG4gIHByaXZhdGUgX2hpZGVUYWJzID0gZmFsc2VcblxuICBAQ29udGVudENoaWxkcmVuKFRhYmJlZEl0ZW1Db21wb25lbnQpXG4gIHNldCB0YWJiZWRJdGVtcyh2YWw6IFF1ZXJ5TGlzdDxUYWJiZWRJdGVtQ29tcG9uZW50PiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3RhYmJlZEl0ZW1zLm5leHQodmFsKVxuICB9XG4gIGdldCB0YWJiZWRJdGVtcygpOiBRdWVyeUxpc3Q8VGFiYmVkSXRlbUNvbXBvbmVudD4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl90YWJiZWRJdGVtcy52YWx1ZVxuICB9XG4gIHByaXZhdGUgcmVhZG9ubHkgX3RhYmJlZEl0ZW1zID0gbmV3IEJlaGF2aW9yU3ViamVjdDxRdWVyeUxpc3Q8VGFiYmVkSXRlbUNvbXBvbmVudD4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZClcbiAgcHVibGljIHJlYWRvbmx5IHRhYmJlZEl0ZW1zJCA9IHRoaXMuX3RhYmJlZEl0ZW1zLmFzT2JzZXJ2YWJsZSgpXG5cbiAgQE91dHB1dCgpIHRhYkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFRhYmJlZEl0ZW1Db21wb25lbnQ+KClcblxuICBASW5wdXQoKVxuICBzZXQgZGlyZWN0aW9uKHZhbDogVGFic0RpcmVjdGlvbikge1xuICAgIHRoaXMuX2RpcmVjdGlvbiA9IHZhbFxuICB9XG4gIGdldCBkaXJlY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RpcmVjdGlvblxuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGhpZGVUYWJzKHZhbDogYm9vbGVhbikge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5faGlkZVRhYnMgPSB2YWxcbiAgICB9KVxuICB9XG4gIGdldCBoaWRlVGFicygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faGlkZVRhYnNcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvbmx5Um91dGVDb250ZW50ID0gZmFsc2VcblxuICBnZXQgc2VsZWN0ZWRUYWIoKTogVGFiYmVkSXRlbUNvbXBvbmVudCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMub25seVJvdXRlQ29udGVudCkge1xuICAgICAgaWYgKHRoaXMucm91dGUuc25hcHNob3QuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmNoaWxkcmVuWzBdLnJvdXRlQ29uZmlnXG4gICAgICAgIGNvbnN0IGNoaWxkUGF0aCA9IGNvbmZpZyAmJiBjb25maWcucGF0aFxuICAgICAgICByZXR1cm4gdGhpcy50YWJiZWRJdGVtcz8uZmluZCh0ID0+IHQubmFtZSA9PT0gY2hpbGRQYXRoKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRUYWIudmFsdWVcbiAgICB9XG4gIH1cbiAgc2V0IHNlbGVjdGVkVGFiKHRhYjogVGFiYmVkSXRlbUNvbXBvbmVudCB8IHVuZGVmaW5lZCkgeyB0aGlzLl9zZWxlY3RlZFRhYi5uZXh0KHRhYikgfVxuICBwcml2YXRlIHJlYWRvbmx5IF9zZWxlY3RlZFRhYiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGFiYmVkSXRlbUNvbXBvbmVudCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWRUYWIkID0gdGhpcy5fc2VsZWN0ZWRUYWIuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gIClcblxuICBASW5wdXQoKVxuICBzZXQgYWN0aXZlVGFiTmFtZSh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuX2FjdGl2ZVRhYk5hbWUubmV4dCh2YWwpXG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZlVGFiTmFtZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpXG4gIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZlVGFiTmFtZSQgPSB0aGlzLl9hY3RpdmVUYWJOYW1lLmFzT2JzZXJ2YWJsZSgpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRhYmJlZFNlcnZpY2U6IFRhYmJlZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudGFiYmVkU2VydmljZS5yZWdpc3RlclRhYih0aGlzLCAnbWFpbicpXG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnRhYmJlZFNlcnZpY2UudW5yZWdpc3RlclRhYih0aGlzLCAnbWFpbicpXG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgY29tYmluZUxhdGVzdChbIHRoaXMudGFiYmVkSXRlbXMkLCB0aGlzLmFjdGl2ZVRhYk5hbWUkIF0pLnBpcGUoXG4gICAgICB0YXAoKFsgXywgYWN0aXZlVGFiTmFtZSBdKSA9PiB0aGlzLnNlbGVjdFRhYihhY3RpdmVUYWJOYW1lKSlcbiAgICApLnN1YnNjcmliZSgpXG4gIH1cblxuICAvKipcbiAgICpcbiAgICovXG4gIHB1YmxpYyBvbkNsaWNrVGFiKGV2ZW50OiBhbnksIHRhYjogVGFiYmVkSXRlbUNvbXBvbmVudCkge1xuICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSB0YWJcbiAgICBpZiAodGhpcy5vbmx5Um91dGVDb250ZW50KSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbIHRhYi5uYW1lIF0sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KVxuICAgIH1cbiAgICB0aGlzLnRhYkNoYW5nZWQuZW1pdCh0YWIpXG4gIH1cblxuICAvKipcbiAgICogVE9ETzogTWFrZSBtb3JlIGdlbmVyaWMsIHNvIHRoYXQgdGhlIG5hbWUgaXNuJ3QgdGhlIG9ubHkgd2F5XG4gICAqICB0byBzZWxlY3QgYSB0YWJcbiAgICovXG4gIHB1YmxpYyBzZWxlY3RUYWIobmFtZT86IHN0cmluZykge1xuICAgIGlmIChpc051bGxPclVuZGVmaW5lZChuYW1lKSB8fCBuYW1lID09PSB0aGlzLnNlbGVjdGVkVGFiPy5uYW1lKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCB0YWIgPSB0aGlzLnRhYmJlZEl0ZW1zPy5maW5kKHQgPT4gdC5uYW1lID09PSBuYW1lKVxuICAgIGlmICh0YWIpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSB0YWJcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBjb25zb2xlLndhcm4oYFRhYiB3aXRoIG5hbWUgJyR7bmFtZX0nIG5vdCBmb3VuZGApXG4gICAgfVxuICB9XG5cbn1cbiIsIjxkaXYgW2Z4TGF5b3V0XT1cIihkaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJykgPyAnY29sdW1uJyA6ICdyb3cnXCIgZnhGbGV4RmlsbD5cblxuICA8IS0tIFRhYnMgLS0+XG4gIDxkaXYgKm5nSWY9XCIhaGlkZVRhYnNcIlxuICAgIFtmeExheW91dF09XCIoZGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCcpID8gJ3JvdycgOiAnY29sdW1uJ1wiXG4gICAgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGFiYmVkSXRlbSBvZiB0YWJiZWRJdGVtcyQgfCBhc3luY1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInRhYmJlZC10YWIgcHQtMiBwYi0yIHBsLTQgcHItNCBiZy1saWdodCB0ZXh0LW5vd3JhcFwiXG4gICAgICAgIFtjbGFzcy50YWItZGlyLWhvcml6b250YWxdPVwiZGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCdcIlxuICAgICAgICBbY2xhc3MudGFiLWRpci12ZXJ0aWNhbF09XCJkaXJlY3Rpb24gPT09ICd2ZXJ0aWNhbCdcIlxuICAgICAgICAoY2xpY2spPVwib25DbGlja1RhYigkZXZlbnQsIHRhYmJlZEl0ZW0pXCJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJ0YWJiZWRJdGVtID09PSAoc2VsZWN0ZWRUYWIkIHwgYXN5bmMpXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cInRhYmJlZEl0ZW0udGFiYmVkVGFiVHBsOyBlbHNlIHRhYkxhYmVsVHBsXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFiYmVkSXRlbS50YWJiZWRUYWJUcGxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3RhYkxhYmVsVHBsPnt7IHRhYmJlZEl0ZW0/LmxhYmVsIH19PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gPGRpdiBjbGFzcz1cImFjdGl2ZS1pbmRpY2F0b3JcIlxuICAgICAgW2NsYXNzLmFjdGl2ZS1pbmRpY2F0b3ItaG9yaXpvbnRhbF09XCJkaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJ1wiXG4gICAgICBbY2xhc3MuYWN0aXZlLWluZGljYXRvci12ZXJ0aWNhbF09XCJkaXJlY3Rpb24gPT09ICd2ZXJ0aWNhbCdcIj5cbiAgICA8L2Rpdj4gLS0+XG4gIDwvZGl2PlxuXG4gIDwhLS0gVGFicyBDb250ZW50IC0tPlxuICA8ZGl2IGNsYXNzPVwidGFiYmVkLXRhYnMtY29udGVudCBiZy1saWdodFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvbmx5Um91dGVDb250ZW50OyBlbHNlIG5vdE9ubHlSb3V0ZUNvbnRlbnRcIj5cbiAgICAgIDwhLS0gPGFwcC1zbGlkZS1vdmVyLXJvdXRlci1vdXRsZXQ+PC9hcHAtc2xpZGUtb3Zlci1yb3V0ZXItb3V0bGV0PiAtLT5cbiAgICAgIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI25vdE9ubHlSb3V0ZUNvbnRlbnQ+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRUYWIkIHwgYXN5bmMgYXMgc2VsZWN0ZWRUYWJcIj5cbiAgICAgICAgPHNlYW0tdGFiYmVkLWNvbnRlbnQgZnhGbGV4RmlsbCBbdGFiYmVkSXRlbV09XCJzZWxlY3RlZFRhYlwiPjwvc2VhbS10YWJiZWQtY29udGVudD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuXG48L2Rpdj5cbiJdfQ==
|
|
@@ -58,6 +58,7 @@ export class ToggleGroupDirective {
|
|
|
58
58
|
.pipe(tap(opt => { this._updateDirectiveState(opt); }))))
|
|
59
59
|
.subscribe();
|
|
60
60
|
});
|
|
61
|
+
this.optionDirectives?.changes.subscribe(() => this._updateDirectiveStates());
|
|
61
62
|
}
|
|
62
63
|
get value() {
|
|
63
64
|
return this.val;
|
|
@@ -195,4 +196,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
195
196
|
type: ContentChildren,
|
|
196
197
|
args: [ToggleGroupOptionDirective]
|
|
197
198
|
}] } });
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWdyb3VwLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi90b2dnbGUtZ3JvdXAvdG9nZ2xlLWdyb3VwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFnQixXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUNqRSxPQUFPLEVBQWlCLGVBQWUsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFBO0FBQ3hJLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRWxGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUV0RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTs7QUFFNUUsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQVE7SUFDOUMsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO0lBQ25ELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQTtBQU9ELE1BQU0sT0FBTyxvQkFBb0I7SUFMakM7UUFVbUIsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFBO1FBSzVCLGFBQVEsR0FBRyxLQUFLLENBQUE7UUFDaEIsYUFBUSxHQUFHLEtBQUssQ0FBQTtRQUNoQix3QkFBbUIsR0FBRyxJQUFJLENBQUE7UUFFbkQsNkVB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RjtJQUNILENBQUM7O2lIQWhMVSxvQkFBb0I7cUdBQXBCLG9CQUFvQixzTUFGcEIsQ0FBRSwyQkFBMkIsQ0FBRSwyREFxQnpCLDBCQUEwQjtBQVRsQjtJQUFmLFlBQVksRUFBRTtzREFBaUI7QUFDaEI7SUFBZixZQUFZLEVBQUU7c0RBQWlCO0FBQ2hCO0lBQWYsWUFBWSxFQUFFO2lFQUEyQjsyRkFaeEMsb0JBQW9CO2tCQUxoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFNBQVMsRUFBRSxDQUFFLDJCQUEyQixDQUFFO2lCQUMzQzs4QkFTaUIsR0FBRztzQkFBbEIsS0FBSzt1QkFBQyxPQUFPO2dCQUVXLFFBQVE7c0JBQWhDLEtBQUs7Z0JBQ21CLFFBQVE7c0JBQWhDLEtBQUs7Z0JBQ21CLG1CQUFtQjtzQkFBM0MsS0FBSztnQkFLYSxNQUFNO3NCQUF4QixNQUFNO2dCQUVzQyxnQkFBZ0I7c0JBQTVELGVBQWU7dUJBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VBcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbidcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbnRlbnRDaGlsZHJlbiwgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgZnJvbSwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBJbnB1dEJvb2xlYW4gfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vY29yZSdcblxuaW1wb3J0IHsgVG9nZ2xlR3JvdXBPcHRpb25EaXJlY3RpdmUgfSBmcm9tICcuL3RvZ2dsZS1ncm91cC1vcHRpb24uZGlyZWN0aXZlJ1xuXG5leHBvcnQgY29uc3QgVE9HR0xFX0dST1VQX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUb2dnbGVHcm91cERpcmVjdGl2ZSksXG4gIG11bHRpOiB0cnVlLFxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2VhbVRvZ2dsZUdyb3VwXScsXG4gIGV4cG9ydEFzOiAnc2VhbVRvZ2dsZUdyb3VwJyxcbiAgcHJvdmlkZXJzOiBbIFRPR0dMRV9HUk9VUF9WQUxVRV9BQ0NFU1NPUiBdXG59KVxuZXhwb3J0IGNsYXNzIFRvZ2dsZUdyb3VwRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95LCBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9kaXNhYmxlZDogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9tdWx0aXBsZTogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9zZWxlY3Rpb25Ub2dnbGVhYmxlOiBCb29sZWFuSW5wdXRcblxuICBwcml2YXRlIHJlYWRvbmx5IF9uZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgndmFsdWUnKSB2YWw6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBkaXNhYmxlZCA9IGZhbHNlXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBtdWx0aXBsZSA9IGZhbHNlXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBzZWxlY3Rpb25Ub2dnbGVhYmxlID0gdHJ1ZVxuXG4gIC8vIFRPRE86IEFkZCBtaW4vbWF4IHNlbGVjdGVkIGlucHV0cyB0byBtYWtlIHRvZ2dsaW5nIGJldHRlciBmb3IgbXVsdGkgc2VsZWN0XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gIEBPdXRwdXQoKSByZWFkb25seSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHwgbnVsbD4oKVxuXG4gIEBDb250ZW50Q2hpbGRyZW4oVG9nZ2xlR3JvdXBPcHRpb25EaXJlY3RpdmUpIG9wdGlvbkRpcmVjdGl2ZXM/OiBRdWVyeUxpc3Q8VG9nZ2xlR3JvdXBPcHRpb25EaXJlY3RpdmU+XG5cbiAgcHVibGljIG9wdGlvbnM/OiBPYnNlcnZhYmxlPFRvZ2dsZUdyb3VwT3B0aW9uRGlyZWN0aXZlW10+XG5cbiAgb25DaGFuZ2U6IGFueVxuICBvblRvdWNoZWQ6IGFueVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUubmV4dCgpXG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpXG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl91cGRhdGVEaXJlY3RpdmVTdGF0ZXMoKVxuXG4gICAgICBpZiAodGhpcy5vcHRpb25EaXJlY3RpdmVzKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IHRoaXMub3B0aW9uRGlyZWN0aXZlcy5jaGFuZ2VzXG4gICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgIC5waXBlKHN0YXJ0V2l0aCh0aGlzLm9wdGlvbkRpcmVjdGl2ZXMpKVxuICAgICAgICAgIC5waXBlKG1hcCh2ID0+IHYudG9BcnJheSgpIGFzIFRvZ2dsZUdyb3VwT3B0aW9uRGlyZWN0aXZlW10pKVxuXG4gICAgICAgIHRoaXMub3B0aW9ucy5waXBlKHN3aXRjaE1hcChvcHRzID0+IHtcbiAgICAgICAgICBjb25zdCBfdG1wID0gb2YodW5kZWZpbmVkKVxuICAgICAgICAgIGlmIChvcHRzKSB7XG4gICAgICAgICAgICBjb25zdCBfdjogT2JzZXJ2YWJsZTxib29sZWFuPltdID0gW11cbiAgICAgICAgICAgIGZvciAoY29uc3Qgb3B0IG9mIG9wdHMpIHtcbiAgICAgICAgICAgICAgX3YucHVzaChvcHQuc2VsZWN0aW9uQ2hhbmdlLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKHYgPT4gb3B0LnNlbGVjdGVkICE9PSB0aGlzLmlzU2VsZWN0ZWQob3B0LnZhbHVlKSksXG4gICAgICAgICAgICAgICAgdGFwKHYgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RlZChvcHQudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudW5zZWxlY3RWYWx1ZShvcHQudmFsdWUpXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdFZhbHVlKG9wdC52YWx1ZSlcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoX3YpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBfdG1wXG4gICAgICAgIH0pKS5zdWJzY3JpYmUoKVxuICAgICAgfVxuXG4gICAgICB0aGlzLmNoYW5nZVxuICAgICAgICAucGlwZShzd2l0Y2hNYXAoXyA9PiBmcm9tKHRoaXMub3B0aW9uRGlyZWN0aXZlcz8udG9BcnJheSgpIHx8IFtdKVxuICAgICAgICAgIC5waXBlKHRhcChvcHQgPT4geyB0aGlzLl91cGRhdGVEaXJlY3RpdmVTdGF0ZShvcHQpIH0pKVxuICAgICAgICApKVxuICAgICAgICAuc3Vic2NyaWJlKClcbiAgICB9KVxuICB9XG5cbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMudmFsXG4gIH1cblxuICBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xuICAgIGNvbnN0IF92YWx1ZSA9IHRoaXMubXVsdGlwbGVcbiAgICAgID8gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZFxuICAgICAgICA/IGNvZXJjZUFycmF5KHZhbHVlKVxuICAgICAgICA6IHZhbHVlXG4gICAgICA6IHZhbHVlXG5cbiAgICB0aGlzLnZhbCA9ICh0aGlzLm11bHRpcGxlKSA/IFsgLi4uKF92YWx1ZSBhcyBzdHJpbmdbXSB8fCBbXSkgXSA6IF92YWx1ZSB8fCAnJ1xuICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy52YWwpXG4gICAgaWYgKHRoaXMub25DaGFuZ2UpIHsgdGhpcy5vbkNoYW5nZShfdmFsdWUpIH1cbiAgICBpZiAodGhpcy5vblRvdWNoZWQpIHsgdGhpcy5vblRvdWNoZWQoKSB9XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWVcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmblxuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm5cbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkXG4gIH1cblxuICBpc1NlbGVjdGVkKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsKSB7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIGNvbnN0IGlkeCA9ICh0aGlzLnZhbHVlIGFzIHN0cmluZ1tdIHx8IFtdKS5maW5kSW5kZXgodiA9PiB2ID09PSB2YWx1ZSlcbiAgICAgIHJldHVybiBpZHggIT09IC0xXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRPRE86IENsZWFuIHRoaXMgdXAgd2hlbiB0aGUgZGlyZWN0aXZlIG5vIGxvbmdlciBhbGxvd3MgYXJyYXkgdmFsdWUgdHlwZSB3aGVuIG11bHRpcGxlIGlzIGZhbHNlXG4gICAgICBjb25zdCB2ID0gQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSAmJiB0aGlzLnZhbHVlLmxlbmd0aCA9PT0gMVxuICAgICAgICA/IHRoaXMudmFsdWVbMF1cbiAgICAgICAgOiB0aGlzLnZhbHVlXG4gICAgICByZXR1cm4gdiA9PT0gdmFsdWVcbiAgICB9XG4gIH1cblxuICB1bnNlbGVjdFZhbHVlKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsKSB7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMudmFsdWUgPSAodGhpcy52YWx1ZSBhcyBzdHJpbmdbXSB8fCBbXSkuZmlsdGVyKHYgPT4gdiAhPT0gdmFsdWUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsdWUgPSB1bmRlZmluZWRcbiAgICB9XG4gIH1cblxuICBzZWxlY3RWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICBjb25zdCBfdmFsdWUgPSBbIC4uLih0aGlzLnZhbHVlIGFzIHN0cmluZ1tdIHx8IFtdKSBdXG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWUgPyBbIC4uLl92YWx1ZSwgdmFsdWUgXSA6IF92YWx1ZVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWVcbiAgICB9XG4gIH1cblxuICBnZXRPcHRpb25EaXJlY3RpdmVCeVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMub3B0aW9uRGlyZWN0aXZlcyB8fCB0aGlzLm9wdGlvbkRpcmVjdGl2ZXMubGVuZ3RoIDwgMSkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5vcHRpb25EaXJlY3RpdmVzLnRvQXJyYXkoKVxuICAgICAgLmZpbmQob3B0ID0+IG9wdC52YWx1ZSA9PT0gdmFsdWUpXG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVEaXJlY3RpdmVTdGF0ZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub3B0aW9uRGlyZWN0aXZlcykge1xuICAgICAgZm9yIChjb25zdCBvcHQgb2YgdGhpcy5vcHRpb25EaXJlY3RpdmVzLnRvQXJyYXkoKSkge1xuICAgICAgICB0aGlzLl91cGRhdGVEaXJlY3RpdmVTdGF0ZShvcHQpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlRGlyZWN0aXZlU3RhdGUob3B0OiBUb2dnbGVHcm91cE9wdGlvbkRpcmVjdGl2ZSk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5pc1NlbGVjdGVkKG9wdC52YWx1ZSlcbiAgICBpZiAob3B0LnNlbGVjdGVkICE9PSBzZWxlY3RlZCkge1xuICAgICAgaWYgKCFvcHQuX2NhblVuc2VsZWN0KSB7XG4gICAgICAgIG9wdC5fY2FuVW5zZWxlY3QgPSB0cnVlXG4gICAgICB9XG4gICAgICBvcHQuc2VsZWN0ZWQgPSBzZWxlY3RlZFxuICAgIH1cbiAgICBpZiAoIXRoaXMuc2VsZWN0aW9uVG9nZ2xlYWJsZSkge1xuICAgICAgaWYgKCF0aGlzLm11bHRpcGxlIHx8ICh0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUubGVuZ3RoIDw9IDEpKSB7XG4gICAgICAgIGlmIChvcHQuc2VsZWN0ZWQpIHtcbiAgICAgICAgICBpZiAob3B0Ll9jYW5VbnNlbGVjdCkge1xuICAgICAgICAgICAgb3B0Ll9jYW5VbnNlbGVjdCA9IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICghb3B0Ll9jYW5VbnNlbGVjdCkge1xuICAgICAgICAgICAgb3B0Ll9jYW5VbnNlbGVjdCA9IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICghb3B0Ll9jYW5VbnNlbGVjdCkge1xuICAgICAgICAgIG9wdC5fY2FuVW5zZWxlY3QgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuIl19
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWdyb3VwLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi90b2dnbGUtZ3JvdXAvdG9nZ2xlLWdyb3VwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFnQixXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUNqRSxPQUFPLEVBQWlCLGVBQWUsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFBO0FBQ3hJLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRWxGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUV0RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTs7QUFFNUUsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQVE7SUFDOUMsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO0lBQ25ELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQTtBQU9ELE1BQU0sT0FBTyxvQkFBb0I7SUFMakM7UUFVbUIsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFBO1FBSzVCLGFBQVEsR0FBRyxLQUFLLENBQUE7UUFDaEIsYUFBUSxHQUFHLEtBQUssQ0FBQTtRQUNoQix3QkFBbUIsR0FBRyxJQUFJLENBQUE7UUFFbkQsNkVB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O2lCQUFNO2dCQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFO29CQUNyQixHQUFHLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQTtpQkFDeEI7YUFDRjtTQUNGO0lBQ0gsQ0FBQzs7aUhBbExVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHNNQUZwQixDQUFFLDJCQUEyQixDQUFFLDJEQXFCekIsMEJBQTBCO0FBVGxCO0lBQWYsWUFBWSxFQUFFO3NEQUFpQjtBQUNoQjtJQUFmLFlBQVksRUFBRTtzREFBaUI7QUFDaEI7SUFBZixZQUFZLEVBQUU7aUVBQTJCOzJGQVp4QyxvQkFBb0I7a0JBTGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsU0FBUyxFQUFFLENBQUUsMkJBQTJCLENBQUU7aUJBQzNDOzhCQVNpQixHQUFHO3NCQUFsQixLQUFLO3VCQUFDLE9BQU87Z0JBRVcsUUFBUTtzQkFBaEMsS0FBSztnQkFDbUIsUUFBUTtzQkFBaEMsS0FBSztnQkFDbUIsbUJBQW1CO3NCQUEzQyxLQUFLO2dCQUthLE1BQU07c0JBQXhCLE1BQU07Z0JBRXNDLGdCQUFnQjtzQkFBNUQsZUFBZTt1QkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJ1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29udGVudENoaWxkcmVuLCBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0LCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBmcm9tLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5cbmltcG9ydCB7IElucHV0Qm9vbGVhbiB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9jb3JlJ1xuXG5pbXBvcnQgeyBUb2dnbGVHcm91cE9wdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vdG9nZ2xlLWdyb3VwLW9wdGlvbi5kaXJlY3RpdmUnXG5cbmV4cG9ydCBjb25zdCBUT0dHTEVfR1JPVVBfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRvZ2dsZUdyb3VwRGlyZWN0aXZlKSxcbiAgbXVsdGk6IHRydWUsXG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tzZWFtVG9nZ2xlR3JvdXBdJyxcbiAgZXhwb3J0QXM6ICdzZWFtVG9nZ2xlR3JvdXAnLFxuICBwcm92aWRlcnM6IFsgVE9HR0xFX0dST1VQX1ZBTFVFX0FDQ0VTU09SIF1cbn0pXG5leHBvcnQgY2xhc3MgVG9nZ2xlR3JvdXBEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Rpc2FibGVkOiBCb29sZWFuSW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX211bHRpcGxlOiBCb29sZWFuSW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3NlbGVjdGlvblRvZ2dsZWFibGU6IEJvb2xlYW5JbnB1dFxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpXG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCd2YWx1ZScpIHZhbDogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIGRpc2FibGVkID0gZmFsc2VcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIG11bHRpcGxlID0gZmFsc2VcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHNlbGVjdGlvblRvZ2dsZWFibGUgPSB0cnVlXG5cbiAgLy8gVE9ETzogQWRkIG1pbi9tYXggc2VsZWN0ZWQgaW5wdXRzIHRvIG1ha2UgdG9nZ2xpbmcgYmV0dGVyIGZvciBtdWx0aSBzZWxlY3RcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQgfCBudWxsPigpXG5cbiAgQENvbnRlbnRDaGlsZHJlbihUb2dnbGVHcm91cE9wdGlvbkRpcmVjdGl2ZSkgb3B0aW9uRGlyZWN0aXZlcz86IFF1ZXJ5TGlzdDxUb2dnbGVHcm91cE9wdGlvbkRpcmVjdGl2ZT5cblxuICBwdWJsaWMgb3B0aW9ucz86IE9ic2VydmFibGU8VG9nZ2xlR3JvdXBPcHRpb25EaXJlY3RpdmVbXT5cblxuICBvbkNoYW5nZTogYW55XG4gIG9uVG91Y2hlZDogYW55XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5uZXh0KClcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKClcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuX3VwZGF0ZURpcmVjdGl2ZVN0YXRlcygpXG5cbiAgICAgIGlmICh0aGlzLm9wdGlvbkRpcmVjdGl2ZXMpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gdGhpcy5vcHRpb25EaXJlY3RpdmVzLmNoYW5nZXNcbiAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSkpXG4gICAgICAgICAgLnBpcGUoc3RhcnRXaXRoKHRoaXMub3B0aW9uRGlyZWN0aXZlcykpXG4gICAgICAgICAgLnBpcGUobWFwKHYgPT4gdi50b0FycmF5KCkgYXMgVG9nZ2xlR3JvdXBPcHRpb25EaXJlY3RpdmVbXSkpXG5cbiAgICAgICAgdGhpcy5vcHRpb25zLnBpcGUoc3dpdGNoTWFwKG9wdHMgPT4ge1xuICAgICAgICAgIGNvbnN0IF90bXAgPSBvZih1bmRlZmluZWQpXG4gICAgICAgICAgaWYgKG9wdHMpIHtcbiAgICAgICAgICAgIGNvbnN0IF92OiBPYnNlcnZhYmxlPGJvb2xlYW4+W10gPSBbXVxuICAgICAgICAgICAgZm9yIChjb25zdCBvcHQgb2Ygb3B0cykge1xuICAgICAgICAgICAgICBfdi5wdXNoKG9wdC5zZWxlY3Rpb25DaGFuZ2UucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIodiA9PiBvcHQuc2VsZWN0ZWQgIT09IHRoaXMuaXNTZWxlY3RlZChvcHQudmFsdWUpKSxcbiAgICAgICAgICAgICAgICB0YXAodiA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1NlbGVjdGVkKG9wdC52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51bnNlbGVjdFZhbHVlKG9wdC52YWx1ZSlcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0VmFsdWUob3B0LnZhbHVlKVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICkpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChfdilcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIF90bXBcbiAgICAgICAgfSkpLnN1YnNjcmliZSgpXG4gICAgICB9XG5cbiAgICAgIHRoaXMuY2hhbmdlXG4gICAgICAgIC5waXBlKHN3aXRjaE1hcChfID0+IGZyb20odGhpcy5vcHRpb25EaXJlY3RpdmVzPy50b0FycmF5KCkgfHwgW10pXG4gICAgICAgICAgLnBpcGUodGFwKG9wdCA9PiB7IHRoaXMuX3VwZGF0ZURpcmVjdGl2ZVN0YXRlKG9wdCkgfSkpXG4gICAgICAgICkpXG4gICAgICAgIC5zdWJzY3JpYmUoKVxuICAgIH0pXG5cbiAgICB0aGlzLm9wdGlvbkRpcmVjdGl2ZXM/LmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3VwZGF0ZURpcmVjdGl2ZVN0YXRlcygpKVxuICB9XG5cbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMudmFsXG4gIH1cblxuICBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xuICAgIGNvbnN0IF92YWx1ZSA9IHRoaXMubXVsdGlwbGVcbiAgICAgID8gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZFxuICAgICAgICA/IGNvZXJjZUFycmF5KHZhbHVlKVxuICAgICAgICA6IHZhbHVlXG4gICAgICA6IHZhbHVlXG5cbiAgICB0aGlzLnZhbCA9ICh0aGlzLm11bHRpcGxlKSA/IFsgLi4uKF92YWx1ZSBhcyBzdHJpbmdbXSB8fCBbXSkgXSA6IF92YWx1ZSB8fCAnJ1xuICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy52YWwpXG4gICAgaWYgKHRoaXMub25DaGFuZ2UpIHsgdGhpcy5vbkNoYW5nZShfdmFsdWUpIH1cbiAgICBpZiAodGhpcy5vblRvdWNoZWQpIHsgdGhpcy5vblRvdWNoZWQoKSB9XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWVcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmblxuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm5cbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkXG4gIH1cblxuICBpc1NlbGVjdGVkKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsKSB7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIGNvbnN0IGlkeCA9ICh0aGlzLnZhbHVlIGFzIHN0cmluZ1tdIHx8IFtdKS5maW5kSW5kZXgodiA9PiB2ID09PSB2YWx1ZSlcbiAgICAgIHJldHVybiBpZHggIT09IC0xXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRPRE86IENsZWFuIHRoaXMgdXAgd2hlbiB0aGUgZGlyZWN0aXZlIG5vIGxvbmdlciBhbGxvd3MgYXJyYXkgdmFsdWUgdHlwZSB3aGVuIG11bHRpcGxlIGlzIGZhbHNlXG4gICAgICBjb25zdCB2ID0gQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSAmJiB0aGlzLnZhbHVlLmxlbmd0aCA9PT0gMVxuICAgICAgICA/IHRoaXMudmFsdWVbMF1cbiAgICAgICAgOiB0aGlzLnZhbHVlXG4gICAgICByZXR1cm4gdiA9PT0gdmFsdWVcbiAgICB9XG4gIH1cblxuICB1bnNlbGVjdFZhbHVlKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsKSB7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMudmFsdWUgPSAodGhpcy52YWx1ZSBhcyBzdHJpbmdbXSB8fCBbXSkuZmlsdGVyKHYgPT4gdiAhPT0gdmFsdWUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsdWUgPSB1bmRlZmluZWRcbiAgICB9XG4gIH1cblxuICBzZWxlY3RWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICBjb25zdCBfdmFsdWUgPSBbIC4uLih0aGlzLnZhbHVlIGFzIHN0cmluZ1tdIHx8IFtdKSBdXG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWUgPyBbIC4uLl92YWx1ZSwgdmFsdWUgXSA6IF92YWx1ZVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWVcbiAgICB9XG4gIH1cblxuICBnZXRPcHRpb25EaXJlY3RpdmVCeVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMub3B0aW9uRGlyZWN0aXZlcyB8fCB0aGlzLm9wdGlvbkRpcmVjdGl2ZXMubGVuZ3RoIDwgMSkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5vcHRpb25EaXJlY3RpdmVzLnRvQXJyYXkoKVxuICAgICAgLmZpbmQob3B0ID0+IG9wdC52YWx1ZSA9PT0gdmFsdWUpXG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVEaXJlY3RpdmVTdGF0ZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub3B0aW9uRGlyZWN0aXZlcykge1xuICAgICAgZm9yIChjb25zdCBvcHQgb2YgdGhpcy5vcHRpb25EaXJlY3RpdmVzLnRvQXJyYXkoKSkge1xuICAgICAgICB0aGlzLl91cGRhdGVEaXJlY3RpdmVTdGF0ZShvcHQpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlRGlyZWN0aXZlU3RhdGUob3B0OiBUb2dnbGVHcm91cE9wdGlvbkRpcmVjdGl2ZSk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5pc1NlbGVjdGVkKG9wdC52YWx1ZSlcbiAgICBpZiAob3B0LnNlbGVjdGVkICE9PSBzZWxlY3RlZCkge1xuICAgICAgaWYgKCFvcHQuX2NhblVuc2VsZWN0KSB7XG4gICAgICAgIG9wdC5fY2FuVW5zZWxlY3QgPSB0cnVlXG4gICAgICB9XG4gICAgICBvcHQuc2VsZWN0ZWQgPSBzZWxlY3RlZFxuICAgIH1cbiAgICBpZiAoIXRoaXMuc2VsZWN0aW9uVG9nZ2xlYWJsZSkge1xuICAgICAgaWYgKCF0aGlzLm11bHRpcGxlIHx8ICh0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUubGVuZ3RoIDw9IDEpKSB7XG4gICAgICAgIGlmIChvcHQuc2VsZWN0ZWQpIHtcbiAgICAgICAgICBpZiAob3B0Ll9jYW5VbnNlbGVjdCkge1xuICAgICAgICAgICAgb3B0Ll9jYW5VbnNlbGVjdCA9IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICghb3B0Ll9jYW5VbnNlbGVjdCkge1xuICAgICAgICAgICAgb3B0Ll9jYW5VbnNlbGVjdCA9IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICghb3B0Ll9jYW5VbnNlbGVjdCkge1xuICAgICAgICAgIG9wdC5fY2FuVW5zZWxlY3QgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuIl19
|
|
@@ -8,6 +8,8 @@ import { FlexLayoutModule } from '@angular/flex-layout';
|
|
|
8
8
|
import * as i4 from '@angular/flex-layout/flex';
|
|
9
9
|
import { __decorate } from 'tslib';
|
|
10
10
|
import { InputBoolean } from '@theseam/ui-common/core';
|
|
11
|
+
import { BehaviorSubject, shareReplay, combineLatest, tap } from 'rxjs';
|
|
12
|
+
import { isNullOrUndefined } from '@theseam/ui-common/utils';
|
|
11
13
|
|
|
12
14
|
class TabbedContentComponent {
|
|
13
15
|
}
|
|
@@ -125,6 +127,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
125
127
|
}] } });
|
|
126
128
|
|
|
127
129
|
class TabbedComponent {
|
|
130
|
+
set tabbedItems(val) {
|
|
131
|
+
this._tabbedItems.next(val);
|
|
132
|
+
}
|
|
133
|
+
get tabbedItems() {
|
|
134
|
+
return this._tabbedItems.value;
|
|
135
|
+
}
|
|
128
136
|
set direction(val) {
|
|
129
137
|
this._direction = val;
|
|
130
138
|
}
|
|
@@ -149,20 +157,12 @@ class TabbedComponent {
|
|
|
149
157
|
}
|
|
150
158
|
}
|
|
151
159
|
else {
|
|
152
|
-
return this._selectedTab;
|
|
160
|
+
return this._selectedTab.value;
|
|
153
161
|
}
|
|
154
162
|
}
|
|
155
|
-
set selectedTab(tab) { this._selectedTab
|
|
163
|
+
set selectedTab(tab) { this._selectedTab.next(tab); }
|
|
156
164
|
set activeTabName(val) {
|
|
157
|
-
|
|
158
|
-
this._activeTabNameTimeout = setTimeout(() => {
|
|
159
|
-
if (!val) {
|
|
160
|
-
this.selectedTab = undefined;
|
|
161
|
-
}
|
|
162
|
-
else {
|
|
163
|
-
this.selectTab(val);
|
|
164
|
-
}
|
|
165
|
-
});
|
|
165
|
+
this._activeTabName.next(val);
|
|
166
166
|
}
|
|
167
167
|
constructor(tabbedService, router, route) {
|
|
168
168
|
this.tabbedService = tabbedService;
|
|
@@ -170,8 +170,14 @@ class TabbedComponent {
|
|
|
170
170
|
this.route = route;
|
|
171
171
|
this._direction = 'vertical';
|
|
172
172
|
this._hideTabs = false;
|
|
173
|
+
this._tabbedItems = new BehaviorSubject(undefined);
|
|
174
|
+
this.tabbedItems$ = this._tabbedItems.asObservable();
|
|
173
175
|
this.tabChanged = new EventEmitter();
|
|
174
176
|
this.onlyRouteContent = false;
|
|
177
|
+
this._selectedTab = new BehaviorSubject(undefined);
|
|
178
|
+
this.selectedTab$ = this._selectedTab.asObservable().pipe(shareReplay({ bufferSize: 1, refCount: true }));
|
|
179
|
+
this._activeTabName = new BehaviorSubject(undefined);
|
|
180
|
+
this.activeTabName$ = this._activeTabName.asObservable();
|
|
175
181
|
}
|
|
176
182
|
ngOnInit() {
|
|
177
183
|
this.tabbedService.registerTab(this, 'main');
|
|
@@ -180,9 +186,7 @@ class TabbedComponent {
|
|
|
180
186
|
this.tabbedService.unregisterTab(this, 'main');
|
|
181
187
|
}
|
|
182
188
|
ngAfterContentInit() {
|
|
183
|
-
|
|
184
|
-
this.selectedTab = this.tabbedItems.first;
|
|
185
|
-
}
|
|
189
|
+
combineLatest([this.tabbedItems$, this.activeTabName$]).pipe(tap(([_, activeTabName]) => this.selectTab(activeTabName))).subscribe();
|
|
186
190
|
}
|
|
187
191
|
/**
|
|
188
192
|
*
|
|
@@ -199,21 +203,24 @@ class TabbedComponent {
|
|
|
199
203
|
* to select a tab
|
|
200
204
|
*/
|
|
201
205
|
selectTab(name) {
|
|
202
|
-
var _a;
|
|
203
|
-
|
|
206
|
+
var _a, _b;
|
|
207
|
+
if (isNullOrUndefined(name) || name === ((_a = this.selectedTab) === null || _a === void 0 ? void 0 : _a.name)) {
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
const tab = (_b = this.tabbedItems) === null || _b === void 0 ? void 0 : _b.find(t => t.name === name);
|
|
204
211
|
if (tab) {
|
|
205
212
|
this.selectedTab = tab;
|
|
206
213
|
}
|
|
207
214
|
else {
|
|
208
|
-
|
|
215
|
+
console.warn(`Tab with name '${name}' not found`);
|
|
209
216
|
}
|
|
210
217
|
}
|
|
211
218
|
}
|
|
212
219
|
TabbedComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TabbedComponent, deps: [{ token: TabbedService }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
213
|
-
TabbedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TabbedComponent, selector: "seam-tabbed", inputs: { direction: "direction", hideTabs: "hideTabs", onlyRouteContent: "onlyRouteContent", activeTabName: "activeTabName" }, outputs: { tabChanged: "tabChanged" }, providers: [TabbedService], queries: [{ propertyName: "tabbedItems", predicate: TabbedItemComponent }], ngImport: i0, template: "<div [fxLayout]=\"(direction === 'horizontal') ? 'column' : 'row'\" fxFlexFill>\n\n <!-- Tabs -->\n <div *ngIf=\"!hideTabs\"\n [fxLayout]=\"(direction === 'horizontal') ? 'row' : 'column'\"\n style=\"position: relative;\">\n <ng-container *ngFor=\"let tabbedItem of tabbedItems\">\n <div class=\"tabbed-tab pt-2 pb-2 pl-4 pr-4 bg-light text-nowrap\"\n [class.tab-dir-horizontal]=\"direction === 'horizontal'\"\n [class.tab-dir-vertical]=\"direction === 'vertical'\"\n (click)=\"onClickTab($event, tabbedItem)\"\n [class.active]=\"tabbedItem === selectedTab\">\n <ng-template *ngIf=\"tabbedItem.tabbedTabTpl; else tabLabelTpl\" [ngTemplateOutlet]=\"tabbedItem.tabbedTabTpl\"></ng-template>\n <ng-template #tabLabelTpl>{{ tabbedItem?.label }}</ng-template>\n </div>\n </ng-container>\n <!-- <div class=\"active-indicator\"\n [class.active-indicator-horizontal]=\"direction === 'horizontal'\"\n [class.active-indicator-vertical]=\"direction === 'vertical'\">\n </div> -->\n </div>\n\n <!-- Tabs Content -->\n <div class=\"tabbed-tabs-content bg-light\">\n <ng-container *ngIf=\"onlyRouteContent; else notOnlyRouteContent\">\n <!-- <app-slide-over-router-outlet></app-slide-over-router-outlet> -->\n <router-outlet></router-outlet>\n </ng-container>\n <ng-template #notOnlyRouteContent>\n <ng-container *ngIf=\"
|
|
220
|
+
TabbedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TabbedComponent, selector: "seam-tabbed", inputs: { direction: "direction", hideTabs: "hideTabs", onlyRouteContent: "onlyRouteContent", activeTabName: "activeTabName" }, outputs: { tabChanged: "tabChanged" }, providers: [TabbedService], queries: [{ propertyName: "tabbedItems", predicate: TabbedItemComponent }], ngImport: i0, template: "<div [fxLayout]=\"(direction === 'horizontal') ? 'column' : 'row'\" fxFlexFill>\n\n <!-- Tabs -->\n <div *ngIf=\"!hideTabs\"\n [fxLayout]=\"(direction === 'horizontal') ? 'row' : 'column'\"\n style=\"position: relative;\">\n <ng-container *ngFor=\"let tabbedItem of tabbedItems$ | async\">\n <div class=\"tabbed-tab pt-2 pb-2 pl-4 pr-4 bg-light text-nowrap\"\n [class.tab-dir-horizontal]=\"direction === 'horizontal'\"\n [class.tab-dir-vertical]=\"direction === 'vertical'\"\n (click)=\"onClickTab($event, tabbedItem)\"\n [class.active]=\"tabbedItem === (selectedTab$ | async)\">\n <ng-template *ngIf=\"tabbedItem.tabbedTabTpl; else tabLabelTpl\" [ngTemplateOutlet]=\"tabbedItem.tabbedTabTpl\"></ng-template>\n <ng-template #tabLabelTpl>{{ tabbedItem?.label }}</ng-template>\n </div>\n </ng-container>\n <!-- <div class=\"active-indicator\"\n [class.active-indicator-horizontal]=\"direction === 'horizontal'\"\n [class.active-indicator-vertical]=\"direction === 'vertical'\">\n </div> -->\n </div>\n\n <!-- Tabs Content -->\n <div class=\"tabbed-tabs-content bg-light\">\n <ng-container *ngIf=\"onlyRouteContent; else notOnlyRouteContent\">\n <!-- <app-slide-over-router-outlet></app-slide-over-router-outlet> -->\n <router-outlet></router-outlet>\n </ng-container>\n <ng-template #notOnlyRouteContent>\n <ng-container *ngIf=\"selectedTab$ | async as selectedTab\">\n <seam-tabbed-content fxFlexFill [tabbedItem]=\"selectedTab\"></seam-tabbed-content>\n </ng-container>\n </ng-template>\n </div>\n\n</div>\n", styles: [":host{display:block}.tabbed-tab{box-sizing:border-box;font-weight:400;font-size:10pt;min-width:130px;transform:translateZ(0);overflow:hidden;border:1px solid #dee2e6}.tabbed-tab:not(.active){background-color:#fff!important}.tabbed-tab.active{font-weight:700;color:#357ebd}.tabbed-tab:hover{cursor:pointer}.tabbed-tab.tab-dir-horizontal{border-bottom:0}.tabbed-tab.tab-dir-horizontal:first-child{border-top-left-radius:.25rem}.tabbed-tab.tab-dir-horizontal:last-child{border-top-right-radius:.25rem}.tabbed-tab.tab-dir-horizontal:not(:last-child){border-right:0}.tabbed-tab.tab-dir-horizontal.active{margin-bottom:-2px}.tabbed-tab.tab-dir-vertical{border-right:0}.tabbed-tab.tab-dir-vertical:first-child{border-top-left-radius:.25rem}.tabbed-tab.tab-dir-vertical:last-child{border-bottom-left-radius:.25rem}.tabbed-tab.tab-dir-vertical:not(:last-child){border-bottom:0}.tabbed-tab.tab-dir-vertical.active{margin-right:-2px}.tabbed-tabs-content{display:block;flex:1 1 auto;overflow:hidden;border:1px solid #dee2e6;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}app-slide-over-router-outlet{width:100%;height:100%;min-width:0;min-height:0}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i4.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "component", type: TabbedContentComponent, selector: "seam-tabbed-content", inputs: ["tabbedItem"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] });
|
|
214
221
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TabbedComponent, decorators: [{
|
|
215
222
|
type: Component,
|
|
216
|
-
args: [{ selector: 'seam-tabbed', providers: [TabbedService], template: "<div [fxLayout]=\"(direction === 'horizontal') ? 'column' : 'row'\" fxFlexFill>\n\n <!-- Tabs -->\n <div *ngIf=\"!hideTabs\"\n [fxLayout]=\"(direction === 'horizontal') ? 'row' : 'column'\"\n style=\"position: relative;\">\n <ng-container *ngFor=\"let tabbedItem of tabbedItems\">\n <div class=\"tabbed-tab pt-2 pb-2 pl-4 pr-4 bg-light text-nowrap\"\n [class.tab-dir-horizontal]=\"direction === 'horizontal'\"\n [class.tab-dir-vertical]=\"direction === 'vertical'\"\n (click)=\"onClickTab($event, tabbedItem)\"\n [class.active]=\"tabbedItem === selectedTab\">\n <ng-template *ngIf=\"tabbedItem.tabbedTabTpl; else tabLabelTpl\" [ngTemplateOutlet]=\"tabbedItem.tabbedTabTpl\"></ng-template>\n <ng-template #tabLabelTpl>{{ tabbedItem?.label }}</ng-template>\n </div>\n </ng-container>\n <!-- <div class=\"active-indicator\"\n [class.active-indicator-horizontal]=\"direction === 'horizontal'\"\n [class.active-indicator-vertical]=\"direction === 'vertical'\">\n </div> -->\n </div>\n\n <!-- Tabs Content -->\n <div class=\"tabbed-tabs-content bg-light\">\n <ng-container *ngIf=\"onlyRouteContent; else notOnlyRouteContent\">\n <!-- <app-slide-over-router-outlet></app-slide-over-router-outlet> -->\n <router-outlet></router-outlet>\n </ng-container>\n <ng-template #notOnlyRouteContent>\n <ng-container *ngIf=\"
|
|
223
|
+
args: [{ selector: 'seam-tabbed', providers: [TabbedService], template: "<div [fxLayout]=\"(direction === 'horizontal') ? 'column' : 'row'\" fxFlexFill>\n\n <!-- Tabs -->\n <div *ngIf=\"!hideTabs\"\n [fxLayout]=\"(direction === 'horizontal') ? 'row' : 'column'\"\n style=\"position: relative;\">\n <ng-container *ngFor=\"let tabbedItem of tabbedItems$ | async\">\n <div class=\"tabbed-tab pt-2 pb-2 pl-4 pr-4 bg-light text-nowrap\"\n [class.tab-dir-horizontal]=\"direction === 'horizontal'\"\n [class.tab-dir-vertical]=\"direction === 'vertical'\"\n (click)=\"onClickTab($event, tabbedItem)\"\n [class.active]=\"tabbedItem === (selectedTab$ | async)\">\n <ng-template *ngIf=\"tabbedItem.tabbedTabTpl; else tabLabelTpl\" [ngTemplateOutlet]=\"tabbedItem.tabbedTabTpl\"></ng-template>\n <ng-template #tabLabelTpl>{{ tabbedItem?.label }}</ng-template>\n </div>\n </ng-container>\n <!-- <div class=\"active-indicator\"\n [class.active-indicator-horizontal]=\"direction === 'horizontal'\"\n [class.active-indicator-vertical]=\"direction === 'vertical'\">\n </div> -->\n </div>\n\n <!-- Tabs Content -->\n <div class=\"tabbed-tabs-content bg-light\">\n <ng-container *ngIf=\"onlyRouteContent; else notOnlyRouteContent\">\n <!-- <app-slide-over-router-outlet></app-slide-over-router-outlet> -->\n <router-outlet></router-outlet>\n </ng-container>\n <ng-template #notOnlyRouteContent>\n <ng-container *ngIf=\"selectedTab$ | async as selectedTab\">\n <seam-tabbed-content fxFlexFill [tabbedItem]=\"selectedTab\"></seam-tabbed-content>\n </ng-container>\n </ng-template>\n </div>\n\n</div>\n", styles: [":host{display:block}.tabbed-tab{box-sizing:border-box;font-weight:400;font-size:10pt;min-width:130px;transform:translateZ(0);overflow:hidden;border:1px solid #dee2e6}.tabbed-tab:not(.active){background-color:#fff!important}.tabbed-tab.active{font-weight:700;color:#357ebd}.tabbed-tab:hover{cursor:pointer}.tabbed-tab.tab-dir-horizontal{border-bottom:0}.tabbed-tab.tab-dir-horizontal:first-child{border-top-left-radius:.25rem}.tabbed-tab.tab-dir-horizontal:last-child{border-top-right-radius:.25rem}.tabbed-tab.tab-dir-horizontal:not(:last-child){border-right:0}.tabbed-tab.tab-dir-horizontal.active{margin-bottom:-2px}.tabbed-tab.tab-dir-vertical{border-right:0}.tabbed-tab.tab-dir-vertical:first-child{border-top-left-radius:.25rem}.tabbed-tab.tab-dir-vertical:last-child{border-bottom-left-radius:.25rem}.tabbed-tab.tab-dir-vertical:not(:last-child){border-bottom:0}.tabbed-tab.tab-dir-vertical.active{margin-right:-2px}.tabbed-tabs-content{display:block;flex:1 1 auto;overflow:hidden;border:1px solid #dee2e6;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}app-slide-over-router-outlet{width:100%;height:100%;min-width:0;min-height:0}\n"] }]
|
|
217
224
|
}], ctorParameters: function () { return [{ type: TabbedService }, { type: i2.Router }, { type: i2.ActivatedRoute }]; }, propDecorators: { tabbedItems: [{
|
|
218
225
|
type: ContentChildren,
|
|
219
226
|
args: [TabbedItemComponent]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theseam-ui-common-tabbed.mjs","sources":["../../../projects/ui-common/tabbed/tabbed-content/tabbed-content.component.ts","../../../projects/ui-common/tabbed/tabbed-content/tabbed-content.component.html","../../../projects/ui-common/tabbed/directives/tabbed-tab-content.directive.ts","../../../projects/ui-common/tabbed/tabbed.service.ts","../../../projects/ui-common/tabbed/directives/tabbed-tab.directive.ts","../../../projects/ui-common/tabbed/tabbed-item/tabbed-item.component.ts","../../../projects/ui-common/tabbed/tabbed-item/tabbed-item.component.html","../../../projects/ui-common/tabbed/tabbed.component.ts","../../../projects/ui-common/tabbed/tabbed.component.html","../../../projects/ui-common/tabbed/tabbed.module.ts","../../../projects/ui-common/tabbed/theseam-ui-common-tabbed.ts"],"sourcesContent":["import { Component, Input } from '@angular/core'\n\nimport { TabbedItemAccessor } from '../tabbed-models'\n\n@Component({\n selector: 'seam-tabbed-content',\n templateUrl: './tabbed-content.component.html',\n styleUrls: ['./tabbed-content.component.scss']\n})\nexport class TabbedContentComponent {\n\n @Input() tabbedItem?: TabbedItemAccessor\n\n}\n","<!-- <div class=\"fade-left\" fxFlexFill> -->\n<div fxFlexFill>\n <ng-container *ngIf=\"tabbedItem\">\n <ng-template *ngIf=\"tabbedItem.tabbedContentTpl\" [ngTemplateOutlet]=\"tabbedItem.tabbedContentTpl\"></ng-template>\n <ng-container *ngIf=\"tabbedItem.contentFromRoute\"><router-outlet></router-outlet></ng-container>\n </ng-container>\n</div>\n","import { Directive } from '@angular/core'\n\nimport { TabbedTabContentAccessor } from '../tabbed-models'\n\n@Directive({\n selector: '[seamTabbedTabContent]',\n exportAs: 'seamTabbedTabContent'\n})\nexport class TabbedTabContentDirective implements TabbedTabContentAccessor {\n\n public isActive = false\n\n}\n","import { Injectable } from '@angular/core'\n\nimport { TabbedComponent } from './tabbed.component'\n\nexport declare type TabsDirection = 'horizontal' | 'vertical'\n\n@Injectable()\nexport class TabbedService {\n\n private _tabGroups: { [groupName: string]: TabbedComponent[] } = {}\n\n public registerTab(tab: TabbedComponent, groupName: string) {\n if (!this._tabGroups[groupName]) {\n this._tabGroups[groupName] = []\n }\n\n for (const t of this._tabGroups[groupName]) {\n t.hideTabs = true\n }\n\n this._tabGroups[groupName].push(tab)\n }\n\n public unregisterTab(tab: TabbedComponent, groupName: string) {\n if (this._tabGroups[groupName]) {\n this._tabGroups[groupName] = this._tabGroups[groupName].filter(\n t => t !== tab\n )\n\n if (this._tabGroups[groupName].length > 0) {\n this._tabGroups[groupName][this._tabGroups[groupName].length - 1].hideTabs = false\n }\n }\n }\n\n}\n","import { Directive, ElementRef, HostBinding, OnInit } from '@angular/core'\n\nimport { TabbedTabAccessor } from '../tabbed-models'\nimport { TabbedComponent } from '../tabbed.component'\nimport { TabbedService } from '../tabbed.service'\n\n@Directive({\n selector: '[seamTabbedTab]',\n exportAs: 'seamTabbedTab'\n})\nexport class TabbedTabDirective implements OnInit, TabbedTabAccessor {\n\n // @HostBinding('class.custom-invalid')\n // get customInvalid() { return this.control.invalid }\n\n public isActive = false\n\n constructor(\n public elementRef: ElementRef,\n // public host: TabbedComponent,\n public tabbedService: TabbedService\n ) { }\n\n // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method\n ngOnInit() {\n // this.tabbedService.selectedTab.subscribe(tab => {\n // console.log('tab: ', tab)\n // console.log('tab.tabbedTabTpl.elementRef: ', tab.tabbedTabTpl.elementRef)\n // console.log('this.elementRef: ', this.elementRef)\n // if (tab.tabbedTabTpl.elementRef.na === this.elementRef) {\n // this.isActive = true\n // } else {\n // this.isActive = false\n // }\n // })\n }\n\n}\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport { Component, ContentChild, Input, TemplateRef } from '@angular/core'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\n\nimport { TabbedTabContentDirective } from '../directives/tabbed-tab-content.directive'\nimport { TabbedTabDirective } from '../directives/tabbed-tab.directive'\nimport { TabbedItemAccessor } from '../tabbed-models'\n\n@Component({\n selector: 'seam-tabbed-item',\n templateUrl: './tabbed-item.component.html',\n styleUrls: ['./tabbed-item.component.scss']\n})\nexport class TabbedItemComponent implements TabbedItemAccessor {\n static ngAcceptInputType_contentFromRoute: BooleanInput\n\n @ContentChild(TabbedTabDirective, { read: TemplateRef, static: true })\n public tabbedTabTpl?: TemplateRef<TabbedTabDirective>\n\n @ContentChild(TabbedTabContentDirective, { read: TemplateRef, static: true })\n public tabbedContentTpl?: TemplateRef<TabbedTabContentDirective>\n\n @Input() name: string | undefined | null\n @Input() label: string | undefined | null\n @Input() @InputBoolean() contentFromRoute = false\n}\n","<p>\n tabbed-item works!\n</p>","import {\n AfterContentInit, Component, ContentChildren, EventEmitter, Input, OnDestroy, OnInit, Output, QueryList\n} from '@angular/core'\nimport { ActivatedRoute, Router } from '@angular/router'\n\nimport { TabbedItemComponent } from './tabbed-item/tabbed-item.component'\nimport { TabbedService, TabsDirection } from './tabbed.service'\n\n@Component({\n selector: 'seam-tabbed',\n templateUrl: './tabbed.component.html',\n styleUrls: ['./tabbed.component.scss'],\n providers: [ TabbedService ]\n})\nexport class TabbedComponent implements OnInit, AfterContentInit, OnDestroy {\n\n private _direction: TabsDirection = 'vertical'\n private _hideTabs = false\n\n @ContentChildren(TabbedItemComponent) tabbedItems?: QueryList<TabbedItemComponent>\n\n @Output() tabChanged = new EventEmitter<TabbedItemComponent>()\n\n @Input()\n set direction(val: TabsDirection) {\n this._direction = val\n }\n get direction() {\n return this._direction\n }\n\n @Input()\n set hideTabs(val: boolean) {\n setTimeout(() => {\n this._hideTabs = val\n })\n }\n get hideTabs(): boolean {\n return this._hideTabs\n }\n\n @Input()\n public onlyRouteContent = false\n\n get selectedTab(): TabbedItemComponent | undefined {\n if (this.onlyRouteContent) {\n if (this.route.snapshot.children.length > 0) {\n const config = this.route.snapshot.children[0].routeConfig\n const childPath = config && config.path\n return this.tabbedItems?.find(t => t.name === childPath)\n }\n } else {\n return this._selectedTab\n }\n }\n set selectedTab(tab: TabbedItemComponent | undefined) { this._selectedTab = tab }\n private _selectedTab: TabbedItemComponent | undefined\n\n private _activeTabNameTimeout: any\n @Input()\n set activeTabName(val: string) {\n clearTimeout(this._activeTabNameTimeout)\n this._activeTabNameTimeout = setTimeout(() => {\n if (!val) {\n this.selectedTab = undefined\n } else {\n this.selectTab(val)\n }\n })\n }\n\n constructor(\n public tabbedService: TabbedService,\n private router: Router,\n private route: ActivatedRoute\n ) { }\n\n ngOnInit() {\n this.tabbedService.registerTab(this, 'main')\n }\n\n ngOnDestroy() {\n this.tabbedService.unregisterTab(this, 'main')\n }\n\n ngAfterContentInit() {\n if (this.tabbedItems && this.tabbedItems.length > 0) {\n this.selectedTab = this.tabbedItems.first\n }\n }\n\n /**\n *\n */\n public onClickTab(event: any, tab: TabbedItemComponent) {\n this.selectedTab = tab\n if (this.onlyRouteContent) {\n this.router.navigate([ tab.name ], { relativeTo: this.route })\n }\n this.tabChanged.emit(tab)\n }\n\n /**\n * TODO: Make more generic, so that the name isn't the only way\n * to select a tab\n */\n public selectTab(name: string) {\n const tab = this.tabbedItems?.find(t => t.name === name)\n if (tab) {\n this.selectedTab = tab\n } else {\n throw new Error(`Tab with name '${name}' not found`)\n }\n }\n\n}\n","<div [fxLayout]=\"(direction === 'horizontal') ? 'column' : 'row'\" fxFlexFill>\n\n <!-- Tabs -->\n <div *ngIf=\"!hideTabs\"\n [fxLayout]=\"(direction === 'horizontal') ? 'row' : 'column'\"\n style=\"position: relative;\">\n <ng-container *ngFor=\"let tabbedItem of tabbedItems\">\n <div class=\"tabbed-tab pt-2 pb-2 pl-4 pr-4 bg-light text-nowrap\"\n [class.tab-dir-horizontal]=\"direction === 'horizontal'\"\n [class.tab-dir-vertical]=\"direction === 'vertical'\"\n (click)=\"onClickTab($event, tabbedItem)\"\n [class.active]=\"tabbedItem === selectedTab\">\n <ng-template *ngIf=\"tabbedItem.tabbedTabTpl; else tabLabelTpl\" [ngTemplateOutlet]=\"tabbedItem.tabbedTabTpl\"></ng-template>\n <ng-template #tabLabelTpl>{{ tabbedItem?.label }}</ng-template>\n </div>\n </ng-container>\n <!-- <div class=\"active-indicator\"\n [class.active-indicator-horizontal]=\"direction === 'horizontal'\"\n [class.active-indicator-vertical]=\"direction === 'vertical'\">\n </div> -->\n </div>\n\n <!-- Tabs Content -->\n <div class=\"tabbed-tabs-content bg-light\">\n <ng-container *ngIf=\"onlyRouteContent; else notOnlyRouteContent\">\n <!-- <app-slide-over-router-outlet></app-slide-over-router-outlet> -->\n <router-outlet></router-outlet>\n </ng-container>\n <ng-template #notOnlyRouteContent>\n <ng-container *ngIf=\"!selectedTab; else findContentTpl\">\n <seam-tabbed-content fxFlexFill [tabbedItem]=\"tabbedItems?.first\"></seam-tabbed-content>\n </ng-container>\n <ng-template #findContentTpl>\n <ng-container *ngFor=\"let tabbedItem of tabbedItems\">\n <ng-container *ngIf=\"selectedTab === tabbedItem\">\n <seam-tabbed-content fxFlexFill [tabbedItem]=\"tabbedItem\"></seam-tabbed-content>\n </ng-container>\n </ng-container>\n </ng-template>\n </ng-template>\n </div>\n\n</div>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { RouterModule } from '@angular/router'\n\nimport { FlexLayoutModule } from '@angular/flex-layout'\n\nimport { TabbedContentComponent } from './tabbed-content/tabbed-content.component'\nimport { TabbedItemComponent } from './tabbed-item/tabbed-item.component'\nimport { TabbedComponent } from './tabbed.component'\n\nimport { TabbedTabContentDirective } from './directives/tabbed-tab-content.directive'\nimport { TabbedTabDirective } from './directives/tabbed-tab.directive'\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n FlexLayoutModule,\n ],\n declarations: [\n TabbedComponent,\n TabbedTabContentDirective,\n TabbedTabDirective,\n TabbedItemComponent,\n TabbedContentComponent,\n TabbedContentComponent,\n],\n exports: [\n TabbedComponent,\n TabbedTabContentDirective,\n TabbedTabDirective,\n TabbedItemComponent,\n TabbedContentComponent,\n ]\n})\nexport class TheSeamTabbedModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3","i1.TabbedService","i5.TabbedContentComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"theseam-ui-common-tabbed.mjs","sources":["../../../projects/ui-common/tabbed/tabbed-content/tabbed-content.component.ts","../../../projects/ui-common/tabbed/tabbed-content/tabbed-content.component.html","../../../projects/ui-common/tabbed/directives/tabbed-tab-content.directive.ts","../../../projects/ui-common/tabbed/tabbed.service.ts","../../../projects/ui-common/tabbed/directives/tabbed-tab.directive.ts","../../../projects/ui-common/tabbed/tabbed-item/tabbed-item.component.ts","../../../projects/ui-common/tabbed/tabbed-item/tabbed-item.component.html","../../../projects/ui-common/tabbed/tabbed.component.ts","../../../projects/ui-common/tabbed/tabbed.component.html","../../../projects/ui-common/tabbed/tabbed.module.ts","../../../projects/ui-common/tabbed/theseam-ui-common-tabbed.ts"],"sourcesContent":["import { Component, Input } from '@angular/core'\n\nimport { TabbedItemAccessor } from '../tabbed-models'\n\n@Component({\n selector: 'seam-tabbed-content',\n templateUrl: './tabbed-content.component.html',\n styleUrls: ['./tabbed-content.component.scss']\n})\nexport class TabbedContentComponent {\n\n @Input() tabbedItem?: TabbedItemAccessor\n\n}\n","<!-- <div class=\"fade-left\" fxFlexFill> -->\n<div fxFlexFill>\n <ng-container *ngIf=\"tabbedItem\">\n <ng-template *ngIf=\"tabbedItem.tabbedContentTpl\" [ngTemplateOutlet]=\"tabbedItem.tabbedContentTpl\"></ng-template>\n <ng-container *ngIf=\"tabbedItem.contentFromRoute\"><router-outlet></router-outlet></ng-container>\n </ng-container>\n</div>\n","import { Directive } from '@angular/core'\n\nimport { TabbedTabContentAccessor } from '../tabbed-models'\n\n@Directive({\n selector: '[seamTabbedTabContent]',\n exportAs: 'seamTabbedTabContent'\n})\nexport class TabbedTabContentDirective implements TabbedTabContentAccessor {\n\n public isActive = false\n\n}\n","import { Injectable } from '@angular/core'\n\nimport { TabbedComponent } from './tabbed.component'\n\nexport declare type TabsDirection = 'horizontal' | 'vertical'\n\n@Injectable()\nexport class TabbedService {\n\n private _tabGroups: { [groupName: string]: TabbedComponent[] } = {}\n\n public registerTab(tab: TabbedComponent, groupName: string) {\n if (!this._tabGroups[groupName]) {\n this._tabGroups[groupName] = []\n }\n\n for (const t of this._tabGroups[groupName]) {\n t.hideTabs = true\n }\n\n this._tabGroups[groupName].push(tab)\n }\n\n public unregisterTab(tab: TabbedComponent, groupName: string) {\n if (this._tabGroups[groupName]) {\n this._tabGroups[groupName] = this._tabGroups[groupName].filter(\n t => t !== tab\n )\n\n if (this._tabGroups[groupName].length > 0) {\n this._tabGroups[groupName][this._tabGroups[groupName].length - 1].hideTabs = false\n }\n }\n }\n\n}\n","import { Directive, ElementRef, HostBinding, OnInit } from '@angular/core'\n\nimport { TabbedTabAccessor } from '../tabbed-models'\nimport { TabbedComponent } from '../tabbed.component'\nimport { TabbedService } from '../tabbed.service'\n\n@Directive({\n selector: '[seamTabbedTab]',\n exportAs: 'seamTabbedTab'\n})\nexport class TabbedTabDirective implements OnInit, TabbedTabAccessor {\n\n // @HostBinding('class.custom-invalid')\n // get customInvalid() { return this.control.invalid }\n\n public isActive = false\n\n constructor(\n public elementRef: ElementRef,\n // public host: TabbedComponent,\n public tabbedService: TabbedService\n ) { }\n\n // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method\n ngOnInit() {\n // this.tabbedService.selectedTab.subscribe(tab => {\n // console.log('tab: ', tab)\n // console.log('tab.tabbedTabTpl.elementRef: ', tab.tabbedTabTpl.elementRef)\n // console.log('this.elementRef: ', this.elementRef)\n // if (tab.tabbedTabTpl.elementRef.na === this.elementRef) {\n // this.isActive = true\n // } else {\n // this.isActive = false\n // }\n // })\n }\n\n}\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport { Component, ContentChild, Input, TemplateRef } from '@angular/core'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\n\nimport { TabbedTabContentDirective } from '../directives/tabbed-tab-content.directive'\nimport { TabbedTabDirective } from '../directives/tabbed-tab.directive'\nimport { TabbedItemAccessor } from '../tabbed-models'\n\n@Component({\n selector: 'seam-tabbed-item',\n templateUrl: './tabbed-item.component.html',\n styleUrls: ['./tabbed-item.component.scss']\n})\nexport class TabbedItemComponent implements TabbedItemAccessor {\n static ngAcceptInputType_contentFromRoute: BooleanInput\n\n @ContentChild(TabbedTabDirective, { read: TemplateRef, static: true })\n public tabbedTabTpl?: TemplateRef<TabbedTabDirective>\n\n @ContentChild(TabbedTabContentDirective, { read: TemplateRef, static: true })\n public tabbedContentTpl?: TemplateRef<TabbedTabContentDirective>\n\n @Input() name: string | undefined | null\n @Input() label: string | undefined | null\n @Input() @InputBoolean() contentFromRoute = false\n}\n","<p>\n tabbed-item works!\n</p>","import {\n AfterContentInit, Component, ContentChildren, EventEmitter, Input, OnDestroy, OnInit, Output, QueryList\n} from '@angular/core'\nimport { ActivatedRoute, Router } from '@angular/router'\nimport { BehaviorSubject, combineLatest, shareReplay, tap } from 'rxjs'\n\nimport { isNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { TabbedItemComponent } from './tabbed-item/tabbed-item.component'\nimport { TabbedService, TabsDirection } from './tabbed.service'\n\n@Component({\n selector: 'seam-tabbed',\n templateUrl: './tabbed.component.html',\n styleUrls: ['./tabbed.component.scss'],\n providers: [ TabbedService ]\n})\nexport class TabbedComponent implements OnInit, AfterContentInit, OnDestroy {\n\n private _direction: TabsDirection = 'vertical'\n private _hideTabs = false\n\n @ContentChildren(TabbedItemComponent)\n set tabbedItems(val: QueryList<TabbedItemComponent> | undefined) {\n this._tabbedItems.next(val)\n }\n get tabbedItems(): QueryList<TabbedItemComponent> | undefined {\n return this._tabbedItems.value\n }\n private readonly _tabbedItems = new BehaviorSubject<QueryList<TabbedItemComponent> | undefined>(undefined)\n public readonly tabbedItems$ = this._tabbedItems.asObservable()\n\n @Output() tabChanged = new EventEmitter<TabbedItemComponent>()\n\n @Input()\n set direction(val: TabsDirection) {\n this._direction = val\n }\n get direction() {\n return this._direction\n }\n\n @Input()\n set hideTabs(val: boolean) {\n setTimeout(() => {\n this._hideTabs = val\n })\n }\n get hideTabs(): boolean {\n return this._hideTabs\n }\n\n @Input()\n public onlyRouteContent = false\n\n get selectedTab(): TabbedItemComponent | undefined {\n if (this.onlyRouteContent) {\n if (this.route.snapshot.children.length > 0) {\n const config = this.route.snapshot.children[0].routeConfig\n const childPath = config && config.path\n return this.tabbedItems?.find(t => t.name === childPath)\n }\n } else {\n return this._selectedTab.value\n }\n }\n set selectedTab(tab: TabbedItemComponent | undefined) { this._selectedTab.next(tab) }\n private readonly _selectedTab = new BehaviorSubject<TabbedItemComponent | undefined>(undefined)\n public readonly selectedTab$ = this._selectedTab.asObservable().pipe(\n shareReplay({ bufferSize: 1, refCount: true })\n )\n\n @Input()\n set activeTabName(val: string) {\n this._activeTabName.next(val)\n }\n private readonly _activeTabName = new BehaviorSubject<string | undefined>(undefined)\n private readonly activeTabName$ = this._activeTabName.asObservable()\n\n constructor(\n public tabbedService: TabbedService,\n private router: Router,\n private route: ActivatedRoute\n ) { }\n\n ngOnInit() {\n this.tabbedService.registerTab(this, 'main')\n }\n\n ngOnDestroy() {\n this.tabbedService.unregisterTab(this, 'main')\n }\n\n ngAfterContentInit() {\n combineLatest([ this.tabbedItems$, this.activeTabName$ ]).pipe(\n tap(([ _, activeTabName ]) => this.selectTab(activeTabName))\n ).subscribe()\n }\n\n /**\n *\n */\n public onClickTab(event: any, tab: TabbedItemComponent) {\n this.selectedTab = tab\n if (this.onlyRouteContent) {\n this.router.navigate([ tab.name ], { relativeTo: this.route })\n }\n this.tabChanged.emit(tab)\n }\n\n /**\n * TODO: Make more generic, so that the name isn't the only way\n * to select a tab\n */\n public selectTab(name?: string) {\n if (isNullOrUndefined(name) || name === this.selectedTab?.name) {\n return\n }\n\n const tab = this.tabbedItems?.find(t => t.name === name)\n if (tab) {\n this.selectedTab = tab\n }\n else {\n console.warn(`Tab with name '${name}' not found`)\n }\n }\n\n}\n","<div [fxLayout]=\"(direction === 'horizontal') ? 'column' : 'row'\" fxFlexFill>\n\n <!-- Tabs -->\n <div *ngIf=\"!hideTabs\"\n [fxLayout]=\"(direction === 'horizontal') ? 'row' : 'column'\"\n style=\"position: relative;\">\n <ng-container *ngFor=\"let tabbedItem of tabbedItems$ | async\">\n <div class=\"tabbed-tab pt-2 pb-2 pl-4 pr-4 bg-light text-nowrap\"\n [class.tab-dir-horizontal]=\"direction === 'horizontal'\"\n [class.tab-dir-vertical]=\"direction === 'vertical'\"\n (click)=\"onClickTab($event, tabbedItem)\"\n [class.active]=\"tabbedItem === (selectedTab$ | async)\">\n <ng-template *ngIf=\"tabbedItem.tabbedTabTpl; else tabLabelTpl\" [ngTemplateOutlet]=\"tabbedItem.tabbedTabTpl\"></ng-template>\n <ng-template #tabLabelTpl>{{ tabbedItem?.label }}</ng-template>\n </div>\n </ng-container>\n <!-- <div class=\"active-indicator\"\n [class.active-indicator-horizontal]=\"direction === 'horizontal'\"\n [class.active-indicator-vertical]=\"direction === 'vertical'\">\n </div> -->\n </div>\n\n <!-- Tabs Content -->\n <div class=\"tabbed-tabs-content bg-light\">\n <ng-container *ngIf=\"onlyRouteContent; else notOnlyRouteContent\">\n <!-- <app-slide-over-router-outlet></app-slide-over-router-outlet> -->\n <router-outlet></router-outlet>\n </ng-container>\n <ng-template #notOnlyRouteContent>\n <ng-container *ngIf=\"selectedTab$ | async as selectedTab\">\n <seam-tabbed-content fxFlexFill [tabbedItem]=\"selectedTab\"></seam-tabbed-content>\n </ng-container>\n </ng-template>\n </div>\n\n</div>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { RouterModule } from '@angular/router'\n\nimport { FlexLayoutModule } from '@angular/flex-layout'\n\nimport { TabbedContentComponent } from './tabbed-content/tabbed-content.component'\nimport { TabbedItemComponent } from './tabbed-item/tabbed-item.component'\nimport { TabbedComponent } from './tabbed.component'\n\nimport { TabbedTabContentDirective } from './directives/tabbed-tab-content.directive'\nimport { TabbedTabDirective } from './directives/tabbed-tab.directive'\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n FlexLayoutModule,\n ],\n declarations: [\n TabbedComponent,\n TabbedTabContentDirective,\n TabbedTabDirective,\n TabbedItemComponent,\n TabbedContentComponent,\n TabbedContentComponent,\n],\n exports: [\n TabbedComponent,\n TabbedTabContentDirective,\n TabbedTabDirective,\n TabbedItemComponent,\n TabbedContentComponent,\n ]\n})\nexport class TheSeamTabbedModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3","i1.TabbedService","i5.TabbedContentComponent"],"mappings":"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"}
|
|
@@ -72,6 +72,7 @@ class ToggleGroupDirective {
|
|
|
72
72
|
this._ngUnsubscribe.complete();
|
|
73
73
|
}
|
|
74
74
|
ngAfterViewInit() {
|
|
75
|
+
var _a;
|
|
75
76
|
setTimeout(() => {
|
|
76
77
|
this._updateDirectiveStates();
|
|
77
78
|
if (this.optionDirectives) {
|
|
@@ -106,6 +107,7 @@ class ToggleGroupDirective {
|
|
|
106
107
|
}))
|
|
107
108
|
.subscribe();
|
|
108
109
|
});
|
|
110
|
+
(_a = this.optionDirectives) === null || _a === void 0 ? void 0 : _a.changes.subscribe(() => this._updateDirectiveStates());
|
|
109
111
|
}
|
|
110
112
|
get value() {
|
|
111
113
|
return this.val;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theseam-ui-common-toggle-group.mjs","sources":["../../../projects/ui-common/toggle-group/toggle-group-option.directive.ts","../../../projects/ui-common/toggle-group/toggle-group.directive.ts","../../../projects/ui-common/toggle-group/toggle-group.module.ts","../../../projects/ui-common/toggle-group/theseam-ui-common-toggle-group.ts"],"sourcesContent":["import { coerceBooleanProperty } from '@angular/cdk/coercion'\nimport { ChangeDetectorRef, Directive, ElementRef, EventEmitter, HostBinding, Input, Output } from '@angular/core'\n\n@Directive({\n selector: '[seamToggleGroupOption]',\n exportAs: 'seamToggleGroupOption'\n})\nexport class ToggleGroupOptionDirective {\n\n @Input() seamToggleGroupOption: string | undefined | null\n\n @Input()\n get selected(): boolean { return this._selected }\n set selected(value: boolean) {\n if (!this._canUnselect && !value) { return }\n this._selected = coerceBooleanProperty(value)\n this.selectionChange.emit(this._selected)\n this._cdr.markForCheck()\n }\n private _selected = false\n\n /** Internal use only for now. */\n _canUnselect = true\n\n @Output() selectionChange = new EventEmitter<boolean>()\n\n @HostBinding('class.lib-toggle-group-option-selected') get _checkioSelectedClass() {\n return this._selected\n }\n\n constructor(\n private readonly _elementRef: ElementRef,\n private readonly _cdr: ChangeDetectorRef\n ) { }\n\n get value(): string | undefined | null {\n return this.seamToggleGroupOption\n }\n\n}\n","import { BooleanInput, coerceArray } from '@angular/cdk/coercion'\nimport { AfterViewInit, ContentChildren, Directive, EventEmitter, forwardRef, Input, OnDestroy, Output, QueryList } from '@angular/core'\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'\nimport { combineLatest, from, Observable, of, Subject } from 'rxjs'\nimport { filter, map, startWith, switchMap, takeUntil, tap } from 'rxjs/operators'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\n\nimport { ToggleGroupOptionDirective } from './toggle-group-option.directive'\n\nexport const TOGGLE_GROUP_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleGroupDirective),\n multi: true,\n}\n\n@Directive({\n selector: '[seamToggleGroup]',\n exportAs: 'seamToggleGroup',\n providers: [ TOGGLE_GROUP_VALUE_ACCESSOR ]\n})\nexport class ToggleGroupDirective implements OnDestroy, AfterViewInit, ControlValueAccessor {\n static ngAcceptInputType_disabled: BooleanInput\n static ngAcceptInputType_multiple: BooleanInput\n static ngAcceptInputType_selectionToggleable: BooleanInput\n\n private readonly _ngUnsubscribe = new Subject<void>()\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('value') val: string | string[] | undefined | null\n\n @Input() @InputBoolean() disabled = false\n @Input() @InputBoolean() multiple = false\n @Input() @InputBoolean() selectionToggleable = true\n\n // TODO: Add min/max selected inputs to make toggling better for multi select\n\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() readonly change = new EventEmitter<string | string[] | undefined | null>()\n\n @ContentChildren(ToggleGroupOptionDirective) optionDirectives?: QueryList<ToggleGroupOptionDirective>\n\n public options?: Observable<ToggleGroupOptionDirective[]>\n\n onChange: any\n onTouched: any\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this._updateDirectiveStates()\n\n if (this.optionDirectives) {\n this.options = this.optionDirectives.changes\n .pipe(takeUntil(this._ngUnsubscribe))\n .pipe(startWith(this.optionDirectives))\n .pipe(map(v => v.toArray() as ToggleGroupOptionDirective[]))\n\n this.options.pipe(switchMap(opts => {\n const _tmp = of(undefined)\n if (opts) {\n const _v: Observable<boolean>[] = []\n for (const opt of opts) {\n _v.push(opt.selectionChange.pipe(\n filter(v => opt.selected !== this.isSelected(opt.value)),\n tap(v => {\n if (this.isSelected(opt.value)) {\n this.unselectValue(opt.value)\n } else {\n this.selectValue(opt.value)\n }\n })\n ))\n }\n return combineLatest(_v)\n }\n return _tmp\n })).subscribe()\n }\n\n this.change\n .pipe(switchMap(_ => from(this.optionDirectives?.toArray() || [])\n .pipe(tap(opt => { this._updateDirectiveState(opt) }))\n ))\n .subscribe()\n })\n }\n\n get value(): string | string[] | undefined | null {\n return this.val\n }\n\n set value(value: string | string[] | undefined | null) {\n const _value = this.multiple\n ? value !== null && value !== undefined\n ? coerceArray(value)\n : value\n : value\n\n this.val = (this.multiple) ? [ ...(_value as string[] || []) ] : _value || ''\n this.change.emit(this.val)\n if (this.onChange) { this.onChange(_value) }\n if (this.onTouched) { this.onTouched() }\n }\n\n writeValue(value: any): void {\n this.value = value\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled\n }\n\n isSelected(value: string | undefined | null) {\n if (this.multiple) {\n const idx = (this.value as string[] || []).findIndex(v => v === value)\n return idx !== -1\n } else {\n // TODO: Clean this up when the directive no longer allows array value type when multiple is false\n const v = Array.isArray(this.value) && this.value.length === 1\n ? this.value[0]\n : this.value\n return v === value\n }\n }\n\n unselectValue(value: string | undefined | null) {\n if (this.multiple) {\n this.value = (this.value as string[] || []).filter(v => v !== value)\n } else {\n this.value = undefined\n }\n }\n\n selectValue(value: string | undefined | null) {\n if (this.multiple) {\n const _value = [ ...(this.value as string[] || []) ]\n this.value = value ? [ ..._value, value ] : _value\n } else {\n this.value = value\n }\n }\n\n getOptionDirectiveByValue(value: string) {\n if (!this.optionDirectives || this.optionDirectives.length < 1) {\n return null\n }\n\n return this.optionDirectives.toArray()\n .find(opt => opt.value === value)\n }\n\n private _updateDirectiveStates(): void {\n if (this.optionDirectives) {\n for (const opt of this.optionDirectives.toArray()) {\n this._updateDirectiveState(opt)\n }\n }\n }\n\n private _updateDirectiveState(opt: ToggleGroupOptionDirective): void {\n const selected = this.isSelected(opt.value)\n if (opt.selected !== selected) {\n if (!opt._canUnselect) {\n opt._canUnselect = true\n }\n opt.selected = selected\n }\n if (!this.selectionToggleable) {\n if (!this.multiple || (this.value && this.value.length <= 1)) {\n if (opt.selected) {\n if (opt._canUnselect) {\n opt._canUnselect = false\n }\n } else {\n if (!opt._canUnselect) {\n opt._canUnselect = true\n }\n }\n } else {\n if (!opt._canUnselect) {\n opt._canUnselect = true\n }\n }\n }\n }\n\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { ReactiveFormsModule } from '@angular/forms'\n\nimport { ToggleGroupOptionDirective } from './toggle-group-option.directive'\nimport { ToggleGroupDirective } from './toggle-group.directive'\n\n@NgModule({\n declarations: [\n ToggleGroupDirective,\n ToggleGroupOptionDirective\n ],\n imports: [\n CommonModule,\n ReactiveFormsModule\n ],\n exports: [\n ToggleGroupDirective,\n ToggleGroupOptionDirective\n ]\n})\nexport class TheSeamToggleGroupModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"theseam-ui-common-toggle-group.mjs","sources":["../../../projects/ui-common/toggle-group/toggle-group-option.directive.ts","../../../projects/ui-common/toggle-group/toggle-group.directive.ts","../../../projects/ui-common/toggle-group/toggle-group.module.ts","../../../projects/ui-common/toggle-group/theseam-ui-common-toggle-group.ts"],"sourcesContent":["import { coerceBooleanProperty } from '@angular/cdk/coercion'\nimport { ChangeDetectorRef, Directive, ElementRef, EventEmitter, HostBinding, Input, Output } from '@angular/core'\n\n@Directive({\n selector: '[seamToggleGroupOption]',\n exportAs: 'seamToggleGroupOption'\n})\nexport class ToggleGroupOptionDirective {\n\n @Input() seamToggleGroupOption: string | undefined | null\n\n @Input()\n get selected(): boolean { return this._selected }\n set selected(value: boolean) {\n if (!this._canUnselect && !value) { return }\n this._selected = coerceBooleanProperty(value)\n this.selectionChange.emit(this._selected)\n this._cdr.markForCheck()\n }\n private _selected = false\n\n /** Internal use only for now. */\n _canUnselect = true\n\n @Output() selectionChange = new EventEmitter<boolean>()\n\n @HostBinding('class.lib-toggle-group-option-selected') get _checkioSelectedClass() {\n return this._selected\n }\n\n constructor(\n private readonly _elementRef: ElementRef,\n private readonly _cdr: ChangeDetectorRef\n ) { }\n\n get value(): string | undefined | null {\n return this.seamToggleGroupOption\n }\n\n}\n","import { BooleanInput, coerceArray } from '@angular/cdk/coercion'\nimport { AfterViewInit, ContentChildren, Directive, EventEmitter, forwardRef, Input, OnDestroy, Output, QueryList } from '@angular/core'\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'\nimport { combineLatest, from, Observable, of, Subject } from 'rxjs'\nimport { filter, map, startWith, switchMap, takeUntil, tap } from 'rxjs/operators'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\n\nimport { ToggleGroupOptionDirective } from './toggle-group-option.directive'\n\nexport const TOGGLE_GROUP_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleGroupDirective),\n multi: true,\n}\n\n@Directive({\n selector: '[seamToggleGroup]',\n exportAs: 'seamToggleGroup',\n providers: [ TOGGLE_GROUP_VALUE_ACCESSOR ]\n})\nexport class ToggleGroupDirective implements OnDestroy, AfterViewInit, ControlValueAccessor {\n static ngAcceptInputType_disabled: BooleanInput\n static ngAcceptInputType_multiple: BooleanInput\n static ngAcceptInputType_selectionToggleable: BooleanInput\n\n private readonly _ngUnsubscribe = new Subject<void>()\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('value') val: string | string[] | undefined | null\n\n @Input() @InputBoolean() disabled = false\n @Input() @InputBoolean() multiple = false\n @Input() @InputBoolean() selectionToggleable = true\n\n // TODO: Add min/max selected inputs to make toggling better for multi select\n\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() readonly change = new EventEmitter<string | string[] | undefined | null>()\n\n @ContentChildren(ToggleGroupOptionDirective) optionDirectives?: QueryList<ToggleGroupOptionDirective>\n\n public options?: Observable<ToggleGroupOptionDirective[]>\n\n onChange: any\n onTouched: any\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this._updateDirectiveStates()\n\n if (this.optionDirectives) {\n this.options = this.optionDirectives.changes\n .pipe(takeUntil(this._ngUnsubscribe))\n .pipe(startWith(this.optionDirectives))\n .pipe(map(v => v.toArray() as ToggleGroupOptionDirective[]))\n\n this.options.pipe(switchMap(opts => {\n const _tmp = of(undefined)\n if (opts) {\n const _v: Observable<boolean>[] = []\n for (const opt of opts) {\n _v.push(opt.selectionChange.pipe(\n filter(v => opt.selected !== this.isSelected(opt.value)),\n tap(v => {\n if (this.isSelected(opt.value)) {\n this.unselectValue(opt.value)\n } else {\n this.selectValue(opt.value)\n }\n })\n ))\n }\n return combineLatest(_v)\n }\n return _tmp\n })).subscribe()\n }\n\n this.change\n .pipe(switchMap(_ => from(this.optionDirectives?.toArray() || [])\n .pipe(tap(opt => { this._updateDirectiveState(opt) }))\n ))\n .subscribe()\n })\n\n this.optionDirectives?.changes.subscribe(() => this._updateDirectiveStates())\n }\n\n get value(): string | string[] | undefined | null {\n return this.val\n }\n\n set value(value: string | string[] | undefined | null) {\n const _value = this.multiple\n ? value !== null && value !== undefined\n ? coerceArray(value)\n : value\n : value\n\n this.val = (this.multiple) ? [ ...(_value as string[] || []) ] : _value || ''\n this.change.emit(this.val)\n if (this.onChange) { this.onChange(_value) }\n if (this.onTouched) { this.onTouched() }\n }\n\n writeValue(value: any): void {\n this.value = value\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled\n }\n\n isSelected(value: string | undefined | null) {\n if (this.multiple) {\n const idx = (this.value as string[] || []).findIndex(v => v === value)\n return idx !== -1\n } else {\n // TODO: Clean this up when the directive no longer allows array value type when multiple is false\n const v = Array.isArray(this.value) && this.value.length === 1\n ? this.value[0]\n : this.value\n return v === value\n }\n }\n\n unselectValue(value: string | undefined | null) {\n if (this.multiple) {\n this.value = (this.value as string[] || []).filter(v => v !== value)\n } else {\n this.value = undefined\n }\n }\n\n selectValue(value: string | undefined | null) {\n if (this.multiple) {\n const _value = [ ...(this.value as string[] || []) ]\n this.value = value ? [ ..._value, value ] : _value\n } else {\n this.value = value\n }\n }\n\n getOptionDirectiveByValue(value: string) {\n if (!this.optionDirectives || this.optionDirectives.length < 1) {\n return null\n }\n\n return this.optionDirectives.toArray()\n .find(opt => opt.value === value)\n }\n\n private _updateDirectiveStates(): void {\n if (this.optionDirectives) {\n for (const opt of this.optionDirectives.toArray()) {\n this._updateDirectiveState(opt)\n }\n }\n }\n\n private _updateDirectiveState(opt: ToggleGroupOptionDirective): void {\n const selected = this.isSelected(opt.value)\n if (opt.selected !== selected) {\n if (!opt._canUnselect) {\n opt._canUnselect = true\n }\n opt.selected = selected\n }\n if (!this.selectionToggleable) {\n if (!this.multiple || (this.value && this.value.length <= 1)) {\n if (opt.selected) {\n if (opt._canUnselect) {\n opt._canUnselect = false\n }\n } else {\n if (!opt._canUnselect) {\n opt._canUnselect = true\n }\n }\n } else {\n if (!opt._canUnselect) {\n opt._canUnselect = true\n }\n }\n }\n }\n\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { ReactiveFormsModule } from '@angular/forms'\n\nimport { ToggleGroupOptionDirective } from './toggle-group-option.directive'\nimport { ToggleGroupDirective } from './toggle-group.directive'\n\n@NgModule({\n declarations: [\n ToggleGroupDirective,\n ToggleGroupOptionDirective\n ],\n imports: [\n CommonModule,\n ReactiveFormsModule\n ],\n exports: [\n ToggleGroupDirective,\n ToggleGroupOptionDirective\n ]\n})\nexport class TheSeamToggleGroupModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,8 @@ import { FlexLayoutModule } from '@angular/flex-layout';
|
|
|
8
8
|
import * as i4 from '@angular/flex-layout/flex';
|
|
9
9
|
import { __decorate } from 'tslib';
|
|
10
10
|
import { InputBoolean } from '@theseam/ui-common/core';
|
|
11
|
+
import { BehaviorSubject, shareReplay, combineLatest, tap } from 'rxjs';
|
|
12
|
+
import { isNullOrUndefined } from '@theseam/ui-common/utils';
|
|
11
13
|
|
|
12
14
|
class TabbedContentComponent {
|
|
13
15
|
}
|
|
@@ -125,6 +127,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
125
127
|
}] } });
|
|
126
128
|
|
|
127
129
|
class TabbedComponent {
|
|
130
|
+
set tabbedItems(val) {
|
|
131
|
+
this._tabbedItems.next(val);
|
|
132
|
+
}
|
|
133
|
+
get tabbedItems() {
|
|
134
|
+
return this._tabbedItems.value;
|
|
135
|
+
}
|
|
128
136
|
set direction(val) {
|
|
129
137
|
this._direction = val;
|
|
130
138
|
}
|
|
@@ -148,20 +156,12 @@ class TabbedComponent {
|
|
|
148
156
|
}
|
|
149
157
|
}
|
|
150
158
|
else {
|
|
151
|
-
return this._selectedTab;
|
|
159
|
+
return this._selectedTab.value;
|
|
152
160
|
}
|
|
153
161
|
}
|
|
154
|
-
set selectedTab(tab) { this._selectedTab
|
|
162
|
+
set selectedTab(tab) { this._selectedTab.next(tab); }
|
|
155
163
|
set activeTabName(val) {
|
|
156
|
-
|
|
157
|
-
this._activeTabNameTimeout = setTimeout(() => {
|
|
158
|
-
if (!val) {
|
|
159
|
-
this.selectedTab = undefined;
|
|
160
|
-
}
|
|
161
|
-
else {
|
|
162
|
-
this.selectTab(val);
|
|
163
|
-
}
|
|
164
|
-
});
|
|
164
|
+
this._activeTabName.next(val);
|
|
165
165
|
}
|
|
166
166
|
constructor(tabbedService, router, route) {
|
|
167
167
|
this.tabbedService = tabbedService;
|
|
@@ -169,8 +169,14 @@ class TabbedComponent {
|
|
|
169
169
|
this.route = route;
|
|
170
170
|
this._direction = 'vertical';
|
|
171
171
|
this._hideTabs = false;
|
|
172
|
+
this._tabbedItems = new BehaviorSubject(undefined);
|
|
173
|
+
this.tabbedItems$ = this._tabbedItems.asObservable();
|
|
172
174
|
this.tabChanged = new EventEmitter();
|
|
173
175
|
this.onlyRouteContent = false;
|
|
176
|
+
this._selectedTab = new BehaviorSubject(undefined);
|
|
177
|
+
this.selectedTab$ = this._selectedTab.asObservable().pipe(shareReplay({ bufferSize: 1, refCount: true }));
|
|
178
|
+
this._activeTabName = new BehaviorSubject(undefined);
|
|
179
|
+
this.activeTabName$ = this._activeTabName.asObservable();
|
|
174
180
|
}
|
|
175
181
|
ngOnInit() {
|
|
176
182
|
this.tabbedService.registerTab(this, 'main');
|
|
@@ -179,9 +185,7 @@ class TabbedComponent {
|
|
|
179
185
|
this.tabbedService.unregisterTab(this, 'main');
|
|
180
186
|
}
|
|
181
187
|
ngAfterContentInit() {
|
|
182
|
-
|
|
183
|
-
this.selectedTab = this.tabbedItems.first;
|
|
184
|
-
}
|
|
188
|
+
combineLatest([this.tabbedItems$, this.activeTabName$]).pipe(tap(([_, activeTabName]) => this.selectTab(activeTabName))).subscribe();
|
|
185
189
|
}
|
|
186
190
|
/**
|
|
187
191
|
*
|
|
@@ -198,20 +202,23 @@ class TabbedComponent {
|
|
|
198
202
|
* to select a tab
|
|
199
203
|
*/
|
|
200
204
|
selectTab(name) {
|
|
205
|
+
if (isNullOrUndefined(name) || name === this.selectedTab?.name) {
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
201
208
|
const tab = this.tabbedItems?.find(t => t.name === name);
|
|
202
209
|
if (tab) {
|
|
203
210
|
this.selectedTab = tab;
|
|
204
211
|
}
|
|
205
212
|
else {
|
|
206
|
-
|
|
213
|
+
console.warn(`Tab with name '${name}' not found`);
|
|
207
214
|
}
|
|
208
215
|
}
|
|
209
216
|
}
|
|
210
217
|
TabbedComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TabbedComponent, deps: [{ token: TabbedService }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
211
|
-
TabbedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TabbedComponent, selector: "seam-tabbed", inputs: { direction: "direction", hideTabs: "hideTabs", onlyRouteContent: "onlyRouteContent", activeTabName: "activeTabName" }, outputs: { tabChanged: "tabChanged" }, providers: [TabbedService], queries: [{ propertyName: "tabbedItems", predicate: TabbedItemComponent }], ngImport: i0, template: "<div [fxLayout]=\"(direction === 'horizontal') ? 'column' : 'row'\" fxFlexFill>\n\n <!-- Tabs -->\n <div *ngIf=\"!hideTabs\"\n [fxLayout]=\"(direction === 'horizontal') ? 'row' : 'column'\"\n style=\"position: relative;\">\n <ng-container *ngFor=\"let tabbedItem of tabbedItems\">\n <div class=\"tabbed-tab pt-2 pb-2 pl-4 pr-4 bg-light text-nowrap\"\n [class.tab-dir-horizontal]=\"direction === 'horizontal'\"\n [class.tab-dir-vertical]=\"direction === 'vertical'\"\n (click)=\"onClickTab($event, tabbedItem)\"\n [class.active]=\"tabbedItem === selectedTab\">\n <ng-template *ngIf=\"tabbedItem.tabbedTabTpl; else tabLabelTpl\" [ngTemplateOutlet]=\"tabbedItem.tabbedTabTpl\"></ng-template>\n <ng-template #tabLabelTpl>{{ tabbedItem?.label }}</ng-template>\n </div>\n </ng-container>\n <!-- <div class=\"active-indicator\"\n [class.active-indicator-horizontal]=\"direction === 'horizontal'\"\n [class.active-indicator-vertical]=\"direction === 'vertical'\">\n </div> -->\n </div>\n\n <!-- Tabs Content -->\n <div class=\"tabbed-tabs-content bg-light\">\n <ng-container *ngIf=\"onlyRouteContent; else notOnlyRouteContent\">\n <!-- <app-slide-over-router-outlet></app-slide-over-router-outlet> -->\n <router-outlet></router-outlet>\n </ng-container>\n <ng-template #notOnlyRouteContent>\n <ng-container *ngIf=\"
|
|
218
|
+
TabbedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TabbedComponent, selector: "seam-tabbed", inputs: { direction: "direction", hideTabs: "hideTabs", onlyRouteContent: "onlyRouteContent", activeTabName: "activeTabName" }, outputs: { tabChanged: "tabChanged" }, providers: [TabbedService], queries: [{ propertyName: "tabbedItems", predicate: TabbedItemComponent }], ngImport: i0, template: "<div [fxLayout]=\"(direction === 'horizontal') ? 'column' : 'row'\" fxFlexFill>\n\n <!-- Tabs -->\n <div *ngIf=\"!hideTabs\"\n [fxLayout]=\"(direction === 'horizontal') ? 'row' : 'column'\"\n style=\"position: relative;\">\n <ng-container *ngFor=\"let tabbedItem of tabbedItems$ | async\">\n <div class=\"tabbed-tab pt-2 pb-2 pl-4 pr-4 bg-light text-nowrap\"\n [class.tab-dir-horizontal]=\"direction === 'horizontal'\"\n [class.tab-dir-vertical]=\"direction === 'vertical'\"\n (click)=\"onClickTab($event, tabbedItem)\"\n [class.active]=\"tabbedItem === (selectedTab$ | async)\">\n <ng-template *ngIf=\"tabbedItem.tabbedTabTpl; else tabLabelTpl\" [ngTemplateOutlet]=\"tabbedItem.tabbedTabTpl\"></ng-template>\n <ng-template #tabLabelTpl>{{ tabbedItem?.label }}</ng-template>\n </div>\n </ng-container>\n <!-- <div class=\"active-indicator\"\n [class.active-indicator-horizontal]=\"direction === 'horizontal'\"\n [class.active-indicator-vertical]=\"direction === 'vertical'\">\n </div> -->\n </div>\n\n <!-- Tabs Content -->\n <div class=\"tabbed-tabs-content bg-light\">\n <ng-container *ngIf=\"onlyRouteContent; else notOnlyRouteContent\">\n <!-- <app-slide-over-router-outlet></app-slide-over-router-outlet> -->\n <router-outlet></router-outlet>\n </ng-container>\n <ng-template #notOnlyRouteContent>\n <ng-container *ngIf=\"selectedTab$ | async as selectedTab\">\n <seam-tabbed-content fxFlexFill [tabbedItem]=\"selectedTab\"></seam-tabbed-content>\n </ng-container>\n </ng-template>\n </div>\n\n</div>\n", styles: [":host{display:block}.tabbed-tab{box-sizing:border-box;font-weight:400;font-size:10pt;min-width:130px;transform:translateZ(0);overflow:hidden;border:1px solid #dee2e6}.tabbed-tab:not(.active){background-color:#fff!important}.tabbed-tab.active{font-weight:700;color:#357ebd}.tabbed-tab:hover{cursor:pointer}.tabbed-tab.tab-dir-horizontal{border-bottom:0}.tabbed-tab.tab-dir-horizontal:first-child{border-top-left-radius:.25rem}.tabbed-tab.tab-dir-horizontal:last-child{border-top-right-radius:.25rem}.tabbed-tab.tab-dir-horizontal:not(:last-child){border-right:0}.tabbed-tab.tab-dir-horizontal.active{margin-bottom:-2px}.tabbed-tab.tab-dir-vertical{border-right:0}.tabbed-tab.tab-dir-vertical:first-child{border-top-left-radius:.25rem}.tabbed-tab.tab-dir-vertical:last-child{border-bottom-left-radius:.25rem}.tabbed-tab.tab-dir-vertical:not(:last-child){border-bottom:0}.tabbed-tab.tab-dir-vertical.active{margin-right:-2px}.tabbed-tabs-content{display:block;flex:1 1 auto;overflow:hidden;border:1px solid #dee2e6;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}app-slide-over-router-outlet{width:100%;height:100%;min-width:0;min-height:0}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i4.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "component", type: TabbedContentComponent, selector: "seam-tabbed-content", inputs: ["tabbedItem"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] });
|
|
212
219
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TabbedComponent, decorators: [{
|
|
213
220
|
type: Component,
|
|
214
|
-
args: [{ selector: 'seam-tabbed', providers: [TabbedService], template: "<div [fxLayout]=\"(direction === 'horizontal') ? 'column' : 'row'\" fxFlexFill>\n\n <!-- Tabs -->\n <div *ngIf=\"!hideTabs\"\n [fxLayout]=\"(direction === 'horizontal') ? 'row' : 'column'\"\n style=\"position: relative;\">\n <ng-container *ngFor=\"let tabbedItem of tabbedItems\">\n <div class=\"tabbed-tab pt-2 pb-2 pl-4 pr-4 bg-light text-nowrap\"\n [class.tab-dir-horizontal]=\"direction === 'horizontal'\"\n [class.tab-dir-vertical]=\"direction === 'vertical'\"\n (click)=\"onClickTab($event, tabbedItem)\"\n [class.active]=\"tabbedItem === selectedTab\">\n <ng-template *ngIf=\"tabbedItem.tabbedTabTpl; else tabLabelTpl\" [ngTemplateOutlet]=\"tabbedItem.tabbedTabTpl\"></ng-template>\n <ng-template #tabLabelTpl>{{ tabbedItem?.label }}</ng-template>\n </div>\n </ng-container>\n <!-- <div class=\"active-indicator\"\n [class.active-indicator-horizontal]=\"direction === 'horizontal'\"\n [class.active-indicator-vertical]=\"direction === 'vertical'\">\n </div> -->\n </div>\n\n <!-- Tabs Content -->\n <div class=\"tabbed-tabs-content bg-light\">\n <ng-container *ngIf=\"onlyRouteContent; else notOnlyRouteContent\">\n <!-- <app-slide-over-router-outlet></app-slide-over-router-outlet> -->\n <router-outlet></router-outlet>\n </ng-container>\n <ng-template #notOnlyRouteContent>\n <ng-container *ngIf=\"
|
|
221
|
+
args: [{ selector: 'seam-tabbed', providers: [TabbedService], template: "<div [fxLayout]=\"(direction === 'horizontal') ? 'column' : 'row'\" fxFlexFill>\n\n <!-- Tabs -->\n <div *ngIf=\"!hideTabs\"\n [fxLayout]=\"(direction === 'horizontal') ? 'row' : 'column'\"\n style=\"position: relative;\">\n <ng-container *ngFor=\"let tabbedItem of tabbedItems$ | async\">\n <div class=\"tabbed-tab pt-2 pb-2 pl-4 pr-4 bg-light text-nowrap\"\n [class.tab-dir-horizontal]=\"direction === 'horizontal'\"\n [class.tab-dir-vertical]=\"direction === 'vertical'\"\n (click)=\"onClickTab($event, tabbedItem)\"\n [class.active]=\"tabbedItem === (selectedTab$ | async)\">\n <ng-template *ngIf=\"tabbedItem.tabbedTabTpl; else tabLabelTpl\" [ngTemplateOutlet]=\"tabbedItem.tabbedTabTpl\"></ng-template>\n <ng-template #tabLabelTpl>{{ tabbedItem?.label }}</ng-template>\n </div>\n </ng-container>\n <!-- <div class=\"active-indicator\"\n [class.active-indicator-horizontal]=\"direction === 'horizontal'\"\n [class.active-indicator-vertical]=\"direction === 'vertical'\">\n </div> -->\n </div>\n\n <!-- Tabs Content -->\n <div class=\"tabbed-tabs-content bg-light\">\n <ng-container *ngIf=\"onlyRouteContent; else notOnlyRouteContent\">\n <!-- <app-slide-over-router-outlet></app-slide-over-router-outlet> -->\n <router-outlet></router-outlet>\n </ng-container>\n <ng-template #notOnlyRouteContent>\n <ng-container *ngIf=\"selectedTab$ | async as selectedTab\">\n <seam-tabbed-content fxFlexFill [tabbedItem]=\"selectedTab\"></seam-tabbed-content>\n </ng-container>\n </ng-template>\n </div>\n\n</div>\n", styles: [":host{display:block}.tabbed-tab{box-sizing:border-box;font-weight:400;font-size:10pt;min-width:130px;transform:translateZ(0);overflow:hidden;border:1px solid #dee2e6}.tabbed-tab:not(.active){background-color:#fff!important}.tabbed-tab.active{font-weight:700;color:#357ebd}.tabbed-tab:hover{cursor:pointer}.tabbed-tab.tab-dir-horizontal{border-bottom:0}.tabbed-tab.tab-dir-horizontal:first-child{border-top-left-radius:.25rem}.tabbed-tab.tab-dir-horizontal:last-child{border-top-right-radius:.25rem}.tabbed-tab.tab-dir-horizontal:not(:last-child){border-right:0}.tabbed-tab.tab-dir-horizontal.active{margin-bottom:-2px}.tabbed-tab.tab-dir-vertical{border-right:0}.tabbed-tab.tab-dir-vertical:first-child{border-top-left-radius:.25rem}.tabbed-tab.tab-dir-vertical:last-child{border-bottom-left-radius:.25rem}.tabbed-tab.tab-dir-vertical:not(:last-child){border-bottom:0}.tabbed-tab.tab-dir-vertical.active{margin-right:-2px}.tabbed-tabs-content{display:block;flex:1 1 auto;overflow:hidden;border:1px solid #dee2e6;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}app-slide-over-router-outlet{width:100%;height:100%;min-width:0;min-height:0}\n"] }]
|
|
215
222
|
}], ctorParameters: function () { return [{ type: TabbedService }, { type: i2.Router }, { type: i2.ActivatedRoute }]; }, propDecorators: { tabbedItems: [{
|
|
216
223
|
type: ContentChildren,
|
|
217
224
|
args: [TabbedItemComponent]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theseam-ui-common-tabbed.mjs","sources":["../../../projects/ui-common/tabbed/tabbed-content/tabbed-content.component.ts","../../../projects/ui-common/tabbed/tabbed-content/tabbed-content.component.html","../../../projects/ui-common/tabbed/directives/tabbed-tab-content.directive.ts","../../../projects/ui-common/tabbed/tabbed.service.ts","../../../projects/ui-common/tabbed/directives/tabbed-tab.directive.ts","../../../projects/ui-common/tabbed/tabbed-item/tabbed-item.component.ts","../../../projects/ui-common/tabbed/tabbed-item/tabbed-item.component.html","../../../projects/ui-common/tabbed/tabbed.component.ts","../../../projects/ui-common/tabbed/tabbed.component.html","../../../projects/ui-common/tabbed/tabbed.module.ts","../../../projects/ui-common/tabbed/theseam-ui-common-tabbed.ts"],"sourcesContent":["import { Component, Input } from '@angular/core'\n\nimport { TabbedItemAccessor } from '../tabbed-models'\n\n@Component({\n selector: 'seam-tabbed-content',\n templateUrl: './tabbed-content.component.html',\n styleUrls: ['./tabbed-content.component.scss']\n})\nexport class TabbedContentComponent {\n\n @Input() tabbedItem?: TabbedItemAccessor\n\n}\n","<!-- <div class=\"fade-left\" fxFlexFill> -->\n<div fxFlexFill>\n <ng-container *ngIf=\"tabbedItem\">\n <ng-template *ngIf=\"tabbedItem.tabbedContentTpl\" [ngTemplateOutlet]=\"tabbedItem.tabbedContentTpl\"></ng-template>\n <ng-container *ngIf=\"tabbedItem.contentFromRoute\"><router-outlet></router-outlet></ng-container>\n </ng-container>\n</div>\n","import { Directive } from '@angular/core'\n\nimport { TabbedTabContentAccessor } from '../tabbed-models'\n\n@Directive({\n selector: '[seamTabbedTabContent]',\n exportAs: 'seamTabbedTabContent'\n})\nexport class TabbedTabContentDirective implements TabbedTabContentAccessor {\n\n public isActive = false\n\n}\n","import { Injectable } from '@angular/core'\n\nimport { TabbedComponent } from './tabbed.component'\n\nexport declare type TabsDirection = 'horizontal' | 'vertical'\n\n@Injectable()\nexport class TabbedService {\n\n private _tabGroups: { [groupName: string]: TabbedComponent[] } = {}\n\n public registerTab(tab: TabbedComponent, groupName: string) {\n if (!this._tabGroups[groupName]) {\n this._tabGroups[groupName] = []\n }\n\n for (const t of this._tabGroups[groupName]) {\n t.hideTabs = true\n }\n\n this._tabGroups[groupName].push(tab)\n }\n\n public unregisterTab(tab: TabbedComponent, groupName: string) {\n if (this._tabGroups[groupName]) {\n this._tabGroups[groupName] = this._tabGroups[groupName].filter(\n t => t !== tab\n )\n\n if (this._tabGroups[groupName].length > 0) {\n this._tabGroups[groupName][this._tabGroups[groupName].length - 1].hideTabs = false\n }\n }\n }\n\n}\n","import { Directive, ElementRef, HostBinding, OnInit } from '@angular/core'\n\nimport { TabbedTabAccessor } from '../tabbed-models'\nimport { TabbedComponent } from '../tabbed.component'\nimport { TabbedService } from '../tabbed.service'\n\n@Directive({\n selector: '[seamTabbedTab]',\n exportAs: 'seamTabbedTab'\n})\nexport class TabbedTabDirective implements OnInit, TabbedTabAccessor {\n\n // @HostBinding('class.custom-invalid')\n // get customInvalid() { return this.control.invalid }\n\n public isActive = false\n\n constructor(\n public elementRef: ElementRef,\n // public host: TabbedComponent,\n public tabbedService: TabbedService\n ) { }\n\n // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method\n ngOnInit() {\n // this.tabbedService.selectedTab.subscribe(tab => {\n // console.log('tab: ', tab)\n // console.log('tab.tabbedTabTpl.elementRef: ', tab.tabbedTabTpl.elementRef)\n // console.log('this.elementRef: ', this.elementRef)\n // if (tab.tabbedTabTpl.elementRef.na === this.elementRef) {\n // this.isActive = true\n // } else {\n // this.isActive = false\n // }\n // })\n }\n\n}\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport { Component, ContentChild, Input, TemplateRef } from '@angular/core'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\n\nimport { TabbedTabContentDirective } from '../directives/tabbed-tab-content.directive'\nimport { TabbedTabDirective } from '../directives/tabbed-tab.directive'\nimport { TabbedItemAccessor } from '../tabbed-models'\n\n@Component({\n selector: 'seam-tabbed-item',\n templateUrl: './tabbed-item.component.html',\n styleUrls: ['./tabbed-item.component.scss']\n})\nexport class TabbedItemComponent implements TabbedItemAccessor {\n static ngAcceptInputType_contentFromRoute: BooleanInput\n\n @ContentChild(TabbedTabDirective, { read: TemplateRef, static: true })\n public tabbedTabTpl?: TemplateRef<TabbedTabDirective>\n\n @ContentChild(TabbedTabContentDirective, { read: TemplateRef, static: true })\n public tabbedContentTpl?: TemplateRef<TabbedTabContentDirective>\n\n @Input() name: string | undefined | null\n @Input() label: string | undefined | null\n @Input() @InputBoolean() contentFromRoute = false\n}\n","<p>\n tabbed-item works!\n</p>","import {\n AfterContentInit, Component, ContentChildren, EventEmitter, Input, OnDestroy, OnInit, Output, QueryList\n} from '@angular/core'\nimport { ActivatedRoute, Router } from '@angular/router'\n\nimport { TabbedItemComponent } from './tabbed-item/tabbed-item.component'\nimport { TabbedService, TabsDirection } from './tabbed.service'\n\n@Component({\n selector: 'seam-tabbed',\n templateUrl: './tabbed.component.html',\n styleUrls: ['./tabbed.component.scss'],\n providers: [ TabbedService ]\n})\nexport class TabbedComponent implements OnInit, AfterContentInit, OnDestroy {\n\n private _direction: TabsDirection = 'vertical'\n private _hideTabs = false\n\n @ContentChildren(TabbedItemComponent) tabbedItems?: QueryList<TabbedItemComponent>\n\n @Output() tabChanged = new EventEmitter<TabbedItemComponent>()\n\n @Input()\n set direction(val: TabsDirection) {\n this._direction = val\n }\n get direction() {\n return this._direction\n }\n\n @Input()\n set hideTabs(val: boolean) {\n setTimeout(() => {\n this._hideTabs = val\n })\n }\n get hideTabs(): boolean {\n return this._hideTabs\n }\n\n @Input()\n public onlyRouteContent = false\n\n get selectedTab(): TabbedItemComponent | undefined {\n if (this.onlyRouteContent) {\n if (this.route.snapshot.children.length > 0) {\n const config = this.route.snapshot.children[0].routeConfig\n const childPath = config && config.path\n return this.tabbedItems?.find(t => t.name === childPath)\n }\n } else {\n return this._selectedTab\n }\n }\n set selectedTab(tab: TabbedItemComponent | undefined) { this._selectedTab = tab }\n private _selectedTab: TabbedItemComponent | undefined\n\n private _activeTabNameTimeout: any\n @Input()\n set activeTabName(val: string) {\n clearTimeout(this._activeTabNameTimeout)\n this._activeTabNameTimeout = setTimeout(() => {\n if (!val) {\n this.selectedTab = undefined\n } else {\n this.selectTab(val)\n }\n })\n }\n\n constructor(\n public tabbedService: TabbedService,\n private router: Router,\n private route: ActivatedRoute\n ) { }\n\n ngOnInit() {\n this.tabbedService.registerTab(this, 'main')\n }\n\n ngOnDestroy() {\n this.tabbedService.unregisterTab(this, 'main')\n }\n\n ngAfterContentInit() {\n if (this.tabbedItems && this.tabbedItems.length > 0) {\n this.selectedTab = this.tabbedItems.first\n }\n }\n\n /**\n *\n */\n public onClickTab(event: any, tab: TabbedItemComponent) {\n this.selectedTab = tab\n if (this.onlyRouteContent) {\n this.router.navigate([ tab.name ], { relativeTo: this.route })\n }\n this.tabChanged.emit(tab)\n }\n\n /**\n * TODO: Make more generic, so that the name isn't the only way\n * to select a tab\n */\n public selectTab(name: string) {\n const tab = this.tabbedItems?.find(t => t.name === name)\n if (tab) {\n this.selectedTab = tab\n } else {\n throw new Error(`Tab with name '${name}' not found`)\n }\n }\n\n}\n","<div [fxLayout]=\"(direction === 'horizontal') ? 'column' : 'row'\" fxFlexFill>\n\n <!-- Tabs -->\n <div *ngIf=\"!hideTabs\"\n [fxLayout]=\"(direction === 'horizontal') ? 'row' : 'column'\"\n style=\"position: relative;\">\n <ng-container *ngFor=\"let tabbedItem of tabbedItems\">\n <div class=\"tabbed-tab pt-2 pb-2 pl-4 pr-4 bg-light text-nowrap\"\n [class.tab-dir-horizontal]=\"direction === 'horizontal'\"\n [class.tab-dir-vertical]=\"direction === 'vertical'\"\n (click)=\"onClickTab($event, tabbedItem)\"\n [class.active]=\"tabbedItem === selectedTab\">\n <ng-template *ngIf=\"tabbedItem.tabbedTabTpl; else tabLabelTpl\" [ngTemplateOutlet]=\"tabbedItem.tabbedTabTpl\"></ng-template>\n <ng-template #tabLabelTpl>{{ tabbedItem?.label }}</ng-template>\n </div>\n </ng-container>\n <!-- <div class=\"active-indicator\"\n [class.active-indicator-horizontal]=\"direction === 'horizontal'\"\n [class.active-indicator-vertical]=\"direction === 'vertical'\">\n </div> -->\n </div>\n\n <!-- Tabs Content -->\n <div class=\"tabbed-tabs-content bg-light\">\n <ng-container *ngIf=\"onlyRouteContent; else notOnlyRouteContent\">\n <!-- <app-slide-over-router-outlet></app-slide-over-router-outlet> -->\n <router-outlet></router-outlet>\n </ng-container>\n <ng-template #notOnlyRouteContent>\n <ng-container *ngIf=\"!selectedTab; else findContentTpl\">\n <seam-tabbed-content fxFlexFill [tabbedItem]=\"tabbedItems?.first\"></seam-tabbed-content>\n </ng-container>\n <ng-template #findContentTpl>\n <ng-container *ngFor=\"let tabbedItem of tabbedItems\">\n <ng-container *ngIf=\"selectedTab === tabbedItem\">\n <seam-tabbed-content fxFlexFill [tabbedItem]=\"tabbedItem\"></seam-tabbed-content>\n </ng-container>\n </ng-container>\n </ng-template>\n </ng-template>\n </div>\n\n</div>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { RouterModule } from '@angular/router'\n\nimport { FlexLayoutModule } from '@angular/flex-layout'\n\nimport { TabbedContentComponent } from './tabbed-content/tabbed-content.component'\nimport { TabbedItemComponent } from './tabbed-item/tabbed-item.component'\nimport { TabbedComponent } from './tabbed.component'\n\nimport { TabbedTabContentDirective } from './directives/tabbed-tab-content.directive'\nimport { TabbedTabDirective } from './directives/tabbed-tab.directive'\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n FlexLayoutModule,\n ],\n declarations: [\n TabbedComponent,\n TabbedTabContentDirective,\n TabbedTabDirective,\n TabbedItemComponent,\n TabbedContentComponent,\n TabbedContentComponent,\n],\n exports: [\n TabbedComponent,\n TabbedTabContentDirective,\n TabbedTabDirective,\n TabbedItemComponent,\n TabbedContentComponent,\n ]\n})\nexport class TheSeamTabbedModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3","i1.TabbedService","i5.TabbedContentComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"theseam-ui-common-tabbed.mjs","sources":["../../../projects/ui-common/tabbed/tabbed-content/tabbed-content.component.ts","../../../projects/ui-common/tabbed/tabbed-content/tabbed-content.component.html","../../../projects/ui-common/tabbed/directives/tabbed-tab-content.directive.ts","../../../projects/ui-common/tabbed/tabbed.service.ts","../../../projects/ui-common/tabbed/directives/tabbed-tab.directive.ts","../../../projects/ui-common/tabbed/tabbed-item/tabbed-item.component.ts","../../../projects/ui-common/tabbed/tabbed-item/tabbed-item.component.html","../../../projects/ui-common/tabbed/tabbed.component.ts","../../../projects/ui-common/tabbed/tabbed.component.html","../../../projects/ui-common/tabbed/tabbed.module.ts","../../../projects/ui-common/tabbed/theseam-ui-common-tabbed.ts"],"sourcesContent":["import { Component, Input } from '@angular/core'\n\nimport { TabbedItemAccessor } from '../tabbed-models'\n\n@Component({\n selector: 'seam-tabbed-content',\n templateUrl: './tabbed-content.component.html',\n styleUrls: ['./tabbed-content.component.scss']\n})\nexport class TabbedContentComponent {\n\n @Input() tabbedItem?: TabbedItemAccessor\n\n}\n","<!-- <div class=\"fade-left\" fxFlexFill> -->\n<div fxFlexFill>\n <ng-container *ngIf=\"tabbedItem\">\n <ng-template *ngIf=\"tabbedItem.tabbedContentTpl\" [ngTemplateOutlet]=\"tabbedItem.tabbedContentTpl\"></ng-template>\n <ng-container *ngIf=\"tabbedItem.contentFromRoute\"><router-outlet></router-outlet></ng-container>\n </ng-container>\n</div>\n","import { Directive } from '@angular/core'\n\nimport { TabbedTabContentAccessor } from '../tabbed-models'\n\n@Directive({\n selector: '[seamTabbedTabContent]',\n exportAs: 'seamTabbedTabContent'\n})\nexport class TabbedTabContentDirective implements TabbedTabContentAccessor {\n\n public isActive = false\n\n}\n","import { Injectable } from '@angular/core'\n\nimport { TabbedComponent } from './tabbed.component'\n\nexport declare type TabsDirection = 'horizontal' | 'vertical'\n\n@Injectable()\nexport class TabbedService {\n\n private _tabGroups: { [groupName: string]: TabbedComponent[] } = {}\n\n public registerTab(tab: TabbedComponent, groupName: string) {\n if (!this._tabGroups[groupName]) {\n this._tabGroups[groupName] = []\n }\n\n for (const t of this._tabGroups[groupName]) {\n t.hideTabs = true\n }\n\n this._tabGroups[groupName].push(tab)\n }\n\n public unregisterTab(tab: TabbedComponent, groupName: string) {\n if (this._tabGroups[groupName]) {\n this._tabGroups[groupName] = this._tabGroups[groupName].filter(\n t => t !== tab\n )\n\n if (this._tabGroups[groupName].length > 0) {\n this._tabGroups[groupName][this._tabGroups[groupName].length - 1].hideTabs = false\n }\n }\n }\n\n}\n","import { Directive, ElementRef, HostBinding, OnInit } from '@angular/core'\n\nimport { TabbedTabAccessor } from '../tabbed-models'\nimport { TabbedComponent } from '../tabbed.component'\nimport { TabbedService } from '../tabbed.service'\n\n@Directive({\n selector: '[seamTabbedTab]',\n exportAs: 'seamTabbedTab'\n})\nexport class TabbedTabDirective implements OnInit, TabbedTabAccessor {\n\n // @HostBinding('class.custom-invalid')\n // get customInvalid() { return this.control.invalid }\n\n public isActive = false\n\n constructor(\n public elementRef: ElementRef,\n // public host: TabbedComponent,\n public tabbedService: TabbedService\n ) { }\n\n // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method\n ngOnInit() {\n // this.tabbedService.selectedTab.subscribe(tab => {\n // console.log('tab: ', tab)\n // console.log('tab.tabbedTabTpl.elementRef: ', tab.tabbedTabTpl.elementRef)\n // console.log('this.elementRef: ', this.elementRef)\n // if (tab.tabbedTabTpl.elementRef.na === this.elementRef) {\n // this.isActive = true\n // } else {\n // this.isActive = false\n // }\n // })\n }\n\n}\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport { Component, ContentChild, Input, TemplateRef } from '@angular/core'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\n\nimport { TabbedTabContentDirective } from '../directives/tabbed-tab-content.directive'\nimport { TabbedTabDirective } from '../directives/tabbed-tab.directive'\nimport { TabbedItemAccessor } from '../tabbed-models'\n\n@Component({\n selector: 'seam-tabbed-item',\n templateUrl: './tabbed-item.component.html',\n styleUrls: ['./tabbed-item.component.scss']\n})\nexport class TabbedItemComponent implements TabbedItemAccessor {\n static ngAcceptInputType_contentFromRoute: BooleanInput\n\n @ContentChild(TabbedTabDirective, { read: TemplateRef, static: true })\n public tabbedTabTpl?: TemplateRef<TabbedTabDirective>\n\n @ContentChild(TabbedTabContentDirective, { read: TemplateRef, static: true })\n public tabbedContentTpl?: TemplateRef<TabbedTabContentDirective>\n\n @Input() name: string | undefined | null\n @Input() label: string | undefined | null\n @Input() @InputBoolean() contentFromRoute = false\n}\n","<p>\n tabbed-item works!\n</p>","import {\n AfterContentInit, Component, ContentChildren, EventEmitter, Input, OnDestroy, OnInit, Output, QueryList\n} from '@angular/core'\nimport { ActivatedRoute, Router } from '@angular/router'\nimport { BehaviorSubject, combineLatest, shareReplay, tap } from 'rxjs'\n\nimport { isNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { TabbedItemComponent } from './tabbed-item/tabbed-item.component'\nimport { TabbedService, TabsDirection } from './tabbed.service'\n\n@Component({\n selector: 'seam-tabbed',\n templateUrl: './tabbed.component.html',\n styleUrls: ['./tabbed.component.scss'],\n providers: [ TabbedService ]\n})\nexport class TabbedComponent implements OnInit, AfterContentInit, OnDestroy {\n\n private _direction: TabsDirection = 'vertical'\n private _hideTabs = false\n\n @ContentChildren(TabbedItemComponent)\n set tabbedItems(val: QueryList<TabbedItemComponent> | undefined) {\n this._tabbedItems.next(val)\n }\n get tabbedItems(): QueryList<TabbedItemComponent> | undefined {\n return this._tabbedItems.value\n }\n private readonly _tabbedItems = new BehaviorSubject<QueryList<TabbedItemComponent> | undefined>(undefined)\n public readonly tabbedItems$ = this._tabbedItems.asObservable()\n\n @Output() tabChanged = new EventEmitter<TabbedItemComponent>()\n\n @Input()\n set direction(val: TabsDirection) {\n this._direction = val\n }\n get direction() {\n return this._direction\n }\n\n @Input()\n set hideTabs(val: boolean) {\n setTimeout(() => {\n this._hideTabs = val\n })\n }\n get hideTabs(): boolean {\n return this._hideTabs\n }\n\n @Input()\n public onlyRouteContent = false\n\n get selectedTab(): TabbedItemComponent | undefined {\n if (this.onlyRouteContent) {\n if (this.route.snapshot.children.length > 0) {\n const config = this.route.snapshot.children[0].routeConfig\n const childPath = config && config.path\n return this.tabbedItems?.find(t => t.name === childPath)\n }\n } else {\n return this._selectedTab.value\n }\n }\n set selectedTab(tab: TabbedItemComponent | undefined) { this._selectedTab.next(tab) }\n private readonly _selectedTab = new BehaviorSubject<TabbedItemComponent | undefined>(undefined)\n public readonly selectedTab$ = this._selectedTab.asObservable().pipe(\n shareReplay({ bufferSize: 1, refCount: true })\n )\n\n @Input()\n set activeTabName(val: string) {\n this._activeTabName.next(val)\n }\n private readonly _activeTabName = new BehaviorSubject<string | undefined>(undefined)\n private readonly activeTabName$ = this._activeTabName.asObservable()\n\n constructor(\n public tabbedService: TabbedService,\n private router: Router,\n private route: ActivatedRoute\n ) { }\n\n ngOnInit() {\n this.tabbedService.registerTab(this, 'main')\n }\n\n ngOnDestroy() {\n this.tabbedService.unregisterTab(this, 'main')\n }\n\n ngAfterContentInit() {\n combineLatest([ this.tabbedItems$, this.activeTabName$ ]).pipe(\n tap(([ _, activeTabName ]) => this.selectTab(activeTabName))\n ).subscribe()\n }\n\n /**\n *\n */\n public onClickTab(event: any, tab: TabbedItemComponent) {\n this.selectedTab = tab\n if (this.onlyRouteContent) {\n this.router.navigate([ tab.name ], { relativeTo: this.route })\n }\n this.tabChanged.emit(tab)\n }\n\n /**\n * TODO: Make more generic, so that the name isn't the only way\n * to select a tab\n */\n public selectTab(name?: string) {\n if (isNullOrUndefined(name) || name === this.selectedTab?.name) {\n return\n }\n\n const tab = this.tabbedItems?.find(t => t.name === name)\n if (tab) {\n this.selectedTab = tab\n }\n else {\n console.warn(`Tab with name '${name}' not found`)\n }\n }\n\n}\n","<div [fxLayout]=\"(direction === 'horizontal') ? 'column' : 'row'\" fxFlexFill>\n\n <!-- Tabs -->\n <div *ngIf=\"!hideTabs\"\n [fxLayout]=\"(direction === 'horizontal') ? 'row' : 'column'\"\n style=\"position: relative;\">\n <ng-container *ngFor=\"let tabbedItem of tabbedItems$ | async\">\n <div class=\"tabbed-tab pt-2 pb-2 pl-4 pr-4 bg-light text-nowrap\"\n [class.tab-dir-horizontal]=\"direction === 'horizontal'\"\n [class.tab-dir-vertical]=\"direction === 'vertical'\"\n (click)=\"onClickTab($event, tabbedItem)\"\n [class.active]=\"tabbedItem === (selectedTab$ | async)\">\n <ng-template *ngIf=\"tabbedItem.tabbedTabTpl; else tabLabelTpl\" [ngTemplateOutlet]=\"tabbedItem.tabbedTabTpl\"></ng-template>\n <ng-template #tabLabelTpl>{{ tabbedItem?.label }}</ng-template>\n </div>\n </ng-container>\n <!-- <div class=\"active-indicator\"\n [class.active-indicator-horizontal]=\"direction === 'horizontal'\"\n [class.active-indicator-vertical]=\"direction === 'vertical'\">\n </div> -->\n </div>\n\n <!-- Tabs Content -->\n <div class=\"tabbed-tabs-content bg-light\">\n <ng-container *ngIf=\"onlyRouteContent; else notOnlyRouteContent\">\n <!-- <app-slide-over-router-outlet></app-slide-over-router-outlet> -->\n <router-outlet></router-outlet>\n </ng-container>\n <ng-template #notOnlyRouteContent>\n <ng-container *ngIf=\"selectedTab$ | async as selectedTab\">\n <seam-tabbed-content fxFlexFill [tabbedItem]=\"selectedTab\"></seam-tabbed-content>\n </ng-container>\n </ng-template>\n </div>\n\n</div>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { RouterModule } from '@angular/router'\n\nimport { FlexLayoutModule } from '@angular/flex-layout'\n\nimport { TabbedContentComponent } from './tabbed-content/tabbed-content.component'\nimport { TabbedItemComponent } from './tabbed-item/tabbed-item.component'\nimport { TabbedComponent } from './tabbed.component'\n\nimport { TabbedTabContentDirective } from './directives/tabbed-tab-content.directive'\nimport { TabbedTabDirective } from './directives/tabbed-tab.directive'\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n FlexLayoutModule,\n ],\n declarations: [\n TabbedComponent,\n TabbedTabContentDirective,\n TabbedTabDirective,\n TabbedItemComponent,\n TabbedContentComponent,\n TabbedContentComponent,\n],\n exports: [\n TabbedComponent,\n TabbedTabContentDirective,\n TabbedTabDirective,\n TabbedItemComponent,\n TabbedContentComponent,\n ]\n})\nexport class TheSeamTabbedModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3","i1.TabbedService","i5.TabbedContentComponent"],"mappings":";;;;;;;;;;;;;MASa,sBAAsB,CAAA;;mHAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,iGCTnC,uWAOA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDEa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,uWAAA,EAAA,CAAA;8BAMtB,UAAU,EAAA,CAAA;sBAAlB,KAAK;;;MEHK,yBAAyB,CAAA;AAJtC,IAAA,WAAA,GAAA;QAMS,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAA;AAExB,KAAA;;sHAJY,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;0GAAzB,yBAAyB,EAAA,QAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,QAAQ,EAAE,sBAAsB;AACjC,iBAAA,CAAA;;;MCAY,aAAa,CAAA;AAD1B,IAAA,WAAA,GAAA;QAGU,IAAU,CAAA,UAAA,GAA+C,EAAE,CAAA;AA0BpE,KAAA;IAxBQ,WAAW,CAAC,GAAoB,EAAE,SAAiB,EAAA;AACxD,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,CAAA;AAChC,SAAA;QAED,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;AAC1C,YAAA,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAA;AAClB,SAAA;QAED,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;KACrC;IAEM,aAAa,CAAC,GAAoB,EAAE,SAAiB,EAAA;AAC1D,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;YAC9B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,CAC5D,CAAC,IAAI,CAAC,KAAK,GAAG,CACf,CAAA;YAED,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAA;AACnF,aAAA;AACF,SAAA;KACF;;0GA1BU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;8GAAb,aAAa,EAAA,CAAA,CAAA;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;;;MCIE,kBAAkB,CAAA;AAO7B,IAAA,WAAA,CACS,UAAsB;;IAEtB,aAA4B,EAAA;QAF5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAEtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;;;QAL9B,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAA;KAMlB;;IAGL,QAAQ,GAAA;;;;;;;;;;;KAWP;;+GAzBU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,eAAe;AAC1B,iBAAA,CAAA;;;MCKY,mBAAmB,CAAA;AALhC,IAAA,WAAA,GAAA;QAgB2B,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAA;AAClD,KAAA;;gHAZY,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;oGAAnB,mBAAmB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGhB,kBAAkB,EAAU,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAW,8EAGvC,yBAAyB,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAU,WAAW,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpB9D,iCAEI,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;ADuBuB,UAAA,CAAA;AAAf,IAAA,YAAY,EAAE;AAAyB,CAAA,EAAA,mBAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;2FAXtC,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,iCAAA,EAAA,CAAA;8BAQrB,YAAY,EAAA,CAAA;sBADlB,YAAY;uBAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAI9D,gBAAgB,EAAA,CAAA;sBADtB,YAAY;uBAAC,yBAAyB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAGnE,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACmB,gBAAgB,EAAA,CAAA;sBAAxC,KAAK;;;MERK,eAAe,CAAA;IAK1B,IACI,WAAW,CAAC,GAA+C,EAAA;AAC7D,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;KAC5B;AACD,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAA;KAC/B;IAMD,IACI,SAAS,CAAC,GAAkB,EAAA;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG,CAAA;KACtB;AACD,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU,CAAA;KACvB;IAED,IACI,QAAQ,CAAC,GAAY,EAAA;QACvB,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,GAAG,CAAA;AACtB,SAAC,CAAC,CAAA;KACH;AACD,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAA;KACtB;AAKD,IAAA,IAAI,WAAW,GAAA;QACb,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3C,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAA;AAC1D,gBAAA,MAAM,SAAS,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,CAAA;AACvC,gBAAA,OAAO,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAA;AACzD,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAA;AAC/B,SAAA;KACF;AACD,IAAA,IAAI,WAAW,CAAC,GAAoC,EAAA,EAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,EAAE;IAMrF,IACI,aAAa,CAAC,GAAW,EAAA;AAC3B,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;KAC9B;AAID,IAAA,WAAA,CACS,aAA4B,EAC3B,MAAc,EACd,KAAqB,EAAA;QAFtB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC3B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QA/DvB,IAAU,CAAA,UAAA,GAAkB,UAAU,CAAA;QACtC,IAAS,CAAA,SAAA,GAAG,KAAK,CAAA;AASR,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,eAAe,CAA6C,SAAS,CAAC,CAAA;AAC1F,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAA;AAErD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAuB,CAAA;QAqBvD,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAA;AAcd,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,eAAe,CAAkC,SAAS,CAAC,CAAA;QAC/E,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,IAAI,CAClE,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAC/C,CAAA;AAMgB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,CAAqB,SAAS,CAAC,CAAA;AACnE,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAA;KAM/D;IAEL,QAAQ,GAAA;QACN,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;KAC7C;IAED,WAAW,GAAA;QACT,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;KAC/C;IAED,kBAAkB,GAAA;AAChB,QAAA,aAAa,CAAC,CAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAE,CAAC,CAAC,IAAI,CAC5D,GAAG,CAAC,CAAC,CAAE,CAAC,EAAE,aAAa,CAAE,KAAK,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAC7D,CAAC,SAAS,EAAE,CAAA;KACd;AAED;;AAEG;IACI,UAAU,CAAC,KAAU,EAAE,GAAwB,EAAA;AACpD,QAAA,IAAI,CAAC,WAAW,GAAG,GAAG,CAAA;QACtB,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAE,GAAG,CAAC,IAAI,CAAE,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;AAC/D,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;KAC1B;AAED;;;AAGG;AACI,IAAA,SAAS,CAAC,IAAa,EAAA;AAC5B,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE;YAC9D,OAAM;AACP,SAAA;AAED,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AACxD,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,IAAI,CAAC,WAAW,GAAG,GAAG,CAAA;AACvB,SAAA;AACI,aAAA;AACH,YAAA,OAAO,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAA,WAAA,CAAa,CAAC,CAAA;AAClD,SAAA;KACF;;4GA7GU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,6MAFf,CAAE,aAAa,CAAE,EAOX,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,SAAA,EAAA,mBAAmB,6BCtBtC,kmDAoCA,EAAA,MAAA,EAAA,CAAA,soCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,4OAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDnBa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;+BACE,aAAa,EAAA,SAAA,EAGZ,CAAE,aAAa,CAAE,EAAA,QAAA,EAAA,kmDAAA,EAAA,MAAA,EAAA,CAAA,soCAAA,CAAA,EAAA,CAAA;mJAQxB,WAAW,EAAA,CAAA;sBADd,eAAe;uBAAC,mBAAmB,CAAA;gBAU1B,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBAGH,SAAS,EAAA,CAAA;sBADZ,KAAK;gBASF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAWC,gBAAgB,EAAA,CAAA;sBADtB,KAAK;gBAqBF,aAAa,EAAA,CAAA;sBADhB,KAAK;;;MErCK,mBAAmB,CAAA;;gHAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,iBAf5B,eAAe;QACf,yBAAyB;QACzB,kBAAkB;QAClB,mBAAmB;QACnB,sBAAsB;AACtB,QAAA,sBAAsB,aAVtB,YAAY;QACZ,YAAY;AACZ,QAAA,gBAAgB,aAWhB,eAAe;QACf,yBAAyB;QACzB,kBAAkB;QAClB,mBAAmB;QACnB,sBAAsB,CAAA,EAAA,CAAA,CAAA;AAGb,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YApB5B,YAAY;QACZ,YAAY;QACZ,gBAAgB,CAAA,EAAA,CAAA,CAAA;2FAkBP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAtB/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,YAAY;wBACZ,gBAAgB;AACjB,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACZ,eAAe;wBACf,yBAAyB;wBACzB,kBAAkB;wBAClB,mBAAmB;wBACnB,sBAAsB;wBACtB,sBAAsB;AACzB,qBAAA;AACC,oBAAA,OAAO,EAAE;wBACP,eAAe;wBACf,yBAAyB;wBACzB,kBAAkB;wBAClB,mBAAmB;wBACnB,sBAAsB;AACvB,qBAAA;AACF,iBAAA,CAAA;;;AClCD;;AAEG;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theseam-ui-common-toggle-group.mjs","sources":["../../../projects/ui-common/toggle-group/toggle-group-option.directive.ts","../../../projects/ui-common/toggle-group/toggle-group.directive.ts","../../../projects/ui-common/toggle-group/toggle-group.module.ts","../../../projects/ui-common/toggle-group/theseam-ui-common-toggle-group.ts"],"sourcesContent":["import { coerceBooleanProperty } from '@angular/cdk/coercion'\nimport { ChangeDetectorRef, Directive, ElementRef, EventEmitter, HostBinding, Input, Output } from '@angular/core'\n\n@Directive({\n selector: '[seamToggleGroupOption]',\n exportAs: 'seamToggleGroupOption'\n})\nexport class ToggleGroupOptionDirective {\n\n @Input() seamToggleGroupOption: string | undefined | null\n\n @Input()\n get selected(): boolean { return this._selected }\n set selected(value: boolean) {\n if (!this._canUnselect && !value) { return }\n this._selected = coerceBooleanProperty(value)\n this.selectionChange.emit(this._selected)\n this._cdr.markForCheck()\n }\n private _selected = false\n\n /** Internal use only for now. */\n _canUnselect = true\n\n @Output() selectionChange = new EventEmitter<boolean>()\n\n @HostBinding('class.lib-toggle-group-option-selected') get _checkioSelectedClass() {\n return this._selected\n }\n\n constructor(\n private readonly _elementRef: ElementRef,\n private readonly _cdr: ChangeDetectorRef\n ) { }\n\n get value(): string | undefined | null {\n return this.seamToggleGroupOption\n }\n\n}\n","import { BooleanInput, coerceArray } from '@angular/cdk/coercion'\nimport { AfterViewInit, ContentChildren, Directive, EventEmitter, forwardRef, Input, OnDestroy, Output, QueryList } from '@angular/core'\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'\nimport { combineLatest, from, Observable, of, Subject } from 'rxjs'\nimport { filter, map, startWith, switchMap, takeUntil, tap } from 'rxjs/operators'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\n\nimport { ToggleGroupOptionDirective } from './toggle-group-option.directive'\n\nexport const TOGGLE_GROUP_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleGroupDirective),\n multi: true,\n}\n\n@Directive({\n selector: '[seamToggleGroup]',\n exportAs: 'seamToggleGroup',\n providers: [ TOGGLE_GROUP_VALUE_ACCESSOR ]\n})\nexport class ToggleGroupDirective implements OnDestroy, AfterViewInit, ControlValueAccessor {\n static ngAcceptInputType_disabled: BooleanInput\n static ngAcceptInputType_multiple: BooleanInput\n static ngAcceptInputType_selectionToggleable: BooleanInput\n\n private readonly _ngUnsubscribe = new Subject<void>()\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('value') val: string | string[] | undefined | null\n\n @Input() @InputBoolean() disabled = false\n @Input() @InputBoolean() multiple = false\n @Input() @InputBoolean() selectionToggleable = true\n\n // TODO: Add min/max selected inputs to make toggling better for multi select\n\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() readonly change = new EventEmitter<string | string[] | undefined | null>()\n\n @ContentChildren(ToggleGroupOptionDirective) optionDirectives?: QueryList<ToggleGroupOptionDirective>\n\n public options?: Observable<ToggleGroupOptionDirective[]>\n\n onChange: any\n onTouched: any\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this._updateDirectiveStates()\n\n if (this.optionDirectives) {\n this.options = this.optionDirectives.changes\n .pipe(takeUntil(this._ngUnsubscribe))\n .pipe(startWith(this.optionDirectives))\n .pipe(map(v => v.toArray() as ToggleGroupOptionDirective[]))\n\n this.options.pipe(switchMap(opts => {\n const _tmp = of(undefined)\n if (opts) {\n const _v: Observable<boolean>[] = []\n for (const opt of opts) {\n _v.push(opt.selectionChange.pipe(\n filter(v => opt.selected !== this.isSelected(opt.value)),\n tap(v => {\n if (this.isSelected(opt.value)) {\n this.unselectValue(opt.value)\n } else {\n this.selectValue(opt.value)\n }\n })\n ))\n }\n return combineLatest(_v)\n }\n return _tmp\n })).subscribe()\n }\n\n this.change\n .pipe(switchMap(_ => from(this.optionDirectives?.toArray() || [])\n .pipe(tap(opt => { this._updateDirectiveState(opt) }))\n ))\n .subscribe()\n })\n }\n\n get value(): string | string[] | undefined | null {\n return this.val\n }\n\n set value(value: string | string[] | undefined | null) {\n const _value = this.multiple\n ? value !== null && value !== undefined\n ? coerceArray(value)\n : value\n : value\n\n this.val = (this.multiple) ? [ ...(_value as string[] || []) ] : _value || ''\n this.change.emit(this.val)\n if (this.onChange) { this.onChange(_value) }\n if (this.onTouched) { this.onTouched() }\n }\n\n writeValue(value: any): void {\n this.value = value\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled\n }\n\n isSelected(value: string | undefined | null) {\n if (this.multiple) {\n const idx = (this.value as string[] || []).findIndex(v => v === value)\n return idx !== -1\n } else {\n // TODO: Clean this up when the directive no longer allows array value type when multiple is false\n const v = Array.isArray(this.value) && this.value.length === 1\n ? this.value[0]\n : this.value\n return v === value\n }\n }\n\n unselectValue(value: string | undefined | null) {\n if (this.multiple) {\n this.value = (this.value as string[] || []).filter(v => v !== value)\n } else {\n this.value = undefined\n }\n }\n\n selectValue(value: string | undefined | null) {\n if (this.multiple) {\n const _value = [ ...(this.value as string[] || []) ]\n this.value = value ? [ ..._value, value ] : _value\n } else {\n this.value = value\n }\n }\n\n getOptionDirectiveByValue(value: string) {\n if (!this.optionDirectives || this.optionDirectives.length < 1) {\n return null\n }\n\n return this.optionDirectives.toArray()\n .find(opt => opt.value === value)\n }\n\n private _updateDirectiveStates(): void {\n if (this.optionDirectives) {\n for (const opt of this.optionDirectives.toArray()) {\n this._updateDirectiveState(opt)\n }\n }\n }\n\n private _updateDirectiveState(opt: ToggleGroupOptionDirective): void {\n const selected = this.isSelected(opt.value)\n if (opt.selected !== selected) {\n if (!opt._canUnselect) {\n opt._canUnselect = true\n }\n opt.selected = selected\n }\n if (!this.selectionToggleable) {\n if (!this.multiple || (this.value && this.value.length <= 1)) {\n if (opt.selected) {\n if (opt._canUnselect) {\n opt._canUnselect = false\n }\n } else {\n if (!opt._canUnselect) {\n opt._canUnselect = true\n }\n }\n } else {\n if (!opt._canUnselect) {\n opt._canUnselect = true\n }\n }\n }\n }\n\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { ReactiveFormsModule } from '@angular/forms'\n\nimport { ToggleGroupOptionDirective } from './toggle-group-option.directive'\nimport { ToggleGroupDirective } from './toggle-group.directive'\n\n@NgModule({\n declarations: [\n ToggleGroupDirective,\n ToggleGroupOptionDirective\n ],\n imports: [\n CommonModule,\n ReactiveFormsModule\n ],\n exports: [\n ToggleGroupDirective,\n ToggleGroupOptionDirective\n ]\n})\nexport class TheSeamToggleGroupModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"theseam-ui-common-toggle-group.mjs","sources":["../../../projects/ui-common/toggle-group/toggle-group-option.directive.ts","../../../projects/ui-common/toggle-group/toggle-group.directive.ts","../../../projects/ui-common/toggle-group/toggle-group.module.ts","../../../projects/ui-common/toggle-group/theseam-ui-common-toggle-group.ts"],"sourcesContent":["import { coerceBooleanProperty } from '@angular/cdk/coercion'\nimport { ChangeDetectorRef, Directive, ElementRef, EventEmitter, HostBinding, Input, Output } from '@angular/core'\n\n@Directive({\n selector: '[seamToggleGroupOption]',\n exportAs: 'seamToggleGroupOption'\n})\nexport class ToggleGroupOptionDirective {\n\n @Input() seamToggleGroupOption: string | undefined | null\n\n @Input()\n get selected(): boolean { return this._selected }\n set selected(value: boolean) {\n if (!this._canUnselect && !value) { return }\n this._selected = coerceBooleanProperty(value)\n this.selectionChange.emit(this._selected)\n this._cdr.markForCheck()\n }\n private _selected = false\n\n /** Internal use only for now. */\n _canUnselect = true\n\n @Output() selectionChange = new EventEmitter<boolean>()\n\n @HostBinding('class.lib-toggle-group-option-selected') get _checkioSelectedClass() {\n return this._selected\n }\n\n constructor(\n private readonly _elementRef: ElementRef,\n private readonly _cdr: ChangeDetectorRef\n ) { }\n\n get value(): string | undefined | null {\n return this.seamToggleGroupOption\n }\n\n}\n","import { BooleanInput, coerceArray } from '@angular/cdk/coercion'\nimport { AfterViewInit, ContentChildren, Directive, EventEmitter, forwardRef, Input, OnDestroy, Output, QueryList } from '@angular/core'\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'\nimport { combineLatest, from, Observable, of, Subject } from 'rxjs'\nimport { filter, map, startWith, switchMap, takeUntil, tap } from 'rxjs/operators'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\n\nimport { ToggleGroupOptionDirective } from './toggle-group-option.directive'\n\nexport const TOGGLE_GROUP_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleGroupDirective),\n multi: true,\n}\n\n@Directive({\n selector: '[seamToggleGroup]',\n exportAs: 'seamToggleGroup',\n providers: [ TOGGLE_GROUP_VALUE_ACCESSOR ]\n})\nexport class ToggleGroupDirective implements OnDestroy, AfterViewInit, ControlValueAccessor {\n static ngAcceptInputType_disabled: BooleanInput\n static ngAcceptInputType_multiple: BooleanInput\n static ngAcceptInputType_selectionToggleable: BooleanInput\n\n private readonly _ngUnsubscribe = new Subject<void>()\n\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('value') val: string | string[] | undefined | null\n\n @Input() @InputBoolean() disabled = false\n @Input() @InputBoolean() multiple = false\n @Input() @InputBoolean() selectionToggleable = true\n\n // TODO: Add min/max selected inputs to make toggling better for multi select\n\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() readonly change = new EventEmitter<string | string[] | undefined | null>()\n\n @ContentChildren(ToggleGroupOptionDirective) optionDirectives?: QueryList<ToggleGroupOptionDirective>\n\n public options?: Observable<ToggleGroupOptionDirective[]>\n\n onChange: any\n onTouched: any\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this._updateDirectiveStates()\n\n if (this.optionDirectives) {\n this.options = this.optionDirectives.changes\n .pipe(takeUntil(this._ngUnsubscribe))\n .pipe(startWith(this.optionDirectives))\n .pipe(map(v => v.toArray() as ToggleGroupOptionDirective[]))\n\n this.options.pipe(switchMap(opts => {\n const _tmp = of(undefined)\n if (opts) {\n const _v: Observable<boolean>[] = []\n for (const opt of opts) {\n _v.push(opt.selectionChange.pipe(\n filter(v => opt.selected !== this.isSelected(opt.value)),\n tap(v => {\n if (this.isSelected(opt.value)) {\n this.unselectValue(opt.value)\n } else {\n this.selectValue(opt.value)\n }\n })\n ))\n }\n return combineLatest(_v)\n }\n return _tmp\n })).subscribe()\n }\n\n this.change\n .pipe(switchMap(_ => from(this.optionDirectives?.toArray() || [])\n .pipe(tap(opt => { this._updateDirectiveState(opt) }))\n ))\n .subscribe()\n })\n\n this.optionDirectives?.changes.subscribe(() => this._updateDirectiveStates())\n }\n\n get value(): string | string[] | undefined | null {\n return this.val\n }\n\n set value(value: string | string[] | undefined | null) {\n const _value = this.multiple\n ? value !== null && value !== undefined\n ? coerceArray(value)\n : value\n : value\n\n this.val = (this.multiple) ? [ ...(_value as string[] || []) ] : _value || ''\n this.change.emit(this.val)\n if (this.onChange) { this.onChange(_value) }\n if (this.onTouched) { this.onTouched() }\n }\n\n writeValue(value: any): void {\n this.value = value\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled\n }\n\n isSelected(value: string | undefined | null) {\n if (this.multiple) {\n const idx = (this.value as string[] || []).findIndex(v => v === value)\n return idx !== -1\n } else {\n // TODO: Clean this up when the directive no longer allows array value type when multiple is false\n const v = Array.isArray(this.value) && this.value.length === 1\n ? this.value[0]\n : this.value\n return v === value\n }\n }\n\n unselectValue(value: string | undefined | null) {\n if (this.multiple) {\n this.value = (this.value as string[] || []).filter(v => v !== value)\n } else {\n this.value = undefined\n }\n }\n\n selectValue(value: string | undefined | null) {\n if (this.multiple) {\n const _value = [ ...(this.value as string[] || []) ]\n this.value = value ? [ ..._value, value ] : _value\n } else {\n this.value = value\n }\n }\n\n getOptionDirectiveByValue(value: string) {\n if (!this.optionDirectives || this.optionDirectives.length < 1) {\n return null\n }\n\n return this.optionDirectives.toArray()\n .find(opt => opt.value === value)\n }\n\n private _updateDirectiveStates(): void {\n if (this.optionDirectives) {\n for (const opt of this.optionDirectives.toArray()) {\n this._updateDirectiveState(opt)\n }\n }\n }\n\n private _updateDirectiveState(opt: ToggleGroupOptionDirective): void {\n const selected = this.isSelected(opt.value)\n if (opt.selected !== selected) {\n if (!opt._canUnselect) {\n opt._canUnselect = true\n }\n opt.selected = selected\n }\n if (!this.selectionToggleable) {\n if (!this.multiple || (this.value && this.value.length <= 1)) {\n if (opt.selected) {\n if (opt._canUnselect) {\n opt._canUnselect = false\n }\n } else {\n if (!opt._canUnselect) {\n opt._canUnselect = true\n }\n }\n } else {\n if (!opt._canUnselect) {\n opt._canUnselect = true\n }\n }\n }\n }\n\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { ReactiveFormsModule } from '@angular/forms'\n\nimport { ToggleGroupOptionDirective } from './toggle-group-option.directive'\nimport { ToggleGroupDirective } from './toggle-group.directive'\n\n@NgModule({\n declarations: [\n ToggleGroupDirective,\n ToggleGroupOptionDirective\n ],\n imports: [\n CommonModule,\n ReactiveFormsModule\n ],\n exports: [\n ToggleGroupDirective,\n ToggleGroupOptionDirective\n ]\n})\nexport class TheSeamToggleGroupModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -9,7 +9,10 @@ export declare class TabbedComponent implements OnInit, AfterContentInit, OnDest
|
|
|
9
9
|
private route;
|
|
10
10
|
private _direction;
|
|
11
11
|
private _hideTabs;
|
|
12
|
-
tabbedItems
|
|
12
|
+
set tabbedItems(val: QueryList<TabbedItemComponent> | undefined);
|
|
13
|
+
get tabbedItems(): QueryList<TabbedItemComponent> | undefined;
|
|
14
|
+
private readonly _tabbedItems;
|
|
15
|
+
readonly tabbedItems$: import("rxjs").Observable<QueryList<TabbedItemComponent> | undefined>;
|
|
13
16
|
tabChanged: EventEmitter<TabbedItemComponent>;
|
|
14
17
|
set direction(val: TabsDirection);
|
|
15
18
|
get direction(): TabsDirection;
|
|
@@ -18,9 +21,11 @@ export declare class TabbedComponent implements OnInit, AfterContentInit, OnDest
|
|
|
18
21
|
onlyRouteContent: boolean;
|
|
19
22
|
get selectedTab(): TabbedItemComponent | undefined;
|
|
20
23
|
set selectedTab(tab: TabbedItemComponent | undefined);
|
|
21
|
-
private _selectedTab;
|
|
22
|
-
|
|
24
|
+
private readonly _selectedTab;
|
|
25
|
+
readonly selectedTab$: import("rxjs").Observable<TabbedItemComponent | undefined>;
|
|
23
26
|
set activeTabName(val: string);
|
|
27
|
+
private readonly _activeTabName;
|
|
28
|
+
private readonly activeTabName$;
|
|
24
29
|
constructor(tabbedService: TabbedService, router: Router, route: ActivatedRoute);
|
|
25
30
|
ngOnInit(): void;
|
|
26
31
|
ngOnDestroy(): void;
|
|
@@ -33,7 +38,7 @@ export declare class TabbedComponent implements OnInit, AfterContentInit, OnDest
|
|
|
33
38
|
* TODO: Make more generic, so that the name isn't the only way
|
|
34
39
|
* to select a tab
|
|
35
40
|
*/
|
|
36
|
-
selectTab(name
|
|
41
|
+
selectTab(name?: string): void;
|
|
37
42
|
static ɵfac: i0.ɵɵFactoryDeclaration<TabbedComponent, never>;
|
|
38
43
|
static ɵcmp: i0.ɵɵComponentDeclaration<TabbedComponent, "seam-tabbed", never, { "direction": "direction"; "hideTabs": "hideTabs"; "onlyRouteContent": "onlyRouteContent"; "activeTabName": "activeTabName"; }, { "tabChanged": "tabChanged"; }, ["tabbedItems"], never, false, never>;
|
|
39
44
|
}
|