@mintplayer/ng-bootstrap 15.20.1 → 15.20.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/tab-control/src/tab-control/tab-control.component.mjs +36 -9
- package/esm2020/tab-control/src/tab-control.module.mjs +5 -1
- package/esm2020/tab-control/src/tab-page/tab-page.component.mjs +6 -5
- package/fesm2015/mintplayer-ng-bootstrap-tab-control.mjs +40 -9
- package/fesm2015/mintplayer-ng-bootstrap-tab-control.mjs.map +1 -1
- package/fesm2020/mintplayer-ng-bootstrap-tab-control.mjs +40 -9
- 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 +11 -3
- package/tab-control/src/tab-control.module.d.ts +3 -2
- package/tab-control/src/tab-page/tab-page.component.d.ts +3 -2
|
@@ -1,18 +1,31 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { moveItemInArray } from '@angular/cdk/drag-drop';
|
|
2
|
+
import { Component, ContentChildren, ElementRef, HostBinding, Input, QueryList } from '@angular/core';
|
|
2
3
|
import { BehaviorSubject, map } from 'rxjs';
|
|
3
4
|
import { BsTabPageComponent } from '../tab-page/tab-page.component';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
import * as i1 from "@angular/common";
|
|
6
|
-
import * as i2 from "@
|
|
7
|
+
import * as i2 from "@angular/cdk/drag-drop";
|
|
8
|
+
import * as i3 from "@mintplayer/ng-bootstrap/no-noscript";
|
|
7
9
|
export class BsTabControlComponent {
|
|
8
|
-
constructor() {
|
|
10
|
+
constructor(element) {
|
|
9
11
|
this.dBlock = true;
|
|
10
12
|
this.positionRelative = true;
|
|
11
13
|
this.border = true;
|
|
14
|
+
this.dragBoundarySelector = '';
|
|
15
|
+
this.orderedTabPages = [];
|
|
12
16
|
this.activeTab = null;
|
|
13
17
|
this.tabCounter = 0;
|
|
14
18
|
this.tabControlId$ = new BehaviorSubject(++BsTabControlComponent.tabControlCounter);
|
|
15
19
|
this.tabControlName$ = this.tabControlId$.pipe(map((id) => `bs-tab-control-${id}`));
|
|
20
|
+
this.element = element;
|
|
21
|
+
}
|
|
22
|
+
set setTabPages(value) {
|
|
23
|
+
this.tabPages = value;
|
|
24
|
+
const missing = value.filter(tp => !this.orderedTabPages.includes(tp));
|
|
25
|
+
this.orderedTabPages = this.orderedTabPages.concat(missing);
|
|
26
|
+
}
|
|
27
|
+
set restrictDragging(value) {
|
|
28
|
+
this.dragBoundarySelector = value ? 'ul' : '';
|
|
16
29
|
}
|
|
17
30
|
setActiveTab(tab) {
|
|
18
31
|
if (!tab.disabled) {
|
|
@@ -20,23 +33,37 @@ export class BsTabControlComponent {
|
|
|
20
33
|
}
|
|
21
34
|
return false;
|
|
22
35
|
}
|
|
36
|
+
moveTab(ev) {
|
|
37
|
+
if (ev.previousContainer === ev.container) {
|
|
38
|
+
moveItemInArray(this.orderedTabPages, ev.previousIndex, ev.currentIndex);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
// transferArrayItem(
|
|
42
|
+
// ev.previousContainer.data,
|
|
43
|
+
// ev.container.data,
|
|
44
|
+
// ev.previousIndex,
|
|
45
|
+
// ev.currentIndex);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
23
48
|
}
|
|
24
49
|
BsTabControlComponent.tabControlCounter = 0;
|
|
25
|
-
BsTabControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BsTabControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
26
|
-
BsTabControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: BsTabControlComponent, selector: "bs-tab-control", inputs: { border: "border" }, host: { properties: { "class.d-block": "this.dBlock", "class.position-relative": "this.positionRelative" } }, queries: [{ propertyName: "
|
|
50
|
+
BsTabControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BsTabControlComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
51
|
+
BsTabControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: BsTabControlComponent, selector: "bs-tab-control", inputs: { border: "border", restrictDragging: "restrictDragging" }, host: { properties: { "class.d-block": "this.dBlock", "class.position-relative": "this.positionRelative" } }, queries: [{ propertyName: "setTabPages", predicate: BsTabPageComponent }], ngImport: i0, template: "<div class=\"overflow-hidden position-absolute mw-100 tsc\">\n\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t[cdkDropListData]=\"tabPages\"\n\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t<ng-container *ngFor=\"let tab of orderedTabPages\">\n\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" *ngIf=\"!!tab.headerTemplate\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector\" [cdkDragStartDelay]=\"1000\">\n\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<ng-container [ngTemplateOutlet]=\"tab.headerTemplate\"></ng-container>\n\t\t\t\t</label>\n\t\t\t</span>\n\t\t</ng-container>\n\t</ul>\n</div>\n<div class=\"tab-content\" bsNoNoscript [class.border]=\"border && activeTab\" [class.border-top]=\"border && !activeTab\">\n\t<ng-content></ng-content>\n</div>", 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;margin-top:-41px;top:1px}.tab-content{margin-top:48px}.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.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.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.BsNoNoscriptDirective, selector: "[bsNoNoscript]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
|
|
27
52
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BsTabControlComponent, decorators: [{
|
|
28
53
|
type: Component,
|
|
29
|
-
args: [{ selector: 'bs-tab-control', template: "<div class=\"overflow-hidden position-absolute mw-100 tsc\">\n\t<ul
|
|
30
|
-
}], ctorParameters: function () { return []; }, propDecorators: { dBlock: [{
|
|
54
|
+
args: [{ selector: 'bs-tab-control', template: "<div class=\"overflow-hidden position-absolute mw-100 tsc\">\n\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t[cdkDropListData]=\"tabPages\"\n\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t<ng-container *ngFor=\"let tab of orderedTabPages\">\n\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" *ngIf=\"!!tab.headerTemplate\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector\" [cdkDragStartDelay]=\"1000\">\n\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<ng-container [ngTemplateOutlet]=\"tab.headerTemplate\"></ng-container>\n\t\t\t\t</label>\n\t\t\t</span>\n\t\t</ng-container>\n\t</ul>\n</div>\n<div class=\"tab-content\" bsNoNoscript [class.border]=\"border && activeTab\" [class.border-top]=\"border && !activeTab\">\n\t<ng-content></ng-content>\n</div>", 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;margin-top:-41px;top:1px}.tab-content{margin-top:48px}.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"] }]
|
|
55
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { dBlock: [{
|
|
31
56
|
type: HostBinding,
|
|
32
57
|
args: ['class.d-block']
|
|
33
58
|
}], positionRelative: [{
|
|
34
59
|
type: HostBinding,
|
|
35
60
|
args: ['class.position-relative']
|
|
36
|
-
}],
|
|
61
|
+
}], setTabPages: [{
|
|
37
62
|
type: ContentChildren,
|
|
38
63
|
args: [BsTabPageComponent]
|
|
39
64
|
}], border: [{
|
|
40
65
|
type: Input
|
|
66
|
+
}], restrictDragging: [{
|
|
67
|
+
type: Input
|
|
41
68
|
}] } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC90YWItY29udHJvbC9zcmMvdGFiLWNvbnRyb2wvdGFiLWNvbnRyb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC90YWItY29udHJvbC9zcmMvdGFiLWNvbnRyb2wvdGFiLWNvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLGVBQWUsRUFBcUIsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLGVBQWUsRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7O0FBT3BFLE1BQU0sT0FBTyxxQkFBcUI7SUFFaEMsWUFBWSxPQUF3QjtRQU1OLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDSixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFNaEQsV0FBTSxHQUFHLElBQUksQ0FBQztRQUk5Qix5QkFBb0IsR0FBRyxFQUFFLENBQUM7UUFHMUIsb0JBQWUsR0FBeUIsRUFBRSxDQUFDO1FBQzNDLGNBQVMsR0FBOEIsSUFBSSxDQUFDO1FBSTVDLGVBQVUsR0FBRyxDQUFDLENBQUM7UUF4QmIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDNUYsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEYsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUlELElBQXlDLFdBQVcsQ0FBQyxLQUFvQztRQUN2RixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELElBQW9CLGdCQUFnQixDQUFDLEtBQWM7UUFDakQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQVdELFlBQVksQ0FBQyxHQUF1QjtRQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQztTQUN0QjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE9BQU8sQ0FBQyxFQUE4QztRQUNwRCxJQUFJLEVBQUUsQ0FBQyxpQkFBaUIsS0FBSyxFQUFFLENBQUMsU0FBUyxFQUFFO1lBQ3pDLGVBQWUsQ0FDYixJQUFJLENBQUMsZUFBZSxFQUNwQixFQUFFLENBQUMsYUFBYSxFQUNoQixFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDcEI7YUFBTTtZQUNMLHFCQUFxQjtZQUNyQiwrQkFBK0I7WUFDL0IsdUJBQXVCO1lBQ3ZCLHNCQUFzQjtZQUN0QixzQkFBc0I7U0FDdkI7SUFDSCxDQUFDOztBQXZCTSx1Q0FBaUIsR0FBRyxDQUFDLENBQUM7a0hBMUJsQixxQkFBcUI7c0dBQXJCLHFCQUFxQixvUUFVZixrQkFBa0IsNkJDcEJyQywwb0NBa0JNOzJGRFJPLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxnQkFBZ0I7aUdBWUksTUFBTTtzQkFBbkMsV0FBVzt1QkFBQyxlQUFlO2dCQUNZLGdCQUFnQjtzQkFBdkQsV0FBVzt1QkFBQyx5QkFBeUI7Z0JBQ0csV0FBVztzQkFBbkQsZUFBZTt1QkFBQyxrQkFBa0I7Z0JBS25CLE1BQU07c0JBQXJCLEtBQUs7Z0JBQ2MsZ0JBQWdCO3NCQUFuQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSwgdHJhbnNmZXJBcnJheUl0ZW0gfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIFF1ZXJ5TGlzdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQnNUYWJQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vdGFiLXBhZ2UvdGFiLXBhZ2UuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYnMtdGFiLWNvbnRyb2wnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFiLWNvbnRyb2wuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWItY29udHJvbC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEJzVGFiQ29udHJvbENvbXBvbmVudCB7XG5cbiAgY29uc3RydWN0b3IoZWxlbWVudDogRWxlbWVudFJlZjxhbnk+KSB7XG4gICAgdGhpcy50YWJDb250cm9sSWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KCsrQnNUYWJDb250cm9sQ29tcG9uZW50LnRhYkNvbnRyb2xDb3VudGVyKTtcbiAgICB0aGlzLnRhYkNvbnRyb2xOYW1lJCA9IHRoaXMudGFiQ29udHJvbElkJC5waXBlKG1hcCgoaWQpID0+IGBicy10YWItY29udHJvbC0ke2lkfWApKTtcbiAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50O1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kLWJsb2NrJykgZEJsb2NrID0gdHJ1ZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5wb3NpdGlvbi1yZWxhdGl2ZScpIHBvc2l0aW9uUmVsYXRpdmUgPSB0cnVlO1xuICBAQ29udGVudENoaWxkcmVuKEJzVGFiUGFnZUNvbXBvbmVudCkgc2V0IHNldFRhYlBhZ2VzKHZhbHVlOiBRdWVyeUxpc3Q8QnNUYWJQYWdlQ29tcG9uZW50Pikge1xuICAgIHRoaXMudGFiUGFnZXMgPSB2YWx1ZTtcbiAgICBjb25zdCBtaXNzaW5nID0gdmFsdWUuZmlsdGVyKHRwID0+ICF0aGlzLm9yZGVyZWRUYWJQYWdlcy5pbmNsdWRlcyh0cCkpO1xuICAgIHRoaXMub3JkZXJlZFRhYlBhZ2VzID0gdGhpcy5vcmRlcmVkVGFiUGFnZXMuY29uY2F0KG1pc3NpbmcpO1xuICB9XG4gIEBJbnB1dCgpIHB1YmxpYyBib3JkZXIgPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IHJlc3RyaWN0RHJhZ2dpbmcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRyYWdCb3VuZGFyeVNlbGVjdG9yID0gdmFsdWUgPyAndWwnIDogJyc7XG4gIH1cbiAgZHJhZ0JvdW5kYXJ5U2VsZWN0b3IgPSAnJztcbiAgZWxlbWVudDogRWxlbWVudFJlZjxhbnk+O1xuICB0YWJQYWdlcyE6IFF1ZXJ5TGlzdDxCc1RhYlBhZ2VDb21wb25lbnQ+O1xuICBvcmRlcmVkVGFiUGFnZXM6IEJzVGFiUGFnZUNvbXBvbmVudFtdID0gW107XG4gIGFjdGl2ZVRhYjogQnNUYWJQYWdlQ29tcG9uZW50IHwgbnVsbCA9IG51bGw7XG4gIHRhYkNvbnRyb2xJZCQ6IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+O1xuICB0YWJDb250cm9sTmFtZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgc3RhdGljIHRhYkNvbnRyb2xDb3VudGVyID0gMDtcbiAgdGFiQ291bnRlciA9IDA7XG5cbiAgc2V0QWN0aXZlVGFiKHRhYjogQnNUYWJQYWdlQ29tcG9uZW50KSB7XG4gICAgaWYgKCF0YWIuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuYWN0aXZlVGFiID0gdGFiO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBtb3ZlVGFiKGV2OiBDZGtEcmFnRHJvcDxRdWVyeUxpc3Q8QnNUYWJQYWdlQ29tcG9uZW50Pj4pIHtcbiAgICBpZiAoZXYucHJldmlvdXNDb250YWluZXIgPT09IGV2LmNvbnRhaW5lcikge1xuICAgICAgbW92ZUl0ZW1JbkFycmF5KFxuICAgICAgICB0aGlzLm9yZGVyZWRUYWJQYWdlcyxcbiAgICAgICAgZXYucHJldmlvdXNJbmRleCwgXG4gICAgICAgIGV2LmN1cnJlbnRJbmRleCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHRyYW5zZmVyQXJyYXlJdGVtKFxuICAgICAgLy8gICBldi5wcmV2aW91c0NvbnRhaW5lci5kYXRhLFxuICAgICAgLy8gICBldi5jb250YWluZXIuZGF0YSxcbiAgICAgIC8vICAgZXYucHJldmlvdXNJbmRleCxcbiAgICAgIC8vICAgZXYuY3VycmVudEluZGV4KTtcbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cIm92ZXJmbG93LWhpZGRlbiBwb3NpdGlvbi1hYnNvbHV0ZSBtdy0xMDAgdHNjXCI+XG5cdDx1bCBjZGtEcm9wTGlzdCAjbGlzdCAjdGFiTGlzdD1cImNka0Ryb3BMaXN0XCJcblx0XHRbY2RrRHJvcExpc3REYXRhXT1cInRhYlBhZ2VzXCJcblx0XHRbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJbXVwiXG5cdFx0W2Nka0Ryb3BMaXN0T3JpZW50YXRpb25dPVwiJ2hvcml6b250YWwnXCJcblx0XHQoY2RrRHJvcExpc3REcm9wcGVkKT1cIm1vdmVUYWIoJGV2ZW50KVwiXG5cdFx0Y2xhc3M9XCJuYXYgbmF2LXRhYnMgZmxleC1ub3dyYXAgb3ZlcmZsb3cteC1hdXRvIG92ZXJmbG93LXktaGlkZGVuXCI+XG5cdFx0PG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGFiIG9mIG9yZGVyZWRUYWJQYWdlc1wiPlxuXHRcdFx0PHNwYW4gY2xhc3M9XCJuYXYtaXRlbVwiIChjbGljayk9XCJzZXRBY3RpdmVUYWIodGFiKVwiICpuZ0lmPVwiISF0YWIuaGVhZGVyVGVtcGxhdGVcIiBjZGtEcmFnIFtjZGtEcmFnQm91bmRhcnldPVwiZHJhZ0JvdW5kYXJ5U2VsZWN0b3JcIiBbY2RrRHJhZ1N0YXJ0RGVsYXldPVwiMTAwMFwiPlxuXHRcdFx0XHQ8bGFiZWwgW2Zvcl09XCJ0YWIudGFiTmFtZSQgfCBhc3luY1wiIGNsYXNzPVwibmF2LWxpbmsgdGV4dC1ub3dyYXAgY3Vyc29yLXBvaW50ZXJcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PT0gdGFiXCIgW2NsYXNzLmRpc2FibGVkXT1cInRhYi5kaXNhYmxlZFwiIFthdHRyLmFyaWEtY3VycmVudF09XCJhY3RpdmVUYWIgPT09IHRhYiA/ICdwYWdlJyA6IG51bGxcIiBbYXR0ci5hcmlhLWRpc2FibGVkXT1cInRhYi5kaXNhYmxlZFwiPlxuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFiLmhlYWRlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdDwvbGFiZWw+XG5cdFx0XHQ8L3NwYW4+XG5cdFx0PC9uZy1jb250YWluZXI+XG5cdDwvdWw+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJ0YWItY29udGVudFwiIGJzTm9Ob3NjcmlwdCBbY2xhc3MuYm9yZGVyXT1cImJvcmRlciAmJiBhY3RpdmVUYWJcIiBbY2xhc3MuYm9yZGVyLXRvcF09XCJib3JkZXIgJiYgIWFjdGl2ZVRhYlwiPlxuXHQ8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj4iXX0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
3
4
|
import { BsNoNoscriptModule } from '@mintplayer/ng-bootstrap/no-noscript';
|
|
4
5
|
import { BsTabControlComponent } from './tab-control/tab-control.component';
|
|
5
6
|
import { BsTabPageComponent } from './tab-page/tab-page.component';
|
|
@@ -9,9 +10,11 @@ export class BsTabControlModule {
|
|
|
9
10
|
BsTabControlModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BsTabControlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
10
11
|
BsTabControlModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.1", ngImport: i0, type: BsTabControlModule, declarations: [BsTabControlComponent,
|
|
11
12
|
BsTabPageComponent], imports: [CommonModule,
|
|
13
|
+
DragDropModule,
|
|
12
14
|
BsNoNoscriptModule], exports: [BsTabControlComponent,
|
|
13
15
|
BsTabPageComponent] });
|
|
14
16
|
BsTabControlModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BsTabControlModule, imports: [CommonModule,
|
|
17
|
+
DragDropModule,
|
|
15
18
|
BsNoNoscriptModule] });
|
|
16
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BsTabControlModule, decorators: [{
|
|
17
20
|
type: NgModule,
|
|
@@ -22,6 +25,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
|
|
|
22
25
|
],
|
|
23
26
|
imports: [
|
|
24
27
|
CommonModule,
|
|
28
|
+
DragDropModule,
|
|
25
29
|
BsNoNoscriptModule
|
|
26
30
|
],
|
|
27
31
|
exports: [
|
|
@@ -30,4 +34,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
|
|
|
30
34
|
]
|
|
31
35
|
}]
|
|
32
36
|
}] });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWNvbnRyb2wubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC90YWItY29udHJvbC9zcmMvdGFiLWNvbnRyb2wubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFpQm5FLE1BQU0sT0FBTyxrQkFBa0I7OytHQUFsQixrQkFBa0I7Z0hBQWxCLGtCQUFrQixpQkFiM0IscUJBQXFCO1FBQ3JCLGtCQUFrQixhQUdsQixZQUFZO1FBQ1osY0FBYztRQUNkLGtCQUFrQixhQUdsQixxQkFBcUI7UUFDckIsa0JBQWtCO2dIQUdULGtCQUFrQixZQVQzQixZQUFZO1FBQ1osY0FBYztRQUNkLGtCQUFrQjsyRkFPVCxrQkFBa0I7a0JBZjlCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLHFCQUFxQjt3QkFDckIsa0JBQWtCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGtCQUFrQjtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHFCQUFxQjt3QkFDckIsa0JBQWtCO3FCQUNuQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IEJzTm9Ob3NjcmlwdE1vZHVsZSB9IGZyb20gJ0BtaW50cGxheWVyL25nLWJvb3RzdHJhcC9uby1ub3NjcmlwdCc7XG5pbXBvcnQgeyBCc1RhYkNvbnRyb2xDb21wb25lbnQgfSBmcm9tICcuL3RhYi1jb250cm9sL3RhYi1jb250cm9sLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCc1RhYlBhZ2VDb21wb25lbnQgfSBmcm9tICcuL3RhYi1wYWdlL3RhYi1wYWdlLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEJzVGFiQ29udHJvbENvbXBvbmVudCxcbiAgICBCc1RhYlBhZ2VDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXG4gICAgQnNOb05vc2NyaXB0TW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBCc1RhYkNvbnRyb2xDb21wb25lbnQsXG4gICAgQnNUYWJQYWdlQ29tcG9uZW50LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEJzVGFiQ29udHJvbE1vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, ContentChild, TemplateRef, Input } from '@angular/core';
|
|
1
|
+
import { Component, ContentChild, TemplateRef, Input, ElementRef } from '@angular/core';
|
|
2
2
|
import { BehaviorSubject, combineLatest, map } from 'rxjs';
|
|
3
3
|
import { BsTabControlComponent } from '../tab-control/tab-control.component';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
@@ -6,23 +6,24 @@ import * as i1 from "../tab-control/tab-control.component";
|
|
|
6
6
|
import * as i2 from "@mintplayer/ng-bootstrap/no-noscript";
|
|
7
7
|
import * as i3 from "@angular/common";
|
|
8
8
|
export class BsTabPageComponent {
|
|
9
|
-
constructor(tabControl) {
|
|
9
|
+
constructor(tabControl, element) {
|
|
10
10
|
this.disabled = false;
|
|
11
|
+
this.element = element;
|
|
11
12
|
this.tabControl = tabControl;
|
|
12
13
|
this.tabId$ = new BehaviorSubject(++this.tabControl.tabCounter);
|
|
13
14
|
this.tabName$ = combineLatest([this.tabControl.tabControlName$, this.tabId$])
|
|
14
15
|
.pipe(map(([tabControlName, tabId]) => `${tabControlName}-${tabId}`));
|
|
15
16
|
}
|
|
16
17
|
}
|
|
17
|
-
BsTabPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BsTabPageComponent, deps: [{ token: i1.BsTabControlComponent }], target: i0.ɵɵFactoryTarget.Component });
|
|
18
|
+
BsTabPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BsTabPageComponent, deps: [{ token: i1.BsTabControlComponent }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
18
19
|
BsTabPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: BsTabPageComponent, selector: "bs-tab-page", inputs: { disabled: "disabled" }, queries: [{ propertyName: "headerTemplate", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<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 === this\">\n <ng-content></ng-content>\n</div>", styles: [".tab-page-content{display:none}input[type=radio].noscript:checked+.tab-page-content{display:block}\n"], dependencies: [{ kind: "directive", type: i2.BsNoNoscriptDirective, selector: "[bsNoNoscript]" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] });
|
|
19
20
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BsTabPageComponent, decorators: [{
|
|
20
21
|
type: Component,
|
|
21
22
|
args: [{ selector: 'bs-tab-page', template: "<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 === this\">\n <ng-content></ng-content>\n</div>", styles: [".tab-page-content{display:none}input[type=radio].noscript:checked+.tab-page-content{display:block}\n"] }]
|
|
22
|
-
}], ctorParameters: function () { return [{ type: i1.BsTabControlComponent }]; }, propDecorators: { disabled: [{
|
|
23
|
+
}], ctorParameters: function () { return [{ type: i1.BsTabControlComponent }, { type: i0.ElementRef }]; }, propDecorators: { disabled: [{
|
|
23
24
|
type: Input
|
|
24
25
|
}], headerTemplate: [{
|
|
25
26
|
type: ContentChild,
|
|
26
27
|
args: [TemplateRef]
|
|
27
28
|
}] } });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC90YWItY29udHJvbC9zcmMvdGFiLXBhZ2UvdGFiLXBhZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC90YWItY29udHJvbC9zcmMvdGFiLXBhZ2UvdGFiLXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7OztBQU83RSxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCLFlBQVksVUFBaUMsRUFBRSxPQUF3QjtRQWE5RCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBWnhCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUUsR0FBRyxjQUFjLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7OytHQVJVLGtCQUFrQjttR0FBbEIsa0JBQWtCLGlJQWdCZixXQUFXLGdEQ3pCM0IseVBBR007MkZETU8sa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGFBQWE7cUlBbUJkLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ3FCLGNBQWM7c0JBQXhDLFlBQVk7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBUZW1wbGF0ZVJlZiwgSW5wdXQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCc1RhYkNvbnRyb2xDb21wb25lbnQgfSBmcm9tICcuLi90YWItY29udHJvbC90YWItY29udHJvbC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdicy10YWItcGFnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWItcGFnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYi1wYWdlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQnNUYWJQYWdlQ29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3Rvcih0YWJDb250cm9sOiBCc1RhYkNvbnRyb2xDb21wb25lbnQsIGVsZW1lbnQ6IEVsZW1lbnRSZWY8YW55Pikge1xuICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgdGhpcy50YWJDb250cm9sID0gdGFiQ29udHJvbDtcbiAgICB0aGlzLnRhYklkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigrK3RoaXMudGFiQ29udHJvbC50YWJDb3VudGVyKTtcbiAgICB0aGlzLnRhYk5hbWUkID0gY29tYmluZUxhdGVzdChbdGhpcy50YWJDb250cm9sLnRhYkNvbnRyb2xOYW1lJCwgdGhpcy50YWJJZCRdKVxuICAgICAgLnBpcGUobWFwKChbdGFiQ29udHJvbE5hbWUsIHRhYklkXSkgPT4gIGAke3RhYkNvbnRyb2xOYW1lfS0ke3RhYklkfWApKTtcbiAgfVxuXG4gIGVsZW1lbnQ6IEVsZW1lbnRSZWY8YW55PjtcbiAgdGFiQ29udHJvbDogQnNUYWJDb250cm9sQ29tcG9uZW50O1xuICB0YWJJZCQ6IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+O1xuICB0YWJOYW1lJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpIGhlYWRlclRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcblxufVxuIiwiPGlucHV0IHR5cGU9XCJyYWRpb1wiIGJzTm9Ob3NjcmlwdCBjbGFzcz1cImQtbm9uZVwiIFtuYW1lXT1cInRhYkNvbnRyb2wudGFiQ29udHJvbE5hbWUkIHwgYXN5bmNcIiBbaWRdPVwidGFiTmFtZSQgfCBhc3luY1wiPlxuPGRpdiBjbGFzcz1cInRhYi1wYWdlLWNvbnRlbnRcIiBbY2xhc3MuZC1ibG9ja109XCJ0YWJDb250cm9sLmFjdGl2ZVRhYiA9PT0gdGhpc1wiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PiJdfQ==
|
|
@@ -2,25 +2,28 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { TemplateRef, Component, Input, ContentChild, HostBinding, ContentChildren, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
|
+
import * as i2$1 from '@angular/cdk/drag-drop';
|
|
6
|
+
import { moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
|
|
5
7
|
import * as i2 from '@mintplayer/ng-bootstrap/no-noscript';
|
|
6
8
|
import { BsNoNoscriptModule } from '@mintplayer/ng-bootstrap/no-noscript';
|
|
7
9
|
import { BehaviorSubject, combineLatest, map } from 'rxjs';
|
|
8
10
|
|
|
9
11
|
class BsTabPageComponent {
|
|
10
|
-
constructor(tabControl) {
|
|
12
|
+
constructor(tabControl, element) {
|
|
11
13
|
this.disabled = false;
|
|
14
|
+
this.element = element;
|
|
12
15
|
this.tabControl = tabControl;
|
|
13
16
|
this.tabId$ = new BehaviorSubject(++this.tabControl.tabCounter);
|
|
14
17
|
this.tabName$ = combineLatest([this.tabControl.tabControlName$, this.tabId$])
|
|
15
18
|
.pipe(map(([tabControlName, tabId]) => `${tabControlName}-${tabId}`));
|
|
16
19
|
}
|
|
17
20
|
}
|
|
18
|
-
BsTabPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BsTabPageComponent, deps: [{ token: BsTabControlComponent }], target: i0.ɵɵFactoryTarget.Component });
|
|
21
|
+
BsTabPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BsTabPageComponent, deps: [{ token: BsTabControlComponent }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
19
22
|
BsTabPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: BsTabPageComponent, selector: "bs-tab-page", inputs: { disabled: "disabled" }, queries: [{ propertyName: "headerTemplate", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<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 === this\">\n <ng-content></ng-content>\n</div>", styles: [".tab-page-content{display:none}input[type=radio].noscript:checked+.tab-page-content{display:block}\n"], dependencies: [{ kind: "directive", type: i2.BsNoNoscriptDirective, selector: "[bsNoNoscript]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
|
|
20
23
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BsTabPageComponent, decorators: [{
|
|
21
24
|
type: Component,
|
|
22
25
|
args: [{ selector: 'bs-tab-page', template: "<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 === this\">\n <ng-content></ng-content>\n</div>", styles: [".tab-page-content{display:none}input[type=radio].noscript:checked+.tab-page-content{display:block}\n"] }]
|
|
23
|
-
}], ctorParameters: function () { return [{ type: BsTabControlComponent }]; }, propDecorators: { disabled: [{
|
|
26
|
+
}], ctorParameters: function () { return [{ type: BsTabControlComponent }, { type: i0.ElementRef }]; }, propDecorators: { disabled: [{
|
|
24
27
|
type: Input
|
|
25
28
|
}], headerTemplate: [{
|
|
26
29
|
type: ContentChild,
|
|
@@ -28,14 +31,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
|
|
|
28
31
|
}] } });
|
|
29
32
|
|
|
30
33
|
class BsTabControlComponent {
|
|
31
|
-
constructor() {
|
|
34
|
+
constructor(element) {
|
|
32
35
|
this.dBlock = true;
|
|
33
36
|
this.positionRelative = true;
|
|
34
37
|
this.border = true;
|
|
38
|
+
this.dragBoundarySelector = '';
|
|
39
|
+
this.orderedTabPages = [];
|
|
35
40
|
this.activeTab = null;
|
|
36
41
|
this.tabCounter = 0;
|
|
37
42
|
this.tabControlId$ = new BehaviorSubject(++BsTabControlComponent.tabControlCounter);
|
|
38
43
|
this.tabControlName$ = this.tabControlId$.pipe(map((id) => `bs-tab-control-${id}`));
|
|
44
|
+
this.element = element;
|
|
45
|
+
}
|
|
46
|
+
set setTabPages(value) {
|
|
47
|
+
this.tabPages = value;
|
|
48
|
+
const missing = value.filter(tp => !this.orderedTabPages.includes(tp));
|
|
49
|
+
this.orderedTabPages = this.orderedTabPages.concat(missing);
|
|
50
|
+
}
|
|
51
|
+
set restrictDragging(value) {
|
|
52
|
+
this.dragBoundarySelector = value ? 'ul' : '';
|
|
39
53
|
}
|
|
40
54
|
setActiveTab(tab) {
|
|
41
55
|
if (!tab.disabled) {
|
|
@@ -43,24 +57,38 @@ class BsTabControlComponent {
|
|
|
43
57
|
}
|
|
44
58
|
return false;
|
|
45
59
|
}
|
|
60
|
+
moveTab(ev) {
|
|
61
|
+
if (ev.previousContainer === ev.container) {
|
|
62
|
+
moveItemInArray(this.orderedTabPages, ev.previousIndex, ev.currentIndex);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
// transferArrayItem(
|
|
66
|
+
// ev.previousContainer.data,
|
|
67
|
+
// ev.container.data,
|
|
68
|
+
// ev.previousIndex,
|
|
69
|
+
// ev.currentIndex);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
46
72
|
}
|
|
47
73
|
BsTabControlComponent.tabControlCounter = 0;
|
|
48
|
-
BsTabControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BsTabControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
49
|
-
BsTabControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: BsTabControlComponent, selector: "bs-tab-control", inputs: { border: "border" }, host: { properties: { "class.d-block": "this.dBlock", "class.position-relative": "this.positionRelative" } }, queries: [{ propertyName: "
|
|
74
|
+
BsTabControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BsTabControlComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
75
|
+
BsTabControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: BsTabControlComponent, selector: "bs-tab-control", inputs: { border: "border", restrictDragging: "restrictDragging" }, host: { properties: { "class.d-block": "this.dBlock", "class.position-relative": "this.positionRelative" } }, queries: [{ propertyName: "setTabPages", predicate: BsTabPageComponent }], ngImport: i0, template: "<div class=\"overflow-hidden position-absolute mw-100 tsc\">\n\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t[cdkDropListData]=\"tabPages\"\n\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t<ng-container *ngFor=\"let tab of orderedTabPages\">\n\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" *ngIf=\"!!tab.headerTemplate\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector\" [cdkDragStartDelay]=\"1000\">\n\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<ng-container [ngTemplateOutlet]=\"tab.headerTemplate\"></ng-container>\n\t\t\t\t</label>\n\t\t\t</span>\n\t\t</ng-container>\n\t</ul>\n</div>\n<div class=\"tab-content\" bsNoNoscript [class.border]=\"border && activeTab\" [class.border-top]=\"border && !activeTab\">\n\t<ng-content></ng-content>\n</div>", 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;margin-top:-41px;top:1px}.tab-content{margin-top:48px}.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: i2.BsNoNoscriptDirective, selector: "[bsNoNoscript]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
|
|
50
76
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BsTabControlComponent, decorators: [{
|
|
51
77
|
type: Component,
|
|
52
|
-
args: [{ selector: 'bs-tab-control', template: "<div class=\"overflow-hidden position-absolute mw-100 tsc\">\n\t<ul
|
|
53
|
-
}], ctorParameters: function () { return []; }, propDecorators: { dBlock: [{
|
|
78
|
+
args: [{ selector: 'bs-tab-control', template: "<div class=\"overflow-hidden position-absolute mw-100 tsc\">\n\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t[cdkDropListData]=\"tabPages\"\n\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t<ng-container *ngFor=\"let tab of orderedTabPages\">\n\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" *ngIf=\"!!tab.headerTemplate\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector\" [cdkDragStartDelay]=\"1000\">\n\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<ng-container [ngTemplateOutlet]=\"tab.headerTemplate\"></ng-container>\n\t\t\t\t</label>\n\t\t\t</span>\n\t\t</ng-container>\n\t</ul>\n</div>\n<div class=\"tab-content\" bsNoNoscript [class.border]=\"border && activeTab\" [class.border-top]=\"border && !activeTab\">\n\t<ng-content></ng-content>\n</div>", 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;margin-top:-41px;top:1px}.tab-content{margin-top:48px}.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"] }]
|
|
79
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { dBlock: [{
|
|
54
80
|
type: HostBinding,
|
|
55
81
|
args: ['class.d-block']
|
|
56
82
|
}], positionRelative: [{
|
|
57
83
|
type: HostBinding,
|
|
58
84
|
args: ['class.position-relative']
|
|
59
|
-
}],
|
|
85
|
+
}], setTabPages: [{
|
|
60
86
|
type: ContentChildren,
|
|
61
87
|
args: [BsTabPageComponent]
|
|
62
88
|
}], border: [{
|
|
63
89
|
type: Input
|
|
90
|
+
}], restrictDragging: [{
|
|
91
|
+
type: Input
|
|
64
92
|
}] } });
|
|
65
93
|
|
|
66
94
|
class BsTabControlModule {
|
|
@@ -68,9 +96,11 @@ class BsTabControlModule {
|
|
|
68
96
|
BsTabControlModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BsTabControlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
69
97
|
BsTabControlModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.1", ngImport: i0, type: BsTabControlModule, declarations: [BsTabControlComponent,
|
|
70
98
|
BsTabPageComponent], imports: [CommonModule,
|
|
99
|
+
DragDropModule,
|
|
71
100
|
BsNoNoscriptModule], exports: [BsTabControlComponent,
|
|
72
101
|
BsTabPageComponent] });
|
|
73
102
|
BsTabControlModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BsTabControlModule, imports: [CommonModule,
|
|
103
|
+
DragDropModule,
|
|
74
104
|
BsNoNoscriptModule] });
|
|
75
105
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BsTabControlModule, decorators: [{
|
|
76
106
|
type: NgModule,
|
|
@@ -81,6 +111,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
|
|
|
81
111
|
],
|
|
82
112
|
imports: [
|
|
83
113
|
CommonModule,
|
|
114
|
+
DragDropModule,
|
|
84
115
|
BsNoNoscriptModule
|
|
85
116
|
],
|
|
86
117
|
exports: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mintplayer-ng-bootstrap-tab-control.mjs","sources":["../../../../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 { Component, ContentChild, TemplateRef, Input } from '@angular/core';\nimport { BehaviorSubject, combineLatest, map, Observable } from 'rxjs';\nimport { BsTabControlComponent } from '../tab-control/tab-control.component';\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) {\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 tabControl: BsTabControlComponent;\n tabId$: BehaviorSubject<number>;\n tabName$: Observable<string>;\n\n @Input() disabled = false;\n @ContentChild(TemplateRef) headerTemplate!: TemplateRef<any>;\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 === this\">\n <ng-content></ng-content>\n</div>","import { Component, ContentChildren, HostBinding, Input } from '@angular/core';\nimport { BehaviorSubject, map, Observable } from 'rxjs';\nimport { BsTabPageComponent } from '../tab-page/tab-page.component';\n\n@Component({\n selector: 'bs-tab-control',\n templateUrl: './tab-control.component.html',\n styleUrls: ['./tab-control.component.scss']\n})\nexport class BsTabControlComponent {\n\n constructor() {\n this.tabControlId$ = new BehaviorSubject<number>(++BsTabControlComponent.tabControlCounter);\n this.tabControlName$ = this.tabControlId$.pipe(map((id) => `bs-tab-control-${id}`));\n }\n\n @HostBinding('class.d-block') dBlock = true;\n @HostBinding('class.position-relative') positionRelative = true;\n @ContentChildren(BsTabPageComponent) tabPages!: BsTabPageComponent[];\n @Input() public border = true;\n activeTab: BsTabPageComponent | null = null;\n tabControlId$: BehaviorSubject<number>;\n tabControlName$: Observable<string>;\n static tabControlCounter = 0;\n tabCounter = 0;\n\n setActiveTab(tab: BsTabPageComponent) {\n if (!tab.disabled) {\n this.activeTab = tab;\n }\n return false;\n }\n\n}\n","<div class=\"overflow-hidden position-absolute mw-100 tsc\">\n\t<ul class=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t<ng-container *ngFor=\"let tab of tabPages\">\n\t\t\t<li class=\"nav-item\" (click)=\"setActiveTab(tab)\" *ngIf=\"!!tab.headerTemplate\">\n\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<ng-container [ngTemplateOutlet]=\"tab.headerTemplate\"></ng-container>\n\t\t\t\t</label>\n\t\t\t</li>\n\t\t</ng-container>\n\t</ul>\n</div>\n<div class=\"tab-content\" bsNoNoscript [class.border]=\"border && activeTab\" [class.border-top]=\"border && !activeTab\">\n\t<ng-content></ng-content>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsNoNoscriptModule } from '@mintplayer/ng-bootstrap/no-noscript';\nimport { BsTabControlComponent } from './tab-control/tab-control.component';\nimport { BsTabPageComponent } from './tab-page/tab-page.component';\n\n@NgModule({\n declarations: [\n BsTabControlComponent,\n BsTabPageComponent,\n ],\n imports: [\n CommonModule,\n BsNoNoscriptModule\n ],\n exports: [\n BsTabControlComponent,\n BsTabPageComponent,\n ]\n})\nexport class BsTabControlModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsTabControlComponent","i3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mintplayer-ng-bootstrap-tab-control.mjs","sources":["../../../../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 { Component, ContentChild, TemplateRef, Input, ElementRef } from '@angular/core';\nimport { BehaviorSubject, combineLatest, map, Observable } from 'rxjs';\nimport { BsTabControlComponent } from '../tab-control/tab-control.component';\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(TemplateRef) headerTemplate!: TemplateRef<any>;\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 === this\">\n <ng-content></ng-content>\n</div>","import { CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport { Component, ContentChildren, ElementRef, HostBinding, Input, QueryList, Renderer2 } from '@angular/core';\nimport { BehaviorSubject, map, Observable } from 'rxjs';\nimport { BsTabPageComponent } from '../tab-page/tab-page.component';\n\n@Component({\n selector: 'bs-tab-control',\n templateUrl: './tab-control.component.html',\n styleUrls: ['./tab-control.component.scss']\n})\nexport class BsTabControlComponent {\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 }\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 = value;\n const missing = value.filter(tp => !this.orderedTabPages.includes(tp));\n this.orderedTabPages = this.orderedTabPages.concat(missing);\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!: QueryList<BsTabPageComponent>;\n orderedTabPages: BsTabPageComponent[] = [];\n activeTab: BsTabPageComponent | null = null;\n tabControlId$: BehaviorSubject<number>;\n tabControlName$: Observable<string>;\n static tabControlCounter = 0;\n tabCounter = 0;\n\n setActiveTab(tab: BsTabPageComponent) {\n if (!tab.disabled) {\n this.activeTab = tab;\n }\n return false;\n }\n\n moveTab(ev: CdkDragDrop<QueryList<BsTabPageComponent>>) {\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}\n","<div class=\"overflow-hidden position-absolute mw-100 tsc\">\n\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t[cdkDropListData]=\"tabPages\"\n\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t<ng-container *ngFor=\"let tab of orderedTabPages\">\n\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" *ngIf=\"!!tab.headerTemplate\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector\" [cdkDragStartDelay]=\"1000\">\n\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<ng-container [ngTemplateOutlet]=\"tab.headerTemplate\"></ng-container>\n\t\t\t\t</label>\n\t\t\t</span>\n\t\t</ng-container>\n\t</ul>\n</div>\n<div class=\"tab-content\" bsNoNoscript [class.border]=\"border && activeTab\" [class.border-top]=\"border && !activeTab\">\n\t<ng-content></ng-content>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { BsNoNoscriptModule } from '@mintplayer/ng-bootstrap/no-noscript';\nimport { BsTabControlComponent } from './tab-control/tab-control.component';\nimport { BsTabPageComponent } from './tab-page/tab-page.component';\n\n@NgModule({\n declarations: [\n BsTabControlComponent,\n BsTabPageComponent,\n ],\n imports: [\n CommonModule,\n DragDropModule,\n BsNoNoscriptModule\n ],\n exports: [\n BsTabControlComponent,\n BsTabPageComponent,\n ]\n})\nexport class BsTabControlModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsTabControlComponent","i3","i2"],"mappings":"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"}
|
|
@@ -2,25 +2,28 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { TemplateRef, Component, Input, ContentChild, HostBinding, ContentChildren, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
|
+
import * as i2$1 from '@angular/cdk/drag-drop';
|
|
6
|
+
import { moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
|
|
5
7
|
import * as i2 from '@mintplayer/ng-bootstrap/no-noscript';
|
|
6
8
|
import { BsNoNoscriptModule } from '@mintplayer/ng-bootstrap/no-noscript';
|
|
7
9
|
import { BehaviorSubject, combineLatest, map } from 'rxjs';
|
|
8
10
|
|
|
9
11
|
class BsTabPageComponent {
|
|
10
|
-
constructor(tabControl) {
|
|
12
|
+
constructor(tabControl, element) {
|
|
11
13
|
this.disabled = false;
|
|
14
|
+
this.element = element;
|
|
12
15
|
this.tabControl = tabControl;
|
|
13
16
|
this.tabId$ = new BehaviorSubject(++this.tabControl.tabCounter);
|
|
14
17
|
this.tabName$ = combineLatest([this.tabControl.tabControlName$, this.tabId$])
|
|
15
18
|
.pipe(map(([tabControlName, tabId]) => `${tabControlName}-${tabId}`));
|
|
16
19
|
}
|
|
17
20
|
}
|
|
18
|
-
BsTabPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BsTabPageComponent, deps: [{ token: BsTabControlComponent }], target: i0.ɵɵFactoryTarget.Component });
|
|
21
|
+
BsTabPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BsTabPageComponent, deps: [{ token: BsTabControlComponent }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
19
22
|
BsTabPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: BsTabPageComponent, selector: "bs-tab-page", inputs: { disabled: "disabled" }, queries: [{ propertyName: "headerTemplate", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<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 === this\">\n <ng-content></ng-content>\n</div>", styles: [".tab-page-content{display:none}input[type=radio].noscript:checked+.tab-page-content{display:block}\n"], dependencies: [{ kind: "directive", type: i2.BsNoNoscriptDirective, selector: "[bsNoNoscript]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
|
|
20
23
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BsTabPageComponent, decorators: [{
|
|
21
24
|
type: Component,
|
|
22
25
|
args: [{ selector: 'bs-tab-page', template: "<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 === this\">\n <ng-content></ng-content>\n</div>", styles: [".tab-page-content{display:none}input[type=radio].noscript:checked+.tab-page-content{display:block}\n"] }]
|
|
23
|
-
}], ctorParameters: function () { return [{ type: BsTabControlComponent }]; }, propDecorators: { disabled: [{
|
|
26
|
+
}], ctorParameters: function () { return [{ type: BsTabControlComponent }, { type: i0.ElementRef }]; }, propDecorators: { disabled: [{
|
|
24
27
|
type: Input
|
|
25
28
|
}], headerTemplate: [{
|
|
26
29
|
type: ContentChild,
|
|
@@ -28,14 +31,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
|
|
|
28
31
|
}] } });
|
|
29
32
|
|
|
30
33
|
class BsTabControlComponent {
|
|
31
|
-
constructor() {
|
|
34
|
+
constructor(element) {
|
|
32
35
|
this.dBlock = true;
|
|
33
36
|
this.positionRelative = true;
|
|
34
37
|
this.border = true;
|
|
38
|
+
this.dragBoundarySelector = '';
|
|
39
|
+
this.orderedTabPages = [];
|
|
35
40
|
this.activeTab = null;
|
|
36
41
|
this.tabCounter = 0;
|
|
37
42
|
this.tabControlId$ = new BehaviorSubject(++BsTabControlComponent.tabControlCounter);
|
|
38
43
|
this.tabControlName$ = this.tabControlId$.pipe(map((id) => `bs-tab-control-${id}`));
|
|
44
|
+
this.element = element;
|
|
45
|
+
}
|
|
46
|
+
set setTabPages(value) {
|
|
47
|
+
this.tabPages = value;
|
|
48
|
+
const missing = value.filter(tp => !this.orderedTabPages.includes(tp));
|
|
49
|
+
this.orderedTabPages = this.orderedTabPages.concat(missing);
|
|
50
|
+
}
|
|
51
|
+
set restrictDragging(value) {
|
|
52
|
+
this.dragBoundarySelector = value ? 'ul' : '';
|
|
39
53
|
}
|
|
40
54
|
setActiveTab(tab) {
|
|
41
55
|
if (!tab.disabled) {
|
|
@@ -43,24 +57,38 @@ class BsTabControlComponent {
|
|
|
43
57
|
}
|
|
44
58
|
return false;
|
|
45
59
|
}
|
|
60
|
+
moveTab(ev) {
|
|
61
|
+
if (ev.previousContainer === ev.container) {
|
|
62
|
+
moveItemInArray(this.orderedTabPages, ev.previousIndex, ev.currentIndex);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
// transferArrayItem(
|
|
66
|
+
// ev.previousContainer.data,
|
|
67
|
+
// ev.container.data,
|
|
68
|
+
// ev.previousIndex,
|
|
69
|
+
// ev.currentIndex);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
46
72
|
}
|
|
47
73
|
BsTabControlComponent.tabControlCounter = 0;
|
|
48
|
-
BsTabControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BsTabControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
49
|
-
BsTabControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: BsTabControlComponent, selector: "bs-tab-control", inputs: { border: "border" }, host: { properties: { "class.d-block": "this.dBlock", "class.position-relative": "this.positionRelative" } }, queries: [{ propertyName: "
|
|
74
|
+
BsTabControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BsTabControlComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
75
|
+
BsTabControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: BsTabControlComponent, selector: "bs-tab-control", inputs: { border: "border", restrictDragging: "restrictDragging" }, host: { properties: { "class.d-block": "this.dBlock", "class.position-relative": "this.positionRelative" } }, queries: [{ propertyName: "setTabPages", predicate: BsTabPageComponent }], ngImport: i0, template: "<div class=\"overflow-hidden position-absolute mw-100 tsc\">\n\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t[cdkDropListData]=\"tabPages\"\n\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t<ng-container *ngFor=\"let tab of orderedTabPages\">\n\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" *ngIf=\"!!tab.headerTemplate\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector\" [cdkDragStartDelay]=\"1000\">\n\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<ng-container [ngTemplateOutlet]=\"tab.headerTemplate\"></ng-container>\n\t\t\t\t</label>\n\t\t\t</span>\n\t\t</ng-container>\n\t</ul>\n</div>\n<div class=\"tab-content\" bsNoNoscript [class.border]=\"border && activeTab\" [class.border-top]=\"border && !activeTab\">\n\t<ng-content></ng-content>\n</div>", 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;margin-top:-41px;top:1px}.tab-content{margin-top:48px}.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: i2.BsNoNoscriptDirective, selector: "[bsNoNoscript]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
|
|
50
76
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BsTabControlComponent, decorators: [{
|
|
51
77
|
type: Component,
|
|
52
|
-
args: [{ selector: 'bs-tab-control', template: "<div class=\"overflow-hidden position-absolute mw-100 tsc\">\n\t<ul
|
|
53
|
-
}], ctorParameters: function () { return []; }, propDecorators: { dBlock: [{
|
|
78
|
+
args: [{ selector: 'bs-tab-control', template: "<div class=\"overflow-hidden position-absolute mw-100 tsc\">\n\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t[cdkDropListData]=\"tabPages\"\n\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t<ng-container *ngFor=\"let tab of orderedTabPages\">\n\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" *ngIf=\"!!tab.headerTemplate\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector\" [cdkDragStartDelay]=\"1000\">\n\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<ng-container [ngTemplateOutlet]=\"tab.headerTemplate\"></ng-container>\n\t\t\t\t</label>\n\t\t\t</span>\n\t\t</ng-container>\n\t</ul>\n</div>\n<div class=\"tab-content\" bsNoNoscript [class.border]=\"border && activeTab\" [class.border-top]=\"border && !activeTab\">\n\t<ng-content></ng-content>\n</div>", 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;margin-top:-41px;top:1px}.tab-content{margin-top:48px}.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"] }]
|
|
79
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { dBlock: [{
|
|
54
80
|
type: HostBinding,
|
|
55
81
|
args: ['class.d-block']
|
|
56
82
|
}], positionRelative: [{
|
|
57
83
|
type: HostBinding,
|
|
58
84
|
args: ['class.position-relative']
|
|
59
|
-
}],
|
|
85
|
+
}], setTabPages: [{
|
|
60
86
|
type: ContentChildren,
|
|
61
87
|
args: [BsTabPageComponent]
|
|
62
88
|
}], border: [{
|
|
63
89
|
type: Input
|
|
90
|
+
}], restrictDragging: [{
|
|
91
|
+
type: Input
|
|
64
92
|
}] } });
|
|
65
93
|
|
|
66
94
|
class BsTabControlModule {
|
|
@@ -68,9 +96,11 @@ class BsTabControlModule {
|
|
|
68
96
|
BsTabControlModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BsTabControlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
69
97
|
BsTabControlModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.1", ngImport: i0, type: BsTabControlModule, declarations: [BsTabControlComponent,
|
|
70
98
|
BsTabPageComponent], imports: [CommonModule,
|
|
99
|
+
DragDropModule,
|
|
71
100
|
BsNoNoscriptModule], exports: [BsTabControlComponent,
|
|
72
101
|
BsTabPageComponent] });
|
|
73
102
|
BsTabControlModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BsTabControlModule, imports: [CommonModule,
|
|
103
|
+
DragDropModule,
|
|
74
104
|
BsNoNoscriptModule] });
|
|
75
105
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BsTabControlModule, decorators: [{
|
|
76
106
|
type: NgModule,
|
|
@@ -81,6 +111,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
|
|
|
81
111
|
],
|
|
82
112
|
imports: [
|
|
83
113
|
CommonModule,
|
|
114
|
+
DragDropModule,
|
|
84
115
|
BsNoNoscriptModule
|
|
85
116
|
],
|
|
86
117
|
exports: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mintplayer-ng-bootstrap-tab-control.mjs","sources":["../../../../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 { Component, ContentChild, TemplateRef, Input } from '@angular/core';\nimport { BehaviorSubject, combineLatest, map, Observable } from 'rxjs';\nimport { BsTabControlComponent } from '../tab-control/tab-control.component';\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) {\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 tabControl: BsTabControlComponent;\n tabId$: BehaviorSubject<number>;\n tabName$: Observable<string>;\n\n @Input() disabled = false;\n @ContentChild(TemplateRef) headerTemplate!: TemplateRef<any>;\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 === this\">\n <ng-content></ng-content>\n</div>","import { Component, ContentChildren, HostBinding, Input } from '@angular/core';\nimport { BehaviorSubject, map, Observable } from 'rxjs';\nimport { BsTabPageComponent } from '../tab-page/tab-page.component';\n\n@Component({\n selector: 'bs-tab-control',\n templateUrl: './tab-control.component.html',\n styleUrls: ['./tab-control.component.scss']\n})\nexport class BsTabControlComponent {\n\n constructor() {\n this.tabControlId$ = new BehaviorSubject<number>(++BsTabControlComponent.tabControlCounter);\n this.tabControlName$ = this.tabControlId$.pipe(map((id) => `bs-tab-control-${id}`));\n }\n\n @HostBinding('class.d-block') dBlock = true;\n @HostBinding('class.position-relative') positionRelative = true;\n @ContentChildren(BsTabPageComponent) tabPages!: BsTabPageComponent[];\n @Input() public border = true;\n activeTab: BsTabPageComponent | null = null;\n tabControlId$: BehaviorSubject<number>;\n tabControlName$: Observable<string>;\n static tabControlCounter = 0;\n tabCounter = 0;\n\n setActiveTab(tab: BsTabPageComponent) {\n if (!tab.disabled) {\n this.activeTab = tab;\n }\n return false;\n }\n\n}\n","<div class=\"overflow-hidden position-absolute mw-100 tsc\">\n\t<ul class=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t<ng-container *ngFor=\"let tab of tabPages\">\n\t\t\t<li class=\"nav-item\" (click)=\"setActiveTab(tab)\" *ngIf=\"!!tab.headerTemplate\">\n\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<ng-container [ngTemplateOutlet]=\"tab.headerTemplate\"></ng-container>\n\t\t\t\t</label>\n\t\t\t</li>\n\t\t</ng-container>\n\t</ul>\n</div>\n<div class=\"tab-content\" bsNoNoscript [class.border]=\"border && activeTab\" [class.border-top]=\"border && !activeTab\">\n\t<ng-content></ng-content>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsNoNoscriptModule } from '@mintplayer/ng-bootstrap/no-noscript';\nimport { BsTabControlComponent } from './tab-control/tab-control.component';\nimport { BsTabPageComponent } from './tab-page/tab-page.component';\n\n@NgModule({\n declarations: [\n BsTabControlComponent,\n BsTabPageComponent,\n ],\n imports: [\n CommonModule,\n BsNoNoscriptModule\n ],\n exports: [\n BsTabControlComponent,\n BsTabPageComponent,\n ]\n})\nexport class BsTabControlModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsTabControlComponent","i3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mintplayer-ng-bootstrap-tab-control.mjs","sources":["../../../../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 { Component, ContentChild, TemplateRef, Input, ElementRef } from '@angular/core';\nimport { BehaviorSubject, combineLatest, map, Observable } from 'rxjs';\nimport { BsTabControlComponent } from '../tab-control/tab-control.component';\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(TemplateRef) headerTemplate!: TemplateRef<any>;\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 === this\">\n <ng-content></ng-content>\n</div>","import { CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport { Component, ContentChildren, ElementRef, HostBinding, Input, QueryList, Renderer2 } from '@angular/core';\nimport { BehaviorSubject, map, Observable } from 'rxjs';\nimport { BsTabPageComponent } from '../tab-page/tab-page.component';\n\n@Component({\n selector: 'bs-tab-control',\n templateUrl: './tab-control.component.html',\n styleUrls: ['./tab-control.component.scss']\n})\nexport class BsTabControlComponent {\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 }\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 = value;\n const missing = value.filter(tp => !this.orderedTabPages.includes(tp));\n this.orderedTabPages = this.orderedTabPages.concat(missing);\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!: QueryList<BsTabPageComponent>;\n orderedTabPages: BsTabPageComponent[] = [];\n activeTab: BsTabPageComponent | null = null;\n tabControlId$: BehaviorSubject<number>;\n tabControlName$: Observable<string>;\n static tabControlCounter = 0;\n tabCounter = 0;\n\n setActiveTab(tab: BsTabPageComponent) {\n if (!tab.disabled) {\n this.activeTab = tab;\n }\n return false;\n }\n\n moveTab(ev: CdkDragDrop<QueryList<BsTabPageComponent>>) {\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}\n","<div class=\"overflow-hidden position-absolute mw-100 tsc\">\n\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t[cdkDropListData]=\"tabPages\"\n\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t<ng-container *ngFor=\"let tab of orderedTabPages\">\n\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" *ngIf=\"!!tab.headerTemplate\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector\" [cdkDragStartDelay]=\"1000\">\n\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<ng-container [ngTemplateOutlet]=\"tab.headerTemplate\"></ng-container>\n\t\t\t\t</label>\n\t\t\t</span>\n\t\t</ng-container>\n\t</ul>\n</div>\n<div class=\"tab-content\" bsNoNoscript [class.border]=\"border && activeTab\" [class.border-top]=\"border && !activeTab\">\n\t<ng-content></ng-content>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { BsNoNoscriptModule } from '@mintplayer/ng-bootstrap/no-noscript';\nimport { BsTabControlComponent } from './tab-control/tab-control.component';\nimport { BsTabPageComponent } from './tab-page/tab-page.component';\n\n@NgModule({\n declarations: [\n BsTabControlComponent,\n BsTabPageComponent,\n ],\n imports: [\n CommonModule,\n DragDropModule,\n BsNoNoscriptModule\n ],\n exports: [\n BsTabControlComponent,\n BsTabPageComponent,\n ]\n})\nexport class BsTabControlModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsTabControlComponent","i3","i2"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,18 +1,26 @@
|
|
|
1
|
+
import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
2
|
+
import { ElementRef, QueryList } from '@angular/core';
|
|
1
3
|
import { BehaviorSubject, Observable } from 'rxjs';
|
|
2
4
|
import { BsTabPageComponent } from '../tab-page/tab-page.component';
|
|
3
5
|
import * as i0 from "@angular/core";
|
|
4
6
|
export declare class BsTabControlComponent {
|
|
5
|
-
constructor();
|
|
7
|
+
constructor(element: ElementRef<any>);
|
|
6
8
|
dBlock: boolean;
|
|
7
9
|
positionRelative: boolean;
|
|
8
|
-
|
|
10
|
+
set setTabPages(value: QueryList<BsTabPageComponent>);
|
|
9
11
|
border: boolean;
|
|
12
|
+
set restrictDragging(value: boolean);
|
|
13
|
+
dragBoundarySelector: string;
|
|
14
|
+
element: ElementRef<any>;
|
|
15
|
+
tabPages: QueryList<BsTabPageComponent>;
|
|
16
|
+
orderedTabPages: BsTabPageComponent[];
|
|
10
17
|
activeTab: BsTabPageComponent | null;
|
|
11
18
|
tabControlId$: BehaviorSubject<number>;
|
|
12
19
|
tabControlName$: Observable<string>;
|
|
13
20
|
static tabControlCounter: number;
|
|
14
21
|
tabCounter: number;
|
|
15
22
|
setActiveTab(tab: BsTabPageComponent): boolean;
|
|
23
|
+
moveTab(ev: CdkDragDrop<QueryList<BsTabPageComponent>>): void;
|
|
16
24
|
static ɵfac: i0.ɵɵFactoryDeclaration<BsTabControlComponent, never>;
|
|
17
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<BsTabControlComponent, "bs-tab-control", never, { "border": "border"; }, {}, ["
|
|
25
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BsTabControlComponent, "bs-tab-control", never, { "border": "border"; "restrictDragging": "restrictDragging"; }, {}, ["setTabPages"], ["*"], false, never>;
|
|
18
26
|
}
|
|
@@ -2,9 +2,10 @@ import * as i0 from "@angular/core";
|
|
|
2
2
|
import * as i1 from "./tab-control/tab-control.component";
|
|
3
3
|
import * as i2 from "./tab-page/tab-page.component";
|
|
4
4
|
import * as i3 from "@angular/common";
|
|
5
|
-
import * as i4 from "@
|
|
5
|
+
import * as i4 from "@angular/cdk/drag-drop";
|
|
6
|
+
import * as i5 from "@mintplayer/ng-bootstrap/no-noscript";
|
|
6
7
|
export declare class BsTabControlModule {
|
|
7
8
|
static ɵfac: i0.ɵɵFactoryDeclaration<BsTabControlModule, never>;
|
|
8
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<BsTabControlModule, [typeof i1.BsTabControlComponent, typeof i2.BsTabPageComponent], [typeof i3.CommonModule, typeof i4.BsNoNoscriptModule], [typeof i1.BsTabControlComponent, typeof i2.BsTabPageComponent]>;
|
|
9
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<BsTabControlModule, [typeof i1.BsTabControlComponent, typeof i2.BsTabPageComponent], [typeof i3.CommonModule, typeof i4.DragDropModule, typeof i5.BsNoNoscriptModule], [typeof i1.BsTabControlComponent, typeof i2.BsTabPageComponent]>;
|
|
9
10
|
static ɵinj: i0.ɵɵInjectorDeclaration<BsTabControlModule>;
|
|
10
11
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { TemplateRef } from '@angular/core';
|
|
1
|
+
import { TemplateRef, ElementRef } from '@angular/core';
|
|
2
2
|
import { BehaviorSubject, Observable } from 'rxjs';
|
|
3
3
|
import { BsTabControlComponent } from '../tab-control/tab-control.component';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class BsTabPageComponent {
|
|
6
|
-
constructor(tabControl: BsTabControlComponent);
|
|
6
|
+
constructor(tabControl: BsTabControlComponent, element: ElementRef<any>);
|
|
7
|
+
element: ElementRef<any>;
|
|
7
8
|
tabControl: BsTabControlComponent;
|
|
8
9
|
tabId$: BehaviorSubject<number>;
|
|
9
10
|
tabName$: Observable<string>;
|