From 537697c92089cd7258a14e73651666022649c57f Mon Sep 17 00:00:00 2001 From: Hai JI Date: Wed, 10 Aug 2022 16:13:39 -0700 Subject: [PATCH] feat(navigator): add EventEmitter to selected item --- libs/markdown-navigator/README.md | 4 ++++ .../markdown-navigator-window.component.html | 1 + .../markdown-navigator-window.component.ts | 2 ++ .../src/markdown-navigator.component.ts | 17 +++++++++++++---- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/libs/markdown-navigator/README.md b/libs/markdown-navigator/README.md index 3addb6d36..9823c51d9 100644 --- a/libs/markdown-navigator/README.md +++ b/libs/markdown-navigator/README.md @@ -26,6 +26,8 @@ A component for rendering and navigating through markdown, such as documentation - buttonClicked: ITdFlavoredMarkdownButtonClickEvent - Emitted when a button is clicked +- itemSelected: IMarkdownNavigatorItem + - Emitted the selected item when a item is selected For reference: @@ -117,6 +119,8 @@ A component that contains a MarkdownNavigator component and a toolbar - Event emitted when the close button is clicked. - buttonClicked: ITdFlavoredMarkdownButtonClickEvent - Emitted when a button is clicked +- itemSelected: IMarkdownNavigatorItem + - Emitted the selected item when a item is selected ## Setup diff --git a/libs/markdown-navigator/src/markdown-navigator-window/markdown-navigator-window.component.html b/libs/markdown-navigator/src/markdown-navigator-window/markdown-navigator-window.component.html index 6a725221b..1a83862b0 100644 --- a/libs/markdown-navigator/src/markdown-navigator-window/markdown-navigator-window.component.html +++ b/libs/markdown-navigator/src/markdown-navigator-window/markdown-navigator-window.component.html @@ -17,5 +17,6 @@ [copyCodeToClipboard]="copyCodeToClipboard" [copyCodeTooltips]="copyCodeTooltips" (buttonClicked)="buttonClicked.emit($event)" + (itemSelected)="itemSelected.emit($event)" > diff --git a/libs/markdown-navigator/src/markdown-navigator-window/markdown-navigator-window.component.ts b/libs/markdown-navigator/src/markdown-navigator-window/markdown-navigator-window.component.ts index 584253df5..e7460b406 100644 --- a/libs/markdown-navigator/src/markdown-navigator-window/markdown-navigator-window.component.ts +++ b/libs/markdown-navigator/src/markdown-navigator-window/markdown-navigator-window.component.ts @@ -51,6 +51,8 @@ export class TdMarkdownNavigatorWindowComponent { @Output() dockToggled: EventEmitter = new EventEmitter(); @Output() buttonClicked: EventEmitter = new EventEmitter(); + @Output() itemSelected: EventEmitter = + new EventEmitter(); get markdownNavigatorLabels(): IMarkdownNavigatorLabels | undefined { if (!this.labels) { diff --git a/libs/markdown-navigator/src/markdown-navigator.component.ts b/libs/markdown-navigator/src/markdown-navigator.component.ts index c5fad3f5a..c63d8dde8 100644 --- a/libs/markdown-navigator/src/markdown-navigator.component.ts +++ b/libs/markdown-navigator/src/markdown-navigator.component.ts @@ -116,6 +116,8 @@ export class TdMarkdownNavigatorComponent implements OnChanges { @Output() buttonClicked: EventEmitter = new EventEmitter(); + @Output() itemSelected: EventEmitter = + new EventEmitter(); @ViewChild('markdownWrapper') markdownWrapper!: ElementRef; @@ -273,6 +275,7 @@ export class TdMarkdownNavigatorComponent implements OnChanges { this.currentMarkdownItem = undefined; } this.historyStack = []; + this.itemSelected.emit(undefined); this._changeDetectorRef.markForCheck(); } @@ -299,6 +302,7 @@ export class TdMarkdownNavigatorComponent implements OnChanges { } else { this.reset(); } + this.itemSelected.emit(parent); this._changeDetectorRef.markForCheck(); } @@ -307,6 +311,7 @@ export class TdMarkdownNavigatorComponent implements OnChanges { this.currentMarkdownItem = item; this.historyStack = [...this.historyStack, item]; this.setChildrenAsCurrentMenuItems(item); + this.itemSelected.emit(item); this._changeDetectorRef.markForCheck(); } @@ -403,8 +408,10 @@ export class TdMarkdownNavigatorComponent implements OnChanges { path = this.findPath(this.items, itemOrPath); } path.forEach((pathItem: IMarkdownNavigatorItem, index) => { - if (index === 0) { this.reset() } - + if (index === 0) { + this.reset(); + } + this.handleItemSelected(pathItem); }); } @@ -471,12 +478,14 @@ export class TdMarkdownNavigatorComponent implements OnChanges { const link: HTMLAnchorElement = event.target; const url: URL = new URL(link.href); const urlParts = url.href.split('/'); - const id = urlParts[urlParts.length-1].split('.md')[0]; + const id = urlParts[urlParts.length - 1].split('.md')[0]; this.loading = true; this._changeDetectorRef.markForCheck(); const pathFound = await this._jumpTo({ id }); - if (pathFound) { return; } + if (pathFound) { + return; + } try { const markdownString: string = await this._markdownUrlLoaderService.load(