@mintplayer/ng-bootstrap 15.23.3 → 15.23.5
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/dock/src/dock/dock.component.d.ts +1 -3
- package/dock/src/dock-pane-renderer/dock-pane-renderer.component.d.ts +6 -1
- package/dock/src/dock-panel-header/dock-panel-header.component.d.ts +1 -4
- package/esm2020/dock/src/dock/dock.component.mjs +9 -14
- package/esm2020/dock/src/dock-pane-renderer/dock-pane-renderer.component.mjs +27 -11
- package/esm2020/dock/src/dock-panel-header/dock-panel-header.component.mjs +6 -12
- package/esm2020/tab-control/src/tab-control/tab-control.component.mjs +8 -3
- package/fesm2015/mintplayer-ng-bootstrap-dock.mjs +34 -27
- package/fesm2015/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
- package/fesm2015/mintplayer-ng-bootstrap-tab-control.mjs +7 -2
- package/fesm2015/mintplayer-ng-bootstrap-tab-control.mjs.map +1 -1
- package/fesm2020/mintplayer-ng-bootstrap-dock.mjs +34 -27
- package/fesm2020/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
- package/fesm2020/mintplayer-ng-bootstrap-tab-control.mjs +7 -2
- package/fesm2020/mintplayer-ng-bootstrap-tab-control.mjs.map +1 -1
- package/package.json +1 -1
- package/tab-control/src/tab-control/tab-control.component.d.ts +2 -1
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Component, ViewChild, Input, ContentChildren, ViewChildren, HostBinding, HostListener, NgModule } from '@angular/core';
|
|
3
|
-
import * as
|
|
3
|
+
import * as i2 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
|
-
import * as
|
|
5
|
+
import * as i3 from '@angular/cdk/portal';
|
|
6
6
|
import { DomPortal, PortalModule } from '@angular/cdk/portal';
|
|
7
7
|
import { BsCardModule } from '@mintplayer/ng-bootstrap/card';
|
|
8
|
-
import * as
|
|
8
|
+
import * as i5 from '@mintplayer/ng-bootstrap/splitter';
|
|
9
9
|
import { BsSplitterModule } from '@mintplayer/ng-bootstrap/splitter';
|
|
10
|
-
import * as
|
|
10
|
+
import * as i7 from '@mintplayer/ng-bootstrap/resizable';
|
|
11
11
|
import { BsResizableModule } from '@mintplayer/ng-bootstrap/resizable';
|
|
12
|
-
import * as
|
|
12
|
+
import * as i6 from '@mintplayer/ng-bootstrap/tab-control';
|
|
13
13
|
import { BsTabControlModule } from '@mintplayer/ng-bootstrap/tab-control';
|
|
14
|
-
import * as
|
|
14
|
+
import * as i4 from '@mintplayer/ng-bootstrap/instance-of';
|
|
15
15
|
import { BsInstanceOfModule } from '@mintplayer/ng-bootstrap/instance-of';
|
|
16
16
|
import { BehaviorSubject, Subject, takeUntil, take } from 'rxjs';
|
|
17
|
-
import * as i1
|
|
17
|
+
import * as i1 from '@angular/cdk/overlay';
|
|
18
18
|
|
|
19
19
|
class BsDockPanelComponent {
|
|
20
20
|
constructor() {
|
|
@@ -89,7 +89,8 @@ class BsFloatingPane {
|
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
class BsDockPaneRendererComponent {
|
|
92
|
-
constructor(element) {
|
|
92
|
+
constructor(overlay, element) {
|
|
93
|
+
this.overlay = overlay;
|
|
93
94
|
this.paneTypes = EPaneType;
|
|
94
95
|
this.BsDocumentHostType = BsDocumentHost;
|
|
95
96
|
this.BsTabGroupType = BsTabGroupPane;
|
|
@@ -106,19 +107,31 @@ class BsDockPaneRendererComponent {
|
|
|
106
107
|
set layout(value) {
|
|
107
108
|
this.layout$.next(value);
|
|
108
109
|
}
|
|
110
|
+
moveToOverlay() {
|
|
111
|
+
if (!this.overlayRef && !this.portal.isAttached) {
|
|
112
|
+
this.overlayRef = this.overlay.create({});
|
|
113
|
+
this.portal.attach(this.overlayRef);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
disposeOverlay() {
|
|
117
|
+
if (this.overlayRef) {
|
|
118
|
+
this.portal.detach();
|
|
119
|
+
this.overlayRef.dispose();
|
|
120
|
+
this.overlayRef = undefined;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
109
123
|
}
|
|
110
|
-
BsDockPaneRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDockPaneRendererComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
111
|
-
BsDockPaneRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: BsDockPaneRendererComponent, selector: "bs-dock-pane-renderer", inputs: { layout: "layout" }, ngImport: i0, template: "<!-- <ng-content></ng-content> -->\n<ng-container [bsInstanceof]=\"layout$ | async\">\n <div *bsInstanceofCase=\"BsDocumentHostType; let documentHost\" data-hello>\n <bs-dock-pane-renderer [layout]=\"documentHost\"></bs-dock-pane-renderer>\n </div>\n <bs-tab-control *bsInstanceofCase=\"BsTabGroupType; let tabGroup\" [allowDragDrop]=\"false\" class=\"d-flex flex-column h-100 dock-tabs\">\n <bs-tab-page *ngFor=\"let tab of tabGroup.panes\">\n <ng-container *bsTabPageHeader>\n <ng-template [cdkPortalOutlet]=\"tab.dockPanel.headerPortal\"></ng-template>\n </ng-container>\n <bs-dock-pane-renderer [layout]=\"tab\"></bs-dock-pane-renderer>\n </bs-tab-page>\n </bs-tab-control>\n <bs-splitter *bsInstanceofCase=\"BsSplitterType; let splitter\" [orientation]=\"splitter.orientation\">\n <bs-split-panel *ngFor=\"let panel of splitter.panes\">\n <bs-dock-pane-renderer [layout]=\"panel\"></bs-dock-pane-renderer>\n </bs-split-panel>\n </bs-splitter>\n <ng-container *bsInstanceofCase=\"BsContentPaneType; let content\">\n <ng-template [cdkPortalOutlet]=\"content.dockPanel.contentPortal\"></ng-template>\n </ng-container>\n <ng-container *bsInstanceofCase=\"BsFloatingPaneType; let floating\">\n <bs-resizable *ngIf=\"floating.pane\" [positioning]=\"'absolute'\" [presetPosition]=\"{ left: floating.location?.x ?? 0, top: floating.location?.y ?? 0, width: floating.size?.width ?? 200, height: floating.size?.height ?? 100 }\">\n <bs-dock-pane-renderer [layout]=\"floating.pane\"></bs-dock-pane-renderer>\n </bs-resizable>\n </ng-container>\n <div *bsInstanceofDefault>\n No match\n </div>\n</ng-container>", styles: [".dock-tabs{background:#F3F3F3}:host ::ng-deep .tab-page-content{background:#FFF;min-height:100%}\n"], dependencies: [{ kind: "directive", type:
|
|
124
|
+
BsDockPaneRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDockPaneRendererComponent, deps: [{ token: i1.Overlay }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
125
|
+
BsDockPaneRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: BsDockPaneRendererComponent, selector: "bs-dock-pane-renderer", inputs: { layout: "layout" }, ngImport: i0, template: "<!-- <ng-content></ng-content> -->\n<ng-container [bsInstanceof]=\"layout$ | async\">\n <div *bsInstanceofCase=\"BsDocumentHostType; let documentHost\" data-hello>\n <bs-dock-pane-renderer [layout]=\"documentHost\"></bs-dock-pane-renderer>\n </div>\n <bs-tab-control *bsInstanceofCase=\"BsTabGroupType; let tabGroup\" [allowDragDrop]=\"false\" class=\"d-flex flex-column h-100 dock-tabs\">\n <bs-tab-page *ngFor=\"let tab of tabGroup.panes\">\n <ng-container *bsTabPageHeader>\n <ng-template [cdkPortalOutlet]=\"tab.dockPanel.headerPortal\"></ng-template>\n </ng-container>\n <bs-dock-pane-renderer [layout]=\"tab\"></bs-dock-pane-renderer>\n </bs-tab-page>\n </bs-tab-control>\n <bs-splitter *bsInstanceofCase=\"BsSplitterType; let splitter\" [orientation]=\"splitter.orientation\">\n <bs-split-panel *ngFor=\"let panel of splitter.panes\">\n <bs-dock-pane-renderer [layout]=\"panel\"></bs-dock-pane-renderer>\n </bs-split-panel>\n </bs-splitter>\n <ng-container *bsInstanceofCase=\"BsContentPaneType; let content\">\n <ng-template [cdkPortalOutlet]=\"content.dockPanel.contentPortal\"></ng-template>\n </ng-container>\n <ng-container *bsInstanceofCase=\"BsFloatingPaneType; let floating\">\n <bs-resizable *ngIf=\"floating.pane\" [positioning]=\"'absolute'\" [presetPosition]=\"{ left: floating.location?.x ?? 0, top: floating.location?.y ?? 0, width: floating.size?.width ?? 200, height: floating.size?.height ?? 100 }\">\n <bs-dock-pane-renderer [layout]=\"floating.pane\"></bs-dock-pane-renderer>\n </bs-resizable>\n </ng-container>\n <div *bsInstanceofDefault>\n No match\n </div>\n</ng-container>", styles: [".dock-tabs{background:#F3F3F3}:host ::ng-deep .tab-page-content{background:#FFF;min-height:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: i4.BsInstanceOfDirective, selector: "[bsInstanceof]", inputs: ["bsInstanceof"] }, { kind: "directive", type: i4.BsInstanceofCaseDirective, selector: "[bsInstanceofCase]", inputs: ["bsInstanceofCase"] }, { kind: "directive", type: i4.BsInstanceOfDefaultDirective, selector: "[bsInstanceofDefault]" }, { kind: "component", type: i5.BsSplitterComponent, selector: "bs-splitter", inputs: ["orientation"] }, { kind: "component", type: i5.BsSplitPanelComponent, selector: "bs-split-panel" }, { kind: "component", type: i6.BsTabControlComponent, selector: "bs-tab-control", inputs: ["border", "restrictDragging", "selectFirstTab", "tabsPosition", "allowDragDrop"] }, { kind: "component", type: i6.BsTabPageComponent, selector: "bs-tab-page", inputs: ["disabled"] }, { kind: "directive", type: i6.BsTabPageHeaderDirective, selector: "[bsTabPageHeader]" }, { kind: "component", type: i7.BsResizableComponent, selector: "bs-resizable", inputs: ["positioning", "presetPosition"] }, { kind: "component", type: BsDockPaneRendererComponent, selector: "bs-dock-pane-renderer", inputs: ["layout"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
112
126
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDockPaneRendererComponent, decorators: [{
|
|
113
127
|
type: Component,
|
|
114
128
|
args: [{ selector: 'bs-dock-pane-renderer', template: "<!-- <ng-content></ng-content> -->\n<ng-container [bsInstanceof]=\"layout$ | async\">\n <div *bsInstanceofCase=\"BsDocumentHostType; let documentHost\" data-hello>\n <bs-dock-pane-renderer [layout]=\"documentHost\"></bs-dock-pane-renderer>\n </div>\n <bs-tab-control *bsInstanceofCase=\"BsTabGroupType; let tabGroup\" [allowDragDrop]=\"false\" class=\"d-flex flex-column h-100 dock-tabs\">\n <bs-tab-page *ngFor=\"let tab of tabGroup.panes\">\n <ng-container *bsTabPageHeader>\n <ng-template [cdkPortalOutlet]=\"tab.dockPanel.headerPortal\"></ng-template>\n </ng-container>\n <bs-dock-pane-renderer [layout]=\"tab\"></bs-dock-pane-renderer>\n </bs-tab-page>\n </bs-tab-control>\n <bs-splitter *bsInstanceofCase=\"BsSplitterType; let splitter\" [orientation]=\"splitter.orientation\">\n <bs-split-panel *ngFor=\"let panel of splitter.panes\">\n <bs-dock-pane-renderer [layout]=\"panel\"></bs-dock-pane-renderer>\n </bs-split-panel>\n </bs-splitter>\n <ng-container *bsInstanceofCase=\"BsContentPaneType; let content\">\n <ng-template [cdkPortalOutlet]=\"content.dockPanel.contentPortal\"></ng-template>\n </ng-container>\n <ng-container *bsInstanceofCase=\"BsFloatingPaneType; let floating\">\n <bs-resizable *ngIf=\"floating.pane\" [positioning]=\"'absolute'\" [presetPosition]=\"{ left: floating.location?.x ?? 0, top: floating.location?.y ?? 0, width: floating.size?.width ?? 200, height: floating.size?.height ?? 100 }\">\n <bs-dock-pane-renderer [layout]=\"floating.pane\"></bs-dock-pane-renderer>\n </bs-resizable>\n </ng-container>\n <div *bsInstanceofDefault>\n No match\n </div>\n</ng-container>", styles: [".dock-tabs{background:#F3F3F3}:host ::ng-deep .tab-page-content{background:#FFF;min-height:100%}\n"] }]
|
|
115
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { layout: [{
|
|
129
|
+
}], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.ElementRef }]; }, propDecorators: { layout: [{
|
|
116
130
|
type: Input
|
|
117
131
|
}] } });
|
|
118
132
|
|
|
119
133
|
class BsDockComponent {
|
|
120
|
-
constructor(
|
|
121
|
-
this.overlay = overlay;
|
|
134
|
+
constructor() {
|
|
122
135
|
//#region Panels
|
|
123
136
|
this.panels$ = new BehaviorSubject([]);
|
|
124
137
|
//#endregion
|
|
@@ -139,10 +152,7 @@ class BsDockComponent {
|
|
|
139
152
|
// })
|
|
140
153
|
this.floating$.pipe(takeUntil(this.destroyed$))
|
|
141
154
|
.subscribe((floating) => {
|
|
142
|
-
floating.forEach((panel) =>
|
|
143
|
-
const overlayRef = this.overlay.create({});
|
|
144
|
-
overlayRef.attach(panel.portal);
|
|
145
|
-
});
|
|
155
|
+
floating.forEach((panel) => panel.moveToOverlay());
|
|
146
156
|
});
|
|
147
157
|
}
|
|
148
158
|
set panels(value) {
|
|
@@ -159,14 +169,15 @@ class BsDockComponent {
|
|
|
159
169
|
}
|
|
160
170
|
ngOnDestroy() {
|
|
161
171
|
this.destroyed$.next(true);
|
|
172
|
+
this.floating$.value.forEach(panel => panel.disposeOverlay());
|
|
162
173
|
}
|
|
163
174
|
}
|
|
164
|
-
BsDockComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDockComponent, deps: [
|
|
165
|
-
BsDockComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: BsDockComponent, selector: "bs-dock", inputs: { layout: "layout" }, host: { properties: { "class.position-absolute": "this.positionAbsolute", "style.top": "this.positionPx", "style.left": "this.positionPx", "style.bottom": "this.positionPx", "style.right": "this.positionPx" } }, queries: [{ propertyName: "panels", predicate: BsDockPanelComponent }], viewQueries: [{ propertyName: "floatingPanes", predicate: ["floating"], descendants: true }], ngImport: i0, template: "<ng-content></ng-content>\n<ng-container *ngIf=\"(layout$ | async) as layout\">\n <bs-dock-pane-renderer [layout]=\"layout.rootPane\"></bs-dock-pane-renderer>\n\n <ng-container *ngFor=\"let pane of layout.floatingPanes\">\n <bs-dock-pane-renderer #floating *ngIf=\"pane.pane\" [layout]=\"pane\"></bs-dock-pane-renderer>\n </ng-container>\n</ng-container>\n<!-- <bs-splitter>\n <ng-content></ng-content>\n <ng-container *ngFor=\"let panel of (panels$ | async)\">\n <bs-split-panel>\n <ng-template [cdkPortalOutlet]=\"panel.portal\"></ng-template>\n </bs-split-panel>\n </ng-container>\n</bs-splitter> -->\n", styles: [":host ::ng-deep .tab-content{max-height:calc(100% - 41px);overflow:auto}:host ::ng-deep bs-dock-pane-renderer{min-width:100%;min-height:100%}\n"], dependencies: [{ kind: "directive", type:
|
|
175
|
+
BsDockComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
176
|
+
BsDockComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: BsDockComponent, selector: "bs-dock", inputs: { layout: "layout" }, host: { properties: { "class.position-absolute": "this.positionAbsolute", "style.top": "this.positionPx", "style.left": "this.positionPx", "style.bottom": "this.positionPx", "style.right": "this.positionPx" } }, queries: [{ propertyName: "panels", predicate: BsDockPanelComponent }], viewQueries: [{ propertyName: "floatingPanes", predicate: ["floating"], descendants: true }], ngImport: i0, template: "<ng-content></ng-content>\n<ng-container *ngIf=\"(layout$ | async) as layout\">\n <bs-dock-pane-renderer [layout]=\"layout.rootPane\"></bs-dock-pane-renderer>\n\n <ng-container *ngFor=\"let pane of layout.floatingPanes\">\n <bs-dock-pane-renderer #floating *ngIf=\"pane.pane\" [layout]=\"pane\"></bs-dock-pane-renderer>\n </ng-container>\n</ng-container>\n<!-- <bs-splitter>\n <ng-content></ng-content>\n <ng-container *ngFor=\"let panel of (panels$ | async)\">\n <bs-split-panel>\n <ng-template [cdkPortalOutlet]=\"panel.portal\"></ng-template>\n </bs-split-panel>\n </ng-container>\n</bs-splitter> -->\n", styles: [":host ::ng-deep .tab-content{max-height:calc(100% - 41px);overflow:auto}:host ::ng-deep bs-dock-pane-renderer{min-width:100%;min-height:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: BsDockPaneRendererComponent, selector: "bs-dock-pane-renderer", inputs: ["layout"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
166
177
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDockComponent, decorators: [{
|
|
167
178
|
type: Component,
|
|
168
179
|
args: [{ selector: 'bs-dock', template: "<ng-content></ng-content>\n<ng-container *ngIf=\"(layout$ | async) as layout\">\n <bs-dock-pane-renderer [layout]=\"layout.rootPane\"></bs-dock-pane-renderer>\n\n <ng-container *ngFor=\"let pane of layout.floatingPanes\">\n <bs-dock-pane-renderer #floating *ngIf=\"pane.pane\" [layout]=\"pane\"></bs-dock-pane-renderer>\n </ng-container>\n</ng-container>\n<!-- <bs-splitter>\n <ng-content></ng-content>\n <ng-container *ngFor=\"let panel of (panels$ | async)\">\n <bs-split-panel>\n <ng-template [cdkPortalOutlet]=\"panel.portal\"></ng-template>\n </bs-split-panel>\n </ng-container>\n</bs-splitter> -->\n", styles: [":host ::ng-deep .tab-content{max-height:calc(100% - 41px);overflow:auto}:host ::ng-deep bs-dock-pane-renderer{min-width:100%;min-height:100%}\n"] }]
|
|
169
|
-
}], ctorParameters: function () { return [
|
|
180
|
+
}], ctorParameters: function () { return []; }, propDecorators: { panels: [{
|
|
170
181
|
type: ContentChildren,
|
|
171
182
|
args: [BsDockPanelComponent]
|
|
172
183
|
}], layout: [{
|
|
@@ -192,17 +203,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
192
203
|
}] } });
|
|
193
204
|
|
|
194
205
|
class BsDockPanelHeaderComponent {
|
|
195
|
-
constructor(
|
|
196
|
-
this.overlay = overlay;
|
|
206
|
+
constructor(dockPanel, dock, element) {
|
|
197
207
|
this.dockPanel = dockPanel;
|
|
198
208
|
this.dock = dock;
|
|
199
209
|
this.element = element;
|
|
200
210
|
this.isMouseDown = false;
|
|
201
211
|
this.isLayoutDetached = false;
|
|
202
212
|
this.dBlock = true;
|
|
203
|
-
this.overlayRef = this.overlay.create({
|
|
204
|
-
positionStrategy: this.overlay.position().global()
|
|
205
|
-
});
|
|
206
213
|
}
|
|
207
214
|
onMouseDown(ev) {
|
|
208
215
|
ev.preventDefault();
|
|
@@ -328,12 +335,12 @@ class BsDockPanelHeaderComponent {
|
|
|
328
335
|
this.dragOperation = undefined;
|
|
329
336
|
}
|
|
330
337
|
}
|
|
331
|
-
BsDockPanelHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDockPanelHeaderComponent, deps: [{ token:
|
|
338
|
+
BsDockPanelHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDockPanelHeaderComponent, deps: [{ token: BsDockPanelComponent }, { token: BsDockComponent }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
332
339
|
BsDockPanelHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: BsDockPanelHeaderComponent, selector: "bs-dock-panel-header", host: { listeners: { "mousedown": "onMouseDown($event)", "document:mousemove": "onMouseMove($event)", "document:mouseup": "onMouseUp($event)" }, properties: { "class.d-block": "this.dBlock" } }, ngImport: i0, template: "<ng-content></ng-content>", styles: [":host{padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);margin:calc(-1 * var(--bs-nav-link-padding-y)) calc(-1 * var(--bs-nav-link-padding-x))}\n"] });
|
|
333
340
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsDockPanelHeaderComponent, decorators: [{
|
|
334
341
|
type: Component,
|
|
335
342
|
args: [{ selector: 'bs-dock-panel-header', template: "<ng-content></ng-content>", styles: [":host{padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);margin:calc(-1 * var(--bs-nav-link-padding-y)) calc(-1 * var(--bs-nav-link-padding-x))}\n"] }]
|
|
336
|
-
}], ctorParameters: function () { return [{ type:
|
|
343
|
+
}], ctorParameters: function () { return [{ type: BsDockPanelComponent }, { type: BsDockComponent }, { type: i0.ElementRef }]; }, propDecorators: { onMouseDown: [{
|
|
337
344
|
type: HostListener,
|
|
338
345
|
args: ['mousedown', ['$event']]
|
|
339
346
|
}], onMouseMove: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mintplayer-ng-bootstrap-dock.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/dock/src/dock-panel/dock-panel.component.ts","../../../../libs/mintplayer-ng-bootstrap/dock/src/dock-panel/dock-panel.component.html","../../../../libs/mintplayer-ng-bootstrap/dock/src/panes/dock-pane.ts","../../../../libs/mintplayer-ng-bootstrap/dock/src/panes/tab-group-pane.ts","../../../../libs/mintplayer-ng-bootstrap/dock/src/panes/document-host-pane.ts","../../../../libs/mintplayer-ng-bootstrap/dock/src/enums/pane-type.enum.ts","../../../../libs/mintplayer-ng-bootstrap/dock/src/panes/split-pane.ts","../../../../libs/mintplayer-ng-bootstrap/dock/src/panes/content-pane.ts","../../../../libs/mintplayer-ng-bootstrap/dock/src/panes/floating-pane.ts","../../../../libs/mintplayer-ng-bootstrap/dock/src/dock-pane-renderer/dock-pane-renderer.component.ts","../../../../libs/mintplayer-ng-bootstrap/dock/src/dock-pane-renderer/dock-pane-renderer.component.html","../../../../libs/mintplayer-ng-bootstrap/dock/src/dock/dock.component.ts","../../../../libs/mintplayer-ng-bootstrap/dock/src/dock/dock.component.html","../../../../libs/mintplayer-ng-bootstrap/dock/src/dock-panel-header/dock-panel-header.component.ts","../../../../libs/mintplayer-ng-bootstrap/dock/src/dock-panel-header/dock-panel-header.component.html","../../../../libs/mintplayer-ng-bootstrap/dock/src/dock.module.ts","../../../../libs/mintplayer-ng-bootstrap/dock/mintplayer-ng-bootstrap-dock.ts"],"sourcesContent":["import { DomPortal } from '@angular/cdk/portal';\nimport { Component, ElementRef, Input, AfterViewInit, ViewChild, Inject, Optional, forwardRef } from '@angular/core';\nimport { BsTabControlComponent } from '@mintplayer/ng-bootstrap/tab-control';\n\n@Component({\n selector: 'bs-dock-panel',\n templateUrl: './dock-panel.component.html',\n styleUrls: ['./dock-panel.component.scss']\n})\nexport class BsDockPanelComponent implements AfterViewInit {\n\n @ViewChild('headerElement') headerElement!: ElementRef<HTMLDivElement>;\n @ViewChild('contentElement') contentElement!: ElementRef<HTMLDivElement>;\n headerPortal?: DomPortal;\n contentPortal?: DomPortal;\n @Input() panelId = '';\n\n ngAfterViewInit() {\n this.headerPortal = new DomPortal(this.headerElement.nativeElement);\n this.contentPortal = new DomPortal(this.contentElement.nativeElement);\n }\n}\n","<!-- <bs-split-panel> -->\n<div #headerElement class=\"dock-header\">\n <ng-content select=\"bs-dock-panel-header\"></ng-content>\n</div>\n<div #contentElement>\n <ng-content></ng-content>\n</div>\n<!-- </bs-split-panel> -->","export abstract class BsDockPane {}","import { BsContentPane } from \"./content-pane\";\nimport { BsDockPane } from \"./dock-pane\";\n\nexport class BsTabGroupPane extends BsDockPane {\n constructor(data?: Partial<BsTabGroupPane>) {\n super();\n Object.assign(this, data);\n }\n\n panes: BsContentPane[] = [];\n}","import { BsDockPane } from \"./dock-pane\";\nimport { BsTabGroupPane } from \"./tab-group-pane\";\n\nexport class BsDocumentHost extends BsDockPane {\n constructor(data?: Partial<BsDocumentHost>) {\n super();\n Object.assign(this, data);\n }\n\n rootPane?: BsTabGroupPane\n}","export enum EPaneType {\n documentHost = 1,\n splitPane = 2,\n contentPane = 3,\n tabGroupPane = 4,\n}","import { SplitPaneOrientation } from \"../types/split-pane-orientation.type\";\nimport { BsDockPane } from \"./dock-pane\";\n\nexport class BsSplitPane extends BsDockPane {\n constructor(data?: Partial<BsSplitPane>) {\n super();\n Object.assign(this, data);\n }\n\n orientation: SplitPaneOrientation = 'horizontal';\n panes: BsDockPane[] = [];\n}","import { BsDockPanelComponent } from \"../dock-panel/dock-panel.component\";\nimport { BsDockPane } from \"./dock-pane\";\n\nexport class BsContentPane extends BsDockPane {\n constructor(data?: Partial<BsContentPane>) {\n super();\n Object.assign(this, data);\n }\n\n dockPanel!: BsDockPanelComponent;\n isPinned?: boolean;\n}","import { BsDockPane } from \"./dock-pane\";\nimport { Point } from \"../interfaces/point\";\nimport { Size } from \"../interfaces/size\";\n\nexport class BsFloatingPane {\n constructor(data?: Partial<BsFloatingPane>) {\n Object.assign(this, data);\n }\n \n pane?: BsDockPane;\n size?: Size;\n location?: Point;\n}","import { Component, ElementRef, HostBinding, Input } from '@angular/core';\nimport { DomPortal } from '@angular/cdk/portal';\nimport { BehaviorSubject, Observable, map } from 'rxjs';\nimport { BsDockPane } from '../panes/dock-pane';\nimport { EPaneType } from '../enums/pane-type.enum';\nimport { BsSplitPane } from '../panes/split-pane';\nimport { BsContentPane } from '../panes/content-pane';\nimport { BsDocumentHost } from '../panes/document-host-pane';\nimport { BsTabGroupPane } from '../panes/tab-group-pane';\nimport { BsFloatingPane } from '../panes/floating-pane';\n\n@Component({\n selector: 'bs-dock-pane-renderer',\n templateUrl: './dock-pane-renderer.component.html',\n styleUrls: ['./dock-pane-renderer.component.scss']\n})\nexport class BsDockPaneRendererComponent {\n\n constructor(element: ElementRef) {\n this.portal = new DomPortal(element);\n }\n\n portal: DomPortal;\n\n paneTypes = EPaneType;\n readonly BsDocumentHostType = BsDocumentHost;\n readonly BsTabGroupType = BsTabGroupPane;\n readonly BsSplitterType = BsSplitPane;\n readonly BsContentPaneType = BsContentPane;\n readonly BsFloatingPaneType = BsFloatingPane;\n\n //#region Layout\n layout$ = new BehaviorSubject<BsDockPane | null>(null);\n public get layout() {\n return this.layout$.value;\n }\n @Input() public set layout(value: BsDockPane | null) {\n this.layout$.next(value);\n }\n //#endregion\n}\n","<!-- <ng-content></ng-content> -->\n<ng-container [bsInstanceof]=\"layout$ | async\">\n <div *bsInstanceofCase=\"BsDocumentHostType; let documentHost\" data-hello>\n <bs-dock-pane-renderer [layout]=\"documentHost\"></bs-dock-pane-renderer>\n </div>\n <bs-tab-control *bsInstanceofCase=\"BsTabGroupType; let tabGroup\" [allowDragDrop]=\"false\" class=\"d-flex flex-column h-100 dock-tabs\">\n <bs-tab-page *ngFor=\"let tab of tabGroup.panes\">\n <ng-container *bsTabPageHeader>\n <ng-template [cdkPortalOutlet]=\"tab.dockPanel.headerPortal\"></ng-template>\n </ng-container>\n <bs-dock-pane-renderer [layout]=\"tab\"></bs-dock-pane-renderer>\n </bs-tab-page>\n </bs-tab-control>\n <bs-splitter *bsInstanceofCase=\"BsSplitterType; let splitter\" [orientation]=\"splitter.orientation\">\n <bs-split-panel *ngFor=\"let panel of splitter.panes\">\n <bs-dock-pane-renderer [layout]=\"panel\"></bs-dock-pane-renderer>\n </bs-split-panel>\n </bs-splitter>\n <ng-container *bsInstanceofCase=\"BsContentPaneType; let content\">\n <ng-template [cdkPortalOutlet]=\"content.dockPanel.contentPortal\"></ng-template>\n </ng-container>\n <ng-container *bsInstanceofCase=\"BsFloatingPaneType; let floating\">\n <bs-resizable *ngIf=\"floating.pane\" [positioning]=\"'absolute'\" [presetPosition]=\"{ left: floating.location?.x ?? 0, top: floating.location?.y ?? 0, width: floating.size?.width ?? 200, height: floating.size?.height ?? 100 }\">\n <bs-dock-pane-renderer [layout]=\"floating.pane\"></bs-dock-pane-renderer>\n </bs-resizable>\n </ng-container>\n <div *bsInstanceofDefault>\n No match\n </div>\n</ng-container>","import { Component, ContentChildren, ViewChildren, Input, OnDestroy, QueryList, HostBinding } from '@angular/core';\nimport { BehaviorSubject, combineLatest, combineLatestAll, Subject, takeUntil } from 'rxjs';\nimport { BsDockPanelComponent } from '../dock-panel/dock-panel.component';\nimport { EPaneType } from '../enums/pane-type.enum';\nimport { BsDockLayout } from '../interfaces/dock-layout';\nimport { BsTabGroupPane } from '../panes/tab-group-pane';\nimport { BsDocumentHost } from '../panes/document-host-pane';\nimport { BsDockPaneRendererComponent } from '../dock-pane-renderer/dock-pane-renderer.component';\nimport { Overlay } from '@angular/cdk/overlay';\n\n@Component({\n selector: 'bs-dock',\n templateUrl: './dock.component.html',\n styleUrls: ['./dock.component.scss']\n})\nexport class BsDockComponent implements OnDestroy {\n constructor(private overlay: Overlay) {\n const tabs = new BsTabGroupPane();\n const docHost = new BsDocumentHost();\n docHost.rootPane = tabs;\n\n this.layout$ = new BehaviorSubject<BsDockLayout>({\n rootPane: docHost,\n floatingPanes: []\n });\n\n // combineLatest([this.layout$, this.panels$])\n // .pipe(takeUntil(this.destroyed$))\n // .subscribe(([layout, panels]) => {\n \n // })\n\n this.floating$.pipe(takeUntil(this.destroyed$))\n .subscribe((floating) => {\n floating.forEach((panel) => {\n const overlayRef = this.overlay.create({});\n overlayRef.attach(panel.portal);\n });\n });\n }\n\n //#region Panels\n panels$ = new BehaviorSubject<BsDockPanelComponent[]>([]);\n @ContentChildren(BsDockPanelComponent) set panels(value: QueryList<BsDockPanelComponent>) {\n this.panels$.next(value.toArray());\n }\n //#endregion\n //#region Layout\n layout$: BehaviorSubject<BsDockLayout>;\n public get layout() {\n return this.layout$.value;\n }\n @Input() public set layout(value: BsDockLayout) {\n this.layout$.next(value);\n }\n //#endregion\n\n floating$ = new BehaviorSubject<BsDockPaneRendererComponent[]>([]);\n @ViewChildren('floating') set floatingPanes(value: QueryList<BsDockPaneRendererComponent>) {\n this.floating$.next(value.toArray());\n }\n\n @HostBinding('class.position-absolute')\n positionAbsolute = true;\n\n @HostBinding('style.top')\n @HostBinding('style.left')\n @HostBinding('style.bottom')\n @HostBinding('style.right')\n positionPx = 0;\n\n destroyed$ = new Subject();\n ngOnDestroy() {\n this.destroyed$.next(true);\n }\n}\n","<ng-content></ng-content>\n<ng-container *ngIf=\"(layout$ | async) as layout\">\n <bs-dock-pane-renderer [layout]=\"layout.rootPane\"></bs-dock-pane-renderer>\n\n <ng-container *ngFor=\"let pane of layout.floatingPanes\">\n <bs-dock-pane-renderer #floating *ngIf=\"pane.pane\" [layout]=\"pane\"></bs-dock-pane-renderer>\n </ng-container>\n</ng-container>\n<!-- <bs-splitter>\n <ng-content></ng-content>\n <ng-container *ngFor=\"let panel of (panels$ | async)\">\n <bs-split-panel>\n <ng-template [cdkPortalOutlet]=\"panel.portal\"></ng-template>\n </bs-split-panel>\n </ng-container>\n</bs-splitter> -->\n","import { GlobalPositionStrategy, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { Component, ElementRef, HostBinding, HostListener, Inject, Optional, forwardRef } from '@angular/core';\nimport { take } from 'rxjs';\nimport { BsTabControlComponent } from '@mintplayer/ng-bootstrap/tab-control';\nimport { BsDockPanelComponent } from '../dock-panel/dock-panel.component';\nimport { BsDockComponent } from '../dock/dock.component';\nimport { BsDockPane } from '../panes/dock-pane';\nimport { BsSplitPane } from '../panes/split-pane';\nimport { BsContentPane } from '../panes/content-pane';\nimport { BsFloatingPane } from '../panes/floating-pane';\nimport { BsTabGroupPane } from '../panes/tab-group-pane';\nimport { BsDocumentHost } from '../panes/document-host-pane';\nimport { RemoveFromPaneResult } from '../interfaces/remove-from-pane-result';\nimport { DragOperation } from '../interfaces/drag-operation';\n\n@Component({\n selector: 'bs-dock-panel-header',\n templateUrl: './dock-panel-header.component.html',\n styleUrls: ['./dock-panel-header.component.scss']\n})\nexport class BsDockPanelHeaderComponent {\n constructor(private overlay: Overlay, private dockPanel: BsDockPanelComponent, private dock: BsDockComponent, private element: ElementRef<HTMLElement>) {\n this.overlayRef = this.overlay.create({\n positionStrategy: this.overlay.position().global()\n });\n }\n\n isMouseDown = false;\n dragOperation?: DragOperation;\n overlayRef: OverlayRef;\n isLayoutDetached = false;\n @HostListener('mousedown', ['$event']) onMouseDown(ev: MouseEvent) {\n ev.preventDefault();\n this.isMouseDown = true;\n }\n\n @HostListener('document:mousemove', ['$event']) onMouseMove(ev: MouseEvent) {\n if (this.isMouseDown) {\n if (!this.isLayoutDetached) {\n this.isLayoutDetached = true;\n this.dock.layout$.pipe(take(1)).subscribe((layout) => {\n\n let element: HTMLElement | null = this.element.nativeElement;\n let tree: HTMLElement[] = [];\n do {\n tree.push(element!);\n element = element!.parentElement;\n } while (element);\n\n const tabControls = tree.filter(el => el.tagName.toUpperCase() === 'BS-TAB-CONTROL');\n if (tabControls.length > 0) {\n const coords = {\n width: tabControls[0].clientWidth,\n height: tabControls[0].clientHeight,\n left: ev.clientX - ev.offsetX,\n top: ev.clientY - ev.offsetY,\n };\n\n this.dockPanel.headerPortal?.isAttached && this.dockPanel.headerPortal?.detach();\n this.dockPanel.contentPortal?.isAttached && this.dockPanel.contentPortal?.detach();\n this.removeFromPane(layout.rootPane, this.dockPanel);\n\n const floatingPane = new BsFloatingPane({\n pane: new BsTabGroupPane({\n panes: [\n new BsContentPane({\n dockPanel: this.dockPanel\n })\n ]\n }),\n size: {\n width: coords.width,\n height: coords.height,\n },\n location: {\n x: coords.left,\n y: coords.top,\n }\n });\n \n this.dragOperation = {\n offsetX: ev.offsetX,\n offsetY: ev.offsetY,\n floatingPane\n };\n\n layout.floatingPanes.push(floatingPane);\n this.dock.layout$.next(layout);\n }\n });\n } else if (this.dragOperation) {\n if (this.dragOperation.floatingPane.location) {\n this.dragOperation.floatingPane.location.x = ev.clientX - this.dragOperation.offsetX;\n this.dragOperation.floatingPane.location.y = ev.clientY - this.dragOperation.offsetY;\n }\n }\n }\n }\n\n removeFromPane(host: BsDockPane, panel: BsDockPanelComponent /*, parents: BsDockPane[] */): RemoveFromPaneResult {\n if (host instanceof BsContentPane) {\n return { paneRemoved: false, hostIsEmpty: false };\n } else if (host instanceof BsDocumentHost) {\n // Actually documentHost should never be removed\n\n if (!host.rootPane) {\n return { paneRemoved: false, hostIsEmpty: true };\n }\n\n const result = this.removeFromPane(host.rootPane, panel);\n return { paneRemoved: result.paneRemoved, hostIsEmpty: result.hostIsEmpty };\n\n } else if (host instanceof BsTabGroupPane) {\n\n\n\n const matching = host.panes.filter(p => p.dockPanel === panel);\n if (matching.length > 0) {\n host.panes.splice(host.panes.findIndex(p => p.dockPanel === panel), 1);\n return { paneRemoved: true, hostIsEmpty: host.panes.length === 0 };\n } else {\n // ATM. all panes are ContentPanes anyway.\n // So unless you'd want to have splitters inside the tabs,\n // This code will not be hit.\n\n // const result = host.panes\n // .map(parentPane => this.removeFromPane(parentPane, panel))\n // .filter(r => r.paneRemoved);\n //\n // if (result.length > 0) {\n // return { paneRemoved: true, hostIsEmpty: }\n // }\n return { paneRemoved: false, hostIsEmpty: host.panes.length === 0 };\n }\n\n\n\n\n } else if (host instanceof BsSplitPane) {\n const matching = host.panes\n .filter(p => p instanceof BsContentPane)\n .map(p => <BsContentPane>p)\n .filter(p => p.dockPanel === panel);\n \n if (matching.length > 0) {\n host.panes.splice(host.panes.findIndex(p => (p instanceof BsContentPane) && matching.includes(p)), 1);\n\n // TODO: Remove splitter if only 1 pane left?\n return { paneRemoved: true, hostIsEmpty: host.panes.length === 0 };\n } else {\n\n\n for (let splitPane of host.panes) {\n const result = this.removeFromPane(splitPane, panel);\n if (result.paneRemoved && result.hostIsEmpty) {\n // splitPane is empty now, so we can remove it from this splitter\n host.panes.splice(host.panes.indexOf(splitPane), 1);\n return { paneRemoved: true, hostIsEmpty: host.panes.length === 0 };\n }\n }\n }\n\n return { paneRemoved: false, hostIsEmpty: host.panes.length === 0 };\n } else {\n throw 'unknown host type';\n }\n }\n\n @HostListener('document:mouseup', ['$event']) onMouseUp(ev: Event) {\n this.isMouseDown = false;\n this.dragOperation = undefined;\n }\n\n @HostBinding('class.d-block') dBlock = true;\n}\n","<ng-content></ng-content>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { BsCardModule } from '@mintplayer/ng-bootstrap/card';\nimport { BsSplitterModule } from '@mintplayer/ng-bootstrap/splitter';\nimport { BsResizableModule } from '@mintplayer/ng-bootstrap/resizable';\nimport { BsTabControlModule } from '@mintplayer/ng-bootstrap/tab-control';\nimport { BsInstanceOfModule } from '@mintplayer/ng-bootstrap/instance-of';\nimport { BsDockComponent } from './dock/dock.component';\nimport { BsDockPanelComponent } from './dock-panel/dock-panel.component';\nimport { BsDockPanelHeaderComponent } from './dock-panel-header/dock-panel-header.component';\nimport { BsDockPaneRendererComponent } from './dock-pane-renderer/dock-pane-renderer.component';\n\n@NgModule({\n declarations: [\n BsDockComponent,\n BsDockPanelComponent,\n BsDockPanelHeaderComponent,\n BsDockPaneRendererComponent\n ],\n imports: [\n CommonModule,\n PortalModule,\n BsCardModule,\n BsInstanceOfModule,\n BsSplitterModule,\n BsTabControlModule,\n BsResizableModule\n ],\n exports: [\n BsDockComponent,\n BsDockPanelComponent,\n BsDockPanelHeaderComponent,\n BsDockPaneRendererComponent\n ]\n})\nexport class BsDockModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3.BsDockPaneRendererComponent","i2.BsDockPanelComponent","i3.BsDockComponent"],"mappings":";;;;;;;;;;;;;;;;;;MASa,oBAAoB,CAAA;AALjC,IAAA,WAAA,GAAA;QAWW,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;AAMvB,KAAA;IAJC,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;AACpE,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;KACvE;;iHAXU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,wSCTjC,wOAO0B,EAAA,MAAA,EAAA,CAAA,0KAAA,CAAA,EAAA,CAAA,CAAA;2FDEb,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,wOAAA,EAAA,MAAA,EAAA,CAAA,0KAAA,CAAA,EAAA,CAAA;8BAMG,aAAa,EAAA,CAAA;sBAAxC,SAAS;uBAAC,eAAe,CAAA;gBACG,cAAc,EAAA,CAAA;sBAA1C,SAAS;uBAAC,gBAAgB,CAAA;gBAGlB,OAAO,EAAA,CAAA;sBAAf,KAAK;;;MEfc,UAAU,CAAA;AAAG;;ACG7B,MAAO,cAAe,SAAQ,UAAU,CAAA;AAC1C,IAAA,WAAA,CAAY,IAA8B,EAAA;AACtC,QAAA,KAAK,EAAE,CAAC;QAIZ,IAAK,CAAA,KAAA,GAAoB,EAAE,CAAC;AAHxB,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAC7B;AAGJ;;ACPK,MAAO,cAAe,SAAQ,UAAU,CAAA;AAC1C,IAAA,WAAA,CAAY,IAA8B,EAAA;AACtC,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAC7B;AAGJ;;ICVW,UAKX;AALD,CAAA,UAAY,SAAS,EAAA;AACjB,IAAA,SAAA,CAAA,SAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAgB,CAAA;AAChB,IAAA,SAAA,CAAA,SAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;AACb,IAAA,SAAA,CAAA,SAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAe,CAAA;AACf,IAAA,SAAA,CAAA,SAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAgB,CAAA;AACpB,CAAC,EALW,SAAS,KAAT,SAAS,GAKpB,EAAA,CAAA,CAAA;;ACFK,MAAO,WAAY,SAAQ,UAAU,CAAA;AACvC,IAAA,WAAA,CAAY,IAA2B,EAAA;AACnC,QAAA,KAAK,EAAE,CAAC;QAIZ,IAAW,CAAA,WAAA,GAAyB,YAAY,CAAC;QACjD,IAAK,CAAA,KAAA,GAAiB,EAAE,CAAC;AAJrB,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAC7B;AAIJ;;ACRK,MAAO,aAAc,SAAQ,UAAU,CAAA;AACzC,IAAA,WAAA,CAAY,IAA6B,EAAA;AACrC,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAC7B;AAIJ;;MCPY,cAAc,CAAA;AACvB,IAAA,WAAA,CAAY,IAA8B,EAAA;AACtC,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAC7B;AAKJ;;MCIY,2BAA2B,CAAA;AAEtC,IAAA,WAAA,CAAY,OAAmB,EAAA;QAM/B,IAAS,CAAA,SAAA,GAAG,SAAS,CAAC;QACb,IAAkB,CAAA,kBAAA,GAAG,cAAc,CAAC;QACpC,IAAc,CAAA,cAAA,GAAG,cAAc,CAAC;QAChC,IAAc,CAAA,cAAA,GAAG,WAAW,CAAC;QAC7B,IAAiB,CAAA,iBAAA,GAAG,aAAa,CAAC;QAClC,IAAkB,CAAA,kBAAA,GAAG,cAAc,CAAC;;AAG7C,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,eAAe,CAAoB,IAAI,CAAC,CAAC;QAbrD,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;KACtC;AAaD,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;KAC3B;IACD,IAAoB,MAAM,CAAC,KAAwB,EAAA;AACjD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1B;;wHAtBU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4GAA3B,2BAA2B,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChBxC,8uDA6Be,EAAA,MAAA,EAAA,CAAA,oGAAA,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,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDbF,2BAA2B,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,8uDAAA,EAAA,MAAA,EAAA,CAAA,oGAAA,CAAA,EAAA,CAAA;iGAwBb,MAAM,EAAA,CAAA;sBAAzB,KAAK;;;MErBK,eAAe,CAAA;AAC1B,IAAA,WAAA,CAAoB,OAAgB,EAAA;QAAhB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;;AA0BpC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,eAAe,CAAyB,EAAE,CAAC,CAAC;;AAe1D,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,eAAe,CAAgC,EAAE,CAAC,CAAC;QAMnE,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC;QAMxB,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC;AAEf,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;AAtDzB,QAAA,MAAM,IAAI,GAAG,IAAI,cAAc,EAAE,CAAC;AAClC,QAAA,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;AACrC,QAAA,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;AAExB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAe;AAC/C,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,aAAa,EAAE,EAAE;AAClB,SAAA,CAAC,CAAC;;;;;QAQH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC5C,aAAA,SAAS,CAAC,CAAC,QAAQ,KAAI;AACtB,YAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;gBACzB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC3C,gBAAA,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAClC,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACN;IAID,IAA2C,MAAM,CAAC,KAAsC,EAAA;QACtF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;KACpC;AAID,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;KAC3B;IACD,IAAoB,MAAM,CAAC,KAAmB,EAAA;AAC5C,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1B;IAID,IAA8B,aAAa,CAAC,KAA6C,EAAA;QACvF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;KACtC;IAYD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;;4GA3DU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gGAAf,eAAe,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,SAAA,EA4BT,oBAAoB,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3CvC,ipBAgBA,EAAA,MAAA,EAAA,CAAA,iJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,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,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,EAAAC,2BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDDa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,SAAS,EAAA,QAAA,EAAA,ipBAAA,EAAA,MAAA,EAAA,CAAA,iJAAA,CAAA,EAAA,CAAA;gGAgCwB,MAAM,EAAA,CAAA;sBAAhD,eAAe;uBAAC,oBAAoB,CAAA;gBASjB,MAAM,EAAA,CAAA;sBAAzB,KAAK;gBAMwB,aAAa,EAAA,CAAA;sBAA1C,YAAY;uBAAC,UAAU,CAAA;gBAKxB,gBAAgB,EAAA,CAAA;sBADf,WAAW;uBAAC,yBAAyB,CAAA;gBAOtC,UAAU,EAAA,CAAA;sBAJT,WAAW;uBAAC,WAAW,CAAA;;sBACvB,WAAW;uBAAC,YAAY,CAAA;;sBACxB,WAAW;uBAAC,cAAc,CAAA;;sBAC1B,WAAW;uBAAC,aAAa,CAAA;;;MEhDf,0BAA0B,CAAA;AACrC,IAAA,WAAA,CAAoB,OAAgB,EAAU,SAA+B,EAAU,IAAqB,EAAU,OAAgC,EAAA;QAAlI,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;QAAU,IAAS,CAAA,SAAA,GAAT,SAAS,CAAsB;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAiB;QAAU,IAAO,CAAA,OAAA,GAAP,OAAO,CAAyB;QAMtJ,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAGpB,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;QA+IK,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;QAvJ1C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACpC,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE;AACnD,SAAA,CAAC,CAAC;KACJ;AAMsC,IAAA,WAAW,CAAC,EAAc,EAAA;QAC/D,EAAE,CAAC,cAAc,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;KACzB;AAE+C,IAAA,WAAW,CAAC,EAAc,EAAA;QACxE,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAC1B,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC7B,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,KAAI;AAEnD,oBAAA,IAAI,OAAO,GAAuB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;oBAC7D,IAAI,IAAI,GAAkB,EAAE,CAAC;oBAC7B,GAAG;AACD,wBAAA,IAAI,CAAC,IAAI,CAAC,OAAQ,CAAC,CAAC;AACpB,wBAAA,OAAO,GAAG,OAAQ,CAAC,aAAa,CAAC;AAClC,qBAAA,QAAQ,OAAO,EAAE;AAElB,oBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,gBAAgB,CAAC,CAAC;AACrF,oBAAA,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1B,wBAAA,MAAM,MAAM,GAAG;AACb,4BAAA,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW;AACjC,4BAAA,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY;AACnC,4BAAA,IAAI,EAAE,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,OAAO;AAC7B,4BAAA,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,OAAO;yBAC7B,CAAC;AAEF,wBAAA,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;AACjF,wBAAA,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;wBACnF,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAErD,wBAAA,MAAM,YAAY,GAAG,IAAI,cAAc,CAAC;4BACtC,IAAI,EAAE,IAAI,cAAc,CAAC;AACvB,gCAAA,KAAK,EAAE;AACL,oCAAA,IAAI,aAAa,CAAC;wCAChB,SAAS,EAAE,IAAI,CAAC,SAAS;qCAC1B,CAAC;AACH,iCAAA;6BACF,CAAC;AACF,4BAAA,IAAI,EAAE;gCACJ,KAAK,EAAE,MAAM,CAAC,KAAK;gCACnB,MAAM,EAAE,MAAM,CAAC,MAAM;AACtB,6BAAA;AACD,4BAAA,QAAQ,EAAE;gCACR,CAAC,EAAE,MAAM,CAAC,IAAI;gCACd,CAAC,EAAE,MAAM,CAAC,GAAG;AACd,6BAAA;AACF,yBAAA,CAAC,CAAC;wBAEH,IAAI,CAAC,aAAa,GAAG;4BACnB,OAAO,EAAE,EAAE,CAAC,OAAO;4BACnB,OAAO,EAAE,EAAE,CAAC,OAAO;4BACnB,YAAY;yBACb,CAAC;AAEF,wBAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBACxC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAChC,qBAAA;AACH,iBAAC,CAAC,CAAC;AACJ,aAAA;iBAAM,IAAI,IAAI,CAAC,aAAa,EAAE;AAC7B,gBAAA,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,EAAE;AAC5C,oBAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;AACrF,oBAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;AACtF,iBAAA;AACF,aAAA;AACF,SAAA;KACF;AAED,IAAA,cAAc,CAAC,IAAgB,EAAE,KAA2B,+BAA6B;QACvF,IAAI,IAAI,YAAY,aAAa,EAAE;YACjC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AACnD,SAAA;aAAM,IAAI,IAAI,YAAY,cAAc,EAAE;;AAGzC,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAClD,aAAA;AAED,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACzD,YAAA,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;AAE7E,SAAA;aAAM,IAAI,IAAI,YAAY,cAAc,EAAE;AAIzC,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC;AAC/D,YAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AACvE,gBAAA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;AACpE,aAAA;AAAM,iBAAA;;;;;;;;;;;AAYL,gBAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;AACrE,aAAA;AAKF,SAAA;aAAM,IAAI,IAAI,YAAY,WAAW,EAAE;AACtC,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK;iBACxB,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,aAAa,CAAC;AACvC,iBAAA,GAAG,CAAC,CAAC,IAAmB,CAAC,CAAC;iBAC1B,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC;AAEtC,YAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACvB,gBAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,aAAa,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;AAGtG,gBAAA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;AACpE,aAAA;AAAM,iBAAA;AAGL,gBAAA,KAAK,IAAI,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE;oBAChC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACrD,oBAAA,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,EAAE;;AAE5C,wBAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;AACpD,wBAAA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;AACpE,qBAAA;AACF,iBAAA;AACF,aAAA;AAED,YAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;AACrE,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,mBAAmB,CAAC;AAC3B,SAAA;KACF;AAE6C,IAAA,SAAS,CAAC,EAAS,EAAA;AAC/D,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;KAChC;;uHAvJU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,0BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,+PCpBvC,2BAAyB,EAAA,MAAA,EAAA,CAAA,mKAAA,CAAA,EAAA,CAAA,CAAA;2FDoBZ,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,mKAAA,CAAA,EAAA,CAAA;oLAeO,WAAW,EAAA,CAAA;sBAAjD,YAAY;uBAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAKW,WAAW,EAAA,CAAA;sBAA1D,YAAY;uBAAC,oBAAoB,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAoIA,SAAS,EAAA,CAAA;sBAAtD,YAAY;uBAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAKd,MAAM,EAAA,CAAA;sBAAnC,WAAW;uBAAC,eAAe,CAAA;;;MEzIjB,YAAY,CAAA;;yGAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,iBArBrB,eAAe;QACf,oBAAoB;QACpB,0BAA0B;AAC1B,QAAA,2BAA2B,aAG3B,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,kBAAkB;QAClB,gBAAgB;QAChB,kBAAkB;AAClB,QAAA,iBAAiB,aAGjB,eAAe;QACf,oBAAoB;QACpB,0BAA0B;QAC1B,2BAA2B,CAAA,EAAA,CAAA,CAAA;AAGlB,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,YAfrB,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,kBAAkB;QAClB,gBAAgB;QAChB,kBAAkB;QAClB,iBAAiB,CAAA,EAAA,CAAA,CAAA;2FASR,YAAY,EAAA,UAAA,EAAA,CAAA;kBAvBxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,eAAe;wBACf,oBAAoB;wBACpB,0BAA0B;wBAC1B,2BAA2B;AAC5B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,YAAY;wBACZ,YAAY;wBACZ,kBAAkB;wBAClB,gBAAgB;wBAChB,kBAAkB;wBAClB,iBAAiB;AAClB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,eAAe;wBACf,oBAAoB;wBACpB,0BAA0B;wBAC1B,2BAA2B;AAC5B,qBAAA;AACF,iBAAA,CAAA;;;ACnCD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"mintplayer-ng-bootstrap-dock.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/dock/src/dock-panel/dock-panel.component.ts","../../../../libs/mintplayer-ng-bootstrap/dock/src/dock-panel/dock-panel.component.html","../../../../libs/mintplayer-ng-bootstrap/dock/src/panes/dock-pane.ts","../../../../libs/mintplayer-ng-bootstrap/dock/src/panes/tab-group-pane.ts","../../../../libs/mintplayer-ng-bootstrap/dock/src/panes/document-host-pane.ts","../../../../libs/mintplayer-ng-bootstrap/dock/src/enums/pane-type.enum.ts","../../../../libs/mintplayer-ng-bootstrap/dock/src/panes/split-pane.ts","../../../../libs/mintplayer-ng-bootstrap/dock/src/panes/content-pane.ts","../../../../libs/mintplayer-ng-bootstrap/dock/src/panes/floating-pane.ts","../../../../libs/mintplayer-ng-bootstrap/dock/src/dock-pane-renderer/dock-pane-renderer.component.ts","../../../../libs/mintplayer-ng-bootstrap/dock/src/dock-pane-renderer/dock-pane-renderer.component.html","../../../../libs/mintplayer-ng-bootstrap/dock/src/dock/dock.component.ts","../../../../libs/mintplayer-ng-bootstrap/dock/src/dock/dock.component.html","../../../../libs/mintplayer-ng-bootstrap/dock/src/dock-panel-header/dock-panel-header.component.ts","../../../../libs/mintplayer-ng-bootstrap/dock/src/dock-panel-header/dock-panel-header.component.html","../../../../libs/mintplayer-ng-bootstrap/dock/src/dock.module.ts","../../../../libs/mintplayer-ng-bootstrap/dock/mintplayer-ng-bootstrap-dock.ts"],"sourcesContent":["import { DomPortal } from '@angular/cdk/portal';\nimport { Component, ElementRef, Input, AfterViewInit, ViewChild, Inject, Optional, forwardRef } from '@angular/core';\nimport { BsTabControlComponent } from '@mintplayer/ng-bootstrap/tab-control';\n\n@Component({\n selector: 'bs-dock-panel',\n templateUrl: './dock-panel.component.html',\n styleUrls: ['./dock-panel.component.scss']\n})\nexport class BsDockPanelComponent implements AfterViewInit {\n\n @ViewChild('headerElement') headerElement!: ElementRef<HTMLDivElement>;\n @ViewChild('contentElement') contentElement!: ElementRef<HTMLDivElement>;\n headerPortal?: DomPortal;\n contentPortal?: DomPortal;\n @Input() panelId = '';\n\n ngAfterViewInit() {\n this.headerPortal = new DomPortal(this.headerElement.nativeElement);\n this.contentPortal = new DomPortal(this.contentElement.nativeElement);\n }\n}\n","<!-- <bs-split-panel> -->\n<div #headerElement class=\"dock-header\">\n <ng-content select=\"bs-dock-panel-header\"></ng-content>\n</div>\n<div #contentElement>\n <ng-content></ng-content>\n</div>\n<!-- </bs-split-panel> -->","export abstract class BsDockPane {}","import { BsContentPane } from \"./content-pane\";\nimport { BsDockPane } from \"./dock-pane\";\n\nexport class BsTabGroupPane extends BsDockPane {\n constructor(data?: Partial<BsTabGroupPane>) {\n super();\n Object.assign(this, data);\n }\n\n panes: BsContentPane[] = [];\n}","import { BsDockPane } from \"./dock-pane\";\nimport { BsTabGroupPane } from \"./tab-group-pane\";\n\nexport class BsDocumentHost extends BsDockPane {\n constructor(data?: Partial<BsDocumentHost>) {\n super();\n Object.assign(this, data);\n }\n\n rootPane?: BsTabGroupPane\n}","export enum EPaneType {\n documentHost = 1,\n splitPane = 2,\n contentPane = 3,\n tabGroupPane = 4,\n}","import { SplitPaneOrientation } from \"../types/split-pane-orientation.type\";\nimport { BsDockPane } from \"./dock-pane\";\n\nexport class BsSplitPane extends BsDockPane {\n constructor(data?: Partial<BsSplitPane>) {\n super();\n Object.assign(this, data);\n }\n\n orientation: SplitPaneOrientation = 'horizontal';\n panes: BsDockPane[] = [];\n}","import { BsDockPanelComponent } from \"../dock-panel/dock-panel.component\";\nimport { BsDockPane } from \"./dock-pane\";\n\nexport class BsContentPane extends BsDockPane {\n constructor(data?: Partial<BsContentPane>) {\n super();\n Object.assign(this, data);\n }\n\n dockPanel!: BsDockPanelComponent;\n isPinned?: boolean;\n}","import { BsDockPane } from \"./dock-pane\";\nimport { Point } from \"../interfaces/point\";\nimport { Size } from \"../interfaces/size\";\n\nexport class BsFloatingPane {\n constructor(data?: Partial<BsFloatingPane>) {\n Object.assign(this, data);\n }\n \n pane?: BsDockPane;\n size?: Size;\n location?: Point;\n}","import { Component, ElementRef, HostBinding, Input } from '@angular/core';\nimport { DomPortal } from '@angular/cdk/portal';\nimport { BehaviorSubject, Observable, map } from 'rxjs';\nimport { BsDockPane } from '../panes/dock-pane';\nimport { EPaneType } from '../enums/pane-type.enum';\nimport { BsSplitPane } from '../panes/split-pane';\nimport { BsContentPane } from '../panes/content-pane';\nimport { BsDocumentHost } from '../panes/document-host-pane';\nimport { BsTabGroupPane } from '../panes/tab-group-pane';\nimport { BsFloatingPane } from '../panes/floating-pane';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\n\n@Component({\n selector: 'bs-dock-pane-renderer',\n templateUrl: './dock-pane-renderer.component.html',\n styleUrls: ['./dock-pane-renderer.component.scss']\n})\nexport class BsDockPaneRendererComponent {\n\n constructor(private overlay: Overlay, element: ElementRef) {\n this.portal = new DomPortal(element);\n }\n\n portal: DomPortal;\n\n paneTypes = EPaneType;\n readonly BsDocumentHostType = BsDocumentHost;\n readonly BsTabGroupType = BsTabGroupPane;\n readonly BsSplitterType = BsSplitPane;\n readonly BsContentPaneType = BsContentPane;\n readonly BsFloatingPaneType = BsFloatingPane;\n\n //#region Layout\n layout$ = new BehaviorSubject<BsDockPane | null>(null);\n public get layout() {\n return this.layout$.value;\n }\n @Input() public set layout(value: BsDockPane | null) {\n this.layout$.next(value);\n }\n //#endregion\n\n private overlayRef?: OverlayRef;\n public moveToOverlay() {\n if (!this.overlayRef && !this.portal.isAttached) {\n this.overlayRef = this.overlay.create({});\n this.portal.attach(this.overlayRef);\n }\n }\n\n public disposeOverlay() {\n if (this.overlayRef) {\n this.portal.detach();\n this.overlayRef.dispose();\n this.overlayRef = undefined;\n }\n }\n}\n","<!-- <ng-content></ng-content> -->\n<ng-container [bsInstanceof]=\"layout$ | async\">\n <div *bsInstanceofCase=\"BsDocumentHostType; let documentHost\" data-hello>\n <bs-dock-pane-renderer [layout]=\"documentHost\"></bs-dock-pane-renderer>\n </div>\n <bs-tab-control *bsInstanceofCase=\"BsTabGroupType; let tabGroup\" [allowDragDrop]=\"false\" class=\"d-flex flex-column h-100 dock-tabs\">\n <bs-tab-page *ngFor=\"let tab of tabGroup.panes\">\n <ng-container *bsTabPageHeader>\n <ng-template [cdkPortalOutlet]=\"tab.dockPanel.headerPortal\"></ng-template>\n </ng-container>\n <bs-dock-pane-renderer [layout]=\"tab\"></bs-dock-pane-renderer>\n </bs-tab-page>\n </bs-tab-control>\n <bs-splitter *bsInstanceofCase=\"BsSplitterType; let splitter\" [orientation]=\"splitter.orientation\">\n <bs-split-panel *ngFor=\"let panel of splitter.panes\">\n <bs-dock-pane-renderer [layout]=\"panel\"></bs-dock-pane-renderer>\n </bs-split-panel>\n </bs-splitter>\n <ng-container *bsInstanceofCase=\"BsContentPaneType; let content\">\n <ng-template [cdkPortalOutlet]=\"content.dockPanel.contentPortal\"></ng-template>\n </ng-container>\n <ng-container *bsInstanceofCase=\"BsFloatingPaneType; let floating\">\n <bs-resizable *ngIf=\"floating.pane\" [positioning]=\"'absolute'\" [presetPosition]=\"{ left: floating.location?.x ?? 0, top: floating.location?.y ?? 0, width: floating.size?.width ?? 200, height: floating.size?.height ?? 100 }\">\n <bs-dock-pane-renderer [layout]=\"floating.pane\"></bs-dock-pane-renderer>\n </bs-resizable>\n </ng-container>\n <div *bsInstanceofDefault>\n No match\n </div>\n</ng-container>","import { Component, ContentChildren, ViewChildren, Input, OnDestroy, QueryList, HostBinding } from '@angular/core';\nimport { BehaviorSubject, combineLatest, combineLatestAll, Subject, takeUntil } from 'rxjs';\nimport { BsDockPanelComponent } from '../dock-panel/dock-panel.component';\nimport { EPaneType } from '../enums/pane-type.enum';\nimport { BsDockLayout } from '../interfaces/dock-layout';\nimport { BsTabGroupPane } from '../panes/tab-group-pane';\nimport { BsDocumentHost } from '../panes/document-host-pane';\nimport { BsDockPaneRendererComponent } from '../dock-pane-renderer/dock-pane-renderer.component';\nimport { Overlay } from '@angular/cdk/overlay';\n\n@Component({\n selector: 'bs-dock',\n templateUrl: './dock.component.html',\n styleUrls: ['./dock.component.scss']\n})\nexport class BsDockComponent implements OnDestroy {\n constructor() {\n const tabs = new BsTabGroupPane();\n const docHost = new BsDocumentHost();\n docHost.rootPane = tabs;\n\n this.layout$ = new BehaviorSubject<BsDockLayout>({\n rootPane: docHost,\n floatingPanes: []\n });\n\n // combineLatest([this.layout$, this.panels$])\n // .pipe(takeUntil(this.destroyed$))\n // .subscribe(([layout, panels]) => {\n \n // })\n\n this.floating$.pipe(takeUntil(this.destroyed$))\n .subscribe((floating) => {\n floating.forEach((panel) => panel.moveToOverlay());\n });\n }\n\n //#region Panels\n panels$ = new BehaviorSubject<BsDockPanelComponent[]>([]);\n @ContentChildren(BsDockPanelComponent) set panels(value: QueryList<BsDockPanelComponent>) {\n this.panels$.next(value.toArray());\n }\n //#endregion\n //#region Layout\n layout$: BehaviorSubject<BsDockLayout>;\n public get layout() {\n return this.layout$.value;\n }\n @Input() public set layout(value: BsDockLayout) {\n this.layout$.next(value);\n }\n //#endregion\n\n floating$ = new BehaviorSubject<BsDockPaneRendererComponent[]>([]);\n @ViewChildren('floating') set floatingPanes(value: QueryList<BsDockPaneRendererComponent>) {\n this.floating$.next(value.toArray());\n }\n\n @HostBinding('class.position-absolute')\n positionAbsolute = true;\n\n @HostBinding('style.top')\n @HostBinding('style.left')\n @HostBinding('style.bottom')\n @HostBinding('style.right')\n positionPx = 0;\n\n destroyed$ = new Subject();\n ngOnDestroy() {\n this.destroyed$.next(true);\n this.floating$.value.forEach(panel => panel.disposeOverlay());\n }\n}\n","<ng-content></ng-content>\n<ng-container *ngIf=\"(layout$ | async) as layout\">\n <bs-dock-pane-renderer [layout]=\"layout.rootPane\"></bs-dock-pane-renderer>\n\n <ng-container *ngFor=\"let pane of layout.floatingPanes\">\n <bs-dock-pane-renderer #floating *ngIf=\"pane.pane\" [layout]=\"pane\"></bs-dock-pane-renderer>\n </ng-container>\n</ng-container>\n<!-- <bs-splitter>\n <ng-content></ng-content>\n <ng-container *ngFor=\"let panel of (panels$ | async)\">\n <bs-split-panel>\n <ng-template [cdkPortalOutlet]=\"panel.portal\"></ng-template>\n </bs-split-panel>\n </ng-container>\n</bs-splitter> -->\n","import { Component, ElementRef, HostBinding, HostListener, Inject, Optional, forwardRef } from '@angular/core';\nimport { take } from 'rxjs';\nimport { BsTabControlComponent } from '@mintplayer/ng-bootstrap/tab-control';\nimport { BsDockPanelComponent } from '../dock-panel/dock-panel.component';\nimport { BsDockComponent } from '../dock/dock.component';\nimport { BsDockPane } from '../panes/dock-pane';\nimport { BsSplitPane } from '../panes/split-pane';\nimport { BsContentPane } from '../panes/content-pane';\nimport { BsFloatingPane } from '../panes/floating-pane';\nimport { BsTabGroupPane } from '../panes/tab-group-pane';\nimport { BsDocumentHost } from '../panes/document-host-pane';\nimport { RemoveFromPaneResult } from '../interfaces/remove-from-pane-result';\nimport { DragOperation } from '../interfaces/drag-operation';\n\n@Component({\n selector: 'bs-dock-panel-header',\n templateUrl: './dock-panel-header.component.html',\n styleUrls: ['./dock-panel-header.component.scss']\n})\nexport class BsDockPanelHeaderComponent {\n constructor(private dockPanel: BsDockPanelComponent, private dock: BsDockComponent, private element: ElementRef<HTMLElement>) {}\n\n isMouseDown = false;\n dragOperation?: DragOperation;\n isLayoutDetached = false;\n @HostListener('mousedown', ['$event']) onMouseDown(ev: MouseEvent) {\n ev.preventDefault();\n this.isMouseDown = true;\n }\n\n @HostListener('document:mousemove', ['$event']) onMouseMove(ev: MouseEvent) {\n if (this.isMouseDown) {\n if (!this.isLayoutDetached) {\n this.isLayoutDetached = true;\n this.dock.layout$.pipe(take(1)).subscribe((layout) => {\n\n let element: HTMLElement | null = this.element.nativeElement;\n let tree: HTMLElement[] = [];\n do {\n tree.push(element!);\n element = element!.parentElement;\n } while (element);\n\n const tabControls = tree.filter(el => el.tagName.toUpperCase() === 'BS-TAB-CONTROL');\n if (tabControls.length > 0) {\n const coords = {\n width: tabControls[0].clientWidth,\n height: tabControls[0].clientHeight,\n left: ev.clientX - ev.offsetX,\n top: ev.clientY - ev.offsetY,\n };\n\n this.dockPanel.headerPortal?.isAttached && this.dockPanel.headerPortal?.detach();\n this.dockPanel.contentPortal?.isAttached && this.dockPanel.contentPortal?.detach();\n this.removeFromPane(layout.rootPane, this.dockPanel);\n\n const floatingPane = new BsFloatingPane({\n pane: new BsTabGroupPane({\n panes: [\n new BsContentPane({\n dockPanel: this.dockPanel\n })\n ]\n }),\n size: {\n width: coords.width,\n height: coords.height,\n },\n location: {\n x: coords.left,\n y: coords.top,\n }\n });\n \n this.dragOperation = {\n offsetX: ev.offsetX,\n offsetY: ev.offsetY,\n floatingPane\n };\n\n layout.floatingPanes.push(floatingPane);\n this.dock.layout$.next(layout);\n }\n });\n } else if (this.dragOperation) {\n if (this.dragOperation.floatingPane.location) {\n this.dragOperation.floatingPane.location.x = ev.clientX - this.dragOperation.offsetX;\n this.dragOperation.floatingPane.location.y = ev.clientY - this.dragOperation.offsetY;\n }\n }\n }\n }\n\n removeFromPane(host: BsDockPane, panel: BsDockPanelComponent /*, parents: BsDockPane[] */): RemoveFromPaneResult {\n if (host instanceof BsContentPane) {\n return { paneRemoved: false, hostIsEmpty: false };\n } else if (host instanceof BsDocumentHost) {\n // Actually documentHost should never be removed\n\n if (!host.rootPane) {\n return { paneRemoved: false, hostIsEmpty: true };\n }\n\n const result = this.removeFromPane(host.rootPane, panel);\n return { paneRemoved: result.paneRemoved, hostIsEmpty: result.hostIsEmpty };\n\n } else if (host instanceof BsTabGroupPane) {\n\n\n\n const matching = host.panes.filter(p => p.dockPanel === panel);\n if (matching.length > 0) {\n host.panes.splice(host.panes.findIndex(p => p.dockPanel === panel), 1);\n return { paneRemoved: true, hostIsEmpty: host.panes.length === 0 };\n } else {\n // ATM. all panes are ContentPanes anyway.\n // So unless you'd want to have splitters inside the tabs,\n // This code will not be hit.\n\n // const result = host.panes\n // .map(parentPane => this.removeFromPane(parentPane, panel))\n // .filter(r => r.paneRemoved);\n //\n // if (result.length > 0) {\n // return { paneRemoved: true, hostIsEmpty: }\n // }\n return { paneRemoved: false, hostIsEmpty: host.panes.length === 0 };\n }\n\n\n\n\n } else if (host instanceof BsSplitPane) {\n const matching = host.panes\n .filter(p => p instanceof BsContentPane)\n .map(p => <BsContentPane>p)\n .filter(p => p.dockPanel === panel);\n \n if (matching.length > 0) {\n host.panes.splice(host.panes.findIndex(p => (p instanceof BsContentPane) && matching.includes(p)), 1);\n\n // TODO: Remove splitter if only 1 pane left?\n return { paneRemoved: true, hostIsEmpty: host.panes.length === 0 };\n } else {\n\n\n for (let splitPane of host.panes) {\n const result = this.removeFromPane(splitPane, panel);\n if (result.paneRemoved && result.hostIsEmpty) {\n // splitPane is empty now, so we can remove it from this splitter\n host.panes.splice(host.panes.indexOf(splitPane), 1);\n return { paneRemoved: true, hostIsEmpty: host.panes.length === 0 };\n }\n }\n }\n\n return { paneRemoved: false, hostIsEmpty: host.panes.length === 0 };\n } else {\n throw 'unknown host type';\n }\n }\n\n @HostListener('document:mouseup', ['$event']) onMouseUp(ev: Event) {\n this.isMouseDown = false;\n this.dragOperation = undefined;\n }\n\n @HostBinding('class.d-block') dBlock = true;\n}\n","<ng-content></ng-content>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { BsCardModule } from '@mintplayer/ng-bootstrap/card';\nimport { BsSplitterModule } from '@mintplayer/ng-bootstrap/splitter';\nimport { BsResizableModule } from '@mintplayer/ng-bootstrap/resizable';\nimport { BsTabControlModule } from '@mintplayer/ng-bootstrap/tab-control';\nimport { BsInstanceOfModule } from '@mintplayer/ng-bootstrap/instance-of';\nimport { BsDockComponent } from './dock/dock.component';\nimport { BsDockPanelComponent } from './dock-panel/dock-panel.component';\nimport { BsDockPanelHeaderComponent } from './dock-panel-header/dock-panel-header.component';\nimport { BsDockPaneRendererComponent } from './dock-pane-renderer/dock-pane-renderer.component';\n\n@NgModule({\n declarations: [\n BsDockComponent,\n BsDockPanelComponent,\n BsDockPanelHeaderComponent,\n BsDockPaneRendererComponent\n ],\n imports: [\n CommonModule,\n PortalModule,\n BsCardModule,\n BsInstanceOfModule,\n BsSplitterModule,\n BsTabControlModule,\n BsResizableModule\n ],\n exports: [\n BsDockComponent,\n BsDockPanelComponent,\n BsDockPanelHeaderComponent,\n BsDockPaneRendererComponent\n ]\n})\nexport class BsDockModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.BsDockPaneRendererComponent","i1.BsDockPanelComponent","i2.BsDockComponent"],"mappings":"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"}
|
|
@@ -117,6 +117,11 @@ class BsTabControlComponent {
|
|
|
117
117
|
}
|
|
118
118
|
return false;
|
|
119
119
|
}
|
|
120
|
+
startDragTab(ev) {
|
|
121
|
+
if ('vibrate' in navigator) {
|
|
122
|
+
navigator.vibrate([30]);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
120
125
|
moveTab(ev) {
|
|
121
126
|
if (ev.previousContainer === ev.container) {
|
|
122
127
|
moveItemInArray(this.orderedTabPages, ev.previousIndex, ev.currentIndex);
|
|
@@ -137,12 +142,12 @@ BsTabControlComponent.tabControlCounter = 0;
|
|
|
137
142
|
BsTabControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsTabControlComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
138
143
|
BsTabControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: BsTabControlComponent, selector: "bs-tab-control", inputs: { border: "border", restrictDragging: "restrictDragging", selectFirstTab: "selectFirstTab", tabsPosition: "tabsPosition", allowDragDrop: "allowDragDrop" }, host: { properties: { "class.d-block": "this.dBlock", "class.position-relative": "this.positionRelative" } }, providers: [
|
|
139
144
|
{ provide: 'TAB_CONTROL', useExisting: BsTabControlComponent }
|
|
140
|
-
], queries: [{ propertyName: "setTabPages", predicate: BsTabPageComponent }], ngImport: i0, template: "<ng-container *bsLet=\"(activeTab$ | async) as activeTab\">\n\t<div class=\"overflow-hidden mw-100 tsc\" *ngIf=\"topTabs$ | async\">\n\t\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t\t[cdkDropListData]=\"tabPages$ | async\"\n\t\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\t\t[cdkDropListDisabled]=\"disableDragDrop$ | async\"\n\t\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t\t<ng-container *ngFor=\"let tab of orderedTabPages\">\n\t\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" *ngIf=\"!!tab.headerTemplate\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector\" [cdkDragStartDelay]=\"
|
|
145
|
+
], queries: [{ propertyName: "setTabPages", predicate: BsTabPageComponent }], ngImport: i0, template: "<ng-container *bsLet=\"(activeTab$ | async) as activeTab\">\n\t<div class=\"overflow-hidden mw-100 tsc\" *ngIf=\"topTabs$ | async\">\n\t\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t\t[cdkDropListData]=\"tabPages$ | async\"\n\t\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\t\t[cdkDropListDisabled]=\"disableDragDrop$ | async\"\n\t\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t\t<ng-container *ngFor=\"let tab of orderedTabPages\">\n\t\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" *ngIf=\"!!tab.headerTemplate\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector\" [cdkDragStartDelay]=\"500\" (cdkDragStarted)=\"startDragTab($event)\">\n\t\t\t\t\t<label [for]=\"tab.tabName$ | async\" class=\"nav-link text-nowrap cursor-pointer\" [class.active]=\"activeTab === tab\" [class.disabled]=\"tab.disabled\" [attr.aria-current]=\"activeTab === tab ? 'page' : null\" [attr.aria-disabled]=\"tab.disabled\">\n\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.headerTemplate.template\"></ng-container>\n\t\t\t\t\t</label>\n\t\t\t\t</span>\n\t\t\t</ng-container>\n\t\t</ul>\n\t</div>\n\t<div class=\"tab-content flex-grow-1 overflow-auto\" bsNoNoscript [class.border]=\"border && activeTab\" [class.border-top]=\"border && !activeTab\">\n\t\t<ng-content></ng-content>\n\t</div>\n\t<div class=\"overflow-hidden mw-100 tsc bottom-tabs\" *ngIf=\"bottomTabs$ | async\">\n\t\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t\t[cdkDropListData]=\"tabPages$ | async\"\n\t\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\t\t[cdkDropListDisabled]=\"disableDragDrop$ | async\"\n\t\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t\t<ng-container *ngFor=\"let tab of orderedTabPages\">\n\t\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" *ngIf=\"!!tab.headerTemplate\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector\" [cdkDragStartDelay]=\"500\" (cdkDragStarted)=\"startDragTab($event)\">\n\t\t\t\t\t<label [for]=\"tab.tabName$ | async\" class=\"nav-link text-nowrap cursor-pointer\" [class.active]=\"activeTab === tab\" [class.disabled]=\"tab.disabled\" [attr.aria-current]=\"activeTab === tab ? 'page' : null\" [attr.aria-disabled]=\"tab.disabled\">\n\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.headerTemplate.template\"></ng-container>\n\t\t\t\t\t</label>\n\t\t\t\t</span>\n\t\t\t</ng-container>\n\t\t</ul>\n\t</div>\n</ng-container>", styles: [":host ::ng-deep .nav{--bs-nav-link-padding-x: 1rem;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-link-color);--bs-nav-link-hover-color: var(--bs-link-hover-color);--bs-nav-link-disabled-color: #6c757d;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}:host ::ng-deep .nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion: reduce){:host ::ng-deep .nav-link{transition:none}}:host ::ng-deep .nav-link:hover,:host ::ng-deep .nav-link:focus{color:var(--bs-nav-link-hover-color)}:host ::ng-deep .nav-link.disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}:host ::ng-deep .nav-tabs{--bs-nav-tabs-border-width: 1px;--bs-nav-tabs-border-color: #dee2e6;--bs-nav-tabs-border-radius: .375rem;--bs-nav-tabs-link-hover-border-color: #e9ecef #e9ecef #dee2e6;--bs-nav-tabs-link-active-color: #495057;--bs-nav-tabs-link-active-bg: #fff;--bs-nav-tabs-link-active-border-color: #dee2e6 #dee2e6 #fff;border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}:host ::ng-deep .nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));background:none;border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}:host ::ng-deep .nav-tabs .nav-link:hover,:host ::ng-deep .nav-tabs .nav-link:focus{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}:host ::ng-deep .nav-tabs .nav-link.disabled,:host ::ng-deep .nav-tabs .nav-link:disabled{color:var(--bs-nav-link-disabled-color);background-color:transparent;border-color:transparent}:host ::ng-deep .nav-tabs .nav-link.active,:host ::ng-deep .nav-tabs .nav-item.show .nav-link{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}:host ::ng-deep .nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}:host ::ng-deep .nav-pills{--bs-nav-pills-border-radius: .375rem;--bs-nav-pills-link-active-color: #fff;--bs-nav-pills-link-active-bg: #0d6efd}:host ::ng-deep .nav-pills .nav-link{background:none;border:0;border-radius:var(--bs-nav-pills-border-radius)}:host ::ng-deep .nav-pills .nav-link:disabled{color:var(--bs-nav-link-disabled-color);background-color:transparent;border-color:transparent}:host ::ng-deep .nav-pills .nav-link.active,:host ::ng-deep .nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}:host ::ng-deep .nav-fill>.nav-link,:host ::ng-deep .nav-fill .nav-item{flex:1 1 auto;text-align:center}:host ::ng-deep .nav-justified>.nav-link,:host ::ng-deep .nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}:host ::ng-deep .nav-fill .nav-item .nav-link,:host ::ng-deep .nav-justified .nav-item .nav-link{width:100%}:host ::ng-deep .tab-content>.tab-pane{display:none}:host ::ng-deep .tab-content>.active{display:block}:host ::ng-deep .tab-content{margin-top:-1px}.tsc{max-height:41px;top:2px;z-index:10;flex-shrink:0}.tsc .nav.nav-tabs{border-bottom:0}.tsc.bottom-tabs{margin-top:-1px}.tsc.bottom-tabs .nav.nav-tabs{border-bottom-width:0px}.tsc.bottom-tabs .nav.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.tsc.bottom-tabs .nav.nav-tabs .nav-item{margin-bottom:2px;margin-top:-1px}.tsc.bottom-tabs .nav.nav-tabs .nav-item.show .nav-link,.tsc.bottom-tabs .nav.nav-tabs .nav-link.active{border-color:#fff #dee2e6 #dee2e6 #dee2e6}.tab-content.noscript::ng-deep>bs-tab-page>.tab-page-content{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important;margin-top:-1px}.overflow-y-hidden{overflow-y:hidden}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$1.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2$1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i3.BsLetDirective, selector: "[bsLet]", inputs: ["bsLet"] }, { kind: "directive", type: i2.BsNoNoscriptDirective, selector: "[bsNoNoscript]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
|
|
141
146
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsTabControlComponent, decorators: [{
|
|
142
147
|
type: Component,
|
|
143
148
|
args: [{ selector: 'bs-tab-control', providers: [
|
|
144
149
|
{ provide: 'TAB_CONTROL', useExisting: BsTabControlComponent }
|
|
145
|
-
], template: "<ng-container *bsLet=\"(activeTab$ | async) as activeTab\">\n\t<div class=\"overflow-hidden mw-100 tsc\" *ngIf=\"topTabs$ | async\">\n\t\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t\t[cdkDropListData]=\"tabPages$ | async\"\n\t\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\t\t[cdkDropListDisabled]=\"disableDragDrop$ | async\"\n\t\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t\t<ng-container *ngFor=\"let tab of orderedTabPages\">\n\t\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" *ngIf=\"!!tab.headerTemplate\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector\" [cdkDragStartDelay]=\"
|
|
150
|
+
], template: "<ng-container *bsLet=\"(activeTab$ | async) as activeTab\">\n\t<div class=\"overflow-hidden mw-100 tsc\" *ngIf=\"topTabs$ | async\">\n\t\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t\t[cdkDropListData]=\"tabPages$ | async\"\n\t\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\t\t[cdkDropListDisabled]=\"disableDragDrop$ | async\"\n\t\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t\t<ng-container *ngFor=\"let tab of orderedTabPages\">\n\t\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" *ngIf=\"!!tab.headerTemplate\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector\" [cdkDragStartDelay]=\"500\" (cdkDragStarted)=\"startDragTab($event)\">\n\t\t\t\t\t<label [for]=\"tab.tabName$ | async\" class=\"nav-link text-nowrap cursor-pointer\" [class.active]=\"activeTab === tab\" [class.disabled]=\"tab.disabled\" [attr.aria-current]=\"activeTab === tab ? 'page' : null\" [attr.aria-disabled]=\"tab.disabled\">\n\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.headerTemplate.template\"></ng-container>\n\t\t\t\t\t</label>\n\t\t\t\t</span>\n\t\t\t</ng-container>\n\t\t</ul>\n\t</div>\n\t<div class=\"tab-content flex-grow-1 overflow-auto\" bsNoNoscript [class.border]=\"border && activeTab\" [class.border-top]=\"border && !activeTab\">\n\t\t<ng-content></ng-content>\n\t</div>\n\t<div class=\"overflow-hidden mw-100 tsc bottom-tabs\" *ngIf=\"bottomTabs$ | async\">\n\t\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t\t[cdkDropListData]=\"tabPages$ | async\"\n\t\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\t\t[cdkDropListDisabled]=\"disableDragDrop$ | async\"\n\t\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t\t<ng-container *ngFor=\"let tab of orderedTabPages\">\n\t\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" *ngIf=\"!!tab.headerTemplate\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector\" [cdkDragStartDelay]=\"500\" (cdkDragStarted)=\"startDragTab($event)\">\n\t\t\t\t\t<label [for]=\"tab.tabName$ | async\" class=\"nav-link text-nowrap cursor-pointer\" [class.active]=\"activeTab === tab\" [class.disabled]=\"tab.disabled\" [attr.aria-current]=\"activeTab === tab ? 'page' : null\" [attr.aria-disabled]=\"tab.disabled\">\n\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.headerTemplate.template\"></ng-container>\n\t\t\t\t\t</label>\n\t\t\t\t</span>\n\t\t\t</ng-container>\n\t\t</ul>\n\t</div>\n</ng-container>", styles: [":host ::ng-deep .nav{--bs-nav-link-padding-x: 1rem;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-link-color);--bs-nav-link-hover-color: var(--bs-link-hover-color);--bs-nav-link-disabled-color: #6c757d;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}:host ::ng-deep .nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion: reduce){:host ::ng-deep .nav-link{transition:none}}:host ::ng-deep .nav-link:hover,:host ::ng-deep .nav-link:focus{color:var(--bs-nav-link-hover-color)}:host ::ng-deep .nav-link.disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}:host ::ng-deep .nav-tabs{--bs-nav-tabs-border-width: 1px;--bs-nav-tabs-border-color: #dee2e6;--bs-nav-tabs-border-radius: .375rem;--bs-nav-tabs-link-hover-border-color: #e9ecef #e9ecef #dee2e6;--bs-nav-tabs-link-active-color: #495057;--bs-nav-tabs-link-active-bg: #fff;--bs-nav-tabs-link-active-border-color: #dee2e6 #dee2e6 #fff;border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}:host ::ng-deep .nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));background:none;border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}:host ::ng-deep .nav-tabs .nav-link:hover,:host ::ng-deep .nav-tabs .nav-link:focus{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}:host ::ng-deep .nav-tabs .nav-link.disabled,:host ::ng-deep .nav-tabs .nav-link:disabled{color:var(--bs-nav-link-disabled-color);background-color:transparent;border-color:transparent}:host ::ng-deep .nav-tabs .nav-link.active,:host ::ng-deep .nav-tabs .nav-item.show .nav-link{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}:host ::ng-deep .nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}:host ::ng-deep .nav-pills{--bs-nav-pills-border-radius: .375rem;--bs-nav-pills-link-active-color: #fff;--bs-nav-pills-link-active-bg: #0d6efd}:host ::ng-deep .nav-pills .nav-link{background:none;border:0;border-radius:var(--bs-nav-pills-border-radius)}:host ::ng-deep .nav-pills .nav-link:disabled{color:var(--bs-nav-link-disabled-color);background-color:transparent;border-color:transparent}:host ::ng-deep .nav-pills .nav-link.active,:host ::ng-deep .nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}:host ::ng-deep .nav-fill>.nav-link,:host ::ng-deep .nav-fill .nav-item{flex:1 1 auto;text-align:center}:host ::ng-deep .nav-justified>.nav-link,:host ::ng-deep .nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}:host ::ng-deep .nav-fill .nav-item .nav-link,:host ::ng-deep .nav-justified .nav-item .nav-link{width:100%}:host ::ng-deep .tab-content>.tab-pane{display:none}:host ::ng-deep .tab-content>.active{display:block}:host ::ng-deep .tab-content{margin-top:-1px}.tsc{max-height:41px;top:2px;z-index:10;flex-shrink:0}.tsc .nav.nav-tabs{border-bottom:0}.tsc.bottom-tabs{margin-top:-1px}.tsc.bottom-tabs .nav.nav-tabs{border-bottom-width:0px}.tsc.bottom-tabs .nav.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.tsc.bottom-tabs .nav.nav-tabs .nav-item{margin-bottom:2px;margin-top:-1px}.tsc.bottom-tabs .nav.nav-tabs .nav-item.show .nav-link,.tsc.bottom-tabs .nav.nav-tabs .nav-link.active{border-color:#fff #dee2e6 #dee2e6 #dee2e6}.tab-content.noscript::ng-deep>bs-tab-page>.tab-page-content{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important;margin-top:-1px}.overflow-y-hidden{overflow-y:hidden}\n"] }]
|
|
146
151
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { dBlock: [{
|
|
147
152
|
type: HostBinding,
|
|
148
153
|
args: ['class.d-block']
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mintplayer-ng-bootstrap-tab-control.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-page-header/tab-page-header.directive.ts","../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-page/tab-page.component.ts","../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-page/tab-page.component.html","../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-control/tab-control.component.ts","../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-control/tab-control.component.html","../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-control.module.ts","../../../../libs/mintplayer-ng-bootstrap/tab-control/mintplayer-ng-bootstrap-tab-control.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[bsTabPageHeader]'\n})\nexport class BsTabPageHeaderDirective {\n\n constructor(public template: TemplateRef<any>) {}\n\n}\n","import { Component, ContentChild, TemplateRef, Input, ElementRef } from '@angular/core';\nimport { BehaviorSubject, combineLatest, map, Observable } from 'rxjs';\nimport { BsTabControlComponent } from '../tab-control/tab-control.component';\nimport { BsTabPageHeaderDirective } from '../tab-page-header/tab-page-header.directive';\n\n@Component({\n selector: 'bs-tab-page',\n templateUrl: './tab-page.component.html',\n styleUrls: ['./tab-page.component.scss']\n})\nexport class BsTabPageComponent {\n\n constructor(tabControl: BsTabControlComponent, element: ElementRef<any>) {\n this.element = element;\n this.tabControl = tabControl;\n this.tabId$ = new BehaviorSubject<number>(++this.tabControl.tabCounter);\n this.tabName$ = combineLatest([this.tabControl.tabControlName$, this.tabId$])\n .pipe(map(([tabControlName, tabId]) => `${tabControlName}-${tabId}`));\n }\n\n element: ElementRef<any>;\n tabControl: BsTabControlComponent;\n tabId$: BehaviorSubject<number>;\n tabName$: Observable<string>;\n\n @Input() disabled = false;\n @ContentChild(BsTabPageHeaderDirective) headerTemplate!: BsTabPageHeaderDirective;\n\n}\n","<input type=\"radio\" bsNoNoscript class=\"d-none\" [name]=\"tabControl.tabControlName$ | async\" [id]=\"tabName$ | async\">\n<div class=\"tab-page-content\" [class.d-block]=\"(tabControl.activeTab$ | async) === this\">\n <ng-content></ng-content>\n</div>","import { CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport { Component, ContentChildren, ElementRef, HostBinding, Input, OnDestroy, QueryList, Renderer2 } from '@angular/core';\nimport { BehaviorSubject, combineLatest, filter, map, Observable, Subject, takeUntil } from 'rxjs';\nimport { BsTabPageComponent } from '../tab-page/tab-page.component';\nimport { BsTabsPosition } from '../tabs-position';\n\n@Component({\n selector: 'bs-tab-control',\n templateUrl: './tab-control.component.html',\n styleUrls: ['./tab-control.component.scss'],\n providers: [\n { provide: 'TAB_CONTROL', useExisting: BsTabControlComponent }\n ]\n})\nexport class BsTabControlComponent implements OnDestroy {\n\n constructor(element: ElementRef<any>) {\n this.tabControlId$ = new BehaviorSubject<number>(++BsTabControlComponent.tabControlCounter);\n this.tabControlName$ = this.tabControlId$.pipe(map((id) => `bs-tab-control-${id}`));\n this.element = element;\n combineLatest([this.tabPages$, this.activeTab$, this.selectFirstTab$])\n .pipe(filter(([tabPages, activeTab, selectFirstTab]) => {\n return !!tabPages && (!activeTab || !tabPages.some(tp => tp === activeTab)) && selectFirstTab;\n }))\n .pipe(takeUntil(this.destroyed$))\n .subscribe(([tabPages, activeTab, selectFirstTab]) => {\n const notDisabled = tabPages!.filter((tp) => !tp.disabled);\n if (notDisabled.length > 0) {\n setTimeout(() => this.activeTab$.next(notDisabled[0]));\n }\n });\n this.topTabs$ = this.tabsPosition$.pipe(map(position => position === 'top'));\n this.bottomTabs$ = this.tabsPosition$.pipe(map(position => position === 'bottom'));\n this.disableDragDrop$ = this.allowDragDrop$.pipe(map(allow => !allow));\n }\n\n @HostBinding('class.d-block') dBlock = true;\n @HostBinding('class.position-relative') positionRelative = true;\n @ContentChildren(BsTabPageComponent) set setTabPages(value: QueryList<BsTabPageComponent>) {\n this.tabPages$.next(value);\n const list = value.toArray();\n const toAdd = value.filter(tp => !this.orderedTabPages.includes(tp));\n this.orderedTabPages = this.orderedTabPages.concat(toAdd).filter((tp) => list.includes(tp));\n }\n @Input() public border = true;\n @Input() public set restrictDragging(value: boolean) {\n this.dragBoundarySelector = value ? 'ul' : '';\n }\n dragBoundarySelector = '';\n element: ElementRef<any>;\n tabPages$ = new BehaviorSubject<QueryList<BsTabPageComponent> | null>(null);\n activeTab$ = new BehaviorSubject<BsTabPageComponent | null>(null);\n orderedTabPages: BsTabPageComponent[] = [];\n tabControlId$: BehaviorSubject<number>;\n tabControlName$: Observable<string>;\n topTabs$: Observable<boolean>;\n bottomTabs$: Observable<boolean>;\n disableDragDrop$: Observable<boolean>;\n static tabControlCounter = 0;\n tabCounter = 0;\n destroyed$ = new Subject()\n\n //#region SelectFirstTab\n selectFirstTab$ = new BehaviorSubject<boolean>(true);\n public get selectFirstTab() {\n return this.selectFirstTab$.value;\n }\n @Input() public set selectFirstTab(value: boolean) {\n this.selectFirstTab$.next(value);\n }\n //#endregion\n //#region TabsPosition\n tabsPosition$ = new BehaviorSubject<BsTabsPosition>('top');\n public get tabsPosition() {\n return this.tabsPosition$.value;\n }\n @Input() public set tabsPosition(value: BsTabsPosition) {\n this.tabsPosition$.next(value);\n }\n //#endregion\n //#region AllowDragDrop\n allowDragDrop$ = new BehaviorSubject<boolean>(false);\n public get allowDragDrop() {\n return this.allowDragDrop$.value;\n }\n @Input() public set allowDragDrop(value: boolean) {\n this.allowDragDrop$.next(value);\n }\n //#endregion\n\n setActiveTab(tab: BsTabPageComponent) {\n if (!tab.disabled) {\n this.activeTab$.next(tab);\n }\n return false;\n }\n\n moveTab(ev: CdkDragDrop<QueryList<BsTabPageComponent> | null>) {\n if (ev.previousContainer === ev.container) {\n moveItemInArray(\n this.orderedTabPages,\n ev.previousIndex, \n ev.currentIndex);\n } else {\n // transferArrayItem(\n // ev.previousContainer.data,\n // ev.container.data,\n // ev.previousIndex,\n // ev.currentIndex);\n }\n }\n\n ngOnDestroy() {\n this.destroyed$.next(true);\n }\n\n}\n","<ng-container *bsLet=\"(activeTab$ | async) as activeTab\">\n\t<div class=\"overflow-hidden mw-100 tsc\" *ngIf=\"topTabs$ | async\">\n\t\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t\t[cdkDropListData]=\"tabPages$ | async\"\n\t\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\t\t[cdkDropListDisabled]=\"disableDragDrop$ | async\"\n\t\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t\t<ng-container *ngFor=\"let tab of orderedTabPages\">\n\t\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" *ngIf=\"!!tab.headerTemplate\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector\" [cdkDragStartDelay]=\"1000\">\n\t\t\t\t\t<label [for]=\"tab.tabName$ | async\" class=\"nav-link text-nowrap cursor-pointer\" [class.active]=\"activeTab === tab\" [class.disabled]=\"tab.disabled\" [attr.aria-current]=\"activeTab === tab ? 'page' : null\" [attr.aria-disabled]=\"tab.disabled\">\n\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.headerTemplate.template\"></ng-container>\n\t\t\t\t\t</label>\n\t\t\t\t</span>\n\t\t\t</ng-container>\n\t\t</ul>\n\t</div>\n\t<div class=\"tab-content flex-grow-1 overflow-auto\" bsNoNoscript [class.border]=\"border && activeTab\" [class.border-top]=\"border && !activeTab\">\n\t\t<ng-content></ng-content>\n\t</div>\n\t<div class=\"overflow-hidden mw-100 tsc bottom-tabs\" *ngIf=\"bottomTabs$ | async\">\n\t\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t\t[cdkDropListData]=\"tabPages$ | async\"\n\t\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\t\t[cdkDropListDisabled]=\"disableDragDrop$ | async\"\n\t\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t\t<ng-container *ngFor=\"let tab of orderedTabPages\">\n\t\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" *ngIf=\"!!tab.headerTemplate\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector\" [cdkDragStartDelay]=\"1000\">\n\t\t\t\t\t<label [for]=\"tab.tabName$ | async\" class=\"nav-link text-nowrap cursor-pointer\" [class.active]=\"activeTab === tab\" [class.disabled]=\"tab.disabled\" [attr.aria-current]=\"activeTab === tab ? 'page' : null\" [attr.aria-disabled]=\"tab.disabled\">\n\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.headerTemplate.template\"></ng-container>\n\t\t\t\t\t</label>\n\t\t\t\t</span>\n\t\t\t</ng-container>\n\t\t</ul>\n\t</div>\n</ng-container>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { BsLetModule } from '@mintplayer/ng-bootstrap/let';\nimport { BsNoNoscriptModule } from '@mintplayer/ng-bootstrap/no-noscript';\nimport { BsTabControlComponent } from './tab-control/tab-control.component';\nimport { BsTabPageComponent } from './tab-page/tab-page.component';\nimport { BsTabPageHeaderDirective } from './tab-page-header/tab-page-header.directive';\n\n@NgModule({\n declarations: [\n BsTabControlComponent,\n BsTabPageComponent,\n BsTabPageHeaderDirective,\n ],\n imports: [\n CommonModule,\n DragDropModule,\n BsLetModule,\n BsNoNoscriptModule\n ],\n exports: [\n BsTabControlComponent,\n BsTabPageComponent,\n BsTabPageHeaderDirective,\n ]\n})\nexport class BsTabControlModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsTabControlComponent","i3","i2","i4"],"mappings":";;;;;;;;;;;;MAKa,wBAAwB,CAAA;AAEnC,IAAA,WAAA,CAAmB,QAA0B,EAAA;QAA1B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAkB;KAAI;;qHAFtC,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;yGAAxB,wBAAwB,EAAA,QAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC9B,iBAAA,CAAA;;;MCMY,kBAAkB,CAAA;IAE7B,WAAY,CAAA,UAAiC,EAAE,OAAwB,EAAA;QAa9D,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAZxB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AAC7B,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAS,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACxE,QAAA,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,EAAE,KAAK,CAAC,KAAM,GAAG,cAAc,CAAA,CAAA,EAAI,KAAK,CAAE,CAAA,CAAC,CAAC,CAAC;KAC1E;;+GARU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAgBf,wBAAwB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1BxC,oQAGM,EAAA,MAAA,EAAA,CAAA,sGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDOO,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,aAAa,EAAA,QAAA,EAAA,oQAAA,EAAA,MAAA,EAAA,CAAA,sGAAA,CAAA,EAAA,CAAA;kIAmBd,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACkC,cAAc,EAAA,CAAA;sBAArD,YAAY;uBAAC,wBAAwB,CAAA;;;MEZ3B,qBAAqB,CAAA;AAEhC,IAAA,WAAA,CAAY,OAAwB,EAAA;QAoBN,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;QACJ,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC;QAOhD,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;QAI9B,IAAoB,CAAA,oBAAA,GAAG,EAAE,CAAC;AAE1B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,eAAe,CAAuC,IAAI,CAAC,CAAC;AAC5E,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,eAAe,CAA4B,IAAI,CAAC,CAAC;QAClE,IAAe,CAAA,eAAA,GAAyB,EAAE,CAAC;QAO3C,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC;AACf,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAE,CAAA;;AAG1B,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,eAAe,CAAU,IAAI,CAAC,CAAC;;;AASrD,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,eAAe,CAAiB,KAAK,CAAC,CAAC;;;AAS3D,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;QAhEnD,IAAI,CAAC,aAAa,GAAG,IAAI,eAAe,CAAS,EAAE,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;QAC5F,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,kBAAkB,EAAE,CAAA,CAAE,CAAC,CAAC,CAAC;AACpF,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACvB,QAAA,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AACnE,aAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC,KAAI;YACrD,OAAO,CAAC,CAAC,QAAQ,KAAK,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,SAAS,CAAC,CAAC,IAAI,cAAc,CAAC;AAChG,SAAC,CAAC,CAAC;AACF,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAChC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC,KAAI;AACnD,YAAA,MAAM,WAAW,GAAG,QAAS,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAC3D,YAAA,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1B,gBAAA,UAAU,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,aAAA;AACH,SAAC,CAAC,CAAC;QACL,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC;AACnF,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;KACxE;IAID,IAAyC,WAAW,CAAC,KAAoC,EAAA;AACvF,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;KAC7F;IAED,IAAoB,gBAAgB,CAAC,KAAc,EAAA;AACjD,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;KAC/C;AAiBD,IAAA,IAAW,cAAc,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;KACnC;IACD,IAAoB,cAAc,CAAC,KAAc,EAAA;AAC/C,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAClC;AAID,IAAA,IAAW,YAAY,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;KACjC;IACD,IAAoB,YAAY,CAAC,KAAqB,EAAA;AACpD,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;AAID,IAAA,IAAW,aAAa,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;KAClC;IACD,IAAoB,aAAa,CAAC,KAAc,EAAA;AAC9C,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;;AAGD,IAAA,YAAY,CAAC,GAAuB,EAAA;AAClC,QAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AAED,IAAA,OAAO,CAAC,EAAqD,EAAA;AAC3D,QAAA,IAAI,EAAE,CAAC,iBAAiB,KAAK,EAAE,CAAC,SAAS,EAAE;AACzC,YAAA,eAAe,CACb,IAAI,CAAC,eAAe,EACpB,EAAE,CAAC,aAAa,EAChB,EAAE,CAAC,YAAY,CAAC,CAAC;AACpB,SAAA;AAAM,aAAA;;;;;;AAMN,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;;AAxDM,qBAAiB,CAAA,iBAAA,GAAG,CAAC,CAAC;kHA5ClB,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAJrB,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,aAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,QAAA,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,qBAAqB,EAAE;KAC/D,EA0BgB,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,SAAA,EAAA,kBAAkB,6BCtCrC,y9EAsCe,EAAA,MAAA,EAAA,CAAA,qoIAAA,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,EAAAC,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,4BAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,+BAAA,EAAA,2BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,yBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDxBF,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBARjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAGf,SAAA,EAAA;AACT,wBAAA,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,uBAAuB,EAAE;AAC/D,qBAAA,EAAA,QAAA,EAAA,y9EAAA,EAAA,MAAA,EAAA,CAAA,qoIAAA,CAAA,EAAA,CAAA;iGAwB6B,MAAM,EAAA,CAAA;sBAAnC,WAAW;uBAAC,eAAe,CAAA;gBACY,gBAAgB,EAAA,CAAA;sBAAvD,WAAW;uBAAC,yBAAyB,CAAA;gBACG,WAAW,EAAA,CAAA;sBAAnD,eAAe;uBAAC,kBAAkB,CAAA;gBAMnB,MAAM,EAAA,CAAA;sBAArB,KAAK;gBACc,gBAAgB,EAAA,CAAA;sBAAnC,KAAK;gBAsBc,cAAc,EAAA,CAAA;sBAAjC,KAAK;gBASc,YAAY,EAAA,CAAA;sBAA/B,KAAK;gBASc,aAAa,EAAA,CAAA;sBAAhC,KAAK;;;ME1DK,kBAAkB,CAAA;;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,iBAhB3B,qBAAqB;QACrB,kBAAkB;AAClB,QAAA,wBAAwB,aAGxB,YAAY;QACZ,cAAc;QACd,WAAW;AACX,QAAA,kBAAkB,aAGlB,qBAAqB;QACrB,kBAAkB;QAClB,wBAAwB,CAAA,EAAA,CAAA,CAAA;AAGf,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAX3B,YAAY;QACZ,cAAc;QACd,WAAW;QACX,kBAAkB,CAAA,EAAA,CAAA,CAAA;2FAQT,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAlB9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,qBAAqB;wBACrB,kBAAkB;wBAClB,wBAAwB;AACzB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,cAAc;wBACd,WAAW;wBACX,kBAAkB;AACnB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,qBAAqB;wBACrB,kBAAkB;wBAClB,wBAAwB;AACzB,qBAAA;AACF,iBAAA,CAAA;;;AC1BD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"mintplayer-ng-bootstrap-tab-control.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-page-header/tab-page-header.directive.ts","../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-page/tab-page.component.ts","../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-page/tab-page.component.html","../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-control/tab-control.component.ts","../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-control/tab-control.component.html","../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-control.module.ts","../../../../libs/mintplayer-ng-bootstrap/tab-control/mintplayer-ng-bootstrap-tab-control.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[bsTabPageHeader]'\n})\nexport class BsTabPageHeaderDirective {\n\n constructor(public template: TemplateRef<any>) {}\n\n}\n","import { Component, ContentChild, TemplateRef, Input, ElementRef } from '@angular/core';\nimport { BehaviorSubject, combineLatest, map, Observable } from 'rxjs';\nimport { BsTabControlComponent } from '../tab-control/tab-control.component';\nimport { BsTabPageHeaderDirective } from '../tab-page-header/tab-page-header.directive';\n\n@Component({\n selector: 'bs-tab-page',\n templateUrl: './tab-page.component.html',\n styleUrls: ['./tab-page.component.scss']\n})\nexport class BsTabPageComponent {\n\n constructor(tabControl: BsTabControlComponent, element: ElementRef<any>) {\n this.element = element;\n this.tabControl = tabControl;\n this.tabId$ = new BehaviorSubject<number>(++this.tabControl.tabCounter);\n this.tabName$ = combineLatest([this.tabControl.tabControlName$, this.tabId$])\n .pipe(map(([tabControlName, tabId]) => `${tabControlName}-${tabId}`));\n }\n\n element: ElementRef<any>;\n tabControl: BsTabControlComponent;\n tabId$: BehaviorSubject<number>;\n tabName$: Observable<string>;\n\n @Input() disabled = false;\n @ContentChild(BsTabPageHeaderDirective) headerTemplate!: BsTabPageHeaderDirective;\n\n}\n","<input type=\"radio\" bsNoNoscript class=\"d-none\" [name]=\"tabControl.tabControlName$ | async\" [id]=\"tabName$ | async\">\n<div class=\"tab-page-content\" [class.d-block]=\"(tabControl.activeTab$ | async) === this\">\n <ng-content></ng-content>\n</div>","import { CdkDragDrop, CdkDragStart, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport { Component, ContentChildren, ElementRef, HostBinding, Input, OnDestroy, QueryList, Renderer2 } from '@angular/core';\nimport { BehaviorSubject, combineLatest, filter, map, Observable, Subject, takeUntil } from 'rxjs';\nimport { BsTabPageComponent } from '../tab-page/tab-page.component';\nimport { BsTabsPosition } from '../tabs-position';\n\n@Component({\n selector: 'bs-tab-control',\n templateUrl: './tab-control.component.html',\n styleUrls: ['./tab-control.component.scss'],\n providers: [\n { provide: 'TAB_CONTROL', useExisting: BsTabControlComponent }\n ]\n})\nexport class BsTabControlComponent implements OnDestroy {\n\n constructor(element: ElementRef<any>) {\n this.tabControlId$ = new BehaviorSubject<number>(++BsTabControlComponent.tabControlCounter);\n this.tabControlName$ = this.tabControlId$.pipe(map((id) => `bs-tab-control-${id}`));\n this.element = element;\n combineLatest([this.tabPages$, this.activeTab$, this.selectFirstTab$])\n .pipe(filter(([tabPages, activeTab, selectFirstTab]) => {\n return !!tabPages && (!activeTab || !tabPages.some(tp => tp === activeTab)) && selectFirstTab;\n }))\n .pipe(takeUntil(this.destroyed$))\n .subscribe(([tabPages, activeTab, selectFirstTab]) => {\n const notDisabled = tabPages!.filter((tp) => !tp.disabled);\n if (notDisabled.length > 0) {\n setTimeout(() => this.activeTab$.next(notDisabled[0]));\n }\n });\n this.topTabs$ = this.tabsPosition$.pipe(map(position => position === 'top'));\n this.bottomTabs$ = this.tabsPosition$.pipe(map(position => position === 'bottom'));\n this.disableDragDrop$ = this.allowDragDrop$.pipe(map(allow => !allow));\n }\n\n @HostBinding('class.d-block') dBlock = true;\n @HostBinding('class.position-relative') positionRelative = true;\n @ContentChildren(BsTabPageComponent) set setTabPages(value: QueryList<BsTabPageComponent>) {\n this.tabPages$.next(value);\n const list = value.toArray();\n const toAdd = value.filter(tp => !this.orderedTabPages.includes(tp));\n this.orderedTabPages = this.orderedTabPages.concat(toAdd).filter((tp) => list.includes(tp));\n }\n @Input() public border = true;\n @Input() public set restrictDragging(value: boolean) {\n this.dragBoundarySelector = value ? 'ul' : '';\n }\n dragBoundarySelector = '';\n element: ElementRef<any>;\n tabPages$ = new BehaviorSubject<QueryList<BsTabPageComponent> | null>(null);\n activeTab$ = new BehaviorSubject<BsTabPageComponent | null>(null);\n orderedTabPages: BsTabPageComponent[] = [];\n tabControlId$: BehaviorSubject<number>;\n tabControlName$: Observable<string>;\n topTabs$: Observable<boolean>;\n bottomTabs$: Observable<boolean>;\n disableDragDrop$: Observable<boolean>;\n static tabControlCounter = 0;\n tabCounter = 0;\n destroyed$ = new Subject()\n\n //#region SelectFirstTab\n selectFirstTab$ = new BehaviorSubject<boolean>(true);\n public get selectFirstTab() {\n return this.selectFirstTab$.value;\n }\n @Input() public set selectFirstTab(value: boolean) {\n this.selectFirstTab$.next(value);\n }\n //#endregion\n //#region TabsPosition\n tabsPosition$ = new BehaviorSubject<BsTabsPosition>('top');\n public get tabsPosition() {\n return this.tabsPosition$.value;\n }\n @Input() public set tabsPosition(value: BsTabsPosition) {\n this.tabsPosition$.next(value);\n }\n //#endregion\n //#region AllowDragDrop\n allowDragDrop$ = new BehaviorSubject<boolean>(false);\n public get allowDragDrop() {\n return this.allowDragDrop$.value;\n }\n @Input() public set allowDragDrop(value: boolean) {\n this.allowDragDrop$.next(value);\n }\n //#endregion\n\n setActiveTab(tab: BsTabPageComponent) {\n if (!tab.disabled) {\n this.activeTab$.next(tab);\n }\n return false;\n }\n\n startDragTab(ev: CdkDragStart<BsTabPageComponent>) {\n if ('vibrate' in navigator) {\n navigator.vibrate([30]);\n }\n }\n\n moveTab(ev: CdkDragDrop<QueryList<BsTabPageComponent> | null>) {\n if (ev.previousContainer === ev.container) {\n moveItemInArray(\n this.orderedTabPages,\n ev.previousIndex, \n ev.currentIndex);\n } else {\n // transferArrayItem(\n // ev.previousContainer.data,\n // ev.container.data,\n // ev.previousIndex,\n // ev.currentIndex);\n }\n }\n\n ngOnDestroy() {\n this.destroyed$.next(true);\n }\n\n}\n","<ng-container *bsLet=\"(activeTab$ | async) as activeTab\">\n\t<div class=\"overflow-hidden mw-100 tsc\" *ngIf=\"topTabs$ | async\">\n\t\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t\t[cdkDropListData]=\"tabPages$ | async\"\n\t\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\t\t[cdkDropListDisabled]=\"disableDragDrop$ | async\"\n\t\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t\t<ng-container *ngFor=\"let tab of orderedTabPages\">\n\t\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" *ngIf=\"!!tab.headerTemplate\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector\" [cdkDragStartDelay]=\"500\" (cdkDragStarted)=\"startDragTab($event)\">\n\t\t\t\t\t<label [for]=\"tab.tabName$ | async\" class=\"nav-link text-nowrap cursor-pointer\" [class.active]=\"activeTab === tab\" [class.disabled]=\"tab.disabled\" [attr.aria-current]=\"activeTab === tab ? 'page' : null\" [attr.aria-disabled]=\"tab.disabled\">\n\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.headerTemplate.template\"></ng-container>\n\t\t\t\t\t</label>\n\t\t\t\t</span>\n\t\t\t</ng-container>\n\t\t</ul>\n\t</div>\n\t<div class=\"tab-content flex-grow-1 overflow-auto\" bsNoNoscript [class.border]=\"border && activeTab\" [class.border-top]=\"border && !activeTab\">\n\t\t<ng-content></ng-content>\n\t</div>\n\t<div class=\"overflow-hidden mw-100 tsc bottom-tabs\" *ngIf=\"bottomTabs$ | async\">\n\t\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t\t[cdkDropListData]=\"tabPages$ | async\"\n\t\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\t\t[cdkDropListDisabled]=\"disableDragDrop$ | async\"\n\t\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t\t<ng-container *ngFor=\"let tab of orderedTabPages\">\n\t\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" *ngIf=\"!!tab.headerTemplate\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector\" [cdkDragStartDelay]=\"500\" (cdkDragStarted)=\"startDragTab($event)\">\n\t\t\t\t\t<label [for]=\"tab.tabName$ | async\" class=\"nav-link text-nowrap cursor-pointer\" [class.active]=\"activeTab === tab\" [class.disabled]=\"tab.disabled\" [attr.aria-current]=\"activeTab === tab ? 'page' : null\" [attr.aria-disabled]=\"tab.disabled\">\n\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.headerTemplate.template\"></ng-container>\n\t\t\t\t\t</label>\n\t\t\t\t</span>\n\t\t\t</ng-container>\n\t\t</ul>\n\t</div>\n</ng-container>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { BsLetModule } from '@mintplayer/ng-bootstrap/let';\nimport { BsNoNoscriptModule } from '@mintplayer/ng-bootstrap/no-noscript';\nimport { BsTabControlComponent } from './tab-control/tab-control.component';\nimport { BsTabPageComponent } from './tab-page/tab-page.component';\nimport { BsTabPageHeaderDirective } from './tab-page-header/tab-page-header.directive';\n\n@NgModule({\n declarations: [\n BsTabControlComponent,\n BsTabPageComponent,\n BsTabPageHeaderDirective,\n ],\n imports: [\n CommonModule,\n DragDropModule,\n BsLetModule,\n BsNoNoscriptModule\n ],\n exports: [\n BsTabControlComponent,\n BsTabPageComponent,\n BsTabPageHeaderDirective,\n ]\n})\nexport class BsTabControlModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsTabControlComponent","i3","i2","i4"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
1
|
+
import { CdkDragDrop, CdkDragStart } from '@angular/cdk/drag-drop';
|
|
2
2
|
import { ElementRef, OnDestroy, QueryList } from '@angular/core';
|
|
3
3
|
import { BehaviorSubject, Observable, Subject } from 'rxjs';
|
|
4
4
|
import { BsTabPageComponent } from '../tab-page/tab-page.component';
|
|
@@ -34,6 +34,7 @@ export declare class BsTabControlComponent implements OnDestroy {
|
|
|
34
34
|
get allowDragDrop(): boolean;
|
|
35
35
|
set allowDragDrop(value: boolean);
|
|
36
36
|
setActiveTab(tab: BsTabPageComponent): boolean;
|
|
37
|
+
startDragTab(ev: CdkDragStart<BsTabPageComponent>): void;
|
|
37
38
|
moveTab(ev: CdkDragDrop<QueryList<BsTabPageComponent> | null>): void;
|
|
38
39
|
ngOnDestroy(): void;
|
|
39
40
|
static ɵfac: i0.ɵɵFactoryDeclaration<BsTabControlComponent, never>;
|