@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.
@@ -1,18 +1,31 @@
1
- import { Component, ContentChildren, HostBinding, Input } from '@angular/core';
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 "@mintplayer/ng-bootstrap/no-noscript";
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: "tabPages", predicate: BsTabPageComponent }], ngImport: i0, template: "<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>", 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.BsNoNoscriptDirective, selector: "[bsNoNoscript]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
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 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>", 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"] }]
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
- }], tabPages: [{
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC90YWItY29udHJvbC9zcmMvdGFiLWNvbnRyb2wvdGFiLWNvbnRyb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC90YWItY29udHJvbC9zcmMvdGFiLWNvbnRyb2wvdGFiLWNvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7OztBQU9wRSxNQUFNLE9BQU8scUJBQXFCO0lBRWhDO1FBSzhCLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDSixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFFaEQsV0FBTSxHQUFHLElBQUksQ0FBQztRQUM5QixjQUFTLEdBQThCLElBQUksQ0FBQztRQUk1QyxlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBWmIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDNUYsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQVlELFlBQVksQ0FBQyxHQUF1QjtRQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQztTQUN0QjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7QUFSTSx1Q0FBaUIsR0FBRyxDQUFDLENBQUM7a0hBZGxCLHFCQUFxQjtzR0FBckIscUJBQXFCLDJOQVNmLGtCQUFrQiw2QkNsQnJDLHkxQkFhTTsyRkRKTyxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsZ0JBQWdCOzBFQVdJLE1BQU07c0JBQW5DLFdBQVc7dUJBQUMsZUFBZTtnQkFDWSxnQkFBZ0I7c0JBQXZELFdBQVc7dUJBQUMseUJBQXlCO2dCQUNELFFBQVE7c0JBQTVDLGVBQWU7dUJBQUMsa0JBQWtCO2dCQUNuQixNQUFNO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIEhvc3RCaW5kaW5nLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJzVGFiUGFnZUNvbXBvbmVudCB9IGZyb20gJy4uL3RhYi1wYWdlL3RhYi1wYWdlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JzLXRhYi1jb250cm9sJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYi1jb250cm9sLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFiLWNvbnRyb2wuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCc1RhYkNvbnRyb2xDb21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMudGFiQ29udHJvbElkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigrK0JzVGFiQ29udHJvbENvbXBvbmVudC50YWJDb250cm9sQ291bnRlcik7XG4gICAgdGhpcy50YWJDb250cm9sTmFtZSQgPSB0aGlzLnRhYkNvbnRyb2xJZCQucGlwZShtYXAoKGlkKSA9PiBgYnMtdGFiLWNvbnRyb2wtJHtpZH1gKSk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmQtYmxvY2snKSBkQmxvY2sgPSB0cnVlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnBvc2l0aW9uLXJlbGF0aXZlJykgcG9zaXRpb25SZWxhdGl2ZSA9IHRydWU7XG4gIEBDb250ZW50Q2hpbGRyZW4oQnNUYWJQYWdlQ29tcG9uZW50KSB0YWJQYWdlcyE6IEJzVGFiUGFnZUNvbXBvbmVudFtdO1xuICBASW5wdXQoKSBwdWJsaWMgYm9yZGVyID0gdHJ1ZTtcbiAgYWN0aXZlVGFiOiBCc1RhYlBhZ2VDb21wb25lbnQgfCBudWxsID0gbnVsbDtcbiAgdGFiQ29udHJvbElkJDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj47XG4gIHRhYkNvbnRyb2xOYW1lJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBzdGF0aWMgdGFiQ29udHJvbENvdW50ZXIgPSAwO1xuICB0YWJDb3VudGVyID0gMDtcblxuICBzZXRBY3RpdmVUYWIodGFiOiBCc1RhYlBhZ2VDb21wb25lbnQpIHtcbiAgICBpZiAoIXRhYi5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5hY3RpdmVUYWIgPSB0YWI7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwib3ZlcmZsb3ctaGlkZGVuIHBvc2l0aW9uLWFic29sdXRlIG13LTEwMCB0c2NcIj5cblx0PHVsIGNsYXNzPVwibmF2IG5hdi10YWJzIGZsZXgtbm93cmFwIG92ZXJmbG93LXgtYXV0byBvdmVyZmxvdy15LWhpZGRlblwiPlxuXHRcdDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJQYWdlc1wiPlxuXHRcdFx0PGxpIGNsYXNzPVwibmF2LWl0ZW1cIiAoY2xpY2spPVwic2V0QWN0aXZlVGFiKHRhYilcIiAqbmdJZj1cIiEhdGFiLmhlYWRlclRlbXBsYXRlXCI+XG5cdFx0XHRcdDxsYWJlbCBbZm9yXT1cInRhYi50YWJOYW1lJCB8IGFzeW5jXCIgY2xhc3M9XCJuYXYtbGluayB0ZXh0LW5vd3JhcCBjdXJzb3ItcG9pbnRlclwiIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09PSB0YWJcIiBbY2xhc3MuZGlzYWJsZWRdPVwidGFiLmRpc2FibGVkXCIgW2F0dHIuYXJpYS1jdXJyZW50XT1cImFjdGl2ZVRhYiA9PT0gdGFiID8gJ3BhZ2UnIDogbnVsbFwiIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwidGFiLmRpc2FibGVkXCI+XG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0YWIuaGVhZGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0PC9sYWJlbD5cblx0XHRcdDwvbGk+XG5cdFx0PC9uZy1jb250YWluZXI+XG5cdDwvdWw+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJ0YWItY29udGVudFwiIGJzTm9Ob3NjcmlwdCBbY2xhc3MuYm9yZGVyXT1cImJvcmRlciAmJiBhY3RpdmVUYWJcIiBbY2xhc3MuYm9yZGVyLXRvcF09XCJib3JkZXIgJiYgIWFjdGl2ZVRhYlwiPlxuXHQ8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj4iXX0=
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWNvbnRyb2wubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC90YWItY29udHJvbC9zcmMvdGFiLWNvbnRyb2wubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQWdCbkUsTUFBTSxPQUFPLGtCQUFrQjs7K0dBQWxCLGtCQUFrQjtnSEFBbEIsa0JBQWtCLGlCQVozQixxQkFBcUI7UUFDckIsa0JBQWtCLGFBR2xCLFlBQVk7UUFDWixrQkFBa0IsYUFHbEIscUJBQXFCO1FBQ3JCLGtCQUFrQjtnSEFHVCxrQkFBa0IsWUFSM0IsWUFBWTtRQUNaLGtCQUFrQjsyRkFPVCxrQkFBa0I7a0JBZDlCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLHFCQUFxQjt3QkFDckIsa0JBQWtCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixrQkFBa0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRTt3QkFDUCxxQkFBcUI7d0JBQ3JCLGtCQUFrQjtxQkFDbkI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJzTm9Ob3NjcmlwdE1vZHVsZSB9IGZyb20gJ0BtaW50cGxheWVyL25nLWJvb3RzdHJhcC9uby1ub3NjcmlwdCc7XG5pbXBvcnQgeyBCc1RhYkNvbnRyb2xDb21wb25lbnQgfSBmcm9tICcuL3RhYi1jb250cm9sL3RhYi1jb250cm9sLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCc1RhYlBhZ2VDb21wb25lbnQgfSBmcm9tICcuL3RhYi1wYWdlL3RhYi1wYWdlLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEJzVGFiQ29udHJvbENvbXBvbmVudCxcbiAgICBCc1RhYlBhZ2VDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQnNOb05vc2NyaXB0TW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBCc1RhYkNvbnRyb2xDb21wb25lbnQsXG4gICAgQnNUYWJQYWdlQ29tcG9uZW50LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEJzVGFiQ29udHJvbE1vZHVsZSB7IH1cbiJdfQ==
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC90YWItY29udHJvbC9zcmMvdGFiLXBhZ2UvdGFiLXBhZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9taW50cGxheWVyLW5nLWJvb3RzdHJhcC90YWItY29udHJvbC9zcmMvdGFiLXBhZ2UvdGFiLXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7O0FBTzdFLE1BQU0sT0FBTyxrQkFBa0I7SUFFN0IsWUFBWSxVQUFpQztRQVdwQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBVnhCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUUsR0FBRyxjQUFjLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7OytHQVBVLGtCQUFrQjttR0FBbEIsa0JBQWtCLGlJQWNmLFdBQVcsZ0RDdkIzQix5UEFHTTsyRkRNTyxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsYUFBYTs0R0FpQmQsUUFBUTtzQkFBaEIsS0FBSztnQkFDcUIsY0FBYztzQkFBeEMsWUFBWTt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIFRlbXBsYXRlUmVmLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJzVGFiQ29udHJvbENvbXBvbmVudCB9IGZyb20gJy4uL3RhYi1jb250cm9sL3RhYi1jb250cm9sLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2JzLXRhYi1wYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYi1wYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFiLXBhZ2UuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCc1RhYlBhZ2VDb21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKHRhYkNvbnRyb2w6IEJzVGFiQ29udHJvbENvbXBvbmVudCkge1xuICAgIHRoaXMudGFiQ29udHJvbCA9IHRhYkNvbnRyb2w7XG4gICAgdGhpcy50YWJJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oKyt0aGlzLnRhYkNvbnRyb2wudGFiQ291bnRlcik7XG4gICAgdGhpcy50YWJOYW1lJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMudGFiQ29udHJvbC50YWJDb250cm9sTmFtZSQsIHRoaXMudGFiSWQkXSlcbiAgICAgIC5waXBlKG1hcCgoW3RhYkNvbnRyb2xOYW1lLCB0YWJJZF0pID0+ICBgJHt0YWJDb250cm9sTmFtZX0tJHt0YWJJZH1gKSk7XG4gIH1cblxuICB0YWJDb250cm9sOiBCc1RhYkNvbnRyb2xDb21wb25lbnQ7XG4gIHRhYklkJDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj47XG4gIHRhYk5hbWUkOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZikgaGVhZGVyVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG59XG4iLCI8aW5wdXQgdHlwZT1cInJhZGlvXCIgYnNOb05vc2NyaXB0IGNsYXNzPVwiZC1ub25lXCIgW25hbWVdPVwidGFiQ29udHJvbC50YWJDb250cm9sTmFtZSQgfCBhc3luY1wiIFtpZF09XCJ0YWJOYW1lJCB8IGFzeW5jXCI+XG48ZGl2IGNsYXNzPVwidGFiLXBhZ2UtY29udGVudFwiIFtjbGFzcy5kLWJsb2NrXT1cInRhYkNvbnRyb2wuYWN0aXZlVGFiID09PSB0aGlzXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+Il19
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: "tabPages", predicate: BsTabPageComponent }], ngImport: i0, template: "<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>", 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.BsNoNoscriptDirective, selector: "[bsNoNoscript]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
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 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>", 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"] }]
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
- }], tabPages: [{
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: "tabPages", predicate: BsTabPageComponent }], ngImport: i0, template: "<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>", 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.BsNoNoscriptDirective, selector: "[bsNoNoscript]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
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 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>", 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"] }]
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
- }], tabPages: [{
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,7 +1,7 @@
1
1
  {
2
2
  "name": "@mintplayer/ng-bootstrap",
3
3
  "private": false,
4
- "version": "15.20.1",
4
+ "version": "15.20.2",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/MintPlayer/mintplayer-ng-bootstrap",
@@ -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
- tabPages: BsTabPageComponent[];
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"; }, {}, ["tabPages"], ["*"], false, never>;
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 "@mintplayer/ng-bootstrap/no-noscript";
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>;