Skip to content

Commit

Permalink
feat(components/hint): add passing context as $implicit to templatess #…
Browse files Browse the repository at this point in the history
  • Loading branch information
ZurabDev committed Mar 6, 2024
1 parent 2896063 commit 6929f5a
Show file tree
Hide file tree
Showing 12 changed files with 83 additions and 9 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<button
[prizmHintContext]="{ name: 'Moscow', country: 'Russia' }"
[prizmHint]="dropdown"
type="button"
prizmButton
>
City
</button>

<ng-template #dropdown let-context>
<div>{{ context.name }}</div>
<div>{{ context.country }}</div>
</ng-template>
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { Component } from '@angular/core';

@Component({
selector: 'prizm-hint-with-custom-context-example',
templateUrl: './hint-with-custom-context-example.component.html',
styles: [
`
.box {
display: flex;
gap: 1rem;
}
`,
],
})
export class PrizmHintWithCustomContextExampleComponent {}
4 changes: 4 additions & 0 deletions apps/doc/src/app/components/hint/hint-example.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@
<prizm-hint-with-template-example></prizm-hint-with-template-example>
</prizm-doc-example>

<prizm-doc-example id="with-context" [content]="exampleWithContext" heading="With Context">
<prizm-hint-with-custom-context-example></prizm-hint-with-custom-context-example>
</prizm-doc-example>

<prizm-doc-example id="with-component" [content]="exampleWithComponent" heading="With Component">
<prizm-hint-with-component-example></prizm-hint-with-component-example>
</prizm-doc-example>
Expand Down
4 changes: 4 additions & 0 deletions apps/doc/src/app/components/hint/hint-example.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,10 @@ export class HintExampleComponent {
TypeScript: import('./examples/with-template/hint-with-template-example.component.ts?raw'),
HTML: import('./examples/with-template/hint-with-template-example.component.html?raw'),
};
readonly exampleWithContext: TuiDocExample = {
TypeScript: import('./examples/with-custom-context/hint-with-custom-context-example.component.ts?raw'),
HTML: import('./examples/with-custom-context/hint-with-custom-context-example.component.html?raw'),
};

readonly exampleWithComponent: TuiDocExample = {
TypeScript: import('./examples/with-component/hint-with-component-example.component.ts?raw'),
Expand Down
8 changes: 5 additions & 3 deletions apps/doc/src/app/components/hint/hint-example.module.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { prizmDocGenerateRoutes, PrizmAddonDocModule } from '@prizm-ui/doc';
import { PrizmAddonDocModule, prizmDocGenerateRoutes } from '@prizm-ui/doc';
import { RouterModule } from '@angular/router';
import { PolymorphModule, PrizmButtonModule, PrizmHintModule } from '@prizm-ui/components';
import { PolymorphModule, PrizmButtonModule, PrizmHintDirective } from '@prizm-ui/components';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { HintExampleComponent } from './hint-example.component';
import { PrizmHintWithTemplateExampleComponent } from './examples/with-template/hint-with-template-example.component';
import { PrizmHintWithComponentExampleComponent } from './examples/with-component/hint-with-component-example.component';
import { PrizmHintBaseExampleComponent } from './examples/base/hint-base-example.component';
import { PrizmHintSomeComponent } from './examples/with-component/some.component';
import { PrizmHintChangeThemeExampleComponent } from './examples/change-theme/hint-change-theme-example.component';
import { PrizmHintWithCustomContextExampleComponent } from './examples/with-custom-context/hint-with-custom-context-example.component';

@NgModule({
imports: [
Expand All @@ -18,11 +19,12 @@ import { PrizmHintChangeThemeExampleComponent } from './examples/change-theme/hi
FormsModule,
ReactiveFormsModule,
PolymorphModule,
PrizmHintModule,
PrizmHintDirective,
PrizmButtonModule,
RouterModule.forChild(prizmDocGenerateRoutes(HintExampleComponent)),
],
declarations: [
PrizmHintWithCustomContextExampleComponent,
PrizmHintWithTemplateExampleComponent,
PrizmHintWithComponentExampleComponent,
PrizmHintSomeComponent,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<button
[prizmTooltipContext]="{ name: 'Moscow', country: 'Russia' }"
[prizmTooltip]="dropdown"
type="button"
prizmButton
>
City
</button>

<ng-template #dropdown let-context>
<div>{{ context.name }}</div>
<div>{{ context.country }}</div>
</ng-template>
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { Component } from '@angular/core';

@Component({
selector: 'prizm-tooltip-with-custom-context-example',
templateUrl: './tooltip-with-custom-context-example.component.html',
styles: [
`
.box {
display: flex;
gap: 1rem;
}
`,
],
})
export class PrizmTooltipWithCustomContextExampleComponent {}
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@
<prizm-tooltip-with-template-example></prizm-tooltip-with-template-example>
</prizm-doc-example>

<prizm-doc-example id="with-custom-context" [content]="exampleWithContext" heading="With Context">
<prizm-tooltip-with-custom-context-example></prizm-tooltip-with-custom-context-example>
</prizm-doc-example>

<prizm-doc-example id="with-component" [content]="exampleWithComponent" heading="With Component">
<prizm-tooltip-with-component-example></prizm-tooltip-with-component-example>
</prizm-doc-example>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,11 @@ export class TooltipExampleComponent {
HTML: import('./examples/with-template/tooltip-with-template-example.component.html?raw'),
};

readonly exampleWithContext: TuiDocExample = {
TypeScript: import('./examples/with-custom-context/tooltip-with-custom-context-example.component.ts?raw'),
HTML: import('./examples/with-custom-context/tooltip-with-custom-context-example.component.html?raw'),
};

readonly exampleWithComponent: TuiDocExample = {
TypeScript: import('./examples/with-component/tooltip-with-component-example.component.ts?raw'),
HTML: import('./examples/with-component/tooltip-with-component-example.component.html?raw'),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { prizmDocGenerateRoutes, PrizmAddonDocModule } from '@prizm-ui/doc';
import { PrizmAddonDocModule, prizmDocGenerateRoutes } from '@prizm-ui/doc';
import { RouterModule } from '@angular/router';
import { PolymorphModule, PrizmButtonModule, PrizmTooltipModule } from '@prizm-ui/components';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
Expand All @@ -9,6 +9,7 @@ import { PrizmTooltipWithTemplateExampleComponent } from './examples/with-templa
import { PrizmTooltipWithComponentExampleComponent } from './examples/with-component/tooltip-with-component-example.component';
import { PrizmTooltipBaseExampleComponent } from './examples/base/tooltip-base-example.component';
import { PrizmTooltipSomeComponent } from './examples/with-component/some.component';
import { PrizmTooltipWithCustomContextExampleComponent } from './examples/with-custom-context/tooltip-with-custom-context-example.component';

@NgModule({
imports: [
Expand All @@ -22,6 +23,7 @@ import { PrizmTooltipSomeComponent } from './examples/with-component/some.compon
RouterModule.forChild(prizmDocGenerateRoutes(TooltipExampleComponent)),
],
declarations: [
PrizmTooltipWithCustomContextExampleComponent,
PrizmTooltipWithTemplateExampleComponent,
PrizmTooltipWithComponentExampleComponent,
PrizmTooltipSomeComponent,
Expand Down
1 change: 1 addition & 0 deletions libs/components/src/lib/directives/hint/hint-options.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ export interface PrizmHintContext {
hideDelay: number;
host: HTMLElement;
context?: Record<string, unknown>;
$implicit?: Record<string, unknown>;
}

/** Default values for hint options */
Expand Down
6 changes: 1 addition & 5 deletions libs/components/src/lib/directives/hint/hint.directive.ts
Original file line number Diff line number Diff line change
Expand Up @@ -226,11 +226,6 @@ export class PrizmHintDirective<
map(([thisHovered, containerHovered]) => {
return thisHovered || containerHovered;
}),
// filter(
// () => {
// this
// }
// ),
tap(hovered => this.show$.next(hovered)),
takeUntil(this.destroyListeners$),
takeUntil(this.destroy$)
Expand All @@ -248,6 +243,7 @@ export class PrizmHintDirective<
hideDelay: this.prizmHintHideDelay,
host: this.host,
context: this.prizmHintContext,
$implicit: this.prizmHintContext,
} as CONTEXT;
}
}

0 comments on commit 6929f5a

Please sign in to comment.