diff --git a/src/Umbraco.Web.UI.Client/src/libs/class-api/class.interface.ts b/src/Umbraco.Web.UI.Client/src/libs/class-api/class.interface.ts index 9e5de261c0..3b64fbea4a 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/class-api/class.interface.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/class-api/class.interface.ts @@ -16,8 +16,8 @@ export interface UmbClassMixinInterface extends UmbControllerHost, UmbController unique?: string ): UmbObserverController; provideContext(alias: string | UmbContextToken, instance: R): UmbContextProviderController; - consumeContext( - alias: string | UmbContextToken, + consumeContext( + alias: string | UmbContextToken, callback: UmbContextCallback - ): UmbContextConsumerController; + ): UmbContextConsumerController; } diff --git a/src/Umbraco.Web.UI.Client/src/libs/class-api/class.mixin.ts b/src/Umbraco.Web.UI.Client/src/libs/class-api/class.mixin.ts index 90e8615139..992bdc968d 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/class-api/class.mixin.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/class-api/class.mixin.ts @@ -29,14 +29,13 @@ declare class UmbClassMixinDeclaration implements UmbClassMixinInterface { ): UmbObserverController; provideContext< BaseType = unknown, - DiscriminatedType extends BaseType = never, ResultType extends BaseType = BaseType, InstanceType extends ResultType = ResultType - >(alias: string | UmbContextToken, instance: InstanceType): UmbContextProviderController; - consumeContext( - alias: string | UmbContextToken, + >(alias: string | UmbContextToken, instance: InstanceType): UmbContextProviderController; + consumeContext( + alias: string | UmbContextToken, callback: UmbContextCallback - ): UmbContextConsumerController; + ): UmbContextConsumerController; hasController(controller: UmbController): boolean; getControllers(filterMethod: (ctrl: UmbController) => boolean): UmbController[]; addController(controller: UmbController): void; @@ -90,15 +89,14 @@ export const UmbClassMixin = (superClass: T) => { provideContext < BaseType = unknown, - DiscriminatedType extends BaseType = never, - ResultType extends BaseType = keyof DiscriminatedType extends BaseType ? DiscriminatedType : BaseType, + ResultType extends BaseType = BaseType, InstanceType extends ResultType = ResultType > ( - contextAlias: string | UmbContextToken, + contextAlias: string | UmbContextToken, instance: InstanceType ): UmbContextProviderController { - return new UmbContextProviderController(this, contextAlias, instance); + return new UmbContextProviderController(this, contextAlias, instance); } /** @@ -108,10 +106,10 @@ export const UmbClassMixin = (superClass: T) => { * @return {UmbContextConsumerController} Reference to a Context Consumer Controller instance * @memberof UmbElementMixin */ - consumeContext( - contextAlias: string | UmbContextToken, + consumeContext( + contextAlias: string | UmbContextToken, callback: UmbContextCallback - ): UmbContextConsumerController { + ): UmbContextConsumerController { return new UmbContextConsumerController(this, contextAlias, callback); } } diff --git a/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.controller.ts index 2194903148..4a37a0a406 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.controller.ts @@ -6,9 +6,8 @@ import type { UmbControllerHost, UmbController } from '@umbraco-cms/backoffice/c export class UmbContextConsumerController< BaseType = unknown, - DiscriminatedType extends BaseType = never, - ResultType extends BaseType = keyof DiscriminatedType extends BaseType ? DiscriminatedType : BaseType -> extends UmbContextConsumer implements UmbController { + ResultType extends BaseType = BaseType +> extends UmbContextConsumer implements UmbController { #controllerAlias = Symbol(); #host: UmbControllerHost; @@ -16,7 +15,7 @@ export class UmbContextConsumerController< return this.#controllerAlias; } - constructor(host: UmbControllerHost, contextAlias: string | UmbContextToken, callback: UmbContextCallback) { + constructor(host: UmbControllerHost, contextAlias: string | UmbContextToken, callback: UmbContextCallback) { super(host.getHostElement(), contextAlias, callback); this.#host = host; host.addController(this); diff --git a/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.ts index b50fe5ecfe..31f75bea1f 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-consumer.ts @@ -13,8 +13,7 @@ import { UmbContextRequestEventImplementation, UmbContextCallback } from './cont */ export class UmbContextConsumer< BaseType = unknown, -DiscriminatedType extends BaseType = never, -ResultType extends BaseType = keyof DiscriminatedType extends BaseType ? DiscriminatedType : BaseType> { +ResultType extends BaseType = BaseType> { #callback?: UmbContextCallback; #promise?: Promise; #promiseResolver?: (instance: ResultType) => void; @@ -26,7 +25,7 @@ ResultType extends BaseType = keyof DiscriminatedType extends BaseType ? Discrim #contextAlias: string; - #discriminator?: UmbContextDiscriminator; + #discriminator?: UmbContextDiscriminator; /** * Creates an instance of UmbContextConsumer. @@ -37,7 +36,7 @@ ResultType extends BaseType = keyof DiscriminatedType extends BaseType ? Discrim */ constructor( protected hostElement: EventTarget, - contextAlias: string | UmbContextToken, + contextAlias: string | UmbContextToken, callback?: UmbContextCallback ) { this.#contextAlias = contextAlias.toString(); diff --git a/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-request.event.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-request.event.ts index afd0e772bc..444a788353 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-request.event.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/consume/context-request.event.ts @@ -10,7 +10,7 @@ export type UmbContextCallback = (instance: T) => void; * @interface UmbContextRequestEvent */ export interface UmbContextRequestEvent extends Event { - readonly contextAlias: string | UmbContextToken; + readonly contextAlias: string | UmbContextToken; readonly callback: UmbContextCallback; } @@ -22,7 +22,7 @@ export interface UmbContextRequestEvent extends Event { */ export class UmbContextRequestEventImplementation extends Event implements UmbContextRequestEvent { public constructor( - public readonly contextAlias: string | UmbContextToken, + public readonly contextAlias: string | UmbContextToken, public readonly callback: UmbContextCallback ) { super(umbContextRequestEventType, { bubbles: true, composed: true, cancelable: true }); diff --git a/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.controller.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.controller.ts index 655a32f3ae..9eb834bd44 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.controller.ts @@ -4,17 +4,16 @@ import type { UmbControllerHost, UmbController } from '@umbraco-cms/backoffice/c export class UmbContextProviderController< BaseType = unknown, - DiscriminatedType extends BaseType = never, - ResultType extends BaseType = keyof DiscriminatedType extends BaseType ? DiscriminatedType : BaseType, + ResultType extends BaseType = BaseType, InstanceType extends ResultType = ResultType -> extends UmbContextProvider implements UmbController { +> extends UmbContextProvider implements UmbController { #host: UmbControllerHost; public get controllerAlias() { return this._contextAlias.toString(); } - constructor(host: UmbControllerHost, contextAlias: string | UmbContextToken, instance: InstanceType) { + constructor(host: UmbControllerHost, contextAlias: string | UmbContextToken, instance: InstanceType) { super(host.getHostElement(), contextAlias, instance); this.#host = host; diff --git a/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.ts index b95b1058f6..e506a5e46f 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/provide/context-provider.ts @@ -13,7 +13,7 @@ import { * @export * @class UmbContextProvider */ -export class UmbContextProvider { +export class UmbContextProvider { protected hostElement: EventTarget; protected _contextAlias: string; @@ -35,7 +35,7 @@ export class UmbContextProvider, instance: ResultType) { + constructor(hostElement: EventTarget, contextAlias: string | UmbContextToken, instance: ResultType) { this.hostElement = hostElement; this._contextAlias = contextAlias.toString(); this.#instance = instance; diff --git a/src/Umbraco.Web.UI.Client/src/libs/context-api/token/context-token.ts b/src/Umbraco.Web.UI.Client/src/libs/context-api/token/context-token.ts index 4a6962d744..0ec2b31786 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/context-api/token/context-token.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/context-api/token/context-token.ts @@ -3,10 +3,9 @@ export type UmbContextDiscriminator { +ResultType extends BaseType = BaseType> { - #discriminator: UmbContextDiscriminator | undefined; + #discriminator: UmbContextDiscriminator | undefined; /** * Get the type of the token * @@ -21,11 +20,11 @@ ResultType extends BaseType = keyof DiscriminatedType extends BaseType ? Discrim /** * @param alias Unique identifier for the token */ - constructor(protected alias: string, discriminator?: UmbContextDiscriminator) { + constructor(protected alias: string, discriminator?: UmbContextDiscriminator) { this.#discriminator = discriminator; } - getDiscriminator(): UmbContextDiscriminator | undefined { + getDiscriminator(): UmbContextDiscriminator | undefined { return this.#discriminator; } diff --git a/src/Umbraco.Web.UI.Client/src/libs/element-api/element.mixin.ts b/src/Umbraco.Web.UI.Client/src/libs/element-api/element.mixin.ts index faa2591ce2..3c8934cb41 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/element-api/element.mixin.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/element-api/element.mixin.ts @@ -26,14 +26,13 @@ export declare class UmbElement extends UmbControllerHostElement { ): UmbObserverController; provideContext< BaseType = unknown, - DiscriminatedType extends BaseType = never, ResultType extends BaseType = BaseType, InstanceType extends ResultType = ResultType - >(alias: string | UmbContextToken, instance: InstanceType): UmbContextProviderController; - consumeContext( - alias: string | UmbContextToken, + >(alias: string | UmbContextToken, instance: InstanceType): UmbContextProviderController; + consumeContext( + alias: string | UmbContextToken, callback: UmbContextCallback - ): UmbContextConsumerController; + ): UmbContextConsumerController; } export const UmbElementMixin = (superClass: T) => { @@ -60,11 +59,10 @@ export const UmbElementMixin = (superClass: T) */ provideContext< BaseType = unknown, - DiscriminatedType extends BaseType = never, ResultType extends BaseType = BaseType, InstanceType extends ResultType = ResultType > - (alias: string | UmbContextToken, instance: InstanceType): UmbContextProviderController { + (alias: string | UmbContextToken, instance: InstanceType): UmbContextProviderController { return new UmbContextProviderController(this, alias, instance); } @@ -75,10 +73,10 @@ export const UmbElementMixin = (superClass: T) * @return {UmbContextConsumerController} Reference to a Context Consumer Controller instance * @memberof UmbElementMixin */ - consumeContext( - alias: string | UmbContextToken, + consumeContext( + alias: string | UmbContextToken, callback: UmbContextCallback - ): UmbContextConsumerController { + ): UmbContextConsumerController { return new UmbContextConsumerController(this, alias, callback); } }