diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/checkbox/checkbox.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/checkbox/checkbox.component.ts
index 9f10b2317f..a63cd5a847 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/components/checkbox/checkbox.component.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/components/checkbox/checkbox.component.ts
@@ -3,6 +3,7 @@ import { Component, EventEmitter, forwardRef, Injector, Input, Output } from '@a
import { NG_VALUE_ACCESSOR } from '@angular/forms';
@Component({
+ standalone: false,
selector: 'abp-checkbox',
template: `
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/confirmation/confirmation.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/confirmation/confirmation.component.ts
index 13c857901c..493ca44b6b 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/components/confirmation/confirmation.component.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/components/confirmation/confirmation.component.ts
@@ -4,6 +4,7 @@ import { Confirmation } from '../../models/confirmation';
import { CONFIRMATION_ICONS, ConfirmationIcons } from '../../tokens/confirmation-icons.token';
@Component({
+ standalone: false,
selector: 'abp-confirmation',
templateUrl: './confirmation.component.html',
styleUrls: ['./confirmation.component.scss'],
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/form-input/form-input.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/form-input/form-input.component.ts
index fd5f579b5d..ab840d29dc 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/components/form-input/form-input.component.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/components/form-input/form-input.component.ts
@@ -3,6 +3,7 @@ import { Component, EventEmitter, forwardRef, Injector, Input, Output } from '@a
import { NG_VALUE_ACCESSOR } from '@angular/forms';
@Component({
+ standalone: false,
selector: 'abp-form-input',
template: `
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/http-error-wrapper/http-error-wrapper.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/http-error-wrapper/http-error-wrapper.component.ts
index 9f2c24915d..f45be25d1e 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/components/http-error-wrapper/http-error-wrapper.component.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/components/http-error-wrapper/http-error-wrapper.component.ts
@@ -22,6 +22,7 @@ import { LocalizationParam } from '@abp/ng.core';
import { ErrorScreenErrorCodes } from '../../models';
@Component({
+ standalone: false,
selector: 'abp-http-error-wrapper',
templateUrl: './http-error-wrapper.component.html',
styleUrls: ['http-error-wrapper.component.scss'],
@@ -72,7 +73,7 @@ export class HttpErrorWrapperComponent implements OnInit, AfterViewInit, OnDestr
});
customComponentRef.instance.errorStatus = this.status;
-
+
//In our custom "HttpErrorComponent", we have a "status" property.
//We used to have "errorStatus", but it wasn't signal type. "status" variable is signal type.
//I've checked because of backward compatibility. Developers might have their own custom HttpErrorComponent.
@@ -80,7 +81,7 @@ export class HttpErrorWrapperComponent implements OnInit, AfterViewInit, OnDestr
if (customComponentRef.instance.status) {
customComponentRef.instance.status.set(this.status);
}
-
+
customComponentRef.instance.destroy$ = this.destroy$;
this.appRef.attachView(customComponentRef.hostView);
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/internet-connection-status/internet-connection-status.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/internet-connection-status/internet-connection-status.component.ts
index 9c59947891..04f5a9a5ab 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/components/internet-connection-status/internet-connection-status.component.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/components/internet-connection-status/internet-connection-status.component.ts
@@ -4,7 +4,6 @@ import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';
@Component({
selector: 'abp-internet-status',
- standalone: true,
imports: [LocalizationModule, NgbTooltip],
template: `
@if (!isOnline()) {
@@ -12,7 +11,7 @@ import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/loader-bar/loader-bar.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/loader-bar/loader-bar.component.ts
index 9d0446c1b1..51aebfdee6 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/components/loader-bar/loader-bar.component.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/components/loader-bar/loader-bar.component.ts
@@ -4,6 +4,7 @@ import { Router } from '@angular/router';
import { combineLatest, Subscription, timer } from 'rxjs';
@Component({
+ standalone: false,
selector: 'abp-loader-bar',
template: `
@@ -13,7 +14,7 @@ import { combineLatest, Subscription, timer } from 'rxjs';
[style.width.vw]="progressLevel"
[ngStyle]="{
'background-color': color,
- 'box-shadow': boxShadow
+ 'box-shadow': boxShadow,
}"
>
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/loading/loading.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/loading/loading.component.ts
index 7aa6673553..56990be1bc 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/components/loading/loading.component.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/components/loading/loading.component.ts
@@ -1,6 +1,7 @@
import { Component, ViewEncapsulation } from '@angular/core';
@Component({
+ standalone: false,
selector: 'abp-loading',
template: `
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal-close.directive.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal-close.directive.ts
index 97d6b14fb9..8b50174fd9 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal-close.directive.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal-close.directive.ts
@@ -1,7 +1,10 @@
import { Directive, HostListener, Optional } from '@angular/core';
import { ModalComponent } from './modal.component';
-@Directive({ selector: '[abpClose]' })
+@Directive({
+ standalone: false,
+ selector: '[abpClose]',
+})
export class ModalCloseDirective {
constructor(@Optional() private modal: ModalComponent) {
if (!modal) {
@@ -13,4 +16,4 @@ export class ModalCloseDirective {
onClick() {
this.modal?.close();
}
-}
\ No newline at end of file
+}
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.ts
index 68b355ebe5..30c802e387 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.ts
@@ -26,6 +26,7 @@ import { DismissableModal, ModalDismissMode, ModalRefService } from './modal-ref
export type ModalSize = 'sm' | 'md' | 'lg' | 'xl';
@Component({
+ standalone: false,
selector: 'abp-modal',
templateUrl: './modal.component.html',
styleUrls: ['./modal.component.scss'],
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/password/password.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/password/password.component.ts
index 05ca59f093..cfdc080f5b 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/components/password/password.component.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/components/password/password.component.ts
@@ -4,12 +4,11 @@ import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
import { CommonModule } from '@angular/common';
/**
- * @deprecated use ShowPasswordDirective directive
+ * @deprecated use ShowPasswordDirective directive
* https://abp.io/docs/latest/framework/ui/angular/show-password-directive
*/
@Component({
selector: 'abp-password',
- standalone: true,
imports: [CommonModule, FormsModule],
templateUrl: `./password.component.html`,
providers: [
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/toast-container/toast-container.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/toast-container/toast-container.component.ts
index 3551ff1535..4703a41c17 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/components/toast-container/toast-container.component.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/components/toast-container/toast-container.component.ts
@@ -4,6 +4,7 @@ import { toastInOut } from '../../animations/toast.animations';
import { Toaster } from '../../models/toaster';
@Component({
+ standalone: false,
selector: 'abp-toast-container',
templateUrl: './toast-container.component.html',
styleUrls: ['./toast-container.component.scss'],
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/toast/toast.component.scss b/npm/ng-packs/packages/theme-shared/src/lib/components/toast/toast.component.scss
index b4be48fb95..cf1b155427 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/components/toast/toast.component.scss
+++ b/npm/ng-packs/packages/theme-shared/src/lib/components/toast/toast.component.scss
@@ -1,11 +1,13 @@
+@use 'sass:color';
+
@mixin fillColor($background, $color) {
border: 2px solid $background;
background-color: $background;
color: $color;
box-shadow: 0 0 10px -5px rgba(#000, 0.4);
&:hover {
- border: 2px solid darken($background, 5);
- background-color: darken($background, 5);
+ border: 2px solid color.scale($background, $lightness: -5%);
+ background-color: color.scale($background, $lightness: -5%);
box-shadow: 0 0 15px -5px rgba(#000, 0.4);
}
}
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/toast/toast.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/toast/toast.component.ts
index b528d490a4..d76790bf54 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/components/toast/toast.component.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/components/toast/toast.component.ts
@@ -1,6 +1,7 @@
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
import { Toaster } from '../../models/toaster';
@Component({
+ standalone: false,
selector: 'abp-toast',
templateUrl: './toast.component.html',
styleUrls: ['./toast.component.scss'],
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/directives/loading.directive.ts b/npm/ng-packs/packages/theme-shared/src/lib/directives/loading.directive.ts
index d79a4cc698..e20ef4fa02 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/directives/loading.directive.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/directives/loading.directive.ts
@@ -16,7 +16,10 @@ import { Subscription, timer } from 'rxjs';
import { take } from 'rxjs/operators';
import { LoadingComponent } from '../components/loading/loading.component';
-@Directive({ selector: '[abpLoading]' })
+@Directive({
+ standalone: false,
+ selector: '[abpLoading]',
+})
export class LoadingDirective implements OnInit, OnDestroy {
private _loading!: boolean;
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/providers/ng-bootstrap-config.provider.ts b/npm/ng-packs/packages/theme-shared/src/lib/providers/ng-bootstrap-config.provider.ts
index be60e9b2f6..7b17d2c857 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/providers/ng-bootstrap-config.provider.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/providers/ng-bootstrap-config.provider.ts
@@ -1,13 +1,14 @@
-import { APP_INITIALIZER } from '@angular/core';
+import { inject, provideAppInitializer } from '@angular/core';
import { NgbInputDatepickerConfig, NgbTypeaheadConfig } from '@ng-bootstrap/ng-bootstrap';
export const NG_BOOTSTRAP_CONFIG_PROVIDERS = [
- {
- provide: APP_INITIALIZER,
- useFactory: configureNgBootstrap,
- deps: [NgbInputDatepickerConfig, NgbTypeaheadConfig],
- multi: true,
- },
+ provideAppInitializer(() => {
+ const initializerFn = configureNgBootstrap(
+ inject(NgbInputDatepickerConfig),
+ inject(NgbTypeaheadConfig),
+ );
+ return initializerFn();
+ }),
];
export function configureNgBootstrap(
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/providers/route.provider.ts b/npm/ng-packs/packages/theme-shared/src/lib/providers/route.provider.ts
index 577d688c4e..3938c44a40 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/providers/route.provider.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/providers/route.provider.ts
@@ -1,9 +1,12 @@
import { RoutesService } from '@abp/ng.core';
-import { APP_INITIALIZER } from '@angular/core';
+import { inject, provideAppInitializer } from '@angular/core';
import { eThemeSharedRouteNames } from '../enums/route-names';
export const THEME_SHARED_ROUTE_PROVIDERS = [
- { provide: APP_INITIALIZER, useFactory: configureRoutes, deps: [RoutesService], multi: true },
+ provideAppInitializer(() => {
+ const initializerFn = configureRoutes(inject(RoutesService));
+ return initializerFn();
+ }),
];
export function configureRoutes(routesService: RoutesService) {
diff --git a/npm/ng-packs/packages/theme-shared/src/lib/providers/theme-shared-config.provider.ts b/npm/ng-packs/packages/theme-shared/src/lib/providers/theme-shared-config.provider.ts
index ad29327e18..75eb2b3017 100644
--- a/npm/ng-packs/packages/theme-shared/src/lib/providers/theme-shared-config.provider.ts
+++ b/npm/ng-packs/packages/theme-shared/src/lib/providers/theme-shared-config.provider.ts
@@ -1,4 +1,4 @@
-import { APP_INITIALIZER, Provider, makeEnvironmentProviders } from '@angular/core';
+import { Provider, makeEnvironmentProviders, inject, provideAppInitializer } from '@angular/core';
import { noop } from '@abp/ng.core';
import { NgbDateParserFormatter } from '@ng-bootstrap/ng-bootstrap';
import {
@@ -110,19 +110,14 @@ export function withConfirmationIcon(
export function provideAbpThemeShared(...features: ThemeSharedFeature[]) {
const providers = [
- {
- provide: APP_INITIALIZER,
- multi: true,
- deps: [ErrorHandler],
- useFactory: noop,
- },
+ provideAppInitializer(() => {
+ const initializerFn = noop();
+ inject(ErrorHandler);
+ inject(THEME_SHARED_APPEND_CONTENT);
+ inject(DocumentDirHandlerService);
+ return initializerFn();
+ }),
THEME_SHARED_ROUTE_PROVIDERS,
- {
- provide: APP_INITIALIZER,
- multi: true,
- deps: [THEME_SHARED_APPEND_CONTENT],
- useFactory: noop,
- },
{ provide: HTTP_ERROR_CONFIG, useValue: undefined },
{ provide: NgbDateParserFormatter, useClass: DateParserFormatter },
NG_BOOTSTRAP_CONFIG_PROVIDERS,
@@ -139,12 +134,6 @@ export function provideAbpThemeShared(...features: ThemeSharedFeature