Skip to content
This repository was archived by the owner on Nov 14, 2023. It is now read-only.

Commit 9311445

Browse files
anandtiwaryjaywalker21
authored andcommitted
feat: list view changes (hypertrace#1302)
* feat: list view changes * refactor: fix formatting * refactor: fixing test
1 parent 2282b9e commit 9311445

File tree

6 files changed

+50
-10
lines changed

6 files changed

+50
-10
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { Directive, TemplateRef } from '@angular/core';
2+
3+
@Directive({
4+
selector: '[htListViewKeyRenderer]'
5+
})
6+
export class ListViewKeyRendererDirective {
7+
public constructor(private readonly templateRef: TemplateRef<unknown>) {}
8+
9+
public getTemplateRef(): TemplateRef<unknown> {
10+
return this.templateRef;
11+
}
12+
}

projects/components/src/list-view/list-view.component.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { ChangeDetectionStrategy, Component, ContentChild, Input } from '@angular/core';
2+
import { ListViewKeyRendererDirective } from './list-view-key-renderer.directive';
23
import { ListViewValueRendererDirective } from './list-view-value-renderer.directive';
34
@Component({
45
selector: 'ht-list-view',
@@ -8,6 +9,10 @@ import { ListViewValueRendererDirective } from './list-view-value-renderer.direc
89
<ng-template #defaultValueRenderer let-record
910
><span>{{ record.value }}</span></ng-template
1011
>
12+
<ng-template #defaultKeyRenderer let-record
13+
><span>{{ record.key }}</span></ng-template
14+
>
15+
1116
<div class="list-view">
1217
<div *ngIf="this.header" class="header-row">
1318
<div class="header-key-label">
@@ -19,7 +24,12 @@ import { ListViewValueRendererDirective } from './list-view-value-renderer.direc
1924
</div>
2025
<div class="data-row" *ngFor="let record of this.records">
2126
<div class="key">
22-
<span>{{ record.key }}</span>
27+
<ng-container
28+
*ngTemplateOutlet="
29+
this.keyRenderer ? this.keyRenderer!.getTemplateRef() : defaultKeyRenderer;
30+
context: { $implicit: record }
31+
"
32+
></ng-container>
2333
</div>
2434
<div class="value">
2535
<ng-container
@@ -42,6 +52,9 @@ export class ListViewComponent {
4252

4353
@ContentChild(ListViewValueRendererDirective)
4454
public valueRenderer?: ListViewValueRendererDirective;
55+
56+
@ContentChild(ListViewKeyRendererDirective)
57+
public keyRenderer?: ListViewKeyRendererDirective;
4558
}
4659

4760
export interface ListViewHeader {
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
import { CommonModule } from '@angular/common';
22
import { NgModule } from '@angular/core';
3+
import { ListViewKeyRendererDirective } from './list-view-key-renderer.directive';
34
import { ListViewValueRendererDirective } from './list-view-value-renderer.directive';
45
import { ListViewComponent } from './list-view.component';
56

67
@NgModule({
7-
declarations: [ListViewComponent, ListViewValueRendererDirective],
8-
exports: [ListViewComponent, ListViewValueRendererDirective],
8+
declarations: [ListViewComponent, ListViewValueRendererDirective, ListViewKeyRendererDirective],
9+
exports: [ListViewComponent, ListViewValueRendererDirective, ListViewKeyRendererDirective],
910
imports: [CommonModule]
1011
})
1112
export class ListViewModule {}

projects/components/src/modal/modal-container.component.test.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,17 @@ describe('Modal Container component', () => {
130130
content: TestComponent,
131131
size: ModalSize.LargeTall
132132
});
133-
checkSyles('640px', '90vh');
133+
checkSyles('840px', '90vh');
134+
});
135+
136+
test('uses the requested large-wide size', () => {
137+
spectator = createConfiguredHost({
138+
showControls: true,
139+
title: 'Create User',
140+
content: TestComponent,
141+
size: ModalSize.LargeWide
142+
});
143+
checkSyles('95em', '90vh');
134144
});
135145

136146
test('uses the requested medium-wide size', () => {

projects/components/src/modal/modal.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ export const enum ModalSize {
1616
LargeShort = 'large-short',
1717
Large = 'large',
1818
LargeTall = 'large-tall',
19-
MediumWide = 'medium-wide'
19+
MediumWide = 'medium-wide',
20+
LargeWide = 'large-wide'
2021
}
2122

2223
export interface ModalDimension {
@@ -36,9 +37,11 @@ export const getModalDimensions = (modalSize: ModalSize): ModalDimension => {
3637
case ModalSize.Large:
3738
return getModalDimensionObject(640, 720);
3839
case ModalSize.LargeTall:
39-
return getModalDimensionObject(640, '90vh');
40+
return getModalDimensionObject(840, '90vh');
4041
case ModalSize.MediumWide:
4142
return getModalDimensionObject(840, 600);
43+
case ModalSize.LargeWide:
44+
return getModalDimensionObject('95em', '90vh');
4245
default:
4346
return getModalDimensionObject(420, 365);
4447
}

projects/observability/src/shared/components/span-detail/tags/span-tags-detail.component.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,17 @@ import { ScopeQueryParam } from '../../../../pages/explorer/explorer.component';
1313
template: `
1414
<div class="tags-details">
1515
<ng-container *htLoadAsync="this.tagRecords$ as tagRecords">
16-
<ht-list-view [records]="tagRecords" data-sensitive-pii
17-
><div class="tag-value" *htListViewValueRenderer="let record">
16+
<ht-list-view [records]="tagRecords" data-sensitive-pii>
17+
<div class="tag-value" *htListViewValueRenderer="let record">
1818
<div class="value">{{ record.value }}</div>
1919
<ht-explore-filter-link
2020
class="filter-link"
2121
[paramsOrUrl]="this.getExploreNavigationParams | htMemoize: record | async"
2222
htTooltip="See traces in Explorer"
2323
>
24-
</ht-explore-filter-link></div
25-
></ht-list-view>
24+
</ht-explore-filter-link>
25+
</div>
26+
</ht-list-view>
2627
</ng-container>
2728
</div>
2829
`

0 commit comments

Comments
 (0)