@openmrs/esm-styleguide 8.0.1-pre.3575 → 8.0.1-pre.3581

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/dist/openmrs-esm-styleguide.css +1 -1
  3. package/dist/openmrs-esm-styleguide.css.map +1 -1
  4. package/package.json +12 -12
  5. package/src/workspaces2/workspace-windows-and-menu.module.scss +1 -1
  6. package/dist/brand.d.ts +0 -1
  7. package/dist/breakpoints/index.d.ts +0 -11
  8. package/dist/config-schema.d.ts +0 -23
  9. package/dist/custom-overflow-menu/custom-overflow-menu.component.d.ts +0 -8
  10. package/dist/custom-overflow-menu/index.d.ts +0 -1
  11. package/dist/datepicker/DatePickerIcon.d.ts +0 -6
  12. package/dist/datepicker/DatePickerInput.d.ts +0 -11
  13. package/dist/datepicker/MonthYear.d.ts +0 -10
  14. package/dist/datepicker/locale-context.d.ts +0 -2
  15. package/dist/datepicker/utils.d.ts +0 -15
  16. package/dist/error-state/error-state.component.d.ts +0 -6
  17. package/dist/error-state/index.d.ts +0 -1
  18. package/dist/icons/icon-registration.d.ts +0 -1
  19. package/dist/icons/icons.d.ts +0 -329
  20. package/dist/icons/index.d.ts +0 -1
  21. package/dist/index.d.ts +0 -1
  22. package/dist/left-nav/index.d.ts +0 -23
  23. package/dist/logo/index.d.ts +0 -1
  24. package/dist/modals/index.d.ts +0 -25
  25. package/dist/notifications/actionable-notification.component.d.ts +0 -20
  26. package/dist/notifications/active-actionable-notifications.component.d.ts +0 -8
  27. package/dist/notifications/active-notifications.component.d.ts +0 -8
  28. package/dist/notifications/index.d.ts +0 -19
  29. package/dist/notifications/notification.component.d.ts +0 -19
  30. package/dist/pictograms/pictogram-registration.d.ts +0 -1
  31. package/dist/pictograms/pictograms.d.ts +0 -64
  32. package/dist/snackbars/active-snackbar.component.d.ts +0 -9
  33. package/dist/snackbars/index.d.ts +0 -12
  34. package/dist/snackbars/snackbar.component.d.ts +0 -22
  35. package/dist/svg-utils.d.ts +0 -1
  36. package/dist/toasts/active-toasts.component.d.ts +0 -9
  37. package/dist/toasts/index.d.ts +0 -12
  38. package/dist/toasts/toast.component.d.ts +0 -19
  39. package/dist/utils.d.ts +0 -6
  40. package/dist/workspaces/action-menu-button/action-menu-button.component.d.ts +0 -11
  41. package/dist/workspaces/container/action-menu.component.d.ts +0 -9
  42. package/dist/workspaces/container/workspace-container.component.d.ts +0 -54
  43. package/dist/workspaces/container/workspace-renderer.component.d.ts +0 -8
  44. package/dist/workspaces/notification/workspace-notification.component.d.ts +0 -6
  45. package/dist/workspaces/public.d.ts +0 -4
  46. package/dist/workspaces/workspace-sidebar-store/useWorkspaceGroupStore.d.ts +0 -11
  47. package/dist/workspaces/workspaces.d.ts +0 -236
  48. package/dist/workspaces2/workspace2-close-prompt.modal.d.ts +0 -11
@@ -1,64 +0,0 @@
1
- /** @category Pictograms */
2
- import React from 'react';
3
- import { type Argument } from 'classnames';
4
- export declare const pictogramIds: readonly ["omrs-pict-appointments", "omrs-pict-assessment-1", "omrs-pict-assessment-2", "omrs-pict-blood-bank", "omrs-pict-cardiology", "omrs-pict-ct-scan", "omrs-pict-dentistry", "omrs-pict-emergency-department", "omrs-pict-facility", "omrs-pict-geriatrics", "omrs-pict-gynaecology", "omrs-pict-in-patient", "omrs-pict-laboratory", "omrs-pict-labs-2", "omrs-pict-obstetrics", "omrs-pict-patient-search", "omrs-pict-patients", "omrs-pict-payments-desk", "omrs-pict-pharmacy", "omrs-pict-pharmacy-2", "omrs-pict-registration", "omrs-pict-service-queues", "omrs-pict-stock-management", "omrs-pict-transfer", "omrs-pict-triage", "omrs-pict-x-ray"];
5
- export type PictogramId = (typeof pictogramIds)[number];
6
- export type PictogramProps = {
7
- className?: Argument;
8
- size?: number;
9
- };
10
- export declare const AppointmentsPictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
11
- /**
12
- * @deprecated use AppointmentsPictogram instead
13
- */
14
- export declare const AppointmentsAltPictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
15
- export declare const Assessment1Pictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
16
- export declare const Assessment2Pictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
17
- export declare const BloodBankPictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
18
- export declare const CardiologyPictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
19
- export declare const CtScanPictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
20
- export declare const DentistryPictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
21
- export declare const EmergencyDepartmentPictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
22
- export declare const FacilityPictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
23
- export declare const GeriatricsPictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
24
- export declare const GynaecologyPictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
25
- export declare const InPatientPictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
26
- export declare const LaboratoryPictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
27
- export declare const Labs2Pictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
28
- export declare const ObstetricsPictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
29
- export declare const PatientSearchPictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
30
- export declare const PatientsPictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
31
- export declare const PaymentsDeskPictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
32
- export declare const PharmacyPictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
33
- export declare const Pharmacy2Pictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
34
- export declare const RegistrationPictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
35
- export declare const ServiceQueuesPictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
36
- export declare const StockManagementPictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
37
- export declare const TransferPictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
38
- export declare const TriagePictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
39
- export declare const XrayPictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
40
- export declare const HomePictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
41
- export declare const PatientListsPictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<PictogramProps & React.RefAttributes<SVGSVGElement>>>;
42
- /**
43
- * This is a utility component that takes an `pictogram` and render it if the sprite for the pictogram
44
- * is available. The goal is to make it easier to conditionally render configuration-specified pictograms.
45
- *
46
- * @example
47
- * ```tsx
48
- * <MaybePictogram pictogram='omrs-icon-baby' className={styles.myPictogramStyles} />
49
- * ```
50
- */
51
- export declare const MaybePictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<{
52
- pictogram: string;
53
- fallback?: React.ReactNode;
54
- } & PictogramProps & React.RefAttributes<SVGSVGElement>>>;
55
- export type SvgPictogramProps = {
56
- /** the id of the pictogram */
57
- pictogram: PictogramId;
58
- /** properties when using the pictogram */
59
- pictogramProps: PictogramProps;
60
- };
61
- /**
62
- * This is a utility type for custom pictograms. Please maintain alphabetical order when adding new pictograms for readability.
63
- */
64
- export declare const Pictogram: React.MemoExoticComponent<React.ForwardRefExoticComponent<SvgPictogramProps & React.RefAttributes<SVGSVGElement>>>;
@@ -1,9 +0,0 @@
1
- /** @module @category UI */
2
- import React from 'react';
3
- import type { Subject } from 'rxjs';
4
- import type { SnackbarMeta } from './snackbar.component';
5
- interface ActiveSnackbarProps {
6
- subject: Subject<SnackbarMeta>;
7
- }
8
- declare const ActiveSnackbars: React.FC<ActiveSnackbarProps>;
9
- export default ActiveSnackbars;
@@ -1,12 +0,0 @@
1
- import type { SnackbarDescriptor } from './snackbar.component';
2
- /**
3
- * Starts a rendering host for snack bar notifications. Should only be used by the app shell.
4
- * Under normal conditions there is no need to use this function.
5
- * @param target The container target that hosts the snack bar notifications.
6
- */
7
- export declare function renderSnackbars(target: HTMLElement | null): void;
8
- /**
9
- * Displays a snack bar notification in the UI.
10
- * @param snackbar The description of the snack bar to display.
11
- */
12
- export declare function showSnackbar(snackbar: SnackbarDescriptor): void;
@@ -1,22 +0,0 @@
1
- /** @module @category UI */
2
- import React from 'react';
3
- export interface SnackbarProps {
4
- snackbar: SnackbarMeta;
5
- closeSnackbar(): void;
6
- }
7
- export interface SnackbarDescriptor {
8
- actionButtonLabel?: string;
9
- isLowContrast?: boolean;
10
- kind?: SnackbarType | string;
11
- onActionButtonClick?: () => void;
12
- progressActionLabel?: string;
13
- subtitle?: React.ReactNode;
14
- timeoutInMs?: number;
15
- autoClose?: boolean;
16
- title: string;
17
- }
18
- export interface SnackbarMeta extends SnackbarDescriptor {
19
- id: number;
20
- }
21
- export type SnackbarType = 'error' | 'info' | 'info-square' | 'success' | 'warning' | 'warning-alt';
22
- export declare const Snackbar: React.FC<SnackbarProps>;
@@ -1 +0,0 @@
1
- export declare function addSvg(htmlId: string, svgString: string): void;
@@ -1,9 +0,0 @@
1
- /** @module @category UI */
2
- import React from 'react';
3
- import type { Subject } from 'rxjs';
4
- import type { ToastNotificationMeta } from './toast.component';
5
- interface ActiveToastsProps {
6
- subject: Subject<ToastNotificationMeta>;
7
- }
8
- declare const ActiveToasts: React.FC<ActiveToastsProps>;
9
- export default ActiveToasts;
@@ -1,12 +0,0 @@
1
- import type { ToastDescriptor } from './toast.component';
2
- /**
3
- * Starts a rendering host for toast notifications. Should only be used by the app shell.
4
- * Under normal conditions there is no need to use this function.
5
- * @param target The container target that hosts the toast notifications.
6
- */
7
- export declare function renderToasts(target: HTMLElement | null): void;
8
- /**
9
- * Displays a toast notification in the UI.
10
- * @param toast The description of the toast to display.
11
- */
12
- export declare function showToast(toast: ToastDescriptor): void;
@@ -1,19 +0,0 @@
1
- /** @module @category UI */
2
- import React from 'react';
3
- export interface ToastProps {
4
- toast: ToastNotificationMeta;
5
- closeToast(): void;
6
- }
7
- export interface ToastDescriptor {
8
- description: React.ReactNode;
9
- onActionButtonClick?: () => void;
10
- actionButtonLabel?: string;
11
- kind?: ToastType;
12
- critical?: boolean;
13
- title?: string;
14
- }
15
- export interface ToastNotificationMeta extends ToastDescriptor {
16
- id: number;
17
- }
18
- export type ToastType = 'error' | 'info' | 'info-square' | 'success' | 'warning' | 'warning-alt';
19
- export declare const Toast: React.FC<ToastProps>;
package/dist/utils.d.ts DELETED
@@ -1,6 +0,0 @@
1
- /**
2
- * Array of valid values for Carbon tag's "type" attribute.
3
- * Options from https://react.carbondesignsystem.com/?path=/docs/components-tag--overview
4
- */
5
- export declare const carbonTagColors: readonly ["red", "magenta", "purple", "blue", "teal", "cyan", "gray", "green", "warm-gray", "cool-gray", "high-contrast", "outline"];
6
- export type CarbonTagColor = (typeof carbonTagColors)[number];
@@ -1,11 +0,0 @@
1
- /** @module @category Workspace */
2
- import React from 'react';
3
- export interface ActionMenuButtonProps {
4
- getIcon: (props: object) => JSX.Element;
5
- label: string;
6
- iconDescription: string;
7
- handler: () => void;
8
- type: string;
9
- tagContent?: string | React.ReactNode;
10
- }
11
- export declare const ActionMenuButton: React.FC<ActionMenuButtonProps>;
@@ -1,9 +0,0 @@
1
- /** @module @category Workspace */
2
- import React from 'react';
3
- export interface ActionMenuProps {
4
- isWithinWorkspace?: boolean;
5
- name?: string;
6
- actionMenuProps?: Record<string, unknown>;
7
- }
8
- export declare function ActionMenu({ isWithinWorkspace, name, actionMenuProps }: ActionMenuProps): React.JSX.Element;
9
- export default ActionMenu;
@@ -1,54 +0,0 @@
1
- import React from 'react';
2
- export interface WorkspaceContainerProps {
3
- contextKey: string;
4
- overlay?: boolean;
5
- showSiderailAndBottomNav?: boolean;
6
- additionalWorkspaceProps?: object;
7
- actionMenuProps?: Record<string, unknown>;
8
- }
9
- /**
10
- * Use this component to render the [workspace window](https://zeroheight.com/23a080e38/p/483a22-workspace)
11
- * in an app such as the patient chart, or a workspace overlay in an app such as the clinic dashboard.
12
- * This allows workspaces to be opened on the page where this component is mounted. This component
13
- * must not be mounted multiple times on the same page. If there are multiple apps on a page, only
14
- * one of those apps should use this component—it "hosts" the workspaces.
15
- *
16
- * Workspaces may be opened with the [[launchWorkspace]] function from `@openmrs/esm-framework`
17
- * (among other options).
18
- *
19
- * The `overlay` prop determines whether the workspace is rendered as an overlay or a window.
20
- * When a workspace window is opened, the other content on the screen will be pushed to the left.
21
- * When an overlay is opened, it will cover other content on the screen.
22
- *
23
- * The context key is a string that appears in the URL, which defines the pages on which workspaces
24
- * are valid. If the URL changes in a way such that it no longer contains the context key, then
25
- * all workspaces will be closed. This ensures that, for example, workspaces on the home page do
26
- * not stay open when the user transitions to the patient dashboard; and also that workspaces do
27
- * not stay open when the user navigates to a different patient. The context key must be a valid
28
- * sub-path of the URL, with no initial or trailing slash. So if the URL is
29
- * `https://example.com/patient/123/foo`, then `patient` and `patient/123` and `123/foo` are valid
30
- * context keys, but `patient/12` and `pati` are not.
31
- *
32
- * An extension slot is provided in the workspace header. Its name is derived from the `featureName` of
33
- * the top-level component in which it is defined (feature names are generally provided in the lifecycle
34
- * functions in an app's `index.ts` file). The slot is named `workspace-header-${featureName}-slot`.
35
- * For the patient chart, this is `workspace-header-patient-chart-slot`.
36
- *
37
- * This component also provides the [Siderail and Bottom Nav](https://zeroheight.com/23a080e38/p/948cf1-siderail-and-bottom-nav/b/86907e).
38
- * To use this, pass the `showSiderailAndBottomNav` prop. The Siderail is rendered on the right side of the screen
39
- * on desktop, and the Bottom Nav is rendered at the bottom of the screen on tablet or mobile. The sidebar/bottom-nav
40
- * menu provides an extension slot, to which buttons are attached as extensions. The slot
41
- * derives its name from the `featureName` of the top-level component in which this `WorkspaceContainer`
42
- * appears (feature names are generally provided in the lifecycle functions in an app's `index.ts` file).
43
- * The slot is named `action-menu-${featureName}-items-slot`. For the patient chart, this is
44
- * `action-menu-patient-chart-items-slot`.
45
- *
46
- * This component also provides everything needed for workspace notifications to be rendered.
47
- *
48
- * @param props.contextKey The context key (explained above)
49
- * @param props.additionalWorkspaceProps Additional props to pass to the workspace. Using this is
50
- * unusual; you will generally want to pass props to the workspace when you open it, using
51
- * `launchWorkspace`. Use this only for props that will apply to every workspace launched
52
- * on the page where this component is mounted.
53
- */
54
- export declare function WorkspaceContainer({ contextKey, overlay, showSiderailAndBottomNav, additionalWorkspaceProps, actionMenuProps, }: WorkspaceContainerProps): React.JSX.Element;
@@ -1,8 +0,0 @@
1
- import React from 'react';
2
- import { type OpenWorkspace } from '../workspaces';
3
- interface WorkspaceRendererProps {
4
- workspace: OpenWorkspace;
5
- additionalPropsFromPage?: object;
6
- }
7
- export declare function WorkspaceRenderer({ workspace, additionalPropsFromPage }: WorkspaceRendererProps): React.JSX.Element;
8
- export {};
@@ -1,6 +0,0 @@
1
- /** @module @category Workspace */
2
- import React from 'react';
3
- export interface WorkspaceNotificationProps {
4
- contextKey: string;
5
- }
6
- export declare function WorkspaceNotification({ contextKey }: WorkspaceNotificationProps): React.JSX.Element | null;
@@ -1,4 +0,0 @@
1
- export * from './action-menu-button/action-menu-button.component';
2
- export * from './container/workspace-container.component';
3
- export { closeWorkspace, launchWorkspace, navigateAndLaunchWorkspace, useWorkspaces, launchWorkspaceGroup, } from './workspaces';
4
- export { type DefaultWorkspaceProps, type CloseWorkspaceOptions, type OpenWorkspace, type WorkspacesInfo, type Prompt, } from './workspaces';
@@ -1,11 +0,0 @@
1
- /**
2
- * This hook is used to interact with the store of a workspace store.
3
- * A workspace store is defined as a group of workspaces that open in the same workspace group.
4
- *
5
- * In case a workspace group is not active, it will be considered as a standalone workspace, and hence this hook will return an empty object and updateFunction as an empty function.
6
- *
7
- * @internal
8
- *
9
- * @param {string} workspaceGroupName The workspaceGroupName of the workspace used when registering the workspace in the module's routes.json file.
10
- */
11
- export declare function useWorkspaceGroupStore(workspaceGroupName?: string): object;
@@ -1,236 +0,0 @@
1
- /** @module @category Workspace */
2
- import { type ReactNode } from 'react';
3
- import type { StoreApi } from 'zustand/vanilla';
4
- import { type WorkspaceRegistration } from '@openmrs/esm-extensions';
5
- import { type WorkspaceWindowState } from '@openmrs/esm-globals';
6
- export interface CloseWorkspaceOptions {
7
- /**
8
- * Whether to close the workspace ignoring all the changes present in the workspace.
9
- *
10
- * If ignoreChanges is true, the user will not be prompted to save changes before closing
11
- * even if the `testFcn` passed to `promptBeforeClosing` returns `true`.
12
- */
13
- ignoreChanges?: boolean;
14
- /**
15
- * If you want to take an action after the workspace is closed, you can pass your function as
16
- * `onWorkspaceClose`. This function will be called only after the workspace is closed, given
17
- * that the user might be shown a prompt.
18
- * @returns void
19
- */
20
- onWorkspaceClose?: () => void;
21
- /**
22
- * Controls whether the workspace group should be closed and store to be
23
- * cleared when this workspace is closed.
24
- * Defaults to true except when opening a new workspace of the same group.
25
- *
26
- * @default true
27
- */
28
- closeWorkspaceGroup?: boolean;
29
- }
30
- /** The default parameters received by all workspaces */
31
- export interface DefaultWorkspaceProps {
32
- /**
33
- * Call this function to close the workspace. This function will prompt the user
34
- * if there are any unsaved changes to workspace.
35
- *
36
- * You can pass `onWorkspaceClose` function to be called when the workspace is finally
37
- * closed, given the user forcefully closes the workspace.
38
- */
39
- closeWorkspace(closeWorkspaceOptions?: CloseWorkspaceOptions): void;
40
- /**
41
- * Call this with a no-args function that returns true if the user should be prompted before
42
- * this workspace is closed; e.g. if there is unsaved data.
43
- */
44
- promptBeforeClosing(testFcn: () => boolean): void;
45
- /**
46
- * Call this function to close the workspace after the form is saved. This function
47
- * will directly close the workspace without any prompt
48
- */
49
- closeWorkspaceWithSavedChanges(closeWorkspaceOptions?: CloseWorkspaceOptions): void;
50
- /**
51
- * Use this to set the workspace title if it needs to be set dynamically.
52
- *
53
- * Workspace titles generally are set in the workspace declaration in the routes.json file. They can also
54
- * be set by the workspace launcher by passing `workspaceTitle` in the `additionalProps`
55
- * parameter of the `launchWorkspace` function. This function is useful when the workspace
56
- * title needs to be set dynamically.
57
- *
58
- * @param title The title to set. If using titleNode, set this to a human-readable string
59
- * which will identify the workspace in notifications and other places.
60
- * @param titleNode A React object to put in the workspace header in place of the title. This
61
- * is useful for displaying custom elements in the header. Note that custom header
62
- * elements can also be attached to the workspace header extension slots.
63
- */
64
- setTitle(title: string, titleNode?: ReactNode): void;
65
- }
66
- export interface WorkspaceWindowSize {
67
- size: WorkspaceWindowState;
68
- }
69
- export interface WorkspaceWindowSizeProviderProps {
70
- children?: React.ReactNode;
71
- }
72
- export interface WorkspaceWindowSizeContext {
73
- windowSize: WorkspaceWindowSize;
74
- updateWindowSize?(value: WorkspaceWindowState): any;
75
- active: boolean;
76
- }
77
- export interface Prompt {
78
- title: string;
79
- body: string;
80
- /** Defaults to "Confirm" */
81
- confirmText?: string;
82
- onConfirm(): void;
83
- /** Defaults to "Cancel" */
84
- cancelText?: string;
85
- }
86
- export interface WorkspaceStoreState {
87
- context: string | null;
88
- openWorkspaces: Array<OpenWorkspace>;
89
- prompt: Prompt | null;
90
- workspaceWindowState: WorkspaceWindowState;
91
- workspaceGroup?: {
92
- name: string;
93
- members: Array<string>;
94
- cleanup?(): void;
95
- };
96
- }
97
- export interface OpenWorkspace extends WorkspaceRegistration, DefaultWorkspaceProps {
98
- additionalProps: object;
99
- currentWorkspaceGroup?: string;
100
- }
101
- /**
102
- *
103
- * @param name Name of the workspace
104
- * @param ignoreChanges If set to true, the "unsaved changes" modal will never be shown, even if the `promptBeforeClosing` function returns true. The user will not be prompted before closing.
105
- * @returns true if the workspace can be closed.
106
- */
107
- export declare function canCloseWorkspaceWithoutPrompting(name: string, ignoreChanges?: boolean): boolean;
108
- interface LaunchWorkspaceGroupArg {
109
- state: Record<string | symbol | number, any>;
110
- onWorkspaceGroupLaunch?(): void;
111
- workspaceGroupCleanup?(): void;
112
- workspaceToLaunch?: {
113
- name: string;
114
- additionalProps?: Record<string | symbol | number, any>;
115
- };
116
- }
117
- /**
118
- * Launches a workspace group with the specified name and configuration.
119
- * If there are any open workspaces, it will first close them before launching the new workspace group.
120
- *
121
- * @param groupName - The name of the workspace group to launch
122
- * @param args - Configuration object for launching the workspace group
123
- * @param args.state - The initial state for the workspace group
124
- * @param args.onWorkspaceGroupLaunch - Optional callback function to be executed after the workspace group is launched
125
- * @param args.workspaceGroupCleanup - Optional cleanup function to be executed when the workspace group is closed
126
- *
127
- * @example
128
- * launchWorkspaceGroup("myGroup", {
129
- * state: initialState,
130
- * onWorkspaceGroupLaunch: () => console.log("Workspace group launched"),
131
- * workspaceGroupCleanup: () => console.log("Cleaning up workspace group")
132
- * });
133
- */
134
- export declare function launchWorkspaceGroup(groupName: string, args: LaunchWorkspaceGroupArg): void;
135
- /**
136
- * This launches a workspace by its name. The workspace must have been registered.
137
- * Workspaces should be registered in the `routes.json` file.
138
- *
139
- * For the workspace to appear, there must be either a `<WorkspaceOverlay />` or
140
- * a `<WorkspaceWindow />` component rendered.
141
- *
142
- * The behavior of this function is as follows:
143
- *
144
- * - If no workspaces are open, or if no other workspaces with the same type are open,
145
- * it will be opened and focused.
146
- * - If a workspace with the same name is already open, it will be displayed/focused,
147
- * if it was not already.
148
- * - If a workspace is launched and a workspace which cannot be hidden is already open,
149
- * a confirmation modal will pop up warning about closing the currently open workspace.
150
- * - If another workspace with the same type is open, the workspace will be brought to
151
- * the front and then a confirmation modal will pop up warning about closing the opened
152
- * workspace
153
- *
154
- * Note that this function just manipulates the workspace store. The UI logic is handled
155
- * by the components that display workspaces.
156
- *
157
- * Additional props can be passed to the workspace component being launched. Passing a
158
- * prop named `workspaceTitle` will override the title of the workspace.
159
- *
160
- * @param name The name of the workspace to launch
161
- * @param additionalProps Props to pass to the workspace component being launched. Passing
162
- * a prop named `workspaceTitle` will override the title of the workspace.
163
- */
164
- export declare function launchWorkspace<T extends DefaultWorkspaceProps | object = DefaultWorkspaceProps & {
165
- [key: string]: any;
166
- }>(name: string, additionalProps?: Omit<T, keyof DefaultWorkspaceProps> & {
167
- workspaceTitle?: string;
168
- }): void;
169
- /**
170
- * Use this function to navigate to a new page and launch a workspace on that page.
171
- *
172
- * @param options.targetUrl: The URL to navigate to. Will be passed to [[navigate]].
173
- * @param options.contextKey: The context key used by the target page.
174
- * @param options.workspaceName: The name of the workspace to launch.
175
- * @param options.additionalProps: Additional props to pass to the workspace component being launched.
176
- */
177
- export declare function navigateAndLaunchWorkspace({ targetUrl, contextKey, workspaceName, additionalProps, }: {
178
- targetUrl: string;
179
- contextKey: string;
180
- workspaceName: string;
181
- additionalProps?: object;
182
- }): void;
183
- export declare function promptBeforeClosing(workspaceName: string, testFcn: () => boolean): void;
184
- export declare function getPromptBeforeClosingFcn(workspaceName: string): any;
185
- export declare function cancelPrompt(): void;
186
- /**
187
- * Function to close an opened workspace
188
- * @param name Workspace registration name
189
- * @param options Options to close workspace
190
- */
191
- export declare function closeWorkspace(name: string, options?: CloseWorkspaceOptions): boolean;
192
- /**
193
- * The set of workspaces is specific to a particular page. This function
194
- * should be used when transitioning to a new page. If the current
195
- * workspace data is for a different page, the workspace state is cleared.
196
- *
197
- * This is called by the workspace components when they mount.
198
- * @internal
199
- *
200
- * @param contextKey An arbitrary key to identify the current page
201
- */
202
- export declare function changeWorkspaceContext(contextKey: string | null): void;
203
- export declare const workspaceStore: StoreApi<WorkspaceStoreState>;
204
- export declare function getWorkspaceStore(): StoreApi<WorkspaceStoreState>;
205
- export declare function updateWorkspaceWindowState(value: WorkspaceWindowState): void;
206
- export declare function closeAllWorkspaces(onClosingWorkspaces?: () => void, filter?: (workspace: OpenWorkspace) => boolean): void;
207
- export interface WorkspacesInfo {
208
- active: boolean;
209
- prompt: Prompt | null;
210
- workspaceWindowState: WorkspaceWindowState;
211
- workspaces: Array<OpenWorkspace>;
212
- workspaceGroup?: WorkspaceStoreState['workspaceGroup'];
213
- }
214
- export declare function useWorkspaces(): WorkspacesInfo;
215
- type PromptType = 'closing-workspace' | 'closing-all-workspaces' | 'closing-workspace-launching-new-workspace';
216
- /**
217
- * Sets the current prompt according to the prompt type.
218
- * @param promptType Determines the text and behavior of the prompt
219
- * @param onConfirmation Function to be called after the user confirms to close the workspace
220
- * @param workspaceTitle Workspace title to be shown in the prompt
221
- * @returns
222
- */
223
- export declare function showWorkspacePrompts(promptType: PromptType, onConfirmation?: () => void, workspaceTitle?: string): void;
224
- export declare function resetWorkspaceStore(): void;
225
- /**
226
- * The workspace group store is a store that is specific to the workspace group.
227
- * If the workspace has its own sidebar, the store will be created.
228
- * This store can be used to store data that is specific to the workspace group.
229
- * The store will be same for all the workspaces with same group name.
230
- *
231
- * For workspaces launched without a group, the store will be undefined.
232
- *
233
- * The store will be cleared when all the workspaces with the store's group name are closed.
234
- */
235
- export declare function getWorkspaceGroupStore(workspaceGroupName: string | undefined, additionalProps?: object): StoreApi<object> | undefined;
236
- export {};
@@ -1,11 +0,0 @@
1
- import React from 'react';
2
- interface WorkspaceUnsavedChangesModal {
3
- onConfirm: () => void;
4
- onCancel: () => void;
5
- affectedWorkspaceTitles: string[];
6
- }
7
- /**
8
- * This modal is used for prompting user to confirm closing currently opened workspace.
9
- */
10
- declare const Workspace2ClosePromptModal: React.FC<WorkspaceUnsavedChangesModal>;
11
- export default Workspace2ClosePromptModal;