@ndwnu/design-system 12.3.0 → 13.0.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.
package/package.json CHANGED
@@ -1,30 +1,31 @@
1
1
  {
2
2
  "name": "@ndwnu/design-system",
3
- "version": "12.3.0",
3
+ "version": "13.0.0",
4
4
  "peerDependencies": {
5
- "@angular/cdk": "^20.0.0",
6
- "@angular/common": "^20.0.0",
7
- "@angular/core": "^20.0.0",
8
- "@angular/forms": "^20.0.0",
9
- "@angular/material": "^20.0.0",
10
- "@angular/router": "^20.0.0",
11
- "@ndwnu/core": "2.1.1",
5
+ "@angular/cdk": "^21.0.0",
6
+ "@angular/common": "^21.0.0",
7
+ "@angular/core": "^21.0.0",
8
+ "@angular/forms": "^21.0.0",
9
+ "@angular/material": "^21.0.0",
10
+ "@angular/router": "^21.0.0",
12
11
  "@github/markdown-toolbar-element": "2.2.3",
13
12
  "dompurify": "^3.3.0",
14
13
  "marked": "^17.0.1",
14
+ "@ndwnu/core": "2.1.1",
15
15
  "ag-grid-angular": "^34.0.2",
16
16
  "ag-grid-community": "^34.0.2",
17
- "rxjs": "^7.8.0"
17
+ "rxjs": "^7.8.0",
18
+ "shepherd.js": "^14.5.1"
18
19
  },
19
20
  "sideEffects": false,
20
21
  "module": "fesm2022/ndwnu-design-system.mjs",
21
- "typings": "index.d.ts",
22
+ "typings": "types/ndwnu-design-system.d.ts",
22
23
  "exports": {
23
24
  "./package.json": {
24
25
  "default": "./package.json"
25
26
  },
26
27
  ".": {
27
- "types": "./index.d.ts",
28
+ "types": "./types/ndwnu-design-system.d.ts",
28
29
  "default": "./fesm2022/ndwnu-design-system.mjs"
29
30
  }
30
31
  },
@@ -0,0 +1,70 @@
1
+ @use 'shepherd.js/dist/css/shepherd.css';
2
+ @use '../base/typography' as typo;
3
+ @use '../components/button' as ndwButton;
4
+
5
+ .shepherd-theme-ndw {
6
+ --image-height: 200px;
7
+
8
+ position: relative;
9
+ background-color: var(--ndw-color-white);
10
+ border-radius: var(--ndw-border-radius-md);
11
+ box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.5);
12
+ padding: var(--ndw-spacing-lg);
13
+
14
+ &.shepherd-has-title {
15
+ .shepherd-header {
16
+ padding: 0;
17
+ background-color: var(--ndw-color-white);
18
+
19
+ .shepherd-title {
20
+ @include typo.ndw-heading-sm;
21
+ }
22
+ }
23
+ }
24
+
25
+ // Add padding-top when image is present to make room for the absolute positioned image
26
+ &.shepherd-has-image {
27
+ padding-top: calc(var(--image-height) + var(--ndw-spacing-lg));
28
+ }
29
+
30
+ .shepherd-text {
31
+ display: block;
32
+ padding: 0;
33
+ margin-block: var(--ndw-spacing-md);
34
+ @include typo.ndw-paragraph-md;
35
+
36
+ // Styling for optional step images - positioned absolutely above title
37
+ .shepherd-step-image {
38
+ position: absolute;
39
+ top: 0;
40
+ left: 0;
41
+ right: 0;
42
+ display: block;
43
+ width: 100%;
44
+ height: var(--image-height);
45
+ border-radius: var(--ndw-border-radius-md) var(--ndw-border-radius-md) 0 0;
46
+ object-fit: cover;
47
+ }
48
+ }
49
+
50
+ .shepherd-footer {
51
+ padding: 0;
52
+
53
+ .primary.shepherd-button {
54
+ @extend [ndwButton];
55
+ }
56
+
57
+ .secondary.shepherd-button {
58
+ @extend [ndwButton], [secondary];
59
+ }
60
+
61
+ .tertiary.shepherd-button {
62
+ @extend [ndwButton], [tertiary];
63
+ }
64
+ }
65
+
66
+ // Override Shepherd's default grey arrow for elements with titles
67
+ &.shepherd-has-title[data-popper-placement^='bottom'] > .shepherd-arrow:before {
68
+ background-color: var(--ndw-color-white);
69
+ }
70
+ }
@@ -161,6 +161,19 @@
161
161
  &:has(textarea) {
162
162
  padding-inline: 0;
163
163
  }
164
+
165
+ // Set correct background color for max char counter for text areas
166
+ & .max-char-counter {
167
+ background-color: var(--ndw-color-white);
168
+ }
169
+
170
+ &[success] .max-char-counter {
171
+ background-color: var(--ndw-color-positive-100);
172
+ }
173
+
174
+ &[error] .max-char-counter {
175
+ background-color: var(--ndw-color-critical-100);
176
+ }
164
177
  }
165
178
 
166
179
  [ndwInput] {
@@ -3,7 +3,7 @@
3
3
  background-color: transparent;
4
4
  border-color: transparent;
5
5
  border-radius: 0;
6
- color: var(--ndw-color-grey-400);
6
+ color: var(--ndw-color-grey-300);
7
7
  gap: var(--ndw-spacing-xs);
8
8
  height: 2.625rem;
9
9
  padding-inline: 0;
@@ -5,6 +5,7 @@
5
5
  @forward 'dropdown';
6
6
  @forward 'edit-bar';
7
7
  @forward 'filter-button';
8
+ @forward 'guided-tour';
8
9
  @forward 'input';
9
10
  @forward 'label';
10
11
  @forward 'link';
@@ -42,14 +42,14 @@
42
42
  --ndw-color-primary-hover: var(--ndw-color-primary-600);
43
43
  --ndw-color-primary-active: var(--ndw-color-primary-700);
44
44
 
45
- --_secondary-050: 209, 100%, 96%;
46
- --_secondary-100: 209, 85%, 91%;
47
- --_secondary-200: 209, 85%, 78%;
48
- --_secondary-300: 209, 85%, 69%;
49
- --_secondary-400: 208, 100%, 46%;
50
- --_secondary-500: 208, 100%, 41%;
51
- --_secondary-600: 209, 100%, 32%;
52
- --_secondary-700: 209, 100%, 18%;
45
+ --_secondary-050: 339, 67%, 94%;
46
+ --_secondary-100: 333, 19%, 70%;
47
+ --_secondary-200: 327, 17%, 47%;
48
+ --_secondary-300: 324, 25%, 29%;
49
+ --_secondary-400: 317, 26%, 23%;
50
+ --_secondary-500: 312, 29%, 18%;
51
+ --_secondary-600: 312, 29%, 15%;
52
+ --_secondary-700: 312, 30%, 12%;
53
53
 
54
54
  --ndw-color-secondary-050: hsl(var(--_secondary-050));
55
55
  --ndw-color-secondary-100: hsl(var(--_secondary-100));
@@ -6,6 +6,7 @@ import { ControlValueAccessor, AbstractControl, NgControl } from '@angular/forms
6
6
  import { Subject, Observable } from 'rxjs';
7
7
  import * as _angular_material_datepicker from '@angular/material/datepicker';
8
8
  import { DateFilterFn, MatCalendar } from '@angular/material/datepicker';
9
+ import Shepherd, { StepOptions, TourOptions as TourOptions$1, StepOptionsButton } from 'shepherd.js';
9
10
  import { Params } from '@angular/router';
10
11
  import * as _ndwnu_design_system from '@ndwnu/design-system';
11
12
  import { Point } from '@angular/cdk/drag-drop';
@@ -19,6 +20,7 @@ declare class CollapsibleComponent {
19
20
  checkable: _angular_core.InputSignal<boolean>;
20
21
  subtitle: _angular_core.InputSignal<string | undefined>;
21
22
  value: _angular_core.InputSignal<number | undefined>;
23
+ displayLargeNumbers: _angular_core.InputSignal<boolean>;
22
24
  expanded: _angular_core.ModelSignal<boolean>;
23
25
  private readonly accordionService;
24
26
  private readonly uuid;
@@ -26,7 +28,7 @@ declare class CollapsibleComponent {
26
28
  readonly sectionUuid: string;
27
29
  toggle(): void;
28
30
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CollapsibleComponent, never>;
29
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CollapsibleComponent, "ndw-collapsible", never, { "index": { "alias": "index"; "required": true; "isSignal": true; }; "title": { "alias": "title"; "required": true; "isSignal": true; }; "checkable": { "alias": "checkable"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; }, { "expanded": "expandedChange"; }, never, ["custom-header-content", "*"], true, never>;
31
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CollapsibleComponent, "ndw-collapsible", never, { "index": { "alias": "index"; "required": true; "isSignal": true; }; "title": { "alias": "title"; "required": true; "isSignal": true; }; "checkable": { "alias": "checkable"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "displayLargeNumbers": { "alias": "displayLargeNumbers"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; }, { "expanded": "expandedChange"; }, never, ["custom-header-content", "*"], true, never>;
30
32
  }
31
33
 
32
34
  declare class AutosuggestPanelComponent extends CoreAutosuggestPanelComponent {
@@ -389,7 +391,7 @@ declare class OptionGroupComponent implements ControlValueAccessor {
389
391
  readonly mode: _angular_core.InputSignal<OptionGroupMode>;
390
392
  readonly required: _angular_core.InputSignal<boolean>;
391
393
  readonly success: _angular_core.InputSignal<boolean>;
392
- protected readonly checkedValues: _angular_core.ModelSignal<unknown[]>;
394
+ readonly checkedValues: _angular_core.ModelSignal<unknown[]>;
393
395
  readonly disabled: _angular_core.ModelSignal<boolean>;
394
396
  protected readonly fluidColumnStyle: _angular_core.Signal<string | null>;
395
397
  readonly children: _angular_core.Signal<readonly OptionComponent[]>;
@@ -488,6 +490,7 @@ declare class ListItemComponent implements CheckableComponent {
488
490
  #private;
489
491
  active: _angular_core.ModelSignal<boolean>;
490
492
  badgeValue: _angular_core.InputSignal<number | undefined>;
493
+ displayLargeNumbers: _angular_core.InputSignal<boolean>;
491
494
  buttonIcon: _angular_core.InputSignal<string | undefined>;
492
495
  buttonLabel: _angular_core.InputSignal<string | undefined>;
493
496
  checkable: _angular_core.InputSignal<boolean>;
@@ -512,7 +515,7 @@ declare class ListItemComponent implements CheckableComponent {
512
515
  onCheckClick(event: Event): void;
513
516
  onListItemSelect(): void;
514
517
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ListItemComponent, never>;
515
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ListItemComponent, "ndw-list-item", never, { "active": { "alias": "active"; "required": false; "isSignal": true; }; "badgeValue": { "alias": "badgeValue"; "required": false; "isSignal": true; }; "buttonIcon": { "alias": "buttonIcon"; "required": false; "isSignal": true; }; "buttonLabel": { "alias": "buttonLabel"; "required": false; "isSignal": true; }; "checkable": { "alias": "checkable"; "required": false; "isSignal": true; }; "checkType": { "alias": "checkType"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "indented": { "alias": "indented"; "required": false; "isSignal": true; }; "pillColor": { "alias": "pillColor"; "required": false; "isSignal": true; }; "pillLabel": { "alias": "pillLabel"; "required": false; "isSignal": true; }; "prefixIcon": { "alias": "prefixIcon"; "required": false; "isSignal": true; }; "showButton": { "alias": "showButton"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; }, { "active": "activeChange"; "buttonClicked": "buttonClicked"; "checked": "checkedChange"; "expanded": "expandedChange"; }, never, ["*"], true, never>;
518
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ListItemComponent, "ndw-list-item", never, { "active": { "alias": "active"; "required": false; "isSignal": true; }; "badgeValue": { "alias": "badgeValue"; "required": false; "isSignal": true; }; "displayLargeNumbers": { "alias": "displayLargeNumbers"; "required": false; "isSignal": true; }; "buttonIcon": { "alias": "buttonIcon"; "required": false; "isSignal": true; }; "buttonLabel": { "alias": "buttonLabel"; "required": false; "isSignal": true; }; "checkable": { "alias": "checkable"; "required": false; "isSignal": true; }; "checkType": { "alias": "checkType"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "indented": { "alias": "indented"; "required": false; "isSignal": true; }; "pillColor": { "alias": "pillColor"; "required": false; "isSignal": true; }; "pillLabel": { "alias": "pillLabel"; "required": false; "isSignal": true; }; "prefixIcon": { "alias": "prefixIcon"; "required": false; "isSignal": true; }; "showButton": { "alias": "showButton"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; }, { "active": "activeChange"; "buttonClicked": "buttonClicked"; "checked": "checkedChange"; "expanded": "expandedChange"; }, never, ["*"], true, never>;
516
519
  }
517
520
 
518
521
  declare class ListComponent implements AfterContentInit {
@@ -749,6 +752,180 @@ declare class FavoriteComponent {
749
752
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FavoriteComponent, "ndw-favorite", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, never, true, never>;
750
753
  }
751
754
 
755
+ interface RequiredElement {
756
+ message: string;
757
+ selector: string;
758
+ title: string;
759
+ }
760
+ interface TourOptions {
761
+ modal?: boolean;
762
+ confirmCancel?: boolean;
763
+ }
764
+ interface StepImage {
765
+ url: string;
766
+ alt?: string;
767
+ }
768
+ /**
769
+ * Extended step options with NDW-specific features.
770
+ * Extends Shepherd's StepOptions with additional properties like image support.
771
+ *
772
+ * Note: When using the `image` property, the 'shepherd-has-image' class will be added automatically.
773
+ */
774
+ interface NdwStepOptions extends StepOptions {
775
+ /**
776
+ * Optional image to display at the top of the tour step
777
+ */
778
+ image?: StepImage;
779
+ }
780
+
781
+ declare class GuidedTourService {
782
+ #private;
783
+ confirmCancel: TourOptions$1['confirmCancel'];
784
+ confirmCancelMessage?: TourOptions$1['confirmCancelMessage'];
785
+ defaultStepOptions: StepOptions;
786
+ errorTitle?: string;
787
+ exitOnEsc: TourOptions$1['exitOnEsc'];
788
+ isActive: boolean;
789
+ keyboardNavigation: TourOptions$1['keyboardNavigation'];
790
+ messageForUser: string | null;
791
+ modal: boolean;
792
+ requiredElements: RequiredElement[];
793
+ tourName: TourOptions$1['tourName'];
794
+ tourObject: InstanceType<typeof Shepherd.Tour> | null;
795
+ back(): void;
796
+ cancel(): void;
797
+ complete(): void;
798
+ hide(): void;
799
+ next(): void;
800
+ /**
801
+ * Show a specific step, by passing its id
802
+ * @param id The id of the step you want to show
803
+ */
804
+ show(id: string | number): void;
805
+ start(): void;
806
+ /**
807
+ * Take a set of steps and create a tour object based on the current configuration
808
+ * @param steps An array of steps
809
+ */
810
+ addSteps(steps: StepOptions[]): void;
811
+ /**
812
+ * Observes the array of requiredElements, which are the elements that must be present at the start of the tour,
813
+ * and determines if they exist, and are visible, if either is false, it will stop the tour from executing.
814
+ */
815
+ private requiredElementsPresent;
816
+ /**
817
+ * Initializes the tour, creates a new Shepherd.Tour. sets options, and binds events
818
+ */
819
+ private _initialize;
820
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<GuidedTourService, never>;
821
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<GuidedTourService>;
822
+ }
823
+
824
+ /**
825
+ * Abstract base class for creating tour services with storage persistence.
826
+ * Extend this class to create a tour that remembers if the user has already seen it.
827
+ */
828
+ declare abstract class BaseTourService {
829
+ #private;
830
+ protected readonly guidedTourService: GuidedTourService;
831
+ protected readonly browserStorage: Storage;
832
+ protected abstract storageKey: string;
833
+ protected abstract getTourSteps(): NdwStepOptions[];
834
+ protected tourOptions: TourOptions;
835
+ /**
836
+ * Converts NdwStepOptions to Shepherd StepOptions.
837
+ * Processes image property and adds appropriate classes.
838
+ */
839
+ private processStepOptions;
840
+ startTour({ skipStorageCheck }?: {
841
+ skipStorageCheck?: boolean;
842
+ }): void;
843
+ /**
844
+ * Called when the tour is completed.
845
+ * By default, marks the tour as completed in storage.
846
+ * Override this method to add custom completion logic.
847
+ */
848
+ protected onComplete(): void;
849
+ /**
850
+ * Called when the tour is cancelled.
851
+ * By default, marks the tour as completed in storage.
852
+ * Override this method to add custom cancellation logic.
853
+ */
854
+ protected onCancel(): void;
855
+ }
856
+
857
+ declare const BROWSER_STORAGE: InjectionToken<Storage>;
858
+ type ButtonType = 'back' | 'cancel' | 'next';
859
+ declare const nextButton: {
860
+ text: string;
861
+ type: ButtonType;
862
+ classes: string;
863
+ };
864
+ declare const backButton: {
865
+ text: string;
866
+ type: ButtonType;
867
+ classes: string;
868
+ };
869
+ declare const cancelButton: {
870
+ text: string;
871
+ type: ButtonType;
872
+ classes: string;
873
+ };
874
+ declare const finishButton: {
875
+ text: string;
876
+ type: ButtonType;
877
+ classes: string;
878
+ };
879
+ declare const defaultStepOptions: {
880
+ classes: string;
881
+ scrollTo: boolean;
882
+ cancelIcon: {
883
+ enabled: boolean;
884
+ };
885
+ };
886
+ /**
887
+ * Helper function to format step text with an optional image at the top.
888
+ * When using this with an image, make sure to add 'shepherd-has-image' to the step's classes.
889
+ *
890
+ * @param text - The text content for the step (can be HTML)
891
+ * @param imageUrl - Optional URL of the image to display at the top of the step
892
+ * @param imageAlt - Optional alt text for the image (defaults to 'Tour step image')
893
+ * @returns Formatted HTML string with image (if provided) and text
894
+ *
895
+ * @example
896
+ * ```typescript
897
+ * {
898
+ * title: 'Welcome',
899
+ * text: formatStepWithImage('Description', 'https://example.com/image.jpg'),
900
+ * classes: 'shepherd-theme-ndw shepherd-has-image', // Add shepherd-has-image class
901
+ * buttons: [nextButton]
902
+ * }
903
+ * ```
904
+ */
905
+ declare const formatStepWithImage: (text: string, imageUrl?: string, imageAlt?: string) => string;
906
+
907
+ type ShepherdButton = StepOptionsButton & {
908
+ type?: 'back' | 'cancel' | 'next';
909
+ };
910
+ /**
911
+ * Creates a button of the specified type, with the given classes and text
912
+ *
913
+ * @param this The GuidedTourService instance to bind the button actions to
914
+ * @param button The button configuration
915
+ * @returns The constructed button
916
+ */
917
+ declare function makeButton(this: GuidedTourService, button: ShepherdButton): ShepherdButton;
918
+
919
+ /**
920
+ * Checks if an element is hidden from the user.
921
+ * Detects: display:none, visibility:hidden, opacity:0, zero dimensions,
922
+ * and hidden ancestors.
923
+ *
924
+ * @param element The element to check for visibility
925
+ * @returns true if element is hidden
926
+ */
927
+ declare function elementIsHidden(element: HTMLElement): boolean;
928
+
752
929
  interface HoverableListItemAction {
753
930
  id: string | number;
754
931
  icon: string;
@@ -847,7 +1024,7 @@ declare class LoaderComponent {
847
1024
 
848
1025
  declare class MapButtonComponent {
849
1026
  #private;
850
- readonly icon: _angular_core.InputSignal<"search" | "polygon" | "direction" | "gps" | "high-res" | "layers" | "zoom-in" | "zoom-out" | "add-traffic-sign" | "add-zone" | "download" | "hectometer" | "low-res" | "zoom-to-content">;
1027
+ readonly icon: _angular_core.InputSignal<"search" | "polygon" | "direction" | "gps" | "high-res" | "layers" | "zoom-in" | "zoom-out" | "mail" | "add-traffic-sign" | "add-zone" | "download" | "hectometer" | "low-res" | "zoom-to-content">;
851
1028
  readonly active: _angular_core.InputSignal<boolean>;
852
1029
  readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
853
1030
  readonly disabled: _angular_core.InputSignal<boolean>;
@@ -859,9 +1036,9 @@ declare class MapButtonComponent {
859
1036
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<MapButtonComponent, "ndw-map-button", never, { "icon": { "alias": "icon"; "required": true; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, ["*"], true, never>;
860
1037
  }
861
1038
 
862
- declare const fontMapButtonIcons: readonly ["direction", "gps", "high-res", "layers", "polygon", "search", "zoom-in", "zoom-out"];
1039
+ declare const fontMapButtonIcons: readonly ["direction", "gps", "high-res", "layers", "polygon", "search", "zoom-in", "zoom-out", "mail"];
863
1040
  declare const svgMapButtonIcons: readonly ["add-traffic-sign", "add-zone", "download", "hectometer", "low-res", "zoom-to-content"];
864
- declare const mapButtonIcons: readonly ["direction", "gps", "high-res", "layers", "polygon", "search", "zoom-in", "zoom-out", "add-traffic-sign", "add-zone", "download", "hectometer", "low-res", "zoom-to-content"];
1041
+ declare const mapButtonIcons: readonly ["direction", "gps", "high-res", "layers", "polygon", "search", "zoom-in", "zoom-out", "mail", "add-traffic-sign", "add-zone", "download", "hectometer", "low-res", "zoom-to-content"];
865
1042
  type MapButtonIcon = (typeof mapButtonIcons)[number];
866
1043
 
867
1044
  type DisplayOptionType = 'none' | 'button' | 'radio' | 'checkbox';
@@ -1094,20 +1271,25 @@ declare class RouterBreadcrumbsComponent extends CoreRouterBreadcrumbsComponent
1094
1271
  declare class SplitterComponent implements AfterViewInit, OnDestroy {
1095
1272
  readonly disabled: _angular_core.InputSignal<boolean>;
1096
1273
  /**
1097
- * Optional width of the first panel (in pixels) when the component is initialized.
1274
+ * If true, the splitter is horizontal (splits top and bottom panels).
1275
+ * Otherwise, it is vertical (splits left and right panels).
1276
+ */
1277
+ readonly horizontal: _angular_core.InputSignal<boolean>;
1278
+ /**
1279
+ * Optional size of the first panel (in pixels) when the component is initialized.
1098
1280
  */
1099
- readonly initialPanelWidth: _angular_core.InputSignal<number | undefined>;
1281
+ readonly initialPanelSize: _angular_core.InputSignal<number | null>;
1100
1282
  /**
1101
- * Minimum width of both panels (in pixels).
1283
+ * Minimum size of both panels (in pixels).
1102
1284
  */
1103
- readonly minimumPanelWidth: _angular_core.InputSignal<number>;
1104
- protected readonly firstPanelWidth: _angular_core.WritableSignal<number>;
1105
- protected readonly secondPanelWidth: _angular_core.Signal<number>;
1285
+ readonly minimumPanelSize: _angular_core.InputSignal<number>;
1286
+ protected readonly firstPanelSize: _angular_core.WritableSignal<number>;
1287
+ protected readonly secondPanelSize: _angular_core.Signal<number>;
1106
1288
  protected readonly isDragging: _angular_core.WritableSignal<boolean>;
1107
1289
  private readonly container;
1108
1290
  private readonly splitter;
1109
1291
  private readonly cdkDrag;
1110
- private storedFirstPanelWidth;
1292
+ private storedFirstPanelSize;
1111
1293
  /**
1112
1294
  * Flag to indicate if the mouse click event should be
1113
1295
  * ignored because the user is dragging the splitter.
@@ -1120,42 +1302,42 @@ declare class SplitterComponent implements AfterViewInit, OnDestroy {
1120
1302
  private readonly dragElementDimensions;
1121
1303
  private readonly resizeObserver;
1122
1304
  /**
1123
- * Available width for the panels, without considering the `minimumPanelWidth` input.
1305
+ * Available size for the panels, without considering the `minimumPanelSize` input.
1124
1306
  */
1125
- private readonly availableWidth;
1307
+ private readonly availableSize;
1126
1308
  /**
1127
1309
  * Position of the drag handle when the component is initialized.
1128
1310
  * The drag position is always relative to this starting position.
1129
1311
  */
1130
1312
  private readonly dragStartPosition;
1131
1313
  /**
1132
- * Minimum panel width that is safe to use, considering the
1133
- * available container width and the `minimumPanelWidth` input.
1314
+ * Minimum panel size that is safe to use, considering the
1315
+ * available container size and the `minimumPanelSize` input.
1134
1316
  */
1135
- protected readonly safeMinPanelWidth: _angular_core.Signal<number>;
1317
+ protected readonly safeMinPanelSize: _angular_core.Signal<number>;
1136
1318
  /**
1137
- * Maximum panel width that is safe to use, considering the
1138
- * available container width and the `minimumPanelWidth
1319
+ * Maximum panel size that is safe to use, considering the
1320
+ * available container size and the `minimumPanelSize
1139
1321
  */
1140
- protected readonly safeMaxPanelWidth: _angular_core.Signal<number>;
1322
+ protected readonly safeMaxPanelSize: _angular_core.Signal<number>;
1141
1323
  constructor();
1142
1324
  ngAfterViewInit(): void;
1143
1325
  ngOnDestroy(): void;
1144
- protected constrainPosition: (userPointerPosition: Point) => {
1326
+ protected constrainPosition: _angular_core.Signal<(userPointerPosition: Point) => {
1145
1327
  x: number;
1146
1328
  y: number;
1147
- };
1329
+ }>;
1148
1330
  protected onDragStarted(): void;
1149
1331
  protected onDragEnded(): void;
1150
1332
  protected onDragMoved(): void;
1151
1333
  protected onSplitterMouseDown(): void;
1152
1334
  protected onSplitterMouseUp(): void;
1153
1335
  protected setDragPosition(position: number): void;
1154
- protected storeFirstPanelWidth(): void;
1155
- private setFirstPanelWidth;
1156
- private clampPanelWidth;
1336
+ protected storeFirstPanelSize(): void;
1337
+ private setFirstPanelSize;
1338
+ private clampPanelSize;
1157
1339
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SplitterComponent, never>;
1158
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SplitterComponent, "ndw-splitter", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "initialPanelWidth": { "alias": "initialPanelWidth"; "required": false; "isSignal": true; }; "minimumPanelWidth": { "alias": "minimumPanelWidth"; "required": false; "isSignal": true; }; }, {}, never, ["[first-panel]", "[second-panel]"], true, never>;
1340
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SplitterComponent, "ndw-splitter", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "horizontal": { "alias": "horizontal"; "required": false; "isSignal": true; }; "initialPanelSize": { "alias": "initialPanelSize"; "required": false; "isSignal": true; }; "minimumPanelSize": { "alias": "minimumPanelSize"; "required": false; "isSignal": true; }; }, {}, never, ["[first-panel]", "[second-panel]"], true, never>;
1159
1341
  }
1160
1342
 
1161
1343
  type SummaryActionsView = 'visible' | 'popover' | 'auto';
@@ -1207,8 +1389,9 @@ declare class SummaryCardSubtitleComponent {
1207
1389
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SummaryCardSubtitleComponent, "ndw-summary-card-subtitle", never, {}, {}, never, ["ndw-icon", "*"], true, never>;
1208
1390
  }
1209
1391
 
1392
+ type SwitcherValue = string | number | boolean;
1210
1393
  interface SwitcherOption {
1211
- value: string;
1394
+ value: SwitcherValue;
1212
1395
  label: string;
1213
1396
  icon?: string;
1214
1397
  disabled?: boolean;
@@ -1217,21 +1400,21 @@ interface SwitcherOption {
1217
1400
  declare class SwitcherComponent implements ControlValueAccessor, OnInit {
1218
1401
  #private;
1219
1402
  readonly options: _angular_core.InputSignal<SwitcherOption[]>;
1220
- readonly selectedValue: _angular_core.ModelSignal<string | undefined>;
1403
+ readonly selectedValue: _angular_core.ModelSignal<SwitcherValue | undefined>;
1221
1404
  readonly disabled: _angular_core.ModelSignal<boolean>;
1222
1405
  readonly vertical: _angular_core.InputSignal<boolean>;
1223
- readonly selectionChange: _angular_core.OutputEmitterRef<string>;
1406
+ readonly selectionChange: _angular_core.OutputEmitterRef<SwitcherValue>;
1224
1407
  sliderHeight: string;
1225
1408
  sliderWidth: string;
1226
1409
  sliderPosition: string;
1227
1410
  private onChange;
1228
1411
  private onTouched;
1229
1412
  ngOnInit(): void;
1230
- writeValue(value: string): void;
1231
- registerOnChange(fn: (value: string) => void): void;
1413
+ writeValue(value: SwitcherValue): void;
1414
+ registerOnChange(fn: (value: SwitcherValue) => void): void;
1232
1415
  registerOnTouched(fn: () => void): void;
1233
1416
  setDisabledState(isDisabled: boolean): void;
1234
- selectOption(value: string): void;
1417
+ selectOption(value: SwitcherValue): void;
1235
1418
  onKeyDown(event: KeyboardEvent, _currentIndex: number): void;
1236
1419
  generateId(index: number): string;
1237
1420
  get componentName(): string;
@@ -1248,12 +1431,13 @@ declare class TabComponent implements OnInit {
1248
1431
  title: _angular_core.InputSignal<string>;
1249
1432
  disabled: _angular_core.InputSignal<boolean>;
1250
1433
  hasError: _angular_core.InputSignal<boolean>;
1434
+ icon: _angular_core.InputSignal<string | undefined>;
1251
1435
  active: boolean;
1252
1436
  id: _angular_core.InputSignal<string | number>;
1253
1437
  ngOnInit(): void;
1254
1438
  getNativeElement(): HTMLElement;
1255
1439
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabComponent, never>;
1256
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabComponent, "ndw-tab", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "hasError": { "alias": "hasError"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1440
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabComponent, "ndw-tab", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "hasError": { "alias": "hasError"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1257
1441
  }
1258
1442
 
1259
1443
  declare class TabGroupComponent implements OnDestroy {
@@ -1379,5 +1563,5 @@ declare class TooltipDirective implements OnChanges, OnDestroy, OnInit {
1379
1563
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TooltipDirective, "[ndwTooltip]", never, { "text": { "alias": "ndwTooltip"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
1380
1564
  }
1381
1565
 
1382
- export { AccordionComponent, AccordionService, AlertComponent, AutoGrowDirective, AutosuggestAddOptionComponent, AutosuggestDirective, AutosuggestOptionComponent, AutosuggestPanelComponent, AvatarComponent, BadgeComponent, BannerComponent, BreadcrumbComponent, BreadcrumbGroupComponent, ButtonDirective, CARD_COMPONENTS, CARD_ID_TOKEN, CalendarComponent, CardComponent, CardContentComponent, CardFooterComponent, CardHeaderComponent, CheckboxComponent, CheckboxGroupComponent, CollapsibleComponent, DEFAULT_BACKGROUNDS, DashboardCardComponent, DatepickerComponent, DropdownComponent, EditBarActionsComponent, EditBarComponent, EditBarMessageComponent, ErrorComponent, FavoriteComponent, FileUploadComponent, FormFieldComponent, FormFieldElement, HoverableListItemComponent, IconComponent, InfoComponent, InputButtonComponent, InputDirective, InputIconComponent, KeyValueListComponent, LayoutBannersComponent, LayoutComponent, ListComponent, ListItemComponent, LoaderComponent, MAP_BACKGROUNDS, MAP_BACKGROUND_IMAGES, MAP_LAYERS, MAP_LAYER_IMAGES, MODAL_COMPONENTS, MainNavigationComponent, MapButtonComponent, MapDisplayComponent, MapDisplayOptionComponent, MapLegendComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxCharDirective, ModalComponent, ModalContentComponent, ModalFooterComponent, ModalHeaderComponent, ModalService, MonthInputComponent, MultiSelectComponent, OptionComponent, OptionGroupComponent, PillComponent, PopoverTriggerDirective, RadioButtonComponent, RadioGroupComponent, RouterBreadcrumbsComponent, SplitterComponent, SummaryCardActionComponent, SummaryCardActionsComponent, SummaryCardComponent, SummaryCardContentComponent, SummaryCardHeaderComponent, SummaryCardSubtitleComponent, SummaryCardTagComponent, SummaryCardTagsComponent, SwitcherComponent, TabComponent, TabGroupComponent, TagComponent, ToastComponent, ToastService, TooltipComponent, TooltipDirective, fontMapButtonIcons, mapButtonIcons, ndwAgGridTheme, svgMapButtonIcons };
1383
- export type { AlertType, AvatarColor, AvatarStatus, BannerType, BaseMapLegendOption, CheckType, CheckboxData, CircleMapLegendOption, DatepickerMode, DisplayOptionDirection, DisplayOptionType, EditBarPosition, EditBarWidth, Environment, FileUploadText, HoverableListItemAction, IconMapLegendOption, ImageMapLegendOption, LineMapLegendOption, MapBackgroundOption, MapBackgrounds, MapButtonIcon, MapDisplayOption, MapLegendOption, MapLegendOptionGroup, MapLegendOptionType, MapLegendViewMode, MenuItem, ModalSize, OptionGroupMode, PolygonMapLegendOption, PopoverPosition, SelectAllText, SubMenuItem, SummaryActionsView, SwitcherOption, Theme, ToastDimensions };
1566
+ export { AccordionComponent, AccordionService, AlertComponent, AutoGrowDirective, AutosuggestAddOptionComponent, AutosuggestDirective, AutosuggestOptionComponent, AutosuggestPanelComponent, AvatarComponent, BROWSER_STORAGE, BadgeComponent, BannerComponent, BaseTourService, BreadcrumbComponent, BreadcrumbGroupComponent, ButtonDirective, CARD_COMPONENTS, CARD_ID_TOKEN, CalendarComponent, CardComponent, CardContentComponent, CardFooterComponent, CardHeaderComponent, CheckboxComponent, CheckboxGroupComponent, CollapsibleComponent, DEFAULT_BACKGROUNDS, DashboardCardComponent, DatepickerComponent, DropdownComponent, EditBarActionsComponent, EditBarComponent, EditBarMessageComponent, ErrorComponent, FavoriteComponent, FileUploadComponent, FormFieldComponent, FormFieldElement, GuidedTourService, HoverableListItemComponent, IconComponent, InfoComponent, InputButtonComponent, InputDirective, InputIconComponent, KeyValueListComponent, LayoutBannersComponent, LayoutComponent, ListComponent, ListItemComponent, LoaderComponent, MAP_BACKGROUNDS, MAP_BACKGROUND_IMAGES, MAP_LAYERS, MAP_LAYER_IMAGES, MODAL_COMPONENTS, MainNavigationComponent, MapButtonComponent, MapDisplayComponent, MapDisplayOptionComponent, MapLegendComponent, MarkdownEditorComponent, MarkdownParserComponent, MaxCharDirective, ModalComponent, ModalContentComponent, ModalFooterComponent, ModalHeaderComponent, ModalService, MonthInputComponent, MultiSelectComponent, OptionComponent, OptionGroupComponent, PillComponent, PopoverTriggerDirective, RadioButtonComponent, RadioGroupComponent, RouterBreadcrumbsComponent, SplitterComponent, SummaryCardActionComponent, SummaryCardActionsComponent, SummaryCardComponent, SummaryCardContentComponent, SummaryCardHeaderComponent, SummaryCardSubtitleComponent, SummaryCardTagComponent, SummaryCardTagsComponent, SwitcherComponent, TabComponent, TabGroupComponent, TagComponent, ToastComponent, ToastService, TooltipComponent, TooltipDirective, backButton, cancelButton, defaultStepOptions, elementIsHidden, finishButton, fontMapButtonIcons, formatStepWithImage, makeButton, mapButtonIcons, ndwAgGridTheme, nextButton, svgMapButtonIcons };
1567
+ export type { AlertType, AvatarColor, AvatarStatus, BannerType, BaseMapLegendOption, CheckType, CheckboxData, CircleMapLegendOption, DatepickerMode, DisplayOptionDirection, DisplayOptionType, EditBarPosition, EditBarWidth, Environment, FileUploadText, HoverableListItemAction, IconMapLegendOption, ImageMapLegendOption, LineMapLegendOption, MapBackgroundOption, MapBackgrounds, MapButtonIcon, MapDisplayOption, MapLegendOption, MapLegendOptionGroup, MapLegendOptionType, MapLegendViewMode, MenuItem, ModalSize, NdwStepOptions, OptionGroupMode, PolygonMapLegendOption, PopoverPosition, RequiredElement, SelectAllText, ShepherdButton, StepImage, SubMenuItem, SummaryActionsView, SwitcherOption, SwitcherValue, Theme, ToastDimensions, TourOptions };