@ndwnu/design-system 12.3.0 → 13.0.1
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/fesm2022/ndwnu-design-system.mjs +705 -382
- package/fesm2022/ndwnu-design-system.mjs.map +1 -1
- package/package.json +12 -11
- package/styles/components/_guided-tour.scss +70 -0
- package/styles/components/_input.scss +13 -0
- package/styles/components/_menu-button.scss +1 -1
- package/styles/components/index.scss +1 -0
- package/styles/storybook/overrides.css +8 -8
- package/{index.d.ts → types/ndwnu-design-system.d.ts} +220 -36
package/package.json
CHANGED
|
@@ -1,30 +1,31 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ndwnu/design-system",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "13.0.1",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/cdk": "^
|
|
6
|
-
"@angular/common": "^
|
|
7
|
-
"@angular/core": "^
|
|
8
|
-
"@angular/forms": "^
|
|
9
|
-
"@angular/material": "^
|
|
10
|
-
"@angular/router": "^
|
|
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": "3.0.0",
|
|
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": "
|
|
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": "./
|
|
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] {
|
|
@@ -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:
|
|
46
|
-
--_secondary-100:
|
|
47
|
-
--_secondary-200:
|
|
48
|
-
--_secondary-300:
|
|
49
|
-
--_secondary-400:
|
|
50
|
-
--_secondary-500:
|
|
51
|
-
--_secondary-600:
|
|
52
|
-
--_secondary-700:
|
|
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
|
-
|
|
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
|
-
*
|
|
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
|
|
1281
|
+
readonly initialPanelSize: _angular_core.InputSignal<number | null>;
|
|
1100
1282
|
/**
|
|
1101
|
-
* Minimum
|
|
1283
|
+
* Minimum size of both panels (in pixels).
|
|
1102
1284
|
*/
|
|
1103
|
-
readonly
|
|
1104
|
-
protected readonly
|
|
1105
|
-
protected readonly
|
|
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
|
|
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
|
|
1305
|
+
* Available size for the panels, without considering the `minimumPanelSize` input.
|
|
1124
1306
|
*/
|
|
1125
|
-
private readonly
|
|
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
|
|
1133
|
-
* available container
|
|
1314
|
+
* Minimum panel size that is safe to use, considering the
|
|
1315
|
+
* available container size and the `minimumPanelSize` input.
|
|
1134
1316
|
*/
|
|
1135
|
-
protected readonly
|
|
1317
|
+
protected readonly safeMinPanelSize: _angular_core.Signal<number>;
|
|
1136
1318
|
/**
|
|
1137
|
-
* Maximum panel
|
|
1138
|
-
* available container
|
|
1319
|
+
* Maximum panel size that is safe to use, considering the
|
|
1320
|
+
* available container size and the `minimumPanelSize
|
|
1139
1321
|
*/
|
|
1140
|
-
protected readonly
|
|
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
|
|
1155
|
-
private
|
|
1156
|
-
private
|
|
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; }; "
|
|
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:
|
|
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<
|
|
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<
|
|
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:
|
|
1231
|
-
registerOnChange(fn: (value:
|
|
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:
|
|
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 };
|