@sassoftware/vi-api 1.51.0 → 1.51.2
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/README.md +1 -1
- package/control/control-api.d.ts +28 -17
- package/event/event-api.d.ts +2 -1
- package/event/event-api.js +1 -0
- package/package.json +1 -1
- package/page-model/page-model-api.d.ts +3 -1
- package/page-state/page-state-api.d.ts +2 -2
- package/page-template/page-template-api.d.ts +1 -1
- package/property/property-api.d.ts +1 -1
- package/search/client/client-search-api.d.ts +7 -8
- package/shell-tabs/shell-tabs-api.d.ts +58 -58
- package/shell-tabs/shell-tabs-lifecycle-api.d.ts +7 -7
- package/svi-datahub/index.d.ts +17 -17
- package/svi-datahub/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ The [SAS Visual Investigator](https://www.sas.com/en_us/software/intelligence-an
|
|
|
4
4
|
|
|
5
5
|
## Getting Started
|
|
6
6
|
|
|
7
|
-
For documentation and examples
|
|
7
|
+
For documentation and examples, see the SAS [Solution Extension GitHub](https://github.com/sassoftware/vi-solution-extensions).
|
|
8
8
|
|
|
9
9
|
### Installation
|
|
10
10
|
To use the API, install the NPM package [@sassoftware/vi-api](https://www.npmjs.com/package/@sassoftware/vi-api):
|
package/control/control-api.d.ts
CHANGED
|
@@ -40,7 +40,7 @@ export interface ControlMemberApi<ControlTypeAttributes extends TypeAttributes =
|
|
|
40
40
|
readonly admin: ControlAdminApi;
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
|
-
* This Control API
|
|
43
|
+
* This Control API relates to functionality that checks the state, registers event handlers, and so on.
|
|
44
44
|
*/
|
|
45
45
|
export interface ControlApiBase<ControlTypeAttributes extends TypeAttributes = TypeAttributes, ControlFieldType extends FieldType = never> {
|
|
46
46
|
/**
|
|
@@ -51,12 +51,13 @@ export interface ControlApiBase<ControlTypeAttributes extends TypeAttributes = T
|
|
|
51
51
|
readonly type: string;
|
|
52
52
|
/**
|
|
53
53
|
* Control Mask
|
|
54
|
-
* @deprecated
|
|
55
|
-
|
|
54
|
+
* @deprecated Use `api.control.masking.isConfiguredForMasking` instead.
|
|
55
|
+
*/
|
|
56
56
|
isMaskedControl(): boolean;
|
|
57
|
-
/**
|
|
58
|
-
*
|
|
59
|
-
|
|
57
|
+
/**
|
|
58
|
+
* Control Mask Authorization
|
|
59
|
+
* @deprecated Use `api.control.masking.isAuthorizedToUnmask` instead.
|
|
60
|
+
*/
|
|
60
61
|
isAuthorizedToUnmask(): boolean;
|
|
61
62
|
/**
|
|
62
63
|
* Sets the value of the control's field.
|
|
@@ -83,7 +84,7 @@ export interface ControlApiBase<ControlTypeAttributes extends TypeAttributes = T
|
|
|
83
84
|
* Returns the client field properties that are associated with the calling control.
|
|
84
85
|
* Field must be configured as dataSource in the control's typeAttributes.
|
|
85
86
|
* @method
|
|
86
|
-
* @returns The field
|
|
87
|
+
* @returns The client field properties that should be applied.
|
|
87
88
|
*/
|
|
88
89
|
getClientFieldProperties(): FieldTypeToClientFieldProperties<ControlFieldType> | undefined;
|
|
89
90
|
/**
|
|
@@ -107,12 +108,12 @@ export interface ControlApiBase<ControlTypeAttributes extends TypeAttributes = T
|
|
|
107
108
|
*/
|
|
108
109
|
getControl(): Control<ControlTypeAttributes>;
|
|
109
110
|
/**
|
|
110
|
-
* Access the Control Data Masking API
|
|
111
|
+
* Access the Control Data Masking API.
|
|
111
112
|
*/
|
|
112
113
|
masking: MaskingControlApi;
|
|
113
114
|
}
|
|
114
115
|
/**
|
|
115
|
-
* This API
|
|
116
|
+
* This API relates to administration functionality for controls, for example registering resources.
|
|
116
117
|
*
|
|
117
118
|
* @category API
|
|
118
119
|
*/
|
|
@@ -209,7 +210,7 @@ export interface ControlStateApi {
|
|
|
209
210
|
/**
|
|
210
211
|
* Returns the masked state of the calling control.
|
|
211
212
|
* True if the control is masked, otherwise false.
|
|
212
|
-
* @deprecated
|
|
213
|
+
* @deprecated Use `api.control.masking.isMasked` instead.
|
|
213
214
|
*/
|
|
214
215
|
readonly maskActive: boolean;
|
|
215
216
|
/**
|
|
@@ -233,6 +234,11 @@ export interface ControlStateApi {
|
|
|
233
234
|
* @method
|
|
234
235
|
*/
|
|
235
236
|
update(): void;
|
|
237
|
+
/**
|
|
238
|
+
* Cleans up any resources held by the ControlStateApi instance.
|
|
239
|
+
* @ignore
|
|
240
|
+
*/
|
|
241
|
+
destroy(): void;
|
|
236
242
|
}
|
|
237
243
|
/**
|
|
238
244
|
* API methods related to object fields associated with a page.
|
|
@@ -406,7 +412,7 @@ export interface ControlPageApi extends ControlPageApiBase {
|
|
|
406
412
|
reloadRefreshableControls(categoryToRefresh?: string, controlToRefresh?: Control): void;
|
|
407
413
|
/**
|
|
408
414
|
* @method
|
|
409
|
-
* @returns True if any RefreshableControls have options.requiresIndex present. Otherwise false
|
|
415
|
+
* @returns True if any RefreshableControls have options.requiresIndex present. Otherwise, false.
|
|
410
416
|
*/
|
|
411
417
|
hasAnyRefreshableControlRequiresIndex(): boolean;
|
|
412
418
|
/**
|
|
@@ -423,10 +429,10 @@ export interface ControlPageApi extends ControlPageApiBase {
|
|
|
423
429
|
* Toggle the page-level sliding panel. This panel should be used to contain information that is
|
|
424
430
|
* supplementary to the document, for example attachments or workflow tasks.
|
|
425
431
|
* @method
|
|
426
|
-
* @param [sectionLabel] {string} Describes the section
|
|
432
|
+
* @param [sectionLabel] {string} Describes the section; this should be internationalized.
|
|
427
433
|
* @param [content] {SlidingPanelContent} The content of the sliding panel.
|
|
428
434
|
* @param [panelProperties] {SlidingPanelProperties} Properties for the panel.
|
|
429
|
-
* When providing a
|
|
435
|
+
* When providing a URL for content: the panel properties will be available on the controller's "slidingPanel" object.
|
|
430
436
|
* When providing a selector for content: the properties will be set on the element to be created.
|
|
431
437
|
* @param [onClose] {function} A callback function invoked when the panel is dismissed. There are no parameters. Returns void.
|
|
432
438
|
* @param [focusPreviousActiveElementOnClose] {boolean} Toggle for whether the app should apply focus to the last active element before the panel was opened.
|
|
@@ -474,12 +480,18 @@ export interface ControlPageApi extends ControlPageApiBase {
|
|
|
474
480
|
*/
|
|
475
481
|
save(stopEditing: boolean, closeObject: boolean): Promise<void>;
|
|
476
482
|
/**
|
|
477
|
-
* Access the Page Data Masking API
|
|
483
|
+
* Access the Page Data Masking API.
|
|
478
484
|
*/
|
|
479
485
|
masking: MaskingPageApi;
|
|
486
|
+
/**
|
|
487
|
+
* Register a callback function that is invoked when the page that contains the current control is navigated back to.
|
|
488
|
+
* Useful for updating homepage controls whose config sets "reuse" to true and need to update when the homepage is reloaded.
|
|
489
|
+
* @method
|
|
490
|
+
* @param callback {function} The function to be invoked.
|
|
491
|
+
*/
|
|
480
492
|
onNavigationStart(callback: () => void): void;
|
|
481
493
|
/**
|
|
482
|
-
* Checks if the sliding panel is pinned
|
|
494
|
+
* Checks if the sliding panel is pinned.
|
|
483
495
|
* @returns A boolean value that checks whether the sliding panel is pinned.
|
|
484
496
|
*/
|
|
485
497
|
isSlidingPanelPinned(): boolean | undefined;
|
|
@@ -564,8 +576,7 @@ export interface ControlFileApi extends ControlFileApiBase {
|
|
|
564
576
|
* Equivalent to {@link PageEventsApiBase} with the exception that event hooks will be scoped to the page on which the calling control resides.
|
|
565
577
|
* @extends PageEventsApiBase
|
|
566
578
|
*/
|
|
567
|
-
export
|
|
568
|
-
}
|
|
579
|
+
export type ControlPageEventsApi = PageEventsApiBase;
|
|
569
580
|
export interface FieldNotOnPageError {
|
|
570
581
|
name: "FieldNotOnPageError";
|
|
571
582
|
message: string;
|
package/event/event-api.d.ts
CHANGED
|
@@ -20,7 +20,8 @@ export declare enum PageEvents {
|
|
|
20
20
|
MaskEvent = "spb::mask",
|
|
21
21
|
UnmaskEvent = "spb::unmask",
|
|
22
22
|
MaskResetEvent = "spb::mask-reset",
|
|
23
|
-
ClearDateFieldEvent = "spb::clear-date-field"
|
|
23
|
+
ClearDateFieldEvent = "spb::clear-date-field",
|
|
24
|
+
BroadcastControlEvent = "spb::broadcast-control-change"
|
|
24
25
|
}
|
|
25
26
|
export declare enum DocumentGeneratorEvents {
|
|
26
27
|
AfterDocumentGenerated = "docgen::after-document-generated"
|
package/event/event-api.js
CHANGED
|
@@ -22,6 +22,7 @@ export var PageEvents;
|
|
|
22
22
|
PageEvents["UnmaskEvent"] = "spb::unmask";
|
|
23
23
|
PageEvents["MaskResetEvent"] = "spb::mask-reset";
|
|
24
24
|
PageEvents["ClearDateFieldEvent"] = "spb::clear-date-field";
|
|
25
|
+
PageEvents["BroadcastControlEvent"] = "spb::broadcast-control-change";
|
|
25
26
|
})(PageEvents || (PageEvents = {}));
|
|
26
27
|
export var DocumentGeneratorEvents;
|
|
27
28
|
(function (DocumentGeneratorEvents) {
|
package/package.json
CHANGED
|
@@ -4,6 +4,7 @@ import { FileOperation, SASObjectAttachedFile } from "../file/file-api";
|
|
|
4
4
|
import { ObjectFieldRestrictions } from "../object/object-api";
|
|
5
5
|
import { PathsRepresentation } from "../svi-sand";
|
|
6
6
|
import { TemplateFileCategoryAssociationDTO } from "../svi-datahub";
|
|
7
|
+
import { ClientFieldProperties } from "../control/client-field-properties";
|
|
7
8
|
export declare enum PageMode {
|
|
8
9
|
Create = "create",
|
|
9
10
|
Edit = "edit",
|
|
@@ -47,6 +48,7 @@ export interface PageModelObjectData {
|
|
|
47
48
|
displayLabel?: string;
|
|
48
49
|
fieldRestrictions?: ObjectFieldRestrictions;
|
|
49
50
|
fileRestrictions?: Record<string, Record<string, FileRestrictions>>;
|
|
51
|
+
clientFieldProperties?: Record<string, Record<string, ClientFieldProperties>>;
|
|
50
52
|
id?: string;
|
|
51
53
|
linkedPages?: LinkedPage[];
|
|
52
54
|
mode?: PageMode;
|
|
@@ -170,7 +172,7 @@ export interface IPageEvent<T extends IPageEventData> {
|
|
|
170
172
|
addPostHook(hook: IPostPageEventHook<T>): PageEventHookRemove;
|
|
171
173
|
/**
|
|
172
174
|
* @method
|
|
173
|
-
* @description
|
|
175
|
+
* @description Run pre-hooks, execute the action, run post hooks.
|
|
174
176
|
* @param payload is passed as input for any event hooks.
|
|
175
177
|
* @param action the action to perform.
|
|
176
178
|
*/
|
|
@@ -12,7 +12,7 @@ export interface ObjectPageDesignerState {
|
|
|
12
12
|
primaryDataSource: StoredObjectDTO;
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
|
-
* This API provides functionality that
|
|
15
|
+
* This API provides functionality that relates to the page state.
|
|
16
16
|
* Accessed from the window at `window.sas.vi.pageState`.
|
|
17
17
|
*
|
|
18
18
|
* @example window.sas.vi.pageState.getCurrent();
|
|
@@ -51,7 +51,7 @@ export interface PageStateApi {
|
|
|
51
51
|
*/
|
|
52
52
|
getCurrentHomepageDesigner(): HomepageDesignerState | undefined;
|
|
53
53
|
/**
|
|
54
|
-
* Gives the currently active object
|
|
54
|
+
* Gives the currently active object page's state, or undefined if an object page
|
|
55
55
|
* designer tab is not active.
|
|
56
56
|
*/
|
|
57
57
|
getCurrentObjectPageDesigner(): ObjectPageDesignerState | undefined;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Template, TemplateResourceSummary } from "../svi-datahub";
|
|
2
2
|
import { ApplicationType, TemplateType } from "../page-admin/page-admin-api";
|
|
3
3
|
/**
|
|
4
|
-
* This API provides functionality that
|
|
4
|
+
* This API provides functionality that relates to the page templates.
|
|
5
5
|
*
|
|
6
6
|
* Accessed from the window at `window.sas.vi.pageTemplate`.
|
|
7
7
|
*
|
|
@@ -92,7 +92,7 @@ export interface EditorApi {
|
|
|
92
92
|
onPropertyChange(handler: (category: string, property: string, currentValue: any, previousValue: any) => void): () => void;
|
|
93
93
|
}
|
|
94
94
|
/**
|
|
95
|
-
* This API
|
|
95
|
+
* This API relates to page/toolbar control properties in SAS Visual Investigator.
|
|
96
96
|
*
|
|
97
97
|
* Accessed from the window at `window.sas.vi.property`.
|
|
98
98
|
*
|
|
@@ -40,8 +40,7 @@ export interface NetworkData {
|
|
|
40
40
|
};
|
|
41
41
|
numNodes: number;
|
|
42
42
|
}
|
|
43
|
-
export
|
|
44
|
-
}
|
|
43
|
+
export type SearchAndCreateDialogModel = CreateRelationshipDialogModel<SearchAndCreateResponse>;
|
|
45
44
|
export interface SearchDialogModel extends SearchOrCreateAndLinkDialogBase<SearchDialogResponse> {
|
|
46
45
|
canCreate?: boolean;
|
|
47
46
|
}
|
|
@@ -61,7 +60,7 @@ export interface SearchAndCreateResponse {
|
|
|
61
60
|
relateToModel?: SearchAndCreateRelateToModel;
|
|
62
61
|
}
|
|
63
62
|
/**
|
|
64
|
-
* {@link SearchApi} extension
|
|
63
|
+
* {@link SearchApi} extension relates to functionality related to SAS Visual Investigator's search capabilities.
|
|
65
64
|
* These additional methods are available only in the SAS Visual Investigator Investigate and Search interface.
|
|
66
65
|
*
|
|
67
66
|
* Accessed from the window at `window.sas.vi.search`.
|
|
@@ -83,13 +82,13 @@ export interface ClientSearchApi extends SearchApi {
|
|
|
83
82
|
* @description Performs a search against the svi-sand service and navigates the user to the Search Results page.
|
|
84
83
|
* @param queryText {string} Text used to form the query.
|
|
85
84
|
* @param visualizationName {"summary" | "map" | "table"} Visualization to query for and then display to the user.
|
|
86
|
-
* @param [mapFilters] {MapFilter[]} The map filter object to include with the search query. This can consist of MapBoundedPolygonFilter, MapRadiusFilter, MapBoundedBoxFilter or MapShapeFilter.
|
|
85
|
+
* @param [mapFilters] {MapFilter[]} The map filter object to include with the search query. This can consist of MapBoundedPolygonFilter, MapRadiusFilter, MapBoundedBoxFilter, or MapShapeFilter.
|
|
87
86
|
* @param [queryMode] {"standard" | "phonetic" | "synonym"} Used to perform phonetic and synonym searches. Default: "standard".
|
|
88
87
|
*/
|
|
89
88
|
navigateSearch(queryText: string, visualizationName: SearchVisualization, mapFilters?: MapFilter[], queryMode?: QueryMode[]): Promise<void>;
|
|
90
89
|
/**
|
|
91
90
|
* @method
|
|
92
|
-
* @description Gets the current search query if one exists. Otherwise undefined.
|
|
91
|
+
* @description Gets the current search query if one exists. Otherwise, undefined.
|
|
93
92
|
*/
|
|
94
93
|
getCurrentSearchQuery(): SearchQuery | undefined;
|
|
95
94
|
/**
|
|
@@ -127,7 +126,7 @@ export interface ClientSearchApi extends SearchApi {
|
|
|
127
126
|
* @method
|
|
128
127
|
* @description Adds an image to the Insights selected in the "Add image to Insights" dialog.
|
|
129
128
|
* @param imageData {Uint8Array} Image to add.
|
|
130
|
-
* @param contentType {string} This is used in the content-type header when the file is uploaded. For example 'image/png'.
|
|
129
|
+
* @param contentType {string} This is used in the content-type header when the file is uploaded. For example, 'image/png'.
|
|
131
130
|
* @param [height] {string} Height of the Insights cell.
|
|
132
131
|
* @param [width] {string} Width of the Insights cell.
|
|
133
132
|
*/
|
|
@@ -146,7 +145,7 @@ export interface ClientSearchApi extends SearchApi {
|
|
|
146
145
|
addToNewWorkspace(objectsToAdd: ObjectIdentifier[], targetObjectType: string, targetObjectId?: string, visualization?: Visualization, workspaceName?: string, networkData?: NetworkData): Promise<void>;
|
|
147
146
|
/**
|
|
148
147
|
* @method
|
|
149
|
-
* @description Launches a wizard allowing users to search
|
|
148
|
+
* @description Launches a wizard allowing users to search before creating an object/relationship.
|
|
150
149
|
* The relationship wizard is determined by the relateToParentLabel or relateToParentName defined in the wizardValues parameter.
|
|
151
150
|
* @param wizardValues {SearchAndCreateDialogModel} Object containing entity and relationship data.
|
|
152
151
|
* @returns A Promise that resolves when the dialog box is closed.
|
|
@@ -154,7 +153,7 @@ export interface ClientSearchApi extends SearchApi {
|
|
|
154
153
|
openSearchAndCreateDialog(wizardValues: SearchAndCreateDialogModel): Promise<SearchAndCreateDialogModel>;
|
|
155
154
|
/**
|
|
156
155
|
* @method
|
|
157
|
-
* @description Launches a wizard allowing users to search
|
|
156
|
+
* @description Launches a wizard allowing users to search before creating an object/relationship.
|
|
158
157
|
* The relationship wizard is determined by the relateToParentLabel or relateToParentName defined in the wizardValues parameter.
|
|
159
158
|
* @param wizardValues {SearchDialogModel} Object containing entity and relationship data.
|
|
160
159
|
* @returns A Promise that resolves when the dialog box is closed.
|
|
@@ -12,45 +12,45 @@ export interface INavigationBarTabs<D1 = any, D2 = D1> {
|
|
|
12
12
|
export interface INavigationBarTab<D = {
|
|
13
13
|
[key: string]: any;
|
|
14
14
|
}, SecondaryData = D> {
|
|
15
|
-
/**
|
|
15
|
+
/** Unique tab identifier */
|
|
16
16
|
id: string;
|
|
17
|
-
/**
|
|
17
|
+
/** URL relative to shell root (e.g., /user/123) - must start with a forward slash */
|
|
18
18
|
routeUrl: string;
|
|
19
|
-
/**
|
|
19
|
+
/** Label for the tab, can be a string or resource key (if isLabelResourceKey is true) */
|
|
20
20
|
label: string;
|
|
21
|
-
/**
|
|
22
|
-
* doesn't
|
|
23
|
-
|
|
21
|
+
/** Weight used during sorting to order the tabs; defaults to the order in which tabs were added.
|
|
22
|
+
* This doesn't refer to array index, as many tabs can have the same value, including negatives and fractions.
|
|
23
|
+
*/
|
|
24
24
|
sortIndex?: number;
|
|
25
|
-
/**
|
|
25
|
+
/** When true, uses resourceService.get to resolve INavigationBarTab.label */
|
|
26
26
|
isLabelResourceKey?: boolean;
|
|
27
|
-
/**
|
|
27
|
+
/** Font icon */
|
|
28
28
|
icon?: string;
|
|
29
|
-
/**
|
|
29
|
+
/** Image URL */
|
|
30
30
|
img?: string;
|
|
31
|
-
/** aria-controls
|
|
31
|
+
/** aria-controls ID */
|
|
32
32
|
controlsId?: string;
|
|
33
|
-
/**
|
|
33
|
+
/** List of secondary tabs displayed under the top-level tab */
|
|
34
34
|
secondaryTabs?: Array<ISecondaryNavigationBarTab<SecondaryData>>;
|
|
35
|
-
/**
|
|
35
|
+
/** Currently selected secondary tab */
|
|
36
36
|
selectedSecondaryTab?: ISecondaryNavigationBarTab<SecondaryData>;
|
|
37
|
-
/**
|
|
37
|
+
/** Callback to configure save confirmation actions on close */
|
|
38
38
|
getSaveOptions?(tab: INavigationBarTab): INavigationBarTabSaveOptions | undefined;
|
|
39
|
-
/**
|
|
39
|
+
/** Callback executed when tab is removed */
|
|
40
40
|
onClose?(tab: INavigationBarTab): Promise<boolean> | Observable<boolean> | boolean;
|
|
41
|
-
/**
|
|
41
|
+
/** Mark tab as having unsaved changes */
|
|
42
42
|
dirty?: boolean;
|
|
43
|
-
/**
|
|
43
|
+
/** Visually disable and make tab unselectable */
|
|
44
44
|
disabled?: boolean;
|
|
45
|
-
/**
|
|
45
|
+
/** Visually hide tab and make it unselectable */
|
|
46
46
|
hidden?: boolean;
|
|
47
|
-
/**
|
|
47
|
+
/** Exclude tab from appearing in the navigation bar system tab menu */
|
|
48
48
|
excludedFromSystemMenu?: boolean;
|
|
49
|
-
/**
|
|
49
|
+
/** Visually hide secondary tabs bar for this tab */
|
|
50
50
|
hideSecondaryTabs?: boolean;
|
|
51
|
-
/**
|
|
51
|
+
/** Indicate that the tab is associated with a new object being created */
|
|
52
52
|
creating?: boolean;
|
|
53
|
-
/**
|
|
53
|
+
/** Any additional data to be associated with the tab */
|
|
54
54
|
data?: D;
|
|
55
55
|
}
|
|
56
56
|
export type ISecondaryNavigationBarTab<D = {
|
|
@@ -58,15 +58,15 @@ export type ISecondaryNavigationBarTab<D = {
|
|
|
58
58
|
}> = Omit<INavigationBarTab<D>, "secondaryTabs" | "selectedSecondaryTab">;
|
|
59
59
|
export interface SviShellTabData {
|
|
60
60
|
/**
|
|
61
|
-
*
|
|
62
|
-
*
|
|
61
|
+
* Required user capabilities for the tab.
|
|
62
|
+
* If unmet, the tab is hidden and cannot be navigated to.
|
|
63
63
|
* @example
|
|
64
64
|
* { or: ["svi.administration.alerts", "svi.vsd.flow.view"] }
|
|
65
65
|
*/
|
|
66
66
|
requiredCapabilities?: RequiredResourcesExpression;
|
|
67
67
|
/**
|
|
68
68
|
* REST APIs required by the tab's content.
|
|
69
|
-
*
|
|
69
|
+
* If unavailable, the tab is hidden and cannot be navigated to.
|
|
70
70
|
* @example
|
|
71
71
|
* { and: ["svi-alert", "documentGeneratorAdapter"] }
|
|
72
72
|
*/
|
|
@@ -82,41 +82,41 @@ export interface SviShellTabData {
|
|
|
82
82
|
}
|
|
83
83
|
export interface ExternalTabConfig<T = SviShellTabData, P = any> {
|
|
84
84
|
/**
|
|
85
|
-
*
|
|
85
|
+
* Will try to place at this index, can be negative, fraction, etc. to put before/between existing tabs.
|
|
86
86
|
*/
|
|
87
87
|
sortIndex?: number;
|
|
88
88
|
/**
|
|
89
|
-
*
|
|
89
|
+
* Finds TabId, and adds this as a secondaryTab to that tab.
|
|
90
90
|
*/
|
|
91
91
|
mainTabId?: string;
|
|
92
92
|
/**
|
|
93
|
-
*
|
|
93
|
+
* This is the element/tag name that will be presented.
|
|
94
94
|
*/
|
|
95
95
|
elementName: string;
|
|
96
96
|
/**
|
|
97
|
-
*
|
|
98
|
-
*
|
|
97
|
+
* This is the URL that the tab will be registered under.
|
|
98
|
+
* Technically it's just a unique ID as this will be used to unregister a route and close any related tab(s).
|
|
99
99
|
*/
|
|
100
100
|
configUrl: string;
|
|
101
101
|
/**
|
|
102
|
-
*
|
|
103
|
-
* fullUrl is the full URL that relates to the tab, useful when catching wildcards
|
|
104
|
-
* params is constructed as of /:param1/:param2, so {param1: string, param2: string}
|
|
105
|
-
*
|
|
102
|
+
* Function to return {@link INavigationBarTab}. Remember routeUrl is from baseURL with a leading /.
|
|
103
|
+
* fullUrl is the full URL that relates to the tab, useful when catching wildcards.
|
|
104
|
+
* params is constructed as of /:param1/:param2, so {param1: string, param2: string}.
|
|
105
|
+
* Be aware fullUrl/params will be undefined if buildOnRegister is true.
|
|
106
106
|
*/
|
|
107
107
|
buildTab: (fullUrl?: string, params?: P) => INavigationBarTab<T>;
|
|
108
108
|
/**
|
|
109
|
-
*
|
|
109
|
+
* Add as a system tab. If left out will default to application tab, ignored if mainTabId is defined.
|
|
110
110
|
*/
|
|
111
111
|
systemTab?: boolean;
|
|
112
112
|
/**
|
|
113
|
-
*
|
|
113
|
+
* Set this to true if you want the component to reset every time you navigate away.
|
|
114
114
|
*/
|
|
115
115
|
doNotReuse?: boolean;
|
|
116
116
|
/**
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
117
|
+
* Set this to true if you want buildTab to run when registered (e.g. for a system tab that's always there).
|
|
118
|
+
* If your buildTab takes params, this cannot be provided and must be assumed undefined.
|
|
119
|
+
* A secondaryTab (one that has mainTabId) will be created regardless of this flag.
|
|
120
120
|
*/
|
|
121
121
|
buildOnRegister?: boolean;
|
|
122
122
|
}
|
|
@@ -132,27 +132,27 @@ export interface ShellTabsApi<T = SviShellTabData> {
|
|
|
132
132
|
/**
|
|
133
133
|
* @method
|
|
134
134
|
* @description This is used to expose any {@link PotentialTabItem} hooks on a component up to the Tab Service.
|
|
135
|
-
* @param {any} context
|
|
136
|
-
* @param {HTMLElement} nativeElement This will pass the ElementRef for the component
|
|
135
|
+
* @param {any} context Pass "this".
|
|
136
|
+
* @param {HTMLElement} nativeElement This will pass the ElementRef for the component.
|
|
137
137
|
*
|
|
138
|
-
* onTabClose {@link OnTabClose}, optional, can be used to prevent closing of a tab or close async
|
|
139
|
-
* onAttachTab {@link OnAttachTab}, will always trigger when currentNavigationBarTab
|
|
140
|
-
* onAttachToolbar {@link TabWithToolbar}, optional, will set currentToolbar if there was a toolbar in the VI Router
|
|
141
|
-
* onTabEnter {@link OnTabEnter}, optional, will trigger when tab is entered
|
|
142
|
-
* onTabLeave {@link OnTabLeave}, optional, will trigger when tab is left
|
|
143
|
-
* onTabSaveConfirm {@link OnTabSaveConfirm}, optional, basic dialog box can be created
|
|
138
|
+
* onTabClose {@link OnTabClose}, optional, can be used to prevent closing of a tab or close async.
|
|
139
|
+
* onAttachTab {@link OnAttachTab}, will always trigger when currentNavigationBarTab is set.
|
|
140
|
+
* onAttachToolbar {@link TabWithToolbar}, optional, will set currentToolbar if there was a toolbar in the VI Router.
|
|
141
|
+
* onTabEnter {@link OnTabEnter}, optional, will trigger when tab is entered.
|
|
142
|
+
* onTabLeave {@link OnTabLeave}, optional, will trigger when tab is left.
|
|
143
|
+
* onTabSaveConfirm {@link OnTabSaveConfirm}, optional, basic dialog box can be created when closing a dirty tab.
|
|
144
144
|
*/
|
|
145
145
|
createTabApiForElement: (context: any, nativeElement: HTMLElement) => void;
|
|
146
146
|
/**
|
|
147
147
|
* @method
|
|
148
148
|
* @description Use this function to register new routes for tabs.
|
|
149
|
-
* @param {ExternalTabConfig[]} tab See {@link ExternalTabConfig}
|
|
149
|
+
* @param {ExternalTabConfig[]} tab See {@link ExternalTabConfig}.
|
|
150
150
|
*/
|
|
151
151
|
registerExternalTabs: (tab: Array<ExternalTabConfig<T>>) => void;
|
|
152
152
|
/**
|
|
153
153
|
* @method
|
|
154
154
|
* @description Use this function to remove routes added via registerTabFn.
|
|
155
|
-
* @param {ExternalTabConfig[]} tabsToRemove See {@link ExternalTabConfig}
|
|
155
|
+
* @param {ExternalTabConfig[]} tabsToRemove See {@link ExternalTabConfig}.
|
|
156
156
|
*/
|
|
157
157
|
unregisterExternalTabs: (tabsToRemove: Array<ExternalTabConfig<T>>) => void;
|
|
158
158
|
/**
|
|
@@ -165,12 +165,12 @@ export interface ShellTabsApi<T = SviShellTabData> {
|
|
|
165
165
|
};
|
|
166
166
|
/**
|
|
167
167
|
* @method
|
|
168
|
-
* @description This stream will track the current top
|
|
168
|
+
* @description This stream will track the current top-level tab.
|
|
169
169
|
*/
|
|
170
170
|
selectedPrimaryTabChanged$: Observable<INavigationBarTab>;
|
|
171
171
|
/**
|
|
172
172
|
* @method
|
|
173
|
-
* @description This stream will track the current second
|
|
173
|
+
* @description This stream will track the current second-level tab.
|
|
174
174
|
*/
|
|
175
175
|
selectedSecondaryTabChanged$: Observable<INavigationBarTab | undefined>;
|
|
176
176
|
/**
|
|
@@ -188,7 +188,7 @@ export interface ShellTabsApi<T = SviShellTabData> {
|
|
|
188
188
|
tabRemoved$: Observable<INavigationBarTab>;
|
|
189
189
|
/**
|
|
190
190
|
* @method
|
|
191
|
-
* @description
|
|
191
|
+
* @description Get Tab by ID.
|
|
192
192
|
* @param [tabId] {string} This will be ID of an existing tab.
|
|
193
193
|
*/
|
|
194
194
|
getTabById: (tabId: string) => INavigationBarTab | undefined;
|
|
@@ -207,10 +207,10 @@ export interface ShellTabsApi<T = SviShellTabData> {
|
|
|
207
207
|
selectDefaultTab: () => Promise<boolean>;
|
|
208
208
|
/**
|
|
209
209
|
* @method
|
|
210
|
-
* @description This will attempt to open+select a matching INavigationBarTab and optional secondaryTab, returning false on failure
|
|
211
|
-
*
|
|
212
|
-
* @param [tabToSelect] {INavigationBarTab} See {@link INavigationBarTab}
|
|
213
|
-
* @param [secondaryTab] {INavigationBarTab} See {@link INavigationBarTab}
|
|
210
|
+
* @description This will attempt to open+select a matching INavigationBarTab and optional secondaryTab, returning false on failure.
|
|
211
|
+
* In the event the tab doesn't exist already, it will add the tab assuming an appropriate route has been registered for it.
|
|
212
|
+
* @param [tabToSelect] {INavigationBarTab} See {@link INavigationBarTab}.
|
|
213
|
+
* @param [secondaryTab] {INavigationBarTab} See {@link INavigationBarTab}. If left undefined, this will select the previously
|
|
214
214
|
* selected secondary tab of the primary tab or its first index secondary tab.
|
|
215
215
|
*/
|
|
216
216
|
openTab: (tabToSelect: INavigationBarTab, secondaryTab?: INavigationBarTab) => Promise<boolean>;
|
|
@@ -229,10 +229,10 @@ export interface ShellTabsApi<T = SviShellTabData> {
|
|
|
229
229
|
removeApplicationTabById: (tabIdToRemove: string, suppressNavigation?: boolean) => Promise<boolean>;
|
|
230
230
|
/**
|
|
231
231
|
* @method
|
|
232
|
-
* @description This will remove an existing application tab then replace with another
|
|
233
|
-
*
|
|
232
|
+
* @description This will remove an existing application tab then replace with another. If {@link removeApplicationTabById} is unsuccessful this will fail.
|
|
233
|
+
* Use case can be saving a tab which has a temporary ID, and reopening it with a saved payload.
|
|
234
234
|
* @param [tabId] {string} This will be ID of an existing tab.
|
|
235
|
-
* @param [newTab] {INavigationBarTab} See {@link INavigationBarTab}
|
|
235
|
+
* @param [newTab] {INavigationBarTab} See {@link INavigationBarTab}.
|
|
236
236
|
*
|
|
237
237
|
*/
|
|
238
238
|
replaceApplicationTab: (tabId: string, newTab: INavigationBarTab) => Promise<boolean>;
|
|
@@ -20,16 +20,16 @@ export interface OnTabEnterParams {
|
|
|
20
20
|
export type OnTabLeaveParams = Omit<OnTabEnterParams, "recycled">;
|
|
21
21
|
export interface OnTabEnter {
|
|
22
22
|
/**
|
|
23
|
-
* Function to run when the
|
|
24
|
-
* @param params - from is previous tab (possibly undefined on first load), to is always this tab;
|
|
25
|
-
* type {@link INavigationBarTab}, recycled
|
|
23
|
+
* Function to run when the tab is entered. This happens on first load as well.
|
|
24
|
+
* @param params - from is the previous tab (possibly undefined on first load), to is always this tab;
|
|
25
|
+
* type {@link INavigationBarTab}, recycled indicates whether the component was recycled or not.
|
|
26
26
|
*/
|
|
27
27
|
onTabEnter(params: OnTabEnterParams): void;
|
|
28
28
|
}
|
|
29
29
|
export interface OnTabLeave {
|
|
30
30
|
/**
|
|
31
|
-
* Function to run when the
|
|
32
|
-
* @param params - from is always this tab, to is where the user is going; type {@link INavigationBarTab}
|
|
31
|
+
* Function to run when the tab is left.
|
|
32
|
+
* @param params - from is always this tab, to is where the user is going; type {@link INavigationBarTab}.
|
|
33
33
|
*/
|
|
34
34
|
onTabLeave(params: OnTabLeaveParams): void;
|
|
35
35
|
}
|
|
@@ -46,13 +46,13 @@ export interface TabWithToolbar<T> {
|
|
|
46
46
|
}
|
|
47
47
|
export interface OnTabClose {
|
|
48
48
|
/**
|
|
49
|
-
* @param tab
|
|
49
|
+
* @param tab The current tab model that is closing.
|
|
50
50
|
*/
|
|
51
51
|
onTabClose(tab: INavigationBarTab): boolean | Promise<boolean> | Observable<boolean>;
|
|
52
52
|
}
|
|
53
53
|
export interface OnTabSaveConfirm {
|
|
54
54
|
/**
|
|
55
|
-
* @param tab
|
|
55
|
+
* @param tab The current tab model that is closing.
|
|
56
56
|
*/
|
|
57
57
|
onTabSaveConfirm(tab: INavigationBarTab): INavigationBarTabSaveOptions | undefined;
|
|
58
58
|
}
|
package/svi-datahub/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* tslint:disable */
|
|
2
2
|
/* eslint-disable */
|
|
3
|
-
// Generated using typescript-generator version 2.15.527 on 2025-09-
|
|
3
|
+
// Generated using typescript-generator version 2.15.527 on 2025-09-05 16:55:06.
|
|
4
4
|
|
|
5
5
|
export interface SecuredApiMeta {
|
|
6
6
|
experimental?: boolean;
|
|
@@ -14,9 +14,9 @@ export interface SecuredApiMeta {
|
|
|
14
14
|
|
|
15
15
|
export interface SecuredBuild {
|
|
16
16
|
buildVersion?: string;
|
|
17
|
-
applicationVersion?: string;
|
|
18
17
|
sourceId?: string;
|
|
19
18
|
sourceTimeStamp?: string;
|
|
19
|
+
applicationVersion?: string;
|
|
20
20
|
timeStamp?: string;
|
|
21
21
|
}
|
|
22
22
|
|
|
@@ -47,10 +47,10 @@ export interface ResourceMediaTypes {
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
export interface Build extends Serializable {
|
|
50
|
-
buildVersion?: string;
|
|
51
|
-
applicationVersion?: string;
|
|
52
50
|
sourceId?: string;
|
|
53
51
|
sourceTimeStamp?: string;
|
|
52
|
+
applicationVersion?: string;
|
|
53
|
+
buildVersion?: string;
|
|
54
54
|
timeStamp?: string;
|
|
55
55
|
}
|
|
56
56
|
|
|
@@ -2767,9 +2767,9 @@ export interface DataField {
|
|
|
2767
2767
|
ownerName?: string;
|
|
2768
2768
|
currentUserIsAuthorizedToReveal?: boolean;
|
|
2769
2769
|
required?: boolean;
|
|
2770
|
+
label?: string;
|
|
2770
2771
|
columnName?: string;
|
|
2771
2772
|
scale?: number;
|
|
2772
|
-
label?: string;
|
|
2773
2773
|
name?: string;
|
|
2774
2774
|
length?: number;
|
|
2775
2775
|
id?: number;
|
|
@@ -2790,8 +2790,8 @@ export interface DataObject extends SolutionAssignedDTO {
|
|
|
2790
2790
|
dataStoreName?: string;
|
|
2791
2791
|
dataStoreDefaultSchemaName?: string;
|
|
2792
2792
|
dataStoreAssignedTimeZone?: string;
|
|
2793
|
-
tableName?: string;
|
|
2794
2793
|
label?: string;
|
|
2794
|
+
tableName?: string;
|
|
2795
2795
|
name?: string;
|
|
2796
2796
|
fields?: DataField[];
|
|
2797
2797
|
id?: number;
|
|
@@ -2849,15 +2849,15 @@ export interface Entity extends SolutionAssignedDTO {
|
|
|
2849
2849
|
borderColor?: string;
|
|
2850
2850
|
borderWidth?: number;
|
|
2851
2851
|
useForNetworkBuild?: boolean;
|
|
2852
|
-
compounds?: Compound[];
|
|
2853
2852
|
temporalSplitting?: boolean;
|
|
2853
|
+
compounds?: Compound[];
|
|
2854
2854
|
displayTextElements?: SortableNameReference[];
|
|
2855
2855
|
linkDisplayTextElements?: SortableNameReference[];
|
|
2856
2856
|
requiresMultipleContributors?: boolean;
|
|
2857
2857
|
publishCode?: PublishCode;
|
|
2858
2858
|
defaultMapIcon?: Icon;
|
|
2859
|
-
scale?: number;
|
|
2860
2859
|
label?: string;
|
|
2860
|
+
scale?: number;
|
|
2861
2861
|
name?: string;
|
|
2862
2862
|
id?: number;
|
|
2863
2863
|
}
|
|
@@ -2914,8 +2914,8 @@ export interface ReferenceListSummary {
|
|
|
2914
2914
|
}
|
|
2915
2915
|
|
|
2916
2916
|
export interface Relationship extends DataObject {
|
|
2917
|
-
fromObjectName?: string;
|
|
2918
2917
|
toObjectName?: string;
|
|
2918
|
+
fromObjectName?: string;
|
|
2919
2919
|
cardinality?: RelationshipCardinality;
|
|
2920
2920
|
previousCardinality?: RelationshipCardinality;
|
|
2921
2921
|
symmetric?: boolean;
|
|
@@ -2930,11 +2930,11 @@ export interface Relationship extends DataObject {
|
|
|
2930
2930
|
linkFields?: { [index: string]: string }[];
|
|
2931
2931
|
joinTableName?: string;
|
|
2932
2932
|
required?: boolean;
|
|
2933
|
+
width?: number;
|
|
2933
2934
|
qualifiedName?: string;
|
|
2934
2935
|
managed?: boolean;
|
|
2935
2936
|
summaryFields?: SortableNameReference[];
|
|
2936
2937
|
color?: string;
|
|
2937
|
-
width?: number;
|
|
2938
2938
|
type?: RelationshipType;
|
|
2939
2939
|
}
|
|
2940
2940
|
|
|
@@ -2978,8 +2978,8 @@ export interface StoredDataObject extends DataObject {
|
|
|
2978
2978
|
}
|
|
2979
2979
|
|
|
2980
2980
|
export interface Transaction extends DataObject {
|
|
2981
|
-
fromObjectName?: string;
|
|
2982
2981
|
toObjectName?: string;
|
|
2982
|
+
fromObjectName?: string;
|
|
2983
2983
|
toObjectTypeFieldName?: string;
|
|
2984
2984
|
fromObjectTypeFieldName?: string;
|
|
2985
2985
|
fromObjectRefFieldName?: string;
|
|
@@ -3925,8 +3925,8 @@ export interface JavaType extends ResolvedType, Serializable, Type {
|
|
|
3925
3925
|
keyType?: JavaType;
|
|
3926
3926
|
interfaces?: JavaType[];
|
|
3927
3927
|
genericSignature?: string;
|
|
3928
|
-
bindings?: TypeBindings;
|
|
3929
3928
|
contentType?: JavaType;
|
|
3929
|
+
bindings?: TypeBindings;
|
|
3930
3930
|
}
|
|
3931
3931
|
|
|
3932
3932
|
export interface JsonDeserializer<T> extends NullValueProvider {
|
|
@@ -4363,9 +4363,6 @@ export interface OfField<F> extends TypeDescriptor {
|
|
|
4363
4363
|
primitive?: boolean;
|
|
4364
4364
|
}
|
|
4365
4365
|
|
|
4366
|
-
export interface AnnotationMap extends Annotations {
|
|
4367
|
-
}
|
|
4368
|
-
|
|
4369
4366
|
export interface TypeResolutionContext {
|
|
4370
4367
|
}
|
|
4371
4368
|
|
|
@@ -4376,10 +4373,13 @@ export interface Member {
|
|
|
4376
4373
|
declaringClass?: Class<any>;
|
|
4377
4374
|
}
|
|
4378
4375
|
|
|
4376
|
+
export interface AnnotationMap extends Annotations {
|
|
4377
|
+
}
|
|
4378
|
+
|
|
4379
4379
|
export interface AnnotatedMember extends Annotated, Serializable {
|
|
4380
|
-
allAnnotations?: AnnotationMap;
|
|
4381
4380
|
typeContext?: TypeResolutionContext;
|
|
4382
4381
|
member?: Member;
|
|
4382
|
+
allAnnotations?: AnnotationMap;
|
|
4383
4383
|
declaringClass?: Class<any>;
|
|
4384
4384
|
fullName?: string;
|
|
4385
4385
|
}
|
|
@@ -4388,8 +4388,8 @@ export interface ObjectIdInfo {
|
|
|
4388
4388
|
generatorType?: Class<ObjectIdGenerator<any>>;
|
|
4389
4389
|
resolverType?: Class<ObjectIdResolver>;
|
|
4390
4390
|
alwaysAsId?: boolean;
|
|
4391
|
-
propertyName?: PropertyName;
|
|
4392
4391
|
scope?: Class<any>;
|
|
4392
|
+
propertyName?: PropertyName;
|
|
4393
4393
|
}
|
|
4394
4394
|
|
|
4395
4395
|
export interface TypeDeserializer {
|
package/svi-datahub/package.json
CHANGED