From 56861e745404132b78d19ef8c6ee5a903cdba4e5 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Thu, 26 Dec 2019 16:11:59 +0300 Subject: [PATCH] feat(core): add replaceable template types #2404 --- .../packages/core/src/lib/core.module.ts | 2 +- .../src/lib/models/replaceable-components.ts | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/npm/ng-packs/packages/core/src/lib/core.module.ts b/npm/ng-packs/packages/core/src/lib/core.module.ts index 8a7f9bac57..a3fc08c7e2 100644 --- a/npm/ng-packs/packages/core/src/lib/core.module.ts +++ b/npm/ng-packs/packages/core/src/lib/core.module.ts @@ -48,7 +48,6 @@ import { ReplaceableTemplateDirective } from './directives/replaceable-template. ], declarations: [ ReplaceableRouteContainerComponent, - ReplaceableTemplateContainerComponent, RouterOutletComponent, DynamicLayoutComponent, AutofocusDirective, @@ -62,6 +61,7 @@ import { ReplaceableTemplateDirective } from './directives/replaceable-template. VisibilityDirective, InputEventDebounceDirective, StopPropagationDirective, + ReplaceableTemplateDirective, AbstractNgModelComponent, ], exports: [ diff --git a/npm/ng-packs/packages/core/src/lib/models/replaceable-components.ts b/npm/ng-packs/packages/core/src/lib/models/replaceable-components.ts index 43e8b83382..fb7e813791 100644 --- a/npm/ng-packs/packages/core/src/lib/models/replaceable-components.ts +++ b/npm/ng-packs/packages/core/src/lib/models/replaceable-components.ts @@ -1,4 +1,5 @@ import { Type } from '@angular/core'; +import { ABP } from './common'; export namespace ReplaceableComponents { export interface State { @@ -9,4 +10,23 @@ export namespace ReplaceableComponents { component: Type; key: string; } + + export interface ReplaceableTemplateData { + inputs: ReplaceableTemplateInputs; + outputs: ReplaceableTemplateOutputs; + componentKey: string; + } + + export type ReplaceableTemplateInputs = { + [K in keyof T]: T[K]; + }; + + export type ReplaceableTemplateOutputs = { + [K in keyof T]: (value: ABP.ExtractFromGeneric) => void; + }; + + export interface RouteData { + key: string; + defaultComponent: Type; + } }