@equinor/echo-framework 0.7.5 → 0.7.8

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 (72) hide show
  1. package/dist/47deeba42768c5d1.svg +9 -0
  2. package/dist/components/contextualAppLinks/contextualAppLinks.context.d.ts +7 -0
  3. package/dist/components/contextualAppLinks/contextualAppLinks.d.ts +9 -0
  4. package/dist/components/contextualAppLinks/externalAppsMenu.d.ts +29 -0
  5. package/dist/components/contextualAppLinks/externalLinkButtons/allExternalLinks.d.ts +12 -0
  6. package/dist/components/contextualAppLinks/externalLinkButtons/externalLinkToMcApp.d.ts +12 -0
  7. package/dist/components/contextualAppLinks/externalLinkButtons/externalLinkToProCoSys.d.ts +15 -0
  8. package/dist/components/contextualAppLinks/externalLinkButtons/externalLinkToSafeX.d.ts +13 -0
  9. package/dist/components/contextualAppLinks/externalLinkButtons/externalLinkToSap.d.ts +15 -0
  10. package/dist/components/contextualAppLinks/externalLinkButtons/externalLinkToSemiDoc.d.ts +13 -0
  11. package/dist/components/contextualAppLinks/externalLinkButtons/externalLinkToStid.d.ts +14 -0
  12. package/dist/components/contextualAppLinks/externalLinkButtons/externalLinkToTr2000.d.ts +15 -0
  13. package/dist/components/contextualAppLinks/externalLinkButtons/index.d.ts +7 -0
  14. package/dist/components/contextualAppLinks/hooks/useContextualAppLinks.d.ts +18 -0
  15. package/dist/components/contextualAppLinks/hooks/useContextualAppLinks.test.d.ts +1 -0
  16. package/dist/components/contextualAppLinks/hooks/useContextualAppLinksContext.d.ts +4 -0
  17. package/dist/components/contextualAppLinks/hooks/useContextualAppLinksContext.test.d.ts +1 -0
  18. package/dist/components/contextualAppLinks/index.d.ts +13 -0
  19. package/dist/components/contextualAppLinks/internalAppLinks.d.ts +24 -0
  20. package/dist/components/contextualAppLinks/linkButton.d.ts +19 -0
  21. package/dist/components/externalLinkButton/externalLinkButton.d.ts +33 -0
  22. package/dist/components/index.d.ts +4 -1
  23. package/dist/components/realTimeData/components/IMSDropdown/RealTimeIMSDropdown.d.ts +2 -1
  24. package/dist/components/realTimeData/components/connectorForIMSTag/RealTimeConnectorForIMSTag.d.ts +2 -1
  25. package/dist/hooks/index.d.ts +2 -0
  26. package/dist/hooks/useSemi.d.ts +17 -0
  27. package/dist/hooks/useSemi.test.d.ts +1 -0
  28. package/dist/hooks/useTagDetails.d.ts +13 -0
  29. package/dist/hooks/useTagDetails.test.d.ts +1 -0
  30. package/dist/index.d.ts +10 -3
  31. package/dist/src/components/contextualAppLinks/contextualAppLinks.context.js +20 -0
  32. package/dist/src/components/contextualAppLinks/contextualAppLinks.js +47 -0
  33. package/dist/src/components/contextualAppLinks/externalAppsMenu.js +181 -0
  34. package/dist/src/components/contextualAppLinks/externalAppsMenu.module.css.js +16 -0
  35. package/dist/src/components/contextualAppLinks/externalLinkButtons/allExternalLinks.js +72 -0
  36. package/dist/src/components/contextualAppLinks/externalLinkButtons/externalLinkToMcApp.js +38 -0
  37. package/dist/src/components/contextualAppLinks/externalLinkButtons/externalLinkToProCoSys.js +50 -0
  38. package/dist/src/components/contextualAppLinks/externalLinkButtons/externalLinkToSafeX.js +38 -0
  39. package/dist/src/components/contextualAppLinks/externalLinkButtons/externalLinkToSap.js +61 -0
  40. package/dist/src/components/contextualAppLinks/externalLinkButtons/externalLinkToSemiDoc.js +48 -0
  41. package/dist/src/components/contextualAppLinks/externalLinkButtons/externalLinkToStid.js +40 -0
  42. package/dist/src/components/contextualAppLinks/externalLinkButtons/externalLinkToTr2000.js +63 -0
  43. package/dist/src/components/contextualAppLinks/hooks/useContextualAppLinks.js +52 -0
  44. package/dist/src/components/contextualAppLinks/hooks/useContextualAppLinksContext.js +36 -0
  45. package/dist/src/components/contextualAppLinks/index.js +22 -0
  46. package/dist/src/components/contextualAppLinks/internalAppLinks.js +115 -0
  47. package/dist/src/components/contextualAppLinks/linkButton.js +57 -0
  48. package/dist/src/components/externalLinkButton/externalLinkButton.js +245 -0
  49. package/dist/src/components/externalLinkButton/externalLinkButton.module.css.js +22 -0
  50. package/dist/src/components/projectSelector/ProcosysProjectSelector.js +1 -1
  51. package/dist/src/components/realTimeData/RealTimePopoverButton.js +23 -7
  52. package/dist/src/components/realTimeData/components/IMSDropdown/RealTimeIMSDropdown.js +4 -2
  53. package/dist/src/components/realTimeData/components/connectorForIMSTag/RealTimeConnectorForIMSTag.js +3 -3
  54. package/dist/src/hooks/index.js +12 -0
  55. package/dist/src/hooks/useSemi.js +74 -0
  56. package/dist/src/hooks/useTagDetails.js +80 -0
  57. package/dist/src/icons/common/Evision.svg.js +68 -0
  58. package/dist/src/icons/common/Fusion.svg.js +107 -0
  59. package/dist/src/icons/common/McApp.svg.js +67 -0
  60. package/dist/src/icons/common/ProCoSysIcon.svg.js +68 -0
  61. package/dist/src/icons/common/SX-logo.png.js +7 -0
  62. package/dist/src/icons/common/SapLogo.svg.js +95 -0
  63. package/dist/src/icons/common/SemiIcon.svg.js +83 -0
  64. package/dist/src/icons/common/Stid.svg.js +65 -0
  65. package/dist/src/icons/common/TR2000.svg.js +72 -0
  66. package/dist/src/icons/common/Yammer.svg.js +65 -0
  67. package/dist/src/index.js +54 -8
  68. package/dist/src/types/extensions.js +10 -0
  69. package/dist/src/types/pingableSources.js +10 -0
  70. package/dist/types/extensions.d.ts +7 -0
  71. package/dist/types/pingableSources.d.ts +3 -0
  72. package/package.json +6 -7
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
3
+ <svg xmlns="http://www.w3.org/2000/svg"
4
+ xmlns:xlink="http://www.w3.org/1999/xlink" width="25" height="25" viewBox="0 0 25 25">
5
+
6
+ <g transform="matrix(1.333333 0 0 1.333333 0 0)">
7
+ <image x="0" y="0" xlink:href="data:image/png;base64,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" width="19" height="19"/>
8
+ </g>
9
+ </svg>
@@ -0,0 +1,7 @@
1
+ import { TagSummaryDto } from '@equinor/echo-search';
2
+ import React from 'react';
3
+ export declare type ContextualAppLinksContextType = {
4
+ tag: TagSummaryDto;
5
+ instCode: string;
6
+ } | undefined;
7
+ export declare const AppLinksContext: React.Context<ContextualAppLinksContextType>;
@@ -0,0 +1,9 @@
1
+ import { TagSummaryDto } from '@equinor/echo-search';
2
+ import React from 'react';
3
+ declare type ContextualAppLinksProps = {
4
+ children: React.ReactNode;
5
+ tag: TagSummaryDto;
6
+ instCode: string;
7
+ };
8
+ declare const _default: React.NamedExoticComponent<ContextualAppLinksProps>;
9
+ export default _default;
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ declare type ExternalAppsMenuProp = {
3
+ children?: React.ReactNode;
4
+ classNames?: {
5
+ button?: string;
6
+ popupMenu?: string;
7
+ };
8
+ [key: string]: unknown;
9
+ };
10
+ /**
11
+ * Wrapper component for external application links. To be used inside ContextualAppLinks component.
12
+ * This will render an icon button with external link icon. When the button is clicked, an EDS menu will be shown.
13
+ * Pass any external icons as children inside this component: they will rendered inside the above mentioned menu.
14
+ * This component is extendable: Also renders any external app link icon, which is registered in the EchoCore application state.
15
+ *
16
+ * @param {ExternalAppsMenuProp} props
17
+ * @param {React.ReactNode} props.children Optional: Will be rendered inside the EDS menu
18
+ * @param {Object} props.classNames Optional: custom class names for inner structural DOM elements.
19
+ * @param {string} props.classNames.button Optional: custom class name to be applied to the icon button
20
+ * @param {string} props.classNames.popupMenu Optional: custom class name to be applied to the popup menu
21
+ * @param {unknown} ...rest param: Every other props will be applied on the topmost, wrapper div element.
22
+ *
23
+ * @returns {React.FC<ExternalAppsMenuProp>}
24
+ *
25
+ * @throws {BaseError} If used outside of ContextualAppLinks compound component - requires react context provided by it.
26
+ *
27
+ */
28
+ export declare const ExternalAppsMenu: React.FC<ExternalAppsMenuProp>;
29
+ export {};
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ /**
3
+ * To be used inside ContextualAppLinks component.
4
+ * List of pre-defined external app links.
5
+ * Contains link to: Stid, ProCoSys, Sap, Semi, McApp, SafeX, TR2000.
6
+ *
7
+ * Each link will determine by itself if they should be rendered (or not) based on various conditions, like: the passed tag.
8
+ *
9
+ * @returns {React.FC}
10
+ * @throws {BaseError} If used outside of ContextualAppLinks compound component - requires react context provided by it.
11
+ */
12
+ export declare const AllExternalLinks: React.FC;
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ declare type ExternalLinkToMcAppProps = {
3
+ tagNo: string;
4
+ };
5
+ /**
6
+ * External link button to McApp.
7
+ *
8
+ * @param {string} tagNo The tag's number to open in McApp.
9
+ * @returns {React.FC<ExternalLinkToMcAppProps>} React component.
10
+ */
11
+ export declare const ExternalLinkToMcApp: React.FC<ExternalLinkToMcAppProps>;
12
+ export {};
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ declare type ExternalLinkToProCoSysProps = {
3
+ tagNo: string;
4
+ instCode: string;
5
+ };
6
+ /**
7
+ * External link button to ProCoSys.
8
+ * Will only render if the passed tagNo has any tag details in the actually selected plant.
9
+ *
10
+ * @param {string} tagNo The tag's number to open in ProCoSys.
11
+ * @param {string} instCode Plant installation code.
12
+ * @returns {React.FC<ExternalLinkToProCoSysProps>} React component.
13
+ */
14
+ export declare const ExternalLinkToProCoSys: React.FC<ExternalLinkToProCoSysProps>;
15
+ export {};
@@ -0,0 +1,13 @@
1
+ import { TagSummaryDto } from '@equinor/echo-search';
2
+ import React from 'react';
3
+ declare type ExternalLinkToSafeXProps = {
4
+ tag: TagSummaryDto;
5
+ };
6
+ /**
7
+ * External link button to SafeX.
8
+ *
9
+ * @param {TagSummaryDto} tag The tag to open in SafeX.
10
+ * @returns {React.FC<ExternalLinkToSafeXProps>} React component.
11
+ */
12
+ export declare const ExternalLinkToSafeX: React.FC<ExternalLinkToSafeXProps>;
13
+ export {};
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ declare type ExternalLinkToSapProps = {
3
+ tagNo: string;
4
+ instCode: string;
5
+ };
6
+ /**
7
+ * External link button to SAP.
8
+ * Will only render if the passed tagNo has any tag details in the actually selected plant and SAP is available.
9
+ *
10
+ * @param {string} tagNo The tag's number to open in SAP.
11
+ * @param {string} instCode Plant installation code.
12
+ * @returns {React.FC<ExternalLinkToSapProps>} React component.
13
+ */
14
+ export declare const ExternalLinkToSap: React.FC<ExternalLinkToSapProps>;
15
+ export {};
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ declare type ExternalLinkToSemiDocProps = {
3
+ tagNo: string;
4
+ };
5
+ /**
6
+ * External link button to SemiDoc.
7
+ * Will only render if Semi is available for the passed tagNo.
8
+ *
9
+ * @param {string} tagNo The tag's number to open in Semi.
10
+ * @returns {React.FC<ExternalLinkToSemiDocProps>} React component.
11
+ */
12
+ export declare const ExternalLinkToSemiDoc: React.FC<ExternalLinkToSemiDocProps>;
13
+ export {};
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ declare type ExternalLinkToStidProps = {
3
+ tagNo: string;
4
+ instCode: string;
5
+ };
6
+ /**
7
+ * External link button to Stid.
8
+ *
9
+ * @param {string} tagNo The tag's number to open in Stid.
10
+ * @param {string} instCode Plant installation code.
11
+ * @returns {React.FC<ExternalLinkToStidProps>} React component.
12
+ */
13
+ export declare const ExternalLinkToStid: React.FC<ExternalLinkToStidProps>;
14
+ export {};
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ declare type ExternalLinkToTr2000Props = {
3
+ tagNo: string;
4
+ instCode: string;
5
+ };
6
+ /**
7
+ * External link button to TR2000.
8
+ * Will only render if the actually selected plant has TR2000.
9
+ *
10
+ * @param {string} tagNo The tag's number to open in TR2000.
11
+ * @param {string} instCode Plant installation code.
12
+ * @returns {React.FC<ExternalLinkToTr2000Props>} React component.
13
+ */
14
+ export declare const ExternalLinkToTr2000: React.FC<ExternalLinkToTr2000Props>;
15
+ export {};
@@ -0,0 +1,7 @@
1
+ export * from './externalLinkToMcApp';
2
+ export * from './externalLinkToProCoSys';
3
+ export * from './externalLinkToSafeX';
4
+ export * from './externalLinkToSap';
5
+ export * from './externalLinkToSemiDoc';
6
+ export * from './externalLinkToStid';
7
+ export * from './externalLinkToTr2000';
@@ -0,0 +1,18 @@
1
+ import { ContextualAppLinkRegistration } from '../../../types/extensions';
2
+ declare type UseContextualAppLinksOptions = {
3
+ onlyExternalLinks?: boolean;
4
+ onlyInternalLinks?: never;
5
+ } | {
6
+ onlyExternalLinks?: never;
7
+ onlyInternalLinks?: boolean;
8
+ };
9
+ /**
10
+ * Gets the registered extensions for ContextualAppLinks component from the Core App State.
11
+ *
12
+ * @param params Optional. If not provided, the hook will return with all extensions for this component.
13
+ * @param {boolean} params.onlyExternalLinks Optional - set this to true to get external app links only.
14
+ * @param {boolean} params.onlyInternalLinks Optional - set this to true to get internal app links only.
15
+ * @returns
16
+ */
17
+ export declare function useContextualAppLinks(params?: UseContextualAppLinksOptions): ContextualAppLinkRegistration[];
18
+ export {};
@@ -0,0 +1,4 @@
1
+ export declare function useContextualAppLinksContext(): {
2
+ tag: import("@equinor/echo-search").TagSummaryDto;
3
+ instCode: string;
4
+ };
@@ -0,0 +1,13 @@
1
+ import LinksWrapper from './contextualAppLinks';
2
+ import { ExternalAppsMenu } from './externalAppsMenu';
3
+ import { AllExternalLinks } from './externalLinkButtons/allExternalLinks';
4
+ import { InternalAppLinks } from './internalAppLinks';
5
+ import { LinkButton } from './linkButton';
6
+ declare type ContextualAppLinksCompoundProps = typeof LinksWrapper & {
7
+ InternalApps: typeof InternalAppLinks;
8
+ ExternalAppsMenu: typeof ExternalAppsMenu;
9
+ AllExternalApps: typeof AllExternalLinks;
10
+ LinkButton: typeof LinkButton;
11
+ };
12
+ declare const ContextualAppLinks: ContextualAppLinksCompoundProps;
13
+ export { ContextualAppLinks };
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ declare type InternalAppLinksProps = {
3
+ options?: {
4
+ hiddenAppKeys: string[];
5
+ };
6
+ children?: React.ReactNode;
7
+ [key: string]: unknown;
8
+ };
9
+ /**
10
+ * Wrapper component for internal, Echo application links. To be used inside ContextualAppLinks component.
11
+ * This component is extendable: renders any Echo app link component, which is registered in the EchoCore application state.
12
+ *
13
+ * @param {InternalAppLinksProps} props
14
+ * @param {React.ReactNode} props.children Optional. Passed children will be rendred after the app link extensions.
15
+ * @param {Object} props.options Optional prop: pass custom options to alter the components behaviour.
16
+ * @param {string[]} props.options.hiddenAppKeys List of registered, app link extenesion keys. Each registered component with a matched key will be hidden.
17
+ * @param {[key: string]: unknown} ...rest: All other props will be passed to registered app links extension components, and to the isVisible() => boolean function for those components
18
+ * @returns {React.FC<InternalAppLinksProps>} React component.
19
+ *
20
+ * @throws {BaseError} If used outside of ContextualAppLinks compound component - requires react context provided by it.
21
+ *
22
+ */
23
+ export declare const InternalAppLinks: React.FC<InternalAppLinksProps>;
24
+ export {};
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ declare type LinkButtonProps = {
3
+ label?: string;
4
+ iconName: string;
5
+ onClick: OnClickHandler;
6
+ };
7
+ declare type OnClickHandler = (event: React.MouseEvent<HTMLButtonElement>) => void;
8
+ /**
9
+ * Link button to be used in contextual app link component.
10
+ * Displays an EDS icon with a EDS tooltip. The tooltip will be rendered only if a 'label' is passed.
11
+ *
12
+ * @param {LinkButtonProps} props
13
+ * @param {label} props.label Optional: a label to show when the button is hovered over on.
14
+ * @param {string} props.iconName An EDS icon name to display.
15
+ * @param {OnClickHandler} props.onClick Click handler
16
+ * @returns {React.FC<LinkButtonProps>} React component.
17
+ */
18
+ export declare const LinkButton: React.FC<LinkButtonProps>;
19
+ export {};
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+ interface ExternalLinkButtonProps {
3
+ buttonName: string;
4
+ buttonIcon: string;
5
+ linkTo: string;
6
+ hideText?: boolean;
7
+ redirect?: boolean;
8
+ buttonStyle?: ExternalLinkButtonStyle;
9
+ getUrlToOpen?: () => Promise<string>;
10
+ disabledColor?: boolean;
11
+ disabledButton?: boolean;
12
+ hoverText?: string;
13
+ }
14
+ export declare enum ExternalLinkButtonStyle {
15
+ Rounded = "Rounded"
16
+ }
17
+ /**
18
+ *
19
+ * @param {ExternalLinkButtonProps} props
20
+ * @param {string} props.buttonName If the button isn't in Rounded button style, this will be the button's label.
21
+ * @param {string} props.buttonIcon Name of the icon to render.
22
+ * @param {string} props.linkTo Link to open, if `getUrlToOpen` isn't passed.
23
+ * @param {boolean} props.hideText Optional. If set to `true`, will hide `buttonName`.
24
+ * @param {boolean} props.redirect Optional. If set to `true`, the app will not open in a new tab / window, but in the current one.
25
+ * @param {ExternalLinkButtonStyle} props.buttonStyle Optional.
26
+ * @param {() => Promise<string>} props.getUrlToOpen Optional. Function () => Promise<string>. Custom async function to be called to handle the navigation.
27
+ * @param {boolean} props.disabledColor Optional. If set to `true`, the button will show disabled color. (If not Rounded button style is used)
28
+ * @param {boolean} props.disabledButton Optional.
29
+ * @param {string} props.hoverText Optional. Applies only if Rounded button style is applied.
30
+ * @returns {React.FC<ExternalLinkButtonProps>} React component.
31
+ */
32
+ declare const ExternalLinkButton: React.FC<ExternalLinkButtonProps>;
33
+ export default ExternalLinkButton;
@@ -1,7 +1,10 @@
1
1
  export * from './appLinks';
2
2
  export * from './containers';
3
+ export * from './contextualAppLinks/externalLinkButtons/index';
4
+ export { ContextualAppLinks } from './contextualAppLinks/index';
3
5
  export * from './echoLogo';
4
6
  export * from './errorBoundary';
7
+ export * from './externalLinkButton/externalLinkButton';
5
8
  export * from './footer';
6
9
  export * from './lazyLoading';
7
10
  export * from './mediator';
@@ -13,5 +16,5 @@ export * from './projectSelector';
13
16
  export * from './realTimeData';
14
17
  export * from './router';
15
18
  export * from './searchMenu';
16
- export * from './toaster';
17
19
  export * from './tagNumber';
20
+ export * from './toaster';
@@ -2,6 +2,7 @@
2
2
  import { AdditionalFieldDto } from '@equinor/echo-search';
3
3
  interface Props {
4
4
  imsFields: AdditionalFieldDto[];
5
+ instCode: string;
5
6
  }
6
- declare function RealTimeIMSDropdown({ imsFields }: Props): JSX.Element;
7
+ declare function RealTimeIMSDropdown({ imsFields, instCode }: Props): JSX.Element;
7
8
  export { RealTimeIMSDropdown };
@@ -1,6 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  interface Props {
3
3
  ims: string;
4
+ instCode: string;
4
5
  }
5
- declare function RealTimeConnectorForIMSTag({ ims }: Props): JSX.Element;
6
+ declare function RealTimeConnectorForIMSTag({ ims, instCode }: Props): JSX.Element;
6
7
  export { RealTimeConnectorForIMSTag };
@@ -0,0 +1,2 @@
1
+ export * from './useEchoHistory';
2
+ export * from './useTagDetails';
@@ -0,0 +1,17 @@
1
+ declare type Semi = {
2
+ isSemiDocumentAvailable: boolean;
3
+ semiDocumentId: string;
4
+ };
5
+ /**
6
+ * Provides information about Semi document for a given tag.
7
+ *
8
+ * @param {{ tagNo: string }} params
9
+ * @param {string} params.tagNo Tag number in question.
10
+ * @returns {Semi} object
11
+ * @returns {boolean} object.isSemiDocumentAvailable - Will be set to true if the tag has Semi document.
12
+ * @returns {string} object.semiDocumentId - If there's a document for the given tag, this will be set.
13
+ */
14
+ export declare function useSemi({ tagNo }: {
15
+ tagNo: string;
16
+ }): Semi;
17
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ import { TagDetailsDto } from '@equinor/echo-search';
2
+ /**
3
+ * Provides tag details for a given tag number and instCode.
4
+ *
5
+ * @param {{ tagNo: string; instCode: string }} params
6
+ * @param {string} params.tagNo The given tag's number.
7
+ * @param {string} params.instCode Plant's inst code.
8
+ * @returns {TagDetailsDto | undefined} TagDetailsDto or undefined
9
+ */
10
+ export declare function useTagDetails({ tagNo, instCode }: {
11
+ tagNo: string;
12
+ instCode: string;
13
+ }): TagDetailsDto | undefined;
@@ -0,0 +1 @@
1
+ export {};
package/dist/index.d.ts CHANGED
@@ -1,23 +1,24 @@
1
1
  /// <reference types="react" />
2
2
  import './globalStyles.css';
3
- import { useEchoHistory } from './hooks/useEchoHistory';
4
3
  import { getPlantsInfo } from './services/api/api-plantinfo';
5
4
  import './theme/theme.css';
6
5
  import { getLegendStatusColor } from './utils/legendUtils';
7
6
  export * from './components';
8
7
  export * from './coreApplication';
8
+ export { RegisteredHookName } from './hooks/hookLibrary';
9
9
  export { RegisteredComponentName } from './services/componentRegistry/componentRegistry';
10
10
  export * from './services/eventHubActions';
11
11
  export * from './theme/themeConst';
12
12
  export type { EchoHubPlant } from './types/echoHubPlant';
13
13
  export * from './types/eventTypes';
14
+ export * from './types/extensions';
14
15
  export type { SetActiveTagNo, TagData } from './types/hookLibrary';
15
16
  export { LegendStatus, LegendType } from './types/legend';
16
17
  export type { ModelPermissions } from './types/modelPermissions';
18
+ export { PingableSources } from './types/pingableSources';
17
19
  export * from './utils';
18
20
  export { getLegendStatusColor, legendTypeToLegendStatus } from './utils/legendUtils';
19
21
  export * from './utils/startup';
20
- export { RegisteredHookName } from './hooks/hookLibrary';
21
22
  export declare const registerEchopediaComponent: ({ name, component }: {
22
23
  name: import("./services/componentRegistry/componentRegistry").RegisteredComponentName;
23
24
  component: import("react").FunctionComponent<any>;
@@ -29,7 +30,13 @@ declare const EchoFramework: Readonly<{
29
30
  }>;
30
31
  }>;
31
32
  Hooks: Readonly<{
32
- useEchoHistory: typeof useEchoHistory;
33
+ useEchoHistory(): (path: string, params?: {
34
+ [key: string]: string;
35
+ } | undefined, state?: any) => void;
36
+ useTagDetails({ tagNo, instCode }: {
37
+ tagNo: string;
38
+ instCode: string;
39
+ }): import("@equinor/echo-search").TagDetailsDto | undefined;
33
40
  useSetActiveTagNo: () => import("./types/hookLibrary").SetActiveTagNo;
34
41
  useContextMenuDataInfo: (tagNo: string, expanded: boolean, setActivePanel?: (() => void) | undefined) => import("@equinor/echo-components").DataInformation[];
35
42
  useTagData: () => import("./types/hookLibrary").TagData;
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
5
+ Object.defineProperty(exports, '__esModule', {
6
+ value: true
7
+ });
8
+
9
+ var React = require('react');
10
+
11
+ function _interopDefaultLegacy(e) {
12
+ return e && _typeof(e) === 'object' && 'default' in e ? e : {
13
+ 'default': e
14
+ };
15
+ }
16
+
17
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
18
+
19
+ var AppLinksContext = /*#__PURE__*/React__default["default"].createContext(undefined);
20
+ exports.AppLinksContext = AppLinksContext;
@@ -0,0 +1,47 @@
1
+ 'use strict';
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
5
+ Object.defineProperty(exports, '__esModule', {
6
+ value: true
7
+ });
8
+
9
+ var React = require('react');
10
+
11
+ var errorBoundary = require('../errorBoundary/errorBoundary.js');
12
+
13
+ var contextualAppLinks_context = require('./contextualAppLinks.context.js');
14
+
15
+ function _interopDefaultLegacy(e) {
16
+ return e && _typeof(e) === 'object' && 'default' in e ? e : {
17
+ 'default': e
18
+ };
19
+ }
20
+
21
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
22
+ /**
23
+ * List off application links to open with a given tag (contextual links): internal (open a subpage / app in echopedia) or external (navigate to a different page).
24
+ * Extendable. Call registerContextualAppLink() on the EchoModuleApi when registering your EchoModule through the setup function.
25
+ *
26
+ * @param {ContextualAppLinksProps} props
27
+ * @param {React.ReactNode} props.children
28
+ * @param {TagSummaryDto} props.tag The tag to pass to the context of the compound component.
29
+ * @param {string} props.instCode Installation code for a given plant. If not passed the instCode from localStorage/indexDb will be used.
30
+ * @returns {React.FC<ContextualAppLinksProps>} React component.
31
+ */
32
+
33
+
34
+ var ContextualAppLinks = function ContextualAppLinks(_ref) {
35
+ var children = _ref.children,
36
+ tag = _ref.tag,
37
+ instCode = _ref.instCode;
38
+ return /*#__PURE__*/React__default["default"].createElement(contextualAppLinks_context.AppLinksContext.Provider, {
39
+ value: {
40
+ tag: tag,
41
+ instCode: instCode
42
+ }
43
+ }, /*#__PURE__*/React__default["default"].createElement(errorBoundary.ErrorBoundary, null, children));
44
+ };
45
+
46
+ var LinksWrapper = /*#__PURE__*/React.memo(ContextualAppLinks);
47
+ exports["default"] = LinksWrapper;