rename to interface

This commit is contained in:
Niels Lyngsø
2023-01-02 14:47:46 +01:00
parent 1554123825
commit 382aa914e1
6 changed files with 19 additions and 18 deletions

View File

@@ -1,10 +1,10 @@
import { UmbContextConsumer } from './context-consumer';
import { UmbContextCallback } from './context-request.event';
import type { UmbController } from 'src/core/controller/controller.interface';
import type { UmbControllerInterface } from 'src/core/controller/controller.interface';
import { UmbControllerHostInterface } from 'src/core/controller/controller-host.mixin';
export class UmbContextConsumerController extends UmbContextConsumer implements UmbController {
export class UmbContextConsumerController extends UmbContextConsumer implements UmbControllerInterface {
constructor(host:UmbControllerHostInterface, contextAlias: string, callback: UmbContextCallback) {
super(host, contextAlias, callback);

View File

@@ -1,9 +1,9 @@
import { UmbContextProvider } from './context-provider';
import type { UmbController } from 'src/core/controller/controller.interface';
import type { UmbControllerInterface } from 'src/core/controller/controller.interface';
import { UmbControllerHostInterface } from 'src/core/controller/controller-host.mixin';
export class UmbContextProviderController extends UmbContextProvider implements UmbController {
export class UmbContextProviderController extends UmbContextProvider implements UmbControllerInterface {
constructor(host:UmbControllerHostInterface, contextAlias: string, instance: unknown) {
super(host, contextAlias, instance);

View File

@@ -1,11 +1,11 @@
import type { HTMLElementConstructor } from '../models';
import { UmbController } from './controller.interface';
import { UmbControllerInterface } from './controller.interface';
export declare class UmbControllerHostInterface extends HTMLElement {
//#controllers:UmbController[];
//#attached:boolean;
addController(controller:UmbController): void;
removeController(controller:UmbController): void;
addController(controller:UmbControllerInterface): void;
removeController(controller:UmbControllerInterface): void;
}
/**
@@ -18,15 +18,15 @@ export declare class UmbControllerHostInterface extends HTMLElement {
export const UmbControllerHostMixin = <T extends HTMLElementConstructor>(superClass: T) => {
class UmbContextConsumerClass extends superClass {
#controllers: UmbController[] = [];
#controllers: UmbControllerInterface[] = [];
#attached = false;
/**
* Append a controller to this element.
* @param {UmbController} ctrl
* @param {UmbControllerInterface} ctrl
*/
addController(ctrl: UmbController): void {
addController(ctrl: UmbControllerInterface): void {
this.#controllers.push(ctrl);
if(this.#attached) {
ctrl.hostConnected();
@@ -35,9 +35,9 @@ export const UmbControllerHostMixin = <T extends HTMLElementConstructor>(superCl
/**
* Remove a controller from this element.
* @param {UmbController} ctrl
* @param {UmbControllerInterface} ctrl
*/
removeController(ctrl: UmbController): void {
removeController(ctrl: UmbControllerInterface): void {
const index = this.#controllers.indexOf(ctrl);
if(index !== -1) {
this.#controllers.splice(index, 1);
@@ -50,13 +50,13 @@ export const UmbControllerHostMixin = <T extends HTMLElementConstructor>(superCl
connectedCallback() {
super.connectedCallback?.();
this.#attached = true;
this.#controllers.forEach((ctrl: UmbController) => ctrl.hostConnected());
this.#controllers.forEach((ctrl: UmbControllerInterface) => ctrl.hostConnected());
}
disconnectedCallback() {
super.disconnectedCallback?.();
this.#attached = false;
this.#controllers.forEach((ctrl: UmbController) => ctrl.hostDisconnected());
this.#controllers.forEach((ctrl: UmbControllerInterface) => ctrl.hostDisconnected());
}
}

View File

@@ -1,6 +1,7 @@
import { UmbControllerHostInterface } from "./controller-host.mixin";
import { UmbControllerInterface } from "./controller.interface";
export abstract class UmbController {
export abstract class UmbController implements UmbControllerInterface {
protected _host?: UmbControllerHostInterface

View File

@@ -1,4 +1,4 @@
export interface UmbController {
export interface UmbControllerInterface {
hostConnected(): void;
hostDisconnected(): void;
}

View File

@@ -1,10 +1,10 @@
import { Observable } from 'rxjs';
import { UmbObserver } from './observer';
import type { UmbController } from 'src/core/controller/controller.interface';
import type { UmbControllerInterface } from 'src/core/controller/controller.interface';
import { UmbControllerHostInterface } from 'src/core/controller/controller-host.mixin';
export class UmbObserverController<Y = any> extends UmbObserver<Y> implements UmbController {
export class UmbObserverController<Y = any> extends UmbObserver<Y> implements UmbControllerInterface {
constructor(host:UmbControllerHostInterface, source: Observable<any>, callback: (_value: Y) => void) {
super(source, callback);