@ngrdt/tabs 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,5 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import { NgModule } from '@angular/core';
3
- import { TooltipModule } from 'primeng/tooltip';
4
3
  import { RdtTabContainerComponent } from './components/tab-container/rdt-tab-container.component';
5
4
  import { RdtTabComponent } from './components/tab/rdt-tab.component';
6
5
  import { RdtDestroyInactiveDirective } from './directives/rdt-destroy-inactive.directive';
@@ -11,11 +10,11 @@ export class RdtTabsModule {
11
10
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: RdtTabsModule, declarations: [RdtTabComponent,
12
11
  RdtTabContainerComponent,
13
12
  RdtTabControllerDirective,
14
- RdtDestroyInactiveDirective], imports: [CommonModule, TooltipModule], exports: [RdtTabComponent,
13
+ RdtDestroyInactiveDirective], imports: [CommonModule], exports: [RdtTabComponent,
15
14
  RdtTabContainerComponent,
16
15
  RdtTabControllerDirective,
17
16
  RdtDestroyInactiveDirective] });
18
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtTabsModule, imports: [CommonModule, TooltipModule] });
17
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtTabsModule, imports: [CommonModule] });
19
18
  }
20
19
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtTabsModule, decorators: [{
21
20
  type: NgModule,
@@ -32,7 +31,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
32
31
  RdtTabControllerDirective,
33
32
  RdtDestroyInactiveDirective,
34
33
  ],
35
- imports: [CommonModule, TooltipModule],
34
+ imports: [CommonModule],
36
35
  }]
37
36
  }] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXRhYnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vQG5ncmR0L3RhYnMvc3JjL2xpYi9yZHQtdGFicy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMxRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7QUFpQnRGLE1BQU0sT0FBTyxhQUFhO3VHQUFiLGFBQWE7d0dBQWIsYUFBYSxpQkFidEIsZUFBZTtZQUNmLHdCQUF3QjtZQUN4Qix5QkFBeUI7WUFDekIsMkJBQTJCLGFBUW5CLFlBQVksRUFBRSxhQUFhLGFBTG5DLGVBQWU7WUFDZix3QkFBd0I7WUFDeEIseUJBQXlCO1lBQ3pCLDJCQUEyQjt3R0FJbEIsYUFBYSxZQUZkLFlBQVksRUFBRSxhQUFhOzsyRkFFMUIsYUFBYTtrQkFmekIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osZUFBZTt3QkFDZix3QkFBd0I7d0JBQ3hCLHlCQUF5Qjt3QkFDekIsMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZUFBZTt3QkFDZix3QkFBd0I7d0JBQ3hCLHlCQUF5Qjt3QkFDekIsMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDO2lCQUN2QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XG5pbXBvcnQgeyBSZHRUYWJDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFiLWNvbnRhaW5lci9yZHQtdGFiLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmR0VGFiQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYi9yZHQtdGFiLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZHREZXN0cm95SW5hY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvcmR0LWRlc3Ryb3ktaW5hY3RpdmUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFJkdFRhYkNvbnRyb2xsZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvcmR0LXRhYi1jb250cm9sbGVyLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFJkdFRhYkNvbXBvbmVudCxcbiAgICBSZHRUYWJDb250YWluZXJDb21wb25lbnQsXG4gICAgUmR0VGFiQ29udHJvbGxlckRpcmVjdGl2ZSxcbiAgICBSZHREZXN0cm95SW5hY3RpdmVEaXJlY3RpdmUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBSZHRUYWJDb21wb25lbnQsXG4gICAgUmR0VGFiQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIFJkdFRhYkNvbnRyb2xsZXJEaXJlY3RpdmUsXG4gICAgUmR0RGVzdHJveUluYWN0aXZlRGlyZWN0aXZlLFxuICBdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUb29sdGlwTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgUmR0VGFic01vZHVsZSB7fVxuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXRhYnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vQG5ncmR0L3RhYnMvc3JjL2xpYi9yZHQtdGFicy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDbEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOztBQWlCdEYsTUFBTSxPQUFPLGFBQWE7dUdBQWIsYUFBYTt3R0FBYixhQUFhLGlCQWJ0QixlQUFlO1lBQ2Ysd0JBQXdCO1lBQ3hCLHlCQUF5QjtZQUN6QiwyQkFBMkIsYUFRbkIsWUFBWSxhQUxwQixlQUFlO1lBQ2Ysd0JBQXdCO1lBQ3hCLHlCQUF5QjtZQUN6QiwyQkFBMkI7d0dBSWxCLGFBQWEsWUFGZCxZQUFZOzsyRkFFWCxhQUFhO2tCQWZ6QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixlQUFlO3dCQUNmLHdCQUF3Qjt3QkFDeEIseUJBQXlCO3dCQUN6QiwyQkFBMkI7cUJBQzVCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxlQUFlO3dCQUNmLHdCQUF3Qjt3QkFDeEIseUJBQXlCO3dCQUN6QiwyQkFBMkI7cUJBQzVCO29CQUNELE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkdFRhYkNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWItY29udGFpbmVyL3JkdC10YWItY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZHRUYWJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFiL3JkdC10YWIuY29tcG9uZW50JztcbmltcG9ydCB7IFJkdERlc3Ryb3lJbmFjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9yZHQtZGVzdHJveS1pbmFjdGl2ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUmR0VGFiQ29udHJvbGxlckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9yZHQtdGFiLWNvbnRyb2xsZXIuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgUmR0VGFiQ29tcG9uZW50LFxuICAgIFJkdFRhYkNvbnRhaW5lckNvbXBvbmVudCxcbiAgICBSZHRUYWJDb250cm9sbGVyRGlyZWN0aXZlLFxuICAgIFJkdERlc3Ryb3lJbmFjdGl2ZURpcmVjdGl2ZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFJkdFRhYkNvbXBvbmVudCxcbiAgICBSZHRUYWJDb250YWluZXJDb21wb25lbnQsXG4gICAgUmR0VGFiQ29udHJvbGxlckRpcmVjdGl2ZSxcbiAgICBSZHREZXN0cm95SW5hY3RpdmVEaXJlY3RpdmUsXG4gIF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBSZHRUYWJzTW9kdWxlIHt9XG4iXX0=
@@ -8,7 +8,6 @@ import { Subscription, firstValueFrom, takeWhile, timer } from 'rxjs';
8
8
  import { RdtShortcut, RdtShortcutService } from '@ngrdt/shortcuts';
9
9
  import * as i2 from '@angular/common';
10
10
  import { CommonModule } from '@angular/common';
11
- import { TooltipModule } from 'primeng/tooltip';
12
11
 
13
12
  class RdtDestroyInactiveDirective {
14
13
  template = inject(TemplateRef);
@@ -851,11 +850,11 @@ class RdtTabsModule {
851
850
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: RdtTabsModule, declarations: [RdtTabComponent,
852
851
  RdtTabContainerComponent,
853
852
  RdtTabControllerDirective,
854
- RdtDestroyInactiveDirective], imports: [CommonModule, TooltipModule], exports: [RdtTabComponent,
853
+ RdtDestroyInactiveDirective], imports: [CommonModule], exports: [RdtTabComponent,
855
854
  RdtTabContainerComponent,
856
855
  RdtTabControllerDirective,
857
856
  RdtDestroyInactiveDirective] });
858
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtTabsModule, imports: [CommonModule, TooltipModule] });
857
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtTabsModule, imports: [CommonModule] });
859
858
  }
860
859
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: RdtTabsModule, decorators: [{
861
860
  type: NgModule,
@@ -872,7 +871,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
872
871
  RdtTabControllerDirective,
873
872
  RdtDestroyInactiveDirective,
874
873
  ],
875
- imports: [CommonModule, TooltipModule],
874
+ imports: [CommonModule],
876
875
  }]
877
876
  }] });
878
877
 
@@ -1 +1 @@
1
- {"version":3,"file":"ngrdt-tabs.mjs","sources":["../../../../@ngrdt/tabs/src/lib/directives/rdt-destroy-inactive.directive.ts","../../../../@ngrdt/tabs/src/lib/components/tab/rdt-tab.component.ts","../../../../@ngrdt/tabs/src/lib/components/tab/rdt-tab.component.html","../../../../@ngrdt/tabs/src/lib/strategies/rdt-tabs-shortcut-strategy.ts","../../../../@ngrdt/tabs/src/lib/strategies/auto-rdt-tabs-shortcut-strategy.ts","../../../../@ngrdt/tabs/src/lib/directives/rdt-tab-controller.directive.ts","../../../../@ngrdt/tabs/src/lib/components/tab-container/rdt-tab-container.component.ts","../../../../@ngrdt/tabs/src/lib/components/tab-container/rdt-tab-container.component.html","../../../../@ngrdt/tabs/src/lib/rdt-tabs-models.ts","../../../../@ngrdt/tabs/src/lib/rdt-tabs.module.ts","../../../../@ngrdt/tabs/src/lib/strategies/static-rdt-tabs-shortcut-strategy.ts","../../../../@ngrdt/tabs/src/ngrdt-tabs.ts"],"sourcesContent":["import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[rdtDestroyInactive]',\n})\nexport class RdtDestroyInactiveDirective {\n public readonly template = inject(TemplateRef);\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n DestroyRef,\n inject,\n Injector,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {\n RDT_GUARDED_COMPONENT,\n RdtContainerDirective,\n RdtIsActive,\n} from '@ngrdt/core';\nimport { Nullable } from '@ngrdt/utils';\nimport { RdtDestroyInactiveDirective } from '../../directives/rdt-destroy-inactive.directive';\nimport { RdtTabContainerState, RdtTabState } from '../../rdt-tabs-models';\nimport { RdtTabContainerComponent } from '../tab-container/rdt-tab-container.component';\n\n@Component({\n selector: 'rdt-tab',\n templateUrl: './rdt-tab.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: RDT_GUARDED_COMPONENT,\n useExisting: RdtTabComponent,\n },\n ],\n hostDirectives: [RdtContainerDirective],\n})\nexport class RdtTabComponent implements OnChanges, OnInit, RdtIsActive {\n private readonly injector = inject(Injector);\n readonly destroyRef = inject(DestroyRef);\n\n private _contDir!: RdtContainerDirective;\n get contDir() {\n return this._contDir;\n }\n\n @Input()\n get stateId() {\n if (this._stateId === null) {\n if (this.label !== '') {\n this._stateId = this.label;\n } else {\n const index = this.tabContainer?.tabsList?.toArray().indexOf(this);\n this._stateId = `tab-${index}`;\n }\n }\n return this._stateId;\n }\n set stateId(value: string) {\n this._stateId = value;\n }\n private _stateId: string = null as unknown as string;\n\n @Input({ transform: booleanAttribute })\n disabled = false;\n\n @Input({ transform: booleanAttribute })\n visible = true;\n\n @Input({ required: true })\n label!: string;\n\n @Input({ transform: booleanAttribute })\n formAutofocus = true;\n\n @Input()\n buttonClass: Nullable<string> = null;\n\n @ViewChild(TemplateRef, { static: true })\n private readonly implicitContent!: TemplateRef<any>;\n\n @ContentChild(RdtDestroyInactiveDirective, {\n read: TemplateRef,\n static: true,\n })\n private readonly explicitContent!: TemplateRef<any>;\n\n get templateRef() {\n return this.explicitContent ?? this.implicitContent;\n }\n\n readonly tabContainer = inject(RdtTabContainerComponent);\n\n //get forms() {\n // return this.getChildrenByClass(RdtBaseFormComponent);\n //}\n\n get childContainers() {\n return this.contDir.getChildrenByClass(RdtTabContainerComponent);\n }\n\n rdtIsActive(): boolean {\n return (\n this.visible && !this.disabled && this.tabContainer.activeTab === this\n );\n }\n\n ngOnInit() {\n this._contDir = this.injector.get(RdtContainerDirective);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (\n 'label' in changes ||\n 'value' in changes ||\n 'visible' in changes ||\n 'stateId' in changes\n ) {\n this.tabContainer.cd.markForCheck();\n }\n }\n\n get isTopLevel() {\n return this.tabContainer.isTopLevel;\n }\n\n getState(): RdtTabState {\n return {\n id: this.stateId,\n containerStates: this.childContainers.map((cont) => cont.getState()),\n };\n }\n\n applyState(state: RdtTabState) {\n const states: (RdtTabContainerState | null)[] = [...state.containerStates];\n const conts: (RdtTabContainerComponent | null)[] = this.childContainers;\n const minLen = Math.min(states.length, conts.length);\n\n for (let i = 0; i < minLen; i++) {\n if (conts[i]!.stateId === states[i]!.id) {\n conts[i]!.applyState(states[i]!);\n conts[i] = states[i] = null;\n }\n }\n conts.forEach((cont, contI) => {\n if (!cont) {\n return;\n }\n for (let offset = 0; offset < states.length; offset++) {\n const prev = contI - offset;\n const next = contI + offset;\n if (prev > 0 && states[prev]?.id === cont.stateId) {\n cont.applyState(states[prev]!);\n states[prev] = null;\n return;\n } else if (next < states.length && states[next]?.id === cont.stateId) {\n cont.applyState(states[next]!);\n states[next] = null;\n return;\n }\n }\n });\n }\n\n focusForm() {\n //TODO: getRdtAutofocusable(this.forms)?.rdtFocus();\n }\n}\n","<ng-template>\n <ng-content></ng-content>\n</ng-template>\n","import { RdtShortcut } from '@ngrdt/shortcuts';\nimport { RdtTabControllerDirective } from '../directives/rdt-tab-controller.directive';\n\nexport abstract class RdtTabsShortcutStrategy {\n /**\n * Gets called onInit and whenever tabs are added/removed from Controller.\n * @param ctrl Controller using this strategy.\n * @returns List of shortcuts to register.\n */\n abstract updateShortcuts(ctrl: RdtTabControllerDirective): RdtShortcut[];\n /**\n * Gets called whenever hotkeys detects one of the registered shortcuts.\n * @param shortcut Registered shortcut.\n * @param ctrl Controller using this strategy.\n */\n abstract onShortcut(\n shortcut: RdtShortcut,\n ctrl: RdtTabControllerDirective\n ): void;\n}\n","import { RdtShortcut } from '@ngrdt/shortcuts';\nimport { RdtTabControllerDirective } from '../directives/rdt-tab-controller.directive';\nimport { RdtTabsShortcutStrategy } from './rdt-tabs-shortcut-strategy';\n\nconst TAB_BASE = 'alt';\nconst TAB_KEY_SETS = [\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\n ['+', 'ě', 'š', 'č', 'ř', 'ž', 'ý', 'á', 'í', 'é'],\n];\nconst NEXT_CONTAINER = RdtShortcut.create('alt', 's');\nconst PREV_CONTAINER = RdtShortcut.create('alt', 'w');\nconst LEVEL_UP = RdtShortcut.create('ctrl', 'alt', 'up');\nconst LEVEL_DOWN = RdtShortcut.create('ctrl', 'alt', 'down');\nconst NEXT_TAB = RdtShortcut.create('ctrl', 'alt', 'right');\nconst PREV_TAB = RdtShortcut.create('ctrl', 'alt', 'left');\n\ninterface RdtShortcutActions {\n [key: string]: (ctrl: RdtTabControllerDirective) => boolean;\n}\n\nexport class AutoRdtTabsShortcutStrategy extends RdtTabsShortcutStrategy {\n override updateShortcuts(): RdtShortcut[] {\n return AutoRdtTabsShortcutStrategy.shortcuts;\n }\n\n override onShortcut(\n shortcut: RdtShortcut,\n ctrl: RdtTabControllerDirective\n ): void {\n const key = shortcut.lastKey;\n if (!key) {\n throw new Error('Key should not be undefined!');\n }\n const action = AutoRdtTabsShortcutStrategy.actions[key];\n if (!action) {\n throw new Error(`Unknown action for key ${key}`);\n }\n action(ctrl);\n }\n\n private static generateActions() {\n const actions: RdtShortcutActions = {\n [LEVEL_UP.lastKey]: (ctrl) => ctrl.goLevelUp(),\n [LEVEL_DOWN.lastKey]: (ctrl) => ctrl.goLevelDown(),\n [NEXT_CONTAINER.lastKey]: (ctrl) => ctrl.goToNextContainer(),\n [PREV_CONTAINER.lastKey]: (ctrl) => ctrl.goToPrevContainer(),\n [NEXT_TAB.lastKey]: (ctrl) => ctrl.goToNextTab(),\n [PREV_TAB.lastKey]: (ctrl) => ctrl.goToPrevTab(),\n };\n\n TAB_KEY_SETS.forEach((set) => {\n set.forEach((char, i) => {\n actions[char] = (ctrl) => ctrl.goToTabWithIndex(i);\n });\n });\n return actions;\n }\n\n private static generateShortcuts() {\n const shortcuts: RdtShortcut[] = [\n LEVEL_UP,\n LEVEL_DOWN,\n NEXT_CONTAINER,\n PREV_CONTAINER,\n NEXT_TAB,\n PREV_TAB,\n ];\n\n TAB_KEY_SETS.forEach((set) => {\n set.forEach((tabKey) => {\n shortcuts.push(RdtShortcut.create(TAB_BASE, tabKey));\n });\n });\n\n return shortcuts;\n }\n\n private static shortcuts: RdtShortcut[] =\n AutoRdtTabsShortcutStrategy.generateShortcuts();\n private static actions = AutoRdtTabsShortcutStrategy.generateActions();\n}\n","import {\n AfterContentInit,\n ContentChildren,\n DestroyRef,\n Directive,\n inject,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n QueryList,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n canTransition$,\n RDT_GUARDED_COMPONENT,\n RdtContainerDirective,\n} from '@ngrdt/core';\nimport { RdtShortcut, RdtShortcutService } from '@ngrdt/shortcuts';\nimport { firstValueFrom, Subscription, takeWhile } from 'rxjs';\nimport { RdtTabContainerComponent } from '../components/tab-container/rdt-tab-container.component';\nimport { RdtTabComponent } from '../components/tab/rdt-tab.component';\nimport { AutoRdtTabsShortcutStrategy } from '../strategies/auto-rdt-tabs-shortcut-strategy';\nimport { RdtTabsShortcutStrategy } from '../strategies/rdt-tabs-shortcut-strategy';\n\n@Directive({\n selector: '[rdtTabController]',\n providers: [\n {\n provide: RDT_GUARDED_COMPONENT,\n useExisting: RdtTabControllerDirective,\n },\n ],\n hostDirectives: [RdtContainerDirective],\n})\nexport class RdtTabControllerDirective\n implements OnInit, AfterContentInit, OnDestroy\n{\n private readonly destroyRef = inject(DestroyRef);\n private readonly injector = inject(Injector);\n private readonly shortcutService = inject(RdtShortcutService);\n private shortcutSub = new Subscription();\n\n // String value lets you use the directive without param.\n @Input()\n set rdtTabController(value: RdtTabsShortcutStrategy | string | null) {\n if (value && typeof value !== 'string') {\n this._strategy = value;\n this.updateShortcuts();\n }\n }\n\n protected get tabContainers() {\n return this.containerDirective\n .getChildrenRecursive()\n .filter(\n (ch) => ch instanceof RdtTabContainerComponent\n ) as unknown as RdtTabContainerComponent[];\n }\n protected get tabs() {\n return this.containerDirective\n .getChildrenRecursive()\n .filter(\n (ch) => ch instanceof RdtTabComponent\n ) as unknown as RdtTabComponent[];\n }\n\n @ContentChildren(RdtTabControllerDirective, { descendants: true })\n protected childControllers!: QueryList<RdtTabControllerDirective>;\n\n get strategy() {\n return this._strategy;\n }\n private _strategy: RdtTabsShortcutStrategy =\n new AutoRdtTabsShortcutStrategy();\n\n private _lastActiveTabContainer: {\n timestamp: number | null;\n container: RdtTabContainerComponent;\n } | null = null;\n\n private _contentWasInit = false;\n\n get disabled() {\n return this._disabled;\n }\n private _disabled = false;\n\n get shortcuts() {\n return this._shortcuts;\n }\n set shortcuts(value: RdtShortcut[]) {\n const oldSet = new Set<string>(this._shortcuts.map((s) => s.hotkeysValue));\n this._shortcuts = value;\n\n if (\n oldSet.size !== value.length ||\n value.some((s) => !oldSet.has(s.hotkeysValue))\n ) {\n this.bindAll();\n }\n }\n private _shortcuts: RdtShortcut[] = [];\n\n get activeContainer() {\n return this._lastActiveTabContainer?.container;\n }\n\n protected containerDirective!: RdtContainerDirective;\n\n ngOnInit() {\n this.containerDirective = this.injector.get(\n RdtContainerDirective,\n undefined,\n {\n self: true,\n }\n );\n this.updateShortcuts();\n }\n\n ngAfterContentInit() {\n this.setDefaultActive();\n this.disableSelfWhenChildCtrlExists();\n this._contentWasInit = true;\n if (this.tabs.length > 0) {\n this.onTabChanges();\n }\n if (this.tabContainers.length > 0) {\n this.onTabContainerChanges();\n }\n }\n\n ngOnDestroy(): void {\n this.unbindAll();\n this._shortcuts.length = 0;\n }\n\n getTabContainerIndex(cont: RdtTabContainerComponent): number {\n const level = this.getSameLevelContainers(cont);\n return level.indexOf(cont);\n }\n\n /**\n * Activates first parent container of current container\n * that is not disabled and has any non disabled tabs.\n */\n goLevelUp(): boolean {\n let cont = this.activeContainer;\n while (cont) {\n cont = cont.parentTab?.tabContainer;\n if (cont && !cont.disabled && cont.hasNonDisabledTabs) {\n this.activateTabContainer(cont);\n return true;\n }\n }\n return false;\n }\n\n /**\n * Activates first container under current tab which\n * is not disabled and has any non disabled tabs.\n */\n goLevelDown(): boolean {\n const cont = this.activeContainer;\n if (!cont || cont.disabled) {\n return false;\n }\n let tab = cont.tabsList.find((t) => t.stateId === cont.value);\n if (!tab || tab.disabled) {\n tab = cont.tabsList.find((t) => !t.disabled);\n }\n if (!tab) {\n return false;\n }\n const targetCont = tab.childContainers.find(\n (c) => !c.disabled && c.hasNonDisabledTabs\n );\n if (targetCont) {\n this.activateTabContainer(targetCont);\n return true;\n }\n return false;\n }\n\n /**\n * Activates next container on current level\n * (under parent container of currently active container).\n * Is cyclic.\n */\n goToNextContainer(): boolean {\n return this.goToAdjacentContainer(1);\n }\n\n /**\n * Activates previous container on current level\n * (under parent container of currently active container).\n * Is cyclic.\n */\n goToPrevContainer(): boolean {\n return this.goToAdjacentContainer(-1);\n }\n\n /**\n * Activates tab within active container at the index of argument.\n */\n goToTabWithIndex(index: number): boolean {\n const cont = this.activeContainer;\n if (!cont) {\n return false;\n }\n const tab = cont.tabsList.get(index);\n if (!tab) {\n return false;\n }\n this.activateTab(tab);\n return true;\n }\n\n /**\n * Activates next tab within active container. Is cyclic.\n */\n goToNextTab(): boolean {\n return this.goToAdjacentTab(1);\n }\n\n /**\n * Activates previous tab within active container. Is cyclic.\n */\n goToPrevTab(): boolean {\n return this.goToAdjacentTab(-1);\n }\n\n private goToAdjacentContainer(dir: -1 | 1) {\n const cont = this.activeContainer;\n if (!cont) {\n return false;\n }\n\n const level = this.getSameLevelContainers(cont);\n if (!level) {\n return false;\n }\n\n const currentIndex = level.indexOf(cont);\n if (currentIndex < 0) {\n throw new Error('Current container is not within its own level?');\n }\n for (\n let i = (currentIndex + dir + level.length) % level.length;\n i !== currentIndex;\n i = (i + dir + level.length) % level.length\n ) {\n const next = level[i];\n if (!next.disabled && next.hasNonDisabledTabs) {\n this.activateTabContainer(next);\n return true;\n }\n }\n return false;\n }\n\n private goToAdjacentTab(dir: -1 | 1) {\n const cont = this.activeContainer;\n if (!cont) {\n return false;\n }\n\n const tabs = cont.tabsList.toArray();\n const currentIndex = tabs.findIndex((tab) => tab.stateId === cont.value);\n if (currentIndex < 0) {\n throw new Error('Current tab is not found in its container?!');\n }\n\n for (\n let i = (currentIndex + dir + tabs.length) % tabs.length;\n i !== currentIndex;\n i = (i + dir + tabs.length) % tabs.length\n ) {\n const next = tabs[i];\n if (!next.disabled) {\n this.activateTab(next);\n return true;\n }\n }\n return false;\n }\n\n private getSameLevelContainers(cont: RdtTabContainerComponent) {\n if (cont.parentTab) {\n return cont.parentTab.childContainers;\n } else {\n return this.tabContainers.filter((cont) => cont.isTopLevel);\n }\n }\n\n getTabByValue(value: string) {\n for (const container of this.tabContainers) {\n const tab = container.tabsList.find((ch) => ch.stateId === value);\n if (tab) {\n return tab;\n }\n }\n return null;\n }\n\n activateTabContainer(tabs: RdtTabContainerComponent, scrollIntoView = true) {\n if (this._lastActiveTabContainer) {\n this._lastActiveTabContainer.container.active = false;\n }\n\n tabs.active = true;\n if (scrollIntoView) {\n tabs.scrollIntoView();\n }\n\n this._lastActiveTabContainer = {\n container: tabs,\n timestamp: null,\n };\n }\n\n activateTabContainerFromClick(\n tabs: RdtTabContainerComponent,\n timestamp: number\n ) {\n if (this._lastActiveTabContainer) {\n if (\n this._lastActiveTabContainer.timestamp !== null &&\n this._lastActiveTabContainer.timestamp >= timestamp\n ) {\n return;\n }\n\n this._lastActiveTabContainer.container.active = false;\n }\n\n tabs.active = true;\n\n this._lastActiveTabContainer = {\n container: tabs,\n timestamp,\n };\n }\n\n async activateTab(tab: RdtTabComponent) {\n if (!this.canActivateTab(tab)) {\n console.warn('Trying to activate disabled tab.');\n return;\n }\n\n const formsCheck = await this.canActivateTabForms(tab);\n if (!formsCheck) {\n console.warn(\n 'Trying to activate tab while current tab has unsaved forms'\n );\n return;\n }\n\n let current: RdtTabComponent | null = tab;\n\n do {\n const container: RdtTabContainerComponent = current!.tabContainer;\n container.value = current!.stateId;\n current = container.parentTab;\n } while (current !== null);\n }\n\n canActivateTab(tab: RdtTabComponent) {\n let current: RdtTabComponent | null = tab;\n\n do {\n const container: RdtTabContainerComponent = current.tabContainer;\n if (current.disabled || container.disabled) {\n return false;\n }\n current = container.parentTab;\n } while (current !== null);\n\n return true;\n }\n\n async canActivateTabForms(tab: RdtTabComponent) {\n const container = tab.tabContainer;\n return firstValueFrom(\n canTransition$(container.activeTab?.contDir, tab?.contDir)\n );\n }\n\n onTabChanges() {\n this.updateShortcuts();\n }\n\n onTabContainerChanges() {\n this.setDefaultActiveWhenAvailable();\n }\n\n private disableSelfWhenChildCtrlExists() {\n this.childControllers.changes\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((val: QueryList<RdtTabControllerDirective>) => {\n this._disabled = val.length > 0;\n\n if (this._disabled) {\n this.unbindAll();\n } else {\n this.bindAll();\n }\n });\n }\n\n private setDefaultActive() {\n if (this.tabContainers) {\n const defaultCont = this.tabContainers.find(this.canContainerBeDefault);\n if (defaultCont) {\n this.activateTabContainer(defaultCont, false);\n }\n }\n }\n\n private setDefaultActiveWhenAvailable() {\n const active = this.activeContainer;\n if (active && this.tabContainers.some((cont) => cont === active)) {\n return;\n }\n const newDefault = this.tabContainers.find(this.canContainerBeDefault);\n if (newDefault) {\n this.activateTabContainer(newDefault, false);\n }\n }\n\n private canContainerBeDefault(c: RdtTabContainerComponent) {\n return c.isTopLevel && !c.disabled && c.hasNonDisabledTabs;\n }\n\n private updateShortcuts() {\n this.shortcuts = this._strategy.updateShortcuts(this);\n }\n\n private bindAll() {\n this.shortcutSub.unsubscribe();\n if (!this._disabled) {\n this.shortcutSub = this.shortcutService\n .listen(this._shortcuts)\n .pipe(takeWhile(() => !this._disabled))\n .subscribe((event) => {\n this._strategy.onShortcut(event.shortcut, this);\n });\n }\n }\n\n private unbindAll() {\n this.shortcutSub.unsubscribe();\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n inject,\n Input,\n Output,\n QueryList,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewEncapsulation,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n canTransition$,\n RDT_GUARDED_COMPONENT,\n RdtChildDirective,\n} from '@ngrdt/core';\nimport { RdtHTMLUtils } from '@ngrdt/utils';\nimport { firstValueFrom, timer } from 'rxjs';\nimport { RdtTabControllerDirective } from '../../directives/rdt-tab-controller.directive';\nimport { RdtTabContainerState, RdtTabState } from '../../rdt-tabs-models';\nimport { RdtTabComponent } from '../tab/rdt-tab.component';\n\n@Component({\n selector: 'rdt-tab-container',\n templateUrl: './rdt-tab-container.component.html',\n styleUrls: ['./rdt-tab-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: RDT_GUARDED_COMPONENT,\n useExisting: RdtTabContainerComponent,\n },\n ],\n hostDirectives: [RdtChildDirective],\n encapsulation: ViewEncapsulation.None,\n})\nexport class RdtTabContainerComponent implements AfterContentInit {\n readonly destroyRef = inject(DestroyRef);\n\n @Input()\n stateId: any = null;\n\n @Input()\n set value(val: string) {\n if (this.activeTab && this.activeTab.stateId !== val) {\n // TODO\n //this.activeTab.onViewWillLeave();\n }\n this._value = val;\n this.setCurrent();\n }\n get value() {\n return this._value;\n }\n private _value!: string;\n\n @Input()\n disabled = false;\n\n @Input()\n formAutofocus = true;\n\n @Input()\n panelPosition: 'left' | 'right' | 'top' | 'bottom' = 'top';\n\n @Output()\n valueChange = new EventEmitter();\n\n @ContentChildren(RdtTabComponent)\n tabsList!: QueryList<RdtTabComponent>;\n\n @ViewChildren('headerButton')\n tabHeaderButtons?: QueryList<ElementRef<HTMLElement>>;\n\n @ViewChild('tabContent', { static: true })\n tabContent!: ElementRef<HTMLElement>;\n\n @HostBinding('class.active')\n private _active = false;\n get active() {\n return this._active;\n }\n set active(value: boolean) {\n this._active = value;\n this.cd.markForCheck();\n }\n\n get isTopLevel(): boolean {\n return !this.parentTab;\n }\n\n readonly parentTab = inject(RdtTabComponent, { optional: true });\n readonly controller = inject(RdtTabControllerDirective, {\n optional: true,\n });\n readonly cd = inject(ChangeDetectorRef);\n readonly elRef = inject(ElementRef);\n protected readonly renderer = inject(Renderer2);\n\n protected currentTemplate: TemplateRef<any> | null = null;\n protected currentTab: RdtTabComponent | null = null;\n\n @HostBinding('class')\n get classes() {\n return `dp3-tab-container panel-${this.panelPosition}`;\n }\n\n @HostBinding('class.panel-horizontal')\n get isHorizontal() {\n return this.panelPosition === 'top' || this.panelPosition === 'bottom';\n }\n\n @HostBinding('class.panel-vertical')\n get isVertical() {\n return !this.isHorizontal;\n }\n\n @HostBinding('attr.role')\n private attrRole = 'tablist';\n\n get hasNonDisabledTabs() {\n return this.tabsList.some((tab) => !tab.disabled);\n }\n\n get activeTab() {\n return this.getTabByValue(this.value);\n }\n\n getTabByValue(value: string) {\n return this.tabsList?.find((tab) => tab.stateId === value);\n }\n\n ngAfterContentInit() {\n this.controller?.onTabContainerChanges();\n timer(0)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.setCurrent());\n\n this.tabsList.changes\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.controller?.onTabChanges();\n this.setCurrent();\n this.cd.markForCheck();\n });\n\n if (this.stateId === null && this.controller) {\n const id = this.controller.getTabContainerIndex(this);\n this.stateId = `tab-container-${id}`;\n }\n }\n\n getState(): RdtTabContainerState {\n return {\n id: this.stateId,\n value: this.value,\n tabStates: this.tabsList.map((tab) => tab.getState()),\n };\n }\n\n applyState(state: RdtTabContainerState) {\n this.value = state.value;\n this.scrollCurrentButtonIntoView();\n\n const states: (RdtTabState | null)[] = [...state.tabStates];\n const tabs: (RdtTabComponent | null)[] = this.tabsList.toArray();\n const minLen = Math.min(states.length, tabs.length);\n\n for (let i = 0; i < minLen; i++) {\n if (tabs[i]!.stateId === states[i]!.id) {\n tabs[i]!.applyState(states[i]!);\n tabs[i] = states[i] = null;\n }\n }\n tabs.forEach((tab, tabI) => {\n if (!tab) {\n return;\n }\n for (let offset = 0; offset < states.length; offset++) {\n const prev = tabI - offset;\n const next = tabI + offset;\n if (prev > 0 && states[prev]?.id === tab.stateId) {\n tab.applyState(states[prev]!);\n states[prev] = null;\n return;\n } else if (next < states.length && states[next]?.id === tab.stateId) {\n tab.applyState(states[next]!);\n states[next] = null;\n return;\n }\n }\n });\n }\n\n scrollIntoView() {\n this.elRef?.nativeElement?.scrollIntoView({ behavior: 'smooth' });\n }\n\n async activateTab(value: string) {\n const nextTab = this.getTabByValue(value);\n\n const can = await firstValueFrom(\n canTransition$(this.activeTab?.contDir, nextTab?.contDir)\n );\n if (can) {\n this.value = value;\n this.valueChange.emit(value);\n }\n }\n\n scrollCurrentButtonIntoView() {\n if (!this.tabsList || !this.tabHeaderButtons) {\n return;\n }\n const tabIndex = this.tabsList\n .toArray()\n .findIndex((tab) => tab.stateId === this.value);\n const buttonRef = this.tabHeaderButtons.get(tabIndex);\n if (buttonRef) {\n RdtHTMLUtils.scrollIntoViewHorizontallyWithinParent(\n buttonRef.nativeElement\n );\n }\n }\n\n @HostListener('click', ['$event'])\n private onClick(event: PointerEvent) {\n this.controller?.activateTabContainerFromClick(this, event.timeStamp);\n }\n\n private setCurrent() {\n if (!this.tabsList) {\n return;\n }\n if (this.value == undefined) {\n const firstEnabled = this.getFirstEnabledTab();\n if (firstEnabled) {\n this.value = firstEnabled.stateId;\n } else {\n return;\n }\n }\n\n const found = this.tabsList.find((tab) => tab.stateId === this.value);\n if (!found) {\n const first = this.getFirstEnabledTab();\n if (first) {\n this.activateTab(first.stateId);\n return;\n } else {\n console.error(\n 'Active tab not found.',\n this.tabsList.toArray(),\n this.value\n );\n return;\n }\n }\n this.setTab(found);\n }\n\n private setTab(tab: RdtTabComponent) {\n if (this.currentTab !== tab) {\n this.solidifyTabContentSize();\n this.currentTab = tab;\n this.currentTemplate = tab.templateRef;\n this.cd.markForCheck();\n //tab.onViewWillEnter();\n }\n\n if (this.formAutofocus && tab.formAutofocus) {\n // Wait until template is attached to DOM\n timer(0)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n takeUntilDestroyed(tab.destroyRef)\n )\n .subscribe(() => tab.focusForm());\n }\n\n setTimeout(() => this.releaseTabContentSize());\n }\n\n // Swapping template in template outlet will cause large css recalc\n // fix size to previous tab and in case they are the same size\n // the recalc isn't noticable\n private solidifyTabContentSize() {\n const el = this.tabContent.nativeElement;\n const bb = el.getBoundingClientRect();\n this.renderer.setStyle(el, 'width', bb.width + 'px');\n this.renderer.setStyle(el, 'height', bb.height + 'px');\n }\n\n private releaseTabContentSize() {\n const el = this.tabContent.nativeElement;\n this.renderer.removeStyle(el, 'width');\n this.renderer.removeStyle(el, 'height');\n }\n\n private getFirstEnabledTab() {\n return this.tabsList.find((t) => !t.disabled);\n }\n}\n","<div class=\"tab-header-panel\" *ngIf=\"tabsList\">\n <button\n *ngFor=\"let tab of tabsList\"\n #headerButton\n class=\"px-2 py-1 tab-header-button\"\n (click)=\"activateTab(tab.stateId)\"\n [class.active]=\"value === tab.stateId\"\n [disabled]=\"tab.disabled\"\n [hidden]=\"!tab.visible\"\n role=\"tab\"\n [attr.aria-selected]=\"value === tab.stateId\"\n [attr.aria-controls]=\"'panel-' + tab.stateId\"\n [attr.tabindex]=\"value === tab.stateId ? 0 : -1\"\n [id]=\"'tab-' + tab.stateId\"\n [class]=\"tab.buttonClass\"\n type=\"button\"\n >\n {{ tab.label }}\n </button>\n</div>\n<div\n class=\"tab-content\"\n role=\"tabpanel\"\n [id]=\"'panel-' + value\"\n [attr.aria-labelledby]=\"'tab-' + value\"\n #tabContent\n>\n <ng-template [ngTemplateOutlet]=\"currentTemplate\"></ng-template>\n</div>\n","export interface RdtTabContainerState {\n id: any;\n value: any;\n tabStates: RdtTabState[];\n}\n\nexport interface RdtTabState {\n id: any;\n containerStates: RdtTabContainerState[];\n}\n\nexport enum RdtTabMode {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { RdtTabContainerComponent } from './components/tab-container/rdt-tab-container.component';\nimport { RdtTabComponent } from './components/tab/rdt-tab.component';\nimport { RdtDestroyInactiveDirective } from './directives/rdt-destroy-inactive.directive';\nimport { RdtTabControllerDirective } from './directives/rdt-tab-controller.directive';\n\n@NgModule({\n declarations: [\n RdtTabComponent,\n RdtTabContainerComponent,\n RdtTabControllerDirective,\n RdtDestroyInactiveDirective,\n ],\n exports: [\n RdtTabComponent,\n RdtTabContainerComponent,\n RdtTabControllerDirective,\n RdtDestroyInactiveDirective,\n ],\n imports: [CommonModule, TooltipModule],\n})\nexport class RdtTabsModule {}\n","import { RdtShortcut } from '@ngrdt/shortcuts';\nimport { RdtTabControllerDirective } from '../directives/rdt-tab-controller.directive';\nimport { RdtTabsShortcutStrategy } from './rdt-tabs-shortcut-strategy';\n\nexport interface StaticRdtTabsConfig {\n shortcuts: Map<RdtShortcut, string>;\n}\n\nexport class StaticRdtTabsShortcutStrategy implements RdtTabsShortcutStrategy {\n constructor(private config: StaticRdtTabsConfig) {}\n\n updateShortcuts(): RdtShortcut[] {\n return Array.from(this.config.shortcuts.keys());\n }\n\n onShortcut(shortcut: RdtShortcut, ctrl: RdtTabControllerDirective): void {\n const value = this.config.shortcuts.get(shortcut)!;\n const tab = ctrl.getTabByValue(value);\n if (tab) {\n ctrl.activateTab(tab);\n ctrl.activateTabContainer(tab.tabContainer);\n } else {\n console.warn(\n `Registered shortcut has been detected,\n but there is no tab with appropriate value.\n Shortcut: ${shortcut}, value: ${value}`\n );\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngrdt-tabs.mjs","sources":["../../../../@ngrdt/tabs/src/lib/directives/rdt-destroy-inactive.directive.ts","../../../../@ngrdt/tabs/src/lib/components/tab/rdt-tab.component.ts","../../../../@ngrdt/tabs/src/lib/components/tab/rdt-tab.component.html","../../../../@ngrdt/tabs/src/lib/strategies/rdt-tabs-shortcut-strategy.ts","../../../../@ngrdt/tabs/src/lib/strategies/auto-rdt-tabs-shortcut-strategy.ts","../../../../@ngrdt/tabs/src/lib/directives/rdt-tab-controller.directive.ts","../../../../@ngrdt/tabs/src/lib/components/tab-container/rdt-tab-container.component.ts","../../../../@ngrdt/tabs/src/lib/components/tab-container/rdt-tab-container.component.html","../../../../@ngrdt/tabs/src/lib/rdt-tabs-models.ts","../../../../@ngrdt/tabs/src/lib/rdt-tabs.module.ts","../../../../@ngrdt/tabs/src/lib/strategies/static-rdt-tabs-shortcut-strategy.ts","../../../../@ngrdt/tabs/src/ngrdt-tabs.ts"],"sourcesContent":["import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[rdtDestroyInactive]',\n})\nexport class RdtDestroyInactiveDirective {\n public readonly template = inject(TemplateRef);\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n DestroyRef,\n inject,\n Injector,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {\n RDT_GUARDED_COMPONENT,\n RdtContainerDirective,\n RdtIsActive,\n} from '@ngrdt/core';\nimport { Nullable } from '@ngrdt/utils';\nimport { RdtDestroyInactiveDirective } from '../../directives/rdt-destroy-inactive.directive';\nimport { RdtTabContainerState, RdtTabState } from '../../rdt-tabs-models';\nimport { RdtTabContainerComponent } from '../tab-container/rdt-tab-container.component';\n\n@Component({\n selector: 'rdt-tab',\n templateUrl: './rdt-tab.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: RDT_GUARDED_COMPONENT,\n useExisting: RdtTabComponent,\n },\n ],\n hostDirectives: [RdtContainerDirective],\n})\nexport class RdtTabComponent implements OnChanges, OnInit, RdtIsActive {\n private readonly injector = inject(Injector);\n readonly destroyRef = inject(DestroyRef);\n\n private _contDir!: RdtContainerDirective;\n get contDir() {\n return this._contDir;\n }\n\n @Input()\n get stateId() {\n if (this._stateId === null) {\n if (this.label !== '') {\n this._stateId = this.label;\n } else {\n const index = this.tabContainer?.tabsList?.toArray().indexOf(this);\n this._stateId = `tab-${index}`;\n }\n }\n return this._stateId;\n }\n set stateId(value: string) {\n this._stateId = value;\n }\n private _stateId: string = null as unknown as string;\n\n @Input({ transform: booleanAttribute })\n disabled = false;\n\n @Input({ transform: booleanAttribute })\n visible = true;\n\n @Input({ required: true })\n label!: string;\n\n @Input({ transform: booleanAttribute })\n formAutofocus = true;\n\n @Input()\n buttonClass: Nullable<string> = null;\n\n @ViewChild(TemplateRef, { static: true })\n private readonly implicitContent!: TemplateRef<any>;\n\n @ContentChild(RdtDestroyInactiveDirective, {\n read: TemplateRef,\n static: true,\n })\n private readonly explicitContent!: TemplateRef<any>;\n\n get templateRef() {\n return this.explicitContent ?? this.implicitContent;\n }\n\n readonly tabContainer = inject(RdtTabContainerComponent);\n\n //get forms() {\n // return this.getChildrenByClass(RdtBaseFormComponent);\n //}\n\n get childContainers() {\n return this.contDir.getChildrenByClass(RdtTabContainerComponent);\n }\n\n rdtIsActive(): boolean {\n return (\n this.visible && !this.disabled && this.tabContainer.activeTab === this\n );\n }\n\n ngOnInit() {\n this._contDir = this.injector.get(RdtContainerDirective);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (\n 'label' in changes ||\n 'value' in changes ||\n 'visible' in changes ||\n 'stateId' in changes\n ) {\n this.tabContainer.cd.markForCheck();\n }\n }\n\n get isTopLevel() {\n return this.tabContainer.isTopLevel;\n }\n\n getState(): RdtTabState {\n return {\n id: this.stateId,\n containerStates: this.childContainers.map((cont) => cont.getState()),\n };\n }\n\n applyState(state: RdtTabState) {\n const states: (RdtTabContainerState | null)[] = [...state.containerStates];\n const conts: (RdtTabContainerComponent | null)[] = this.childContainers;\n const minLen = Math.min(states.length, conts.length);\n\n for (let i = 0; i < minLen; i++) {\n if (conts[i]!.stateId === states[i]!.id) {\n conts[i]!.applyState(states[i]!);\n conts[i] = states[i] = null;\n }\n }\n conts.forEach((cont, contI) => {\n if (!cont) {\n return;\n }\n for (let offset = 0; offset < states.length; offset++) {\n const prev = contI - offset;\n const next = contI + offset;\n if (prev > 0 && states[prev]?.id === cont.stateId) {\n cont.applyState(states[prev]!);\n states[prev] = null;\n return;\n } else if (next < states.length && states[next]?.id === cont.stateId) {\n cont.applyState(states[next]!);\n states[next] = null;\n return;\n }\n }\n });\n }\n\n focusForm() {\n //TODO: getRdtAutofocusable(this.forms)?.rdtFocus();\n }\n}\n","<ng-template>\n <ng-content></ng-content>\n</ng-template>\n","import { RdtShortcut } from '@ngrdt/shortcuts';\nimport { RdtTabControllerDirective } from '../directives/rdt-tab-controller.directive';\n\nexport abstract class RdtTabsShortcutStrategy {\n /**\n * Gets called onInit and whenever tabs are added/removed from Controller.\n * @param ctrl Controller using this strategy.\n * @returns List of shortcuts to register.\n */\n abstract updateShortcuts(ctrl: RdtTabControllerDirective): RdtShortcut[];\n /**\n * Gets called whenever hotkeys detects one of the registered shortcuts.\n * @param shortcut Registered shortcut.\n * @param ctrl Controller using this strategy.\n */\n abstract onShortcut(\n shortcut: RdtShortcut,\n ctrl: RdtTabControllerDirective\n ): void;\n}\n","import { RdtShortcut } from '@ngrdt/shortcuts';\nimport { RdtTabControllerDirective } from '../directives/rdt-tab-controller.directive';\nimport { RdtTabsShortcutStrategy } from './rdt-tabs-shortcut-strategy';\n\nconst TAB_BASE = 'alt';\nconst TAB_KEY_SETS = [\n ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],\n ['+', 'ě', 'š', 'č', 'ř', 'ž', 'ý', 'á', 'í', 'é'],\n];\nconst NEXT_CONTAINER = RdtShortcut.create('alt', 's');\nconst PREV_CONTAINER = RdtShortcut.create('alt', 'w');\nconst LEVEL_UP = RdtShortcut.create('ctrl', 'alt', 'up');\nconst LEVEL_DOWN = RdtShortcut.create('ctrl', 'alt', 'down');\nconst NEXT_TAB = RdtShortcut.create('ctrl', 'alt', 'right');\nconst PREV_TAB = RdtShortcut.create('ctrl', 'alt', 'left');\n\ninterface RdtShortcutActions {\n [key: string]: (ctrl: RdtTabControllerDirective) => boolean;\n}\n\nexport class AutoRdtTabsShortcutStrategy extends RdtTabsShortcutStrategy {\n override updateShortcuts(): RdtShortcut[] {\n return AutoRdtTabsShortcutStrategy.shortcuts;\n }\n\n override onShortcut(\n shortcut: RdtShortcut,\n ctrl: RdtTabControllerDirective\n ): void {\n const key = shortcut.lastKey;\n if (!key) {\n throw new Error('Key should not be undefined!');\n }\n const action = AutoRdtTabsShortcutStrategy.actions[key];\n if (!action) {\n throw new Error(`Unknown action for key ${key}`);\n }\n action(ctrl);\n }\n\n private static generateActions() {\n const actions: RdtShortcutActions = {\n [LEVEL_UP.lastKey]: (ctrl) => ctrl.goLevelUp(),\n [LEVEL_DOWN.lastKey]: (ctrl) => ctrl.goLevelDown(),\n [NEXT_CONTAINER.lastKey]: (ctrl) => ctrl.goToNextContainer(),\n [PREV_CONTAINER.lastKey]: (ctrl) => ctrl.goToPrevContainer(),\n [NEXT_TAB.lastKey]: (ctrl) => ctrl.goToNextTab(),\n [PREV_TAB.lastKey]: (ctrl) => ctrl.goToPrevTab(),\n };\n\n TAB_KEY_SETS.forEach((set) => {\n set.forEach((char, i) => {\n actions[char] = (ctrl) => ctrl.goToTabWithIndex(i);\n });\n });\n return actions;\n }\n\n private static generateShortcuts() {\n const shortcuts: RdtShortcut[] = [\n LEVEL_UP,\n LEVEL_DOWN,\n NEXT_CONTAINER,\n PREV_CONTAINER,\n NEXT_TAB,\n PREV_TAB,\n ];\n\n TAB_KEY_SETS.forEach((set) => {\n set.forEach((tabKey) => {\n shortcuts.push(RdtShortcut.create(TAB_BASE, tabKey));\n });\n });\n\n return shortcuts;\n }\n\n private static shortcuts: RdtShortcut[] =\n AutoRdtTabsShortcutStrategy.generateShortcuts();\n private static actions = AutoRdtTabsShortcutStrategy.generateActions();\n}\n","import {\n AfterContentInit,\n ContentChildren,\n DestroyRef,\n Directive,\n inject,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n QueryList,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n canTransition$,\n RDT_GUARDED_COMPONENT,\n RdtContainerDirective,\n} from '@ngrdt/core';\nimport { RdtShortcut, RdtShortcutService } from '@ngrdt/shortcuts';\nimport { firstValueFrom, Subscription, takeWhile } from 'rxjs';\nimport { RdtTabContainerComponent } from '../components/tab-container/rdt-tab-container.component';\nimport { RdtTabComponent } from '../components/tab/rdt-tab.component';\nimport { AutoRdtTabsShortcutStrategy } from '../strategies/auto-rdt-tabs-shortcut-strategy';\nimport { RdtTabsShortcutStrategy } from '../strategies/rdt-tabs-shortcut-strategy';\n\n@Directive({\n selector: '[rdtTabController]',\n providers: [\n {\n provide: RDT_GUARDED_COMPONENT,\n useExisting: RdtTabControllerDirective,\n },\n ],\n hostDirectives: [RdtContainerDirective],\n})\nexport class RdtTabControllerDirective\n implements OnInit, AfterContentInit, OnDestroy\n{\n private readonly destroyRef = inject(DestroyRef);\n private readonly injector = inject(Injector);\n private readonly shortcutService = inject(RdtShortcutService);\n private shortcutSub = new Subscription();\n\n // String value lets you use the directive without param.\n @Input()\n set rdtTabController(value: RdtTabsShortcutStrategy | string | null) {\n if (value && typeof value !== 'string') {\n this._strategy = value;\n this.updateShortcuts();\n }\n }\n\n protected get tabContainers() {\n return this.containerDirective\n .getChildrenRecursive()\n .filter(\n (ch) => ch instanceof RdtTabContainerComponent\n ) as unknown as RdtTabContainerComponent[];\n }\n protected get tabs() {\n return this.containerDirective\n .getChildrenRecursive()\n .filter(\n (ch) => ch instanceof RdtTabComponent\n ) as unknown as RdtTabComponent[];\n }\n\n @ContentChildren(RdtTabControllerDirective, { descendants: true })\n protected childControllers!: QueryList<RdtTabControllerDirective>;\n\n get strategy() {\n return this._strategy;\n }\n private _strategy: RdtTabsShortcutStrategy =\n new AutoRdtTabsShortcutStrategy();\n\n private _lastActiveTabContainer: {\n timestamp: number | null;\n container: RdtTabContainerComponent;\n } | null = null;\n\n private _contentWasInit = false;\n\n get disabled() {\n return this._disabled;\n }\n private _disabled = false;\n\n get shortcuts() {\n return this._shortcuts;\n }\n set shortcuts(value: RdtShortcut[]) {\n const oldSet = new Set<string>(this._shortcuts.map((s) => s.hotkeysValue));\n this._shortcuts = value;\n\n if (\n oldSet.size !== value.length ||\n value.some((s) => !oldSet.has(s.hotkeysValue))\n ) {\n this.bindAll();\n }\n }\n private _shortcuts: RdtShortcut[] = [];\n\n get activeContainer() {\n return this._lastActiveTabContainer?.container;\n }\n\n protected containerDirective!: RdtContainerDirective;\n\n ngOnInit() {\n this.containerDirective = this.injector.get(\n RdtContainerDirective,\n undefined,\n {\n self: true,\n }\n );\n this.updateShortcuts();\n }\n\n ngAfterContentInit() {\n this.setDefaultActive();\n this.disableSelfWhenChildCtrlExists();\n this._contentWasInit = true;\n if (this.tabs.length > 0) {\n this.onTabChanges();\n }\n if (this.tabContainers.length > 0) {\n this.onTabContainerChanges();\n }\n }\n\n ngOnDestroy(): void {\n this.unbindAll();\n this._shortcuts.length = 0;\n }\n\n getTabContainerIndex(cont: RdtTabContainerComponent): number {\n const level = this.getSameLevelContainers(cont);\n return level.indexOf(cont);\n }\n\n /**\n * Activates first parent container of current container\n * that is not disabled and has any non disabled tabs.\n */\n goLevelUp(): boolean {\n let cont = this.activeContainer;\n while (cont) {\n cont = cont.parentTab?.tabContainer;\n if (cont && !cont.disabled && cont.hasNonDisabledTabs) {\n this.activateTabContainer(cont);\n return true;\n }\n }\n return false;\n }\n\n /**\n * Activates first container under current tab which\n * is not disabled and has any non disabled tabs.\n */\n goLevelDown(): boolean {\n const cont = this.activeContainer;\n if (!cont || cont.disabled) {\n return false;\n }\n let tab = cont.tabsList.find((t) => t.stateId === cont.value);\n if (!tab || tab.disabled) {\n tab = cont.tabsList.find((t) => !t.disabled);\n }\n if (!tab) {\n return false;\n }\n const targetCont = tab.childContainers.find(\n (c) => !c.disabled && c.hasNonDisabledTabs\n );\n if (targetCont) {\n this.activateTabContainer(targetCont);\n return true;\n }\n return false;\n }\n\n /**\n * Activates next container on current level\n * (under parent container of currently active container).\n * Is cyclic.\n */\n goToNextContainer(): boolean {\n return this.goToAdjacentContainer(1);\n }\n\n /**\n * Activates previous container on current level\n * (under parent container of currently active container).\n * Is cyclic.\n */\n goToPrevContainer(): boolean {\n return this.goToAdjacentContainer(-1);\n }\n\n /**\n * Activates tab within active container at the index of argument.\n */\n goToTabWithIndex(index: number): boolean {\n const cont = this.activeContainer;\n if (!cont) {\n return false;\n }\n const tab = cont.tabsList.get(index);\n if (!tab) {\n return false;\n }\n this.activateTab(tab);\n return true;\n }\n\n /**\n * Activates next tab within active container. Is cyclic.\n */\n goToNextTab(): boolean {\n return this.goToAdjacentTab(1);\n }\n\n /**\n * Activates previous tab within active container. Is cyclic.\n */\n goToPrevTab(): boolean {\n return this.goToAdjacentTab(-1);\n }\n\n private goToAdjacentContainer(dir: -1 | 1) {\n const cont = this.activeContainer;\n if (!cont) {\n return false;\n }\n\n const level = this.getSameLevelContainers(cont);\n if (!level) {\n return false;\n }\n\n const currentIndex = level.indexOf(cont);\n if (currentIndex < 0) {\n throw new Error('Current container is not within its own level?');\n }\n for (\n let i = (currentIndex + dir + level.length) % level.length;\n i !== currentIndex;\n i = (i + dir + level.length) % level.length\n ) {\n const next = level[i];\n if (!next.disabled && next.hasNonDisabledTabs) {\n this.activateTabContainer(next);\n return true;\n }\n }\n return false;\n }\n\n private goToAdjacentTab(dir: -1 | 1) {\n const cont = this.activeContainer;\n if (!cont) {\n return false;\n }\n\n const tabs = cont.tabsList.toArray();\n const currentIndex = tabs.findIndex((tab) => tab.stateId === cont.value);\n if (currentIndex < 0) {\n throw new Error('Current tab is not found in its container?!');\n }\n\n for (\n let i = (currentIndex + dir + tabs.length) % tabs.length;\n i !== currentIndex;\n i = (i + dir + tabs.length) % tabs.length\n ) {\n const next = tabs[i];\n if (!next.disabled) {\n this.activateTab(next);\n return true;\n }\n }\n return false;\n }\n\n private getSameLevelContainers(cont: RdtTabContainerComponent) {\n if (cont.parentTab) {\n return cont.parentTab.childContainers;\n } else {\n return this.tabContainers.filter((cont) => cont.isTopLevel);\n }\n }\n\n getTabByValue(value: string) {\n for (const container of this.tabContainers) {\n const tab = container.tabsList.find((ch) => ch.stateId === value);\n if (tab) {\n return tab;\n }\n }\n return null;\n }\n\n activateTabContainer(tabs: RdtTabContainerComponent, scrollIntoView = true) {\n if (this._lastActiveTabContainer) {\n this._lastActiveTabContainer.container.active = false;\n }\n\n tabs.active = true;\n if (scrollIntoView) {\n tabs.scrollIntoView();\n }\n\n this._lastActiveTabContainer = {\n container: tabs,\n timestamp: null,\n };\n }\n\n activateTabContainerFromClick(\n tabs: RdtTabContainerComponent,\n timestamp: number\n ) {\n if (this._lastActiveTabContainer) {\n if (\n this._lastActiveTabContainer.timestamp !== null &&\n this._lastActiveTabContainer.timestamp >= timestamp\n ) {\n return;\n }\n\n this._lastActiveTabContainer.container.active = false;\n }\n\n tabs.active = true;\n\n this._lastActiveTabContainer = {\n container: tabs,\n timestamp,\n };\n }\n\n async activateTab(tab: RdtTabComponent) {\n if (!this.canActivateTab(tab)) {\n console.warn('Trying to activate disabled tab.');\n return;\n }\n\n const formsCheck = await this.canActivateTabForms(tab);\n if (!formsCheck) {\n console.warn(\n 'Trying to activate tab while current tab has unsaved forms'\n );\n return;\n }\n\n let current: RdtTabComponent | null = tab;\n\n do {\n const container: RdtTabContainerComponent = current!.tabContainer;\n container.value = current!.stateId;\n current = container.parentTab;\n } while (current !== null);\n }\n\n canActivateTab(tab: RdtTabComponent) {\n let current: RdtTabComponent | null = tab;\n\n do {\n const container: RdtTabContainerComponent = current.tabContainer;\n if (current.disabled || container.disabled) {\n return false;\n }\n current = container.parentTab;\n } while (current !== null);\n\n return true;\n }\n\n async canActivateTabForms(tab: RdtTabComponent) {\n const container = tab.tabContainer;\n return firstValueFrom(\n canTransition$(container.activeTab?.contDir, tab?.contDir)\n );\n }\n\n onTabChanges() {\n this.updateShortcuts();\n }\n\n onTabContainerChanges() {\n this.setDefaultActiveWhenAvailable();\n }\n\n private disableSelfWhenChildCtrlExists() {\n this.childControllers.changes\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((val: QueryList<RdtTabControllerDirective>) => {\n this._disabled = val.length > 0;\n\n if (this._disabled) {\n this.unbindAll();\n } else {\n this.bindAll();\n }\n });\n }\n\n private setDefaultActive() {\n if (this.tabContainers) {\n const defaultCont = this.tabContainers.find(this.canContainerBeDefault);\n if (defaultCont) {\n this.activateTabContainer(defaultCont, false);\n }\n }\n }\n\n private setDefaultActiveWhenAvailable() {\n const active = this.activeContainer;\n if (active && this.tabContainers.some((cont) => cont === active)) {\n return;\n }\n const newDefault = this.tabContainers.find(this.canContainerBeDefault);\n if (newDefault) {\n this.activateTabContainer(newDefault, false);\n }\n }\n\n private canContainerBeDefault(c: RdtTabContainerComponent) {\n return c.isTopLevel && !c.disabled && c.hasNonDisabledTabs;\n }\n\n private updateShortcuts() {\n this.shortcuts = this._strategy.updateShortcuts(this);\n }\n\n private bindAll() {\n this.shortcutSub.unsubscribe();\n if (!this._disabled) {\n this.shortcutSub = this.shortcutService\n .listen(this._shortcuts)\n .pipe(takeWhile(() => !this._disabled))\n .subscribe((event) => {\n this._strategy.onShortcut(event.shortcut, this);\n });\n }\n }\n\n private unbindAll() {\n this.shortcutSub.unsubscribe();\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n inject,\n Input,\n Output,\n QueryList,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewEncapsulation,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n canTransition$,\n RDT_GUARDED_COMPONENT,\n RdtChildDirective,\n} from '@ngrdt/core';\nimport { RdtHTMLUtils } from '@ngrdt/utils';\nimport { firstValueFrom, timer } from 'rxjs';\nimport { RdtTabControllerDirective } from '../../directives/rdt-tab-controller.directive';\nimport { RdtTabContainerState, RdtTabState } from '../../rdt-tabs-models';\nimport { RdtTabComponent } from '../tab/rdt-tab.component';\n\n@Component({\n selector: 'rdt-tab-container',\n templateUrl: './rdt-tab-container.component.html',\n styleUrls: ['./rdt-tab-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: RDT_GUARDED_COMPONENT,\n useExisting: RdtTabContainerComponent,\n },\n ],\n hostDirectives: [RdtChildDirective],\n encapsulation: ViewEncapsulation.None,\n})\nexport class RdtTabContainerComponent implements AfterContentInit {\n readonly destroyRef = inject(DestroyRef);\n\n @Input()\n stateId: any = null;\n\n @Input()\n set value(val: string) {\n if (this.activeTab && this.activeTab.stateId !== val) {\n // TODO\n //this.activeTab.onViewWillLeave();\n }\n this._value = val;\n this.setCurrent();\n }\n get value() {\n return this._value;\n }\n private _value!: string;\n\n @Input()\n disabled = false;\n\n @Input()\n formAutofocus = true;\n\n @Input()\n panelPosition: 'left' | 'right' | 'top' | 'bottom' = 'top';\n\n @Output()\n valueChange = new EventEmitter();\n\n @ContentChildren(RdtTabComponent)\n tabsList!: QueryList<RdtTabComponent>;\n\n @ViewChildren('headerButton')\n tabHeaderButtons?: QueryList<ElementRef<HTMLElement>>;\n\n @ViewChild('tabContent', { static: true })\n tabContent!: ElementRef<HTMLElement>;\n\n @HostBinding('class.active')\n private _active = false;\n get active() {\n return this._active;\n }\n set active(value: boolean) {\n this._active = value;\n this.cd.markForCheck();\n }\n\n get isTopLevel(): boolean {\n return !this.parentTab;\n }\n\n readonly parentTab = inject(RdtTabComponent, { optional: true });\n readonly controller = inject(RdtTabControllerDirective, {\n optional: true,\n });\n readonly cd = inject(ChangeDetectorRef);\n readonly elRef = inject(ElementRef);\n protected readonly renderer = inject(Renderer2);\n\n protected currentTemplate: TemplateRef<any> | null = null;\n protected currentTab: RdtTabComponent | null = null;\n\n @HostBinding('class')\n get classes() {\n return `dp3-tab-container panel-${this.panelPosition}`;\n }\n\n @HostBinding('class.panel-horizontal')\n get isHorizontal() {\n return this.panelPosition === 'top' || this.panelPosition === 'bottom';\n }\n\n @HostBinding('class.panel-vertical')\n get isVertical() {\n return !this.isHorizontal;\n }\n\n @HostBinding('attr.role')\n private attrRole = 'tablist';\n\n get hasNonDisabledTabs() {\n return this.tabsList.some((tab) => !tab.disabled);\n }\n\n get activeTab() {\n return this.getTabByValue(this.value);\n }\n\n getTabByValue(value: string) {\n return this.tabsList?.find((tab) => tab.stateId === value);\n }\n\n ngAfterContentInit() {\n this.controller?.onTabContainerChanges();\n timer(0)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.setCurrent());\n\n this.tabsList.changes\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.controller?.onTabChanges();\n this.setCurrent();\n this.cd.markForCheck();\n });\n\n if (this.stateId === null && this.controller) {\n const id = this.controller.getTabContainerIndex(this);\n this.stateId = `tab-container-${id}`;\n }\n }\n\n getState(): RdtTabContainerState {\n return {\n id: this.stateId,\n value: this.value,\n tabStates: this.tabsList.map((tab) => tab.getState()),\n };\n }\n\n applyState(state: RdtTabContainerState) {\n this.value = state.value;\n this.scrollCurrentButtonIntoView();\n\n const states: (RdtTabState | null)[] = [...state.tabStates];\n const tabs: (RdtTabComponent | null)[] = this.tabsList.toArray();\n const minLen = Math.min(states.length, tabs.length);\n\n for (let i = 0; i < minLen; i++) {\n if (tabs[i]!.stateId === states[i]!.id) {\n tabs[i]!.applyState(states[i]!);\n tabs[i] = states[i] = null;\n }\n }\n tabs.forEach((tab, tabI) => {\n if (!tab) {\n return;\n }\n for (let offset = 0; offset < states.length; offset++) {\n const prev = tabI - offset;\n const next = tabI + offset;\n if (prev > 0 && states[prev]?.id === tab.stateId) {\n tab.applyState(states[prev]!);\n states[prev] = null;\n return;\n } else if (next < states.length && states[next]?.id === tab.stateId) {\n tab.applyState(states[next]!);\n states[next] = null;\n return;\n }\n }\n });\n }\n\n scrollIntoView() {\n this.elRef?.nativeElement?.scrollIntoView({ behavior: 'smooth' });\n }\n\n async activateTab(value: string) {\n const nextTab = this.getTabByValue(value);\n\n const can = await firstValueFrom(\n canTransition$(this.activeTab?.contDir, nextTab?.contDir)\n );\n if (can) {\n this.value = value;\n this.valueChange.emit(value);\n }\n }\n\n scrollCurrentButtonIntoView() {\n if (!this.tabsList || !this.tabHeaderButtons) {\n return;\n }\n const tabIndex = this.tabsList\n .toArray()\n .findIndex((tab) => tab.stateId === this.value);\n const buttonRef = this.tabHeaderButtons.get(tabIndex);\n if (buttonRef) {\n RdtHTMLUtils.scrollIntoViewHorizontallyWithinParent(\n buttonRef.nativeElement\n );\n }\n }\n\n @HostListener('click', ['$event'])\n private onClick(event: PointerEvent) {\n this.controller?.activateTabContainerFromClick(this, event.timeStamp);\n }\n\n private setCurrent() {\n if (!this.tabsList) {\n return;\n }\n if (this.value == undefined) {\n const firstEnabled = this.getFirstEnabledTab();\n if (firstEnabled) {\n this.value = firstEnabled.stateId;\n } else {\n return;\n }\n }\n\n const found = this.tabsList.find((tab) => tab.stateId === this.value);\n if (!found) {\n const first = this.getFirstEnabledTab();\n if (first) {\n this.activateTab(first.stateId);\n return;\n } else {\n console.error(\n 'Active tab not found.',\n this.tabsList.toArray(),\n this.value\n );\n return;\n }\n }\n this.setTab(found);\n }\n\n private setTab(tab: RdtTabComponent) {\n if (this.currentTab !== tab) {\n this.solidifyTabContentSize();\n this.currentTab = tab;\n this.currentTemplate = tab.templateRef;\n this.cd.markForCheck();\n //tab.onViewWillEnter();\n }\n\n if (this.formAutofocus && tab.formAutofocus) {\n // Wait until template is attached to DOM\n timer(0)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n takeUntilDestroyed(tab.destroyRef)\n )\n .subscribe(() => tab.focusForm());\n }\n\n setTimeout(() => this.releaseTabContentSize());\n }\n\n // Swapping template in template outlet will cause large css recalc\n // fix size to previous tab and in case they are the same size\n // the recalc isn't noticable\n private solidifyTabContentSize() {\n const el = this.tabContent.nativeElement;\n const bb = el.getBoundingClientRect();\n this.renderer.setStyle(el, 'width', bb.width + 'px');\n this.renderer.setStyle(el, 'height', bb.height + 'px');\n }\n\n private releaseTabContentSize() {\n const el = this.tabContent.nativeElement;\n this.renderer.removeStyle(el, 'width');\n this.renderer.removeStyle(el, 'height');\n }\n\n private getFirstEnabledTab() {\n return this.tabsList.find((t) => !t.disabled);\n }\n}\n","<div class=\"tab-header-panel\" *ngIf=\"tabsList\">\n <button\n *ngFor=\"let tab of tabsList\"\n #headerButton\n class=\"px-2 py-1 tab-header-button\"\n (click)=\"activateTab(tab.stateId)\"\n [class.active]=\"value === tab.stateId\"\n [disabled]=\"tab.disabled\"\n [hidden]=\"!tab.visible\"\n role=\"tab\"\n [attr.aria-selected]=\"value === tab.stateId\"\n [attr.aria-controls]=\"'panel-' + tab.stateId\"\n [attr.tabindex]=\"value === tab.stateId ? 0 : -1\"\n [id]=\"'tab-' + tab.stateId\"\n [class]=\"tab.buttonClass\"\n type=\"button\"\n >\n {{ tab.label }}\n </button>\n</div>\n<div\n class=\"tab-content\"\n role=\"tabpanel\"\n [id]=\"'panel-' + value\"\n [attr.aria-labelledby]=\"'tab-' + value\"\n #tabContent\n>\n <ng-template [ngTemplateOutlet]=\"currentTemplate\"></ng-template>\n</div>\n","export interface RdtTabContainerState {\n id: any;\n value: any;\n tabStates: RdtTabState[];\n}\n\nexport interface RdtTabState {\n id: any;\n containerStates: RdtTabContainerState[];\n}\n\nexport enum RdtTabMode {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RdtTabContainerComponent } from './components/tab-container/rdt-tab-container.component';\nimport { RdtTabComponent } from './components/tab/rdt-tab.component';\nimport { RdtDestroyInactiveDirective } from './directives/rdt-destroy-inactive.directive';\nimport { RdtTabControllerDirective } from './directives/rdt-tab-controller.directive';\n\n@NgModule({\n declarations: [\n RdtTabComponent,\n RdtTabContainerComponent,\n RdtTabControllerDirective,\n RdtDestroyInactiveDirective,\n ],\n exports: [\n RdtTabComponent,\n RdtTabContainerComponent,\n RdtTabControllerDirective,\n RdtDestroyInactiveDirective,\n ],\n imports: [CommonModule],\n})\nexport class RdtTabsModule {}\n","import { RdtShortcut } from '@ngrdt/shortcuts';\nimport { RdtTabControllerDirective } from '../directives/rdt-tab-controller.directive';\nimport { RdtTabsShortcutStrategy } from './rdt-tabs-shortcut-strategy';\n\nexport interface StaticRdtTabsConfig {\n shortcuts: Map<RdtShortcut, string>;\n}\n\nexport class StaticRdtTabsShortcutStrategy implements RdtTabsShortcutStrategy {\n constructor(private config: StaticRdtTabsConfig) {}\n\n updateShortcuts(): RdtShortcut[] {\n return Array.from(this.config.shortcuts.keys());\n }\n\n onShortcut(shortcut: RdtShortcut, ctrl: RdtTabControllerDirective): void {\n const value = this.config.shortcuts.get(shortcut)!;\n const tab = ctrl.getTabByValue(value);\n if (tab) {\n ctrl.activateTab(tab);\n ctrl.activateTabContainer(tab.tabContainer);\n } else {\n console.warn(\n `Registered shortcut has been detected,\n but there is no tab with appropriate value.\n Shortcut: ${shortcut}, value: ${value}`\n );\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -4,9 +4,8 @@ import * as i2 from "./components/tab-container/rdt-tab-container.component";
4
4
  import * as i3 from "./directives/rdt-tab-controller.directive";
5
5
  import * as i4 from "./directives/rdt-destroy-inactive.directive";
6
6
  import * as i5 from "@angular/common";
7
- import * as i6 from "primeng/tooltip";
8
7
  export declare class RdtTabsModule {
9
8
  static ɵfac: i0.ɵɵFactoryDeclaration<RdtTabsModule, never>;
10
- static ɵmod: i0.ɵɵNgModuleDeclaration<RdtTabsModule, [typeof i1.RdtTabComponent, typeof i2.RdtTabContainerComponent, typeof i3.RdtTabControllerDirective, typeof i4.RdtDestroyInactiveDirective], [typeof i5.CommonModule, typeof i6.TooltipModule], [typeof i1.RdtTabComponent, typeof i2.RdtTabContainerComponent, typeof i3.RdtTabControllerDirective, typeof i4.RdtDestroyInactiveDirective]>;
9
+ static ɵmod: i0.ɵɵNgModuleDeclaration<RdtTabsModule, [typeof i1.RdtTabComponent, typeof i2.RdtTabContainerComponent, typeof i3.RdtTabControllerDirective, typeof i4.RdtDestroyInactiveDirective], [typeof i5.CommonModule], [typeof i1.RdtTabComponent, typeof i2.RdtTabContainerComponent, typeof i3.RdtTabControllerDirective, typeof i4.RdtDestroyInactiveDirective]>;
11
10
  static ɵinj: i0.ɵɵInjectorDeclaration<RdtTabsModule>;
12
11
  }
package/package.json CHANGED
@@ -1,14 +1,13 @@
1
1
  {
2
2
  "name": "@ngrdt/tabs",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "peerDependencies": {
5
- "@angular/common": "^18.2.0",
6
- "@angular/core": "^18.2.0",
7
- "@ngrdt/core": "0.0.4",
8
- "@ngrdt/utils": "0.0.7",
9
- "rxjs": "~7.8.0",
10
- "@ngrdt/shortcuts": "0.0.6",
11
- "primeng": "^17.18.11"
5
+ "@angular/common": ">=18.2.0",
6
+ "@angular/core": ">=18.2.0",
7
+ "rxjs": ">=7.0.0",
8
+ "@ngrdt/core": ">=0.0.6",
9
+ "@ngrdt/utils": ">=0.0.8",
10
+ "@ngrdt/shortcuts": ">=0.0.7"
12
11
  },
13
12
  "sideEffects": false,
14
13
  "module": "fesm2022/ngrdt-tabs.mjs",