@skyux/split-view 11.15.1 → 11.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. package/documentation.json +349 -1042
  2. package/esm2022/lib/modules/split-view/split-view-drawer.component.mjs +10 -38
  3. package/esm2022/lib/modules/split-view/split-view-workspace-content.component.mjs +9 -11
  4. package/esm2022/lib/modules/split-view/split-view-workspace-footer.component.mjs +5 -3
  5. package/esm2022/lib/modules/split-view/split-view-workspace-header.component.mjs +4 -3
  6. package/esm2022/lib/modules/split-view/split-view-workspace.component.mjs +14 -80
  7. package/esm2022/lib/modules/split-view/split-view.component.mjs +6 -13
  8. package/esm2022/lib/modules/split-view/split-view.module.mjs +8 -21
  9. package/esm2022/lib/modules/split-view/split-view.service.mjs +12 -22
  10. package/fesm2022/skyux-split-view.mjs +53 -244
  11. package/fesm2022/skyux-split-view.mjs.map +1 -1
  12. package/lib/modules/split-view/split-view-drawer.component.d.ts +4 -6
  13. package/lib/modules/split-view/split-view-workspace-content.component.d.ts +2 -2
  14. package/lib/modules/split-view/split-view-workspace-footer.component.d.ts +2 -1
  15. package/lib/modules/split-view/split-view-workspace-header.component.d.ts +1 -1
  16. package/lib/modules/split-view/split-view-workspace.component.d.ts +3 -15
  17. package/lib/modules/split-view/split-view.component.d.ts +2 -1
  18. package/lib/modules/split-view/split-view.module.d.ts +1 -5
  19. package/lib/modules/split-view/split-view.service.d.ts +3 -7
  20. package/package.json +6 -6
  21. package/esm2022/lib/modules/split-view/split-view-media-query.service.mjs +0 -76
  22. package/lib/modules/split-view/split-view-media-query.service.d.ts +0 -18
@@ -1,16 +1,16 @@
1
+ import * as i0 from '@angular/core';
2
+ import { NgModule, inject, Injectable, Component, ChangeDetectionStrategy, Input, HostListener, ContentChild } from '@angular/core';
1
3
  import * as i4 from '@angular/common';
2
4
  import { CommonModule } from '@angular/common';
3
- import * as i0 from '@angular/core';
4
- import { NgModule, Injectable, Component, ChangeDetectionStrategy, Input, HostListener, HostBinding, EventEmitter, ContentChild } from '@angular/core';
5
- import * as i2$1 from '@skyux/icon';
6
- import { SkyIconModule } from '@skyux/icon';
7
- import { SkyThemeModule } from '@skyux/theme';
8
- import * as i2 from '@skyux/i18n';
9
- import { SkyLibResourcesService, getLibStringForLocale, SkyI18nModule, SKY_LIB_RESOURCES_PROVIDERS } from '@skyux/i18n';
10
- import * as i1 from '@skyux/core';
11
- import { SkyMediaBreakpoints, SkyMediaQueryService } from '@skyux/core';
12
5
  import { BehaviorSubject, Subject, fromEvent } from 'rxjs';
13
6
  import { take, takeUntil, takeWhile } from 'rxjs/operators';
7
+ import * as i1 from '@skyux/i18n';
8
+ import { SkyLibResourcesService, getLibStringForLocale, SkyI18nModule, SKY_LIB_RESOURCES_PROVIDERS } from '@skyux/i18n';
9
+ import * as i1$1 from '@skyux/core';
10
+ import { SkyMediaQueryService, SkyResponsiveHostDirective } from '@skyux/core';
11
+ import { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';
12
+ import * as i2 from '@skyux/icon';
13
+ import { SkyIconModule } from '@skyux/icon';
14
14
  import { trigger, transition, state, style, animate } from '@angular/animations';
15
15
 
16
16
  /* istanbul ignore file */
@@ -62,78 +62,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
62
62
  }]
63
63
  }] });
64
64
 
65
- /**
66
- * Internal media query service for use determining the media query size of the split view workspace.
67
- * @internal
68
- */
69
- class SkySplitViewMediaQueryService {
70
- get current() {
71
- return this.#_current;
72
- }
73
- #currentSubject;
74
- #_current = SkyMediaBreakpoints.xs;
75
- constructor() {
76
- this.#currentSubject = new BehaviorSubject(this.#_current);
77
- }
78
- subscribe(listener) {
79
- return this.#currentSubject.subscribe({
80
- next: (breakpoints) => {
81
- listener(breakpoints);
82
- },
83
- });
84
- }
85
- setBreakpointForWidth(width) {
86
- let breakpoint;
87
- if (this.isWidthWithinBreakpoint(width, SkyMediaBreakpoints.xs)) {
88
- breakpoint = SkyMediaBreakpoints.xs;
89
- }
90
- else if (this.isWidthWithinBreakpoint(width, SkyMediaBreakpoints.sm)) {
91
- breakpoint = SkyMediaBreakpoints.sm;
92
- }
93
- else if (this.isWidthWithinBreakpoint(width, SkyMediaBreakpoints.md)) {
94
- breakpoint = SkyMediaBreakpoints.md;
95
- }
96
- else {
97
- breakpoint = SkyMediaBreakpoints.lg;
98
- }
99
- this.#_current = breakpoint;
100
- this.#currentSubject.next(this.#_current);
101
- }
102
- isWidthWithinBreakpoint(width, breakpoint) {
103
- if (width === undefined) {
104
- return false;
105
- }
106
- const xsBreakpointMaxPixels = 767;
107
- const smBreakpointMinPixels = 768;
108
- const smBreakpointMaxPixels = 991;
109
- const mdBreakpointMinPixels = 992;
110
- const mdBreakpointMaxPixels = 1199;
111
- const lgBreakpointMinPixels = 1200;
112
- switch (breakpoint) {
113
- case SkyMediaBreakpoints.xs: {
114
- return width <= xsBreakpointMaxPixels;
115
- }
116
- case SkyMediaBreakpoints.sm: {
117
- return width >= smBreakpointMinPixels && width <= smBreakpointMaxPixels;
118
- }
119
- case SkyMediaBreakpoints.md: {
120
- return width >= mdBreakpointMinPixels && width <= mdBreakpointMaxPixels;
121
- }
122
- default: {
123
- return width >= lgBreakpointMinPixels;
124
- }
125
- }
126
- }
127
- destroy() {
128
- this.#currentSubject.complete();
129
- }
130
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewMediaQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
131
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewMediaQueryService }); }
132
- }
133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewMediaQueryService, decorators: [{
134
- type: Injectable
135
- }], ctorParameters: () => [] });
136
-
137
65
  /**
138
66
  * Internal service for operations between the split view drawer and workspace.
139
67
  * @internal
@@ -142,9 +70,6 @@ class SkySplitViewService {
142
70
  get backButtonTextStream() {
143
71
  return this.#_backButtonTextStream;
144
72
  }
145
- get drawerWidthStream() {
146
- return this.#_drawerWidthStream;
147
- }
148
73
  set isMobile(value) {
149
74
  this.#_isMobile = value;
150
75
  }
@@ -154,15 +79,12 @@ class SkySplitViewService {
154
79
  get isMobileStream() {
155
80
  return this.#_isMobileStream;
156
81
  }
157
- #mediaQueryServiceSubscription;
158
82
  #_backButtonTextStream;
159
- #_drawerWidthStream;
160
83
  #_isMobile;
161
84
  #_isMobileStream;
162
- constructor(mediaQueryService, resources) {
85
+ constructor(resources) {
163
86
  this.drawerVisible = new BehaviorSubject(true);
164
87
  this.#_backButtonTextStream = new BehaviorSubject('');
165
- this.#_drawerWidthStream = new BehaviorSubject(320);
166
88
  this.#_isMobile = false;
167
89
  this.#_isMobileStream = new BehaviorSubject(false);
168
90
  // Set default back button text.
@@ -173,8 +95,10 @@ class SkySplitViewService {
173
95
  this.updateBackButtonText(resource);
174
96
  });
175
97
  // Set breakpoint.
176
- this.#mediaQueryServiceSubscription = mediaQueryService.subscribe((breakpoint) => {
177
- const nowMobile = breakpoint === SkyMediaBreakpoints.xs;
98
+ inject(SkyMediaQueryService)
99
+ .breakpointChange.pipe(takeUntilDestroyed())
100
+ .subscribe((breakpoint) => {
101
+ const nowMobile = breakpoint === 'xs';
178
102
  if (nowMobile && !this.isMobile) {
179
103
  // switching to mobile
180
104
  this.#_isMobileStream.next(true);
@@ -188,24 +112,18 @@ class SkySplitViewService {
188
112
  this.isMobile = nowMobile;
189
113
  });
190
114
  }
191
- ngOnDestroy() {
192
- this.#mediaQueryServiceSubscription.unsubscribe();
193
- }
194
115
  backButtonClick() {
195
116
  this.drawerVisible.next(true);
196
117
  }
197
118
  updateBackButtonText(text) {
198
119
  this.#_backButtonTextStream.next(text);
199
120
  }
200
- updateDrawerWidth(drawerWidth) {
201
- this.#_drawerWidthStream.next(drawerWidth);
202
- }
203
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewService, deps: [{ token: i1.SkyMediaQueryService }, { token: i2.SkyLibResourcesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
121
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewService, deps: [{ token: i1.SkyLibResourcesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
204
122
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewService }); }
205
123
  }
206
124
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewService, decorators: [{
207
125
  type: Injectable
208
- }], ctorParameters: () => [{ type: i1.SkyMediaQueryService }, { type: i2.SkyLibResourcesService }] });
126
+ }], ctorParameters: () => [{ type: i1.SkyLibResourcesService }] });
209
127
 
210
128
  let skySplitViewNextId = 0;
211
129
  /**
@@ -219,8 +137,6 @@ class SkySplitViewDrawerComponent {
219
137
  set width(value) {
220
138
  if (value) {
221
139
  this.#_width = Number(value);
222
- this.#updateBreakpoint();
223
- this.#splitViewSvc.updateDrawerWidth(this.#_width);
224
140
  this.#changeDetectorRef.markForCheck();
225
141
  }
226
142
  }
@@ -245,12 +161,10 @@ class SkySplitViewDrawerComponent {
245
161
  #xCoord;
246
162
  #changeDetectorRef;
247
163
  #coreAdapterService;
248
- #elementRef;
249
- #splitViewMediaQuerySvc;
250
164
  #splitViewSvc;
251
165
  #windowRef;
252
166
  #_width;
253
- constructor(changeDetectorRef, coreAdapterService, elementRef, splitViewMediaQuerySvc, splitViewSvc, windowRef) {
167
+ constructor(changeDetectorRef, coreAdapterService, splitViewSvc, windowRef) {
254
168
  this.isMobile = false;
255
169
  this.widthDefault = 320;
256
170
  // Max needs to start as something to allow input range to work.
@@ -263,8 +177,6 @@ class SkySplitViewDrawerComponent {
263
177
  this.#xCoord = 0;
264
178
  this.#changeDetectorRef = changeDetectorRef;
265
179
  this.#coreAdapterService = coreAdapterService;
266
- this.#elementRef = elementRef;
267
- this.#splitViewMediaQuerySvc = splitViewMediaQuerySvc;
268
180
  this.#splitViewSvc = splitViewSvc;
269
181
  this.#windowRef = windowRef;
270
182
  this.splitViewDrawerId = `sky-split-view-drawer-${++skySplitViewNextId}`;
@@ -278,9 +190,6 @@ class SkySplitViewDrawerComponent {
278
190
  this.#changeDetectorRef.markForCheck();
279
191
  });
280
192
  }
281
- ngAfterViewInit() {
282
- this.#updateBreakpoint();
283
- }
284
193
  ngOnDestroy() {
285
194
  this.#ngUnsubscribe.next();
286
195
  this.#ngUnsubscribe.complete();
@@ -288,9 +197,6 @@ class SkySplitViewDrawerComponent {
288
197
  onResizeHandleMouseDown(event) {
289
198
  event.preventDefault();
290
199
  event.stopPropagation();
291
- if (this.#splitViewMediaQuerySvc.isWidthWithinBreakpoint(window.innerWidth, SkyMediaBreakpoints.xs)) {
292
- return;
293
- }
294
200
  this.#setMaxWidth();
295
201
  this.#isDragging = true;
296
202
  this.#xCoord = event.clientX;
@@ -344,32 +250,17 @@ class SkySplitViewDrawerComponent {
344
250
  this.width = window.innerWidth - this.widthTolerance;
345
251
  }
346
252
  }
347
- #updateBreakpoint() {
348
- this.#splitViewMediaQuerySvc.setBreakpointForWidth(this.width);
349
- const newDrawerBreakpoint = this.#splitViewMediaQuerySvc.current;
350
- this.#coreAdapterService.setResponsiveContainerClass(this.#elementRef, newDrawerBreakpoint);
351
- }
352
253
  #setMaxWidth() {
353
254
  const splitView = this.#splitViewSvc.splitViewElementRef?.nativeElement.querySelector('.sky-split-view');
354
255
  this.widthMax = splitView.clientWidth - this.widthTolerance;
355
256
  }
356
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewDrawerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyCoreAdapterService }, { token: i0.ElementRef }, { token: SkySplitViewMediaQueryService }, { token: SkySplitViewService }, { token: i1.SkyAppWindowRef }], target: i0.ɵɵFactoryTarget.Component }); }
357
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: SkySplitViewDrawerComponent, selector: "sky-split-view-drawer", inputs: { ariaLabel: "ariaLabel", width: "width" }, host: { listeners: { "window:resize": "onWindowResize($event)" } }, providers: [
358
- {
359
- provide: SkyMediaQueryService,
360
- useExisting: SkySplitViewMediaQueryService,
361
- },
362
- ], ngImport: i0, template: "<div\n class=\"sky-split-view-drawer\"\n role=\"region\"\n tabindex=\"0\"\n [attr.aria-label]=\"ariaLabel\"\n [id]=\"splitViewDrawerId\"\n [style.width.px]=\"width\"\n>\n <ng-content />\n @if (!isMobile && width !== undefined) {\n <input\n aria-orientation=\"vertical\"\n class=\"sky-split-view-resize-handle\"\n step=\"10\"\n type=\"range\"\n [attr.aria-controls]=\"splitViewDrawerId\"\n [attr.aria-label]=\"'skyux_split_view_resize_handle' | skyLibResources\"\n [attr.aria-valuemax]=\"widthMax\"\n [attr.aria-valuemin]=\"widthMin\"\n [attr.aria-valuenow]=\"width\"\n [attr.aria-valuetext]=\"width + ' pixels wide'\"\n [max]=\"widthMax\"\n [min]=\"widthMin\"\n [style.left.px]=\"width - 7\"\n [value]=\"width\"\n (change)=\"onResizeHandleChange($event)\"\n (mousedown)=\"onResizeHandleMouseDown($event)\"\n />\n }\n</div>\n", styles: [".sky-split-view-drawer{background:#fff;overflow:auto;height:100%;width:100%}@media (min-width: 768px){:host .sky-split-view-drawer{border-right:1px solid #cdcfd2}}:host-context(.sky-responsive-container-sm) .sky-split-view-drawer,:host-context(.sky-responsive-container-md) .sky-split-view-drawer,:host-context(.sky-responsive-container-lg) .sky-split-view-drawer{border-right:1px solid #cdcfd2}.sky-split-view-resize-handle{-webkit-appearance:none;-moz-appearance:none;height:100%;width:14px;position:absolute;z-index:999;cursor:ew-resize;padding:0;border:0;background:transparent;display:block;top:0;bottom:0}.sky-split-view-resize-handle::-moz-range-thumb,.sky-split-view-resize-handle::-moz-range-track{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0 none;background:none;display:none}.sky-split-view-resize-handle::-ms-thumb,.sky-split-view-resize-handle::-ms-track{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0 none;background:none;display:none}.sky-split-view-resize-handle::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0 none;background:none;display:none}:host-context(.sky-theme-modern) .sky-split-view-drawer{background:transparent}:host-context(.sky-theme-modern) .sky-split-view-resize-handle{transition:box-shadow .15s}:host-context(.sky-theme-modern) .sky-split-view-resize-handle:focus{border:solid 2px #1870B8;box-shadow:0 1px 8px #0000004d;outline:none}.sky-theme-modern .sky-split-view-drawer{background:transparent}.sky-theme-modern .sky-split-view-resize-handle{transition:box-shadow .15s}.sky-theme-modern .sky-split-view-resize-handle:focus{border:solid 2px #1870B8;box-shadow:0 1px 8px #0000004d;outline:none}\n"], dependencies: [{ kind: "pipe", type: i2.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
257
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewDrawerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.SkyCoreAdapterService }, { token: SkySplitViewService }, { token: i1$1.SkyAppWindowRef }], target: i0.ɵɵFactoryTarget.Component }); }
258
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: SkySplitViewDrawerComponent, isStandalone: true, selector: "sky-split-view-drawer", inputs: { ariaLabel: "ariaLabel", width: "width" }, host: { listeners: { "window:resize": "onWindowResize($event)" } }, ngImport: i0, template: "<div\n class=\"sky-split-view-drawer\"\n role=\"region\"\n tabindex=\"0\"\n [attr.aria-label]=\"ariaLabel\"\n [id]=\"splitViewDrawerId\"\n [style.width.px]=\"width\"\n>\n <ng-content />\n @if (!isMobile && width !== undefined) {\n <input\n aria-orientation=\"vertical\"\n class=\"sky-split-view-resize-handle\"\n step=\"10\"\n type=\"range\"\n [attr.aria-controls]=\"splitViewDrawerId\"\n [attr.aria-label]=\"'skyux_split_view_resize_handle' | skyLibResources\"\n [attr.aria-valuemax]=\"widthMax\"\n [attr.aria-valuemin]=\"widthMin\"\n [attr.aria-valuenow]=\"width\"\n [attr.aria-valuetext]=\"width + ' pixels wide'\"\n [max]=\"widthMax\"\n [min]=\"widthMin\"\n [style.left.px]=\"width - 7\"\n [value]=\"width\"\n (change)=\"onResizeHandleChange($event)\"\n (mousedown)=\"onResizeHandleMouseDown($event)\"\n />\n }\n</div>\n", styles: [".sky-split-view-drawer{background:#fff;overflow:auto;height:100%;width:100%}@media (min-width: 768px){:host .sky-split-view-drawer{border-right:1px solid #cdcfd2}}:host-context(.sky-responsive-container-sm) .sky-split-view-drawer,:host-context(.sky-responsive-container-md) .sky-split-view-drawer,:host-context(.sky-responsive-container-lg) .sky-split-view-drawer{border-right:1px solid #cdcfd2}.sky-split-view-resize-handle{-webkit-appearance:none;-moz-appearance:none;height:100%;width:14px;position:absolute;z-index:999;cursor:ew-resize;padding:0;border:0;background:transparent;display:block;top:0;bottom:0}.sky-split-view-resize-handle::-moz-range-thumb,.sky-split-view-resize-handle::-moz-range-track{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0 none;background:none;display:none}.sky-split-view-resize-handle::-ms-thumb,.sky-split-view-resize-handle::-ms-track{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0 none;background:none;display:none}.sky-split-view-resize-handle::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0 none;background:none;display:none}:host-context(.sky-theme-modern) .sky-split-view-drawer{background:transparent}:host-context(.sky-theme-modern) .sky-split-view-resize-handle{transition:box-shadow .15s}:host-context(.sky-theme-modern) .sky-split-view-resize-handle:focus{border:solid 2px #1870B8;box-shadow:0 1px 8px #0000004d;outline:none}.sky-theme-modern .sky-split-view-drawer{background:transparent}.sky-theme-modern .sky-split-view-resize-handle{transition:box-shadow .15s}.sky-theme-modern .sky-split-view-resize-handle:focus{border:solid 2px #1870B8;box-shadow:0 1px 8px #0000004d;outline:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: SkySplitViewResourcesModule }, { kind: "pipe", type: i1.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
363
259
  }
364
260
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewDrawerComponent, decorators: [{
365
261
  type: Component,
366
- args: [{ selector: 'sky-split-view-drawer', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
367
- {
368
- provide: SkyMediaQueryService,
369
- useExisting: SkySplitViewMediaQueryService,
370
- },
371
- ], template: "<div\n class=\"sky-split-view-drawer\"\n role=\"region\"\n tabindex=\"0\"\n [attr.aria-label]=\"ariaLabel\"\n [id]=\"splitViewDrawerId\"\n [style.width.px]=\"width\"\n>\n <ng-content />\n @if (!isMobile && width !== undefined) {\n <input\n aria-orientation=\"vertical\"\n class=\"sky-split-view-resize-handle\"\n step=\"10\"\n type=\"range\"\n [attr.aria-controls]=\"splitViewDrawerId\"\n [attr.aria-label]=\"'skyux_split_view_resize_handle' | skyLibResources\"\n [attr.aria-valuemax]=\"widthMax\"\n [attr.aria-valuemin]=\"widthMin\"\n [attr.aria-valuenow]=\"width\"\n [attr.aria-valuetext]=\"width + ' pixels wide'\"\n [max]=\"widthMax\"\n [min]=\"widthMin\"\n [style.left.px]=\"width - 7\"\n [value]=\"width\"\n (change)=\"onResizeHandleChange($event)\"\n (mousedown)=\"onResizeHandleMouseDown($event)\"\n />\n }\n</div>\n", styles: [".sky-split-view-drawer{background:#fff;overflow:auto;height:100%;width:100%}@media (min-width: 768px){:host .sky-split-view-drawer{border-right:1px solid #cdcfd2}}:host-context(.sky-responsive-container-sm) .sky-split-view-drawer,:host-context(.sky-responsive-container-md) .sky-split-view-drawer,:host-context(.sky-responsive-container-lg) .sky-split-view-drawer{border-right:1px solid #cdcfd2}.sky-split-view-resize-handle{-webkit-appearance:none;-moz-appearance:none;height:100%;width:14px;position:absolute;z-index:999;cursor:ew-resize;padding:0;border:0;background:transparent;display:block;top:0;bottom:0}.sky-split-view-resize-handle::-moz-range-thumb,.sky-split-view-resize-handle::-moz-range-track{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0 none;background:none;display:none}.sky-split-view-resize-handle::-ms-thumb,.sky-split-view-resize-handle::-ms-track{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0 none;background:none;display:none}.sky-split-view-resize-handle::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0 none;background:none;display:none}:host-context(.sky-theme-modern) .sky-split-view-drawer{background:transparent}:host-context(.sky-theme-modern) .sky-split-view-resize-handle{transition:box-shadow .15s}:host-context(.sky-theme-modern) .sky-split-view-resize-handle:focus{border:solid 2px #1870B8;box-shadow:0 1px 8px #0000004d;outline:none}.sky-theme-modern .sky-split-view-drawer{background:transparent}.sky-theme-modern .sky-split-view-resize-handle{transition:box-shadow .15s}.sky-theme-modern .sky-split-view-resize-handle:focus{border:solid 2px #1870B8;box-shadow:0 1px 8px #0000004d;outline:none}\n"] }]
372
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.SkyCoreAdapterService }, { type: i0.ElementRef }, { type: SkySplitViewMediaQueryService }, { type: SkySplitViewService }, { type: i1.SkyAppWindowRef }], propDecorators: { ariaLabel: [{
262
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, SkySplitViewResourcesModule], selector: 'sky-split-view-drawer', standalone: true, template: "<div\n class=\"sky-split-view-drawer\"\n role=\"region\"\n tabindex=\"0\"\n [attr.aria-label]=\"ariaLabel\"\n [id]=\"splitViewDrawerId\"\n [style.width.px]=\"width\"\n>\n <ng-content />\n @if (!isMobile && width !== undefined) {\n <input\n aria-orientation=\"vertical\"\n class=\"sky-split-view-resize-handle\"\n step=\"10\"\n type=\"range\"\n [attr.aria-controls]=\"splitViewDrawerId\"\n [attr.aria-label]=\"'skyux_split_view_resize_handle' | skyLibResources\"\n [attr.aria-valuemax]=\"widthMax\"\n [attr.aria-valuemin]=\"widthMin\"\n [attr.aria-valuenow]=\"width\"\n [attr.aria-valuetext]=\"width + ' pixels wide'\"\n [max]=\"widthMax\"\n [min]=\"widthMin\"\n [style.left.px]=\"width - 7\"\n [value]=\"width\"\n (change)=\"onResizeHandleChange($event)\"\n (mousedown)=\"onResizeHandleMouseDown($event)\"\n />\n }\n</div>\n", styles: [".sky-split-view-drawer{background:#fff;overflow:auto;height:100%;width:100%}@media (min-width: 768px){:host .sky-split-view-drawer{border-right:1px solid #cdcfd2}}:host-context(.sky-responsive-container-sm) .sky-split-view-drawer,:host-context(.sky-responsive-container-md) .sky-split-view-drawer,:host-context(.sky-responsive-container-lg) .sky-split-view-drawer{border-right:1px solid #cdcfd2}.sky-split-view-resize-handle{-webkit-appearance:none;-moz-appearance:none;height:100%;width:14px;position:absolute;z-index:999;cursor:ew-resize;padding:0;border:0;background:transparent;display:block;top:0;bottom:0}.sky-split-view-resize-handle::-moz-range-thumb,.sky-split-view-resize-handle::-moz-range-track{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0 none;background:none;display:none}.sky-split-view-resize-handle::-ms-thumb,.sky-split-view-resize-handle::-ms-track{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0 none;background:none;display:none}.sky-split-view-resize-handle::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0 none;background:none;display:none}:host-context(.sky-theme-modern) .sky-split-view-drawer{background:transparent}:host-context(.sky-theme-modern) .sky-split-view-resize-handle{transition:box-shadow .15s}:host-context(.sky-theme-modern) .sky-split-view-resize-handle:focus{border:solid 2px #1870B8;box-shadow:0 1px 8px #0000004d;outline:none}.sky-theme-modern .sky-split-view-drawer{background:transparent}.sky-theme-modern .sky-split-view-resize-handle{transition:box-shadow .15s}.sky-theme-modern .sky-split-view-resize-handle:focus{border:solid 2px #1870B8;box-shadow:0 1px 8px #0000004d;outline:none}\n"] }]
263
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1$1.SkyCoreAdapterService }, { type: SkySplitViewService }, { type: i1$1.SkyAppWindowRef }], propDecorators: { ariaLabel: [{
373
264
  type: Input
374
265
  }], width: [{
375
266
  type: Input
@@ -382,30 +273,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
382
273
  * Specifies the content to display in the split view's workspace panel.
383
274
  */
384
275
  class SkySplitViewWorkspaceContentComponent {
385
- constructor() {
386
- this.tabIndex = '0';
387
- }
388
276
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewWorkspaceContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
389
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SkySplitViewWorkspaceContentComponent, selector: "sky-split-view-workspace-content", host: { properties: { "attr.tabindex": "this.tabIndex" } }, ngImport: i0, template: "<div class=\"sky-split-view-workspace-content\">\n <ng-content />\n</div>\n", styles: [":host{overflow:auto;flex-grow:1}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
277
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SkySplitViewWorkspaceContentComponent, isStandalone: true, selector: "sky-split-view-workspace-content", host: { attributes: { "tabindex": "0" } }, hostDirectives: [{ directive: i1$1.SkyResponsiveHostDirective }], ngImport: i0, template: "<div class=\"sky-split-view-workspace-content\">\n <ng-content />\n</div>\n", styles: [":host{display:block;overflow:auto;flex-grow:1}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
390
278
  }
391
279
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewWorkspaceContentComponent, decorators: [{
392
280
  type: Component,
393
- args: [{ selector: 'sky-split-view-workspace-content', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-split-view-workspace-content\">\n <ng-content />\n</div>\n", styles: [":host{overflow:auto;flex-grow:1}\n"] }]
394
- }], propDecorators: { tabIndex: [{
395
- type: HostBinding,
396
- args: ['attr.tabindex']
397
- }] } });
281
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, host: {
282
+ tabindex: '0',
283
+ }, hostDirectives: [SkyResponsiveHostDirective], selector: 'sky-split-view-workspace-content', standalone: true, template: "<div class=\"sky-split-view-workspace-content\">\n <ng-content />\n</div>\n", styles: [":host{display:block;overflow:auto;flex-grow:1}\n"] }]
284
+ }] });
398
285
 
399
286
  /**
400
287
  * Specifies the footer to display in the split view's workspace panel. This component is often used with a summary action bar.
401
288
  */
402
289
  class SkySplitViewWorkspaceFooterComponent {
403
290
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewWorkspaceFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
404
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SkySplitViewWorkspaceFooterComponent, selector: "sky-split-view-workspace-footer", ngImport: i0, template: "<div class=\"sky-split-view-workspace-footer\">\n <ng-content />\n</div>\n", styles: [":host{flex-shrink:0}.sky-split-view-workspace-footer{padding:10px;box-shadow:0 -3px 3px #cdcfd2}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
291
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SkySplitViewWorkspaceFooterComponent, isStandalone: true, selector: "sky-split-view-workspace-footer", hostDirectives: [{ directive: i1$1.SkyResponsiveHostDirective }], ngImport: i0, template: "<div class=\"sky-split-view-workspace-footer\">\n <ng-content />\n</div>\n", styles: [":host{display:block;flex-shrink:0}.sky-split-view-workspace-footer{padding:10px;box-shadow:0 -3px 3px #cdcfd2}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
405
292
  }
406
293
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewWorkspaceFooterComponent, decorators: [{
407
294
  type: Component,
408
- args: [{ selector: 'sky-split-view-workspace-footer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-split-view-workspace-footer\">\n <ng-content />\n</div>\n", styles: [":host{flex-shrink:0}.sky-split-view-workspace-footer{padding:10px;box-shadow:0 -3px 3px #cdcfd2}\n"] }]
295
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [SkyResponsiveHostDirective], selector: 'sky-split-view-workspace-footer', standalone: true, template: "<div class=\"sky-split-view-workspace-footer\">\n <ng-content />\n</div>\n", styles: [":host{display:block;flex-shrink:0}.sky-split-view-workspace-footer{padding:10px;box-shadow:0 -3px 3px #cdcfd2}\n"] }]
409
296
  }] });
410
297
 
411
298
  /**
@@ -433,92 +320,31 @@ class SkySplitViewWorkspaceHeaderComponent {
433
320
  this.#ngUnsubscribe.complete();
434
321
  }
435
322
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewWorkspaceHeaderComponent, deps: [{ token: SkySplitViewService }], target: i0.ɵɵFactoryTarget.Component }); }
436
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SkySplitViewWorkspaceHeaderComponent, selector: "sky-split-view-workspace-header", ngImport: i0, template: "<div class=\"sky-split-view-workspace-header\">\n <div class=\"sky-split-view-workspace-header-content\">\n <button\n class=\"sky-btn sky-btn-link\"\n type=\"button\"\n (click)=\"onShowDrawerButtonClick()\"\n >\n <sky-icon icon=\"chevron-left\" />\n {{ backButtonText }}\n </button>\n </div>\n</div>\n", styles: [".sky-split-view-workspace-header{display:flex;align-items:flex-start;justify-content:flex-end;border-bottom:1px solid #cdcfd2;padding:5px 0}.sky-split-view-workspace-header .sky-split-view-workspace-header-content{flex-grow:1}\n"], dependencies: [{ kind: "component", type: i2$1.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
323
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SkySplitViewWorkspaceHeaderComponent, isStandalone: true, selector: "sky-split-view-workspace-header", ngImport: i0, template: "<div class=\"sky-split-view-workspace-header\">\n <div class=\"sky-split-view-workspace-header-content\">\n <button\n class=\"sky-btn sky-btn-link\"\n type=\"button\"\n (click)=\"onShowDrawerButtonClick()\"\n >\n <sky-icon icon=\"chevron-left\" />\n {{ backButtonText }}\n </button>\n </div>\n</div>\n", styles: [".sky-split-view-workspace-header{display:flex;align-items:flex-start;justify-content:flex-end;border-bottom:1px solid #cdcfd2;padding:5px 0}.sky-split-view-workspace-header .sky-split-view-workspace-header-content{flex-grow:1}\n"], dependencies: [{ kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i2.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
437
324
  }
438
325
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewWorkspaceHeaderComponent, decorators: [{
439
326
  type: Component,
440
- args: [{ selector: 'sky-split-view-workspace-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-split-view-workspace-header\">\n <div class=\"sky-split-view-workspace-header-content\">\n <button\n class=\"sky-btn sky-btn-link\"\n type=\"button\"\n (click)=\"onShowDrawerButtonClick()\"\n >\n <sky-icon icon=\"chevron-left\" />\n {{ backButtonText }}\n </button>\n </div>\n</div>\n", styles: [".sky-split-view-workspace-header{display:flex;align-items:flex-start;justify-content:flex-end;border-bottom:1px solid #cdcfd2;padding:5px 0}.sky-split-view-workspace-header .sky-split-view-workspace-header-content{flex-grow:1}\n"] }]
327
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, imports: [SkyIconModule], selector: 'sky-split-view-workspace-header', standalone: true, template: "<div class=\"sky-split-view-workspace-header\">\n <div class=\"sky-split-view-workspace-header-content\">\n <button\n class=\"sky-btn sky-btn-link\"\n type=\"button\"\n (click)=\"onShowDrawerButtonClick()\"\n >\n <sky-icon icon=\"chevron-left\" />\n {{ backButtonText }}\n </button>\n </div>\n</div>\n", styles: [".sky-split-view-workspace-header{display:flex;align-items:flex-start;justify-content:flex-end;border-bottom:1px solid #cdcfd2;padding:5px 0}.sky-split-view-workspace-header .sky-split-view-workspace-header-content{flex-grow:1}\n"] }]
441
328
  }], ctorParameters: () => [{ type: SkySplitViewService }] });
442
329
 
443
330
  /**
444
331
  * Contains the content, footer, and header to display in the split view's workspace panel.
445
332
  */
446
333
  class SkySplitViewWorkspaceComponent {
447
- set isMobile(value) {
448
- this.#_isMobile = value;
449
- this.#changeDetectorRef.markForCheck();
450
- }
451
- // Shows/hides the workspace header when the parent split view is in mobile responsive mode.
452
- get isMobile() {
453
- return this.#_isMobile;
454
- }
455
- #ngUnsubscribe;
456
- #changeDetectorRef;
457
- #coreAdapterSvc;
458
- #elementRef;
459
- #splitViewMediaQuerySvc;
460
- #splitViewSvc;
461
- #_isMobile;
462
- constructor(changeDetectorRef, coreAdapterSvc, elementRef, splitViewMediaQuerySvc, splitViewSvc) {
463
- this.showDrawerButtonClick = new EventEmitter();
464
- this.#ngUnsubscribe = new Subject();
465
- this.#changeDetectorRef = changeDetectorRef;
466
- this.#coreAdapterSvc = coreAdapterSvc;
467
- this.#elementRef = elementRef;
468
- this.#splitViewMediaQuerySvc = splitViewMediaQuerySvc;
469
- this.#splitViewSvc = splitViewSvc;
470
- }
471
- ngOnInit() {
472
- this.#splitViewSvc.isMobileStream
473
- .pipe(takeUntil(this.#ngUnsubscribe))
474
- .subscribe((mobile) => {
475
- this.isMobile = mobile;
476
- this.#changeDetectorRef.markForCheck();
477
- });
478
- }
479
- ngAfterViewInit() {
480
- this.#splitViewSvc.drawerWidthStream
481
- .pipe(takeUntil(this.#ngUnsubscribe))
482
- .subscribe(() => {
483
- this.#updateBreakpoint();
484
- });
485
- }
486
- ngOnDestroy() {
487
- this.showDrawerButtonClick.complete();
488
- this.#ngUnsubscribe.next();
489
- this.#ngUnsubscribe.complete();
490
- }
491
- onWindowResize() {
492
- this.#updateBreakpoint();
493
- }
494
- #updateBreakpoint() {
495
- const width = this.#elementRef.nativeElement.parentElement.clientWidth;
496
- this.#splitViewMediaQuerySvc.setBreakpointForWidth(width);
497
- const newDrawerBreakpoint = this.#splitViewMediaQuerySvc.current;
498
- this.#coreAdapterSvc.setResponsiveContainerClass(this.#elementRef, newDrawerBreakpoint);
499
- this.#changeDetectorRef.markForCheck();
334
+ constructor() {
335
+ // Use the parent's breakpoint since the mobile header should only appear when
336
+ // the split view container as a whole reaches the "xs" breakpoint, not just
337
+ // the workspace area.
338
+ this.breakpoint = toSignal(inject(SkyMediaQueryService, { skipSelf: true }).breakpointChange);
500
339
  }
501
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewWorkspaceComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyCoreAdapterService }, { token: i0.ElementRef }, { token: SkySplitViewMediaQueryService }, { token: SkySplitViewService }], target: i0.ɵɵFactoryTarget.Component }); }
502
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: SkySplitViewWorkspaceComponent, selector: "sky-split-view-workspace", inputs: { ariaLabel: "ariaLabel" }, host: { listeners: { "window:resize": "onWindowResize()" } }, providers: [
503
- {
504
- provide: SkyMediaQueryService,
505
- useExisting: SkySplitViewMediaQueryService,
506
- },
507
- ], ngImport: i0, template: "<div\n class=\"sky-split-view-workspace\"\n role=\"region\"\n tabindex=\"0\"\n [attr.aria-label]=\"ariaLabel\"\n>\n @if (isMobile) {\n <sky-split-view-workspace-header />\n }\n <ng-content select=\"sky-split-view-workspace-content\" />\n <ng-content select=\"sky-split-view-workspace-footer\" />\n</div>\n", styles: [".sky-split-view-workspace{background:#fff;height:100%;display:flex;flex-direction:column}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-split-view-workspace{background-color:#121212;border-color:#686c73}.sky-theme-modern.sky-theme-mode-dark .sky-split-view-workspace{background-color:#121212;border-color:#686c73}\n"], dependencies: [{ kind: "component", type: SkySplitViewWorkspaceHeaderComponent, selector: "sky-split-view-workspace-header" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
340
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewWorkspaceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
341
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: SkySplitViewWorkspaceComponent, isStandalone: true, selector: "sky-split-view-workspace", inputs: { ariaLabel: "ariaLabel" }, ngImport: i0, template: "<div\n class=\"sky-split-view-workspace\"\n role=\"region\"\n tabindex=\"0\"\n [attr.aria-label]=\"ariaLabel\"\n>\n @if (breakpoint() === 'xs') {\n <sky-split-view-workspace-header />\n }\n <ng-content select=\"sky-split-view-workspace-content\" />\n <ng-content select=\"sky-split-view-workspace-footer\" />\n</div>\n", styles: [".sky-split-view-workspace{background:#fff;height:100%;display:flex;flex-direction:column}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-split-view-workspace{background-color:#121212;border-color:#686c73}.sky-theme-modern.sky-theme-mode-dark .sky-split-view-workspace{background-color:#121212;border-color:#686c73}\n"], dependencies: [{ kind: "component", type: SkySplitViewWorkspaceHeaderComponent, selector: "sky-split-view-workspace-header" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
508
342
  }
509
343
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewWorkspaceComponent, decorators: [{
510
344
  type: Component,
511
- args: [{ selector: 'sky-split-view-workspace', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
512
- {
513
- provide: SkyMediaQueryService,
514
- useExisting: SkySplitViewMediaQueryService,
515
- },
516
- ], template: "<div\n class=\"sky-split-view-workspace\"\n role=\"region\"\n tabindex=\"0\"\n [attr.aria-label]=\"ariaLabel\"\n>\n @if (isMobile) {\n <sky-split-view-workspace-header />\n }\n <ng-content select=\"sky-split-view-workspace-content\" />\n <ng-content select=\"sky-split-view-workspace-footer\" />\n</div>\n", styles: [".sky-split-view-workspace{background:#fff;height:100%;display:flex;flex-direction:column}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-split-view-workspace{background-color:#121212;border-color:#686c73}.sky-theme-modern.sky-theme-mode-dark .sky-split-view-workspace{background-color:#121212;border-color:#686c73}\n"] }]
517
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.SkyCoreAdapterService }, { type: i0.ElementRef }, { type: SkySplitViewMediaQueryService }, { type: SkySplitViewService }], propDecorators: { ariaLabel: [{
345
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, imports: [SkySplitViewWorkspaceHeaderComponent], selector: 'sky-split-view-workspace', standalone: true, template: "<div\n class=\"sky-split-view-workspace\"\n role=\"region\"\n tabindex=\"0\"\n [attr.aria-label]=\"ariaLabel\"\n>\n @if (breakpoint() === 'xs') {\n <sky-split-view-workspace-header />\n }\n <ng-content select=\"sky-split-view-workspace-content\" />\n <ng-content select=\"sky-split-view-workspace-footer\" />\n</div>\n", styles: [".sky-split-view-workspace{background:#fff;height:100%;display:flex;flex-direction:column}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-split-view-workspace{background-color:#121212;border-color:#686c73}.sky-theme-modern.sky-theme-mode-dark .sky-split-view-workspace{background-color:#121212;border-color:#686c73}\n"] }]
346
+ }], propDecorators: { ariaLabel: [{
518
347
  type: Input
519
- }], onWindowResize: [{
520
- type: HostListener,
521
- args: ['window:resize']
522
348
  }] } });
523
349
 
524
350
  /**
@@ -575,12 +401,12 @@ class SkySplitViewAdapterService {
575
401
  this.#renderer.setStyle(splitViewElement, 'max-height', 'calc(100vh - ' + offsetTop + 'px - ' + marginBottom + ')');
576
402
  this.#renderer.setStyle(splitViewElement, 'min-height', '300px');
577
403
  }
578
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewAdapterService, deps: [{ token: i1.SkyMutationObserverService }, { token: i0.RendererFactory2 }, { token: i1.SkyAppWindowRef }], target: i0.ɵɵFactoryTarget.Injectable }); }
404
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewAdapterService, deps: [{ token: i1$1.SkyMutationObserverService }, { token: i0.RendererFactory2 }, { token: i1$1.SkyAppWindowRef }], target: i0.ɵɵFactoryTarget.Injectable }); }
579
405
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewAdapterService }); }
580
406
  }
581
407
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewAdapterService, decorators: [{
582
408
  type: Injectable
583
- }], ctorParameters: () => [{ type: i1.SkyMutationObserverService }, { type: i0.RendererFactory2 }, { type: i1.SkyAppWindowRef }] });
409
+ }], ctorParameters: () => [{ type: i1$1.SkyMutationObserverService }, { type: i0.RendererFactory2 }, { type: i1$1.SkyAppWindowRef }] });
584
410
 
585
411
  var SkySplitViewMessageType;
586
412
  (function (SkySplitViewMessageType) {
@@ -734,12 +560,8 @@ class SkySplitViewComponent {
734
560
  break;
735
561
  }
736
562
  }
737
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewComponent, deps: [{ token: SkySplitViewAdapterService }, { token: i0.ChangeDetectorRef }, { token: i1.SkyCoreAdapterService }, { token: i0.ElementRef }, { token: SkySplitViewService }], target: i0.ɵɵFactoryTarget.Component }); }
738
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SkySplitViewComponent, selector: "sky-split-view", inputs: { backButtonText: "backButtonText", bindHeightToWindow: "bindHeightToWindow", dock: "dock", messageStream: "messageStream" }, providers: [
739
- SkySplitViewAdapterService,
740
- SkySplitViewMediaQueryService,
741
- SkySplitViewService,
742
- ], queries: [{ propertyName: "drawerComponent", first: true, predicate: SkySplitViewDrawerComponent, descendants: true }], ngImport: i0, template: "<div\n class=\"sky-split-view\"\n [ngClass]=\"'sky-split-view-dock-' + dock\"\n [@blockAnimationOnLoad]\n>\n <div\n class=\"sky-split-view-drawer-flex-container\"\n [hidden]=\"!drawerVisible\"\n [@drawerEnter]=\"drawerVisible\"\n >\n <ng-content select=\"sky-split-view-drawer\" />\n </div>\n\n <div\n class=\"sky-split-view-workspace-flex-container\"\n [hidden]=\"!workspaceVisible\"\n [@workspaceEnter]=\"workspaceVisible\"\n (@workspaceEnter.done)=\"onWorkspaceEnterComplete()\"\n >\n <ng-content select=\"sky-split-view-workspace\" />\n </div>\n</div>\n", styles: [".sky-split-view{position:relative;display:flex;border:1px solid #cdcfd2;background:transparent;margin:var(--sky-layout-host-content-spacing, 0);max-height:100%}.sky-split-view .sky-split-view-workspace-flex-container{flex-grow:1;flex-shrink:99;overflow:auto}.sky-split-view-dock-fill{position:absolute;inset:0}:host .sky-split-view-drawer-flex-container{width:100%}:host-context(.sky-responsive-container-xs) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-sm) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-md) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-lg) .sky-split-view-drawer-flex-container{width:100%}@media (min-width: 768px){:host .sky-split-view-drawer-flex-container{width:auto}}:host-context(.sky-responsive-container-sm) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-md) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-lg) .sky-split-view-drawer-flex-container{width:auto}@media (min-width: 768px){:host :host-context(.sky-theme-modern) .sky-split-view{border-left:none}:host .sky-theme-modern .sky-split-view{border-left:none}}:host-context(.sky-responsive-container-sm) :host-context(.sky-theme-modern) .sky-split-view,:host-context(.sky-responsive-container-md) :host-context(.sky-theme-modern) .sky-split-view,:host-context(.sky-responsive-container-lg) :host-context(.sky-theme-modern) .sky-split-view{border-left:none}:host-context(.sky-responsive-container-sm) .sky-theme-modern .sky-split-view,:host-context(.sky-responsive-container-md) .sky-theme-modern .sky-split-view,:host-context(.sky-responsive-container-lg) .sky-theme-modern .sky-split-view{border-left:none}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [
563
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewComponent, deps: [{ token: SkySplitViewAdapterService }, { token: i0.ChangeDetectorRef }, { token: i1$1.SkyCoreAdapterService }, { token: i0.ElementRef }, { token: SkySplitViewService }], target: i0.ɵɵFactoryTarget.Component }); }
564
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SkySplitViewComponent, isStandalone: true, selector: "sky-split-view", inputs: { backButtonText: "backButtonText", bindHeightToWindow: "bindHeightToWindow", dock: "dock", messageStream: "messageStream" }, providers: [SkySplitViewAdapterService, SkySplitViewService], queries: [{ propertyName: "drawerComponent", first: true, predicate: SkySplitViewDrawerComponent, descendants: true }], hostDirectives: [{ directive: i1$1.SkyResponsiveHostDirective }], ngImport: i0, template: "<div\n class=\"sky-split-view\"\n [ngClass]=\"'sky-split-view-dock-' + dock\"\n [@blockAnimationOnLoad]\n>\n <div\n class=\"sky-split-view-drawer-flex-container\"\n [hidden]=\"!drawerVisible\"\n [@drawerEnter]=\"drawerVisible\"\n >\n <ng-content select=\"sky-split-view-drawer\" />\n </div>\n\n <div\n class=\"sky-split-view-workspace-flex-container\"\n [hidden]=\"!workspaceVisible\"\n [@workspaceEnter]=\"workspaceVisible\"\n (@workspaceEnter.done)=\"onWorkspaceEnterComplete()\"\n >\n <ng-content select=\"sky-split-view-workspace\" />\n </div>\n</div>\n", styles: [":host{display:block}.sky-split-view{position:relative;display:flex;border:1px solid #cdcfd2;background:transparent;margin:var(--sky-layout-host-content-spacing, 0);max-height:100%}.sky-split-view .sky-split-view-workspace-flex-container{flex-grow:1;flex-shrink:99;overflow:auto}.sky-split-view-dock-fill{position:absolute;inset:0}:host .sky-split-view-drawer-flex-container{width:100%}:host-context(.sky-responsive-container-xs) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-sm) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-md) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-lg) .sky-split-view-drawer-flex-container{width:100%}@media (min-width: 768px){:host .sky-split-view-drawer-flex-container{width:auto}}:host-context(.sky-responsive-container-sm) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-md) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-lg) .sky-split-view-drawer-flex-container{width:auto}@media (min-width: 768px){:host :host-context(.sky-theme-modern) .sky-split-view{border-left:none}:host .sky-theme-modern .sky-split-view{border-left:none}}:host-context(.sky-responsive-container-sm) :host-context(.sky-theme-modern) .sky-split-view,:host-context(.sky-responsive-container-md) :host-context(.sky-theme-modern) .sky-split-view,:host-context(.sky-responsive-container-lg) :host-context(.sky-theme-modern) .sky-split-view{border-left:none}:host-context(.sky-responsive-container-sm) .sky-theme-modern .sky-split-view,:host-context(.sky-responsive-container-md) .sky-theme-modern .sky-split-view,:host-context(.sky-responsive-container-lg) .sky-theme-modern .sky-split-view{border-left:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [
743
565
  trigger('blockAnimationOnLoad', [transition(':enter', [])]),
744
566
  trigger('drawerEnter', [
745
567
  state('false', style({ transform: 'translate(-100%)' })),
@@ -753,11 +575,7 @@ class SkySplitViewComponent {
753
575
  }
754
576
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewComponent, decorators: [{
755
577
  type: Component,
756
- args: [{ selector: 'sky-split-view', providers: [
757
- SkySplitViewAdapterService,
758
- SkySplitViewMediaQueryService,
759
- SkySplitViewService,
760
- ], changeDetection: ChangeDetectionStrategy.OnPush, animations: [
578
+ args: [{ animations: [
761
579
  trigger('blockAnimationOnLoad', [transition(':enter', [])]),
762
580
  trigger('drawerEnter', [
763
581
  state('false', style({ transform: 'translate(-100%)' })),
@@ -767,8 +585,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
767
585
  state('false', style({ transform: 'translate(100%)' })),
768
586
  transition('* => true', animate('150ms ease-in')),
769
587
  ]),
770
- ], template: "<div\n class=\"sky-split-view\"\n [ngClass]=\"'sky-split-view-dock-' + dock\"\n [@blockAnimationOnLoad]\n>\n <div\n class=\"sky-split-view-drawer-flex-container\"\n [hidden]=\"!drawerVisible\"\n [@drawerEnter]=\"drawerVisible\"\n >\n <ng-content select=\"sky-split-view-drawer\" />\n </div>\n\n <div\n class=\"sky-split-view-workspace-flex-container\"\n [hidden]=\"!workspaceVisible\"\n [@workspaceEnter]=\"workspaceVisible\"\n (@workspaceEnter.done)=\"onWorkspaceEnterComplete()\"\n >\n <ng-content select=\"sky-split-view-workspace\" />\n </div>\n</div>\n", styles: [".sky-split-view{position:relative;display:flex;border:1px solid #cdcfd2;background:transparent;margin:var(--sky-layout-host-content-spacing, 0);max-height:100%}.sky-split-view .sky-split-view-workspace-flex-container{flex-grow:1;flex-shrink:99;overflow:auto}.sky-split-view-dock-fill{position:absolute;inset:0}:host .sky-split-view-drawer-flex-container{width:100%}:host-context(.sky-responsive-container-xs) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-sm) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-md) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-lg) .sky-split-view-drawer-flex-container{width:100%}@media (min-width: 768px){:host .sky-split-view-drawer-flex-container{width:auto}}:host-context(.sky-responsive-container-sm) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-md) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-lg) .sky-split-view-drawer-flex-container{width:auto}@media (min-width: 768px){:host :host-context(.sky-theme-modern) .sky-split-view{border-left:none}:host .sky-theme-modern .sky-split-view{border-left:none}}:host-context(.sky-responsive-container-sm) :host-context(.sky-theme-modern) .sky-split-view,:host-context(.sky-responsive-container-md) :host-context(.sky-theme-modern) .sky-split-view,:host-context(.sky-responsive-container-lg) :host-context(.sky-theme-modern) .sky-split-view{border-left:none}:host-context(.sky-responsive-container-sm) .sky-theme-modern .sky-split-view,:host-context(.sky-responsive-container-md) .sky-theme-modern .sky-split-view,:host-context(.sky-responsive-container-lg) .sky-theme-modern .sky-split-view{border-left:none}\n"] }]
771
- }], ctorParameters: () => [{ type: SkySplitViewAdapterService }, { type: i0.ChangeDetectorRef }, { type: i1.SkyCoreAdapterService }, { type: i0.ElementRef }, { type: SkySplitViewService }], propDecorators: { backButtonText: [{
588
+ ], changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [SkyResponsiveHostDirective], imports: [CommonModule], providers: [SkySplitViewAdapterService, SkySplitViewService], selector: 'sky-split-view', standalone: true, template: "<div\n class=\"sky-split-view\"\n [ngClass]=\"'sky-split-view-dock-' + dock\"\n [@blockAnimationOnLoad]\n>\n <div\n class=\"sky-split-view-drawer-flex-container\"\n [hidden]=\"!drawerVisible\"\n [@drawerEnter]=\"drawerVisible\"\n >\n <ng-content select=\"sky-split-view-drawer\" />\n </div>\n\n <div\n class=\"sky-split-view-workspace-flex-container\"\n [hidden]=\"!workspaceVisible\"\n [@workspaceEnter]=\"workspaceVisible\"\n (@workspaceEnter.done)=\"onWorkspaceEnterComplete()\"\n >\n <ng-content select=\"sky-split-view-workspace\" />\n </div>\n</div>\n", styles: [":host{display:block}.sky-split-view{position:relative;display:flex;border:1px solid #cdcfd2;background:transparent;margin:var(--sky-layout-host-content-spacing, 0);max-height:100%}.sky-split-view .sky-split-view-workspace-flex-container{flex-grow:1;flex-shrink:99;overflow:auto}.sky-split-view-dock-fill{position:absolute;inset:0}:host .sky-split-view-drawer-flex-container{width:100%}:host-context(.sky-responsive-container-xs) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-sm) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-md) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-lg) .sky-split-view-drawer-flex-container{width:100%}@media (min-width: 768px){:host .sky-split-view-drawer-flex-container{width:auto}}:host-context(.sky-responsive-container-sm) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-md) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-lg) .sky-split-view-drawer-flex-container{width:auto}@media (min-width: 768px){:host :host-context(.sky-theme-modern) .sky-split-view{border-left:none}:host .sky-theme-modern .sky-split-view{border-left:none}}:host-context(.sky-responsive-container-sm) :host-context(.sky-theme-modern) .sky-split-view,:host-context(.sky-responsive-container-md) :host-context(.sky-theme-modern) .sky-split-view,:host-context(.sky-responsive-container-lg) :host-context(.sky-theme-modern) .sky-split-view{border-left:none}:host-context(.sky-responsive-container-sm) .sky-theme-modern .sky-split-view,:host-context(.sky-responsive-container-md) .sky-theme-modern .sky-split-view,:host-context(.sky-responsive-container-lg) .sky-theme-modern .sky-split-view{border-left:none}\n"] }]
589
+ }], ctorParameters: () => [{ type: SkySplitViewAdapterService }, { type: i0.ChangeDetectorRef }, { type: i1$1.SkyCoreAdapterService }, { type: i0.ElementRef }, { type: SkySplitViewService }], propDecorators: { backButtonText: [{
772
590
  type: Input
773
591
  }], bindHeightToWindow: [{
774
592
  type: Input
@@ -783,29 +601,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
783
601
 
784
602
  class SkySplitViewModule {
785
603
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
786
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewModule, declarations: [SkySplitViewComponent,
604
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewModule, imports: [SkySplitViewComponent,
787
605
  SkySplitViewDrawerComponent,
788
606
  SkySplitViewWorkspaceComponent,
789
607
  SkySplitViewWorkspaceContentComponent,
790
608
  SkySplitViewWorkspaceFooterComponent,
791
- SkySplitViewWorkspaceHeaderComponent], imports: [CommonModule,
792
- SkyIconModule,
793
- SkySplitViewResourcesModule,
794
- SkyThemeModule], exports: [SkySplitViewComponent,
609
+ SkySplitViewWorkspaceHeaderComponent], exports: [SkySplitViewComponent,
795
610
  SkySplitViewDrawerComponent,
796
611
  SkySplitViewWorkspaceComponent,
797
612
  SkySplitViewWorkspaceContentComponent,
798
613
  SkySplitViewWorkspaceFooterComponent,
799
614
  SkySplitViewWorkspaceHeaderComponent] }); }
800
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewModule, imports: [CommonModule,
801
- SkyIconModule,
802
- SkySplitViewResourcesModule,
803
- SkyThemeModule] }); }
615
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewModule, imports: [SkySplitViewComponent,
616
+ SkySplitViewDrawerComponent,
617
+ SkySplitViewWorkspaceComponent,
618
+ SkySplitViewWorkspaceHeaderComponent] }); }
804
619
  }
805
620
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewModule, decorators: [{
806
621
  type: NgModule,
807
622
  args: [{
808
- declarations: [
623
+ imports: [
809
624
  SkySplitViewComponent,
810
625
  SkySplitViewDrawerComponent,
811
626
  SkySplitViewWorkspaceComponent,
@@ -813,12 +628,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
813
628
  SkySplitViewWorkspaceFooterComponent,
814
629
  SkySplitViewWorkspaceHeaderComponent,
815
630
  ],
816
- imports: [
817
- CommonModule,
818
- SkyIconModule,
819
- SkySplitViewResourcesModule,
820
- SkyThemeModule,
821
- ],
822
631
  exports: [
823
632
  SkySplitViewComponent,
824
633
  SkySplitViewDrawerComponent,