diff --git a/src/app/modules/layout/admin-layout/admin-layout.component.html b/src/app/modules/layout/admin-layout/admin-layout.component.html
index 406661ac52d..c8b80e309f6 100644
--- a/src/app/modules/layout/admin-layout/admin-layout.component.html
+++ b/src/app/modules/layout/admin-layout/admin-layout.component.html
@@ -102,5 +102,4 @@
-
diff --git a/src/app/modules/layout/admin-layout/admin-layout.component.ts b/src/app/modules/layout/admin-layout/admin-layout.component.ts
index 3f3148237af..ae91b101d34 100644
--- a/src/app/modules/layout/admin-layout/admin-layout.component.ts
+++ b/src/app/modules/layout/admin-layout/admin-layout.component.ts
@@ -34,7 +34,6 @@ import { SidenavService } from 'app/modules/layout/sidenav.service';
import { TopbarComponent } from 'app/modules/layout/topbar/topbar.component';
import { DefaultPageHeaderComponent } from 'app/modules/page-header/default-page-header/default-page-header.component';
import { SlideInControllerComponent } from 'app/modules/slide-ins/components/slide-in-controller/slide-in-controller.component';
-import { OldSlideInComponent } from 'app/modules/slide-ins/old-slide-in.component';
import { TestDirective } from 'app/modules/test-id/test.directive';
import { ThemeService } from 'app/modules/theme/theme.service';
import { SentryService } from 'app/services/sentry.service';
@@ -66,7 +65,6 @@ import { selectCopyrightText, selectIsEnterprise, waitForSystemInfo } from 'app/
ConsoleFooterComponent,
AlertsPanelComponent,
SlideInControllerComponent,
- OldSlideInComponent,
AsyncPipe,
TranslateModule,
TestDirective,
diff --git a/src/app/modules/slide-ins/components/modal-header/modal-header.component.scss b/src/app/modules/slide-ins/components/modal-header/modal-header.component.scss
index 96e87082e25..054402ace1a 100644
--- a/src/app/modules/slide-ins/components/modal-header/modal-header.component.scss
+++ b/src/app/modules/slide-ins/components/modal-header/modal-header.component.scss
@@ -25,18 +25,6 @@
.ix-form-title {
color: var(--fg1);
word-break: break-all;
-
- // TODO: Remove this when we finish with Slide In Migration
- &::after {
- background-color: var(--primary);
- border-radius: 50%;
- content: '';
- display: inline-block;
- height: 6px;
- margin-left: 6px;
- vertical-align: middle;
- width: 6px;
- }
}
#ix-close-icon {
diff --git a/src/app/modules/slide-ins/components/old-modal-header/old-modal-header.component.html b/src/app/modules/slide-ins/components/old-modal-header/old-modal-header.component.html
deleted file mode 100644
index 62be07d2edd..00000000000
--- a/src/app/modules/slide-ins/components/old-modal-header/old-modal-header.component.html
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
- @if (!disableClose()) {
-
- }
-
-
-@if (loading()) {
-
-}
diff --git a/src/app/modules/slide-ins/components/old-modal-header/old-modal-header.component.scss b/src/app/modules/slide-ins/components/old-modal-header/old-modal-header.component.scss
deleted file mode 100644
index 036b7b239bd..00000000000
--- a/src/app/modules/slide-ins/components/old-modal-header/old-modal-header.component.scss
+++ /dev/null
@@ -1,41 +0,0 @@
-:host {
- display: block;
- position: sticky;
- top: 0;
- width: 100%;
- z-index: 20000;
-}
-
-.ix-slidein-title-bar {
- align-items: center;
- background-color: var(--bg2);
- border-bottom: 2px solid var(--lines);
- display: flex;
- height: 75px;
- margin: 0 -20px;
- padding: 0 30px;
- place-content: center space-between;
-}
-
-.ix-formtitle {
- color: var(--fg1);
- word-break: break-all;
-}
-
-#ix-close-icon {
- color: var(--fg1);
- cursor: pointer;
-
- &:focus {
- border-radius: 50%;
- outline: 1.5px solid var(--primary);
- }
-}
-
-mat-progress-bar {
- bottom: 0;
- left: -20px;
- position: absolute;
- width: calc(100% + 40px);
- z-index: 10005;
-}
diff --git a/src/app/modules/slide-ins/components/old-modal-header/old-modal-header.component.ts b/src/app/modules/slide-ins/components/old-modal-header/old-modal-header.component.ts
deleted file mode 100644
index bebef78edee..00000000000
--- a/src/app/modules/slide-ins/components/old-modal-header/old-modal-header.component.ts
+++ /dev/null
@@ -1,46 +0,0 @@
-import { AsyncPipe } from '@angular/common';
-import {
- ChangeDetectionStrategy, Component, computed, input,
-} from '@angular/core';
-import { MatProgressBar } from '@angular/material/progress-bar';
-import { TranslateModule } from '@ngx-translate/core';
-import { Role } from 'app/enums/role.enum';
-import { AuthService } from 'app/modules/auth/auth.service';
-import { ReadOnlyComponent } from 'app/modules/forms/ix-forms/components/readonly-badge/readonly-badge.component';
-import { IxIconComponent } from 'app/modules/ix-icon/ix-icon.component';
-import { OldSlideInRef } from 'app/modules/slide-ins/old-slide-in-ref';
-
-/**
- * @deprecated Use SlideIn and ix-modal-header.
- */
-@Component({
- selector: 'ix-old-modal-header',
- templateUrl: './old-modal-header.component.html',
- styleUrls: ['./old-modal-header.component.scss'],
- changeDetection: ChangeDetectionStrategy.OnPush,
- standalone: true,
- imports: [
- ReadOnlyComponent,
- IxIconComponent,
- MatProgressBar,
- AsyncPipe,
- TranslateModule,
- ],
-})
-export class OldModalHeaderComponent {
- readonly title = input();
- readonly loading = input();
- readonly disableClose = input(false);
- readonly requiredRoles = input([]);
-
- readonly hasRequiredRoles = computed(() => this.authService.hasRole(this.requiredRoles()));
-
- constructor(
- private slideInRef: OldSlideInRef,
- private authService: AuthService,
- ) {}
-
- close(): void {
- this.slideInRef.close();
- }
-}
diff --git a/src/app/modules/slide-ins/old-slide-in-ref.ts b/src/app/modules/slide-ins/old-slide-in-ref.ts
deleted file mode 100644
index 8c9d0131249..00000000000
--- a/src/app/modules/slide-ins/old-slide-in-ref.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { ComponentRef } from '@angular/core';
-import { Subject } from 'rxjs';
-
-/**
- * @deprecated Use `SlideIn` and `SlideInRef` instead.
- */
-export class OldSlideInRef {
- readonly slideInClosed$ = new Subject();
- componentRef: ComponentRef;
- id: string;
-
- get componentInstance(): T {
- return this.componentRef.instance;
- }
-
- close(response?: D): void {
- this.slideInClosed$.next(response);
- this.slideInClosed$.complete();
- }
-}
diff --git a/src/app/modules/slide-ins/old-slide-in.component.html b/src/app/modules/slide-ins/old-slide-in.component.html
deleted file mode 100644
index 8b3993a4af4..00000000000
--- a/src/app/modules/slide-ins/old-slide-in.component.html
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
diff --git a/src/app/modules/slide-ins/old-slide-in.component.scss b/src/app/modules/slide-ins/old-slide-in.component.scss
deleted file mode 100644
index 672b3c8c8e7..00000000000
--- a/src/app/modules/slide-ins/old-slide-in.component.scss
+++ /dev/null
@@ -1,79 +0,0 @@
-@import 'scss-imports/cssvars';
-
-/* MODAL STYLES
--------------------------------*/
-
-.ix-slide-in-form {
- bottom: 0;
- min-width: 480px;
-
- /* enables scrolling for tall modals */
- overflow: auto;
- position: fixed;
- right: -480px;
- top: 48px;
- transition: 200ms;
- width: 480px;
-
- /* z-index must be higher than .ix-slide-in-background */
- /* ...but less than 1000 otherwise you cover select */
- z-index: 999;
-}
-
-.ix-slide-in-form.open {
- overflow-x: hidden;
- overflow-y: auto;
- right: 0;
- transition: 200ms;
-}
-
-.ix-slide-in-form.open.wide {
- width: 800px;
-
- @media(max-width: $breakpoint-sm) {
- width: 100%;
- }
-}
-
-.ix-slide-in-body {
- background: #fff;
-
- /* margin exposes part of the modal background */
- margin: 40px;
- padding: 0 20px 20px;
-}
-
-.ix-slide-in-form .ix-slide-in-body {
- background-color: var(--bg2);
- margin: 0;
- min-height: 100%;
-}
-
-.ix-slide-in-background {
- /* semi-transparent black */
- background-color: #000;
- bottom: 0;
- left: 0;
- opacity: 0.75;
- /* modal background fixed across whole screen */
- position: fixed;
- right: 0;
- top: 48px;
- transition: 100ms;
-
- /* z-index must be below .ix-slide-in and above everything else */
- z-index: -10;
-}
-
-.ix-slide-in-background.open {
- transition: 200ms;
- z-index: 900;
-}
-
-@media #{$media-lt-sm} {
- .ix-slide-in-form {
- min-width: 100%;
- right: -100%;
- width: 100%;
- }
-}
diff --git a/src/app/modules/slide-ins/old-slide-in.component.spec.ts b/src/app/modules/slide-ins/old-slide-in.component.spec.ts
deleted file mode 100644
index 60fa3d13eb5..00000000000
--- a/src/app/modules/slide-ins/old-slide-in.component.spec.ts
+++ /dev/null
@@ -1,68 +0,0 @@
-import { A11yModule } from '@angular/cdk/a11y';
-import {
- ChangeDetectionStrategy,
- Component, ElementRef, Inject,
-} from '@angular/core';
-import { fakeAsync } from '@angular/core/testing';
-import { createComponentFactory, mockProvider, Spectator } from '@ngneat/spectator/jest';
-import { OldSlideInComponent } from 'app/modules/slide-ins/old-slide-in.component';
-import { SLIDE_IN_DATA } from 'app/modules/slide-ins/slide-in.token';
-
-/** Simple component for testing IxSlideInComponent */
-@Component({
- selector: 'ix-test',
- template: '{{text}}
',
- standalone: true,
- changeDetection: ChangeDetectionStrategy.OnPush,
-})
-class TestClassComponent {
- text: string;
- constructor(
- @Inject(SLIDE_IN_DATA) value: string,
- ) {
- this.text = value;
- }
-}
-
-describe('SlideInComponent', () => {
- let spectator: Spectator;
-
- const createComponent = createComponentFactory({
- component: OldSlideInComponent,
- imports: [
- A11yModule,
- TestClassComponent,
- ],
- providers: [
- mockProvider(ElementRef, {
- nativeElement: {} as HTMLElement,
- }),
-
- ],
- });
-
- beforeEach(() => {
- spectator = createComponent();
- spectator.inject(ElementRef);
- });
-
- it('call \'openSlideIn\' should create a host element in the body of the slide', () => {
- spectator.component.openSlideIn(TestClassComponent, { wide: true, data: 'Component created dynamically' });
- const dynamicElement = (spectator.debugElement.nativeElement as Element).querySelector('h1');
- spectator.fixture.detectChanges();
-
- expect(dynamicElement).toHaveText('Component created dynamically');
- });
-
- it('call \'closeSlideIn\' should remove a created host element after 200ms', fakeAsync(() => {
- spectator.component.openSlideIn(
- TestClassComponent,
- { wide: true, data: 'Component created dynamically' },
- );
- spectator.component.closeSlideIn();
-
- spectator.tick(200);
- const dynamicElement = (spectator.debugElement.nativeElement as Element).querySelector('.ix-slide-in-body');
- expect(dynamicElement).toBeEmpty();
- }));
-});
diff --git a/src/app/modules/slide-ins/old-slide-in.component.ts b/src/app/modules/slide-ins/old-slide-in.component.ts
deleted file mode 100644
index 32418a77f1b..00000000000
--- a/src/app/modules/slide-ins/old-slide-in.component.ts
+++ /dev/null
@@ -1,140 +0,0 @@
-import { CdkTrapFocus } from '@angular/cdk/a11y';
-import {
- ChangeDetectionStrategy, ChangeDetectorRef,
- Component,
- ElementRef,
- HostListener,
- Injector,
- OnDestroy,
- OnInit,
- Renderer2,
- Type,
- ViewContainerRef,
- viewChild,
- input,
-} from '@angular/core';
-import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
-import { UUID } from 'angular2-uuid';
-import { Subscription, timer } from 'rxjs';
-import { OldSlideInRef } from 'app/modules/slide-ins/old-slide-in-ref';
-import { SLIDE_IN_DATA } from 'app/modules/slide-ins/slide-in.token';
-import { OldSlideInService } from 'app/services/old-slide-in.service';
-
-@UntilDestroy()
-@Component({
- selector: 'ix-old-slide-in',
- templateUrl: './old-slide-in.component.html',
- styleUrls: ['./old-slide-in.component.scss'],
- changeDetection: ChangeDetectionStrategy.OnPush,
- standalone: true,
- imports: [CdkTrapFocus],
-})
-export class OldSlideInComponent implements OnInit, OnDestroy {
- readonly id = input();
-
- private readonly slideInBody = viewChild.required('body', { read: ViewContainerRef });
-
- @HostListener('document:keydown.escape') onKeydownHandler(): void {
- this.onBackdropClicked();
- }
-
- isSlideInOpen = false;
- wide = false;
- private element: HTMLElement;
- private wasBodyCleared = false;
- private timeOutOfClear: Subscription;
-
- constructor(
- private el: ElementRef,
- private slideInService: OldSlideInService,
- private renderer: Renderer2,
- private cdr: ChangeDetectorRef,
- private defaultInjector: Injector,
- ) {
- this.element = this.el.nativeElement as HTMLElement;
- }
-
- ngOnInit(): void {
- // ensure id attribute exists
- if (!this.id()) {
- return;
- }
-
- // move element to bottom of page (just before