@mintplayer/ng-bootstrap 21.0.0 → 21.1.0

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.
Files changed (155) hide show
  1. package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs +33 -46
  2. package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs.map +1 -1
  3. package/fesm2022/mintplayer-ng-bootstrap-alert.mjs +12 -30
  4. package/fesm2022/mintplayer-ng-bootstrap-alert.mjs.map +1 -1
  5. package/fesm2022/mintplayer-ng-bootstrap-badge.mjs +6 -18
  6. package/fesm2022/mintplayer-ng-bootstrap-badge.mjs.map +1 -1
  7. package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs +31 -65
  8. package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs.map +1 -1
  9. package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs +200 -132
  10. package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs.map +1 -1
  11. package/fesm2022/mintplayer-ng-bootstrap-close.mjs +5 -7
  12. package/fesm2022/mintplayer-ng-bootstrap-close.mjs.map +1 -1
  13. package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs +14 -17
  14. package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs.map +1 -1
  15. package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs +231 -347
  16. package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs.map +1 -1
  17. package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs +43 -39
  18. package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs.map +1 -1
  19. package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs +7 -35
  20. package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs.map +1 -1
  21. package/fesm2022/mintplayer-ng-bootstrap-dock.mjs +1 -0
  22. package/fesm2022/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
  23. package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs +1 -1
  24. package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs.map +1 -1
  25. package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs +46 -86
  26. package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs.map +1 -1
  27. package/fesm2022/mintplayer-ng-bootstrap-enhanced-paste.mjs +7 -7
  28. package/fesm2022/mintplayer-ng-bootstrap-enhanced-paste.mjs.map +1 -1
  29. package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs +7 -6
  30. package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs.map +1 -1
  31. package/fesm2022/mintplayer-ng-bootstrap-grid.mjs +32 -74
  32. package/fesm2022/mintplayer-ng-bootstrap-grid.mjs.map +1 -1
  33. package/fesm2022/mintplayer-ng-bootstrap-let.mjs +6 -7
  34. package/fesm2022/mintplayer-ng-bootstrap-let.mjs.map +1 -1
  35. package/fesm2022/mintplayer-ng-bootstrap-markdown.mjs +18 -18
  36. package/fesm2022/mintplayer-ng-bootstrap-markdown.mjs.map +1 -1
  37. package/fesm2022/mintplayer-ng-bootstrap-modal.mjs +20 -22
  38. package/fesm2022/mintplayer-ng-bootstrap-modal.mjs.map +1 -1
  39. package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs +16 -10
  40. package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs.map +1 -1
  41. package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs +8 -28
  42. package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs.map +1 -1
  43. package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs +204 -265
  44. package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs.map +1 -1
  45. package/fesm2022/mintplayer-ng-bootstrap-navigation-lock.mjs +8 -21
  46. package/fesm2022/mintplayer-ng-bootstrap-navigation-lock.mjs.map +1 -1
  47. package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs +43 -38
  48. package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs.map +1 -1
  49. package/fesm2022/mintplayer-ng-bootstrap-ordinal-number.mjs +6 -6
  50. package/fesm2022/mintplayer-ng-bootstrap-ordinal-number.mjs.map +1 -1
  51. package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs +59 -120
  52. package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs.map +1 -1
  53. package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs +11 -25
  54. package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs.map +1 -1
  55. package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs +8 -28
  56. package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs.map +1 -1
  57. package/fesm2022/mintplayer-ng-bootstrap-popover.mjs +67 -103
  58. package/fesm2022/mintplayer-ng-bootstrap-popover.mjs.map +1 -1
  59. package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs +34 -63
  60. package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs.map +1 -1
  61. package/fesm2022/mintplayer-ng-bootstrap-range.mjs +6 -6
  62. package/fesm2022/mintplayer-ng-bootstrap-range.mjs.map +1 -1
  63. package/fesm2022/mintplayer-ng-bootstrap-rating.mjs +19 -47
  64. package/fesm2022/mintplayer-ng-bootstrap-rating.mjs.map +1 -1
  65. package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs +35 -41
  66. package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs.map +1 -1
  67. package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs +205 -779
  68. package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs.map +1 -1
  69. package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs +34 -39
  70. package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs.map +1 -1
  71. package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs +74 -100
  72. package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs.map +1 -1
  73. package/fesm2022/mintplayer-ng-bootstrap-select.mjs +37 -79
  74. package/fesm2022/mintplayer-ng-bootstrap-select.mjs.map +1 -1
  75. package/fesm2022/mintplayer-ng-bootstrap-select2.mjs +78 -45
  76. package/fesm2022/mintplayer-ng-bootstrap-select2.mjs.map +1 -1
  77. package/fesm2022/mintplayer-ng-bootstrap-shell.mjs +16 -26
  78. package/fesm2022/mintplayer-ng-bootstrap-shell.mjs.map +1 -1
  79. package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs +14 -40
  80. package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs.map +1 -1
  81. package/fesm2022/mintplayer-ng-bootstrap-spinner.mjs +8 -32
  82. package/fesm2022/mintplayer-ng-bootstrap-spinner.mjs.map +1 -1
  83. package/fesm2022/mintplayer-ng-bootstrap-splitter.mjs +70 -76
  84. package/fesm2022/mintplayer-ng-bootstrap-splitter.mjs.map +1 -1
  85. package/fesm2022/mintplayer-ng-bootstrap-sticky-footer.mjs +11 -11
  86. package/fesm2022/mintplayer-ng-bootstrap-sticky-footer.mjs.map +1 -1
  87. package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs +53 -99
  88. package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs.map +1 -1
  89. package/fesm2022/mintplayer-ng-bootstrap-table.mjs +7 -38
  90. package/fesm2022/mintplayer-ng-bootstrap-table.mjs.map +1 -1
  91. package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs +23 -49
  92. package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs.map +1 -1
  93. package/fesm2022/mintplayer-ng-bootstrap-toast.mjs +33 -38
  94. package/fesm2022/mintplayer-ng-bootstrap-toast.mjs.map +1 -1
  95. package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs +45 -98
  96. package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs.map +1 -1
  97. package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs +12 -24
  98. package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs.map +1 -1
  99. package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs +21 -43
  100. package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs.map +1 -1
  101. package/fesm2022/mintplayer-ng-bootstrap-trust-html.mjs +6 -6
  102. package/fesm2022/mintplayer-ng-bootstrap-trust-html.mjs.map +1 -1
  103. package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs +29 -49
  104. package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs.map +1 -1
  105. package/package.json +5 -5
  106. package/types/mintplayer-ng-bootstrap-accordion.d.ts +11 -15
  107. package/types/mintplayer-ng-bootstrap-alert.d.ts +4 -9
  108. package/types/mintplayer-ng-bootstrap-badge.d.ts +5 -9
  109. package/types/mintplayer-ng-bootstrap-calendar.d.ts +14 -22
  110. package/types/mintplayer-ng-bootstrap-carousel.d.ts +41 -35
  111. package/types/mintplayer-ng-bootstrap-close.d.ts +1 -2
  112. package/types/mintplayer-ng-bootstrap-code-snippet.d.ts +4 -5
  113. package/types/mintplayer-ng-bootstrap-color-picker.d.ts +70 -97
  114. package/types/mintplayer-ng-bootstrap-datatable.d.ts +11 -11
  115. package/types/mintplayer-ng-bootstrap-datepicker.d.ts +6 -13
  116. package/types/mintplayer-ng-bootstrap-dropdown.d.ts +14 -20
  117. package/types/mintplayer-ng-bootstrap-enhanced-paste.d.ts +1 -3
  118. package/types/mintplayer-ng-bootstrap-file-upload.d.ts +1 -1
  119. package/types/mintplayer-ng-bootstrap-grid.d.ts +14 -26
  120. package/types/mintplayer-ng-bootstrap-let.d.ts +0 -2
  121. package/types/mintplayer-ng-bootstrap-markdown.d.ts +1 -5
  122. package/types/mintplayer-ng-bootstrap-modal.d.ts +3 -6
  123. package/types/mintplayer-ng-bootstrap-multiselect.d.ts +6 -6
  124. package/types/mintplayer-ng-bootstrap-navbar-toggler.d.ts +5 -11
  125. package/types/mintplayer-ng-bootstrap-navbar.d.ts +74 -80
  126. package/types/mintplayer-ng-bootstrap-navigation-lock.d.ts +2 -4
  127. package/types/mintplayer-ng-bootstrap-offcanvas.d.ts +12 -14
  128. package/types/mintplayer-ng-bootstrap-ordinal-number.d.ts +1 -2
  129. package/types/mintplayer-ng-bootstrap-pagination.d.ts +17 -31
  130. package/types/mintplayer-ng-bootstrap-placeholder.d.ts +3 -8
  131. package/types/mintplayer-ng-bootstrap-playlist-toggler.d.ts +5 -11
  132. package/types/mintplayer-ng-bootstrap-popover.d.ts +15 -23
  133. package/types/mintplayer-ng-bootstrap-progress-bar.d.ts +19 -22
  134. package/types/mintplayer-ng-bootstrap-range.d.ts +1 -2
  135. package/types/mintplayer-ng-bootstrap-rating.d.ts +8 -14
  136. package/types/mintplayer-ng-bootstrap-resizable.d.ts +7 -11
  137. package/types/mintplayer-ng-bootstrap-scheduler.d.ts +132 -220
  138. package/types/mintplayer-ng-bootstrap-scrollspy.d.ts +14 -15
  139. package/types/mintplayer-ng-bootstrap-searchbox.d.ts +20 -27
  140. package/types/mintplayer-ng-bootstrap-select.d.ts +13 -23
  141. package/types/mintplayer-ng-bootstrap-select2.d.ts +16 -14
  142. package/types/mintplayer-ng-bootstrap-shell.d.ts +6 -12
  143. package/types/mintplayer-ng-bootstrap-signature-pad.d.ts +7 -12
  144. package/types/mintplayer-ng-bootstrap-spinner.d.ts +8 -16
  145. package/types/mintplayer-ng-bootstrap-splitter.d.ts +21 -27
  146. package/types/mintplayer-ng-bootstrap-sticky-footer.d.ts +3 -3
  147. package/types/mintplayer-ng-bootstrap-tab-control.d.ts +29 -37
  148. package/types/mintplayer-ng-bootstrap-table.d.ts +6 -13
  149. package/types/mintplayer-ng-bootstrap-timepicker.d.ts +7 -14
  150. package/types/mintplayer-ng-bootstrap-toast.d.ts +5 -10
  151. package/types/mintplayer-ng-bootstrap-toggle-button.d.ts +22 -36
  152. package/types/mintplayer-ng-bootstrap-tooltip.d.ts +4 -7
  153. package/types/mintplayer-ng-bootstrap-treeview.d.ts +10 -15
  154. package/types/mintplayer-ng-bootstrap-trust-html.d.ts +0 -2
  155. package/types/mintplayer-ng-bootstrap-typeahead.d.ts +14 -17
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-splitter.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/splitter/src/interfaces/drag-operation.ts","../../../../libs/mintplayer-ng-bootstrap/splitter/src/split-panel/split-panel.component.ts","../../../../libs/mintplayer-ng-bootstrap/splitter/src/split-panel/split-panel.component.html","../../../../libs/mintplayer-ng-bootstrap/splitter/src/element-at/element-at.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/splitter/src/splitter/splitter.component.ts","../../../../libs/mintplayer-ng-bootstrap/splitter/src/splitter/splitter.component.html","../../../../libs/mintplayer-ng-bootstrap/splitter/src/splitter.module.ts","../../../../libs/mintplayer-ng-bootstrap/splitter/mintplayer-ng-bootstrap-splitter.ts"],"sourcesContent":["import { Point } from \"./point\";\n\nexport interface DragOperation {\n operation: EDragOperation;\n startPosition: Point;\n sizes: number[];\n indexBefore: number;\n indexAfter: number;\n}\n\nexport enum EDragOperation {\n none,\n resizeSplitter,\n}","import { DomPortal } from '@angular/cdk/portal';\nimport { Component, ElementRef, ViewChild, AfterViewInit } from '@angular/core';\n\n@Component({\n selector: 'bs-split-panel',\n templateUrl: './split-panel.component.html',\n styleUrls: ['./split-panel.component.scss'],\n standalone: false,\n})\nexport class BsSplitPanelComponent implements AfterViewInit {\n constructor(private element: ElementRef) {}\n\n portal?: DomPortal;\n\n ngAfterViewInit() {\n setTimeout(() => this.portal = new DomPortal(this.element.nativeElement), 10);\n }\n}\n","<div class=\"w-100 h-100\">\n <ng-content></ng-content>\n</div>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bsElementAt',\n standalone: false,\n})\nexport class BsElementAtPipe implements PipeTransform {\n\n transform(value: any[] | null | undefined, index: number) {\n if (value) {\n return value[index];\n } else {\n return null;\n }\n }\n\n}\n","import { Component, Input, ContentChildren, QueryList, ElementRef, HostListener, HostBinding, ViewChildren, DestroyRef } from '@angular/core';\nimport { BehaviorSubject, map, combineLatest, Observable, take } from 'rxjs';\nimport { DragOperation, EDragOperation } from '../interfaces/drag-operation';\nimport { Point } from '../interfaces/point';\nimport { BsSplitPanelComponent } from '../split-panel/split-panel.component';\nimport { Direction } from '../types/direction.type';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'bs-splitter',\n templateUrl: './splitter.component.html',\n styleUrls: ['./splitter.component.scss'],\n standalone: false,\n})\nexport class BsSplitterComponent {\n\n constructor(private destroy: DestroyRef) {\n this.directionClass$ = this.orientation$.pipe(map((orientation) => {\n switch (orientation) {\n case 'horizontal': return 'flex-row';\n case 'vertical': return 'flex-column';\n }\n }));\n this.splitterClass$ = this.orientation$.pipe(map((orientation) => {\n switch (orientation) {\n case 'horizontal': return 'split-hor';\n case 'vertical': return 'split-ver';\n }\n }));\n this.widthStyles$ = combineLatest([this.orientation$, this.previewSizes$, this.panels$])\n .pipe(map(([orientation, previewSizes, panels]) => {\n switch (orientation) {\n case 'horizontal':\n if (previewSizes) {\n return [...Array(panels.length).keys()].map((v, i) => {\n if (i < previewSizes.length) {\n return previewSizes[i] + 'px';\n } else {\n return '100%';\n }\n });\n } else {\n return Array(panels.length).map((v, i) => '100%');\n }\n case 'vertical':\n return null;\n }\n }));\n this.heightStyles$ = combineLatest([this.orientation$, this.previewSizes$, this.panels$])\n .pipe(map(([orientation, previewSizes, panels]) => {\n switch (orientation) {\n case 'horizontal':\n return null;\n case 'vertical':\n if (previewSizes) {\n return [...Array(panels.length).keys()].map((v, i) => {\n if (i < previewSizes.length) {\n return previewSizes[i] + 'px';\n } else {\n return '100%';\n }\n });\n } else {\n return Array(panels.length).map((v, i) => '100%');\n }\n }\n }));\n }\n\n //#region Orientation\n orientation$ = new BehaviorSubject<Direction>('horizontal');\n public get orientation() {\n return this.orientation$.value;\n }\n @Input() public set orientation(value: Direction) {\n this.orientation$.next(value);\n }\n //#endregion\n\n previewSizes$ = new BehaviorSubject<number[] | null>(null);\n\n panels$ = new BehaviorSubject<BsSplitPanelComponent[]>([]);\n @ContentChildren(BsSplitPanelComponent) set panels(value: QueryList<BsSplitPanelComponent>) {\n this.panels$.next(value.toArray());\n }\n @ViewChildren('splitPanel') splitPanels!: QueryList<ElementRef<HTMLDivElement>>;\n \n @HostBinding('class.w-100')\n @HostBinding('class.h-100')\n @HostBinding('class.d-flex')\n classes = true;\n\n directionClass$: Observable<string>;\n splitterClass$: Observable<string>;\n widthStyles$: Observable<string[] | null>;\n heightStyles$: Observable<string[] | null>;\n isResizing$ = new BehaviorSubject<boolean>(false);\n touchedDivider$ = new BehaviorSubject<HTMLDivElement | null>(null);\n operation: DragOperation | null = null;\n\n computeSizes() {\n if (typeof window !== 'undefined') {\n const sizes = this.splitPanels\n .map((sp) => {\n const styles = window.getComputedStyle(sp.nativeElement);\n switch (this.orientation) {\n case 'horizontal': return styles.width;\n case 'vertical': return styles.height;\n }\n })\n .map((size) => size.slice(0, -2))\n .map((size) => parseFloat(size));\n return sizes;\n } else {\n return this.splitPanels.map(p => 50);\n }\n }\n \n startResizeMouse(ev: MouseEvent, indexBefore: number, indexAfter: number) {\n ev.preventDefault();\n this.startResize(indexBefore, indexAfter, { x: ev.clientX, y: ev.clientY });\n }\n\n startResizeTouch(ev: TouchEvent, indexBefore: number, indexAfter: number, divider: HTMLDivElement) {\n if (ev.cancelable) {\n ev.preventDefault();\n this.touchedDivider$.next(divider);\n this.startResize(indexBefore, indexAfter, { x: ev.touches[0].clientX, y: ev.touches[0].clientY });\n }\n }\n\n private startResize(indexBefore: number, indexAfter: number, pt: Point) {\n const sizes = this.computeSizes();\n this.previewSizes$.next(sizes);\n this.operation = {\n operation: EDragOperation.resizeSplitter,\n startPosition: pt,\n sizes,\n indexBefore,\n indexAfter,\n };\n\n this.isResizing$.next(true);\n }\n\n @HostListener('document:mousemove', ['$event'])\n onMouseMove(ev: MouseEvent) {\n this.onResizeMove({ x: ev.clientX, y: ev.clientY });\n }\n\n onTouchMove(ev: TouchEvent) {\n this.onResizeMove({ x: ev.touches[0].clientX, y: ev.touches[0].clientY });\n }\n\n onResizeMove(pt: Point) {\n if (this.operation) {\n switch (this.operation.operation) {\n case EDragOperation.resizeSplitter: {\n combineLatest([this.orientation$])\n .pipe(take(1), takeUntilDestroyed(this.destroy))\n .subscribe(([orientation]) => {\n if (this.operation) {\n switch (orientation) {\n case 'horizontal':\n const deltaX = pt.x - this.operation.startPosition.x;\n const sx = Array.from(this.operation.sizes);\n sx[this.operation.indexBefore] = this.operation.sizes[this.operation.indexBefore] + deltaX;\n sx[this.operation.indexAfter] = this.operation.sizes[this.operation.indexAfter] - deltaX;\n this.previewSizes$.next(sx);\n break;\n case 'vertical':\n const deltaY = pt.y - this.operation.startPosition.y;\n const sy = Array.from(this.operation.sizes);\n sy[this.operation.indexBefore] = this.operation.sizes[this.operation.indexBefore] + deltaY;\n sy[this.operation.indexAfter] = this.operation.sizes[this.operation.indexAfter] - deltaY;\n this.previewSizes$.next(sy);\n break;\n }\n }\n })\n } break;\n }\n }\n }\n\n @HostListener('document:mouseup', ['$event'])\n onMouseUp(ev: MouseEvent) {\n this.onResizeUp();\n }\n\n onTouchEnd(ev: TouchEvent) {\n this.touchedDivider$.next(null);\n this.onResizeUp();\n }\n\n onResizeUp() {\n this.isResizing$.next(false);\n this.operation = null;\n }\n}\n","<div class=\"d-flex w-100 root\" [class]=\"[directionClass$ | async, splitterClass$ | async]\" bsUserAgent>\n <ng-content></ng-content>\n @for (panel of (panels$ | async); let index = $index; let last = $last; track panel) {\n @let widthStyles = widthStyles$ | async;\n @let heightStyles = heightStyles$ | async;\n \n <!-- [style.width.%]=\"100\" [style.height.%]=\"100\" -->\n <div class=\"split-panel overflow-hidden\" [class.flex-none]=\"isResizing$ | async\" #splitPanel [style.width]=\"widthStyles | bsElementAt:index\" [style.height]=\"heightStyles | bsElementAt:index\">\n <ng-template [cdkPortalOutlet]=\"panel.portal\"></ng-template>\n </div>\n @if (!last) {\n <div class=\"divider\" bsUserAgent [class.hover]=\"(touchedDivider$ | async) === divider\" #divider (mousedown)=\"startResizeMouse($event, index, index + 1)\" (touchstart)=\"startResizeTouch($event, index, index + 1, divider)\" (touchmove)=\"onTouchMove($event)\" (touchend)=\"onTouchEnd($event)\"></div>\n }\n }\n</div>","import { NgModule } from '@angular/core';\nimport { AsyncPipe } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { BsUserAgentDirective } from '@mintplayer/ng-bootstrap/user-agent';\nimport { BsSplitterComponent } from './splitter/splitter.component';\nimport { BsSplitPanelComponent } from './split-panel/split-panel.component';\nimport { BsElementAtPipe } from './element-at/element-at.pipe';\n\n@NgModule({\n declarations: [BsSplitterComponent, BsSplitPanelComponent, BsElementAtPipe],\n imports: [AsyncPipe, PortalModule, BsUserAgentDirective],\n exports: [BsSplitterComponent, BsSplitPanelComponent, BsElementAtPipe],\n})\nexport class BsSplitterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i4.BsElementAtPipe"],"mappings":";;;;;;;;;;;AAUA,IAAY,cAGX;AAHD,CAAA,UAAY,cAAc,EAAA;AACtB,IAAA,cAAA,CAAA,cAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI;AACJ,IAAA,cAAA,CAAA,cAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAc;AAClB,CAAC,EAHW,cAAc,KAAd,cAAc,GAAA,EAAA,CAAA,CAAA;;MCDb,qBAAqB,CAAA;AAChC,IAAA,WAAA,CAAoB,OAAmB,EAAA;QAAnB,IAAA,CAAA,OAAO,GAAP,OAAO;IAAe;IAI1C,eAAe,GAAA;QACb,UAAU,CAAC,MAAM,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;IAC/E;8GAPW,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,2ECTlC,oEAEM,EAAA,MAAA,EAAA,CAAA,oCAAA,CAAA,EAAA,CAAA,CAAA;;2FDOO,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,cAGd,KAAK,EAAA,QAAA,EAAA,oEAAA,EAAA,MAAA,EAAA,CAAA,oCAAA,CAAA,EAAA;;;MEDN,eAAe,CAAA;IAE1B,SAAS,CAAC,KAA+B,EAAE,KAAa,EAAA;QACtD,IAAI,KAAK,EAAE;AACT,YAAA,OAAO,KAAK,CAAC,KAAK,CAAC;QACrB;aAAO;AACL,YAAA,OAAO,IAAI;QACb;IACF;8GARW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAf,eAAe,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,aAAa;AACnB,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;;;MCSY,mBAAmB,CAAA;AAE9B,IAAA,WAAA,CAAoB,OAAmB,EAAA;QAAnB,IAAA,CAAA,OAAO,GAAP,OAAO;;AAsD3B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,eAAe,CAAY,YAAY,CAAC;;AAS3D,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,eAAe,CAAkB,IAAI,CAAC;AAE1D,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,eAAe,CAA0B,EAAE,CAAC;QAS1D,IAAA,CAAA,OAAO,GAAG,IAAI;AAMd,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;AACjD,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,eAAe,CAAwB,IAAI,CAAC;QAClE,IAAA,CAAA,SAAS,GAAyB,IAAI;AAjFpC,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,KAAI;YAChE,QAAQ,WAAW;AACjB,gBAAA,KAAK,YAAY,EAAE,OAAO,UAAU;AACpC,gBAAA,KAAK,UAAU,EAAE,OAAO,aAAa;;QAEzC,CAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,KAAI;YAC/D,QAAQ,WAAW;AACjB,gBAAA,KAAK,YAAY,EAAE,OAAO,WAAW;AACrC,gBAAA,KAAK,UAAU,EAAE,OAAO,WAAW;;QAEvC,CAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC;AACpF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,KAAI;YAChD,QAAQ,WAAW;AACjB,gBAAA,KAAK,YAAY;oBACf,IAAI,YAAY,EAAE;wBAChB,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AACnD,4BAAA,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE;AAC3B,gCAAA,OAAO,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;4BAC/B;iCAAO;AACL,gCAAA,OAAO,MAAM;4BACf;AACF,wBAAA,CAAC,CAAC;oBACJ;yBAAO;AACL,wBAAA,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC;oBACnD;AACF,gBAAA,KAAK,UAAU;AACb,oBAAA,OAAO,IAAI;;QAEjB,CAAC,CAAC,CAAC;AACL,QAAA,IAAI,CAAC,aAAa,GAAI,aAAa,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC;AACtF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,KAAI;YAChD,QAAQ,WAAW;AACjB,gBAAA,KAAK,YAAY;AACf,oBAAA,OAAO,IAAI;AACb,gBAAA,KAAK,UAAU;oBACb,IAAI,YAAY,EAAE;wBAChB,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AACnD,4BAAA,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE;AAC3B,gCAAA,OAAO,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;4BAC/B;iCAAO;AACL,gCAAA,OAAO,MAAM;4BACf;AACF,wBAAA,CAAC,CAAC;oBACJ;yBAAO;AACL,wBAAA,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC;oBACnD;;QAEN,CAAC,CAAC,CAAC;IACP;AAIA,IAAA,IAAW,WAAW,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK;IAChC;IACA,IAAoB,WAAW,CAAC,KAAgB,EAAA;AAC9C,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;IAC/B;IAMA,IAA4C,MAAM,CAAC,KAAuC,EAAA;QACxF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IACpC;IAgBA,YAAY,GAAA;AACV,QAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC;AAChB,iBAAA,GAAG,CAAC,CAAC,EAAE,KAAI;gBACV,MAAM,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,aAAa,CAAC;AACxD,gBAAA,QAAQ,IAAI,CAAC,WAAW;AACtB,oBAAA,KAAK,YAAY,EAAE,OAAO,MAAM,CAAC,KAAK;AACtC,oBAAA,KAAK,UAAU,EAAE,OAAO,MAAM,CAAC,MAAM;;AAEzC,YAAA,CAAC;AACA,iBAAA,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC/B,GAAG,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC;AAClC,YAAA,OAAO,KAAK;QACd;aAAO;AACL,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACtC;IACF;AAEA,IAAA,gBAAgB,CAAC,EAAc,EAAE,WAAmB,EAAE,UAAkB,EAAA;QACtE,EAAE,CAAC,cAAc,EAAE;QACnB,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC;IAC7E;AAEA,IAAA,gBAAgB,CAAC,EAAc,EAAE,WAAmB,EAAE,UAAkB,EAAE,OAAuB,EAAA;AAC/F,QAAA,IAAI,EAAE,CAAC,UAAU,EAAE;YACjB,EAAE,CAAC,cAAc,EAAE;AACnB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;AAClC,YAAA,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACnG;IACF;AAEQ,IAAA,WAAW,CAAC,WAAmB,EAAE,UAAkB,EAAE,EAAS,EAAA;AACpE,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE;AACjC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG;YACf,SAAS,EAAE,cAAc,CAAC,cAAc;AACxC,YAAA,aAAa,EAAE,EAAE;YACjB,KAAK;YACL,WAAW;YACX,UAAU;SACX;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7B;AAGA,IAAA,WAAW,CAAC,EAAc,EAAA;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC;IACrD;AAEA,IAAA,WAAW,CAAC,EAAc,EAAA;QACxB,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC3E;AAEA,IAAA,YAAY,CAAC,EAAS,EAAA;AACpB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,QAAQ,IAAI,CAAC,SAAS,CAAC,SAAS;gBAC9B,KAAK,cAAc,CAAC,cAAc;oBAAE;AAClC,wBAAA,aAAa,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;AAC9B,6BAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9C,6BAAA,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,KAAI;AAC3B,4BAAA,IAAI,IAAI,CAAC,SAAS,EAAE;gCAClB,QAAQ,WAAW;AACjB,oCAAA,KAAK,YAAY;AACf,wCAAA,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;AACpD,wCAAA,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;wCAC3C,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,MAAM;wCAC1F,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,MAAM;AACxF,wCAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;wCAC3B;AACF,oCAAA,KAAK,UAAU;AACb,wCAAA,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;AACpD,wCAAA,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;wCAC3C,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,MAAM;wCAC1F,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,MAAM;AACxF,wCAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;wCAC3B;;4BAEN;AACJ,wBAAA,CAAC,CAAC;oBACJ;oBAAE;;QAEN;IACF;AAGA,IAAA,SAAS,CAAC,EAAc,EAAA;QACtB,IAAI,CAAC,UAAU,EAAE;IACnB;AAEA,IAAA,UAAU,CAAC,EAAc,EAAA;AACvB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/B,IAAI,CAAC,UAAU,EAAE;IACnB;IAEA,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;IACvB;8GAxLW,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,cAAA,EAAA,aAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,SAAA,EAoEb,qBAAqB,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClFxC,wjCAcM,EAAA,MAAA,EAAA,CAAA,4pDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDAO,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,cAGX,KAAK,EAAA,QAAA,EAAA,wjCAAA,EAAA,MAAA,EAAA,CAAA,4pDAAA,CAAA,EAAA;;sBA8DhB;;sBAQA,eAAe;uBAAC,qBAAqB;;sBAGrC,YAAY;uBAAC,YAAY;;sBAEzB,WAAW;uBAAC,aAAa;;sBACzB,WAAW;uBAAC,aAAa;;sBACzB,WAAW;uBAAC,cAAc;;sBAwD1B,YAAY;uBAAC,oBAAoB,EAAE,CAAC,QAAQ,CAAC;;sBAwC7C,YAAY;uBAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC;;;ME5KjC,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,iBAJZ,mBAAmB,EAAE,qBAAqB,EAAE,eAAe,CAAA,EAAA,OAAA,EAAA,CAChE,SAAS,EAAE,YAAY,EAAE,oBAAoB,CAAA,EAAA,OAAA,EAAA,CAC7C,mBAAmB,EAAE,qBAAqB,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA;AAE1D,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAHN,YAAY,CAAA,EAAA,CAAA,CAAA;;2FAGtB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,mBAAmB,EAAE,qBAAqB,EAAE,eAAe,CAAC;AAC3E,oBAAA,OAAO,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,oBAAoB,CAAC;AACxD,oBAAA,OAAO,EAAE,CAAC,mBAAmB,EAAE,qBAAqB,EAAE,eAAe,CAAC;AACvE,iBAAA;;;ACZD;;AAEG;;;;"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-splitter.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/splitter/src/interfaces/drag-operation.ts","../../../../libs/mintplayer-ng-bootstrap/splitter/src/split-panel/split-panel.component.ts","../../../../libs/mintplayer-ng-bootstrap/splitter/src/split-panel/split-panel.component.html","../../../../libs/mintplayer-ng-bootstrap/splitter/src/element-at/element-at.pipe.ts","../../../../libs/mintplayer-ng-bootstrap/splitter/src/splitter/splitter.component.ts","../../../../libs/mintplayer-ng-bootstrap/splitter/src/splitter/splitter.component.html","../../../../libs/mintplayer-ng-bootstrap/splitter/src/splitter.module.ts","../../../../libs/mintplayer-ng-bootstrap/splitter/mintplayer-ng-bootstrap-splitter.ts"],"sourcesContent":["import { Point } from \"./point\";\n\nexport interface DragOperation {\n operation: EDragOperation;\n startPosition: Point;\n sizes: number[];\n indexBefore: number;\n indexAfter: number;\n}\n\nexport enum EDragOperation {\n none,\n resizeSplitter,\n}","import { DomPortal } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, Component, ElementRef, inject, AfterViewInit } from '@angular/core';\n\n@Component({\n selector: 'bs-split-panel',\n templateUrl: './split-panel.component.html',\n styleUrls: ['./split-panel.component.scss'],\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsSplitPanelComponent implements AfterViewInit {\n\n private element = inject(ElementRef);\n\n portal?: DomPortal;\n\n ngAfterViewInit() {\n setTimeout(() => this.portal = new DomPortal(this.element.nativeElement), 10);\n }\n}\n","<div class=\"w-100 h-100\">\n <ng-content></ng-content>\n</div>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bsElementAt',\n standalone: false,\n})\nexport class BsElementAtPipe implements PipeTransform {\n\n transform(value: any[] | null | undefined, index: number) {\n if (value) {\n return value[index];\n } else {\n return null;\n }\n }\n\n}\n","import { ChangeDetectionStrategy, Component, computed, ContentChildren, ElementRef, HostBinding, HostListener, input, QueryList, signal, ViewChildren } from '@angular/core';\nimport { DragOperation, EDragOperation } from '../interfaces/drag-operation';\nimport { Point } from '../interfaces/point';\nimport { BsSplitPanelComponent } from '../split-panel/split-panel.component';\nimport { Direction } from '../types/direction.type';\n\n@Component({\n selector: 'bs-splitter',\n templateUrl: './splitter.component.html',\n styleUrls: ['./splitter.component.scss'],\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsSplitterComponent {\n\n orientation = input<Direction>('horizontal');\n previewSizes = signal<number[] | null>(null);\n panels = signal<BsSplitPanelComponent[]>([]);\n isResizing = signal<boolean>(false);\n touchedDivider = signal<HTMLDivElement | null>(null);\n\n @ContentChildren(BsSplitPanelComponent) set panelsList(value: QueryList<BsSplitPanelComponent>) {\n this.panels.set(value.toArray());\n }\n @ViewChildren('splitPanel') splitPanels!: QueryList<ElementRef<HTMLDivElement>>;\n\n @HostBinding('class.w-100')\n @HostBinding('class.h-100')\n @HostBinding('class.d-flex')\n classes = true;\n\n directionClass = computed(() => {\n switch (this.orientation()) {\n case 'horizontal': return 'flex-row';\n case 'vertical': return 'flex-column';\n }\n });\n\n splitterClass = computed(() => {\n switch (this.orientation()) {\n case 'horizontal': return 'split-hor';\n case 'vertical': return 'split-ver';\n }\n });\n\n widthStyles = computed(() => {\n const orientation = this.orientation();\n const previewSizes = this.previewSizes();\n const panels = this.panels();\n switch (orientation) {\n case 'horizontal':\n if (previewSizes) {\n return [...Array(panels.length).keys()].map((v, i) => {\n if (i < previewSizes.length) {\n return previewSizes[i] + 'px';\n } else {\n return '100%';\n }\n });\n } else {\n return Array(panels.length).fill('100%');\n }\n case 'vertical':\n return null;\n }\n });\n\n heightStyles = computed(() => {\n const orientation = this.orientation();\n const previewSizes = this.previewSizes();\n const panels = this.panels();\n switch (orientation) {\n case 'horizontal':\n return null;\n case 'vertical':\n if (previewSizes) {\n return [...Array(panels.length).keys()].map((v, i) => {\n if (i < previewSizes.length) {\n return previewSizes[i] + 'px';\n } else {\n return '100%';\n }\n });\n } else {\n return Array(panels.length).fill('100%');\n }\n }\n });\n\n operation: DragOperation | null = null;\n\n computeSizes() {\n if (typeof window !== 'undefined') {\n const sizes = this.splitPanels\n .map((sp) => {\n const styles = window.getComputedStyle(sp.nativeElement);\n switch (this.orientation()) {\n case 'horizontal': return styles.width;\n case 'vertical': return styles.height;\n }\n })\n .map((size) => size.slice(0, -2))\n .map((size) => parseFloat(size));\n return sizes;\n } else {\n return this.splitPanels.map(p => 50);\n }\n }\n\n startResizeMouse(ev: MouseEvent, indexBefore: number, indexAfter: number) {\n ev.preventDefault();\n this.startResize(indexBefore, indexAfter, { x: ev.clientX, y: ev.clientY });\n }\n\n startResizeTouch(ev: TouchEvent, indexBefore: number, indexAfter: number, divider: HTMLDivElement) {\n if (ev.cancelable) {\n ev.preventDefault();\n ev.stopPropagation();\n this.touchedDivider.set(divider);\n this.startResize(indexBefore, indexAfter, { x: ev.touches[0].clientX, y: ev.touches[0].clientY });\n }\n }\n\n private startResize(indexBefore: number, indexAfter: number, pt: Point) {\n const sizes = this.computeSizes();\n this.previewSizes.set(sizes);\n this.operation = {\n operation: EDragOperation.resizeSplitter,\n startPosition: pt,\n sizes,\n indexBefore,\n indexAfter,\n };\n\n this.isResizing.set(true);\n }\n\n @HostListener('document:mousemove', ['$event'])\n onMouseMove(ev: MouseEvent) {\n this.onResizeMove({ x: ev.clientX, y: ev.clientY });\n }\n\n onTouchMove(ev: TouchEvent) {\n if (this.operation) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n this.onResizeMove({ x: ev.touches[0].clientX, y: ev.touches[0].clientY });\n }\n\n onResizeMove(pt: Point) {\n if (this.operation) {\n switch (this.operation.operation) {\n case EDragOperation.resizeSplitter: {\n const orientation = this.orientation();\n switch (orientation) {\n case 'horizontal':\n const deltaX = pt.x - this.operation.startPosition.x;\n const sx = Array.from(this.operation.sizes);\n sx[this.operation.indexBefore] = this.operation.sizes[this.operation.indexBefore] + deltaX;\n sx[this.operation.indexAfter] = this.operation.sizes[this.operation.indexAfter] - deltaX;\n this.previewSizes.set(sx);\n break;\n case 'vertical':\n const deltaY = pt.y - this.operation.startPosition.y;\n const sy = Array.from(this.operation.sizes);\n sy[this.operation.indexBefore] = this.operation.sizes[this.operation.indexBefore] + deltaY;\n sy[this.operation.indexAfter] = this.operation.sizes[this.operation.indexAfter] - deltaY;\n this.previewSizes.set(sy);\n break;\n }\n } break;\n }\n }\n }\n\n @HostListener('document:mouseup', ['$event'])\n onMouseUp(ev: MouseEvent) {\n this.onResizeUp();\n }\n\n onTouchEnd(ev: TouchEvent) {\n if (this.operation) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n this.touchedDivider.set(null);\n this.onResizeUp();\n }\n\n onResizeUp() {\n this.isResizing.set(false);\n this.operation = null;\n }\n}\n","<div class=\"d-flex w-100 root\" [class]=\"[directionClass(), splitterClass()]\" bsUserAgent>\n <ng-content></ng-content>\n @for (panel of panels(); let index = $index; let last = $last; track panel) {\n @let widthStylesValue = widthStyles();\n @let heightStylesValue = heightStyles();\n\n <div class=\"split-panel overflow-hidden\" [class.flex-none]=\"isResizing()\" #splitPanel [style.width]=\"widthStylesValue | bsElementAt:index\" [style.height]=\"heightStylesValue | bsElementAt:index\">\n <ng-template [cdkPortalOutlet]=\"panel.portal\"></ng-template>\n </div>\n @if (!last) {\n <div class=\"divider\" bsUserAgent [class.hover]=\"touchedDivider() === divider\" #divider (mousedown)=\"startResizeMouse($event, index, index + 1)\" (touchstart)=\"startResizeTouch($event, index, index + 1, divider)\" (touchmove)=\"onTouchMove($event)\" (touchend)=\"onTouchEnd($event)\"></div>\n }\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { AsyncPipe } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { BsUserAgentDirective } from '@mintplayer/ng-bootstrap/user-agent';\nimport { BsSplitterComponent } from './splitter/splitter.component';\nimport { BsSplitPanelComponent } from './split-panel/split-panel.component';\nimport { BsElementAtPipe } from './element-at/element-at.pipe';\n\n@NgModule({\n declarations: [BsSplitterComponent, BsSplitPanelComponent, BsElementAtPipe],\n imports: [AsyncPipe, PortalModule, BsUserAgentDirective],\n exports: [BsSplitterComponent, BsSplitPanelComponent, BsElementAtPipe],\n})\nexport class BsSplitterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3.BsElementAtPipe"],"mappings":"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"}
@@ -1,9 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
- import { HostBinding, Directive, ViewChild, Component, NgModule } from '@angular/core';
2
+ import { HostBinding, Directive, effect, ViewChild, Component, NgModule } from '@angular/core';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import * as i2 from '@mintplayer/ng-swiper/observe-size';
5
5
  import { BsObserveSizeDirective } from '@mintplayer/ng-swiper/observe-size';
6
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
7
6
 
8
7
  class BsStickyFooterParentDirective {
9
8
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsStickyFooterParentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
@@ -21,24 +20,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
21
20
  }] } });
22
21
 
23
22
  class BsStickyFooterComponent {
24
- constructor(parent, destroy) {
23
+ constructor(parent, injector) {
25
24
  this.parent = parent;
26
- this.destroy = destroy;
25
+ this.injector = injector;
27
26
  }
28
27
  ngAfterViewInit() {
29
- if (this.sizeObserver.height$) {
30
- this.sizeObserver.height$
31
- .pipe(takeUntilDestroyed(this.destroy))
32
- .subscribe(height => this.parent.marginBottom = height);
33
- }
28
+ effect(() => {
29
+ const height = this.sizeObserver.height();
30
+ if (height !== undefined) {
31
+ this.parent.marginBottom = height;
32
+ }
33
+ }, { injector: this.injector });
34
34
  }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsStickyFooterComponent, deps: [{ token: BsStickyFooterParentDirective }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component }); }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsStickyFooterComponent, deps: [{ token: BsStickyFooterParentDirective }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
36
36
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", type: BsStickyFooterComponent, isStandalone: false, selector: "bs-sticky-footer", viewQueries: [{ propertyName: "sizeObserver", first: true, predicate: ["sizeObserver"], descendants: true }], ngImport: i0, template: "<footer bsObserveSize #sizeObserver=\"bsObserveSize\" class=\"footer position-absolute\">\n <ng-content></ng-content>\n</footer>", styles: [".footer{bottom:0;left:0;right:0}::ng-deep html{position:relative;min-height:100%}\n"], dependencies: [{ kind: "directive", type: i2.BsObserveSizeDirective, selector: "[bsObserveSize]", exportAs: ["bsObserveSize"] }] }); }
37
37
  }
38
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsStickyFooterComponent, decorators: [{
39
39
  type: Component,
40
40
  args: [{ selector: 'bs-sticky-footer', standalone: false, template: "<footer bsObserveSize #sizeObserver=\"bsObserveSize\" class=\"footer position-absolute\">\n <ng-content></ng-content>\n</footer>", styles: [".footer{bottom:0;left:0;right:0}::ng-deep html{position:relative;min-height:100%}\n"] }]
41
- }], ctorParameters: () => [{ type: BsStickyFooterParentDirective }, { type: i0.DestroyRef }], propDecorators: { sizeObserver: [{
41
+ }], ctorParameters: () => [{ type: BsStickyFooterParentDirective }, { type: i0.Injector }], propDecorators: { sizeObserver: [{
42
42
  type: ViewChild,
43
43
  args: ['sizeObserver']
44
44
  }] } });
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-sticky-footer.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/sticky-footer/src/sticky-footer-parent/sticky-footer-parent.directive.ts","../../../../libs/mintplayer-ng-bootstrap/sticky-footer/src/sticky-footer/sticky-footer.component.ts","../../../../libs/mintplayer-ng-bootstrap/sticky-footer/src/sticky-footer/sticky-footer.component.html","../../../../libs/mintplayer-ng-bootstrap/sticky-footer/src/sticky-footer.module.ts","../../../../libs/mintplayer-ng-bootstrap/sticky-footer/mintplayer-ng-bootstrap-sticky-footer.ts"],"sourcesContent":["import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[bsStickyFooterParent]',\n standalone: false,\n})\nexport class BsStickyFooterParentDirective {\n @HostBinding('style.margin-bottom.px') marginBottom?: number;\n}\n","import { AfterViewInit, Component, DestroyRef, ViewChild } from '@angular/core';\nimport { BsStickyFooterParentDirective } from '../sticky-footer-parent/sticky-footer-parent.directive';\nimport { BsObserveSizeDirective } from '@mintplayer/ng-swiper/observe-size';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'bs-sticky-footer',\n templateUrl: './sticky-footer.component.html',\n styleUrls: ['./sticky-footer.component.scss'],\n standalone: false,\n})\nexport class BsStickyFooterComponent implements AfterViewInit {\n constructor(private parent: BsStickyFooterParentDirective, private destroy: DestroyRef) {}\n\n ngAfterViewInit() {\n if (this.sizeObserver.height$) {\n this.sizeObserver.height$\n .pipe(takeUntilDestroyed(this.destroy))\n .subscribe(height => this.parent.marginBottom = height);\n }\n }\n\n @ViewChild('sizeObserver') sizeObserver!: BsObserveSizeDirective;\n}\n","<footer bsObserveSize #sizeObserver=\"bsObserveSize\" class=\"footer position-absolute\">\n <ng-content></ng-content>\n</footer>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsObserveSizeDirective } from '@mintplayer/ng-swiper/observe-size';\nimport { BsStickyFooterComponent } from './sticky-footer/sticky-footer.component';\nimport { BsStickyFooterParentDirective } from './sticky-footer-parent/sticky-footer-parent.directive';\n\n@NgModule({\n declarations: [BsStickyFooterComponent, BsStickyFooterParentDirective],\n imports: [CommonModule, BsObserveSizeDirective],\n exports: [BsStickyFooterComponent, BsStickyFooterParentDirective],\n})\nexport class BsStickyFooterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsStickyFooterParentDirective"],"mappings":"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"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-sticky-footer.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/sticky-footer/src/sticky-footer-parent/sticky-footer-parent.directive.ts","../../../../libs/mintplayer-ng-bootstrap/sticky-footer/src/sticky-footer/sticky-footer.component.ts","../../../../libs/mintplayer-ng-bootstrap/sticky-footer/src/sticky-footer/sticky-footer.component.html","../../../../libs/mintplayer-ng-bootstrap/sticky-footer/src/sticky-footer.module.ts","../../../../libs/mintplayer-ng-bootstrap/sticky-footer/mintplayer-ng-bootstrap-sticky-footer.ts"],"sourcesContent":["import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[bsStickyFooterParent]',\n standalone: false,\n})\nexport class BsStickyFooterParentDirective {\n @HostBinding('style.margin-bottom.px') marginBottom?: number;\n}\n","import { AfterViewInit, Component, effect, Injector, ViewChild } from '@angular/core';\nimport { BsStickyFooterParentDirective } from '../sticky-footer-parent/sticky-footer-parent.directive';\nimport { BsObserveSizeDirective } from '@mintplayer/ng-swiper/observe-size';\n\n@Component({\n selector: 'bs-sticky-footer',\n templateUrl: './sticky-footer.component.html',\n styleUrls: ['./sticky-footer.component.scss'],\n standalone: false,\n})\nexport class BsStickyFooterComponent implements AfterViewInit {\n constructor(\n private parent: BsStickyFooterParentDirective,\n private injector: Injector\n ) {}\n\n ngAfterViewInit() {\n effect(() => {\n const height = this.sizeObserver.height();\n if (height !== undefined) {\n this.parent.marginBottom = height;\n }\n }, { injector: this.injector });\n }\n\n @ViewChild('sizeObserver') sizeObserver!: BsObserveSizeDirective;\n}\n","<footer bsObserveSize #sizeObserver=\"bsObserveSize\" class=\"footer position-absolute\">\n <ng-content></ng-content>\n</footer>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsObserveSizeDirective } from '@mintplayer/ng-swiper/observe-size';\nimport { BsStickyFooterComponent } from './sticky-footer/sticky-footer.component';\nimport { BsStickyFooterParentDirective } from './sticky-footer-parent/sticky-footer-parent.directive';\n\n@NgModule({\n declarations: [BsStickyFooterComponent, BsStickyFooterParentDirective],\n imports: [CommonModule, BsObserveSizeDirective],\n exports: [BsStickyFooterComponent, BsStickyFooterParentDirective],\n})\nexport class BsStickyFooterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsStickyFooterParentDirective"],"mappings":";;;;;;MAMa,6BAA6B,CAAA;8GAA7B,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA7B,6BAA6B,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAJzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;;sBAEE,WAAW;uBAAC,wBAAwB;;;MCG1B,uBAAuB,CAAA;IAClC,WAAA,CACU,MAAqC,EACrC,QAAkB,EAAA;QADlB,IAAA,CAAA,MAAM,GAAN,MAAM;QACN,IAAA,CAAA,QAAQ,GAAR,QAAQ;IACf;IAEH,eAAe,GAAA;QACb,MAAM,CAAC,MAAK;YACV,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AACzC,YAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACxB,gBAAA,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,MAAM;YACnC;QACF,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjC;8GAbW,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,6BAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,2LCVpC,qIAES,EAAA,MAAA,EAAA,CAAA,qFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDQI,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,cAGhB,KAAK,EAAA,QAAA,EAAA,qIAAA,EAAA,MAAA,EAAA,CAAA,qFAAA,CAAA,EAAA;;sBAiBhB,SAAS;uBAAC,cAAc;;;MEdd,oBAAoB,CAAA;8GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAApB,oBAAoB,EAAA,YAAA,EAAA,CAJhB,uBAAuB,EAAE,6BAA6B,CAAA,EAAA,OAAA,EAAA,CAC3D,YAAY,EAAE,sBAAsB,CAAA,EAAA,OAAA,EAAA,CACpC,uBAAuB,EAAE,6BAA6B,CAAA,EAAA,CAAA,CAAA;AAErD,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAHrB,YAAY,CAAA,EAAA,CAAA,CAAA;;2FAGX,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,uBAAuB,EAAE,6BAA6B,CAAC;AACtE,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,sBAAsB,CAAC;AAC/C,oBAAA,OAAO,EAAE,CAAC,uBAAuB,EAAE,6BAA6B,CAAC;AAClE,iBAAA;;;ACVD;;AAEG;;;;"}
@@ -1,19 +1,17 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, ContentChild, Input, Component, ContentChildren, HostBinding, NgModule } from '@angular/core';
3
- import * as i1 from '@angular/common';
2
+ import { inject, TemplateRef, Directive, ElementRef, signal, computed, input, ContentChild, ChangeDetectionStrategy, Component, effect, ContentChildren, HostBinding, NgModule } from '@angular/core';
3
+ import * as i1$1 from '@angular/common';
4
4
  import { AsyncPipe, NgTemplateOutlet } from '@angular/common';
5
- import * as i2$1 from '@angular/cdk/drag-drop';
5
+ import * as i2 from '@angular/cdk/drag-drop';
6
6
  import { moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
7
- import * as i2 from '@mintplayer/ng-bootstrap/no-noscript';
7
+ import * as i1 from '@mintplayer/ng-bootstrap/no-noscript';
8
8
  import { BsNoNoscriptDirective } from '@mintplayer/ng-bootstrap/no-noscript';
9
- import { BehaviorSubject, combineLatest, map, filter } from 'rxjs';
10
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
11
9
 
12
10
  class BsTabPageHeaderDirective {
13
- constructor(template) {
14
- this.template = template;
11
+ constructor() {
12
+ this.template = inject(TemplateRef);
15
13
  }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsTabPageHeaderDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsTabPageHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
17
15
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: BsTabPageHeaderDirective, isStandalone: false, selector: "[bsTabPageHeader]", ngImport: i0 }); }
18
16
  }
19
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsTabPageHeaderDirective, decorators: [{
@@ -22,98 +20,71 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
22
20
  selector: '[bsTabPageHeader]',
23
21
  standalone: false,
24
22
  }]
25
- }], ctorParameters: () => [{ type: i0.TemplateRef }] });
23
+ }] });
26
24
 
27
25
  class BsTabPageComponent {
28
- constructor(tabControl, element) {
29
- this.disabled = false;
30
- this.element = element;
31
- this.tabControl = tabControl;
32
- this.tabId$ = new BehaviorSubject(++this.tabControl.tabCounter);
33
- this.tabName$ = combineLatest([this.tabControl.tabControlName$, this.tabId$])
34
- .pipe(map(([tabControlName, tabId]) => `${tabControlName}-${tabId}`));
26
+ constructor() {
27
+ this.element = inject(ElementRef);
28
+ this.tabControl = inject(BsTabControlComponent);
29
+ this.tabId = signal(0, ...(ngDevMode ? [{ debugName: "tabId" }] : []));
30
+ this.tabName = computed(() => `${this.tabControl.tabControlName()}-${this.tabId()}`, ...(ngDevMode ? [{ debugName: "tabName" }] : []));
31
+ this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
32
+ this.tabId = signal(++this.tabControl.tabCounter, ...(ngDevMode ? [{ debugName: "tabId" }] : []));
35
33
  }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsTabPageComponent, deps: [{ token: BsTabControlComponent }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
37
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", type: BsTabPageComponent, isStandalone: false, selector: "bs-tab-page", inputs: { disabled: "disabled" }, queries: [{ propertyName: "headerTemplate", first: true, predicate: BsTabPageHeaderDirective, 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$ | async) === 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" }] }); }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsTabPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.6", type: BsTabPageComponent, isStandalone: false, selector: "bs-tab-page", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "headerTemplate", first: true, predicate: BsTabPageHeaderDirective, descendants: true }], ngImport: i0, template: "<input type=\"radio\" bsNoNoscript class=\"d-none\" [name]=\"tabControl.tabControlName()\" [id]=\"tabName()\">\n<div class=\"tab-page-content\" [class.d-block]=\"tabControl.activeTab() === this\">\n <ng-content></ng-content>\n</div>\n", styles: [".tab-page-content{display:none}input[type=radio].noscript:checked+.tab-page-content{display:block}\n"], dependencies: [{ kind: "directive", type: i1.BsNoNoscriptDirective, selector: "[bsNoNoscript]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
38
36
  }
39
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsTabPageComponent, decorators: [{
40
38
  type: Component,
41
- args: [{ selector: 'bs-tab-page', standalone: false, 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$ | async) === 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"] }]
42
- }], ctorParameters: () => [{ type: BsTabControlComponent }, { type: i0.ElementRef }], propDecorators: { disabled: [{
43
- type: Input
44
- }], headerTemplate: [{
39
+ args: [{ selector: 'bs-tab-page', standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<input type=\"radio\" bsNoNoscript class=\"d-none\" [name]=\"tabControl.tabControlName()\" [id]=\"tabName()\">\n<div class=\"tab-page-content\" [class.d-block]=\"tabControl.activeTab() === this\">\n <ng-content></ng-content>\n</div>\n", styles: [".tab-page-content{display:none}input[type=radio].noscript:checked+.tab-page-content{display:block}\n"] }]
40
+ }], ctorParameters: () => [], propDecorators: { disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], headerTemplate: [{
45
41
  type: ContentChild,
46
42
  args: [BsTabPageHeaderDirective]
47
43
  }] } });
48
44
 
49
45
  class BsTabControlComponent {
50
- constructor(element) {
46
+ constructor() {
47
+ this.element = inject(ElementRef);
51
48
  this.dBlock = true;
52
49
  this.positionRelative = true;
53
- this.border = true;
54
- this.dragBoundarySelector = '';
55
- this.tabPages$ = new BehaviorSubject(null);
56
- this.activeTab$ = new BehaviorSubject(null);
50
+ this.border = input(true, ...(ngDevMode ? [{ debugName: "border" }] : []));
51
+ this.restrictDragging = input(false, ...(ngDevMode ? [{ debugName: "restrictDragging" }] : []));
52
+ this.selectFirstTab = input(true, ...(ngDevMode ? [{ debugName: "selectFirstTab" }] : []));
53
+ this.tabsPosition = input('top', ...(ngDevMode ? [{ debugName: "tabsPosition" }] : []));
54
+ this.allowDragDrop = input(false, ...(ngDevMode ? [{ debugName: "allowDragDrop" }] : []));
55
+ this.dragBoundarySelector = computed(() => this.restrictDragging() ? 'ul' : '', ...(ngDevMode ? [{ debugName: "dragBoundarySelector" }] : []));
56
+ this.tabPages = signal(null, ...(ngDevMode ? [{ debugName: "tabPages" }] : []));
57
+ this.activeTab = signal(null, ...(ngDevMode ? [{ debugName: "activeTab" }] : []));
57
58
  this.orderedTabPages = [];
59
+ this.tabControlId = signal(0, ...(ngDevMode ? [{ debugName: "tabControlId" }] : []));
60
+ this.tabControlName = computed(() => `bs-tab-control-${this.tabControlId()}`, ...(ngDevMode ? [{ debugName: "tabControlName" }] : []));
61
+ this.topTabs = computed(() => this.tabsPosition() === 'top', ...(ngDevMode ? [{ debugName: "topTabs" }] : []));
62
+ this.bottomTabs = computed(() => this.tabsPosition() === 'bottom', ...(ngDevMode ? [{ debugName: "bottomTabs" }] : []));
63
+ this.disableDragDrop = computed(() => !this.allowDragDrop(), ...(ngDevMode ? [{ debugName: "disableDragDrop" }] : []));
58
64
  this.tabCounter = 0;
59
- //#region SelectFirstTab
60
- this.selectFirstTab$ = new BehaviorSubject(true);
61
- //#endregion
62
- //#region TabsPosition
63
- this.tabsPosition$ = new BehaviorSubject('top');
64
- //#endregion
65
- //#region AllowDragDrop
66
- this.allowDragDrop$ = new BehaviorSubject(false);
67
- this.tabControlId$ = new BehaviorSubject(++BsTabControlComponent.tabControlCounter);
68
- this.tabControlName$ = this.tabControlId$.pipe(map((id) => `bs-tab-control-${id}`));
69
- this.element = element;
70
- combineLatest([this.tabPages$, this.activeTab$, this.selectFirstTab$])
71
- .pipe(filter(([tabPages, activeTab, selectFirstTab]) => {
72
- return !!tabPages && (!activeTab || !tabPages.some(tp => tp === activeTab)) && selectFirstTab;
73
- }))
74
- .pipe(takeUntilDestroyed())
75
- .subscribe(([tabPages, activeTab, selectFirstTab]) => {
76
- const notDisabled = tabPages.filter((tp) => !tp.disabled);
77
- if (notDisabled.length > 0) {
78
- setTimeout(() => this.activeTab$.next(notDisabled[0]));
65
+ this.tabControlId = signal(++BsTabControlComponent.tabControlCounter, ...(ngDevMode ? [{ debugName: "tabControlId" }] : []));
66
+ effect(() => {
67
+ const tabPages = this.tabPages();
68
+ const activeTab = this.activeTab();
69
+ const selectFirstTab = this.selectFirstTab();
70
+ if (tabPages && (!activeTab || !tabPages.some(tp => tp === activeTab)) && selectFirstTab) {
71
+ const notDisabled = tabPages.filter((tp) => !tp.disabled());
72
+ if (notDisabled.length > 0) {
73
+ setTimeout(() => this.activeTab.set(notDisabled[0]));
74
+ }
79
75
  }
80
76
  });
81
- this.topTabs$ = this.tabsPosition$.pipe(map(position => position === 'top'));
82
- this.bottomTabs$ = this.tabsPosition$.pipe(map(position => position === 'bottom'));
83
- this.disableDragDrop$ = this.allowDragDrop$.pipe(map(allow => !allow));
84
77
  }
85
78
  set setTabPages(value) {
86
- this.tabPages$.next(value);
79
+ this.tabPages.set(value);
87
80
  const list = value.toArray();
88
81
  const toAdd = value.filter(tp => !this.orderedTabPages.includes(tp));
89
82
  this.orderedTabPages = this.orderedTabPages.concat(toAdd).filter((tp) => list.includes(tp));
90
83
  }
91
- set restrictDragging(value) {
92
- this.dragBoundarySelector = value ? 'ul' : '';
93
- }
94
84
  static { this.tabControlCounter = 0; }
95
- get selectFirstTab() {
96
- return this.selectFirstTab$.value;
97
- }
98
- set selectFirstTab(value) {
99
- this.selectFirstTab$.next(value);
100
- }
101
- get tabsPosition() {
102
- return this.tabsPosition$.value;
103
- }
104
- set tabsPosition(value) {
105
- this.tabsPosition$.next(value);
106
- }
107
- get allowDragDrop() {
108
- return this.allowDragDrop$.value;
109
- }
110
- set allowDragDrop(value) {
111
- this.allowDragDrop$.next(value);
112
- }
113
- //#endregion
114
85
  setActiveTab(tab) {
115
- if (!tab.disabled) {
116
- this.activeTab$.next(tab);
86
+ if (!tab.disabled()) {
87
+ this.activeTab.set(tab);
117
88
  }
118
89
  return false;
119
90
  }
@@ -126,25 +97,18 @@ class BsTabControlComponent {
126
97
  if (ev.previousContainer === ev.container) {
127
98
  moveItemInArray(this.orderedTabPages, ev.previousIndex, ev.currentIndex);
128
99
  }
129
- else {
130
- // transferArrayItem(
131
- // ev.previousContainer.data,
132
- // ev.container.data,
133
- // ev.previousIndex,
134
- // ev.currentIndex);
135
- }
136
100
  }
137
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsTabControlComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
138
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: BsTabControlComponent, isStandalone: false, selector: "bs-tab-control", inputs: { border: "border", restrictDragging: "restrictDragging", selectFirstTab: "selectFirstTab", tabsPosition: "tabsPosition", allowDragDrop: "allowDragDrop" }, host: { properties: { "class.d-block": "this.dBlock", "class.position-relative": "this.positionRelative" } }, providers: [
101
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsTabControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
102
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: BsTabControlComponent, isStandalone: false, selector: "bs-tab-control", inputs: { border: { classPropertyName: "border", publicName: "border", isSignal: true, isRequired: false, transformFunction: null }, restrictDragging: { classPropertyName: "restrictDragging", publicName: "restrictDragging", isSignal: true, isRequired: false, transformFunction: null }, selectFirstTab: { classPropertyName: "selectFirstTab", publicName: "selectFirstTab", isSignal: true, isRequired: false, transformFunction: null }, tabsPosition: { classPropertyName: "tabsPosition", publicName: "tabsPosition", isSignal: true, isRequired: false, transformFunction: null }, allowDragDrop: { classPropertyName: "allowDragDrop", publicName: "allowDragDrop", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.d-block": "this.dBlock", "class.position-relative": "this.positionRelative" } }, providers: [
139
103
  { provide: 'TAB_CONTROL', useExisting: BsTabControlComponent }
140
- ], queries: [{ propertyName: "setTabPages", predicate: BsTabPageComponent }], ngImport: i0, template: "@let activeTab = activeTab$ | async;\n@if (topTabs$ | async) {\n\t<div class=\"overflow-hidden mw-100 tsc\">\n\t\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t\t[cdkDropListData]=\"tabPages$ | async\"\n\t\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\t\t[cdkDropListDisabled]=\"disableDragDrop$ | async\"\n\t\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t\t@for (tab of orderedTabPages; track tab) {\n\t\t\t\t@if (tab.headerTemplate) {\n\t\t\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector\" [cdkDragStartDelay]=\"500\" (cdkDragStarted)=\"startDragTab($event)\">\n\t\t\t\t\t\t<label [for]=\"tab.tabName$ | async\" class=\"nav-link text-nowrap cursor-pointer\" [class.active]=\"activeTab === tab\" [class.disabled]=\"tab.disabled\" [attr.aria-current]=\"activeTab === tab ? 'page' : null\" [attr.aria-disabled]=\"tab.disabled\">\n\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.headerTemplate.template\"></ng-container>\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</span>\n\t\t\t\t}\n\t\t\t}\n\t\t</ul>\n\t</div>\n}\n<div class=\"tab-content flex-grow-1 overflow-auto\" bsNoNoscript [class.border]=\"border && activeTab\" [class.border-top]=\"border && !activeTab\">\n\t<ng-content></ng-content>\n</div>\n@if (bottomTabs$ | async) {\n\t<div class=\"overflow-hidden mw-100 tsc bottom-tabs\">\n\t\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t\t[cdkDropListData]=\"tabPages$ | async\"\n\t\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\t\t[cdkDropListDisabled]=\"disableDragDrop$ | async\"\n\t\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t\t@for (tab of orderedTabPages; track tab) {\n\t\t\t\t@if (tab.headerTemplate) {\n\t\t\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector\" [cdkDragStartDelay]=\"500\" (cdkDragStarted)=\"startDragTab($event)\">\n\t\t\t\t\t\t<label [for]=\"tab.tabName$ | async\" class=\"nav-link text-nowrap cursor-pointer\" [class.active]=\"activeTab === tab\" [class.disabled]=\"tab.disabled\" [attr.aria-current]=\"activeTab === tab ? 'page' : null\" [attr.aria-disabled]=\"tab.disabled\">\n\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.headerTemplate.template\"></ng-container>\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</span>\n\t\t\t\t}\n\t\t\t}\n\t\t</ul>\n\t</div>\n}", 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: var(--bs-secondary-color);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;background:none;border:0;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:focus-visible{outline:0;box-shadow:0 0 0 .25rem #0d6efd40}:host ::ng-deep .nav-link.disabled,: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: var(--bs-border-width);--bs-nav-tabs-border-color: var(--bs-border-color);--bs-nav-tabs-border-radius: var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color: var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg: var(--bs-body-bg);--bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);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));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.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: var(--bs-border-radius);--bs-nav-pills-link-active-color: #fff;--bs-nav-pills-link-active-bg: #0d6efd}:host ::ng-deep .nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}: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-underline{--bs-nav-underline-gap: 1rem;--bs-nav-underline-border-width: .125rem;--bs-nav-underline-link-active-color: var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}:host ::ng-deep .nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}:host ::ng-deep .nav-underline .nav-link:hover,:host ::ng-deep .nav-underline .nav-link:focus{border-bottom-color:currentcolor}:host ::ng-deep .nav-underline .nav-link.active,:host ::ng-deep .nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}: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-grow:1;flex-basis:0;text-align:center}:host ::ng-deep .nav-fill .nav-item .nav-link,:host ::ng-deep .nav-justified .nav-item .nav-link{width:100%}:host ::ng-deep .tab-content>.tab-pane{display:none}:host ::ng-deep .tab-content>.active{display:block}:host ::ng-deep .tab-content{margin-top:-1px}.tsc{max-height:41px;top:2px;z-index:10;flex-shrink:0}.tsc .nav.nav-tabs{border-bottom:0}.tsc.bottom-tabs{margin-top:-1px}.tsc.bottom-tabs .nav.nav-tabs{border-bottom-width:0px}.tsc.bottom-tabs .nav.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.tsc.bottom-tabs .nav.nav-tabs .nav-item{margin-bottom:2px;margin-top:-1px}.tsc.bottom-tabs .nav.nav-tabs .nav-item.show .nav-link,.tsc.bottom-tabs .nav.nav-tabs .nav-link.active{border-color:#fff #dee2e6 #dee2e6 #dee2e6}.tab-content.noscript::ng-deep>bs-tab-page>.tab-page-content{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important;margin-top:-1px}.overflow-y-hidden{overflow-y:hidden}\n"], dependencies: [{ kind: "directive", type: i1.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", "cdkDropListElementContainer", "cdkDropListHasAnchor"], 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", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2.BsNoNoscriptDirective, selector: "[bsNoNoscript]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
104
+ ], queries: [{ propertyName: "setTabPages", predicate: BsTabPageComponent }], ngImport: i0, template: "@let activeTabValue = activeTab();\n@if (topTabs()) {\n\t<div class=\"overflow-hidden mw-100 tsc\">\n\t\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t\t[cdkDropListData]=\"tabPages()\"\n\t\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\t\t[cdkDropListDisabled]=\"disableDragDrop()\"\n\t\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t\t@for (tab of orderedTabPages; track tab) {\n\t\t\t\t@if (tab.headerTemplate) {\n\t\t\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector()\" [cdkDragStartDelay]=\"500\" (cdkDragStarted)=\"startDragTab($event)\">\n\t\t\t\t\t\t<label [for]=\"tab.tabName()\" class=\"nav-link text-nowrap cursor-pointer\" [class.active]=\"activeTabValue === tab\" [class.disabled]=\"tab.disabled()\" [attr.aria-current]=\"activeTabValue === tab ? 'page' : null\" [attr.aria-disabled]=\"tab.disabled()\">\n\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.headerTemplate.template\"></ng-container>\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</span>\n\t\t\t\t}\n\t\t\t}\n\t\t</ul>\n\t</div>\n}\n<div class=\"tab-content flex-grow-1 overflow-auto\" bsNoNoscript [class.border]=\"border() && activeTabValue\" [class.border-top]=\"border() && !activeTabValue\">\n\t<ng-content></ng-content>\n</div>\n@if (bottomTabs()) {\n\t<div class=\"overflow-hidden mw-100 tsc bottom-tabs\">\n\t\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t\t[cdkDropListData]=\"tabPages()\"\n\t\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\t\t[cdkDropListDisabled]=\"disableDragDrop()\"\n\t\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t\t@for (tab of orderedTabPages; track tab) {\n\t\t\t\t@if (tab.headerTemplate) {\n\t\t\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector()\" [cdkDragStartDelay]=\"500\" (cdkDragStarted)=\"startDragTab($event)\">\n\t\t\t\t\t\t<label [for]=\"tab.tabName()\" class=\"nav-link text-nowrap cursor-pointer\" [class.active]=\"activeTabValue === tab\" [class.disabled]=\"tab.disabled()\" [attr.aria-current]=\"activeTabValue === tab ? 'page' : null\" [attr.aria-disabled]=\"tab.disabled()\">\n\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.headerTemplate.template\"></ng-container>\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</span>\n\t\t\t\t}\n\t\t\t}\n\t\t</ul>\n\t</div>\n}\n", 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: var(--bs-secondary-color);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;background:none;border:0;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:focus-visible{outline:0;box-shadow:0 0 0 .25rem #0d6efd40}:host ::ng-deep .nav-link.disabled,: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: var(--bs-border-width);--bs-nav-tabs-border-color: var(--bs-border-color);--bs-nav-tabs-border-radius: var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color: var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg: var(--bs-body-bg);--bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);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));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.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: var(--bs-border-radius);--bs-nav-pills-link-active-color: #fff;--bs-nav-pills-link-active-bg: #0d6efd}:host ::ng-deep .nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}: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-underline{--bs-nav-underline-gap: 1rem;--bs-nav-underline-border-width: .125rem;--bs-nav-underline-link-active-color: var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}:host ::ng-deep .nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}:host ::ng-deep .nav-underline .nav-link:hover,:host ::ng-deep .nav-underline .nav-link:focus{border-bottom-color:currentcolor}:host ::ng-deep .nav-underline .nav-link.active,:host ::ng-deep .nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}: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-grow:1;flex-basis:0;text-align:center}:host ::ng-deep .nav-fill .nav-item .nav-link,:host ::ng-deep .nav-justified .nav-item .nav-link{width:100%}:host ::ng-deep .tab-content>.tab-pane{display:none}:host ::ng-deep .tab-content>.active{display:block}:host ::ng-deep .tab-content{margin-top:-1px}.tsc{max-height:41px;top:2px;z-index:10;flex-shrink:0}.tsc .nav.nav-tabs{border-bottom:0}.tsc.bottom-tabs{margin-top:-1px}.tsc.bottom-tabs .nav.nav-tabs{border-bottom-width:0px}.tsc.bottom-tabs .nav.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.tsc.bottom-tabs .nav.nav-tabs .nav-item{margin-bottom:2px;margin-top:-1px}.tsc.bottom-tabs .nav.nav-tabs .nav-item.show .nav-link,.tsc.bottom-tabs .nav.nav-tabs .nav-link.active{border-color:#fff #dee2e6 #dee2e6 #dee2e6}.tab-content.noscript::ng-deep>bs-tab-page>.tab-page-content{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important;margin-top:-1px}.overflow-y-hidden{overflow-y:hidden}\n"], dependencies: [{ kind: "directive", type: i1$1.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", "cdkDropListElementContainer", "cdkDropListHasAnchor"], 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", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i1.BsNoNoscriptDirective, selector: "[bsNoNoscript]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
141
105
  }
142
106
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsTabControlComponent, decorators: [{
143
107
  type: Component,
144
108
  args: [{ selector: 'bs-tab-control', standalone: false, providers: [
145
109
  { provide: 'TAB_CONTROL', useExisting: BsTabControlComponent }
146
- ], template: "@let activeTab = activeTab$ | async;\n@if (topTabs$ | async) {\n\t<div class=\"overflow-hidden mw-100 tsc\">\n\t\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t\t[cdkDropListData]=\"tabPages$ | async\"\n\t\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\t\t[cdkDropListDisabled]=\"disableDragDrop$ | async\"\n\t\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t\t@for (tab of orderedTabPages; track tab) {\n\t\t\t\t@if (tab.headerTemplate) {\n\t\t\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector\" [cdkDragStartDelay]=\"500\" (cdkDragStarted)=\"startDragTab($event)\">\n\t\t\t\t\t\t<label [for]=\"tab.tabName$ | async\" class=\"nav-link text-nowrap cursor-pointer\" [class.active]=\"activeTab === tab\" [class.disabled]=\"tab.disabled\" [attr.aria-current]=\"activeTab === tab ? 'page' : null\" [attr.aria-disabled]=\"tab.disabled\">\n\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.headerTemplate.template\"></ng-container>\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</span>\n\t\t\t\t}\n\t\t\t}\n\t\t</ul>\n\t</div>\n}\n<div class=\"tab-content flex-grow-1 overflow-auto\" bsNoNoscript [class.border]=\"border && activeTab\" [class.border-top]=\"border && !activeTab\">\n\t<ng-content></ng-content>\n</div>\n@if (bottomTabs$ | async) {\n\t<div class=\"overflow-hidden mw-100 tsc bottom-tabs\">\n\t\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t\t[cdkDropListData]=\"tabPages$ | async\"\n\t\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\t\t[cdkDropListDisabled]=\"disableDragDrop$ | async\"\n\t\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t\t@for (tab of orderedTabPages; track tab) {\n\t\t\t\t@if (tab.headerTemplate) {\n\t\t\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector\" [cdkDragStartDelay]=\"500\" (cdkDragStarted)=\"startDragTab($event)\">\n\t\t\t\t\t\t<label [for]=\"tab.tabName$ | async\" class=\"nav-link text-nowrap cursor-pointer\" [class.active]=\"activeTab === tab\" [class.disabled]=\"tab.disabled\" [attr.aria-current]=\"activeTab === tab ? 'page' : null\" [attr.aria-disabled]=\"tab.disabled\">\n\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.headerTemplate.template\"></ng-container>\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</span>\n\t\t\t\t}\n\t\t\t}\n\t\t</ul>\n\t</div>\n}", 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: var(--bs-secondary-color);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;background:none;border:0;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:focus-visible{outline:0;box-shadow:0 0 0 .25rem #0d6efd40}:host ::ng-deep .nav-link.disabled,: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: var(--bs-border-width);--bs-nav-tabs-border-color: var(--bs-border-color);--bs-nav-tabs-border-radius: var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color: var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg: var(--bs-body-bg);--bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);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));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.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: var(--bs-border-radius);--bs-nav-pills-link-active-color: #fff;--bs-nav-pills-link-active-bg: #0d6efd}:host ::ng-deep .nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}: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-underline{--bs-nav-underline-gap: 1rem;--bs-nav-underline-border-width: .125rem;--bs-nav-underline-link-active-color: var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}:host ::ng-deep .nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}:host ::ng-deep .nav-underline .nav-link:hover,:host ::ng-deep .nav-underline .nav-link:focus{border-bottom-color:currentcolor}:host ::ng-deep .nav-underline .nav-link.active,:host ::ng-deep .nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}: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-grow:1;flex-basis:0;text-align:center}:host ::ng-deep .nav-fill .nav-item .nav-link,:host ::ng-deep .nav-justified .nav-item .nav-link{width:100%}:host ::ng-deep .tab-content>.tab-pane{display:none}:host ::ng-deep .tab-content>.active{display:block}:host ::ng-deep .tab-content{margin-top:-1px}.tsc{max-height:41px;top:2px;z-index:10;flex-shrink:0}.tsc .nav.nav-tabs{border-bottom:0}.tsc.bottom-tabs{margin-top:-1px}.tsc.bottom-tabs .nav.nav-tabs{border-bottom-width:0px}.tsc.bottom-tabs .nav.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.tsc.bottom-tabs .nav.nav-tabs .nav-item{margin-bottom:2px;margin-top:-1px}.tsc.bottom-tabs .nav.nav-tabs .nav-item.show .nav-link,.tsc.bottom-tabs .nav.nav-tabs .nav-link.active{border-color:#fff #dee2e6 #dee2e6 #dee2e6}.tab-content.noscript::ng-deep>bs-tab-page>.tab-page-content{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important;margin-top:-1px}.overflow-y-hidden{overflow-y:hidden}\n"] }]
147
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { dBlock: [{
110
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "@let activeTabValue = activeTab();\n@if (topTabs()) {\n\t<div class=\"overflow-hidden mw-100 tsc\">\n\t\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t\t[cdkDropListData]=\"tabPages()\"\n\t\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\t\t[cdkDropListDisabled]=\"disableDragDrop()\"\n\t\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t\t@for (tab of orderedTabPages; track tab) {\n\t\t\t\t@if (tab.headerTemplate) {\n\t\t\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector()\" [cdkDragStartDelay]=\"500\" (cdkDragStarted)=\"startDragTab($event)\">\n\t\t\t\t\t\t<label [for]=\"tab.tabName()\" class=\"nav-link text-nowrap cursor-pointer\" [class.active]=\"activeTabValue === tab\" [class.disabled]=\"tab.disabled()\" [attr.aria-current]=\"activeTabValue === tab ? 'page' : null\" [attr.aria-disabled]=\"tab.disabled()\">\n\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.headerTemplate.template\"></ng-container>\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</span>\n\t\t\t\t}\n\t\t\t}\n\t\t</ul>\n\t</div>\n}\n<div class=\"tab-content flex-grow-1 overflow-auto\" bsNoNoscript [class.border]=\"border() && activeTabValue\" [class.border-top]=\"border() && !activeTabValue\">\n\t<ng-content></ng-content>\n</div>\n@if (bottomTabs()) {\n\t<div class=\"overflow-hidden mw-100 tsc bottom-tabs\">\n\t\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t\t[cdkDropListData]=\"tabPages()\"\n\t\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\t\t[cdkDropListDisabled]=\"disableDragDrop()\"\n\t\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t\t@for (tab of orderedTabPages; track tab) {\n\t\t\t\t@if (tab.headerTemplate) {\n\t\t\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector()\" [cdkDragStartDelay]=\"500\" (cdkDragStarted)=\"startDragTab($event)\">\n\t\t\t\t\t\t<label [for]=\"tab.tabName()\" class=\"nav-link text-nowrap cursor-pointer\" [class.active]=\"activeTabValue === tab\" [class.disabled]=\"tab.disabled()\" [attr.aria-current]=\"activeTabValue === tab ? 'page' : null\" [attr.aria-disabled]=\"tab.disabled()\">\n\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.headerTemplate.template\"></ng-container>\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</span>\n\t\t\t\t}\n\t\t\t}\n\t\t</ul>\n\t</div>\n}\n", 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: var(--bs-secondary-color);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;background:none;border:0;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:focus-visible{outline:0;box-shadow:0 0 0 .25rem #0d6efd40}:host ::ng-deep .nav-link.disabled,: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: var(--bs-border-width);--bs-nav-tabs-border-color: var(--bs-border-color);--bs-nav-tabs-border-radius: var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color: var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg: var(--bs-body-bg);--bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);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));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.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: var(--bs-border-radius);--bs-nav-pills-link-active-color: #fff;--bs-nav-pills-link-active-bg: #0d6efd}:host ::ng-deep .nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}: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-underline{--bs-nav-underline-gap: 1rem;--bs-nav-underline-border-width: .125rem;--bs-nav-underline-link-active-color: var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}:host ::ng-deep .nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}:host ::ng-deep .nav-underline .nav-link:hover,:host ::ng-deep .nav-underline .nav-link:focus{border-bottom-color:currentcolor}:host ::ng-deep .nav-underline .nav-link.active,:host ::ng-deep .nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}: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-grow:1;flex-basis:0;text-align:center}:host ::ng-deep .nav-fill .nav-item .nav-link,:host ::ng-deep .nav-justified .nav-item .nav-link{width:100%}:host ::ng-deep .tab-content>.tab-pane{display:none}:host ::ng-deep .tab-content>.active{display:block}:host ::ng-deep .tab-content{margin-top:-1px}.tsc{max-height:41px;top:2px;z-index:10;flex-shrink:0}.tsc .nav.nav-tabs{border-bottom:0}.tsc.bottom-tabs{margin-top:-1px}.tsc.bottom-tabs .nav.nav-tabs{border-bottom-width:0px}.tsc.bottom-tabs .nav.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.tsc.bottom-tabs .nav.nav-tabs .nav-item{margin-bottom:2px;margin-top:-1px}.tsc.bottom-tabs .nav.nav-tabs .nav-item.show .nav-link,.tsc.bottom-tabs .nav.nav-tabs .nav-link.active{border-color:#fff #dee2e6 #dee2e6 #dee2e6}.tab-content.noscript::ng-deep>bs-tab-page>.tab-page-content{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important;margin-top:-1px}.overflow-y-hidden{overflow-y:hidden}\n"] }]
111
+ }], ctorParameters: () => [], propDecorators: { dBlock: [{
148
112
  type: HostBinding,
149
113
  args: ['class.d-block']
150
114
  }], positionRelative: [{
@@ -153,17 +117,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
153
117
  }], setTabPages: [{
154
118
  type: ContentChildren,
155
119
  args: [BsTabPageComponent]
156
- }], border: [{
157
- type: Input
158
- }], restrictDragging: [{
159
- type: Input
160
- }], selectFirstTab: [{
161
- type: Input
162
- }], tabsPosition: [{
163
- type: Input
164
- }], allowDragDrop: [{
165
- type: Input
166
- }] } });
120
+ }], border: [{ type: i0.Input, args: [{ isSignal: true, alias: "border", required: false }] }], restrictDragging: [{ type: i0.Input, args: [{ isSignal: true, alias: "restrictDragging", required: false }] }], selectFirstTab: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectFirstTab", required: false }] }], tabsPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabsPosition", required: false }] }], allowDragDrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowDragDrop", required: false }] }] } });
167
121
 
168
122
  class BsTabControlModule {
169
123
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsTabControlModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-tab-control.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-page-header/tab-page-header.directive.ts","../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-page/tab-page.component.ts","../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-page/tab-page.component.html","../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-control/tab-control.component.ts","../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-control/tab-control.component.html","../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-control.module.ts","../../../../libs/mintplayer-ng-bootstrap/tab-control/mintplayer-ng-bootstrap-tab-control.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[bsTabPageHeader]',\n standalone: false,\n})\nexport class BsTabPageHeaderDirective {\n constructor(public template: TemplateRef<any>) {}\n}\n","import { Component, ContentChild, TemplateRef, Input, ElementRef } from '@angular/core';\nimport { BehaviorSubject, combineLatest, map, Observable } from 'rxjs';\nimport { BsTabControlComponent } from '../tab-control/tab-control.component';\nimport { BsTabPageHeaderDirective } from '../tab-page-header/tab-page-header.directive';\n\n@Component({\n selector: 'bs-tab-page',\n templateUrl: './tab-page.component.html',\n styleUrls: ['./tab-page.component.scss'],\n standalone: false,\n})\nexport class BsTabPageComponent {\n\n constructor(tabControl: BsTabControlComponent, element: ElementRef<any>) {\n this.element = element;\n this.tabControl = tabControl;\n this.tabId$ = new BehaviorSubject<number>(++this.tabControl.tabCounter);\n this.tabName$ = combineLatest([this.tabControl.tabControlName$, this.tabId$])\n .pipe(map(([tabControlName, tabId]) => `${tabControlName}-${tabId}`));\n }\n\n element: ElementRef<any>;\n tabControl: BsTabControlComponent;\n tabId$: BehaviorSubject<number>;\n tabName$: Observable<string>;\n\n @Input() disabled = false;\n @ContentChild(BsTabPageHeaderDirective) headerTemplate!: BsTabPageHeaderDirective;\n\n}\n","<input type=\"radio\" bsNoNoscript class=\"d-none\" [name]=\"tabControl.tabControlName$ | async\" [id]=\"tabName$ | async\">\n<div class=\"tab-page-content\" [class.d-block]=\"(tabControl.activeTab$ | async) === this\">\n <ng-content></ng-content>\n</div>","import { CdkDragDrop, CdkDragStart, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { Component, ContentChildren, ElementRef, HostBinding, Input, QueryList } from '@angular/core';\nimport { BehaviorSubject, combineLatest, filter, map, Observable } from 'rxjs';\nimport { BsTabPageComponent } from '../tab-page/tab-page.component';\nimport { BsTabsPosition } from '../tabs-position';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'bs-tab-control',\n templateUrl: './tab-control.component.html',\n styleUrls: ['./tab-control.component.scss'],\n standalone: false,\n providers: [\n { provide: 'TAB_CONTROL', useExisting: BsTabControlComponent }\n ],\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 combineLatest([this.tabPages$, this.activeTab$, this.selectFirstTab$])\n .pipe(filter(([tabPages, activeTab, selectFirstTab]) => {\n return !!tabPages && (!activeTab || !tabPages.some(tp => tp === activeTab)) && selectFirstTab;\n }))\n .pipe(takeUntilDestroyed())\n .subscribe(([tabPages, activeTab, selectFirstTab]) => {\n const notDisabled = tabPages!.filter((tp) => !tp.disabled);\n if (notDisabled.length > 0) {\n setTimeout(() => this.activeTab$.next(notDisabled[0]));\n }\n });\n this.topTabs$ = this.tabsPosition$.pipe(map(position => position === 'top'));\n this.bottomTabs$ = this.tabsPosition$.pipe(map(position => position === 'bottom'));\n this.disableDragDrop$ = this.allowDragDrop$.pipe(map(allow => !allow));\n }\n\n @HostBinding('class.d-block') dBlock = true;\n @HostBinding('class.position-relative') positionRelative = true;\n @ContentChildren(BsTabPageComponent) set setTabPages(value: QueryList<BsTabPageComponent>) {\n this.tabPages$.next(value);\n const list = value.toArray();\n const toAdd = value.filter(tp => !this.orderedTabPages.includes(tp));\n this.orderedTabPages = this.orderedTabPages.concat(toAdd).filter((tp) => list.includes(tp));\n }\n @Input() public border = true;\n @Input() public set restrictDragging(value: boolean) {\n this.dragBoundarySelector = value ? 'ul' : '';\n }\n dragBoundarySelector = '';\n element: ElementRef<any>;\n tabPages$ = new BehaviorSubject<QueryList<BsTabPageComponent> | null>(null);\n activeTab$ = new BehaviorSubject<BsTabPageComponent | null>(null);\n orderedTabPages: BsTabPageComponent[] = [];\n tabControlId$: BehaviorSubject<number>;\n tabControlName$: Observable<string>;\n topTabs$: Observable<boolean>;\n bottomTabs$: Observable<boolean>;\n disableDragDrop$: Observable<boolean>;\n static tabControlCounter = 0;\n tabCounter = 0;\n\n //#region SelectFirstTab\n selectFirstTab$ = new BehaviorSubject<boolean>(true);\n public get selectFirstTab() {\n return this.selectFirstTab$.value;\n }\n @Input() public set selectFirstTab(value: boolean) {\n this.selectFirstTab$.next(value);\n }\n //#endregion\n //#region TabsPosition\n tabsPosition$ = new BehaviorSubject<BsTabsPosition>('top');\n public get tabsPosition() {\n return this.tabsPosition$.value;\n }\n @Input() public set tabsPosition(value: BsTabsPosition) {\n this.tabsPosition$.next(value);\n }\n //#endregion\n //#region AllowDragDrop\n allowDragDrop$ = new BehaviorSubject<boolean>(false);\n public get allowDragDrop() {\n return this.allowDragDrop$.value;\n }\n @Input() public set allowDragDrop(value: boolean) {\n this.allowDragDrop$.next(value);\n }\n //#endregion\n\n setActiveTab(tab: BsTabPageComponent) {\n if (!tab.disabled) {\n this.activeTab$.next(tab);\n }\n return false;\n }\n\n startDragTab(ev: CdkDragStart<BsTabPageComponent>) {\n if ('vibrate' in navigator) {\n navigator.vibrate([30]);\n }\n }\n\n moveTab(ev: CdkDragDrop<QueryList<BsTabPageComponent> | null>) {\n if (ev.previousContainer === ev.container) {\n moveItemInArray(\n this.orderedTabPages,\n ev.previousIndex, \n ev.currentIndex);\n } else {\n // transferArrayItem(\n // ev.previousContainer.data,\n // ev.container.data,\n // ev.previousIndex,\n // ev.currentIndex);\n }\n }\n}\n","@let activeTab = activeTab$ | async;\n@if (topTabs$ | async) {\n\t<div class=\"overflow-hidden mw-100 tsc\">\n\t\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t\t[cdkDropListData]=\"tabPages$ | async\"\n\t\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\t\t[cdkDropListDisabled]=\"disableDragDrop$ | async\"\n\t\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t\t@for (tab of orderedTabPages; track tab) {\n\t\t\t\t@if (tab.headerTemplate) {\n\t\t\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector\" [cdkDragStartDelay]=\"500\" (cdkDragStarted)=\"startDragTab($event)\">\n\t\t\t\t\t\t<label [for]=\"tab.tabName$ | async\" class=\"nav-link text-nowrap cursor-pointer\" [class.active]=\"activeTab === tab\" [class.disabled]=\"tab.disabled\" [attr.aria-current]=\"activeTab === tab ? 'page' : null\" [attr.aria-disabled]=\"tab.disabled\">\n\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.headerTemplate.template\"></ng-container>\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</span>\n\t\t\t\t}\n\t\t\t}\n\t\t</ul>\n\t</div>\n}\n<div class=\"tab-content flex-grow-1 overflow-auto\" bsNoNoscript [class.border]=\"border && activeTab\" [class.border-top]=\"border && !activeTab\">\n\t<ng-content></ng-content>\n</div>\n@if (bottomTabs$ | async) {\n\t<div class=\"overflow-hidden mw-100 tsc bottom-tabs\">\n\t\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t\t[cdkDropListData]=\"tabPages$ | async\"\n\t\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\t\t[cdkDropListDisabled]=\"disableDragDrop$ | async\"\n\t\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t\t@for (tab of orderedTabPages; track tab) {\n\t\t\t\t@if (tab.headerTemplate) {\n\t\t\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector\" [cdkDragStartDelay]=\"500\" (cdkDragStarted)=\"startDragTab($event)\">\n\t\t\t\t\t\t<label [for]=\"tab.tabName$ | async\" class=\"nav-link text-nowrap cursor-pointer\" [class.active]=\"activeTab === tab\" [class.disabled]=\"tab.disabled\" [attr.aria-current]=\"activeTab === tab ? 'page' : null\" [attr.aria-disabled]=\"tab.disabled\">\n\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.headerTemplate.template\"></ng-container>\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</span>\n\t\t\t\t}\n\t\t\t}\n\t\t</ul>\n\t</div>\n}","import { NgModule } from '@angular/core';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { BsNoNoscriptDirective } from '@mintplayer/ng-bootstrap/no-noscript';\nimport { BsTabControlComponent } from './tab-control/tab-control.component';\nimport { BsTabPageComponent } from './tab-page/tab-page.component';\nimport { BsTabPageHeaderDirective } from './tab-page-header/tab-page-header.directive';\n\n@NgModule({\n declarations: [\n BsTabControlComponent,\n BsTabPageComponent,\n BsTabPageHeaderDirective,\n ],\n imports: [\n AsyncPipe,\n NgTemplateOutlet,\n DragDropModule,\n BsNoNoscriptDirective\n ],\n exports: [\n BsTabControlComponent,\n BsTabPageComponent,\n BsTabPageHeaderDirective,\n ]\n})\nexport class BsTabControlModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsTabControlComponent","i3","i2"],"mappings":";;;;;;;;;;;MAMa,wBAAwB,CAAA;AACnC,IAAA,WAAA,CAAmB,QAA0B,EAAA;QAA1B,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAAqB;8GADrC,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAxB,wBAAwB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;;;MCMY,kBAAkB,CAAA;IAE7B,WAAA,CAAY,UAAiC,EAAE,OAAwB,EAAA;QAa9D,IAAA,CAAA,QAAQ,GAAG,KAAK;AAZvB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;AAC5B,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAS,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;AACvE,QAAA,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC;AACzE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,EAAE,KAAK,CAAC,KAAM,GAAG,cAAc,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE,CAAC,CAAC;IAC1E;8GARW,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAgBf,wBAAwB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3BxC,oQAGM,EAAA,MAAA,EAAA,CAAA,sGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDQO,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,cAGX,KAAK,EAAA,QAAA,EAAA,oQAAA,EAAA,MAAA,EAAA,CAAA,sGAAA,CAAA,EAAA;;sBAiBhB;;sBACA,YAAY;uBAAC,wBAAwB;;;MEX3B,qBAAqB,CAAA;AAEhC,IAAA,WAAA,CAAY,OAAwB,EAAA;QAoBN,IAAA,CAAA,MAAM,GAAG,IAAI;QACH,IAAA,CAAA,gBAAgB,GAAG,IAAI;QAO/C,IAAA,CAAA,MAAM,GAAG,IAAI;QAI7B,IAAA,CAAA,oBAAoB,GAAG,EAAE;AAEzB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,eAAe,CAAuC,IAAI,CAAC;AAC3E,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,eAAe,CAA4B,IAAI,CAAC;QACjE,IAAA,CAAA,eAAe,GAAyB,EAAE;QAO1C,IAAA,CAAA,UAAU,GAAG,CAAC;;AAGd,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,eAAe,CAAU,IAAI,CAAC;;;AASpD,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,eAAe,CAAiB,KAAK,CAAC;;;AAS1D,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;QA/DlD,IAAI,CAAC,aAAa,GAAG,IAAI,eAAe,CAAS,EAAE,qBAAqB,CAAC,iBAAiB,CAAC;QAC3F,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,kBAAkB,EAAE,CAAA,CAAE,CAAC,CAAC;AACnF,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC;AAClE,aAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC,KAAI;YACrD,OAAO,CAAC,CAAC,QAAQ,KAAK,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,SAAS,CAAC,CAAC,IAAI,cAAc;AAC/F,QAAA,CAAC,CAAC;aACD,IAAI,CAAC,kBAAkB,EAAE;aACzB,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC,KAAI;AACnD,YAAA,MAAM,WAAW,GAAG,QAAS,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC;AAC1D,YAAA,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1B,gBAAA,UAAU,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD;AACF,QAAA,CAAC,CAAC;QACJ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,QAAQ,KAAK,KAAK,CAAC,CAAC;QAC5E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,QAAQ,KAAK,QAAQ,CAAC,CAAC;AAClF,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;IACxE;IAIA,IAAyC,WAAW,CAAC,KAAoC,EAAA;AACvF,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1B,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE;QAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7F;IAEA,IAAoB,gBAAgB,CAAC,KAAc,EAAA;AACjD,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,GAAG,IAAI,GAAG,EAAE;IAC/C;aAWO,IAAA,CAAA,iBAAiB,GAAG,CAAH,CAAK;AAK7B,IAAA,IAAW,cAAc,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK;IACnC;IACA,IAAoB,cAAc,CAAC,KAAc,EAAA;AAC/C,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;IAClC;AAIA,IAAA,IAAW,YAAY,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK;IACjC;IACA,IAAoB,YAAY,CAAC,KAAqB,EAAA;AACpD,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;IAChC;AAIA,IAAA,IAAW,aAAa,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK;IAClC;IACA,IAAoB,aAAa,CAAC,KAAc,EAAA;AAC9C,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;IACjC;;AAGA,IAAA,YAAY,CAAC,GAAuB,EAAA;AAClC,QAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;QAC3B;AACA,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,YAAY,CAAC,EAAoC,EAAA;AAC/C,QAAA,IAAI,SAAS,IAAI,SAAS,EAAE;AAC1B,YAAA,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;QACzB;IACF;AAEA,IAAA,OAAO,CAAC,EAAqD,EAAA;QAC3D,IAAI,EAAE,CAAC,iBAAiB,KAAK,EAAE,CAAC,SAAS,EAAE;AACzC,YAAA,eAAe,CACb,IAAI,CAAC,eAAe,EACpB,EAAE,CAAC,aAAa,EAChB,EAAE,CAAC,YAAY,CAAC;QACpB;aAAO;;;;;;QAMP;IACF;8GArGW,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,aAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,SAAA,EAJrB;AACT,YAAA,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,qBAAqB;SAC7D,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,SAAA,EA0BgB,kBAAkB,6BCxCrC,qgFA6CC,EAAA,MAAA,EAAA,CAAA,gwJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,4BAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,+BAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FD7BY,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBATjC,SAAS;+BACE,gBAAgB,EAAA,UAAA,EAGd,KAAK,EAAA,SAAA,EACN;AACT,wBAAA,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,uBAAuB;AAC7D,qBAAA,EAAA,QAAA,EAAA,qgFAAA,EAAA,MAAA,EAAA,CAAA,gwJAAA,CAAA,EAAA;;sBAwBA,WAAW;uBAAC,eAAe;;sBAC3B,WAAW;uBAAC,yBAAyB;;sBACrC,eAAe;uBAAC,kBAAkB;;sBAMlC;;sBACA;;sBAqBA;;sBASA;;sBASA;;;ME5DU,kBAAkB,CAAA;8GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,iBAhB3B,qBAAqB;YACrB,kBAAkB;AAClB,YAAA,wBAAwB,aAGxB,SAAS;YACT,gBAAgB;YAChB,cAAc;AACd,YAAA,qBAAqB,aAGrB,qBAAqB;YACrB,kBAAkB;YAClB,wBAAwB,CAAA,EAAA,CAAA,CAAA;AAGf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAT3B,cAAc,CAAA,EAAA,CAAA,CAAA;;2FASL,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAlB9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,qBAAqB;wBACrB,kBAAkB;wBAClB,wBAAwB;AACzB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,SAAS;wBACT,gBAAgB;wBAChB,cAAc;wBACd;AACD,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,qBAAqB;wBACrB,kBAAkB;wBAClB,wBAAwB;AACzB;AACF,iBAAA;;;ACzBD;;AAEG;;;;"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-tab-control.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-page-header/tab-page-header.directive.ts","../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-page/tab-page.component.ts","../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-page/tab-page.component.html","../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-control/tab-control.component.ts","../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-control/tab-control.component.html","../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-control.module.ts","../../../../libs/mintplayer-ng-bootstrap/tab-control/mintplayer-ng-bootstrap-tab-control.ts"],"sourcesContent":["import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[bsTabPageHeader]',\n standalone: false,\n})\nexport class BsTabPageHeaderDirective {\n template = inject(TemplateRef);\n}\n","import { ChangeDetectionStrategy, Component, ContentChild, computed, inject, input, ElementRef, signal } from '@angular/core';\nimport { BsTabControlComponent } from '../tab-control/tab-control.component';\nimport { BsTabPageHeaderDirective } from '../tab-page-header/tab-page-header.directive';\n\n@Component({\n selector: 'bs-tab-page',\n templateUrl: './tab-page.component.html',\n styleUrls: ['./tab-page.component.scss'],\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsTabPageComponent {\n element = inject(ElementRef);\n tabControl = inject(BsTabControlComponent);\n\n constructor() {\n this.tabId = signal(++this.tabControl.tabCounter);\n }\n tabId = signal<number>(0);\n tabName = computed(() => `${this.tabControl.tabControlName()}-${this.tabId()}`);\n\n disabled = input(false);\n @ContentChild(BsTabPageHeaderDirective) headerTemplate!: BsTabPageHeaderDirective;\n}\n","<input type=\"radio\" bsNoNoscript class=\"d-none\" [name]=\"tabControl.tabControlName()\" [id]=\"tabName()\">\n<div class=\"tab-page-content\" [class.d-block]=\"tabControl.activeTab() === this\">\n <ng-content></ng-content>\n</div>\n","import { CdkDragDrop, CdkDragStart, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { ChangeDetectionStrategy, Component, computed, ContentChildren, effect, ElementRef, HostBinding, inject, input, QueryList, signal } from '@angular/core';\nimport { BsTabPageComponent } from '../tab-page/tab-page.component';\nimport { BsTabsPosition } from '../tabs-position';\n\n@Component({\n selector: 'bs-tab-control',\n templateUrl: './tab-control.component.html',\n styleUrls: ['./tab-control.component.scss'],\n standalone: false,\n providers: [\n { provide: 'TAB_CONTROL', useExisting: BsTabControlComponent }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsTabControlComponent {\n element = inject(ElementRef);\n\n constructor() {\n this.tabControlId = signal(++BsTabControlComponent.tabControlCounter);\n\n effect(() => {\n const tabPages = this.tabPages();\n const activeTab = this.activeTab();\n const selectFirstTab = this.selectFirstTab();\n if (tabPages && (!activeTab || !tabPages.some(tp => tp === activeTab)) && selectFirstTab) {\n const notDisabled = tabPages.filter((tp) => !tp.disabled());\n if (notDisabled.length > 0) {\n setTimeout(() => this.activeTab.set(notDisabled[0]));\n }\n }\n });\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.set(value);\n const list = value.toArray();\n const toAdd = value.filter(tp => !this.orderedTabPages.includes(tp));\n this.orderedTabPages = this.orderedTabPages.concat(toAdd).filter((tp) => list.includes(tp));\n }\n\n border = input(true);\n restrictDragging = input(false);\n selectFirstTab = input(true);\n tabsPosition = input<BsTabsPosition>('top');\n allowDragDrop = input(false);\n\n dragBoundarySelector = computed(() => this.restrictDragging() ? 'ul' : '');\n tabPages = signal<QueryList<BsTabPageComponent> | null>(null);\n activeTab = signal<BsTabPageComponent | null>(null);\n orderedTabPages: BsTabPageComponent[] = [];\n tabControlId = signal<number>(0);\n tabControlName = computed(() => `bs-tab-control-${this.tabControlId()}`);\n topTabs = computed(() => this.tabsPosition() === 'top');\n bottomTabs = computed(() => this.tabsPosition() === 'bottom');\n disableDragDrop = computed(() => !this.allowDragDrop());\n static tabControlCounter = 0;\n tabCounter = 0;\n\n setActiveTab(tab: BsTabPageComponent) {\n if (!tab.disabled()) {\n this.activeTab.set(tab);\n }\n return false;\n }\n\n startDragTab(ev: CdkDragStart<BsTabPageComponent>) {\n if ('vibrate' in navigator) {\n navigator.vibrate([30]);\n }\n }\n\n moveTab(ev: CdkDragDrop<QueryList<BsTabPageComponent> | null>) {\n if (ev.previousContainer === ev.container) {\n moveItemInArray(\n this.orderedTabPages,\n ev.previousIndex,\n ev.currentIndex);\n }\n }\n}\n","@let activeTabValue = activeTab();\n@if (topTabs()) {\n\t<div class=\"overflow-hidden mw-100 tsc\">\n\t\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t\t[cdkDropListData]=\"tabPages()\"\n\t\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\t\t[cdkDropListDisabled]=\"disableDragDrop()\"\n\t\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t\t@for (tab of orderedTabPages; track tab) {\n\t\t\t\t@if (tab.headerTemplate) {\n\t\t\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector()\" [cdkDragStartDelay]=\"500\" (cdkDragStarted)=\"startDragTab($event)\">\n\t\t\t\t\t\t<label [for]=\"tab.tabName()\" class=\"nav-link text-nowrap cursor-pointer\" [class.active]=\"activeTabValue === tab\" [class.disabled]=\"tab.disabled()\" [attr.aria-current]=\"activeTabValue === tab ? 'page' : null\" [attr.aria-disabled]=\"tab.disabled()\">\n\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.headerTemplate.template\"></ng-container>\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</span>\n\t\t\t\t}\n\t\t\t}\n\t\t</ul>\n\t</div>\n}\n<div class=\"tab-content flex-grow-1 overflow-auto\" bsNoNoscript [class.border]=\"border() && activeTabValue\" [class.border-top]=\"border() && !activeTabValue\">\n\t<ng-content></ng-content>\n</div>\n@if (bottomTabs()) {\n\t<div class=\"overflow-hidden mw-100 tsc bottom-tabs\">\n\t\t<ul cdkDropList #list #tabList=\"cdkDropList\"\n\t\t\t[cdkDropListData]=\"tabPages()\"\n\t\t\t[cdkDropListConnectedTo]=\"[]\"\n\t\t\t[cdkDropListOrientation]=\"'horizontal'\"\n\t\t\t(cdkDropListDropped)=\"moveTab($event)\"\n\t\t\t[cdkDropListDisabled]=\"disableDragDrop()\"\n\t\t\tclass=\"nav nav-tabs flex-nowrap overflow-x-auto overflow-y-hidden\">\n\t\t\t@for (tab of orderedTabPages; track tab) {\n\t\t\t\t@if (tab.headerTemplate) {\n\t\t\t\t\t<span class=\"nav-item\" (click)=\"setActiveTab(tab)\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector()\" [cdkDragStartDelay]=\"500\" (cdkDragStarted)=\"startDragTab($event)\">\n\t\t\t\t\t\t<label [for]=\"tab.tabName()\" class=\"nav-link text-nowrap cursor-pointer\" [class.active]=\"activeTabValue === tab\" [class.disabled]=\"tab.disabled()\" [attr.aria-current]=\"activeTabValue === tab ? 'page' : null\" [attr.aria-disabled]=\"tab.disabled()\">\n\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.headerTemplate.template\"></ng-container>\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</span>\n\t\t\t\t}\n\t\t\t}\n\t\t</ul>\n\t</div>\n}\n","import { NgModule } from '@angular/core';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { BsNoNoscriptDirective } from '@mintplayer/ng-bootstrap/no-noscript';\nimport { BsTabControlComponent } from './tab-control/tab-control.component';\nimport { BsTabPageComponent } from './tab-page/tab-page.component';\nimport { BsTabPageHeaderDirective } from './tab-page-header/tab-page-header.directive';\n\n@NgModule({\n declarations: [\n BsTabControlComponent,\n BsTabPageComponent,\n BsTabPageHeaderDirective,\n ],\n imports: [\n AsyncPipe,\n NgTemplateOutlet,\n DragDropModule,\n BsNoNoscriptDirective\n ],\n exports: [\n BsTabControlComponent,\n BsTabPageComponent,\n BsTabPageHeaderDirective,\n ]\n})\nexport class BsTabControlModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i3"],"mappings":"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"}