@mintplayer/ng-bootstrap 21.4.4 → 21.5.1

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 (35) hide show
  1. package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs +4 -4
  2. package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs.map +1 -1
  3. package/fesm2022/mintplayer-ng-bootstrap-alert.mjs +2 -2
  4. package/fesm2022/mintplayer-ng-bootstrap-alert.mjs.map +1 -1
  5. package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs +16 -13
  6. package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs.map +1 -1
  7. package/fesm2022/mintplayer-ng-bootstrap-modal.mjs +8 -4
  8. package/fesm2022/mintplayer-ng-bootstrap-modal.mjs.map +1 -1
  9. package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs +22 -16
  10. package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs.map +1 -1
  11. package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs +9 -5
  12. package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs.map +1 -1
  13. package/fesm2022/mintplayer-ng-bootstrap-rating.mjs +12 -4
  14. package/fesm2022/mintplayer-ng-bootstrap-rating.mjs.map +1 -1
  15. package/fesm2022/mintplayer-ng-bootstrap-select2.mjs +2 -2
  16. package/fesm2022/mintplayer-ng-bootstrap-select2.mjs.map +1 -1
  17. package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs +6 -6
  18. package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs.map +1 -1
  19. package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs +2 -2
  20. package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs.map +1 -1
  21. package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs +43 -5
  22. package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs.map +1 -1
  23. package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs +4 -2
  24. package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs.map +1 -1
  25. package/package.json +3 -7
  26. package/types/mintplayer-ng-bootstrap-dropdown.d.ts +2 -1
  27. package/types/mintplayer-ng-bootstrap-modal.d.ts +1 -0
  28. package/types/mintplayer-ng-bootstrap-navbar.d.ts +2 -0
  29. package/types/mintplayer-ng-bootstrap-offcanvas.d.ts +1 -0
  30. package/types/mintplayer-ng-bootstrap-rating.d.ts +2 -0
  31. package/types/mintplayer-ng-bootstrap-treeview.d.ts +18 -9
  32. package/types/mintplayer-ng-bootstrap-typeahead.d.ts +1 -0
  33. package/fesm2022/mintplayer-ng-bootstrap-splitter.mjs +0 -263
  34. package/fesm2022/mintplayer-ng-bootstrap-splitter.mjs.map +0 -1
  35. package/types/mintplayer-ng-bootstrap-splitter.d.ts +0 -76
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-select2.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/select2/src/component/select2.component.ts","../../../../libs/mintplayer-ng-bootstrap/select2/src/component/select2.component.html","../../../../libs/mintplayer-ng-bootstrap/select2/src/directive/item-template/item-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/select2/src/directive/suggestion-template/suggestion-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/select2/src/select2.module.ts","../../../../libs/mintplayer-ng-bootstrap/select2/mintplayer-ng-bootstrap-select2.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, effect, ElementRef, HostBinding, HostListener, input, model, output, signal, TemplateRef, ViewChild } from '@angular/core';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\n\n@Component({\n selector: 'bs-select2',\n templateUrl: './select2.component.html',\n styleUrls: ['./select2.component.scss'],\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsSelect2Component<T extends HasId<U>, U> {\n\n isOpen = signal(false);\n isLoading = signal<boolean>(false);\n\n suggestions = model<T[]>([]);\n\n @ViewChild('defaultItemTemplate', { static: true }) defaultItemTemplate!: TemplateRef<any>;\n @ViewChild('searchBox') searchBox!: ElementRef<HTMLInputElement>;\n @ViewChild('itemsBox') itemsBox!: ElementRef<HTMLDivElement>;\n searchterm = model('');\n provideSuggestions = output<string>();\n @HostBinding('class.focus') isFocused = false;\n\n selectedItems = model<T[]>([]);\n\n private charWidth = 10;\n searchWidth = signal(20);\n itemTemplate?: TemplateRef<T>;\n suggestionTemplate?: TemplateRef<T>;\n\n constructor() {\n effect(() => {\n const suggestions = this.suggestions();\n if (suggestions) {\n this.isLoading.set(false);\n }\n });\n }\n\n onProvideSuggestions(value: string) {\n this.searchterm.set(value);\n this.searchWidth.set(this.charWidth * (value.length + 2));\n if (value === '') {\n this.isOpen.set(false);\n } else {\n this.isLoading.set(true);\n this.isOpen.set(true);\n this.provideSuggestions.emit(value);\n }\n }\n\n onSuggestionClicked(suggestion: T) {\n this.searchterm.set('');\n this.isOpen.set(false);\n\n const currentItems = this.selectedItems();\n const existing = currentItems.find((value, index) => value.id === suggestion.id);\n if (existing === undefined) {\n this.selectedItems.set([...currentItems, suggestion]);\n } else {\n this.selectedItems.set(currentItems.filter(item => item.id !== suggestion.id));\n }\n\n this.searchBox.nativeElement.focus();\n }\n\n onRemoveItem(item: T, event: MouseEvent) {\n event.stopPropagation();\n const currentItems = this.selectedItems();\n this.selectedItems.set(currentItems.filter(i => i.id !== item.id));\n this.focus();\n }\n\n @HostListener('click')\n public focus() {\n this.searchBox.nativeElement.focus();\n }\n}\n","<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [sameDropdownWidth]=\"true\" #itemsBox class=\"items-box text-wrap\">\n @for (item of selectedItems(); track item) {\n <ng-container *ngTemplateOutlet=\"itemTemplate ?? defaultItemTemplate; context: { $implicit: item, select2: this }\"></ng-container>\n }\n\n <input type=\"text\" autocomplete=\"off\"\n [ngModel]=\"searchterm()\"\n (ngModelChange)=\"onProvideSuggestions($event)\"\n (focus)=\"isFocused=true\"\n (blur)=\"isFocused=false\"\n [style.width.px]=\"searchWidth()\"\n #searchBox />\n <bs-dropdown-menu *bsDropdownMenu [maxHeight]=\"200\">\n @for (suggestion of suggestions(); track $index) {\n <bs-dropdown-item (click)=\"onSuggestionClicked(suggestion)\" [isSelected]=\"selectedItems() | bsInList:suggestion.id\">\n <ng-container *ngTemplateOutlet=\"suggestionTemplate ?? defaultSuggestionTemplate; context: { $implicit: suggestion, select2: this }\"></ng-container>\n </bs-dropdown-item>\n }\n </bs-dropdown-menu>\n</div>\n\n<ng-template #defaultItemTemplate let-item let-select2=\"select2\">\n <span class=\"select2-item\">\n <span (click)=\"select2.onRemoveItem(item,$event)\">×</span>\n {{ item.text }}\n </span>\n</ng-template>\n\n<ng-template #defaultSuggestionTemplate let-suggestion let-select2=\"select2\">\n {{ suggestion.text }}\n</ng-template>\n","import { Directive, effect, inject, Input, isSignal, TemplateRef, untracked, WritableSignal } from '@angular/core';\nimport { BsSelect2Component } from '../../component/select2.component';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\n\n@Directive({\n selector: '[bsItemTemplate]',\n standalone: false,\n})\nexport class BsItemTemplateDirective<T extends HasId<U>, U> {\n private select2component = inject<BsSelect2Component<T, U>>(BsSelect2Component);\n private templateRef = inject<TemplateRef<T>>(TemplateRef);\n private sourceSignal?: WritableSignal<T[]>;\n private lastSourceValue?: T[];\n\n constructor() {\n this.select2component.itemTemplate = this.templateRef;\n\n // Sync changes from component back to source signal\n effect(() => {\n const componentValue = this.select2component.selectedItems();\n if (this.sourceSignal) {\n const sourceValue = untracked(() => this.sourceSignal!());\n if (componentValue !== sourceValue) {\n this.sourceSignal.set(componentValue);\n }\n }\n });\n\n // Sync changes from source signal to component\n effect(() => {\n if (this.sourceSignal) {\n const sourceValue = this.sourceSignal();\n if (sourceValue !== this.lastSourceValue) {\n this.lastSourceValue = sourceValue;\n const componentValue = untracked(() => this.select2component.selectedItems());\n if (sourceValue !== componentValue) {\n this.select2component.selectedItems.set(sourceValue);\n }\n }\n }\n });\n }\n\n public static ngTemplateContextGuard<T extends HasId<U>, U>(dir: BsItemTemplateDirective<T, U>, ctx: any): ctx is BsItemTemplateContext<Exclude<T, false | 0 | '' | null | undefined>, U> {\n return true;\n }\n\n @Input() set bsItemTemplateOf(value: T[] | WritableSignal<T[]>) {\n if (isSignal(value)) {\n // Store the signal reference for two-way binding\n this.sourceSignal = value as WritableSignal<T[]>;\n this.lastSourceValue = value();\n this.select2component.selectedItems.set(value());\n } else {\n // Plain array - one-way binding (backward compatible)\n this.sourceSignal = undefined;\n this.select2component.selectedItems.set(value as T[]);\n }\n }\n}\n\nexport class BsItemTemplateContext<T extends HasId<U>, U> {\n $implicit: T = null!;\n select2: BsSelect2Component<T, U> = null!;\n}","import { Directive, inject, Input, TemplateRef } from '@angular/core';\nimport { BsSelect2Component } from '../../component/select2.component';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\n\n@Directive({\n selector: '[bsSuggestionTemplate]',\n standalone: false,\n})\nexport class BsSuggestionTemplateDirective<T extends HasId<U>, U> {\n private select2component = inject<BsSelect2Component<T, U>>(BsSelect2Component);\n\n constructor() {\n const templateRef = inject<TemplateRef<T>>(TemplateRef);\n this.select2component.suggestionTemplate = templateRef;\n }\n\n public static ngTemplateContextGuard<T extends HasId<U>, U>(dir: BsSuggestionTemplateDirective<T, U>, ctx: any): ctx is BsSuggestionTemplateContext<Exclude<T, false | 0 | '' | null | undefined>, U> {\n return true;\n }\n\n @Input() set bsSuggestionTemplateOf(value: T[]) {\n this.select2component.suggestions.set(value);\n }\n}\n\nexport class BsSuggestionTemplateContext<T extends HasId<U>, U> {\n $implicit: T = null!;\n select2: BsSelect2Component<T, U> = null!;\n}","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { BsInListPipe } from '@mintplayer/ng-bootstrap/in-list';\nimport { BsDropdownModule } from '@mintplayer/ng-bootstrap/dropdown';\nimport { BsDropdownMenuModule } from '@mintplayer/ng-bootstrap/dropdown-menu';\nimport { BsHasOverlayComponent } from '@mintplayer/ng-bootstrap/has-overlay';\nimport { BsSelect2Component } from './component/select2.component';\nimport { BsItemTemplateDirective } from './directive/item-template/item-template.directive';\nimport { BsSuggestionTemplateDirective } from './directive/suggestion-template/suggestion-template.directive';\n\n@NgModule({\n declarations: [\n BsSelect2Component,\n BsItemTemplateDirective,\n BsSuggestionTemplateDirective,\n ],\n imports: [\n NgTemplateOutlet,\n FormsModule,\n BsDropdownModule,\n BsDropdownMenuModule,\n BsHasOverlayComponent,\n BsInListPipe,\n ],\n exports: [\n BsSelect2Component,\n BsItemTemplateDirective,\n BsSuggestionTemplateDirective,\n ],\n})\nexport class BsSelect2Module {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-select2.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/select2/src/component/select2.component.ts","../../../../libs/mintplayer-ng-bootstrap/select2/src/component/select2.component.html","../../../../libs/mintplayer-ng-bootstrap/select2/src/directive/item-template/item-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/select2/src/directive/suggestion-template/suggestion-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/select2/src/select2.module.ts","../../../../libs/mintplayer-ng-bootstrap/select2/mintplayer-ng-bootstrap-select2.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, effect, ElementRef, HostBinding, HostListener, input, model, output, signal, TemplateRef, ViewChild } from '@angular/core';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\n\n@Component({\n selector: 'bs-select2',\n templateUrl: './select2.component.html',\n styleUrls: ['./select2.component.scss'],\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsSelect2Component<T extends HasId<U>, U> {\n\n isOpen = signal(false);\n isLoading = signal<boolean>(false);\n\n suggestions = model<T[]>([]);\n\n @ViewChild('defaultItemTemplate', { static: true }) defaultItemTemplate!: TemplateRef<any>;\n @ViewChild('searchBox') searchBox!: ElementRef<HTMLInputElement>;\n @ViewChild('itemsBox') itemsBox!: ElementRef<HTMLDivElement>;\n searchterm = model('');\n provideSuggestions = output<string>();\n @HostBinding('class.focus') isFocused = false;\n\n selectedItems = model<T[]>([]);\n\n private charWidth = 10;\n searchWidth = signal(20);\n itemTemplate?: TemplateRef<T>;\n suggestionTemplate?: TemplateRef<T>;\n\n constructor() {\n effect(() => {\n const suggestions = this.suggestions();\n if (suggestions) {\n this.isLoading.set(false);\n }\n });\n }\n\n onProvideSuggestions(value: string) {\n this.searchterm.set(value);\n this.searchWidth.set(this.charWidth * (value.length + 2));\n if (value === '') {\n this.isOpen.set(false);\n } else {\n this.isLoading.set(true);\n this.isOpen.set(true);\n this.provideSuggestions.emit(value);\n }\n }\n\n onSuggestionClicked(suggestion: T) {\n this.searchterm.set('');\n this.isOpen.set(false);\n\n const currentItems = this.selectedItems();\n const existing = currentItems.find((value, index) => value.id === suggestion.id);\n if (existing === undefined) {\n this.selectedItems.set([...currentItems, suggestion]);\n } else {\n this.selectedItems.set(currentItems.filter(item => item.id !== suggestion.id));\n }\n\n this.searchBox.nativeElement.focus();\n }\n\n onRemoveItem(item: T, event: MouseEvent) {\n event.stopPropagation();\n const currentItems = this.selectedItems();\n this.selectedItems.set(currentItems.filter(i => i.id !== item.id));\n this.focus();\n }\n\n @HostListener('click')\n public focus() {\n this.searchBox.nativeElement.focus();\n }\n}\n","<bs-has-overlay></bs-has-overlay>\n<div bsDropdown [(isOpen)]=\"isOpen\" [hasBackdrop]=\"false\" [sameDropdownWidth]=\"true\" #itemsBox class=\"items-box text-wrap\" role=\"combobox\" [attr.aria-expanded]=\"isOpen()\">\n @for (item of selectedItems(); track item) {\n <ng-container *ngTemplateOutlet=\"itemTemplate ?? defaultItemTemplate; context: { $implicit: item, select2: this }\"></ng-container>\n }\n\n <input type=\"text\" autocomplete=\"off\"\n [ngModel]=\"searchterm()\"\n (ngModelChange)=\"onProvideSuggestions($event)\"\n (focus)=\"isFocused=true\"\n (blur)=\"isFocused=false\"\n [style.width.px]=\"searchWidth()\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n #searchBox />\n <bs-dropdown-menu *bsDropdownMenu [maxHeight]=\"200\" role=\"listbox\">\n @for (suggestion of suggestions(); track $index) {\n <bs-dropdown-item (click)=\"onSuggestionClicked(suggestion)\" [isSelected]=\"selectedItems() | bsInList:suggestion.id\" role=\"option\" [attr.aria-selected]=\"(selectedItems() | bsInList:suggestion.id) || null\">\n <ng-container *ngTemplateOutlet=\"suggestionTemplate ?? defaultSuggestionTemplate; context: { $implicit: suggestion, select2: this }\"></ng-container>\n </bs-dropdown-item>\n }\n </bs-dropdown-menu>\n</div>\n\n<ng-template #defaultItemTemplate let-item let-select2=\"select2\">\n <span class=\"select2-item\">\n <button type=\"button\" (click)=\"select2.onRemoveItem(item,$event)\" aria-label=\"Remove item\" class=\"btn-close-inline\">×</button>\n {{ item.text }}\n </span>\n</ng-template>\n\n<ng-template #defaultSuggestionTemplate let-suggestion let-select2=\"select2\">\n {{ suggestion.text }}\n</ng-template>\n","import { Directive, effect, inject, Input, isSignal, TemplateRef, untracked, WritableSignal } from '@angular/core';\nimport { BsSelect2Component } from '../../component/select2.component';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\n\n@Directive({\n selector: '[bsItemTemplate]',\n standalone: false,\n})\nexport class BsItemTemplateDirective<T extends HasId<U>, U> {\n private select2component = inject<BsSelect2Component<T, U>>(BsSelect2Component);\n private templateRef = inject<TemplateRef<T>>(TemplateRef);\n private sourceSignal?: WritableSignal<T[]>;\n private lastSourceValue?: T[];\n\n constructor() {\n this.select2component.itemTemplate = this.templateRef;\n\n // Sync changes from component back to source signal\n effect(() => {\n const componentValue = this.select2component.selectedItems();\n if (this.sourceSignal) {\n const sourceValue = untracked(() => this.sourceSignal!());\n if (componentValue !== sourceValue) {\n this.sourceSignal.set(componentValue);\n }\n }\n });\n\n // Sync changes from source signal to component\n effect(() => {\n if (this.sourceSignal) {\n const sourceValue = this.sourceSignal();\n if (sourceValue !== this.lastSourceValue) {\n this.lastSourceValue = sourceValue;\n const componentValue = untracked(() => this.select2component.selectedItems());\n if (sourceValue !== componentValue) {\n this.select2component.selectedItems.set(sourceValue);\n }\n }\n }\n });\n }\n\n public static ngTemplateContextGuard<T extends HasId<U>, U>(dir: BsItemTemplateDirective<T, U>, ctx: any): ctx is BsItemTemplateContext<Exclude<T, false | 0 | '' | null | undefined>, U> {\n return true;\n }\n\n @Input() set bsItemTemplateOf(value: T[] | WritableSignal<T[]>) {\n if (isSignal(value)) {\n // Store the signal reference for two-way binding\n this.sourceSignal = value as WritableSignal<T[]>;\n this.lastSourceValue = value();\n this.select2component.selectedItems.set(value());\n } else {\n // Plain array - one-way binding (backward compatible)\n this.sourceSignal = undefined;\n this.select2component.selectedItems.set(value as T[]);\n }\n }\n}\n\nexport class BsItemTemplateContext<T extends HasId<U>, U> {\n $implicit: T = null!;\n select2: BsSelect2Component<T, U> = null!;\n}","import { Directive, inject, Input, TemplateRef } from '@angular/core';\nimport { BsSelect2Component } from '../../component/select2.component';\nimport { HasId } from '@mintplayer/ng-bootstrap/has-id';\n\n@Directive({\n selector: '[bsSuggestionTemplate]',\n standalone: false,\n})\nexport class BsSuggestionTemplateDirective<T extends HasId<U>, U> {\n private select2component = inject<BsSelect2Component<T, U>>(BsSelect2Component);\n\n constructor() {\n const templateRef = inject<TemplateRef<T>>(TemplateRef);\n this.select2component.suggestionTemplate = templateRef;\n }\n\n public static ngTemplateContextGuard<T extends HasId<U>, U>(dir: BsSuggestionTemplateDirective<T, U>, ctx: any): ctx is BsSuggestionTemplateContext<Exclude<T, false | 0 | '' | null | undefined>, U> {\n return true;\n }\n\n @Input() set bsSuggestionTemplateOf(value: T[]) {\n this.select2component.suggestions.set(value);\n }\n}\n\nexport class BsSuggestionTemplateContext<T extends HasId<U>, U> {\n $implicit: T = null!;\n select2: BsSelect2Component<T, U> = null!;\n}","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { BsInListPipe } from '@mintplayer/ng-bootstrap/in-list';\nimport { BsDropdownModule } from '@mintplayer/ng-bootstrap/dropdown';\nimport { BsDropdownMenuModule } from '@mintplayer/ng-bootstrap/dropdown-menu';\nimport { BsHasOverlayComponent } from '@mintplayer/ng-bootstrap/has-overlay';\nimport { BsSelect2Component } from './component/select2.component';\nimport { BsItemTemplateDirective } from './directive/item-template/item-template.directive';\nimport { BsSuggestionTemplateDirective } from './directive/suggestion-template/suggestion-template.directive';\n\n@NgModule({\n declarations: [\n BsSelect2Component,\n BsItemTemplateDirective,\n BsSuggestionTemplateDirective,\n ],\n imports: [\n NgTemplateOutlet,\n FormsModule,\n BsDropdownModule,\n BsDropdownMenuModule,\n BsHasOverlayComponent,\n BsInListPipe,\n ],\n exports: [\n BsSelect2Component,\n BsItemTemplateDirective,\n BsSuggestionTemplateDirective,\n ],\n})\nexport class BsSelect2Module {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
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';
3
+ import * as i1 from '@angular/common';
4
4
  import { AsyncPipe, NgTemplateOutlet } from '@angular/common';
5
5
  import * as i2 from '@angular/cdk/drag-drop';
6
6
  import { moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
7
- import * as i1 from '@mintplayer/ng-bootstrap/no-noscript';
7
+ import * as i3 from '@mintplayer/ng-bootstrap/no-noscript';
8
8
  import { BsNoNoscriptDirective } from '@mintplayer/ng-bootstrap/no-noscript';
9
9
 
10
10
  class BsTabPageHeaderDirective {
@@ -32,11 +32,11 @@ class BsTabPageComponent {
32
32
  this.tabId = signal(++this.tabControl.tabCounter, ...(ngDevMode ? [{ debugName: "tabId" }] : []));
33
33
  }
34
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 }); }
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: "<div [id]=\"tabName() + '-panel'\"\n class=\"tab-page-content\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"tabName()\"\n [class.d-block]=\"tabControl.activeTab() === this\"\n [attr.tabindex]=\"tabControl.activeTab() === this ? 0 : null\">\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"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
36
36
  }
37
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsTabPageComponent, decorators: [{
38
38
  type: Component,
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"] }]
39
+ args: [{ selector: 'bs-tab-page', standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [id]=\"tabName() + '-panel'\"\n class=\"tab-page-content\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"tabName()\"\n [class.d-block]=\"tabControl.activeTab() === this\"\n [attr.tabindex]=\"tabControl.activeTab() === this ? 0 : null\">\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
40
  }], ctorParameters: () => [], propDecorators: { disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], headerTemplate: [{
41
41
  type: ContentChild,
42
42
  args: [BsTabPageHeaderDirective]
@@ -101,13 +101,13 @@ class BsTabControlComponent {
101
101
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsTabControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
102
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: [
103
103
  { provide: 'TAB_CONTROL', useExisting: BsTabControlComponent }
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 }); }
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\trole=\"tablist\">\n\t\t\t@for (tab of orderedTabPages; track tab) {\n\t\t\t\t@if (tab.headerTemplate) {\n\t\t\t\t\t<li class=\"nav-item\" role=\"presentation\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector()\" [cdkDragStartDelay]=\"500\" (cdkDragStarted)=\"startDragTab($event)\">\n\t\t\t\t\t\t<button type=\"button\"\n\t\t\t\t\t\t\t[id]=\"tab.tabName()\"\n\t\t\t\t\t\t\tclass=\"nav-link text-nowrap\"\n\t\t\t\t\t\t\t[class.active]=\"activeTabValue === tab\"\n\t\t\t\t\t\t\t[class.disabled]=\"tab.disabled()\"\n\t\t\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t\t\t[attr.aria-selected]=\"activeTabValue === tab\"\n\t\t\t\t\t\t\t[attr.aria-controls]=\"tab.tabName() + '-panel'\"\n\t\t\t\t\t\t\t[attr.aria-disabled]=\"tab.disabled() || null\"\n\t\t\t\t\t\t\t[disabled]=\"tab.disabled()\"\n\t\t\t\t\t\t\t(click)=\"setActiveTab(tab)\">\n\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.headerTemplate.template\"></ng-container>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</li>\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\trole=\"tablist\">\n\t\t\t@for (tab of orderedTabPages; track tab) {\n\t\t\t\t@if (tab.headerTemplate) {\n\t\t\t\t\t<li class=\"nav-item\" role=\"presentation\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector()\" [cdkDragStartDelay]=\"500\" (cdkDragStarted)=\"startDragTab($event)\">\n\t\t\t\t\t\t<button type=\"button\"\n\t\t\t\t\t\t\t[id]=\"tab.tabName()\"\n\t\t\t\t\t\t\tclass=\"nav-link text-nowrap\"\n\t\t\t\t\t\t\t[class.active]=\"activeTabValue === tab\"\n\t\t\t\t\t\t\t[class.disabled]=\"tab.disabled()\"\n\t\t\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t\t\t[attr.aria-selected]=\"activeTabValue === tab\"\n\t\t\t\t\t\t\t[attr.aria-controls]=\"tab.tabName() + '-panel'\"\n\t\t\t\t\t\t\t[attr.aria-disabled]=\"tab.disabled() || null\"\n\t\t\t\t\t\t\t[disabled]=\"tab.disabled()\"\n\t\t\t\t\t\t\t(click)=\"setActiveTab(tab)\">\n\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.headerTemplate.template\"></ng-container>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</li>\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.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: i3.BsNoNoscriptDirective, selector: "[bsNoNoscript]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
105
105
  }
106
106
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsTabControlComponent, decorators: [{
107
107
  type: Component,
108
108
  args: [{ selector: 'bs-tab-control', standalone: false, providers: [
109
109
  { provide: 'TAB_CONTROL', useExisting: BsTabControlComponent }
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"] }]
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\trole=\"tablist\">\n\t\t\t@for (tab of orderedTabPages; track tab) {\n\t\t\t\t@if (tab.headerTemplate) {\n\t\t\t\t\t<li class=\"nav-item\" role=\"presentation\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector()\" [cdkDragStartDelay]=\"500\" (cdkDragStarted)=\"startDragTab($event)\">\n\t\t\t\t\t\t<button type=\"button\"\n\t\t\t\t\t\t\t[id]=\"tab.tabName()\"\n\t\t\t\t\t\t\tclass=\"nav-link text-nowrap\"\n\t\t\t\t\t\t\t[class.active]=\"activeTabValue === tab\"\n\t\t\t\t\t\t\t[class.disabled]=\"tab.disabled()\"\n\t\t\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t\t\t[attr.aria-selected]=\"activeTabValue === tab\"\n\t\t\t\t\t\t\t[attr.aria-controls]=\"tab.tabName() + '-panel'\"\n\t\t\t\t\t\t\t[attr.aria-disabled]=\"tab.disabled() || null\"\n\t\t\t\t\t\t\t[disabled]=\"tab.disabled()\"\n\t\t\t\t\t\t\t(click)=\"setActiveTab(tab)\">\n\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.headerTemplate.template\"></ng-container>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</li>\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\trole=\"tablist\">\n\t\t\t@for (tab of orderedTabPages; track tab) {\n\t\t\t\t@if (tab.headerTemplate) {\n\t\t\t\t\t<li class=\"nav-item\" role=\"presentation\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector()\" [cdkDragStartDelay]=\"500\" (cdkDragStarted)=\"startDragTab($event)\">\n\t\t\t\t\t\t<button type=\"button\"\n\t\t\t\t\t\t\t[id]=\"tab.tabName()\"\n\t\t\t\t\t\t\tclass=\"nav-link text-nowrap\"\n\t\t\t\t\t\t\t[class.active]=\"activeTabValue === tab\"\n\t\t\t\t\t\t\t[class.disabled]=\"tab.disabled()\"\n\t\t\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t\t\t[attr.aria-selected]=\"activeTabValue === tab\"\n\t\t\t\t\t\t\t[attr.aria-controls]=\"tab.tabName() + '-panel'\"\n\t\t\t\t\t\t\t[attr.aria-disabled]=\"tab.disabled() || null\"\n\t\t\t\t\t\t\t[disabled]=\"tab.disabled()\"\n\t\t\t\t\t\t\t(click)=\"setActiveTab(tab)\">\n\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.headerTemplate.template\"></ng-container>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</li>\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
111
  }], ctorParameters: () => [], propDecorators: { dBlock: [{
112
112
  type: HostBinding,
113
113
  args: ['class.d-block']
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-tab-control.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-page-header/tab-page-header.directive.ts","../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-page/tab-page.component.ts","../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-page/tab-page.component.html","../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-control/tab-control.component.ts","../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-control/tab-control.component.html","../../../../libs/mintplayer-ng-bootstrap/tab-control/src/tab-control.module.ts","../../../../libs/mintplayer-ng-bootstrap/tab-control/mintplayer-ng-bootstrap-tab-control.ts"],"sourcesContent":["import { Directive, 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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"}
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","<div [id]=\"tabName() + '-panel'\"\n class=\"tab-page-content\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"tabName()\"\n [class.d-block]=\"tabControl.activeTab() === this\"\n [attr.tabindex]=\"tabControl.activeTab() === this ? 0 : null\">\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\trole=\"tablist\">\n\t\t\t@for (tab of orderedTabPages; track tab) {\n\t\t\t\t@if (tab.headerTemplate) {\n\t\t\t\t\t<li class=\"nav-item\" role=\"presentation\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector()\" [cdkDragStartDelay]=\"500\" (cdkDragStarted)=\"startDragTab($event)\">\n\t\t\t\t\t\t<button type=\"button\"\n\t\t\t\t\t\t\t[id]=\"tab.tabName()\"\n\t\t\t\t\t\t\tclass=\"nav-link text-nowrap\"\n\t\t\t\t\t\t\t[class.active]=\"activeTabValue === tab\"\n\t\t\t\t\t\t\t[class.disabled]=\"tab.disabled()\"\n\t\t\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t\t\t[attr.aria-selected]=\"activeTabValue === tab\"\n\t\t\t\t\t\t\t[attr.aria-controls]=\"tab.tabName() + '-panel'\"\n\t\t\t\t\t\t\t[attr.aria-disabled]=\"tab.disabled() || null\"\n\t\t\t\t\t\t\t[disabled]=\"tab.disabled()\"\n\t\t\t\t\t\t\t(click)=\"setActiveTab(tab)\">\n\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.headerTemplate.template\"></ng-container>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</li>\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\trole=\"tablist\">\n\t\t\t@for (tab of orderedTabPages; track tab) {\n\t\t\t\t@if (tab.headerTemplate) {\n\t\t\t\t\t<li class=\"nav-item\" role=\"presentation\" cdkDrag [cdkDragBoundary]=\"dragBoundarySelector()\" [cdkDragStartDelay]=\"500\" (cdkDragStarted)=\"startDragTab($event)\">\n\t\t\t\t\t\t<button type=\"button\"\n\t\t\t\t\t\t\t[id]=\"tab.tabName()\"\n\t\t\t\t\t\t\tclass=\"nav-link text-nowrap\"\n\t\t\t\t\t\t\t[class.active]=\"activeTabValue === tab\"\n\t\t\t\t\t\t\t[class.disabled]=\"tab.disabled()\"\n\t\t\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t\t\t[attr.aria-selected]=\"activeTabValue === tab\"\n\t\t\t\t\t\t\t[attr.aria-controls]=\"tab.tabName() + '-panel'\"\n\t\t\t\t\t\t\t[attr.aria-disabled]=\"tab.disabled() || null\"\n\t\t\t\t\t\t\t[disabled]=\"tab.disabled()\"\n\t\t\t\t\t\t\t(click)=\"setActiveTab(tab)\">\n\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tab.headerTemplate.template\"></ng-container>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</li>\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":[],"mappings":"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"}
@@ -27,11 +27,11 @@ class BsTooltipComponent {
27
27
  this.template = content;
28
28
  }
29
29
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsTooltipComponent, deps: [{ token: TOOLTIP_CONTENT }], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.6", type: BsTooltipComponent, isStandalone: false, selector: "bs-tooltip", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.position-relative": "this.positionRelative" } }, ngImport: i0, template: "<bs-has-overlay></bs-has-overlay>\n<div [@fadeInOut] class=\"tooltip position-absolute show\"\n [class]=\"[positionClass(), marginClass()]\">\n <div class=\"tooltip-arrow position-absolute\"></div>\n <div class=\"tooltip-inner\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n </div>\n</div>\n", styles: [":host ::ng-deep .tooltip{--bs-tooltip-zindex: 1080;--bs-tooltip-max-width: 200px;--bs-tooltip-padding-x: .5rem;--bs-tooltip-padding-y: .25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size: .875rem;--bs-tooltip-color: var(--bs-body-bg);--bs-tooltip-bg: var(--bs-emphasis-color);--bs-tooltip-border-radius: var(--bs-border-radius);--bs-tooltip-opacity: .9;--bs-tooltip-arrow-width: .8rem;--bs-tooltip-arrow-height: .4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}:host ::ng-deep .tooltip.show{opacity:var(--bs-tooltip-opacity)}:host ::ng-deep .tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}:host ::ng-deep .tooltip .tooltip-arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}:host ::ng-deep .bs-tooltip-top .tooltip-arrow,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}:host ::ng-deep .bs-tooltip-top .tooltip-arrow:before,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}:host ::ng-deep .bs-tooltip-end .tooltip-arrow,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}:host ::ng-deep .bs-tooltip-end .tooltip-arrow:before,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}:host ::ng-deep .bs-tooltip-bottom .tooltip-arrow,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}:host ::ng-deep .bs-tooltip-bottom .tooltip-arrow:before,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}:host ::ng-deep .bs-tooltip-start .tooltip-arrow,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}:host ::ng-deep .bs-tooltip-start .tooltip-arrow:before,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}:host ::ng-deep .tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.tooltip.bs-tooltip-start,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=left]{right:0}.tooltip.bs-tooltip-start,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=left],.tooltip.bs-tooltip-end,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=right]{transform:translateY(-50%)}.tooltip.bs-tooltip-bottom,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=bottom]{transform:translate(-50%)}.tooltip.bs-tooltip-top,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=top]{transform:translate(-50%) translateY(calc(-100% - .3rem))}.tooltip.bs-tooltip-bottom .tooltip-arrow,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.tooltip.bs-tooltip-top .tooltip-arrow,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{left:50%;transform:translate(-50%)}.tooltip.bs-tooltip-start .tooltip-arrow,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.tooltip.bs-tooltip-end .tooltip-arrow,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{top:50%;transform:translateY(-50%)}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.BsHasOverlayComponent, selector: "bs-has-overlay" }], animations: [FadeInOutAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.6", type: BsTooltipComponent, isStandalone: false, selector: "bs-tooltip", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.position-relative": "this.positionRelative" } }, ngImport: i0, template: "<bs-has-overlay></bs-has-overlay>\n<div [@fadeInOut] class=\"tooltip position-absolute show\"\n [class]=\"[positionClass(), marginClass()]\"\n role=\"tooltip\">\n <div class=\"tooltip-arrow position-absolute\" aria-hidden=\"true\"></div>\n <div class=\"tooltip-inner\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n </div>\n</div>\n", styles: [":host ::ng-deep .tooltip{--bs-tooltip-zindex: 1080;--bs-tooltip-max-width: 200px;--bs-tooltip-padding-x: .5rem;--bs-tooltip-padding-y: .25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size: .875rem;--bs-tooltip-color: var(--bs-body-bg);--bs-tooltip-bg: var(--bs-emphasis-color);--bs-tooltip-border-radius: var(--bs-border-radius);--bs-tooltip-opacity: .9;--bs-tooltip-arrow-width: .8rem;--bs-tooltip-arrow-height: .4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}:host ::ng-deep .tooltip.show{opacity:var(--bs-tooltip-opacity)}:host ::ng-deep .tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}:host ::ng-deep .tooltip .tooltip-arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}:host ::ng-deep .bs-tooltip-top .tooltip-arrow,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}:host ::ng-deep .bs-tooltip-top .tooltip-arrow:before,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}:host ::ng-deep .bs-tooltip-end .tooltip-arrow,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}:host ::ng-deep .bs-tooltip-end .tooltip-arrow:before,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}:host ::ng-deep .bs-tooltip-bottom .tooltip-arrow,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}:host ::ng-deep .bs-tooltip-bottom .tooltip-arrow:before,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}:host ::ng-deep .bs-tooltip-start .tooltip-arrow,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}:host ::ng-deep .bs-tooltip-start .tooltip-arrow:before,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}:host ::ng-deep .tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.tooltip.bs-tooltip-start,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=left]{right:0}.tooltip.bs-tooltip-start,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=left],.tooltip.bs-tooltip-end,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=right]{transform:translateY(-50%)}.tooltip.bs-tooltip-bottom,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=bottom]{transform:translate(-50%)}.tooltip.bs-tooltip-top,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=top]{transform:translate(-50%) translateY(calc(-100% - .3rem))}.tooltip.bs-tooltip-bottom .tooltip-arrow,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.tooltip.bs-tooltip-top .tooltip-arrow,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{left:50%;transform:translate(-50%)}.tooltip.bs-tooltip-start .tooltip-arrow,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.tooltip.bs-tooltip-end .tooltip-arrow,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{top:50%;transform:translateY(-50%)}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.BsHasOverlayComponent, selector: "bs-has-overlay" }], animations: [FadeInOutAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
31
31
  }
32
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsTooltipComponent, decorators: [{
33
33
  type: Component,
34
- args: [{ selector: 'bs-tooltip', standalone: false, animations: [FadeInOutAnimation], changeDetection: ChangeDetectionStrategy.OnPush, template: "<bs-has-overlay></bs-has-overlay>\n<div [@fadeInOut] class=\"tooltip position-absolute show\"\n [class]=\"[positionClass(), marginClass()]\">\n <div class=\"tooltip-arrow position-absolute\"></div>\n <div class=\"tooltip-inner\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n </div>\n</div>\n", styles: [":host ::ng-deep .tooltip{--bs-tooltip-zindex: 1080;--bs-tooltip-max-width: 200px;--bs-tooltip-padding-x: .5rem;--bs-tooltip-padding-y: .25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size: .875rem;--bs-tooltip-color: var(--bs-body-bg);--bs-tooltip-bg: var(--bs-emphasis-color);--bs-tooltip-border-radius: var(--bs-border-radius);--bs-tooltip-opacity: .9;--bs-tooltip-arrow-width: .8rem;--bs-tooltip-arrow-height: .4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}:host ::ng-deep .tooltip.show{opacity:var(--bs-tooltip-opacity)}:host ::ng-deep .tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}:host ::ng-deep .tooltip .tooltip-arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}:host ::ng-deep .bs-tooltip-top .tooltip-arrow,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}:host ::ng-deep .bs-tooltip-top .tooltip-arrow:before,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}:host ::ng-deep .bs-tooltip-end .tooltip-arrow,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}:host ::ng-deep .bs-tooltip-end .tooltip-arrow:before,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}:host ::ng-deep .bs-tooltip-bottom .tooltip-arrow,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}:host ::ng-deep .bs-tooltip-bottom .tooltip-arrow:before,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}:host ::ng-deep .bs-tooltip-start .tooltip-arrow,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}:host ::ng-deep .bs-tooltip-start .tooltip-arrow:before,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}:host ::ng-deep .tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.tooltip.bs-tooltip-start,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=left]{right:0}.tooltip.bs-tooltip-start,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=left],.tooltip.bs-tooltip-end,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=right]{transform:translateY(-50%)}.tooltip.bs-tooltip-bottom,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=bottom]{transform:translate(-50%)}.tooltip.bs-tooltip-top,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=top]{transform:translate(-50%) translateY(calc(-100% - .3rem))}.tooltip.bs-tooltip-bottom .tooltip-arrow,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.tooltip.bs-tooltip-top .tooltip-arrow,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{left:50%;transform:translate(-50%)}.tooltip.bs-tooltip-start .tooltip-arrow,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.tooltip.bs-tooltip-end .tooltip-arrow,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{top:50%;transform:translateY(-50%)}\n"] }]
34
+ args: [{ selector: 'bs-tooltip', standalone: false, animations: [FadeInOutAnimation], changeDetection: ChangeDetectionStrategy.OnPush, template: "<bs-has-overlay></bs-has-overlay>\n<div [@fadeInOut] class=\"tooltip position-absolute show\"\n [class]=\"[positionClass(), marginClass()]\"\n role=\"tooltip\">\n <div class=\"tooltip-arrow position-absolute\" aria-hidden=\"true\"></div>\n <div class=\"tooltip-inner\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n </div>\n</div>\n", styles: [":host ::ng-deep .tooltip{--bs-tooltip-zindex: 1080;--bs-tooltip-max-width: 200px;--bs-tooltip-padding-x: .5rem;--bs-tooltip-padding-y: .25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size: .875rem;--bs-tooltip-color: var(--bs-body-bg);--bs-tooltip-bg: var(--bs-emphasis-color);--bs-tooltip-border-radius: var(--bs-border-radius);--bs-tooltip-opacity: .9;--bs-tooltip-arrow-width: .8rem;--bs-tooltip-arrow-height: .4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}:host ::ng-deep .tooltip.show{opacity:var(--bs-tooltip-opacity)}:host ::ng-deep .tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}:host ::ng-deep .tooltip .tooltip-arrow:before{position:absolute;content:\"\";border-color:transparent;border-style:solid}:host ::ng-deep .bs-tooltip-top .tooltip-arrow,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}:host ::ng-deep .bs-tooltip-top .tooltip-arrow:before,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}:host ::ng-deep .bs-tooltip-end .tooltip-arrow,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}:host ::ng-deep .bs-tooltip-end .tooltip-arrow:before,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}:host ::ng-deep .bs-tooltip-bottom .tooltip-arrow,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}:host ::ng-deep .bs-tooltip-bottom .tooltip-arrow:before,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}:host ::ng-deep .bs-tooltip-start .tooltip-arrow,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}:host ::ng-deep .bs-tooltip-start .tooltip-arrow:before,:host ::ng-deep .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}:host ::ng-deep .tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.tooltip.bs-tooltip-start,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=left]{right:0}.tooltip.bs-tooltip-start,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=left],.tooltip.bs-tooltip-end,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=right]{transform:translateY(-50%)}.tooltip.bs-tooltip-bottom,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=bottom]{transform:translate(-50%)}.tooltip.bs-tooltip-top,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=top]{transform:translate(-50%) translateY(calc(-100% - .3rem))}.tooltip.bs-tooltip-bottom .tooltip-arrow,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.tooltip.bs-tooltip-top .tooltip-arrow,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{left:50%;transform:translate(-50%)}.tooltip.bs-tooltip-start .tooltip-arrow,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.tooltip.bs-tooltip-end .tooltip-arrow,:host ::ng-deep .tooltip.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{top:50%;transform:translateY(-50%)}\n"] }]
35
35
  }], ctorParameters: () => [{ type: i0.TemplateRef, decorators: [{
36
36
  type: Inject,
37
37
  args: [TOOLTIP_CONTENT]
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-tooltip.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/tooltip/src/providers/tooltip-content.provider.ts","../../../../libs/mintplayer-ng-bootstrap/tooltip/src/component/tooltip.component.ts","../../../../libs/mintplayer-ng-bootstrap/tooltip/src/component/tooltip.component.html","../../../../libs/mintplayer-ng-bootstrap/tooltip/src/directive/tooltip.directive.ts","../../../../libs/mintplayer-ng-bootstrap/tooltip/src/tooltip.module.ts","../../../../libs/mintplayer-ng-bootstrap/tooltip/mintplayer-ng-bootstrap-tooltip.ts"],"sourcesContent":["import { InjectionToken, TemplateRef } from \"@angular/core\";\n\nexport const TOOLTIP_CONTENT = new InjectionToken<TemplateRef<any>>('TooltipContent');","import { ChangeDetectionStrategy, Component, computed, HostBinding, Inject, input, TemplateRef } from '@angular/core';\nimport { FadeInOutAnimation } from '@mintplayer/ng-animations';\nimport { Position } from '@mintplayer/ng-bootstrap';\nimport { TOOLTIP_CONTENT } from '../providers/tooltip-content.provider';\n\n@Component({\n selector: 'bs-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.scss'],\n standalone: false,\n animations: [FadeInOutAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsTooltipComponent {\n constructor(@Inject(TOOLTIP_CONTENT) content: TemplateRef<any>) {\n this.template = content;\n }\n\n position = input<Position>('bottom');\n template: TemplateRef<any>;\n\n positionClass = computed(() => `bs-tooltip-${this.position()}`);\n\n marginClass = computed(() => {\n switch (this.position()) {\n case 'start': return 'me-1';\n case 'end': return 'ms-1';\n case 'top': return 'mb-1';\n case 'bottom': return 'mt-1';\n }\n });\n\n @HostBinding('class.position-relative') positionRelative = true;\n}\n","<bs-has-overlay></bs-has-overlay>\n<div [@fadeInOut] class=\"tooltip position-absolute show\"\n [class]=\"[positionClass(), marginClass()]\">\n <div class=\"tooltip-arrow position-absolute\"></div>\n <div class=\"tooltip-inner\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n </div>\n</div>\n","import { ConnectedPosition, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Directive, ElementRef, Host, HostListener, Injector, Input, OnDestroy, SkipSelf, TemplateRef } from '@angular/core';\nimport { Position } from '@mintplayer/ng-bootstrap';\nimport { BsTooltipComponent } from '../component/tooltip.component';\nimport { TOOLTIP_CONTENT } from '../providers/tooltip-content.provider';\n\n@Directive({\n selector: '*[bsTooltip]',\n standalone: false,\n})\nexport class BsTooltipDirective implements OnDestroy {\n\n constructor(\n private overlay: Overlay,\n private templateRef: TemplateRef<any>,\n private parentInjector: Injector,\n @Host() @SkipSelf() private parent: ElementRef\n ) {\n this.injector = Injector.create({\n providers: [{ provide: TOOLTIP_CONTENT, useValue: this.templateRef }],\n parent: this.parentInjector\n });\n this.portal = new ComponentPortal(BsTooltipComponent, null, this.injector);\n\n parent.nativeElement.onmouseenter = () => {\n this.showTooltip();\n };\n parent.nativeElement.onmouseleave = () => {\n this.hideTooltip();\n }\n }\n\n @Input() public bsTooltip: Position = 'bottom';\n\n private injector: Injector;\n private portal: ComponentPortal<any>;\n private overlayRef: OverlayRef | null = null;\n\n @HostListener('window:blur') onBlur() {\n this.hideTooltip();\n }\n\n showTooltip() {\n const positions: ConnectedPosition[] = [];\n switch (this.bsTooltip) {\n case 'bottom': {\n positions.push({\n originX: \"center\",\n originY: \"bottom\", //<--\n overlayX: \"center\",\n overlayY: \"top\"\n });\n } break;\n case 'top': {\n positions.push({\n originX: \"center\",\n originY: \"top\", //<--\n overlayX: \"center\",\n overlayY: \"bottom\"\n });\n } break;\n case 'start': {\n positions.push({\n originX: \"start\", //<--\n originY: \"center\",\n overlayX: \"end\",\n overlayY: \"center\",\n });\n } break;\n case 'end': {\n positions.push({\n originX: \"end\", //<--\n originY: \"center\",\n overlayX: \"start\",\n overlayY: \"center\"\n });\n } break;\n }\n\n this.overlayRef = this.overlay.create({\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: this.overlay.position()\n .flexibleConnectedTo(this.parent)\n .withPositions(positions),\n });\n const component = this.overlayRef.attach<BsTooltipComponent>(this.portal);\n component.setInput('position', this.bsTooltip);\n }\n\n hideTooltip() {\n if (this.overlayRef) {\n this.overlayRef.detach();\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n\n ngOnDestroy() {\n this.hideTooltip();\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { BsHasOverlayComponent } from '@mintplayer/ng-bootstrap/has-overlay';\nimport { BsTooltipDirective } from './directive/tooltip.directive';\nimport { BsTooltipComponent } from './component/tooltip.component';\n\n@NgModule({\n declarations: [\n BsTooltipDirective,\n BsTooltipComponent\n ],\n imports: [\n CommonModule,\n OverlayModule,\n BsHasOverlayComponent,\n ],\n exports: [\n BsTooltipDirective\n ]\n})\nexport class BsTooltipModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":";;;;;;;;;;;AAEO,MAAM,eAAe,GAAG,IAAI,cAAc,CAAmB,gBAAgB,CAAC;;MCWxE,kBAAkB,CAAA;AAC7B,IAAA,WAAA,CAAqC,OAAyB,EAAA;AAI9D,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAW,QAAQ,oDAAC;AAGpC,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAA,WAAA,EAAc,IAAI,CAAC,QAAQ,EAAE,CAAA,CAAE,yDAAC;AAE/D,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAC1B,YAAA,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACrB,gBAAA,KAAK,OAAO,EAAE,OAAO,MAAM;AAC3B,gBAAA,KAAK,KAAK,EAAE,OAAO,MAAM;AACzB,gBAAA,KAAK,KAAK,EAAE,OAAO,MAAM;AACzB,gBAAA,KAAK,QAAQ,EAAE,OAAO,MAAM;;AAEhC,QAAA,CAAC,uDAAC;QAEsC,IAAA,CAAA,gBAAgB,GAAG,IAAI;AAjB7D,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;IACzB;AAHW,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,kBACT,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AADxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb/B,4UAQA,EAAA,MAAA,EAAA,CAAA,ghJAAA,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,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,UAAA,EDEc,CAAC,kBAAkB,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGrB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAR9B,SAAS;+BACE,YAAY,EAAA,UAAA,EAGV,KAAK,EAAA,UAAA,EACL,CAAC,kBAAkB,CAAC,EAAA,eAAA,EACf,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,4UAAA,EAAA,MAAA,EAAA,CAAA,ghJAAA,CAAA,EAAA;;0BAGlC,MAAM;2BAAC,eAAe;;sBAkBlC,WAAW;uBAAC,yBAAyB;;;MErB3B,kBAAkB,CAAA;AAE7B,IAAA,WAAA,CACU,OAAgB,EAChB,WAA6B,EAC7B,cAAwB,EACJ,MAAkB,EAAA;QAHtC,IAAA,CAAA,OAAO,GAAP,OAAO;QACP,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,cAAc,GAAd,cAAc;QACM,IAAA,CAAA,MAAM,GAAN,MAAM;QAgBpB,IAAA,CAAA,SAAS,GAAa,QAAQ;QAItC,IAAA,CAAA,UAAU,GAAsB,IAAI;AAlB1C,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC9B,YAAA,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;YACrE,MAAM,EAAE,IAAI,CAAC;AACd,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC;AAE1E,QAAA,MAAM,CAAC,aAAa,CAAC,YAAY,GAAG,MAAK;YACvC,IAAI,CAAC,WAAW,EAAE;AACpB,QAAA,CAAC;AACD,QAAA,MAAM,CAAC,aAAa,CAAC,YAAY,GAAG,MAAK;YACvC,IAAI,CAAC,WAAW,EAAE;AACpB,QAAA,CAAC;IACH;IAQ6B,MAAM,GAAA;QACjC,IAAI,CAAC,WAAW,EAAE;IACpB;IAEA,WAAW,GAAA;QACT,MAAM,SAAS,GAAwB,EAAE;AACzC,QAAA,QAAQ,IAAI,CAAC,SAAS;AACpB,YAAA,KAAK,QAAQ;gBAAE;oBACb,SAAS,CAAC,IAAI,CAAC;AACb,wBAAA,OAAO,EAAE,QAAQ;wBACjB,OAAO,EAAE,QAAQ;AACjB,wBAAA,QAAQ,EAAE,QAAQ;AAClB,wBAAA,QAAQ,EAAE;AACX,qBAAA,CAAC;gBACJ;gBAAE;AACF,YAAA,KAAK,KAAK;gBAAE;oBACV,SAAS,CAAC,IAAI,CAAC;AACb,wBAAA,OAAO,EAAE,QAAQ;wBACjB,OAAO,EAAE,KAAK;AACd,wBAAA,QAAQ,EAAE,QAAQ;AAClB,wBAAA,QAAQ,EAAE;AACX,qBAAA,CAAC;gBACJ;gBAAE;AACF,YAAA,KAAK,OAAO;gBAAE;oBACZ,SAAS,CAAC,IAAI,CAAC;wBACb,OAAO,EAAE,OAAO;AAChB,wBAAA,OAAO,EAAE,QAAQ;AACjB,wBAAA,QAAQ,EAAE,KAAK;AACf,wBAAA,QAAQ,EAAE,QAAQ;AACnB,qBAAA,CAAC;gBACJ;gBAAE;AACF,YAAA,KAAK,KAAK;gBAAE;oBACV,SAAS,CAAC,IAAI,CAAC;wBACb,OAAO,EAAE,KAAK;AACd,wBAAA,OAAO,EAAE,QAAQ;AACjB,wBAAA,QAAQ,EAAE,OAAO;AACjB,wBAAA,QAAQ,EAAE;AACX,qBAAA,CAAC;gBACJ;gBAAE;;QAGJ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACpC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE;AAC1D,YAAA,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;AACpC,iBAAA,mBAAmB,CAAC,IAAI,CAAC,MAAM;iBAC/B,aAAa,CAAC,SAAS,CAAC;AAC5B,SAAA,CAAC;AACF,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAqB,IAAI,CAAC,MAAM,CAAC;QACzE,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC;IAChD;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;AACxB,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACzB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;QACxB;IACF;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,WAAW,EAAE;IACpB;8GAzFW,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,aAAA,EAAA,UAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;;0BAOI;;0BAAQ;;sBAgBV;;sBAMA,YAAY;uBAAC,aAAa;;;MClBhB,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,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,eAAe,iBAZxB,kBAAkB;AAClB,YAAA,kBAAkB,aAGlB,YAAY;YACZ,aAAa;AACb,YAAA,qBAAqB,aAGrB,kBAAkB,CAAA,EAAA,CAAA,CAAA;AAGT,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,eAAe,YARxB,YAAY;YACZ,aAAa;YACb,qBAAqB,CAAA,EAAA,CAAA,CAAA;;2FAMZ,eAAe,EAAA,UAAA,EAAA,CAAA;kBAd3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,kBAAkB;wBAClB;AACD,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACb,qBAAqB;AACtB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP;AACD;AACF,iBAAA;;;ACpBD;;AAEG;;;;"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-tooltip.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/tooltip/src/providers/tooltip-content.provider.ts","../../../../libs/mintplayer-ng-bootstrap/tooltip/src/component/tooltip.component.ts","../../../../libs/mintplayer-ng-bootstrap/tooltip/src/component/tooltip.component.html","../../../../libs/mintplayer-ng-bootstrap/tooltip/src/directive/tooltip.directive.ts","../../../../libs/mintplayer-ng-bootstrap/tooltip/src/tooltip.module.ts","../../../../libs/mintplayer-ng-bootstrap/tooltip/mintplayer-ng-bootstrap-tooltip.ts"],"sourcesContent":["import { InjectionToken, TemplateRef } from \"@angular/core\";\n\nexport const TOOLTIP_CONTENT = new InjectionToken<TemplateRef<any>>('TooltipContent');","import { ChangeDetectionStrategy, Component, computed, HostBinding, Inject, input, TemplateRef } from '@angular/core';\nimport { FadeInOutAnimation } from '@mintplayer/ng-animations';\nimport { Position } from '@mintplayer/ng-bootstrap';\nimport { TOOLTIP_CONTENT } from '../providers/tooltip-content.provider';\n\n@Component({\n selector: 'bs-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.scss'],\n standalone: false,\n animations: [FadeInOutAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsTooltipComponent {\n constructor(@Inject(TOOLTIP_CONTENT) content: TemplateRef<any>) {\n this.template = content;\n }\n\n position = input<Position>('bottom');\n template: TemplateRef<any>;\n\n positionClass = computed(() => `bs-tooltip-${this.position()}`);\n\n marginClass = computed(() => {\n switch (this.position()) {\n case 'start': return 'me-1';\n case 'end': return 'ms-1';\n case 'top': return 'mb-1';\n case 'bottom': return 'mt-1';\n }\n });\n\n @HostBinding('class.position-relative') positionRelative = true;\n}\n","<bs-has-overlay></bs-has-overlay>\n<div [@fadeInOut] class=\"tooltip position-absolute show\"\n [class]=\"[positionClass(), marginClass()]\"\n role=\"tooltip\">\n <div class=\"tooltip-arrow position-absolute\" aria-hidden=\"true\"></div>\n <div class=\"tooltip-inner\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n </div>\n</div>\n","import { ConnectedPosition, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Directive, ElementRef, Host, HostListener, Injector, Input, OnDestroy, SkipSelf, TemplateRef } from '@angular/core';\nimport { Position } from '@mintplayer/ng-bootstrap';\nimport { BsTooltipComponent } from '../component/tooltip.component';\nimport { TOOLTIP_CONTENT } from '../providers/tooltip-content.provider';\n\n@Directive({\n selector: '*[bsTooltip]',\n standalone: false,\n})\nexport class BsTooltipDirective implements OnDestroy {\n\n constructor(\n private overlay: Overlay,\n private templateRef: TemplateRef<any>,\n private parentInjector: Injector,\n @Host() @SkipSelf() private parent: ElementRef\n ) {\n this.injector = Injector.create({\n providers: [{ provide: TOOLTIP_CONTENT, useValue: this.templateRef }],\n parent: this.parentInjector\n });\n this.portal = new ComponentPortal(BsTooltipComponent, null, this.injector);\n\n parent.nativeElement.onmouseenter = () => {\n this.showTooltip();\n };\n parent.nativeElement.onmouseleave = () => {\n this.hideTooltip();\n }\n }\n\n @Input() public bsTooltip: Position = 'bottom';\n\n private injector: Injector;\n private portal: ComponentPortal<any>;\n private overlayRef: OverlayRef | null = null;\n\n @HostListener('window:blur') onBlur() {\n this.hideTooltip();\n }\n\n showTooltip() {\n const positions: ConnectedPosition[] = [];\n switch (this.bsTooltip) {\n case 'bottom': {\n positions.push({\n originX: \"center\",\n originY: \"bottom\", //<--\n overlayX: \"center\",\n overlayY: \"top\"\n });\n } break;\n case 'top': {\n positions.push({\n originX: \"center\",\n originY: \"top\", //<--\n overlayX: \"center\",\n overlayY: \"bottom\"\n });\n } break;\n case 'start': {\n positions.push({\n originX: \"start\", //<--\n originY: \"center\",\n overlayX: \"end\",\n overlayY: \"center\",\n });\n } break;\n case 'end': {\n positions.push({\n originX: \"end\", //<--\n originY: \"center\",\n overlayX: \"start\",\n overlayY: \"center\"\n });\n } break;\n }\n\n this.overlayRef = this.overlay.create({\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: this.overlay.position()\n .flexibleConnectedTo(this.parent)\n .withPositions(positions),\n });\n const component = this.overlayRef.attach<BsTooltipComponent>(this.portal);\n component.setInput('position', this.bsTooltip);\n }\n\n hideTooltip() {\n if (this.overlayRef) {\n this.overlayRef.detach();\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n\n ngOnDestroy() {\n this.hideTooltip();\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { BsHasOverlayComponent } from '@mintplayer/ng-bootstrap/has-overlay';\nimport { BsTooltipDirective } from './directive/tooltip.directive';\nimport { BsTooltipComponent } from './component/tooltip.component';\n\n@NgModule({\n declarations: [\n BsTooltipDirective,\n BsTooltipComponent\n ],\n imports: [\n CommonModule,\n OverlayModule,\n BsHasOverlayComponent,\n ],\n exports: [\n BsTooltipDirective\n ]\n})\nexport class BsTooltipModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, computed, model, ChangeDetectionStrategy, Component, signal, ContentChild, NgModule } from '@angular/core';
2
+ import { inject, computed, model, signal, ChangeDetectionStrategy, Component, DestroyRef, ContentChild, NgModule } from '@angular/core';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import * as i1 from '@mintplayer/ng-bootstrap/list-group';
5
5
  import { BsListGroupModule } from '@mintplayer/ng-bootstrap/list-group';
@@ -12,13 +12,41 @@ class BsTreeviewComponent {
12
12
  this.level = computed(() => !this.parent ? 0 : this.parent.level() + 1, ...(ngDevMode ? [{ debugName: "level" }] : []));
13
13
  this.indentation = computed(() => this.level() * 30, ...(ngDevMode ? [{ debugName: "indentation" }] : []));
14
14
  this.isExpanded = model(!this.parent, ...(ngDevMode ? [{ debugName: "isExpanded" }] : []));
15
+ // Roving tabindex: track which item is focused
16
+ this.items = signal([], ...(ngDevMode ? [{ debugName: "items" }] : []));
17
+ this.focusedItem = signal(null, ...(ngDevMode ? [{ debugName: "focusedItem" }] : []));
18
+ }
19
+ getRootTree() {
20
+ return this.parent ? this.parent.getRootTree() : this;
21
+ }
22
+ registerItem(item) {
23
+ const root = this.getRootTree();
24
+ root.items.update((items) => [...items, item]);
25
+ // First item gets focus by default
26
+ if (root.focusedItem() === null) {
27
+ root.focusedItem.set(item);
28
+ }
29
+ }
30
+ unregisterItem(item) {
31
+ const root = this.getRootTree();
32
+ root.items.update((items) => items.filter(i => i !== item));
33
+ if (root.focusedItem() === item) {
34
+ const remaining = root.items();
35
+ root.focusedItem.set(remaining.length > 0 ? remaining[0] : null);
36
+ }
37
+ }
38
+ setFocusedItem(item) {
39
+ this.getRootTree().focusedItem.set(item);
40
+ }
41
+ isFocusedItem(item) {
42
+ return this.getRootTree().focusedItem() === item;
15
43
  }
16
44
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsTreeviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.6", type: BsTreeviewComponent, isStandalone: false, selector: "bs-treeview", inputs: { isExpanded: { classPropertyName: "isExpanded", publicName: "isExpanded", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isExpanded: "isExpandedChange" }, ngImport: i0, template: "<bs-list-group [@slideUpDown]=\"isExpanded()\" class=\"d-block overflow-y-hidden\">\n <ng-content></ng-content>\n</bs-list-group>\n", styles: [":host{margin-top:-1px}\n"], dependencies: [{ kind: "component", type: i1.BsListGroupComponent, selector: "bs-list-group" }], animations: [SlideUpDownAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.6", type: BsTreeviewComponent, isStandalone: false, selector: "bs-treeview", inputs: { isExpanded: { classPropertyName: "isExpanded", publicName: "isExpanded", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isExpanded: "isExpandedChange" }, ngImport: i0, template: "<bs-list-group [@slideUpDown]=\"isExpanded()\" class=\"d-block overflow-y-hidden\" [attr.role]=\"level() === 0 ? 'tree' : 'group'\">\n <ng-content></ng-content>\n</bs-list-group>\n", styles: [":host{margin-top:-1px}\n"], dependencies: [{ kind: "component", type: i1.BsListGroupComponent, selector: "bs-list-group" }], animations: [SlideUpDownAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
18
46
  }
19
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsTreeviewComponent, decorators: [{
20
48
  type: Component,
21
- args: [{ selector: 'bs-treeview', standalone: false, animations: [SlideUpDownAnimation], changeDetection: ChangeDetectionStrategy.OnPush, template: "<bs-list-group [@slideUpDown]=\"isExpanded()\" class=\"d-block overflow-y-hidden\">\n <ng-content></ng-content>\n</bs-list-group>\n", styles: [":host{margin-top:-1px}\n"] }]
49
+ args: [{ selector: 'bs-treeview', standalone: false, animations: [SlideUpDownAnimation], changeDetection: ChangeDetectionStrategy.OnPush, template: "<bs-list-group [@slideUpDown]=\"isExpanded()\" class=\"d-block overflow-y-hidden\" [attr.role]=\"level() === 0 ? 'tree' : 'group'\">\n <ng-content></ng-content>\n</bs-list-group>\n", styles: [":host{margin-top:-1px}\n"] }]
22
50
  }], propDecorators: { isExpanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "isExpanded", required: false }] }, { type: i0.Output, args: ["isExpandedChange"] }] } });
23
51
 
24
52
  /// <reference types="../types" />
@@ -26,22 +54,32 @@ class BsTreeviewItemComponent {
26
54
  constructor() {
27
55
  this.parent = inject(BsTreeviewComponent);
28
56
  this.sanitizer = inject(DomSanitizer);
57
+ this.destroyRef = inject(DestroyRef);
29
58
  this.chevronRight = signal(undefined, ...(ngDevMode ? [{ debugName: "chevronRight" }] : []));
59
+ // Roving tabindex: only the focused item has tabindex 0
60
+ this.tabIndex = computed(() => this.parent.isFocusedItem(this) ? 0 : -1, ...(ngDevMode ? [{ debugName: "tabIndex" }] : []));
30
61
  import('bootstrap-icons/icons/chevron-right.svg').then((icon) => {
31
62
  this.chevronRight.set(this.sanitizer.bypassSecurityTrustHtml(icon.default));
32
63
  });
64
+ // Register this item with the tree
65
+ this.parent.registerItem(this);
66
+ this.destroyRef.onDestroy(() => {
67
+ this.parent.unregisterItem(this);
68
+ });
33
69
  }
34
70
  onClick(ev) {
71
+ // Set this item as focused when clicked
72
+ this.parent.setFocusedItem(this);
35
73
  if (this.childTree) {
36
74
  this.childTree.isExpanded.update(v => !v);
37
75
  }
38
76
  }
39
77
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsTreeviewItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
40
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", type: BsTreeviewItemComponent, isStandalone: false, selector: "bs-treeview-item", queries: [{ propertyName: "childTree", first: true, predicate: BsTreeviewComponent }], ngImport: i0, template: "<bs-list-group-item (click)=\"onClick($event)\" class=\"d-block cursor-pointer list-group-item-action\">\n <span [style.padding-left.px]=\"parent.indentation()\">\n <span [innerHTML]=\"chevronRight()\" [class.open]=\"childTree?.isExpanded()\" [class.invisible]=\"!childTree\" class=\"d-inline-block me-2\"></span>\n <ng-content></ng-content>\n </span>\n</bs-list-group-item>\n<ng-content select=\"bs-treeview\"></ng-content>\n", styles: ["bs-list-group-item{margin-bottom:-1px}bs-icon{transition:transform .2s}bs-icon.open{transform:rotate(90deg)}\n"], dependencies: [{ kind: "component", type: i1.BsListGroupItemComponent, selector: "bs-list-group-item" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
78
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", type: BsTreeviewItemComponent, isStandalone: false, selector: "bs-treeview-item", queries: [{ propertyName: "childTree", first: true, predicate: BsTreeviewComponent }], ngImport: i0, template: "<bs-list-group-item (click)=\"onClick($event)\"\n class=\"d-block cursor-pointer list-group-item-action\"\n role=\"treeitem\"\n [attr.aria-expanded]=\"childTree ? childTree.isExpanded() : null\"\n [attr.tabindex]=\"tabIndex()\">\n <span [style.padding-left.px]=\"parent.indentation()\">\n <span [innerHTML]=\"chevronRight()\" [class.open]=\"childTree?.isExpanded()\" [class.invisible]=\"!childTree\" class=\"d-inline-block me-2\" aria-hidden=\"true\"></span>\n <ng-content></ng-content>\n </span>\n</bs-list-group-item>\n<ng-content select=\"bs-treeview\"></ng-content>\n", styles: ["bs-list-group-item{margin-bottom:-1px}bs-icon{transition:transform .2s}bs-icon.open{transform:rotate(90deg)}\n"], dependencies: [{ kind: "component", type: i1.BsListGroupItemComponent, selector: "bs-list-group-item" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
41
79
  }
42
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsTreeviewItemComponent, decorators: [{
43
81
  type: Component,
44
- args: [{ selector: 'bs-treeview-item', standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<bs-list-group-item (click)=\"onClick($event)\" class=\"d-block cursor-pointer list-group-item-action\">\n <span [style.padding-left.px]=\"parent.indentation()\">\n <span [innerHTML]=\"chevronRight()\" [class.open]=\"childTree?.isExpanded()\" [class.invisible]=\"!childTree\" class=\"d-inline-block me-2\"></span>\n <ng-content></ng-content>\n </span>\n</bs-list-group-item>\n<ng-content select=\"bs-treeview\"></ng-content>\n", styles: ["bs-list-group-item{margin-bottom:-1px}bs-icon{transition:transform .2s}bs-icon.open{transform:rotate(90deg)}\n"] }]
82
+ args: [{ selector: 'bs-treeview-item', standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<bs-list-group-item (click)=\"onClick($event)\"\n class=\"d-block cursor-pointer list-group-item-action\"\n role=\"treeitem\"\n [attr.aria-expanded]=\"childTree ? childTree.isExpanded() : null\"\n [attr.tabindex]=\"tabIndex()\">\n <span [style.padding-left.px]=\"parent.indentation()\">\n <span [innerHTML]=\"chevronRight()\" [class.open]=\"childTree?.isExpanded()\" [class.invisible]=\"!childTree\" class=\"d-inline-block me-2\" aria-hidden=\"true\"></span>\n <ng-content></ng-content>\n </span>\n</bs-list-group-item>\n<ng-content select=\"bs-treeview\"></ng-content>\n", styles: ["bs-list-group-item{margin-bottom:-1px}bs-icon{transition:transform .2s}bs-icon.open{transform:rotate(90deg)}\n"] }]
45
83
  }], ctorParameters: () => [], propDecorators: { childTree: [{
46
84
  type: ContentChild,
47
85
  args: [BsTreeviewComponent, { descendants: false }]
@@ -1 +1 @@
1
- {"version":3,"file":"mintplayer-ng-bootstrap-treeview.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/treeview/src/treeview/treeview.component.ts","../../../../libs/mintplayer-ng-bootstrap/treeview/src/treeview/treeview.component.html","../../../../libs/mintplayer-ng-bootstrap/treeview/src/treeview-item/treeview-item.component.ts","../../../../libs/mintplayer-ng-bootstrap/treeview/src/treeview-item/treeview-item.component.html","../../../../libs/mintplayer-ng-bootstrap/treeview/src/treeview.module.ts","../../../../libs/mintplayer-ng-bootstrap/treeview/mintplayer-ng-bootstrap-treeview.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, SkipSelf, Optional, computed, inject, model } from '@angular/core';\nimport { SlideUpDownAnimation } from '@mintplayer/ng-animations';\n\n@Component({\n selector: 'bs-treeview',\n templateUrl: './treeview.component.html',\n styleUrls: ['./treeview.component.scss'],\n standalone: false,\n animations: [SlideUpDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsTreeviewComponent {\n\n private parent = inject(BsTreeviewComponent, { skipSelf: true, optional: true });\n\n level = computed<number>((): number => !this.parent ? 0 : this.parent.level() + 1);\n indentation = computed(() => this.level() * 30);\n isExpanded = model<boolean>(!this.parent);\n}\n","<bs-list-group [@slideUpDown]=\"isExpanded()\" class=\"d-block overflow-y-hidden\">\n <ng-content></ng-content>\n</bs-list-group>\n","/// <reference types=\"../types\" />\n\nimport { ChangeDetectionStrategy, Component, ContentChild, inject, signal } from '@angular/core';\nimport { BsTreeviewComponent } from '../treeview/treeview.component';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component({\n selector: 'bs-treeview-item',\n templateUrl: './treeview-item.component.html',\n styleUrls: ['./treeview-item.component.scss'],\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsTreeviewItemComponent {\n\n readonly parent = inject(BsTreeviewComponent);\n private sanitizer = inject(DomSanitizer);\n\n @ContentChild(BsTreeviewComponent, { descendants: false }) childTree?: BsTreeviewComponent;\n chevronRight = signal<SafeHtml | undefined>(undefined);\n\n constructor() {\n import('bootstrap-icons/icons/chevron-right.svg').then((icon) => {\n this.chevronRight.set(this.sanitizer.bypassSecurityTrustHtml(icon.default));\n });\n }\n\n onClick(ev: MouseEvent) {\n if (this.childTree) {\n this.childTree.isExpanded.update(v => !v);\n }\n }\n}\n","<bs-list-group-item (click)=\"onClick($event)\" class=\"d-block cursor-pointer list-group-item-action\">\n <span [style.padding-left.px]=\"parent.indentation()\">\n <span [innerHTML]=\"chevronRight()\" [class.open]=\"childTree?.isExpanded()\" [class.invisible]=\"!childTree\" class=\"d-inline-block me-2\"></span>\n <ng-content></ng-content>\n </span>\n</bs-list-group-item>\n<ng-content select=\"bs-treeview\"></ng-content>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsListGroupModule } from '@mintplayer/ng-bootstrap/list-group';\nimport { BsTreeviewComponent } from './treeview/treeview.component';\nimport { BsTreeviewItemComponent } from './treeview-item/treeview-item.component';\n\n@NgModule({\n declarations: [BsTreeviewComponent, BsTreeviewItemComponent],\n imports: [CommonModule, BsListGroupModule],\n exports: [BsTreeviewComponent, BsTreeviewItemComponent],\n})\nexport class BsTreeviewModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mintplayer-ng-bootstrap-treeview.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/treeview/src/treeview/treeview.component.ts","../../../../libs/mintplayer-ng-bootstrap/treeview/src/treeview/treeview.component.html","../../../../libs/mintplayer-ng-bootstrap/treeview/src/treeview-item/treeview-item.component.ts","../../../../libs/mintplayer-ng-bootstrap/treeview/src/treeview-item/treeview-item.component.html","../../../../libs/mintplayer-ng-bootstrap/treeview/src/treeview.module.ts","../../../../libs/mintplayer-ng-bootstrap/treeview/mintplayer-ng-bootstrap-treeview.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, inject, model, signal } from '@angular/core';\nimport { SlideUpDownAnimation } from '@mintplayer/ng-animations';\nimport type { BsTreeviewItemComponent } from '../treeview-item/treeview-item.component';\n\n@Component({\n selector: 'bs-treeview',\n templateUrl: './treeview.component.html',\n styleUrls: ['./treeview.component.scss'],\n standalone: false,\n animations: [SlideUpDownAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsTreeviewComponent {\n\n private parent = inject(BsTreeviewComponent, { skipSelf: true, optional: true });\n\n level = computed<number>((): number => !this.parent ? 0 : this.parent.level() + 1);\n indentation = computed(() => this.level() * 30);\n isExpanded = model<boolean>(!this.parent);\n\n // Roving tabindex: track which item is focused\n private items = signal<BsTreeviewItemComponent[]>([]);\n focusedItem = signal<BsTreeviewItemComponent | null>(null);\n\n private getRootTree(): BsTreeviewComponent {\n return this.parent ? this.parent.getRootTree() : this;\n }\n\n registerItem(item: BsTreeviewItemComponent) {\n const root = this.getRootTree();\n root.items.update((items: BsTreeviewItemComponent[]) => [...items, item]);\n // First item gets focus by default\n if (root.focusedItem() === null) {\n root.focusedItem.set(item);\n }\n }\n\n unregisterItem(item: BsTreeviewItemComponent) {\n const root = this.getRootTree();\n root.items.update((items: BsTreeviewItemComponent[]) => items.filter(i => i !== item));\n if (root.focusedItem() === item) {\n const remaining = root.items();\n root.focusedItem.set(remaining.length > 0 ? remaining[0] : null);\n }\n }\n\n setFocusedItem(item: BsTreeviewItemComponent) {\n this.getRootTree().focusedItem.set(item);\n }\n\n isFocusedItem(item: BsTreeviewItemComponent): boolean {\n return this.getRootTree().focusedItem() === item;\n }\n}\n","<bs-list-group [@slideUpDown]=\"isExpanded()\" class=\"d-block overflow-y-hidden\" [attr.role]=\"level() === 0 ? 'tree' : 'group'\">\n <ng-content></ng-content>\n</bs-list-group>\n","/// <reference types=\"../types\" />\n\nimport { ChangeDetectionStrategy, Component, computed, ContentChild, DestroyRef, inject, signal } from '@angular/core';\nimport { BsTreeviewComponent } from '../treeview/treeview.component';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component({\n selector: 'bs-treeview-item',\n templateUrl: './treeview-item.component.html',\n styleUrls: ['./treeview-item.component.scss'],\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsTreeviewItemComponent {\n\n readonly parent = inject(BsTreeviewComponent);\n private sanitizer = inject(DomSanitizer);\n private destroyRef = inject(DestroyRef);\n\n @ContentChild(BsTreeviewComponent, { descendants: false }) childTree?: BsTreeviewComponent;\n chevronRight = signal<SafeHtml | undefined>(undefined);\n\n // Roving tabindex: only the focused item has tabindex 0\n tabIndex = computed(() => this.parent.isFocusedItem(this) ? 0 : -1);\n\n constructor() {\n import('bootstrap-icons/icons/chevron-right.svg').then((icon) => {\n this.chevronRight.set(this.sanitizer.bypassSecurityTrustHtml(icon.default));\n });\n\n // Register this item with the tree\n this.parent.registerItem(this);\n this.destroyRef.onDestroy(() => {\n this.parent.unregisterItem(this);\n });\n }\n\n onClick(ev: MouseEvent) {\n // Set this item as focused when clicked\n this.parent.setFocusedItem(this);\n\n if (this.childTree) {\n this.childTree.isExpanded.update(v => !v);\n }\n }\n}\n","<bs-list-group-item (click)=\"onClick($event)\"\n class=\"d-block cursor-pointer list-group-item-action\"\n role=\"treeitem\"\n [attr.aria-expanded]=\"childTree ? childTree.isExpanded() : null\"\n [attr.tabindex]=\"tabIndex()\">\n <span [style.padding-left.px]=\"parent.indentation()\">\n <span [innerHTML]=\"chevronRight()\" [class.open]=\"childTree?.isExpanded()\" [class.invisible]=\"!childTree\" class=\"d-inline-block me-2\" aria-hidden=\"true\"></span>\n <ng-content></ng-content>\n </span>\n</bs-list-group-item>\n<ng-content select=\"bs-treeview\"></ng-content>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BsListGroupModule } from '@mintplayer/ng-bootstrap/list-group';\nimport { BsTreeviewComponent } from './treeview/treeview.component';\nimport { BsTreeviewItemComponent } from './treeview-item/treeview-item.component';\n\n@NgModule({\n declarations: [BsTreeviewComponent, BsTreeviewItemComponent],\n imports: [CommonModule, BsListGroupModule],\n exports: [BsTreeviewComponent, BsTreeviewItemComponent],\n})\nexport class BsTreeviewModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}