Skip to content
1 change: 1 addition & 0 deletions packages/angular/common/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

export * from './providers/modal';
export * from './providers/toast';
export * from './providers/message';
export * from './directives/control-value-accessors';
export { DropdownTriggerBaseDirective } from './directives/dropdown-trigger';
export { TreeBaseDirective } from './directives/tree';
Expand Down
10 changes: 10 additions & 0 deletions packages/angular/common/src/providers/message/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/*
* SPDX-FileCopyrightText: 2025 Siemens AG
*
* SPDX-License-Identifier: MIT
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

export { MessageService } from './message.service';
106 changes: 106 additions & 0 deletions packages/angular/common/src/providers/message/message.service.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
import { Injectable } from '@angular/core';
import { MessageConfig, showMessage, TypedEvent } from '@siemens/ix';

@Injectable({
providedIn: 'root',
})
export class MessageService {
public showMessage<T>(config: MessageConfig<T>): Promise<
TypedEvent<{
actionId: string;
payload: T;
}>
> {
return showMessage(config);
}

public info(
title: string,
message: string,
textOkay: string,
textCancel?: string,
payloadOkay?: any,
payloadCancel?: any
) {
return showMessage.info(
title,
message,
textOkay,
textCancel,
payloadOkay,
payloadCancel
);
}

public warning(
title: string,
message: string,
textOkay: string,
textCancel?: string,
payloadOkay?: any,
payloadCancel?: any
) {
return showMessage.warning(
title,
message,
textOkay,
textCancel,
payloadOkay,
payloadCancel
);
}

public error(
title: string,
message: string,
textOkay: string,
textCancel?: string,
payloadOkay?: any,
payloadCancel?: any
) {
return showMessage.error(
title,
message,
textOkay,
textCancel,
payloadOkay,
payloadCancel
);
}

public success(
title: string,
message: string,
textOkay: string,
textCancel?: string,
payloadOkay?: any,
payloadCancel?: any
) {
return showMessage.success(
title,
message,
textOkay,
textCancel,
payloadOkay,
payloadCancel
);
}

question(
title: string,
message: string,
textOkay: string,
textCancel?: string,
payloadOkay?: any,
payloadCancel?: any
) {
return showMessage.question(
title,
message,
textOkay,
textCancel,
payloadOkay,
payloadCancel
);
}
}
6 changes: 5 additions & 1 deletion packages/angular/common/src/providers/modal/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,9 @@
*/

export { IxActiveModal } from './modal-ref';
export { ModalContext, ModalService } from './modal.service';
export {
ModalContext,
ModalService,
ModalLoadingContext,
} from './modal.service';
export { ModalConfig } from './modal.config';
16 changes: 15 additions & 1 deletion packages/angular/common/src/providers/modal/modal.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,12 @@ import {
Type,
ViewRef,
} from '@angular/core';
import { closeModal, dismissModal, showModal } from '@siemens/ix';
import {
closeModal,
dismissModal,
showModal,
showModalLoading,
} from '@siemens/ix';
import { InternalIxActiveModal, IxActiveModal } from './modal-ref';
import { ModalConfig } from './modal.config';

Expand All @@ -26,6 +31,11 @@ export type ModalContext<T> = {
data?: T;
};

export type ModalLoadingContext = {
update: (text: string) => string;
finish: (text?: string, timeout?: number) => void;
};

@Injectable({
providedIn: 'root',
})
Expand Down Expand Up @@ -71,6 +81,10 @@ export class ModalService {
return modalInstance;
}

public showModalLoading(message: string): ModalLoadingContext {
return showModalLoading(message);
}

private async createContentByComponentType<TData = any, TReason = any>(
componentType: Type<unknown>,
config: ModalConfig<TData>,
Expand Down
1 change: 1 addition & 0 deletions packages/angular/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ export {
ModalContext,
} from './providers/modal';
export { ToastConfig, ToastService } from './providers/toast';
export { MessageService } from './providers/message';
export * from './directives/control-value-accessors';
export { IxDropdownTriggerDirective } from './directives/dropdown-trigger';
export * from './module';
2 changes: 2 additions & 0 deletions packages/angular/src/module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import { DIRECTIVES } from './declare-components';
import { IxIcon } from './ix-icon';
import { ModalService } from './providers/modal';
import { ToastService } from './providers/toast';
import { MessageService } from './providers/message';
import * as tree from './tree';
import { IxDropdownTriggerDirective } from './directives/dropdown-trigger';
import { IxSelectValueAccessorDirective } from './directives/control-value-accessors/select-value-accessor';
Expand Down Expand Up @@ -56,6 +57,7 @@ export class IxModule {
},
ModalService,
ToastService,
MessageService,
],
};
}
Expand Down
1 change: 1 addition & 0 deletions packages/angular/src/providers/message/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { MessageService } from './message.service';
125 changes: 125 additions & 0 deletions packages/angular/src/providers/message/message.service.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
import { Injectable } from '@angular/core';
import { MessageConfig, TypedEvent } from '@siemens/ix';
import { MessageService as BaseMessageService } from '@siemens/ix-angular/common';

@Injectable({
providedIn: 'root',
})
export class MessageService extends BaseMessageService {
/**
* Show a message based on MessageConfig
*/
public override showMessage<T>(config: MessageConfig<T>): Promise<
TypedEvent<{
actionId: string;
payload: T;
}>
> {
return super.showMessage(config);
}

/**
* Show an info message
*/
public override info(
title: string,
message: string,
textOkay: string,
textCancel?: string,
payloadOkay?: any,
payloadCancel?: any
) {
return super.info(
title,
message,
textOkay,
textCancel,
payloadOkay,
payloadCancel
);
}

/**
* Show a warning message
*/
public override warning(
title: string,
message: string,
textOkay: string,
textCancel?: string,
payloadOkay?: any,
payloadCancel?: any
) {
return super.warning(
title,
message,
textOkay,
textCancel,
payloadOkay,
payloadCancel
);
}

/**
* Show an error message
*/
public override error(
title: string,
message: string,
textOkay: string,
textCancel?: string,
payloadOkay?: any,
payloadCancel?: any
) {
return super.error(
title,
message,
textOkay,
textCancel,
payloadOkay,
payloadCancel
);
}

/**
* Show a success message
*/
public override success(
title: string,
message: string,
textOkay: string,
textCancel?: string,
payloadOkay?: any,
payloadCancel?: any
) {
return super.success(
title,
message,
textOkay,
textCancel,
payloadOkay,
payloadCancel
);
}

/**
* Show a question message
*/
public override question(
title: string,
message: string,
textOkay: string,
textCancel?: string,
payloadOkay?: any,
payloadCancel?: any
) {
return super.question(
title,
message,
textOkay,
textCancel,
payloadOkay,
payloadCancel
);
}
}
5 changes: 5 additions & 0 deletions packages/angular/src/providers/modal/modal.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import { ModalInstance } from '@siemens/ix';
import {
ModalConfig,
ModalService as BaseModalService,
ModalLoadingContext,
} from '@siemens/ix-angular/common';

export type ModalContext<T> = {
Expand Down Expand Up @@ -48,4 +49,8 @@ export class ModalService extends BaseModalService {
): void {
super.close(instance, reason);
}

public override showModalLoading(message: string): ModalLoadingContext {
return super.showModalLoading(message);
}
}
1 change: 1 addition & 0 deletions packages/angular/standalone/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ export { IxIcon } from './ix-icon';
export { IxTree } from './tree';
export * from './providers/modal';
export * from './providers/toast';
export * from './providers/message';
export * from './directives/control-value-accessors';
export { IxDropdownTriggerDirective } from './directives/dropdown-trigger';
export { IxValueAccessorDirectives } from './utils/value-accessor-directives';
Loading
Loading