@equinor/amplify-component-lib 9.3.5 → 9.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/atoms/hooks/index.d.ts +2 -1
  2. package/dist/atoms/hooks/usePrefetchRichTextImages.d.ts +9 -0
  3. package/dist/atoms/hooks/usePrefetchRichTextImages.js +1 -0
  4. package/dist/atoms/index.js +1 -1
  5. package/dist/atoms/utils/forms.d.ts +3 -0
  6. package/dist/atoms/utils/forms.js +1 -0
  7. package/dist/atoms/utils/index.d.ts +1 -0
  8. package/dist/atoms/utils/richtext.d.ts +1 -0
  9. package/dist/atoms/utils/richtext.js +1 -1
  10. package/dist/atoms/utils/tutorials.d.ts +1 -1
  11. package/dist/atoms/utils/tutorials.js +1 -1
  12. package/dist/index.js +1 -1
  13. package/dist/molecules/FileProgress/FileProgress.d.ts +1 -1
  14. package/dist/molecules/FileProgress/FileProgress.types.d.ts +2 -7
  15. package/dist/molecules/RichTextEditor/RichTextEditor.js +1 -1
  16. package/dist/molecules/RichTextEditor/index.js +1 -1
  17. package/dist/molecules/Select/AddTagItem.d.ts +1 -0
  18. package/dist/molecules/Select/AddTagItem.js +1 -1
  19. package/dist/molecules/Select/ComboBox/ComboBox.d.ts +1 -0
  20. package/dist/molecules/Select/ComboBox/ComboBox.js +1 -1
  21. package/dist/molecules/Select/ListSelectMenu.d.ts +1 -1
  22. package/dist/molecules/Select/ListSelectMenu.js +1 -1
  23. package/dist/molecules/Select/Select.js +1 -1
  24. package/dist/molecules/Select/Select.types.d.ts +11 -2
  25. package/dist/molecules/Select/SingleSelect/SingleSelect.d.ts +2 -0
  26. package/dist/molecules/Select/SingleSelect/SingleSelect.js +1 -1
  27. package/dist/organisms/FieldSelector/ChangingField.js +8 -8
  28. package/dist/organisms/Filter/Filter.styles.js +1 -1
  29. package/dist/organisms/PageTitle/PageTitle.js +1 -1
  30. package/dist/organisms/SideBar/MenuItem.js +1 -1
  31. package/dist/organisms/Status/collections/MissingAccessToApp.js +1 -1
  32. package/dist/organisms/TopBar/Account/AccountAvatar.js +1 -1
  33. package/dist/organisms/TopBar/Account/AccountButton.js +1 -1
  34. package/dist/organisms/TopBar/Account/ImpersonateAvatar.js +1 -1
  35. package/dist/organisms/TopBar/Account/ImpersonateMenu/DeleteUser/DeleteUser.styles.js +1 -1
  36. package/dist/organisms/TopBar/Account/ImpersonateMenu/Impersonate.styles.js +1 -1
  37. package/dist/organisms/TopBar/Resources/Feedback/Feedback.utils.js +1 -1
  38. package/dist/organisms/TopBar/Resources/Feedback/providers/FeedbackContextProvider.js +1 -1
  39. package/dist/organisms/TopBar/TransferToAppDialog.js +3 -3
  40. package/dist/organisms/TopBar/Tutorials/Tutorials.d.ts +2 -0
  41. package/dist/organisms/TopBar/Tutorials/Tutorials.js +1 -1
  42. package/dist/providers/ReleaseNotesProvider.utils.js +1 -1
  43. package/dist/providers/ThemeProvider/ThemeProvider.js +1 -1
  44. package/dist/providers/TutorialHighlightingProvider/TutorialHighlightingProviderInner.js +3 -3
  45. package/dist/providers/TutorialHighlightingProvider/TutorialPopover/TutorialPopover.js +37 -13
  46. package/dist/providers/TutorialHighlightingProvider/TutorialPopover/hooks/useTutorialPopoverPosition.d.ts +4 -1
  47. package/dist/providers/TutorialHighlightingProvider/TutorialPopover/hooks/useTutorialPopoverPosition.js +1 -1
  48. package/dist/tests/mockHandlers.d.ts +7 -1
  49. package/package.json +1 -1
@@ -6,6 +6,7 @@ import { usePrevious } from './usePrevious';
6
6
  import { useSelect } from './useSelect';
7
7
  import { useSignalRMessages } from './useSignalRMessages';
8
8
  import { useOnScreenMultiple } from './useOnScreenMultiple';
9
+ import { usePrefetchRichTextImages } from './usePrefetchRichTextImages';
9
10
  import { useNotification } from '../../organisms/TopBar/Notifications/NotificationProvider';
10
11
  import { useAuth } from '../../providers/AuthProvider/AuthProvider';
11
12
  import { useReleaseNotes } from '../../providers/ReleaseNotesProvider';
@@ -14,4 +15,4 @@ import { useSnackbar } from '../../providers/SnackbarProvider/SnackbarProvider';
14
15
  import { useStepper } from '../../providers/StepperProvider';
15
16
  import { useTableOfContents } from '../../providers/TableOfContentsProvider';
16
17
  import { useThemeProvider } from '../../providers/ThemeProvider/ThemeProvider';
17
- export { useAuth, useStepper, useSelect, useDebounce, useFakeProgress, useLocalStorage, useNotification, useOnScreenMultiple, useTableOfContents, usePrevious, useReleaseNotes, useSideBar, useSignalRMessages, useSnackbar, useThemeProvider, useAmplifyKit, };
18
+ export { usePrefetchRichTextImages, useAuth, useStepper, useSelect, useDebounce, useFakeProgress, useLocalStorage, useNotification, useOnScreenMultiple, useTableOfContents, usePrevious, useReleaseNotes, useSideBar, useSignalRMessages, useSnackbar, useThemeProvider, useAmplifyKit, };
@@ -0,0 +1,9 @@
1
+ import { ImageExtensionFnProps } from '../../molecules';
2
+ interface UsePrefetchRichTextImagesArgs {
3
+ richTextValues: string[];
4
+ onImageRead: NonNullable<ImageExtensionFnProps['onImageRead']>;
5
+ }
6
+ export declare function usePrefetchRichTextImages({ richTextValues, onImageRead, }: UsePrefetchRichTextImagesArgs): {
7
+ isPrefetching: boolean;
8
+ };
9
+ export {};
@@ -0,0 +1 @@
1
+ import{useRef as r,useEffect as e}from"react";import{useQueryClient as i,useIsFetching as o}from"@tanstack/react-query";import"../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"../enums/Environment.js";import"../utils/auth_environment.js";import"../../organisms/TopBar/Notifications/NotificationProvider.js";import"../../providers/AuthProvider/AuthProvider.js";import"../../providers/ReleaseNotesProvider.js";import"../../providers/SideBarProvider.js";import"../../providers/SnackbarProvider/SnackbarProvider.js";import"../../providers/StepperProvider.js";import"../../providers/TableOfContentsProvider.js";import"../../providers/ThemeProvider/ThemeProvider.js";import"../style/colors.js";import"../enums/Errors.js";import"../enums/Theme.js";import"../enums/SpacingsMode.js";import"html2canvas";import"proj4";import{getImagesFromRichText as t}from"../utils/richtext.js";import"@equinor/eds-icons";function s({richTextValues:s,onImageRead:m}){const p=i(),n=r([]),a=s.flatMap((r=>t(r))),c=o({predicate:r=>a.some((e=>r.queryKey[0]===e))})>0;return e((()=>{for(const r of a.filter((r=>!n.current.includes(r))))n.current.push(r),p.prefetchQuery({queryKey:[r],queryFn:async()=>{const e=await m(r);return`data:image/${r.split(".").at(-1)};base64,${e}`},staleTime:1/0,gcTime:1/0})}),[m,a,p]),{isPrefetching:c}}export{s as usePrefetchRichTextImages};
@@ -1 +1 @@
1
- import"react";import"../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../molecules/RichTextEditor/RichTextEditor.types.js";import"../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";export{EnvironmentType}from"./enums/Environment.js";export{auth,environment}from"./utils/auth_environment.js";export{useNotification}from"../organisms/TopBar/Notifications/NotificationProvider.js";export{useAuth}from"../providers/AuthProvider/AuthProvider.js";export{useReleaseNotes}from"../providers/ReleaseNotesProvider.js";export{useSideBar}from"../providers/SideBarProvider.js";export{useSnackbar}from"../providers/SnackbarProvider/SnackbarProvider.js";export{useStepper}from"../providers/StepperProvider.js";export{useTableOfContents}from"../providers/TableOfContentsProvider.js";export{useThemeProvider}from"../providers/ThemeProvider/ThemeProvider.js";import*as r from"./style/index.js";export{elevation,shape,typography}from"./style/index.js";export{ErrorType}from"./enums/Errors.js";export{Theme}from"./enums/Theme.js";export{SpacingsMode}from"./enums/SpacingsMode.js";import"html2canvas";import"proj4";const e=r;export{e as style};
1
+ import"react";import"../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../molecules/RichTextEditor/RichTextEditor.types.js";import"../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";export{EnvironmentType}from"./enums/Environment.js";export{auth,environment}from"./utils/auth_environment.js";import*as r from"./style/index.js";export{elevation,shape,typography}from"./style/index.js";export{ErrorType}from"./enums/Errors.js";export{Theme}from"./enums/Theme.js";export{SpacingsMode}from"./enums/SpacingsMode.js";import"html2canvas";import"proj4";import"@equinor/eds-icons";export{useNotification}from"../organisms/TopBar/Notifications/NotificationProvider.js";export{useAuth}from"../providers/AuthProvider/AuthProvider.js";export{useReleaseNotes}from"../providers/ReleaseNotesProvider.js";export{useSideBar}from"../providers/SideBarProvider.js";export{useSnackbar}from"../providers/SnackbarProvider/SnackbarProvider.js";export{useStepper}from"../providers/StepperProvider.js";export{useTableOfContents}from"../providers/TableOfContentsProvider.js";export{useThemeProvider}from"../providers/ThemeProvider/ThemeProvider.js";const e=r;export{e as style};
@@ -0,0 +1,3 @@
1
+ import { IconData } from '@equinor/eds-icons';
2
+ import { Variants } from '../types/variants';
3
+ export declare const VARIANT_ICONS: Record<Variants, IconData | undefined>;
@@ -0,0 +1 @@
1
+ import{thumbs_up as r,warning_outlined as o,error_outlined as i}from"@equinor/eds-icons";const s={error:i,warning:o,success:r,dirty:void 0};export{s as VARIANT_ICONS};
@@ -11,3 +11,4 @@ export * from './sort';
11
11
  export * from './string';
12
12
  export * from './url';
13
13
  export * from './tutorials';
14
+ export * from './forms';
@@ -25,3 +25,4 @@ export declare function imageToB64(file: File): Promise<string>;
25
25
  * @deprecated - Use the onImageRead prop instead of tokens
26
26
  */
27
27
  export declare function cleanRichTextValue(value: string): string;
28
+ export declare function getImagesFromRichText(value: string): string[];
@@ -1 +1 @@
1
- import{DEFAULT_FEATURES as e,RichTextEditorFeatures as r}from"../../molecules/RichTextEditor/RichTextEditor.types.js";function t({features:t,extendFeatures:n,removeFeatures:o,onImageUpload:i}){const a=[...t??e,...n??[]].filter((e=>!o?.includes(e))).filter(((e,r,t)=>r===t.indexOf(e)));if(a.includes(r.IMAGES)&&void 0===i)throw new Error("onImageUpload cannot be undefined when features include images!\n Either add the onImageUpload function or remove RichTextEditorFeatures.IMAGES from the features array");return a}const n=/(<img src=".*?" alt="(.*?)">)/g,o=/(<img alt="(.*?)" \/>)/g;function i(e){if(!e)return[];const r=[],t=e.matchAll(o);for(const e of t)r.push(e[2]);return r}function a(e){return new Promise(((r,t)=>{const n=new FileReader;n.readAsDataURL(e),n.onload=()=>{"string"==typeof n.result&&r(n.result)},n.onerror=t}))}function s(e){return e.replaceAll(n,'<img alt="$2" />')}export{o as IMG_WITH_ALT,n as IMG_WITH_SRC_AND_ALT,s as cleanRichTextValue,i as extractImageUrls,t as getFeatures,a as imageToB64};
1
+ import{DEFAULT_FEATURES as e,RichTextEditorFeatures as t}from"../../molecules/RichTextEditor/RichTextEditor.types.js";function r({features:r,extendFeatures:n,removeFeatures:o,onImageUpload:i}){const a=[...r??e,...n??[]].filter((e=>!o?.includes(e))).filter(((e,t,r)=>t===r.indexOf(e)));if(a.includes(t.IMAGES)&&void 0===i)throw new Error("onImageUpload cannot be undefined when features include images!\n Either add the onImageUpload function or remove RichTextEditorFeatures.IMAGES from the features array");return a}const n=/(<img src=".*?" alt="(.*?)">)/g,o=/(<img alt="(.*?)" \/>)/g;function i(e){if(!e)return[];const t=[],r=e.matchAll(o);for(const e of r)t.push(e[2]);return t}function a(e){return new Promise(((t,r)=>{const n=new FileReader;n.readAsDataURL(e),n.onload=()=>{"string"==typeof n.result&&t(n.result)},n.onerror=r}))}function s(e){return e.replaceAll(n,'<img alt="$2" />')}function u(e){const t=[],r=e.matchAll(/(<img src="(.*?)" alt=".*?">)/g);for(const e of r)t.push(e[2]);return t}export{o as IMG_WITH_ALT,n as IMG_WITH_SRC_AND_ALT,s as cleanRichTextValue,i as extractImageUrls,r as getFeatures,u as getImagesFromRichText,a as imageToB64};
@@ -10,4 +10,4 @@ export interface TutorialHighlight extends Pick<DOMRect, 'top' | 'left' | 'heigh
10
10
  export declare function getHighlightElementBoundingBox(tutorialId: string, stepNum: number, windowSize: {
11
11
  width: number;
12
12
  height: number;
13
- }): TutorialHighlight | undefined;
13
+ }): Promise<TutorialHighlight | undefined>;
@@ -1 +1 @@
1
- function t(t,e){if(e<0)throw new Error(`[TutorialHighlightingProvider]: stepNum must be greater than or equal to 0, received ${e}`);return`sam-tutorial-${t}-${e}`}function e(e,o,i){const n=t(e,o),r=document.getElementById(n);if(!r)return void console.warn(`[TutorialHighlightingProvider]: Element with ID ${n} not found`);const h=r.getBoundingClientRect(),l=document.getElementById("content").scrollTop;return(h.top<=0||h.left<=0||h.bottom>=i.height||h.right>=i.width)&&r.scrollIntoView({behavior:"smooth",block:"center"}),{id:e,top:h.top-5+l,left:h.left-5,width:h.width+10,height:h.height+10}}export{e as getHighlightElementBoundingBox,t as highlightTutorialElementID};
1
+ function t(t,e){if(e<0)throw new Error(`[TutorialHighlightingProvider]: stepNum must be greater than or equal to 0, received ${e}`);return`sam-tutorial-${t}-${e}`}async function e(e,o,i){const n=t(e,o);let r=document.getElementById(n),l=!1;for(;!r&&!l;)await new Promise((t=>setTimeout(t,200))),r=document.getElementById(n),l=!0;if(!r)return void console.warn(`[TutorialHighlightingProvider]: Element with ID ${n} not found`);const h=r.getBoundingClientRect(),u=document.getElementById("content").scrollTop;return(h.top<=0||h.left<=0||h.bottom>=i.height||h.right>=i.width)&&r.scrollIntoView({behavior:"smooth",block:"center"}),{id:e,top:h.top-5+u,left:h.left-5,width:h.width+10,height:h.height+10}}export{e as getHighlightElementBoundingBox,t as highlightTutorialElementID};
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- export{AuthProvider,useAuth}from"./providers/AuthProvider/AuthProvider.js";export{SideBarProvider,useSideBar}from"./providers/SideBarProvider.js";export{SnackbarProvider,useSnackbar}from"./providers/SnackbarProvider/SnackbarProvider.js";export{TableOfContentsProvider,useTableOfContents}from"./providers/TableOfContentsProvider.js";export{ReleaseNotesProvider,useReleaseNotes}from"./providers/ReleaseNotesProvider.js";export{TutorialHighlightingProvider}from"./providers/TutorialHighlightingProvider/TutorialHighlightingProvider.js";export{LoadingProvider}from"./providers/LoadingProvider.js";export{ThemeProvider,useThemeProvider}from"./providers/ThemeProvider/ThemeProvider.js";export{StepperProvider,useStepper}from"./providers/StepperProvider.js";export{style}from"./atoms/index.js";export{AnimatedCheckmark}from"./molecules/AnimatedCheckmark/AnimatedCheckmark.js";export{ApplicationIcon}from"./molecules/ApplicationIcon/ApplicationIcon.js";export{Badge}from"./molecules/Badge/Badge.js";export{Banner}from"./molecules/Banner/Banner.js";export{Chip}from"./molecules/Chip/Chip.js";export{ContentMenu}from"./molecules/ContentMenu/ContentMenu.js";export{DatePicker}from"./molecules/DatePicker/DatePicker.js";export{Dialog}from"./molecules/Dialog/Dialog.js";export{EquinorLogo}from"./molecules/EquinorLogo/EquinorLogo.js";export{FileProgress}from"./molecules/FileProgress/FileProgress.js";export{FileUploadArea}from"./molecules/FileUploadArea/FileUploadArea.js";export{FullPageSpinner}from"./molecules/FullPageSpinner/FullPageSpinner.js";export{InfoElement}from"./molecules/InfoElement/InfoElement.js";export{OptionalTooltip}from"./molecules/OptionalTooltip/OptionalTooltip.js";export{ProfileAvatar}from"./molecules/ProfileAvatar/ProfileAvatar.js";export{RichTextDisplay}from"./molecules/RichTextDisplay/RichTextDisplay.js";export{RichText}from"./molecules/RichTextEditor/index.js";export{AmplifyBar,EditorMenu,EditorText}from"./molecules/RichTextEditor/MenuBar/MenuBar.js";export{AmplifyKit}from"./molecules/RichTextEditor/custom-extensions/AmplifyKit.js";export{TableMenuBar,TextTable}from"./molecules/RichTextEditor/MenuBar/Table/TableBar.js";export{DEFAULT_FEATURES,RichTextEditorFeatures}from"./molecules/RichTextEditor/RichTextEditor.types.js";export{Search}from"./molecules/Search/Search.js";export{Sieve}from"./molecules/Sieve/Sieve.js";export{SingleFilterMenu}from"./molecules/SingleFilterMenu/SingleFilterMenu.js";export{SkeletonBase,skeletonBaseloading}from"./molecules/Skeleton/SkeletonBase/SkeletonBase.js";export{SkeletonGradient}from"./molecules/Skeleton/SkeletonGradient/SkeletonGradient.js";export{Stepper}from"./molecules/Stepper/Stepper.js";export{OptionDrawer}from"./molecules/OptionDrawer/OptionDrawer.js";export{ComboBox}from"./molecules/Select/ComboBox/ComboBox.js";export{ComboBoxChip}from"./molecules/Select/Select.styles.js";export{SingleSelect}from"./molecules/Select/SingleSelect/SingleSelect.js";export{PageWithTitle}from"./molecules/PageWithTitle/PageWithTitle.js";export{FeedBackIcon}from"./molecules/FeedBackIcon/FeedBackIcon.js";export{ListItem}from"./molecules/ListItem/ListItem.js";export{Checkbox}from"./molecules/SelectionControls/Checkbox/Checkbox.js";export{Radio}from"./molecules/SelectionControls/Radio/Radio.js";export{Switch}from"./molecules/SelectionControls/Switch/Switch.js";export{Accordion,Breadcrumbs,Button,Card,CircularProgress,DateRangePicker,Divider,DotProgress,Dialog as EDSDialog,Icon,LinearProgress,Menu,Tabs,TextField,Typography}from"@equinor/eds-core-react";export{DataGrid}from"./organisms/DataGrid/DataGrid.js";export{FieldSelector}from"./organisms/FieldSelector/FieldSelector.js";export{Filter}from"./organisms/Filter/Filter.js";export{SideBar}from"./organisms/SideBar/index.js";export{TopBar}from"./organisms/TopBar/index.js";export{Status}from"./organisms/Status/index.js";export{BadRequest}from"./organisms/Status/collections/BadRequest.js";export{GenericError}from"./organisms/Status/collections/GenericError.js";export{MissingAccessToApp}from"./organisms/Status/collections/MissingAccessToApp.js";export{MissingPermissions}from"./organisms/Status/collections/MissingPermissions.js";export{PageNotFound}from"./organisms/Status/collections/PageNotFound.js";export{ServerError}from"./organisms/Status/collections/ServerError.js";export{ApiResponseError}from"./organisms/Status/collections/ApiResponseError.js";export{TableOfContents}from"./organisms/TableOfContents/TableOfContents.js";export{Template}from"./organisms/Template/Template.js";export{PageTitle}from"./organisms/PageTitle/PageTitle.js";export{ExpandingIconButton}from"./deprecated/ExpandingIconButton/ExpandingIconButton.js";export{default as IconToggleButton}from"./deprecated/IconToggleButton.js";export{OldStepper}from"./deprecated/OldStepper/OldStepper.js";export{useSelect}from"./atoms/hooks/useSelect.js";export{useDebounce}from"./atoms/hooks/useDebounce.js";export{useFakeProgress}from"./atoms/hooks/useFakeProgress.js";export{useLocalStorage}from"./atoms/hooks/useLocalStorage.js";export{useNotification}from"./organisms/TopBar/Notifications/NotificationProvider.js";export{useOnScreenMultiple}from"./atoms/hooks/useOnScreenMultiple.js";export{usePrevious}from"./atoms/hooks/usePrevious.js";export{useSignalRMessages}from"./atoms/hooks/useSignalRMessages.js";export{useAmplifyKit}from"./atoms/hooks/useAmplifyKit.js";export{spacings}from"./atoms/style/spacings.js";export{colors}from"./atoms/style/colors.js";export{animation}from"./atoms/style/animation.js";export{elevation,shape,typography}from"./atoms/style/index.js";export{ErrorType}from"./atoms/enums/Errors.js";export{EnvironmentType}from"./atoms/enums/Environment.js";export{Theme}from"./atoms/enums/Theme.js";export{SpacingsMode}from"./atoms/enums/SpacingsMode.js";export{amplify_failure,amplify_lwd,amplify_success,amplify_wellbore,amplify_wireline,amplify_wireline_cased_hole,amplify_wireline_open_hole}from"./atoms/icons/drilling.js";export{amplify_calculator,amplify_overlay,amplify_sidebyside}from"./atoms/icons/map.js";export{amplify_aml,amplify_arrow_up_down,amplify_branch,amplify_info_small,amplify_merged,amplify_overview,amplify_resources,amplify_sharepoint,amplify_shield_person,amplify_small_portal,amplify_snail,amplify_sort_small,amplify_tutorials}from"./atoms/icons/other.js";export{amplify_h1,amplify_h2,amplify_h3,amplify_h4,amplify_table_add_column_left,amplify_table_add_column_right,amplify_table_add_row_above,amplify_table_add_row_below,amplify_table_column_heading,amplify_table_merge_cells,amplify_table_remove_column,amplify_table_remove_row,amplify_table_row_heading,amplify_table_split_cell}from"./atoms/icons/wysiwyg.js";export{auth,environment}from"./atoms/utils/auth_environment.js";export{formatLatLng,formatUtm}from"./atoms/utils/coordinate.js";export{formatDate,formatDateTime,formatRelativeDateTime,isBetweenDates}from"./atoms/utils/date.js";export{exportComponent}from"./atoms/utils/export.js";export{setupIcons}from"./atoms/utils/favicon.js";export{convertLatLngToUtm,convertUtmToLatLng,degrees2radians,distanceLatLng,utmProjection}from"./atoms/utils/map.js";export{defaultQueryOptions}from"./atoms/utils/reactquery.js";export{IMG_WITH_ALT,IMG_WITH_SRC_AND_ALT,cleanRichTextValue,extractImageUrls,getFeatures,imageToB64}from"./atoms/utils/richtext.js";export{formatBytes,formatDataSize,formatKiloBytes}from"./atoms/utils/size.js";export{sortByDate,sortByWellboreName}from"./atoms/utils/sort.js";export{Empty,capitalize}from"./atoms/utils/string.js";export{isValidUrl}from"./atoms/utils/url.js";export{getHighlightElementBoundingBox,highlightTutorialElementID}from"./atoms/utils/tutorials.js";export{RichTextEditor}from"./molecules/RichTextEditor/RichTextEditor.js";
1
+ export{AuthProvider,useAuth}from"./providers/AuthProvider/AuthProvider.js";export{SideBarProvider,useSideBar}from"./providers/SideBarProvider.js";export{SnackbarProvider,useSnackbar}from"./providers/SnackbarProvider/SnackbarProvider.js";export{TableOfContentsProvider,useTableOfContents}from"./providers/TableOfContentsProvider.js";export{ReleaseNotesProvider,useReleaseNotes}from"./providers/ReleaseNotesProvider.js";export{TutorialHighlightingProvider}from"./providers/TutorialHighlightingProvider/TutorialHighlightingProvider.js";export{LoadingProvider}from"./providers/LoadingProvider.js";export{ThemeProvider,useThemeProvider}from"./providers/ThemeProvider/ThemeProvider.js";export{StepperProvider,useStepper}from"./providers/StepperProvider.js";export{style}from"./atoms/index.js";export{AnimatedCheckmark}from"./molecules/AnimatedCheckmark/AnimatedCheckmark.js";export{ApplicationIcon}from"./molecules/ApplicationIcon/ApplicationIcon.js";export{Badge}from"./molecules/Badge/Badge.js";export{Banner}from"./molecules/Banner/Banner.js";export{Chip}from"./molecules/Chip/Chip.js";export{ContentMenu}from"./molecules/ContentMenu/ContentMenu.js";export{DatePicker}from"./molecules/DatePicker/DatePicker.js";export{Dialog}from"./molecules/Dialog/Dialog.js";export{EquinorLogo}from"./molecules/EquinorLogo/EquinorLogo.js";export{FileProgress}from"./molecules/FileProgress/FileProgress.js";export{FileUploadArea}from"./molecules/FileUploadArea/FileUploadArea.js";export{FullPageSpinner}from"./molecules/FullPageSpinner/FullPageSpinner.js";export{InfoElement}from"./molecules/InfoElement/InfoElement.js";export{OptionalTooltip}from"./molecules/OptionalTooltip/OptionalTooltip.js";export{ProfileAvatar}from"./molecules/ProfileAvatar/ProfileAvatar.js";export{RichTextDisplay}from"./molecules/RichTextDisplay/RichTextDisplay.js";export{RichText}from"./molecules/RichTextEditor/index.js";export{AmplifyBar,EditorMenu,EditorText}from"./molecules/RichTextEditor/MenuBar/MenuBar.js";export{AmplifyKit}from"./molecules/RichTextEditor/custom-extensions/AmplifyKit.js";export{TableMenuBar,TextTable}from"./molecules/RichTextEditor/MenuBar/Table/TableBar.js";export{DEFAULT_FEATURES,RichTextEditorFeatures}from"./molecules/RichTextEditor/RichTextEditor.types.js";export{Search}from"./molecules/Search/Search.js";export{Sieve}from"./molecules/Sieve/Sieve.js";export{SingleFilterMenu}from"./molecules/SingleFilterMenu/SingleFilterMenu.js";export{SkeletonBase,skeletonBaseloading}from"./molecules/Skeleton/SkeletonBase/SkeletonBase.js";export{SkeletonGradient}from"./molecules/Skeleton/SkeletonGradient/SkeletonGradient.js";export{Stepper}from"./molecules/Stepper/Stepper.js";export{OptionDrawer}from"./molecules/OptionDrawer/OptionDrawer.js";export{ComboBox}from"./molecules/Select/ComboBox/ComboBox.js";export{ComboBoxChip}from"./molecules/Select/Select.styles.js";export{SingleSelect}from"./molecules/Select/SingleSelect/SingleSelect.js";export{PageWithTitle}from"./molecules/PageWithTitle/PageWithTitle.js";export{FeedBackIcon}from"./molecules/FeedBackIcon/FeedBackIcon.js";export{ListItem}from"./molecules/ListItem/ListItem.js";export{Checkbox}from"./molecules/SelectionControls/Checkbox/Checkbox.js";export{Radio}from"./molecules/SelectionControls/Radio/Radio.js";export{Switch}from"./molecules/SelectionControls/Switch/Switch.js";export{Accordion,Breadcrumbs,Button,Card,CircularProgress,DateRangePicker,Divider,DotProgress,Dialog as EDSDialog,Icon,LinearProgress,Menu,Tabs,TextField,Typography}from"@equinor/eds-core-react";export{DataGrid}from"./organisms/DataGrid/DataGrid.js";export{FieldSelector}from"./organisms/FieldSelector/FieldSelector.js";export{Filter}from"./organisms/Filter/Filter.js";export{SideBar}from"./organisms/SideBar/index.js";export{TopBar}from"./organisms/TopBar/index.js";export{Status}from"./organisms/Status/index.js";export{BadRequest}from"./organisms/Status/collections/BadRequest.js";export{GenericError}from"./organisms/Status/collections/GenericError.js";export{MissingAccessToApp}from"./organisms/Status/collections/MissingAccessToApp.js";export{MissingPermissions}from"./organisms/Status/collections/MissingPermissions.js";export{PageNotFound}from"./organisms/Status/collections/PageNotFound.js";export{ServerError}from"./organisms/Status/collections/ServerError.js";export{ApiResponseError}from"./organisms/Status/collections/ApiResponseError.js";export{TableOfContents}from"./organisms/TableOfContents/TableOfContents.js";export{Template}from"./organisms/Template/Template.js";export{PageTitle}from"./organisms/PageTitle/PageTitle.js";export{ExpandingIconButton}from"./deprecated/ExpandingIconButton/ExpandingIconButton.js";export{default as IconToggleButton}from"./deprecated/IconToggleButton.js";export{OldStepper}from"./deprecated/OldStepper/OldStepper.js";export{usePrefetchRichTextImages}from"./atoms/hooks/usePrefetchRichTextImages.js";export{useSelect}from"./atoms/hooks/useSelect.js";export{useDebounce}from"./atoms/hooks/useDebounce.js";export{useFakeProgress}from"./atoms/hooks/useFakeProgress.js";export{useLocalStorage}from"./atoms/hooks/useLocalStorage.js";export{useNotification}from"./organisms/TopBar/Notifications/NotificationProvider.js";export{useOnScreenMultiple}from"./atoms/hooks/useOnScreenMultiple.js";export{usePrevious}from"./atoms/hooks/usePrevious.js";export{useSignalRMessages}from"./atoms/hooks/useSignalRMessages.js";export{useAmplifyKit}from"./atoms/hooks/useAmplifyKit.js";export{spacings}from"./atoms/style/spacings.js";export{colors}from"./atoms/style/colors.js";export{animation}from"./atoms/style/animation.js";export{elevation,shape,typography}from"./atoms/style/index.js";export{ErrorType}from"./atoms/enums/Errors.js";export{EnvironmentType}from"./atoms/enums/Environment.js";export{Theme}from"./atoms/enums/Theme.js";export{SpacingsMode}from"./atoms/enums/SpacingsMode.js";export{amplify_failure,amplify_lwd,amplify_success,amplify_wellbore,amplify_wireline,amplify_wireline_cased_hole,amplify_wireline_open_hole}from"./atoms/icons/drilling.js";export{amplify_calculator,amplify_overlay,amplify_sidebyside}from"./atoms/icons/map.js";export{amplify_aml,amplify_arrow_up_down,amplify_branch,amplify_info_small,amplify_merged,amplify_overview,amplify_resources,amplify_sharepoint,amplify_shield_person,amplify_small_portal,amplify_snail,amplify_sort_small,amplify_tutorials}from"./atoms/icons/other.js";export{amplify_h1,amplify_h2,amplify_h3,amplify_h4,amplify_table_add_column_left,amplify_table_add_column_right,amplify_table_add_row_above,amplify_table_add_row_below,amplify_table_column_heading,amplify_table_merge_cells,amplify_table_remove_column,amplify_table_remove_row,amplify_table_row_heading,amplify_table_split_cell}from"./atoms/icons/wysiwyg.js";export{auth,environment}from"./atoms/utils/auth_environment.js";export{formatLatLng,formatUtm}from"./atoms/utils/coordinate.js";export{formatDate,formatDateTime,formatRelativeDateTime,isBetweenDates}from"./atoms/utils/date.js";export{exportComponent}from"./atoms/utils/export.js";export{setupIcons}from"./atoms/utils/favicon.js";export{convertLatLngToUtm,convertUtmToLatLng,degrees2radians,distanceLatLng,utmProjection}from"./atoms/utils/map.js";export{defaultQueryOptions}from"./atoms/utils/reactquery.js";export{IMG_WITH_ALT,IMG_WITH_SRC_AND_ALT,cleanRichTextValue,extractImageUrls,getFeatures,getImagesFromRichText,imageToB64}from"./atoms/utils/richtext.js";export{formatBytes,formatDataSize,formatKiloBytes}from"./atoms/utils/size.js";export{sortByDate,sortByWellboreName}from"./atoms/utils/sort.js";export{Empty,capitalize}from"./atoms/utils/string.js";export{isValidUrl}from"./atoms/utils/url.js";export{getHighlightElementBoundingBox,highlightTutorialElementID}from"./atoms/utils/tutorials.js";export{VARIANT_ICONS}from"./atoms/utils/forms.js";export{RichTextEditor}from"./molecules/RichTextEditor/RichTextEditor.js";
@@ -11,7 +11,7 @@ export interface FileProgressPropsExtension {
11
11
  * @param onCancel - call back when clicking cancel
12
12
  * @param isError - if the file upload has an error
13
13
  * @param isDone - if the file upload is done
14
- * @param progressPercent - the percentage of the file that has been uploaded, if undefined its considered indeterminate
14
+ * @param progressPercent - the percentage of the file that has been uploaded
15
15
  * @param indeterminate - if the file upload progress is indeterminate
16
16
  * @param compact - if the file progress should use compact mode
17
17
  * @param fullErrorText - the full error text to show when hovering over the error icon
@@ -4,22 +4,17 @@ interface FileProgressBaseProps {
4
4
  file: FileWithPath | File;
5
5
  onCancel?: () => void;
6
6
  isError?: boolean;
7
+ isDone?: boolean;
7
8
  }
8
- type DoneFileProgress = FileProgressBaseProps & {
9
- isDone: true;
10
- indeterminate?: boolean;
11
- };
12
9
  type ProgressPercentFileProgress = FileProgressBaseProps & {
13
10
  progressPercent: number;
14
- isDone?: false;
15
11
  indeterminate?: false;
16
12
  };
17
13
  type IndeterminateFileProgress = FileProgressBaseProps & {
18
14
  progressPercent?: undefined;
19
- isDone?: false;
20
15
  indeterminate: true;
21
16
  };
22
- type FileProgressBase = DoneFileProgress | ProgressPercentFileProgress | IndeterminateFileProgress;
17
+ type FileProgressBase = ProgressPercentFileProgress | IndeterminateFileProgress;
23
18
  export type RegularFileProgressBaseProps = FileProgressBase & {
24
19
  compact?: false;
25
20
  fullErrorText?: string;
@@ -1 +1 @@
1
- import{jsx as e,jsxs as r}from"react/jsx-runtime";import{useMemo as o}from"react";import{Typography as t,Icon as a}from"@equinor/eds-core-react";import{thumbs_up as n,warning_outlined as i,error_outlined as m}from"@equinor/eds-icons";import{AmplifyBar as d}from"./MenuBar/MenuBar.js";import{EditorProvider as s}from"./EditorProvider.js";import{Wrapper as g,LabelWrapper as l,EditorStyling as c,EditorContent as h,HelperWrapper as u}from"./RichTextEditor.styles.js";import{VARIANT_COLORS as p,VARIANT_HELPER_TEXT_COLORS as v,colors as f}from"../../atoms/style/colors.js";import{getFeatures as I}from"../../atoms/utils/richtext.js";const x=({value:x,onChange:R,onImageUpload:$,onImageRead:b,onImageRemove:j,onRemovedImagesChange:U,placeholder:w,features:B,extendFeatures:C,removeFeatures:F,padding:H="md",maxHeight:y,minHeight:E,lightBackground:_,border:k=!0,highlighted:q=!1,variant:M,label:T,meta:z,helperText:P})=>{if(j&&U)throw new Error("onImageRemove and onRemovedImagesChange cannot be used together");const A=I({features:B,extendFeatures:C,removeFeatures:F,onImageUpload:$}),D=o((()=>{switch(M){case"error":return m;case"warning":return i;case"success":return n}}),[M]);return e(s,{content:x,onUpdate:R,features:A,placeholder:w,onImageUpload:$,onImageRead:b,onImageRemove:j,onRemovedImagesChange:U,children:o=>r(g,{children:[T&&r(l,{children:[e(t,{variant:"label",group:"input",children:T}),z&&e(t,{variant:"helper",group:"input",children:z})]}),r(c,{"data-testid":"richtext-editor",$border:k,$padding:H,$lightBackground:_,$highlighted:q,$variant:M,children:[e(d,{editor:o,features:A,onImageUpload:$}),e(h,{editor:o,$maxHeight:y,$minHeight:E})]}),P&&r(u,{children:[D&&M?e(a,{data:D,size:16,color:p[M]}):null,e(t,{variant:"helper",group:"input",color:M?v[M]:f.text.static_icons__tertiary.rgba,children:P})]})]})})};export{x as RichTextEditor};
1
+ import{jsx as e,jsxs as r}from"react/jsx-runtime";import{Typography as o,Icon as t}from"@equinor/eds-core-react";import{AmplifyBar as a}from"./MenuBar/MenuBar.js";import{EditorProvider as i}from"./EditorProvider.js";import{Wrapper as n,LabelWrapper as m,EditorStyling as d,EditorContent as l,HelperWrapper as s}from"./RichTextEditor.styles.js";import{VARIANT_COLORS as g,VARIANT_HELPER_TEXT_COLORS as h,colors as c}from"../../atoms/style/colors.js";import{VARIANT_ICONS as p}from"../../atoms/utils/forms.js";import{getFeatures as u}from"../../atoms/utils/richtext.js";const v=({value:v,onChange:f,onImageUpload:I,onImageRead:x,onImageRemove:R,onRemovedImagesChange:j,placeholder:$,features:b,extendFeatures:U,removeFeatures:B,padding:C="md",maxHeight:F,minHeight:H,lightBackground:y,border:E=!0,highlighted:_=!1,variant:k,label:w,meta:M,helperText:T})=>{if(R&&j)throw new Error("onImageRemove and onRemovedImagesChange cannot be used together");const q=u({features:b,extendFeatures:U,removeFeatures:B,onImageUpload:I}),z=k?p[k]:void 0;return e(i,{content:v,onUpdate:f,features:q,placeholder:$,onImageUpload:I,onImageRead:x,onImageRemove:R,onRemovedImagesChange:j,children:i=>r(n,{children:[w&&r(m,{children:[e(o,{variant:"label",group:"input",children:w}),M&&e(o,{variant:"helper",group:"input",children:M})]}),r(d,{"data-testid":"richtext-editor",$border:E,$padding:C,$lightBackground:y,$highlighted:_,$variant:k,children:[e(a,{editor:i,features:q,onImageUpload:I}),e(l,{editor:i,$maxHeight:F,$minHeight:H})]}),T&&r(s,{children:[z&&k?e(t,{data:z,size:16,color:g[k]}):null,e(o,{variant:"helper",group:"input",color:k?h[k]:c.text.static_icons__tertiary.rgba,children:T})]})]})})};export{v as RichTextEditor};
@@ -1 +1 @@
1
- import{AmplifyBar as r}from"./MenuBar/MenuBar.js";import{EditorProvider as t}from"./EditorProvider.js";import{EditorContent as o,EditorStyling as i}from"./RichTextEditor.styles.js";import{RichTextDisplay as e}from"../RichTextDisplay/RichTextDisplay.js";import"react/jsx-runtime";import"react";import"@equinor/eds-core-react";import"@equinor/eds-icons";import"../../atoms/style/colors.js";import"./RichTextEditor.types.js";const s={Styling:i,Provider:t,Content:o,Display:e,Bar:r};export{s as RichText};
1
+ import{AmplifyBar as r}from"./MenuBar/MenuBar.js";import{EditorProvider as o}from"./EditorProvider.js";import{EditorContent as t,EditorStyling as i}from"./RichTextEditor.styles.js";import{RichTextDisplay as e}from"../RichTextDisplay/RichTextDisplay.js";import"react/jsx-runtime";import"@equinor/eds-core-react";import"../../atoms/style/colors.js";import"@equinor/eds-icons";import"./RichTextEditor.types.js";const s={Styling:i,Provider:o,Content:t,Display:e,Bar:r};export{s as RichText};
@@ -4,6 +4,7 @@ interface AddTagItemProps {
4
4
  itemRefs: MultiSelectMenuItemProps<SelectOptionRequired>['itemRefs'];
5
5
  onItemKeyDown: MultiSelectMenuItemProps<SelectOptionRequired>['onItemKeyDown'];
6
6
  onAddItem: () => void;
7
+ addItemSingularWord: string;
7
8
  index: number;
8
9
  children: string;
9
10
  }
@@ -1 +1 @@
1
- import{jsx as e,jsxs as r}from"react/jsx-runtime";import{Icon as o}from"@equinor/eds-core-react";import{add_box as t}from"@equinor/eds-icons";import{colors as n}from"../../atoms/style/colors.js";import{MenuItemWrapper as i,StyledMenuItem as m}from"./Select.styles.js";const s=({itemRefs:s,onItemKeyDown:c,index:a,onAddItem:d,children:l})=>e(i,{children:r(m,{index:a,ref:e=>{s.current[a]=e},onClick:d,onKeyDownCapture:e=>{e.preventDefault(),"Enter"===e.key?d():c(e)},children:[e(o,{data:t,color:n.interactive.primary__resting.rgba}),r("span",{children:['Add "',l,'" as new tag']})]})});export{s as AddTagItem};
1
+ import{jsx as e,jsxs as r}from"react/jsx-runtime";import{Icon as o}from"@equinor/eds-core-react";import{add_box as t}from"@equinor/eds-icons";import{colors as n}from"../../atoms/style/colors.js";import{MenuItemWrapper as i,StyledMenuItem as m}from"./Select.styles.js";const d=({itemRefs:d,onItemKeyDown:s,index:c,onAddItem:a,addItemSingularWord:l,children:p})=>e(i,{children:r(m,{index:c,ref:e=>{d.current[c]=e},onClick:a,onKeyDownCapture:e=>{e.preventDefault(),"Enter"===e.key?a():s(e)},children:[e(o,{data:t,color:n.interactive.primary__resting.rgba}),r("span",{children:['Add "',p,'" as new ',l]})]})});export{d as AddTagItem};
@@ -10,6 +10,7 @@ export type GroupedComboBoxProps<T extends SelectOptionRequired> = CommonSelectP
10
10
  * @param showHelperIcon - Show helper variant icon, defaults to true
11
11
  * @param syncParentChildSelection - Syncs parents/child selections, default is true
12
12
  * @param onAddItem - Enables the possibility to add extra tags and is called when submitting a new item, either via menu click 'add' or {Enter}. Not supported with groups prop.
13
+ * @param addItemSingularWord - Word to use when adding a new item, default is "tag"
13
14
  * @param onSearchFilter - Custom filter function for search, default is "item.label.match(new RegExp(searchValue, 'i'))"
14
15
  */
15
16
  export declare function ComboBox<T extends SelectOptionRequired>(props: ListComboBoxProps<T> | GroupedComboBoxProps<T>): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- import{jsx as o}from"react/jsx-runtime";import{Select as r}from"../Select.js";function t(t){if("groups"in t&&t.groups&&t.onAddItem)throw new Error("[ACL - ComboBox] Using 'onAddItem' is only supported in lists and not groups");return o(r,{...t})}export{t as ComboBox};
1
+ import{jsx as r}from"react/jsx-runtime";import{Select as t}from"../Select.js";function e(e){return r(t,{...e})}export{e as ComboBox};
@@ -1,2 +1,2 @@
1
1
  import { ListSelectMenuProps, ListSelectProps, MultiSelectCommon, SelectMenuProps, SelectOptionRequired, SingleSelectCommon } from './Select.types';
2
- export declare const ListSelectMenu: <T extends SelectOptionRequired>(props: ListSelectProps<T> & ListSelectMenuProps & SelectMenuProps<T> & (Omit<MultiSelectCommon<T>, "syncParentChildSelection"> | SingleSelectCommon<T>)) => import("react/jsx-runtime").JSX.Element | import("react/jsx-runtime").JSX.Element[];
2
+ export declare const ListSelectMenu: <T extends SelectOptionRequired>(props: Omit<ListSelectProps<T>, "onAddItem"> & ListSelectMenuProps & SelectMenuProps<T> & (Omit<MultiSelectCommon<T>, "syncParentChildSelection"> | SingleSelectCommon<T>)) => import("react/jsx-runtime").JSX.Element | import("react/jsx-runtime").JSX.Element[];
@@ -1 +1 @@
1
- import{jsx as e,jsxs as t,Fragment as n}from"react/jsx-runtime";import{useMemo as r}from"react";import{Menu as i}from"@equinor/eds-core-react";import{AddTagItem as m}from"./AddTagItem.js";import{NoItemsFoundText as o,NoTagFoundText as d}from"./Select.styles.js";import{flattenOptions as l,getChildOffset as s}from"./Select.utils.js";import{SelectMenuItem as c}from"./SelectMenuItem.js";const a=a=>{const{search:h,items:f,itemRefs:u,onItemKeyDown:p,onSearchFilter:g}=a,I=r((()=>{if(""===h)return f;const e=new RegExp(h.trim(),"i");return l(f).filter((t=>void 0!==g?g(h,t):t.label.match(e)))}),[f,g,h]);if(0===I.length&&(!a.onAddItem||""===h))return e(o,{children:"No items found"});const x=I.some((e=>e.children&&e.children.length>0)),A=I.map(((e,t)=>({childOffset:s(I,t),index:t,item:e,itemValue:e.value,parentHasNestedItems:x,...a})));return"onAddItem"in a&&a.onAddItem&&""!==h&&(1===I.length&&I.at(0)?.label.toLowerCase()!==h.trim().toLowerCase()||1!==I.length)?t(n,{children:[e(i.Section,{title:"Add tag",index:0,children:e(m,{index:0,itemRefs:u,onItemKeyDown:p,onAddItem:a.onAddItem,children:h})}),e(i.Section,{title:"Tag search results",index:1,children:A.length>0?A.map(((t,n)=>e(c,{...t,index:n+1},`menu-item-${n}-${t.item.value}`))):t(d,{children:['No tag for "',h,'" found.']})})]}):A.map(((t,n)=>e(c,{...t,index:n},`menu-item-${n}-${t.item.value}`)))};export{a as ListSelectMenu};
1
+ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{useMemo as i}from"react";import{Menu as n}from"@equinor/eds-core-react";import{AddTagItem as o}from"./AddTagItem.js";import{capitalize as m}from"../../atoms/utils/string.js";import{NoItemsFoundText as d,NoTagFoundText as l}from"./Select.styles.js";import{flattenOptions as s,getChildOffset as a}from"./Select.utils.js";import{SelectMenuItem as c}from"./SelectMenuItem.js";const u=u=>{const{search:f,items:h,itemRefs:p,onItemKeyDown:g,onSearchFilter:I}=u,x=i((()=>{if(""===f)return h;const e=new RegExp(f.trim(),"i");return s(h).filter((t=>void 0!==I?I(f,t):t.label.match(e)))}),[h,I,f]);if(0===x.length&&(!u.onAddItem||""===f))return e(d,{children:"No items found"});const S=x.some((e=>e.children&&e.children.length>0)),A=x.map(((e,t)=>({childOffset:a(x,t),index:t,item:e,itemValue:e.value,parentHasNestedItems:S,...u})));if("onAddItem"in u&&u.onAddItem&&""!==f&&(1===x.length&&x.at(0)?.label.toLowerCase()!==f.trim().toLowerCase()||1!==x.length)){const i=u.itemSingularWord?u.itemSingularWord:"tag";return t(r,{children:[e(n.Section,{title:`Add ${i}`,index:0,children:e(o,{index:0,itemRefs:p,onItemKeyDown:g,onAddItem:u.onAddItem,addItemSingularWord:i,children:f})}),e(n.Section,{title:`${m(i)} search results`,index:1,children:A.length>0?A.map(((t,r)=>e(c,{...t,index:r+1},`menu-item-${r}-${t.item.value}`))):t(l,{children:["No ",i,' for "',f,'" found.']})})]})}return A.map(((t,r)=>e(c,{...t,index:r},`menu-item-${r}-${t.item.value}`)))};export{u as ListSelectMenu};
@@ -1 +1 @@
1
- import{jsx as e,jsxs as t}from"react/jsx-runtime";import{useRef as o,useMemo as n}from"react";import{Label as r,CircularProgress as l,Icon as a}from"@equinor/eds-core-react";import{thumbs_up as i,warning_outlined as c,error_outlined as s,arrow_drop_up as d,arrow_drop_down as m,clear as u}from"@equinor/eds-icons";import{tokens as h}from"../../node_modules/@equinor/eds-tokens/dist/esm/base/index.js";import{useSelect as p}from"../../atoms/hooks/useSelect.js";import{GroupedSelectMenu as g}from"./GroupedSelectMenu.js";import{ListSelectMenu as b}from"./ListSelectMenu.js";import{ValueText as f,ComboBoxChip as v,Wrapper as y,Container as x,Section as C,PlaceholderText as S,ClearButton as I,HelperWrapper as O,StyledMenu as k}from"./Select.styles.js";import{useOutsideClick as w}from"../../node_modules/@equinor/eds-utils/dist/esm/hooks/useOutsideClick.js";const{colors:D}=h,R=h=>{const{clearable:R=!0,loading:$=!1,disabled:j=!1,lightBackground:V=!1,underlineHighlight:B=!1,sortValues:F=!0,placeholder:K="Select...",label:T,helperText:_,showHelperIcon:q=!0,meta:z,id:A=`amplify-combobox-${T}`,variant:H,inDialog:W=!1,onSearchFilter:M,"data-testid":E}=h,{handleOnAddItem:G,handleOnClear:L,handleOnItemKeyDown:N,handleOnItemSelect:J,handleOnSearchChange:P,handleOnSearchKeyDown:Q,handleToggleOpen:U,itemRefs:X,search:Y,selectedValues:Z,handleOnClose:ee,handleOnOpen:te,handleOnRemoveItem:oe,open:ne,searchRef:re,tryingToRemoveItem:le}=p({...h,clearable:R,loading:$,disabled:j,lightBackground:V,underlineHighlight:B,sortValues:F,placeholder:K}),ae=o(null),ie=o(null),ce=n((()=>!!T||!!z),[T,z]),se=n((()=>!!_),[_]),de=n((()=>{if(q)switch(H){case"error":return s;case"warning":return c;case"success":return i}}),[q,H]);w(ie.current,(e=>{W&&ne&&e.target&&ae.current&&ie.current&&!ae.current.contains(e.target)&&!ie.current?.contains(e.target)&&ee()}));const me=n((()=>"value"in h&&h.value?e(f,{children:h.value.label}):Z.map((t=>"customValueComponent"in h&&h.customValueComponent?e(h.customValueComponent,{item:t,onDelete:()=>oe(t),tryingToRemove:void 0!==le&&le.value===t.value},t.value):e(v,{"data-testid":"amplify-combobox-chip",className:"amplify-combo-box-chip",onDelete:()=>oe(t),$tryingToRemove:le?.value===t.value,$lightBackground:V,children:t.label},t.value)))),[Z,le,V,h,oe]);return t("div",{children:[ce&&e(r,{label:T,meta:z,htmlFor:A}),t(y,{children:[t(x,{"data-testid":E||"combobox-container",ref:ae,onClick:te,"aria-expanded":ne,$variant:H,$lightBackground:V,children:[t(C,{children:[""===Y&&0===Z.length&&e(S,{children:K}),(""===Y||"values"in h&&Z.length>0)&&me,e("input",{id:A,disabled:j||$,ref:re,type:"search",role:"combobox",value:Y,autoComplete:"off",onChange:P,onKeyDownCapture:Q})]}),$?e(l,{size:16}):e(a,{onClick:U,data:ne?d:m,color:D.interactive.primary__resting.rgba}),R&&Z.length>0&&!$&&e(I,{id:"clear",variant:"ghost_icon",onClick:L,"data-testid":"clearBtn",children:e(a,{data:u,size:18})})]}),se&&t(O,{$variant:H,children:[de&&e(a,{data:de,size:16}),e(r,{label:_,htmlFor:A})]})]}),ne&&e(k,{ref:ie,open:!0,id:"combobox-menu",anchorEl:ae.current,onClose:ee,placement:"bottom",style:{width:`${ae.current?.clientWidth}px`,maxWidth:`${ae.current?.clientWidth}px`},children:"groups"in h&&h.groups?e(g,{...h,search:Y,itemRefs:X,onItemSelect:J,onItemKeyDown:N,onSearchFilter:M}):e(b,{...h,search:Y,itemRefs:X,onAddItem:h.onAddItem?G:void 0,onItemSelect:J,onItemKeyDown:N,onSearchFilter:M})})]})};export{R as Select};
1
+ import{jsx as e,jsxs as o}from"react/jsx-runtime";import{useRef as t,useMemo as n}from"react";import{Label as r,CircularProgress as l,Icon as a}from"@equinor/eds-core-react";import{arrow_drop_up as i,arrow_drop_down as c,clear as d}from"@equinor/eds-icons";import{tokens as s}from"../../node_modules/@equinor/eds-tokens/dist/esm/base/index.js";import{useSelect as m}from"../../atoms/hooks/useSelect.js";import{VARIANT_ICONS as h}from"../../atoms/utils/forms.js";import{GroupedSelectMenu as u}from"./GroupedSelectMenu.js";import{ListSelectMenu as p}from"./ListSelectMenu.js";import{ValueText as g,ComboBoxChip as b,Wrapper as f,Container as v,Section as y,PlaceholderText as x,ClearButton as C,HelperWrapper as S,StyledMenu as I}from"./Select.styles.js";import{useOutsideClick as O}from"../../node_modules/@equinor/eds-utils/dist/esm/hooks/useOutsideClick.js";const{colors:k}=s,j=s=>{const{clearable:j=!0,loading:D=!1,disabled:R=!1,lightBackground:$=!1,underlineHighlight:w=!1,sortValues:V=!0,placeholder:B="Select...",label:F,helperText:K,showHelperIcon:T=!0,meta:_,id:q=`amplify-combobox-${F}`,variant:z,inDialog:A=!1,onSearchFilter:H,"data-testid":W}=s,{handleOnAddItem:M,handleOnClear:E,handleOnItemKeyDown:G,handleOnItemSelect:L,handleOnSearchChange:N,handleOnSearchKeyDown:J,handleToggleOpen:P,itemRefs:Q,search:U,selectedValues:X,handleOnClose:Y,handleOnOpen:Z,handleOnRemoveItem:ee,open:oe,searchRef:te,tryingToRemoveItem:ne}=m({...s,clearable:j,loading:D,disabled:R,lightBackground:$,underlineHighlight:w,sortValues:V,placeholder:B}),re=t(null),le=t(null),ae=n((()=>!!F||!!_),[F,_]),ie=n((()=>!!K),[K]),ce=n((()=>{if(T)return z?h[z]:void 0}),[T,z]);O(le.current,(e=>{A&&oe&&e.target&&re.current&&le.current&&!re.current.contains(e.target)&&!le.current?.contains(e.target)&&Y()}));const de=n((()=>"value"in s&&s.value?e(g,{children:s.value.label}):X.map((o=>"customValueComponent"in s&&s.customValueComponent?e(s.customValueComponent,{item:o,onDelete:()=>ee(o),tryingToRemove:void 0!==ne&&ne.value===o.value},o.value):e(b,{"data-testid":"amplify-combobox-chip",className:"amplify-combo-box-chip",onDelete:()=>ee(o),$tryingToRemove:ne?.value===o.value,$lightBackground:$,children:o.label},o.value)))),[X,ne,$,s,ee]);return o("div",{children:[ae&&e(r,{label:F,meta:_,htmlFor:q}),o(f,{children:[o(v,{"data-testid":W||"combobox-container",ref:re,onClick:Z,"aria-expanded":oe,$variant:z,$lightBackground:$,children:[o(y,{children:[""===U&&0===X.length&&e(x,{children:B}),(""===U||"values"in s&&X.length>0)&&de,e("input",{id:q,disabled:R||D,ref:te,type:"search",role:"combobox",value:U,autoComplete:"off",onChange:N,onKeyDownCapture:J})]}),D?e(l,{size:16}):e(a,{onClick:P,data:oe?i:c,color:k.interactive.primary__resting.rgba}),j&&X.length>0&&!D&&e(C,{id:"clear",variant:"ghost_icon",onClick:E,"data-testid":"clearBtn",children:e(a,{data:d,size:18})})]}),ie&&o(S,{$variant:z,children:[ce&&e(a,{data:ce,size:16}),e(r,{label:K,htmlFor:q})]})]}),oe&&e(I,{ref:le,open:!0,id:"combobox-menu",anchorEl:re.current,onClose:Y,placement:"bottom",style:{width:`${re.current?.clientWidth}px`,maxWidth:`${re.current?.clientWidth}px`},children:"groups"in s&&s.groups?e(u,{...s,search:U,itemRefs:Q,onItemSelect:L,onItemKeyDown:G,onSearchFilter:H}):e(p,{...s,search:U,itemRefs:Q,onAddItem:s.onAddItem?M:void 0,onItemSelect:L,onItemKeyDown:G,onSearchFilter:H})})]})};export{j as Select};
@@ -29,12 +29,22 @@ export interface GroupedSelectProps<T extends SelectOptionRequired> {
29
29
  groups: SelectGroup<T>[];
30
30
  items?: undefined;
31
31
  }
32
- export interface ListSelectProps<T extends SelectOptionRequired> {
32
+ type CommonListSelectProps<T extends SelectOptionRequired> = {
33
33
  items: SelectOption<T>[];
34
34
  groups?: undefined;
35
+ };
36
+ interface ListSelectWithAddItemProps<T extends SelectOptionRequired> extends CommonListSelectProps<T> {
37
+ onAddItem: (item: string) => void;
38
+ itemSingularWord?: string;
39
+ }
40
+ interface ListSelectWithoutAddItemProps<T extends SelectOptionRequired> extends CommonListSelectProps<T> {
41
+ onAddItem?: undefined;
42
+ itemSingularWord?: undefined;
35
43
  }
44
+ export type ListSelectProps<T extends SelectOptionRequired> = ListSelectWithAddItemProps<T> | ListSelectWithoutAddItemProps<T>;
36
45
  export interface ListSelectMenuProps {
37
46
  onAddItem?: () => void;
47
+ itemSingularWord?: string;
38
48
  }
39
49
  export interface SelectMenuProps<T extends SelectOptionRequired> {
40
50
  search: string;
@@ -76,7 +86,6 @@ export interface CommonSelectProps<T extends SelectOptionRequired> {
76
86
  inDialog?: boolean;
77
87
  onOpenCallback?: (value: boolean) => void;
78
88
  onSearchFilter?: (searchValue: string, item: T) => void;
79
- onAddItem?: (item: string) => void;
80
89
  'data-testid'?: string;
81
90
  }
82
91
  export {};
@@ -8,6 +8,8 @@ export type GroupedSingleSelectProps<T extends SelectOptionRequired> = CommonSel
8
8
  * @param sortValues - Sort the provided values, defaults to true
9
9
  * @param inDialog - Fixes weird issue that EDS menus has when it's used in dialogs, defaults to false
10
10
  * @param showHelperIcon - Show helper variant icon, defaults to true
11
+ * @param onAddItem - Enables the possibility to add extra tags and is called when submitting a new item, either via menu click 'add' or {Enter}. Not supported with groups prop.
12
+ * @param addItemSingularWord - Word to use when adding a new item, default is "tag"
11
13
  * @param onSearchFilter - Custom filter function for search, default is "item.label.match(new RegExp(searchValue, 'i'))"
12
14
  */
13
15
  export declare function SingleSelect<T extends SelectOptionRequired>(props: ListSingleSelectProps<T> | GroupedSingleSelectProps<T>): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- import{jsx as r}from"react/jsx-runtime";import{Select as o}from"../Select.js";function t(t){if("groups"in t&&t.groups&&t.onAddItem)throw new Error("[ACL - SingleSelect] Using 'onAddItem' is only supported in lists and not groups");return r(o,{...t})}export{t as SingleSelect};
1
+ import{jsx as r}from"react/jsx-runtime";import{Select as t}from"../Select.js";function e(e){return r(t,{...e})}export{e as SingleSelect};
@@ -1,5 +1,5 @@
1
- import{jsx as r,jsxs as e,Fragment as i}from"react/jsx-runtime";import{LinearProgress as t,Typography as o}from"@equinor/eds-core-react";import"react";import"../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../molecules/RichTextEditor/RichTextEditor.types.js";import{useFakeProgress as s}from"../../atoms/hooks/useFakeProgress.js";import"../../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../../atoms/enums/Environment.js";import"../../atoms/utils/auth_environment.js";import"../TopBar/Notifications/NotificationProvider.js";import"../../providers/AuthProvider/AuthProvider.js";import"../../providers/ReleaseNotesProvider.js";import"../../providers/SideBarProvider.js";import"../../providers/SnackbarProvider/SnackbarProvider.js";import"../../providers/StepperProvider.js";import"../../providers/TableOfContentsProvider.js";import"../../providers/ThemeProvider/ThemeProvider.js";import{colors as a}from"../../atoms/style/colors.js";import{spacings as m}from"../../atoms/style/spacings.js";import"html2canvas";import"proj4";import{capitalize as n}from"../../atoms/utils/string.js";import{AnimatedCheckmark as p}from"../../molecules/AnimatedCheckmark/AnimatedCheckmark.js";import d from"styled-components";const c=d.div`
2
- gap: ${m.medium};
1
+ import{jsx as r,jsxs as e,Fragment as i}from"react/jsx-runtime";import{LinearProgress as o,Typography as t}from"@equinor/eds-core-react";import"react";import"../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../molecules/RichTextEditor/RichTextEditor.types.js";import{useFakeProgress as s}from"../../atoms/hooks/useFakeProgress.js";import"../../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../../atoms/enums/Environment.js";import"../../atoms/utils/auth_environment.js";import{colors as m}from"../../atoms/style/colors.js";import{spacings as a}from"../../atoms/style/spacings.js";import"../../atoms/enums/Errors.js";import"../../atoms/enums/Theme.js";import"../../atoms/enums/SpacingsMode.js";import"html2canvas";import"proj4";import{capitalize as n}from"../../atoms/utils/string.js";import"@equinor/eds-icons";import"../TopBar/Notifications/NotificationProvider.js";import"../../providers/AuthProvider/AuthProvider.js";import"../../providers/ReleaseNotesProvider.js";import"../../providers/SideBarProvider.js";import"../../providers/SnackbarProvider/SnackbarProvider.js";import"../../providers/StepperProvider.js";import"../../providers/TableOfContentsProvider.js";import"../../providers/ThemeProvider/ThemeProvider.js";import{AnimatedCheckmark as p}from"../../molecules/AnimatedCheckmark/AnimatedCheckmark.js";import d from"styled-components";const c=d.div`
2
+ gap: ${a.medium};
3
3
  position: absolute;
4
4
  top: 50%;
5
5
  left: 50%;
@@ -8,17 +8,17 @@ import{jsx as r,jsxs as e,Fragment as i}from"react/jsx-runtime";import{LinearPro
8
8
  flex-direction: column;
9
9
  justify-content: center;
10
10
  align-items: center;
11
- min-height: calc(100vh - (${m.xxx_large} * 4));
11
+ min-height: calc(100vh - (${a.xxx_large} * 4));
12
12
  width: 100%;
13
13
  max-width: 370px;
14
- `,l=d(t)`
15
- background-color: ${a.interactive.primary__hover_alt.rgba};
14
+ `,l=d(o)`
15
+ background-color: ${m.interactive.primary__hover_alt.rgba};
16
16
 
17
17
  div {
18
- background-color: ${a.interactive.primary__resting.rgba};
18
+ background-color: ${m.interactive.primary__resting.rgba};
19
19
  }
20
- `,h=d(o)`
20
+ `,h=d(t)`
21
21
  span {
22
22
  text-transform: capitalize;
23
23
  }
24
- `,v=({fieldName:t,onChangedField:a,finishedText:m})=>{const{finished:d,progress:v}=s({onDone:a});return r(c,{children:e(i,d?{children:[e(h,{variant:"h3",children:["Changed to ",r("span",{children:n(t)})]}),r(p,{}),r(o,{variant:"h6",children:m})]}:{children:[e(o,{variant:"h3",children:["Changing field.",".".repeat(v/35)]}),r(l,{variant:"determinate",value:v})]})})};export{v as ChangingField,l as LinearProgress};
24
+ `,v=({fieldName:o,onChangedField:m,finishedText:a})=>{const{finished:d,progress:v}=s({onDone:m});return r(c,{children:e(i,d?{children:[e(h,{variant:"h3",children:["Changed to ",r("span",{children:n(o)})]}),r(p,{}),r(t,{variant:"h6",children:a})]}:{children:[e(t,{variant:"h3",children:["Changing field.",".".repeat(v/35)]}),r(l,{variant:"determinate",value:v})]})})};export{v as ChangingField,l as LinearProgress};
@@ -1,4 +1,4 @@
1
- import"react";import"../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../../atoms/enums/Environment.js";import"../../atoms/utils/auth_environment.js";import"../TopBar/Notifications/NotificationProvider.js";import"../../providers/AuthProvider/AuthProvider.js";import"../../providers/ReleaseNotesProvider.js";import"../../providers/SideBarProvider.js";import"../../providers/SnackbarProvider/SnackbarProvider.js";import"../../providers/StepperProvider.js";import"../../providers/TableOfContentsProvider.js";import"../../providers/ThemeProvider/ThemeProvider.js";import{shape as r,typography as t}from"../../atoms/style/index.js";import"../../atoms/enums/Errors.js";import"../../atoms/enums/Theme.js";import"../../atoms/enums/SpacingsMode.js";import"html2canvas";import"proj4";import{Chip as e}from"../../molecules/Chip/Chip.js";import{motion as i}from"framer-motion";import o,{css as a}from"styled-components";import{colors as s}from"../../atoms/style/colors.js";import{spacings as n}from"../../atoms/style/spacings.js";const d=o.div`
1
+ import"react";import"../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../../atoms/enums/Environment.js";import"../../atoms/utils/auth_environment.js";import"../TopBar/Notifications/NotificationProvider.js";import"../../providers/AuthProvider/AuthProvider.js";import"../../providers/ReleaseNotesProvider.js";import"../../providers/SideBarProvider.js";import"../../providers/SnackbarProvider/SnackbarProvider.js";import"../../providers/StepperProvider.js";import"../../providers/TableOfContentsProvider.js";import"../../providers/ThemeProvider/ThemeProvider.js";import{shape as r,typography as t}from"../../atoms/style/index.js";import"../../atoms/enums/Errors.js";import"../../atoms/enums/Theme.js";import"../../atoms/enums/SpacingsMode.js";import"html2canvas";import"proj4";import"@equinor/eds-icons";import{Chip as e}from"../../molecules/Chip/Chip.js";import{motion as i}from"framer-motion";import o,{css as a}from"styled-components";import{colors as s}from"../../atoms/style/colors.js";import{spacings as n}from"../../atoms/style/spacings.js";const d=o.div`
2
2
  width: 100%;
3
3
  border: 1px solid ${s.ui.background__heavy.rgba};
4
4
  border-radius: ${r.corners.borderRadius};
@@ -1 +1 @@
1
- import{useEffect as r}from"react";import"../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../../atoms/enums/Environment.js";import{environment as o}from"../../atoms/utils/auth_environment.js";import"../TopBar/Notifications/NotificationProvider.js";import"../../providers/AuthProvider/AuthProvider.js";import"../../providers/ReleaseNotesProvider.js";import"../../providers/SideBarProvider.js";import"../../providers/SnackbarProvider/SnackbarProvider.js";import"../../providers/StepperProvider.js";import"../../providers/TableOfContentsProvider.js";import"../../providers/ThemeProvider/ThemeProvider.js";import"../../atoms/style/colors.js";import"../../atoms/enums/Errors.js";import"../../atoms/enums/Theme.js";import"../../atoms/enums/SpacingsMode.js";import"html2canvas";import"proj4";const t=o.getAppName(import.meta.env.VITE_NAME),e=({title:o,children:e})=>(r((()=>{document.title!==o&&(document.title=`${t} - ${o}`)}),[o]),e);export{e as PageTitle};
1
+ import{useEffect as r}from"react";import"../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../../atoms/enums/Environment.js";import{environment as o}from"../../atoms/utils/auth_environment.js";import"../TopBar/Notifications/NotificationProvider.js";import"../../providers/AuthProvider/AuthProvider.js";import"../../providers/ReleaseNotesProvider.js";import"../../providers/SideBarProvider.js";import"../../providers/SnackbarProvider/SnackbarProvider.js";import"../../providers/StepperProvider.js";import"../../providers/TableOfContentsProvider.js";import"../../providers/ThemeProvider/ThemeProvider.js";import"../../atoms/style/colors.js";import"../../atoms/enums/Errors.js";import"../../atoms/enums/Theme.js";import"../../atoms/enums/SpacingsMode.js";import"html2canvas";import"proj4";import"@equinor/eds-icons";const t=o.getAppName(import.meta.env.VITE_NAME),i=({title:o,children:i})=>(r((()=>{document.title!==o&&(document.title=`${t} - ${o}`)}),[o]),i);export{i as PageTitle};
@@ -1 +1 @@
1
- import{jsxs as e,jsx as t}from"react/jsx-runtime";import{forwardRef as i,useMemo as r,useCallback as a}from"react";import{Icon as n}from"@equinor/eds-core-react";import{Feature as o}from"@equinor/subsurface-app-management";import{Link as d,IconContainer as l,ItemText as s}from"./MenuItem.styles.js";import{isCurrentUrl as c}from"./MenuItem.utils.js";import{OptionalTooltip as m}from"../../molecules/OptionalTooltip/OptionalTooltip.js";import{useSideBar as p}from"../../providers/SideBarProvider.js";const u=i((({currentUrl:i,icon:u,name:f,link:b,onClick:h,disabled:v=!1,replace:$=!1,featureUuid:j,...k},I)=>{const g=c({currentUrl:i,link:b}),x=r((()=>{const e=i?.split("?")[0];return e===b}),[i,b]),{isOpen:U}=p(),C=r((()=>!v&&(!g||g&&!x&&$)),[v,g,x,$]),M=a((e=>{C?h&&h():e.preventDefault()}),[C,h]),O=r((()=>U?e(d,{to:b,$active:g,"aria-disabled":v,$disabled:v,onClick:M,tabIndex:0,$open:!0,ref:I,"data-testid":"sidebar-menu-item",replace:$,...k,children:[t(l,{"data-testid":"icon-container",children:t(n,{data:u,size:24})}),t(s,{$active:g,$disabled:v,variant:"button",group:"navigation",children:f})]}):t(m,{title:f,placement:"right",children:t(d,{to:b,$active:g,"aria-disabled":v,$disabled:v,onClick:M,$open:U,tabIndex:0,ref:I,...k,"data-testid":"sidebar-menu-item",children:t(l,{"data-testid":"icon-container",children:t(n,{data:u,size:24})})})})),[v,M,u,g,U,b,f,k,I,$]);return j?t(o,{featureUuid:j,children:O}):O}));u.displayName="MenuItem";export{u as MenuItem};
1
+ import{jsx as e,jsxs as i}from"react/jsx-runtime";import{forwardRef as t,useMemo as r,useCallback as a}from"react";import{Icon as n}from"@equinor/eds-core-react";import{Feature as o}from"@equinor/subsurface-app-management";import{Link as d,IconContainer as l,ItemText as c}from"./MenuItem.styles.js";import{isCurrentUrl as s}from"./MenuItem.utils.js";import{OptionalTooltip as m}from"../../molecules/OptionalTooltip/OptionalTooltip.js";import{useSideBar as p}from"../../providers/SideBarProvider.js";const u=t((({currentUrl:t,icon:u,name:f,link:b,onClick:h,disabled:v=!1,replace:$=!1,featureUuid:g,...j},k)=>{const I=s({currentUrl:t,link:b}),x=r((()=>{const e=t?.split("?")[0];return e===b}),[t,b]),{isOpen:U}=p(),C=r((()=>!v&&(!I||I&&!x&&$)),[v,I,x,$]),M=a((e=>{C?h&&h():e.preventDefault()}),[C,h]),O=r((()=>e(m,U?{title:f,placement:"right",children:e("span",{children:i(d,{to:b,$active:I,"aria-disabled":v,$disabled:v,onClick:M,tabIndex:0,$open:!0,ref:k,"data-testid":"sidebar-menu-item",replace:$,...j,children:[e(l,{"data-testid":"icon-container",children:e(n,{data:u,size:24})}),e(c,{$active:I,$disabled:v,variant:"button",group:"navigation",children:f})]})})}:{title:f,placement:"right",children:e("span",{children:e(d,{to:b,$active:I,"aria-disabled":v,$disabled:v,onClick:M,$open:U,tabIndex:0,ref:k,...j,"data-testid":"sidebar-menu-item",children:e(l,{"data-testid":"icon-container",children:e(n,{data:u,size:24})})})})})),[v,M,u,I,U,b,f,j,k,$]);return g?e(o,{featureUuid:g,children:O}):O}));u.displayName="MenuItem";export{u as MenuItem};
@@ -1 +1 @@
1
- import{jsxs as r,jsx as o}from"react/jsx-runtime";import"react";import"../../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../../../atoms/enums/Environment.js";import{environment as t}from"../../../atoms/utils/auth_environment.js";import"../../TopBar/Notifications/NotificationProvider.js";import"../../../providers/AuthProvider/AuthProvider.js";import"../../../providers/ReleaseNotesProvider.js";import"../../../providers/SideBarProvider.js";import"../../../providers/SnackbarProvider/SnackbarProvider.js";import"../../../providers/StepperProvider.js";import"../../../providers/TableOfContentsProvider.js";import"../../../providers/ThemeProvider/ThemeProvider.js";import"../../../atoms/style/colors.js";import"../../../atoms/enums/Errors.js";import"../../../atoms/enums/Theme.js";import"../../../atoms/enums/SpacingsMode.js";import"html2canvas";import"proj4";import{Status as e}from"../index.js";const i=()=>{const i=t.getAppName(import.meta.env.VITE_NAME);return r(e,{children:[o(e.Title,{title:`You don't have access to ${i}`}),o(e.Description,{text:"You can apply for acces to the app in AccessIT"}),o(e.Action,{onClick:()=>{window.open(`https://accessit.equinor.com/Search/Search?term=${encodeURIComponent(i)}`,"_blank")},buttonText:"Apply for access"})]})};export{i as MissingAccessToApp};
1
+ import{jsxs as r,jsx as o}from"react/jsx-runtime";import"react";import"../../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../../../atoms/enums/Environment.js";import{environment as t}from"../../../atoms/utils/auth_environment.js";import"../../TopBar/Notifications/NotificationProvider.js";import"../../../providers/AuthProvider/AuthProvider.js";import"../../../providers/ReleaseNotesProvider.js";import"../../../providers/SideBarProvider.js";import"../../../providers/SnackbarProvider/SnackbarProvider.js";import"../../../providers/StepperProvider.js";import"../../../providers/TableOfContentsProvider.js";import"../../../providers/ThemeProvider/ThemeProvider.js";import"../../../atoms/style/colors.js";import"../../../atoms/enums/Errors.js";import"../../../atoms/enums/Theme.js";import"../../../atoms/enums/SpacingsMode.js";import"html2canvas";import"proj4";import"@equinor/eds-icons";import{Status as e}from"../index.js";const i=()=>{const i=t.getAppName(import.meta.env.VITE_NAME);return r(e,{children:[o(e.Title,{title:`You don't have access to ${i}`}),o(e.Description,{text:"You can apply for acces to the app in AccessIT"}),o(e.Action,{onClick:()=>{window.open(`https://accessit.equinor.com/Search/Search?term=${encodeURIComponent(i)}`,"_blank")},buttonText:"Apply for access"})]})};export{i as MissingAccessToApp};
@@ -1,4 +1,4 @@
1
- import{jsxs as e,jsx as o}from"react/jsx-runtime";import{useActiveImpersonationUser as r}from"./ImpersonateMenu/hooks/useActiveImpersonationUser.js";import"react";import"../../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../../../atoms/enums/Environment.js";import"../../../atoms/utils/auth_environment.js";import"../Notifications/NotificationProvider.js";import{useAuth as t}from"../../../providers/AuthProvider/AuthProvider.js";import"../../../providers/ReleaseNotesProvider.js";import"../../../providers/SideBarProvider.js";import"../../../providers/SnackbarProvider/SnackbarProvider.js";import"../../../providers/StepperProvider.js";import"../../../providers/TableOfContentsProvider.js";import"../../../providers/ThemeProvider/ThemeProvider.js";import{colors as i}from"../../../atoms/style/colors.js";import{spacings as s}from"../../../atoms/style/spacings.js";import"../../../atoms/enums/Errors.js";import"../../../atoms/enums/Theme.js";import"../../../atoms/enums/SpacingsMode.js";import"html2canvas";import"proj4";import"../../../molecules/AnimatedCheckmark/AnimatedCheckmark.styles.js";import"../../../molecules/ApplicationIcon/ApplicationIcon.js";import"../../../molecules/Badge/Badge.styles.js";import"@equinor/eds-core-react";import"../../../molecules/Banner/Banner.styles.js";import"@equinor/eds-icons";import{Chip as m}from"../../../molecules/Chip/Chip.js";import"../../../molecules/ContentMenu/ContentMenu.styles.js";import"../../../molecules/DatePicker/DatePicker.js";import"../../../molecules/Dialog/Dialog.js";import"../../../molecules/EquinorLogo/EquinorLogo.js";import"../../../molecules/FileProgress/CompactFileProgress.styles.js";import"../../../molecules/FileProgress/RegularFileProgress.styles.js";import"../../../molecules/FileUploadArea/FileUploadArea.js";import"../../../molecules/FullPageSpinner/FullPageSpinner.js";import"../../../molecules/InfoElement/InfoElement.js";import"../../../molecules/OptionalTooltip/OptionalTooltip.js";import{ProfileAvatar as l}from"../../../molecules/ProfileAvatar/ProfileAvatar.js";import"@tiptap/react";import"../../../molecules/RichTextEditor/RichTextEditor.styles.js";import"../../../molecules/RichTextEditor/MenuBar/MenuBar.js";import"../../../molecules/RichTextEditor/MenuBar/MenuBar.styles.js";import"../../../molecules/RichTextEditor/MenuBar/MenuButton.js";import"../../../molecules/Search/Search.js";import"react-router-dom";import"../../../molecules/Sieve/Sieve.styles.js";import"../../../molecules/SingleFilterMenu/SingleFilterMenu.js";import"../../../molecules/Skeleton/SkeletonBase/SkeletonBase.js";import"../../../molecules/Skeleton/Skeleton.styles.js";import"../../../molecules/Stepper/Stepper.js";import"../../../molecules/OptionDrawer/OptionDrawer.js";import"../../../molecules/Select/Select.styles.js";import"../../../molecules/ListItem/ListItem.js";import"../../../molecules/SelectionControls/Checkbox/Checkbox.js";import"../../../molecules/SelectionControls/Radio/Radio.js";import"../../../molecules/SelectionControls/Switch/Switch.js";import{ImpersonateAvatar as n}from"./ImpersonateAvatar.js";import p from"styled-components";const a=p.div`
1
+ import{jsxs as e,jsx as o}from"react/jsx-runtime";import{useActiveImpersonationUser as r}from"./ImpersonateMenu/hooks/useActiveImpersonationUser.js";import"react";import"../../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../../../atoms/enums/Environment.js";import"../../../atoms/utils/auth_environment.js";import"../Notifications/NotificationProvider.js";import{useAuth as t}from"../../../providers/AuthProvider/AuthProvider.js";import"../../../providers/ReleaseNotesProvider.js";import"../../../providers/SideBarProvider.js";import"../../../providers/SnackbarProvider/SnackbarProvider.js";import"../../../providers/StepperProvider.js";import"../../../providers/TableOfContentsProvider.js";import"../../../providers/ThemeProvider/ThemeProvider.js";import{colors as i}from"../../../atoms/style/colors.js";import{spacings as s}from"../../../atoms/style/spacings.js";import"../../../atoms/enums/Errors.js";import"../../../atoms/enums/Theme.js";import"../../../atoms/enums/SpacingsMode.js";import"html2canvas";import"proj4";import"@equinor/eds-icons";import"../../../molecules/AnimatedCheckmark/AnimatedCheckmark.styles.js";import"../../../molecules/ApplicationIcon/ApplicationIcon.js";import"../../../molecules/Badge/Badge.styles.js";import"@equinor/eds-core-react";import"../../../molecules/Banner/Banner.styles.js";import{Chip as m}from"../../../molecules/Chip/Chip.js";import"../../../molecules/ContentMenu/ContentMenu.styles.js";import"../../../molecules/DatePicker/DatePicker.js";import"../../../molecules/Dialog/Dialog.js";import"../../../molecules/EquinorLogo/EquinorLogo.js";import"../../../molecules/FileProgress/CompactFileProgress.styles.js";import"../../../molecules/FileProgress/RegularFileProgress.styles.js";import"../../../molecules/FileUploadArea/FileUploadArea.js";import"../../../molecules/FullPageSpinner/FullPageSpinner.js";import"../../../molecules/InfoElement/InfoElement.js";import"../../../molecules/OptionalTooltip/OptionalTooltip.js";import{ProfileAvatar as l}from"../../../molecules/ProfileAvatar/ProfileAvatar.js";import"@tiptap/react";import"../../../molecules/RichTextEditor/RichTextEditor.styles.js";import"../../../molecules/RichTextEditor/MenuBar/MenuBar.js";import"../../../molecules/RichTextEditor/MenuBar/MenuBar.styles.js";import"../../../molecules/RichTextEditor/MenuBar/MenuButton.js";import"../../../molecules/Search/Search.js";import"react-router-dom";import"../../../molecules/Sieve/Sieve.styles.js";import"../../../molecules/SingleFilterMenu/SingleFilterMenu.js";import"../../../molecules/Skeleton/SkeletonBase/SkeletonBase.js";import"../../../molecules/Skeleton/Skeleton.styles.js";import"../../../molecules/Stepper/Stepper.js";import"../../../molecules/OptionDrawer/OptionDrawer.js";import"../../../molecules/Select/Select.styles.js";import"../../../molecules/ListItem/ListItem.js";import"../../../molecules/SelectionControls/Checkbox/Checkbox.js";import"../../../molecules/SelectionControls/Radio/Radio.js";import"../../../molecules/SelectionControls/Switch/Switch.js";import{ImpersonateAvatar as n}from"./ImpersonateAvatar.js";import p from"styled-components";const a=p.div`
2
2
  position: relative;
3
3
  margin-bottom: ${s.small};
4
4
  `,c=p(m)`
@@ -1,4 +1,4 @@
1
- import{jsxs as e,jsx as o}from"react/jsx-runtime";import{forwardRef as r}from"react";import{useActiveImpersonationUser as t}from"./ImpersonateMenu/hooks/useActiveImpersonationUser.js";import{ProfileButton as s}from"./Account.styles.js";import{ImpersonateAvatar as i}from"./ImpersonateAvatar.js";import"../../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../../../atoms/enums/Environment.js";import"../../../atoms/utils/auth_environment.js";import"../Notifications/NotificationProvider.js";import{useAuth as m}from"../../../providers/AuthProvider/AuthProvider.js";import"../../../providers/ReleaseNotesProvider.js";import"../../../providers/SideBarProvider.js";import"../../../providers/SnackbarProvider/SnackbarProvider.js";import"../../../providers/StepperProvider.js";import"../../../providers/TableOfContentsProvider.js";import"../../../providers/ThemeProvider/ThemeProvider.js";import{colors as l}from"../../../atoms/style/colors.js";import{spacings as n}from"../../../atoms/style/spacings.js";import"../../../atoms/enums/Errors.js";import"../../../atoms/enums/Theme.js";import"../../../atoms/enums/SpacingsMode.js";import"html2canvas";import"proj4";import"../../../molecules/AnimatedCheckmark/AnimatedCheckmark.styles.js";import"../../../molecules/ApplicationIcon/ApplicationIcon.js";import"../../../molecules/Badge/Badge.styles.js";import"@equinor/eds-core-react";import"../../../molecules/Banner/Banner.styles.js";import"@equinor/eds-icons";import{Chip as p}from"../../../molecules/Chip/Chip.js";import"../../../molecules/ContentMenu/ContentMenu.styles.js";import"../../../molecules/DatePicker/DatePicker.js";import"../../../molecules/Dialog/Dialog.js";import"../../../molecules/EquinorLogo/EquinorLogo.js";import"../../../molecules/FileProgress/CompactFileProgress.styles.js";import"../../../molecules/FileProgress/RegularFileProgress.styles.js";import"../../../molecules/FileUploadArea/FileUploadArea.js";import"../../../molecules/FullPageSpinner/FullPageSpinner.js";import"../../../molecules/InfoElement/InfoElement.js";import"../../../molecules/OptionalTooltip/OptionalTooltip.js";import{ProfileAvatar as c}from"../../../molecules/ProfileAvatar/ProfileAvatar.js";import"@tiptap/react";import"../../../molecules/RichTextEditor/RichTextEditor.styles.js";import"../../../molecules/RichTextEditor/MenuBar/MenuBar.js";import"../../../molecules/RichTextEditor/MenuBar/MenuBar.styles.js";import"../../../molecules/RichTextEditor/MenuBar/MenuButton.js";import"../../../molecules/Search/Search.js";import"react-router-dom";import"../../../molecules/Sieve/Sieve.styles.js";import"../../../molecules/SingleFilterMenu/SingleFilterMenu.js";import"../../../molecules/Skeleton/SkeletonBase/SkeletonBase.js";import"../../../molecules/Skeleton/Skeleton.styles.js";import"../../../molecules/Stepper/Stepper.js";import"../../../molecules/OptionDrawer/OptionDrawer.js";import"../../../molecules/Select/Select.styles.js";import"../../../molecules/ListItem/ListItem.js";import"../../../molecules/SelectionControls/Checkbox/Checkbox.js";import"../../../molecules/SelectionControls/Radio/Radio.js";import"../../../molecules/SelectionControls/Switch/Switch.js";import a from"styled-components";const u=a.div`
1
+ import{jsxs as e,jsx as o}from"react/jsx-runtime";import{forwardRef as r}from"react";import{useActiveImpersonationUser as t}from"./ImpersonateMenu/hooks/useActiveImpersonationUser.js";import{ProfileButton as s}from"./Account.styles.js";import{ImpersonateAvatar as i}from"./ImpersonateAvatar.js";import"../../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../../../atoms/enums/Environment.js";import"../../../atoms/utils/auth_environment.js";import"../Notifications/NotificationProvider.js";import{useAuth as m}from"../../../providers/AuthProvider/AuthProvider.js";import"../../../providers/ReleaseNotesProvider.js";import"../../../providers/SideBarProvider.js";import"../../../providers/SnackbarProvider/SnackbarProvider.js";import"../../../providers/StepperProvider.js";import"../../../providers/TableOfContentsProvider.js";import"../../../providers/ThemeProvider/ThemeProvider.js";import{colors as l}from"../../../atoms/style/colors.js";import{spacings as n}from"../../../atoms/style/spacings.js";import"../../../atoms/enums/Errors.js";import"../../../atoms/enums/Theme.js";import"../../../atoms/enums/SpacingsMode.js";import"html2canvas";import"proj4";import"@equinor/eds-icons";import"../../../molecules/AnimatedCheckmark/AnimatedCheckmark.styles.js";import"../../../molecules/ApplicationIcon/ApplicationIcon.js";import"../../../molecules/Badge/Badge.styles.js";import"@equinor/eds-core-react";import"../../../molecules/Banner/Banner.styles.js";import{Chip as p}from"../../../molecules/Chip/Chip.js";import"../../../molecules/ContentMenu/ContentMenu.styles.js";import"../../../molecules/DatePicker/DatePicker.js";import"../../../molecules/Dialog/Dialog.js";import"../../../molecules/EquinorLogo/EquinorLogo.js";import"../../../molecules/FileProgress/CompactFileProgress.styles.js";import"../../../molecules/FileProgress/RegularFileProgress.styles.js";import"../../../molecules/FileUploadArea/FileUploadArea.js";import"../../../molecules/FullPageSpinner/FullPageSpinner.js";import"../../../molecules/InfoElement/InfoElement.js";import"../../../molecules/OptionalTooltip/OptionalTooltip.js";import{ProfileAvatar as c}from"../../../molecules/ProfileAvatar/ProfileAvatar.js";import"@tiptap/react";import"../../../molecules/RichTextEditor/RichTextEditor.styles.js";import"../../../molecules/RichTextEditor/MenuBar/MenuBar.js";import"../../../molecules/RichTextEditor/MenuBar/MenuBar.styles.js";import"../../../molecules/RichTextEditor/MenuBar/MenuButton.js";import"../../../molecules/Search/Search.js";import"react-router-dom";import"../../../molecules/Sieve/Sieve.styles.js";import"../../../molecules/SingleFilterMenu/SingleFilterMenu.js";import"../../../molecules/Skeleton/SkeletonBase/SkeletonBase.js";import"../../../molecules/Skeleton/Skeleton.styles.js";import"../../../molecules/Stepper/Stepper.js";import"../../../molecules/OptionDrawer/OptionDrawer.js";import"../../../molecules/Select/Select.styles.js";import"../../../molecules/ListItem/ListItem.js";import"../../../molecules/SelectionControls/Checkbox/Checkbox.js";import"../../../molecules/SelectionControls/Radio/Radio.js";import"../../../molecules/SelectionControls/Switch/Switch.js";import a from"styled-components";const u=a.div`
2
2
  display: flex;
3
3
  align-items: center;
4
4
  gap: ${n.xx_small};
@@ -1,4 +1,4 @@
1
- import{jsx as e}from"react/jsx-runtime";import"react";import"../../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../../../atoms/enums/Environment.js";import"../../../atoms/utils/auth_environment.js";import"../Notifications/NotificationProvider.js";import"../../../providers/AuthProvider/AuthProvider.js";import"../../../providers/ReleaseNotesProvider.js";import"../../../providers/SideBarProvider.js";import"../../../providers/SnackbarProvider/SnackbarProvider.js";import"../../../providers/StepperProvider.js";import"../../../providers/TableOfContentsProvider.js";import"../../../providers/ThemeProvider/ThemeProvider.js";import{colors as o}from"../../../atoms/style/colors.js";import"../../../atoms/enums/Errors.js";import"../../../atoms/enums/Theme.js";import"../../../atoms/enums/SpacingsMode.js";import"html2canvas";import"proj4";import"../../../molecules/AnimatedCheckmark/AnimatedCheckmark.styles.js";import"../../../molecules/ApplicationIcon/ApplicationIcon.js";import"../../../molecules/Badge/Badge.styles.js";import"@equinor/eds-core-react";import"../../../molecules/Banner/Banner.styles.js";import"@equinor/eds-icons";import"../../../molecules/Chip/Chip.js";import"../../../molecules/ContentMenu/ContentMenu.styles.js";import"../../../molecules/DatePicker/DatePicker.js";import"../../../molecules/Dialog/Dialog.js";import"../../../molecules/EquinorLogo/EquinorLogo.js";import"../../../molecules/FileProgress/CompactFileProgress.styles.js";import"../../../molecules/FileProgress/RegularFileProgress.styles.js";import"../../../molecules/FileUploadArea/FileUploadArea.js";import"../../../molecules/FullPageSpinner/FullPageSpinner.js";import"../../../molecules/InfoElement/InfoElement.js";import"../../../molecules/OptionalTooltip/OptionalTooltip.js";import{ProfileAvatar as r}from"../../../molecules/ProfileAvatar/ProfileAvatar.js";import"@tiptap/react";import"../../../molecules/RichTextEditor/RichTextEditor.styles.js";import"../../../molecules/RichTextEditor/MenuBar/MenuBar.js";import"../../../molecules/RichTextEditor/MenuBar/MenuBar.styles.js";import"../../../molecules/RichTextEditor/MenuBar/MenuButton.js";import"../../../molecules/Search/Search.js";import"react-router-dom";import"../../../molecules/Sieve/Sieve.styles.js";import"../../../molecules/SingleFilterMenu/SingleFilterMenu.js";import"../../../molecules/Skeleton/SkeletonBase/SkeletonBase.js";import"../../../molecules/Skeleton/Skeleton.styles.js";import"../../../molecules/Stepper/Stepper.js";import"../../../molecules/OptionDrawer/OptionDrawer.js";import"../../../molecules/Select/Select.styles.js";import"../../../molecules/ListItem/ListItem.js";import"../../../molecules/SelectionControls/Checkbox/Checkbox.js";import"../../../molecules/SelectionControls/Radio/Radio.js";import"../../../molecules/SelectionControls/Switch/Switch.js";import{useActiveImpersonationUser as t}from"./ImpersonateMenu/hooks/useActiveImpersonationUser.js";import i from"styled-components";const s=i.div`
1
+ import{jsx as e}from"react/jsx-runtime";import"react";import"../../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../../../atoms/enums/Environment.js";import"../../../atoms/utils/auth_environment.js";import"../Notifications/NotificationProvider.js";import"../../../providers/AuthProvider/AuthProvider.js";import"../../../providers/ReleaseNotesProvider.js";import"../../../providers/SideBarProvider.js";import"../../../providers/SnackbarProvider/SnackbarProvider.js";import"../../../providers/StepperProvider.js";import"../../../providers/TableOfContentsProvider.js";import"../../../providers/ThemeProvider/ThemeProvider.js";import{colors as o}from"../../../atoms/style/colors.js";import"../../../atoms/enums/Errors.js";import"../../../atoms/enums/Theme.js";import"../../../atoms/enums/SpacingsMode.js";import"html2canvas";import"proj4";import"@equinor/eds-icons";import"../../../molecules/AnimatedCheckmark/AnimatedCheckmark.styles.js";import"../../../molecules/ApplicationIcon/ApplicationIcon.js";import"../../../molecules/Badge/Badge.styles.js";import"@equinor/eds-core-react";import"../../../molecules/Banner/Banner.styles.js";import"../../../molecules/Chip/Chip.js";import"../../../molecules/ContentMenu/ContentMenu.styles.js";import"../../../molecules/DatePicker/DatePicker.js";import"../../../molecules/Dialog/Dialog.js";import"../../../molecules/EquinorLogo/EquinorLogo.js";import"../../../molecules/FileProgress/CompactFileProgress.styles.js";import"../../../molecules/FileProgress/RegularFileProgress.styles.js";import"../../../molecules/FileUploadArea/FileUploadArea.js";import"../../../molecules/FullPageSpinner/FullPageSpinner.js";import"../../../molecules/InfoElement/InfoElement.js";import"../../../molecules/OptionalTooltip/OptionalTooltip.js";import{ProfileAvatar as r}from"../../../molecules/ProfileAvatar/ProfileAvatar.js";import"@tiptap/react";import"../../../molecules/RichTextEditor/RichTextEditor.styles.js";import"../../../molecules/RichTextEditor/MenuBar/MenuBar.js";import"../../../molecules/RichTextEditor/MenuBar/MenuBar.styles.js";import"../../../molecules/RichTextEditor/MenuBar/MenuButton.js";import"../../../molecules/Search/Search.js";import"react-router-dom";import"../../../molecules/Sieve/Sieve.styles.js";import"../../../molecules/SingleFilterMenu/SingleFilterMenu.js";import"../../../molecules/Skeleton/SkeletonBase/SkeletonBase.js";import"../../../molecules/Skeleton/Skeleton.styles.js";import"../../../molecules/Stepper/Stepper.js";import"../../../molecules/OptionDrawer/OptionDrawer.js";import"../../../molecules/Select/Select.styles.js";import"../../../molecules/ListItem/ListItem.js";import"../../../molecules/SelectionControls/Checkbox/Checkbox.js";import"../../../molecules/SelectionControls/Radio/Radio.js";import"../../../molecules/SelectionControls/Switch/Switch.js";import{useActiveImpersonationUser as t}from"./ImpersonateMenu/hooks/useActiveImpersonationUser.js";import i from"styled-components";const s=i.div`
2
2
  width: fit-content;
3
3
  border: 2px solid ${o.interactive.warning__resting.rgba};
4
4
  border-radius: 50%;
@@ -1,4 +1,4 @@
1
- import"react";import"../../../../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../../../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../../../../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../../../../../atoms/enums/Environment.js";import"../../../../../atoms/utils/auth_environment.js";import"../../../Notifications/NotificationProvider.js";import"../../../../../providers/AuthProvider/AuthProvider.js";import"../../../../../providers/ReleaseNotesProvider.js";import"../../../../../providers/SideBarProvider.js";import"../../../../../providers/SnackbarProvider/SnackbarProvider.js";import"../../../../../providers/StepperProvider.js";import"../../../../../providers/TableOfContentsProvider.js";import"../../../../../providers/ThemeProvider/ThemeProvider.js";import"../../../../../atoms/style/colors.js";import{spacings as i}from"../../../../../atoms/style/spacings.js";import"../../../../../atoms/enums/Errors.js";import"../../../../../atoms/enums/Theme.js";import"../../../../../atoms/enums/SpacingsMode.js";import"html2canvas";import"proj4";import r from"styled-components";const o=r.div`
1
+ import"react";import"../../../../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../../../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../../../../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../../../../../atoms/enums/Environment.js";import"../../../../../atoms/utils/auth_environment.js";import"../../../Notifications/NotificationProvider.js";import"../../../../../providers/AuthProvider/AuthProvider.js";import"../../../../../providers/ReleaseNotesProvider.js";import"../../../../../providers/SideBarProvider.js";import"../../../../../providers/SnackbarProvider/SnackbarProvider.js";import"../../../../../providers/StepperProvider.js";import"../../../../../providers/TableOfContentsProvider.js";import"../../../../../providers/ThemeProvider/ThemeProvider.js";import"../../../../../atoms/style/colors.js";import{spacings as i}from"../../../../../atoms/style/spacings.js";import"../../../../../atoms/enums/Errors.js";import"../../../../../atoms/enums/Theme.js";import"../../../../../atoms/enums/SpacingsMode.js";import"html2canvas";import"proj4";import"@equinor/eds-icons";import r from"styled-components";const o=r.div`
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  min-width: 20rem;
@@ -1,4 +1,4 @@
1
- import"react";import"../../../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../../../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../../../../atoms/enums/Environment.js";import"../../../../atoms/utils/auth_environment.js";import"../../Notifications/NotificationProvider.js";import"../../../../providers/AuthProvider/AuthProvider.js";import"../../../../providers/ReleaseNotesProvider.js";import"../../../../providers/SideBarProvider.js";import"../../../../providers/SnackbarProvider/SnackbarProvider.js";import"../../../../providers/StepperProvider.js";import"../../../../providers/TableOfContentsProvider.js";import"../../../../providers/ThemeProvider/ThemeProvider.js";import{colors as r}from"../../../../atoms/style/colors.js";import{spacings as o}from"../../../../atoms/style/spacings.js";import"../../../../atoms/enums/Errors.js";import"../../../../atoms/enums/Theme.js";import"../../../../atoms/enums/SpacingsMode.js";import"html2canvas";import"proj4";import i from"styled-components";const t=i.header`
1
+ import"react";import"../../../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../../../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../../../../atoms/enums/Environment.js";import"../../../../atoms/utils/auth_environment.js";import"../../Notifications/NotificationProvider.js";import"../../../../providers/AuthProvider/AuthProvider.js";import"../../../../providers/ReleaseNotesProvider.js";import"../../../../providers/SideBarProvider.js";import"../../../../providers/SnackbarProvider/SnackbarProvider.js";import"../../../../providers/StepperProvider.js";import"../../../../providers/TableOfContentsProvider.js";import"../../../../providers/ThemeProvider/ThemeProvider.js";import{colors as r}from"../../../../atoms/style/colors.js";import{spacings as o}from"../../../../atoms/style/spacings.js";import"../../../../atoms/enums/Errors.js";import"../../../../atoms/enums/Theme.js";import"../../../../atoms/enums/SpacingsMode.js";import"html2canvas";import"proj4";import"@equinor/eds-icons";import i from"styled-components";const t=i.header`
2
2
  display: flex;
3
3
  align-items: center;
4
4
  gap: ${o.medium};
@@ -1 +1 @@
1
- import{ServiceNowUrgency as e}from"@equinor/subsurface-app-management";import{UrgencyOption as t,FeedbackType as n,Browsers as r}from"./Feedback.types.js";import{EnvironmentType as i}from"../../../../atoms/enums/Environment.js";import{environment as o}from"../../../../atoms/utils/auth_environment.js";import{formatDate as s}from"../../../../atoms/utils/date.js";import"html2canvas";import"proj4";import"../../../../molecules/RichTextEditor/RichTextEditor.types.js";import{capitalize as c}from"../../../../atoms/utils/string.js";const{getAppName:p,getEnvironmentName:a}=o,u=e=>e.urgency===t.NO_IMPACT?":large_yellow_circle:":e.urgency===t.IMPEDES?":large_orange_circle:":":red_circle:",m=e=>{const t=new FileReader;return new Promise(((n,r)=>{t.onerror=()=>{t.abort(),r(new DOMException("Problem parsing input file."))},t.onload=()=>{n(t.result)},t.readAsDataURL(e)}))},l=n=>{switch(n){case t.UNABLE:return e.CRITICAL;case t.IMPEDES:return e.MODERATE;case t.NO_IMPACT:return e.NORMAL}},d=(e,t)=>{const n=`Url location of bug: ${e.url} \n`,r=`Severity of bug: ${e.urgency} \n`,i=`Field: ${c(t??"")} \n`,o=`Browser: ${y()} \n`;return`${e.url?n:""}\n ${e.urgency?r:""}\n ${t?i:""}\n ${o}\n ${e.description} \n \n User agent string: ${navigator.userAgent}`},g=(e,t)=>{const n=t?"selfservice?id=ticket&table=incident&sys_id=":"now/nav/ui/classic/params/target/incident.do%3Fsys_id%3D";return`https://equinor${a(import.meta.env.VITE_ENVIRONMENT_NAME)===i.PRODUCTION?"":"test"}.service-now.com/${n}${e}`},y=()=>{const e=navigator.userAgent.includes(r.EDGE_SHORT)?r.EDGE:navigator.userAgent.includes(r.CHROME)?r.CHROME:navigator.userAgent.includes(r.SAFARI)?r.SAFARI:navigator.userAgent.includes(r.FIREFOX)?r.FIREFOX:void 0;return e?`${e} (${(e=>{let t=e;e===r.EDGE&&(t=r.EDGE_SHORT);const n=new RegExp(`${t}/(\\d+(?:\\.\\d+)+)`);return navigator.userAgent.match(n)?.[1]})(e)})`:"Not found"},E=(e,t,r,i,o)=>{const a=r===n.BUG?":bug: Bug report":":bulb: Suggestion",m=[],l=[];l.push({type:"mrkdwn",text:`*Title* \n ${e.title}`}),m.push({type:"mrkdwn",text:` ${s(new Date,{format:"DD. month YYYY"})}`}),e.url&&m.push({type:"mrkdwn",text:`*<${e.url}|Error URL>*`}),e.urgency&&l.push({type:"mrkdwn",text:`*Severity* \n ${u(e)} ${e.urgency}`});const d=[{type:"header",text:{type:"plain_text",text:a,emoji:!0}},{type:"section",fields:m},{type:"section",fields:l},{type:"section",fields:[{type:"mrkdwn",text:"*Application* \n "+p(import.meta.env.VITE_NAME)},{type:"mrkdwn",text:`*User* \n ${i}`}]},{type:"section",fields:[{type:"mrkdwn",text:"*Browser* \n "+y()},{type:"mrkdwn",text:`*Field* \n ${c(t??"Not found")}`}]},{type:"section",text:{type:"mrkdwn",text:"*Description* \n"+e.description}}];return o&&d.push({type:"section",text:{type:"mrkdwn",text:`*<${g(o)}|:link: Click to open the ticket in Service Now>*`}}),d.push({type:"divider"}),JSON.stringify(d)};export{d as createServiceNowDescription,g as createServiceNowUrl,E as createSlackMessage,y as getBrowserInfo,u as getSeverityEmoji,l as getUrgencyNumber,m as readUploadedFileAsText};
1
+ import{ServiceNowUrgency as e}from"@equinor/subsurface-app-management";import{UrgencyOption as t,FeedbackType as n,Browsers as r}from"./Feedback.types.js";import{EnvironmentType as i}from"../../../../atoms/enums/Environment.js";import{environment as o}from"../../../../atoms/utils/auth_environment.js";import{formatDate as s}from"../../../../atoms/utils/date.js";import"html2canvas";import"proj4";import"../../../../molecules/RichTextEditor/RichTextEditor.types.js";import{capitalize as c}from"../../../../atoms/utils/string.js";import"@equinor/eds-icons";const{getAppName:p,getEnvironmentName:u}=o,a=e=>e.urgency===t.NO_IMPACT?":large_yellow_circle:":e.urgency===t.IMPEDES?":large_orange_circle:":":red_circle:",m=e=>{const t=new FileReader;return new Promise(((n,r)=>{t.onerror=()=>{t.abort(),r(new DOMException("Problem parsing input file."))},t.onload=()=>{n(t.result)},t.readAsDataURL(e)}))},d=n=>{switch(n){case t.UNABLE:return e.CRITICAL;case t.IMPEDES:return e.MODERATE;case t.NO_IMPACT:return e.NORMAL}},l=(e,t)=>{const n=`Url location of bug: ${e.url} \n`,r=`Severity of bug: ${e.urgency} \n`,i=`Field: ${c(t??"")} \n`,o=`Browser: ${y()} \n`;return`${e.url?n:""}\n ${e.urgency?r:""}\n ${t?i:""}\n ${o}\n ${e.description} \n \n User agent string: ${navigator.userAgent}`},g=(e,t)=>{const n=t?"selfservice?id=ticket&table=incident&sys_id=":"now/nav/ui/classic/params/target/incident.do%3Fsys_id%3D";return`https://equinor${u(import.meta.env.VITE_ENVIRONMENT_NAME)===i.PRODUCTION?"":"test"}.service-now.com/${n}${e}`},y=()=>{const e=navigator.userAgent.includes(r.EDGE_SHORT)?r.EDGE:navigator.userAgent.includes(r.CHROME)?r.CHROME:navigator.userAgent.includes(r.SAFARI)?r.SAFARI:navigator.userAgent.includes(r.FIREFOX)?r.FIREFOX:void 0;return e?`${e} (${(e=>{let t=e;e===r.EDGE&&(t=r.EDGE_SHORT);const n=new RegExp(`${t}/(\\d+(?:\\.\\d+)+)`);return navigator.userAgent.match(n)?.[1]})(e)})`:"Not found"},E=(e,t,r,i,o)=>{const u=r===n.BUG?":bug: Bug report":":bulb: Suggestion",m=[],d=[];d.push({type:"mrkdwn",text:`*Title* \n ${e.title}`}),m.push({type:"mrkdwn",text:` ${s(new Date,{format:"DD. month YYYY"})}`}),e.url&&m.push({type:"mrkdwn",text:`*<${e.url}|Error URL>*`}),e.urgency&&d.push({type:"mrkdwn",text:`*Severity* \n ${a(e)} ${e.urgency}`});const l=[{type:"header",text:{type:"plain_text",text:u,emoji:!0}},{type:"section",fields:m},{type:"section",fields:d},{type:"section",fields:[{type:"mrkdwn",text:"*Application* \n "+p(import.meta.env.VITE_NAME)},{type:"mrkdwn",text:`*User* \n ${i}`}]},{type:"section",fields:[{type:"mrkdwn",text:"*Browser* \n "+y()},{type:"mrkdwn",text:`*Field* \n ${c(t??"Not found")}`}]},{type:"section",text:{type:"mrkdwn",text:"*Description* \n"+e.description}}];return o&&l.push({type:"section",text:{type:"mrkdwn",text:`*<${g(o)}|:link: Click to open the ticket in Service Now>*`}}),l.push({type:"divider"}),JSON.stringify(l)};export{l as createServiceNowDescription,g as createServiceNowUrl,E as createSlackMessage,y as getBrowserInfo,a as getSeverityEmoji,d as getUrgencyNumber,m as readUploadedFileAsText};
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{createContext as s,useState as t,useMemo as r,useCallback as o,useEffect as a}from"react";import{DEFAULT_FEEDBACK_LOCAL_STORAGE as i,ONE_HOUR_IN_MS as n}from"../Feedback.const.js";import{StatusEnum as c,FeedbackType as m}from"../Feedback.types.js";import{createServiceNowUrl as u,createServiceNowDescription as p,getUrgencyNumber as d,createSlackMessage as l}from"../Feedback.utils.js";import{useServiceNowIncident as v}from"../hooks/useServiceNowIncident.js";import{useSlackFileUpload as f}from"../hooks/useSlackFileUpload.js";import{useSlackPostMessage as g}from"../hooks/useSlackPostMessage.js";import"../../../../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../../../../molecules/RichTextEditor/RichTextEditor.types.js";import{useLocalStorage as h}from"../../../../../atoms/hooks/useLocalStorage.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../../../../../atoms/enums/Environment.js";import{environment as k}from"../../../../../atoms/utils/auth_environment.js";import"../../../Notifications/NotificationProvider.js";import{useAuth as R}from"../../../../../providers/AuthProvider/AuthProvider.js";import"../../../../../providers/ReleaseNotesProvider.js";import"../../../../../providers/SideBarProvider.js";import"../../../../../providers/SnackbarProvider/SnackbarProvider.js";import"../../../../../providers/StepperProvider.js";import"../../../../../providers/TableOfContentsProvider.js";import"../../../../../providers/ThemeProvider/ThemeProvider.js";import"html2canvas";import"proj4";const{getServiceNowConfigurationItem:j}=k,w=s(void 0),N=({children:s,selectedType:k,onClose:N,field:S})=>{const y=j(import.meta.env.VITE_SERVICE_NOW_CONFIGURATION_ITEM)||"117499",{account:I}=R(),T=I?.username,[P,b]=h(k+"-feedbackContentAndRequestStatus",{...i},n),{feedbackContent:q,serviceNowRequestResponse:A}=P,[C,E]=t([]),[F,x]=t({status:c.idle}),[D,O]=t([]),[U,_]=t(!1),[G,B]=t(!1),{mutateAsync:W,isPending:H}=f(q),{mutateAsync:L,status:M}=g(q),{mutateAsync:V,status:K}=v(q),[$,z]=t(""),[J,Q]=t(!1),X=r((()=>"pending"===M||"pending"===K||H),[H,M,K]),Y=r((()=>A.status===c.success),[A.status]),Z=r((()=>{const e=[F.status,...D.map((e=>e.status))];return e.every((e=>e===c.success))?c.success:e.includes(c.error)?c.partial:c.idle}),[D,F.status]),ee=r((()=>Z===c.error||Z===c.partial),[Z]),se=r((()=>ee||A.status===c.error),[A.status,ee]),te=()=>{_((e=>!e))},re=({status:e,response:s,error:t})=>{b({...P,serviceNowRequestResponse:{status:e,errorText:t?.message??void 0,serviceNowId:s?.sysId??void 0}})},oe=({status:e,filename:s,error:t})=>{O((r=>{const o=Array.from(r),a=o.find((e=>e.fileName===s));return a&&(a.status=e,a.errorText=e===c.error?t?.message:void 0),o}))},ae=({status:e,error:s})=>{x({status:e,errorText:s?.message??void 0})},ie=o((()=>{b(i),E([]),x({status:c.idle}),O([])}),[b]);return a((()=>()=>{A.status===c.success&&Z===c.success&&setTimeout((()=>{b(i)}),1100)}),[Z,A.status,b]),a((()=>{D.length!==C.length&&O(C.map((e=>({status:c.idle,fileName:e.name}))))}),[C,D.length]),a((()=>{A.serviceNowId&&0!==A.serviceNowId.length&&z(u(A.serviceNowId,!0))}),[A.serviceNowId]),a((()=>{(k===m.SUGGESTION&&Z===c.success||A.status===c.success&&Z===c.success)&&Q(!0)}),[Z,k,A.status]),e(w.Provider,{value:{selectedType:k,showResponsePage:U,feedbackAttachments:C,slackAttachmentsRequestResponse:D,slackRequestResponse:F,updateFeedback:(e,s)=>{b({...P,feedbackContent:{...q,[e]:s}})},feedbackContent:q,serviceNowRequestResponse:A,handleResponsePageOnClose:()=>{J?N():te()},toggleShowResponsePage:te,onDialogClose:N,handleSave:async()=>{te();let e="";if(k===m.BUG&&T&&A.status!==c.success){const s=new FormData;s.append("ConfigurationItem",y),s.append("Title",q.title),s.append("Description",p(q,S)),s.append("CallerEmail",T),q.urgency&&s.append("urgency",d(q.urgency).toString()),C&&C.length>0&&C.forEach((e=>s.append("Images",e)));try{const t=await V(s);e=t.sysId,re({status:c.success,response:t})}catch(e){re({status:c.error,error:e})}}const s=new FormData;s.append("comment",l(q,S,k,T,e));try{await L(s),ae({status:c.success})}catch(e){ae({status:c.error,error:e})}if(C&&C.length>0)for(const e of C){const s=new FormData;s.append("comment",`Title: ${q.title}`),s.append("file",e);try{await W(s),oe({status:c.success,filename:e.name})}catch(s){oe({status:c.error,filename:e.name,error:s})}}},resetForm:ie,requestIsLoading:X,serviceNowSuccess:Y,isWrongDomain:G,setIsWrongDomain:B,setFeedbackAttachments:E,requestHasError:se,showAllSlackRequests:ee,allSlackRequestStatus:Z,serviceNowUrl:$,relevantRequestsHaveBeenSuccess:J},children:s})};export{w as FeedbackContext,N as FeedbackContextProvider};
1
+ import{jsx as e}from"react/jsx-runtime";import{createContext as s,useState as t,useMemo as r,useCallback as o,useEffect as a}from"react";import{DEFAULT_FEEDBACK_LOCAL_STORAGE as i,ONE_HOUR_IN_MS as n}from"../Feedback.const.js";import{StatusEnum as c,FeedbackType as m}from"../Feedback.types.js";import{createServiceNowUrl as u,createServiceNowDescription as p,getUrgencyNumber as d,createSlackMessage as l}from"../Feedback.utils.js";import{useServiceNowIncident as v}from"../hooks/useServiceNowIncident.js";import{useSlackFileUpload as f}from"../hooks/useSlackFileUpload.js";import{useSlackPostMessage as g}from"../hooks/useSlackPostMessage.js";import"../../../../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../../../../molecules/RichTextEditor/RichTextEditor.types.js";import{useLocalStorage as h}from"../../../../../atoms/hooks/useLocalStorage.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../../../../../atoms/enums/Environment.js";import{environment as j}from"../../../../../atoms/utils/auth_environment.js";import"../../../../../atoms/style/colors.js";import"../../../../../atoms/enums/Errors.js";import"../../../../../atoms/enums/Theme.js";import"../../../../../atoms/enums/SpacingsMode.js";import"html2canvas";import"proj4";import"@equinor/eds-icons";import"../../../Notifications/NotificationProvider.js";import{useAuth as k}from"../../../../../providers/AuthProvider/AuthProvider.js";import"../../../../../providers/ReleaseNotesProvider.js";import"../../../../../providers/SideBarProvider.js";import"../../../../../providers/SnackbarProvider/SnackbarProvider.js";import"../../../../../providers/StepperProvider.js";import"../../../../../providers/TableOfContentsProvider.js";import"../../../../../providers/ThemeProvider/ThemeProvider.js";const{getServiceNowConfigurationItem:R}=j,S=s(void 0),w=({children:s,selectedType:j,onClose:w,field:y})=>{const N=R(import.meta.env.VITE_SERVICE_NOW_CONFIGURATION_ITEM)||"117499",{account:I}=k(),T=I?.username,[P,b]=h(j+"-feedbackContentAndRequestStatus",{...i},n),{feedbackContent:q,serviceNowRequestResponse:A}=P,[C,E]=t([]),[F,x]=t({status:c.idle}),[D,O]=t([]),[U,_]=t(!1),[G,B]=t(!1),{mutateAsync:M,isPending:W}=f(q),{mutateAsync:H,status:L}=g(q),{mutateAsync:V,status:K}=v(q),[$,z]=t(""),[J,Q]=t(!1),X=r((()=>"pending"===L||"pending"===K||W),[W,L,K]),Y=r((()=>A.status===c.success),[A.status]),Z=r((()=>{const e=[F.status,...D.map((e=>e.status))];return e.every((e=>e===c.success))?c.success:e.includes(c.error)?c.partial:c.idle}),[D,F.status]),ee=r((()=>Z===c.error||Z===c.partial),[Z]),se=r((()=>ee||A.status===c.error),[A.status,ee]),te=()=>{_((e=>!e))},re=({status:e,response:s,error:t})=>{b({...P,serviceNowRequestResponse:{status:e,errorText:t?.message??void 0,serviceNowId:s?.sysId??void 0}})},oe=({status:e,filename:s,error:t})=>{O((r=>{const o=Array.from(r),a=o.find((e=>e.fileName===s));return a&&(a.status=e,a.errorText=e===c.error?t?.message:void 0),o}))},ae=({status:e,error:s})=>{x({status:e,errorText:s?.message??void 0})},ie=o((()=>{b(i),E([]),x({status:c.idle}),O([])}),[b]);return a((()=>()=>{A.status===c.success&&Z===c.success&&setTimeout((()=>{b(i)}),1100)}),[Z,A.status,b]),a((()=>{D.length!==C.length&&O(C.map((e=>({status:c.idle,fileName:e.name}))))}),[C,D.length]),a((()=>{A.serviceNowId&&0!==A.serviceNowId.length&&z(u(A.serviceNowId,!0))}),[A.serviceNowId]),a((()=>{(j===m.SUGGESTION&&Z===c.success||A.status===c.success&&Z===c.success)&&Q(!0)}),[Z,j,A.status]),e(S.Provider,{value:{selectedType:j,showResponsePage:U,feedbackAttachments:C,slackAttachmentsRequestResponse:D,slackRequestResponse:F,updateFeedback:(e,s)=>{b({...P,feedbackContent:{...q,[e]:s}})},feedbackContent:q,serviceNowRequestResponse:A,handleResponsePageOnClose:()=>{J?w():te()},toggleShowResponsePage:te,onDialogClose:w,handleSave:async()=>{te();let e="";if(j===m.BUG&&T&&A.status!==c.success){const s=new FormData;s.append("ConfigurationItem",N),s.append("Title",q.title),s.append("Description",p(q,y)),s.append("CallerEmail",T),q.urgency&&s.append("urgency",d(q.urgency).toString()),C&&C.length>0&&C.forEach((e=>s.append("Images",e)));try{const t=await V(s);e=t.sysId,re({status:c.success,response:t})}catch(e){re({status:c.error,error:e})}}const s=new FormData;s.append("comment",l(q,y,j,T,e));try{await H(s),ae({status:c.success})}catch(e){ae({status:c.error,error:e})}if(C&&C.length>0)for(const e of C){const s=new FormData;s.append("comment",`Title: ${q.title}`),s.append("file",e);try{await M(s),oe({status:c.success,filename:e.name})}catch(s){oe({status:c.error,filename:e.name,error:s})}}},resetForm:ie,requestIsLoading:X,serviceNowSuccess:Y,isWrongDomain:G,setIsWrongDomain:B,setFeedbackAttachments:E,requestHasError:se,showAllSlackRequests:ee,allSlackRequestStatus:Z,serviceNowUrl:$,relevantRequestsHaveBeenSuccess:J},children:s})};export{S as FeedbackContext,w as FeedbackContextProvider};
@@ -1,4 +1,4 @@
1
- import{jsx as r,Fragment as e,jsxs as i}from"react/jsx-runtime";import{Dialog as t,Typography as o,Button as s,Icon as n,LinearProgress as a}from"@equinor/eds-core-react";import{close as m}from"@equinor/eds-icons";import"react";import"../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../molecules/RichTextEditor/RichTextEditor.types.js";import{useFakeProgress as p}from"../../atoms/hooks/useFakeProgress.js";import"../../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../../atoms/enums/Environment.js";import"../../atoms/utils/auth_environment.js";import"./Notifications/NotificationProvider.js";import"../../providers/AuthProvider/AuthProvider.js";import"../../providers/ReleaseNotesProvider.js";import"../../providers/SideBarProvider.js";import"../../providers/SnackbarProvider/SnackbarProvider.js";import"../../providers/StepperProvider.js";import"../../providers/TableOfContentsProvider.js";import"../../providers/ThemeProvider/ThemeProvider.js";import"../../atoms/style/colors.js";import{spacings as d}from"../../atoms/style/spacings.js";import"html2canvas";import"proj4";import{capitalize as l}from"../../atoms/utils/string.js";import{AnimatedCheckmark as c}from"../../molecules/AnimatedCheckmark/AnimatedCheckmark.js";import h from"styled-components";const u=h(t)`
1
+ import{jsx as r,Fragment as e,jsxs as i}from"react/jsx-runtime";import{Dialog as o,Typography as t,Button as s,Icon as n,LinearProgress as a}from"@equinor/eds-core-react";import{close as m}from"@equinor/eds-icons";import"react";import"../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../molecules/RichTextEditor/RichTextEditor.types.js";import{useFakeProgress as p}from"../../atoms/hooks/useFakeProgress.js";import"../../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../../atoms/enums/Environment.js";import"../../atoms/utils/auth_environment.js";import"../../atoms/style/colors.js";import{spacings as d}from"../../atoms/style/spacings.js";import"../../atoms/enums/Errors.js";import"../../atoms/enums/Theme.js";import"../../atoms/enums/SpacingsMode.js";import"html2canvas";import"proj4";import{capitalize as l}from"../../atoms/utils/string.js";import"./Notifications/NotificationProvider.js";import"../../providers/AuthProvider/AuthProvider.js";import"../../providers/ReleaseNotesProvider.js";import"../../providers/SideBarProvider.js";import"../../providers/SnackbarProvider/SnackbarProvider.js";import"../../providers/StepperProvider.js";import"../../providers/TableOfContentsProvider.js";import"../../providers/ThemeProvider/ThemeProvider.js";import{AnimatedCheckmark as c}from"../../molecules/AnimatedCheckmark/AnimatedCheckmark.js";import h from"styled-components";const u=h(o)`
2
2
  width: 400px;
3
3
  height: 323px;
4
4
  `,v=h.div`
@@ -15,7 +15,7 @@ import{jsx as r,Fragment as e,jsxs as i}from"react/jsx-runtime";import{Dialog as
15
15
  width: 100%;
16
16
  max-width: 370px;
17
17
  padding: ${d.medium} ${d.large};
18
- `,f=h(o)`
18
+ `,f=h(t)`
19
19
  span {
20
20
  text-transform: capitalize;
21
21
  }
@@ -30,4 +30,4 @@ import{jsx as r,Fragment as e,jsxs as i}from"react/jsx-runtime";import{Dialog as
30
30
  width: 100%;
31
31
  align-items: center;
32
32
  padding: ${d.large} 0;
33
- `,x=({onClose:d,applicationName:h,url:x})=>{const{finished:P,progress:k}=p({onDone:()=>window.open(x,"_self")});return r(e,{children:i(u,{open:!0,children:[i(t.Header,{children:["Open link",r(s,{variant:"ghost_icon",onClick:d,"data-testid":"close-transfer-app",children:r(n,{data:m})})]}),r(t.CustomContent,{children:r(v,{children:P?i(g,{children:[r(f,{variant:"h3",children:r("span",{children:l(h)})}),r(c,{size:"small"})]}):i(j,{children:[i(o,{variant:"h3",children:["Transferring you to application.",".".repeat(k/35)]}),r(a,{variant:"determinate",value:k})]})})})]})})};export{x as TransferToAppDialog};
33
+ `,x=({onClose:d,applicationName:h,url:x})=>{const{finished:P,progress:k}=p({onDone:()=>window.open(x,"_self")});return r(e,{children:i(u,{open:!0,children:[i(o.Header,{children:["Open link",r(s,{variant:"ghost_icon",onClick:d,"data-testid":"close-transfer-app",children:r(n,{data:m})})]}),r(o.CustomContent,{children:r(v,{children:P?i(g,{children:[r(f,{variant:"h3",children:r("span",{children:l(h)})}),r(c,{size:"small"})]}):i(j,{children:[i(t,{variant:"h3",children:["Transferring you to application.",".".repeat(k/35)]}),r(a,{variant:"determinate",value:k})]})})})]})})};export{x as TransferToAppDialog};
@@ -1,6 +1,8 @@
1
1
  import { FC } from 'react';
2
+ import { MyTutorialDto } from '@equinor/subsurface-app-management';
2
3
  interface TutorialsProps {
3
4
  onTutorialStart?: (tutorialId: string) => void;
5
+ filterTutorials?: (value: MyTutorialDto, index: number, array: MyTutorialDto[]) => boolean;
4
6
  }
5
7
  export declare const Tutorials: FC<TutorialsProps>;
6
8
  export {};
@@ -1 +1 @@
1
- import{jsxs as r,Fragment as o,jsx as t}from"react/jsx-runtime";import{useState as e,useRef as i}from"react";import{Icon as n,Typography as a,Divider as l}from"@equinor/eds-core-react";import{youtube_alt as s}from"@equinor/eds-icons";import{useTutorials as c}from"@equinor/subsurface-app-management";import{TutorialItem as m}from"./TutorialItem.js";import{Container as p,TutorialList as h}from"./Tutorials.styles.js";import{TopBarButton as u}from"../TopBar.styles.js";import{TopBarMenu as d}from"../TopBarMenu.js";const f=({onTutorialStart:f})=>{const{allTutorials:g,tutorialsOnThisPage:T}=c(),[j,v]=e(!1),C=i(null),q=g.filter((r=>-1===T.findIndex((o=>o.id===r.id)))),x=()=>v((r=>!r));return r(o,{children:[t(u,{variant:"ghost_icon",ref:C,onClick:x,children:t(n,{data:s})}),j&&t(d,{open:!0,onClose:x,anchorEl:C.current,children:r(p,{children:[r(a,{variant:"h4",children:["Available Tutorials (",g.length,")"]}),T.length>0&&r(h,{children:[t(a,{variant:"caption",children:"For current page"}),T.map((r=>t(m,{onTutorialStart:f,onClose:x,...r},r.id)))]}),T.length>0&&q.length>0&&t(l,{}),q.length>0&&r(h,{children:[t(a,{variant:"caption",children:"For other pages"}),q.map((r=>t(m,{onTutorialStart:f,onClose:x,...r},r.id)))]})]})})]})};export{f as Tutorials};
1
+ import{jsxs as r,Fragment as t,jsx as o}from"react/jsx-runtime";import{useState as i,useRef as e}from"react";import{Icon as n,Typography as a,Divider as l}from"@equinor/eds-core-react";import{youtube_alt as s}from"@equinor/eds-icons";import{useTutorials as c}from"@equinor/subsurface-app-management";import{TutorialItem as m}from"./TutorialItem.js";import{Container as p,TutorialList as u}from"./Tutorials.styles.js";import{TopBarButton as h}from"../TopBar.styles.js";import{TopBarMenu as d}from"../TopBarMenu.js";const f=({filterTutorials:f,onTutorialStart:T})=>{const{allTutorials:g,tutorialsOnThisPage:j}=c(),[v,C]=i(!1),q=e(null),x=f?g.filter(f):g,S=f?j.filter(f):j,b=x.filter((r=>-1===S.findIndex((t=>t.id===r.id)))),y=()=>C((r=>!r));return r(t,{children:[o(h,{variant:"ghost_icon",ref:q,onClick:y,children:o(n,{data:s})}),v&&o(d,{open:!0,onClose:y,anchorEl:q.current,children:r(p,{children:[r(a,{variant:"h4",children:["Available Tutorials (",x.length,")"]}),S.length>0&&r(u,{children:[o(a,{variant:"caption",children:"For current page"}),S.map((r=>o(m,{onTutorialStart:T,onClose:y,...r},r.id)))]}),S.length>0&&S.length>0&&o(l,{}),b.length>0&&r(u,{children:[o(a,{variant:"caption",children:"For other pages"}),b.map((r=>o(m,{onTutorialStart:T,onClose:y,...r},r.id)))]})]})})]})};export{f as Tutorials};
@@ -1 +1 @@
1
- import"react";import"../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../molecules/RichTextEditor/RichTextEditor.types.js";import"../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../atoms/enums/Environment.js";import"../atoms/utils/auth_environment.js";import"../organisms/TopBar/Notifications/NotificationProvider.js";import"./AuthProvider/AuthProvider.js";import"./ReleaseNotesProvider.js";import"./SideBarProvider.js";import"./SnackbarProvider/SnackbarProvider.js";import"./StepperProvider.js";import"./TableOfContentsProvider.js";import"./ThemeProvider/ThemeProvider.js";import"../atoms/style/colors.js";import"../atoms/enums/Errors.js";import"../atoms/enums/Theme.js";import"../atoms/enums/SpacingsMode.js";import"html2canvas";import"proj4";import{sortByDate as t}from"../atoms/utils/sort.js";const e=t=>{const e=[],r=t.filter((t=>t.createdDate)),o=r.map((t=>{const e=new Date(t.createdDate);return{date:e,year:e.getFullYear(),month:e.getMonth()}}));for(const t of r){const r=new Date(t.createdDate),a=r.toLocaleString("en-US",{year:"numeric"}),i=`year${r.toLocaleString("en-US",{year:"numeric"})}`;if(e.find((t=>t.value===i)))continue;const s=o.filter((t=>t.year===r.getFullYear())),n=[...new Map(s.map((t=>[t.month,t]))).values()];n.sort(((t,e)=>e.date.getTime()-t.date.getTime()));const m=n.map((t=>{const e=t.date.toLocaleString("en-US",{month:"long"});return{label:e,value:`${i}--${e}`}}));e.push({label:a,value:i,children:m})}return e.sort(((t,e)=>{const r=parseInt(t.label);return parseInt(e.label)-r})),e},r=t=>`year${t.getFullYear()}--${t.toLocaleDateString("en-GB",{month:"long"})}`,o=e=>e.sort(((e,r)=>t(e.createdDate,r.createdDate)));export{e as extractDatesFromReleaseNotes,r as monthValueToString,o as sortReleaseNotesByDate};
1
+ import"react";import"../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../molecules/RichTextEditor/RichTextEditor.types.js";import"../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../atoms/enums/Environment.js";import"../atoms/utils/auth_environment.js";import"../organisms/TopBar/Notifications/NotificationProvider.js";import"./AuthProvider/AuthProvider.js";import"./ReleaseNotesProvider.js";import"./SideBarProvider.js";import"./SnackbarProvider/SnackbarProvider.js";import"./StepperProvider.js";import"./TableOfContentsProvider.js";import"./ThemeProvider/ThemeProvider.js";import"../atoms/style/colors.js";import"../atoms/enums/Errors.js";import"../atoms/enums/Theme.js";import"../atoms/enums/SpacingsMode.js";import"html2canvas";import"proj4";import{sortByDate as e}from"../atoms/utils/sort.js";import"@equinor/eds-icons";const t=e=>{const t=[],r=e.filter((e=>e.createdDate)),o=r.map((e=>{const t=new Date(e.createdDate);return{date:t,year:t.getFullYear(),month:t.getMonth()}}));for(const e of r){const r=new Date(e.createdDate),i=r.toLocaleString("en-US",{year:"numeric"}),a=`year${r.toLocaleString("en-US",{year:"numeric"})}`;if(t.find((e=>e.value===a)))continue;const s=o.filter((e=>e.year===r.getFullYear())),n=[...new Map(s.map((e=>[e.month,e]))).values()];n.sort(((e,t)=>t.date.getTime()-e.date.getTime()));const m=n.map((e=>{const t=e.date.toLocaleString("en-US",{month:"long"});return{label:t,value:`${a}--${t}`}}));t.push({label:i,value:a,children:m})}return t.sort(((e,t)=>{const r=parseInt(e.label);return parseInt(t.label)-r})),t},r=e=>`year${e.getFullYear()}--${e.toLocaleDateString("en-GB",{month:"long"})}`,o=t=>t.sort(((t,r)=>e(t.createdDate,r.createdDate)));export{t as extractDatesFromReleaseNotes,r as monthValueToString,o as sortReleaseNotesByDate};
@@ -1 +1 @@
1
- import{jsx as r}from"react/jsx-runtime";import{createContext as o,useEffect as t,useContext as e}from"react";import{THEME_LOCALSTORAGE_KEY as i}from"./ThemeProvider.constants.js";import"../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../molecules/RichTextEditor/RichTextEditor.types.js";import{useLocalStorage as s}from"../../atoms/hooks/useLocalStorage.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../../atoms/enums/Environment.js";import"../../atoms/utils/auth_environment.js";import"../../organisms/TopBar/Notifications/NotificationProvider.js";import"../AuthProvider/AuthProvider.js";import"../ReleaseNotesProvider.js";import"../SideBarProvider.js";import"../SnackbarProvider/SnackbarProvider.js";import"../StepperProvider.js";import"../TableOfContentsProvider.js";import"../../atoms/style/colors.js";import"../../atoms/enums/Errors.js";import{Theme as m}from"../../atoms/enums/Theme.js";import"../../atoms/enums/SpacingsMode.js";import"html2canvas";import"proj4";const n=o(void 0);function a(){const r=e(n);if(void 0===r)throw new Error("ThemeProvider must be used within Provider");return r}const p=({children:o})=>{const[e,a]=s(i,m.LIGHT);t((()=>{document.documentElement.setAttribute("data-theme",e)}),[e]);return r(n.Provider,{value:{theme:e,setTheme:r=>{a(r)}},children:o})};export{p as ThemeProvider,n as ThemeProviderContext,a as useThemeProvider};
1
+ import{jsx as r}from"react/jsx-runtime";import{createContext as o,useEffect as t,useContext as e}from"react";import{THEME_LOCALSTORAGE_KEY as i}from"./ThemeProvider.constants.js";import"../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../molecules/RichTextEditor/RichTextEditor.types.js";import{useLocalStorage as s}from"../../atoms/hooks/useLocalStorage.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../../atoms/enums/Environment.js";import"../../atoms/utils/auth_environment.js";import"../../organisms/TopBar/Notifications/NotificationProvider.js";import"../AuthProvider/AuthProvider.js";import"../ReleaseNotesProvider.js";import"../SideBarProvider.js";import"../SnackbarProvider/SnackbarProvider.js";import"../StepperProvider.js";import"../TableOfContentsProvider.js";import"../../atoms/style/colors.js";import"../../atoms/enums/Errors.js";import{Theme as m}from"../../atoms/enums/Theme.js";import"../../atoms/enums/SpacingsMode.js";import"html2canvas";import"proj4";import"@equinor/eds-icons";const n=o(void 0);function a(){const r=e(n);if(void 0===r)throw new Error("ThemeProvider must be used within Provider");return r}const p=({children:o})=>{const[e,a]=s(i,m.LIGHT);t((()=>{document.documentElement.setAttribute("data-theme",e)}),[e]);return r(n.Provider,{value:{theme:e,setTheme:r=>{a(r)}},children:o})};export{p as ThemeProvider,n as ThemeProviderContext,a as useThemeProvider};
@@ -1,4 +1,4 @@
1
- import{jsxs as t,Fragment as i,jsx as e}from"react/jsx-runtime";import{useState as r,useEffect as n,useMemo as o}from"react";import{useTutorials as s}from"@equinor/subsurface-app-management";import{useReversedScrollY as h}from"./hooks/useReversedScrollY.js";import{TutorialPopover as d}from"./TutorialPopover/TutorialPopover.js";import{TUTORIAL_HIGHLIGHT_ANIMATION_PROPS as l}from"./TutorialHighlightingProvider.constants.js";import"../../atoms/style/colors.js";import{spacings as a}from"../../atoms/style/spacings.js";import{getHighlightElementBoundingBox as m}from"../../atoms/utils/tutorials.js";import{motion as c}from"framer-motion";import p from"styled-components";const g=p.svg`
1
+ import{jsxs as t,Fragment as i,jsx as e}from"react/jsx-runtime";import{useState as r,useEffect as n}from"react";import{useTutorials as o}from"@equinor/subsurface-app-management";import{useIsFetching as s}from"@tanstack/react-query";import{useReversedScrollY as h}from"./hooks/useReversedScrollY.js";import{TutorialPopover as l}from"./TutorialPopover/TutorialPopover.js";import{TUTORIAL_HIGHLIGHT_ANIMATION_PROPS as a}from"./TutorialHighlightingProvider.constants.js";import"../../atoms/style/colors.js";import{spacings as d}from"../../atoms/style/spacings.js";import{getHighlightElementBoundingBox as m}from"../../atoms/utils/tutorials.js";import{motion as c}from"framer-motion";import p from"styled-components";const g=p.svg`
2
2
  position: fixed;
3
3
  top: 0;
4
4
  left: 0;
@@ -13,7 +13,7 @@ import{jsxs as t,Fragment as i,jsx as e}from"react/jsx-runtime";import{useState
13
13
  left: 0;
14
14
  display: flex;
15
15
  flex-direction: column;
16
- gap: ${a.medium};
16
+ gap: ${d.medium};
17
17
  z-index: 99999999;
18
18
  justify-content: center;
19
19
  align-items: center;
@@ -21,4 +21,4 @@ import{jsxs as t,Fragment as i,jsx as e}from"react/jsx-runtime";import{useState
21
21
  height: 100vh;
22
22
  background: none;
23
23
  pointer-events: none;
24
- `,u=({children:a})=>{const{activeTutorial:p,activeStep:u,unseenTutorialsOnThisPage:w}=s(),v=h(),[$,j]=r({width:window.innerWidth,height:window.innerHeight});n((()=>{const t=()=>{j({width:window.innerWidth,height:window.innerHeight})};return window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)}),[]);const x=p?[p]:w,y=o((()=>{if(p&&void 0!==u){if(!p.steps[u].highlightElement)return[];const t=m(p.id,u,$);return t?[t]:[]}return w.map((t=>{if(t.steps.at(0)?.highlightElement)return m(t.id,0,$)})).filter((t=>void 0!==t))}),[u,p,w,$]);return x.length>0?t(i,{children:[a,e(f,{children:x.map((t=>{const i=y.find((i=>i.id===t.id));return e(d,{isHighlighting:y.length>0,...t,...i},t.id)}))}),t(g,{children:[t("mask",{id:"tutorials-rectangles",children:[e("rect",{width:"100%",height:"100%",fill:"white"}),e(c.g,{style:{translateY:v},children:y.map((t=>e(c.path,{"data-testid":`tutorial-mask-${t.id}`,initial:{opacity:0,d:`M ${t.left} ${t.top} h ${t.width} v ${t.height} h -${t.width} Z`},animate:{opacity:1,d:`M ${t.left} ${t.top} h ${t.width} v ${t.height} h -${t.width} Z`},fill:"black"},t.id)))})]}),e(c.rect,{width:"100%",height:"100%",fill:"rgba(111, 111, 111, 0.35)",mask:"url(#tutorials-rectangles)",...l})]})]}):e(i,{children:a})};export{u as TutorialHighlightingProviderInner};
24
+ `,u=({children:d})=>{const{activeTutorial:p,activeStep:u,unseenTutorialsOnThisPage:w}=o(),v=s()>0,$=h(),[y,j]=r({width:window.innerWidth,height:window.innerHeight});n((()=>{const t=()=>{j({width:window.innerWidth,height:window.innerHeight})};return window.addEventListener("resize",t),()=>window.removeEventListener("resize",t)}),[]);const[k,x]=r([]);n((()=>{if(v)return;(async()=>{if(p&&void 0!==u){if(!p.steps[u].highlightElement)return x([]);const t=await m(p.id,u,y);return x(t?[t]:[])}const t=await Promise.all(w.map((t=>{if(t.steps.at(0)?.highlightElement)return m(t.id,0,y)})));x(t.filter((t=>void 0!==t)))})()}),[u,p,v,w,y]);const E=p?[p]:w.filter((t=>t.steps[0].highlightElement&&k.some((t=>t.id))||!t.steps[0].highlightElement));return E.length>0?t(i,{children:[d,e(f,{children:E.map((t=>{const i=k.find((i=>i.id===t.id));return e(l,{isHighlighting:k.length>0,...t,...i},t.id)}))}),t(g,{children:[t("mask",{id:"tutorials-rectangles",children:[e("rect",{width:"100%",height:"100%",fill:"white"}),e(c.g,{style:{translateY:$},children:k.map((t=>e(c.path,{"data-testid":`tutorial-mask-${t.id}`,initial:{opacity:0,d:`M ${t.left} ${t.top} h ${t.width} v ${t.height} h -${t.width} Z`},animate:{opacity:1,d:`M ${t.left} ${t.top} h ${t.width} v ${t.height} h -${t.width} Z`},fill:"black"},t.id)))})]}),e(c.rect,{width:"100%",height:"100%",fill:"rgba(111, 111, 111, 0.35)",mask:"url(#tutorials-rectangles)",...a})]})]}):e(i,{children:d})};export{u as TutorialHighlightingProviderInner};
@@ -1,4 +1,4 @@
1
- import{jsxs as t,jsx as i,Fragment as e}from"react/jsx-runtime";import{useState as o}from"react";import{Card as r,Icon as n,Typography as a,Button as l}from"@equinor/eds-core-react";import{info_circle as h}from"@equinor/eds-icons";import{useTutorials as s,useTutorialStepImage as m}from"@equinor/subsurface-app-management";import{useTutorialHighlighting as d}from"../TutorialHighlightingProvider.js";import{TUTORIAL_HIGHLIGHT_ANIMATION_PROPS as g}from"../TutorialHighlightingProvider.constants.js";import{StepIndicator as c}from"./StepIndicator.js";import{elevation as p}from"../../../atoms/style/index.js";import{useTutorialPopoverPosition as u}from"./hooks/useTutorialPopoverPosition.js";import{motion as f}from"framer-motion";import v,{css as $}from"styled-components";import{spacings as x}from"../../../atoms/style/spacings.js";import{colors as y}from"../../../atoms/style/colors.js";const b=v(f(r))`
1
+ import{jsxs as t,jsx as r,Fragment as e}from"react/jsx-runtime";import{useState as i}from"react";import{Card as o,Icon as n,Typography as a,Button as s}from"@equinor/eds-core-react";import{info_circle as l}from"@equinor/eds-icons";import{useTutorials as m,useTutorialStepImage as h}from"@equinor/subsurface-app-management";import{useTutorialHighlighting as d}from"../TutorialHighlightingProvider.js";import{TUTORIAL_HIGHLIGHT_ANIMATION_PROPS as c}from"../TutorialHighlightingProvider.constants.js";import{useTutorialPopoverPosition as g}from"./hooks/useTutorialPopoverPosition.js";import{StepIndicator as p}from"./StepIndicator.js";import{elevation as f}from"../../../atoms/style/index.js";import{motion as u}from"framer-motion";import v,{css as b}from"styled-components";import{spacings as x}from"../../../atoms/style/spacings.js";import{colors as y}from"../../../atoms/style/colors.js";const $=v(u(o))`
2
2
  width: 360px;
3
3
  padding: ${x.medium};
4
4
  background: ${y.infographic.primary__moss_green_13.rgba};
@@ -8,7 +8,7 @@ import{jsxs as t,jsx as i,Fragment as e}from"react/jsx-runtime";import{useState
8
8
  transition:
9
9
  top 400ms,
10
10
  left 400ms;
11
- box-shadow: ${p.raised};
11
+ box-shadow: ${f.raised};
12
12
  pointer-events: auto;
13
13
  > header {
14
14
  display: flex;
@@ -19,7 +19,7 @@ import{jsxs as t,jsx as i,Fragment as e}from"react/jsx-runtime";import{useState
19
19
  max-height: 170px;
20
20
  object-fit: contain;
21
21
  }
22
- ${({$highlightingElement:t,$highlightDirection:i})=>t&&$`
22
+ ${({$highlightingElement:t,$caretPosition:r})=>t&&b`
23
23
  transform: translateX(-50%);
24
24
  &:before {
25
25
  z-index: -1;
@@ -28,15 +28,39 @@ import{jsxs as t,jsx as i,Fragment as e}from"react/jsx-runtime";import{useState
28
28
  height: 32px;
29
29
  background: ${y.infographic.primary__moss_green_13.rgba};
30
30
  position: absolute;
31
- ${"top"===i||"bottom"===i?$`
32
- left: 50%;
33
- ${i}: 0;
34
- transform: translate(-50%, 0) rotate(45deg);
35
- `:$`
36
- top: 50%;
37
- ${i}: 0;
38
- transform: translate(0, -50%) rotate(45deg);
39
- `}
31
+ ${function(t){switch(t){case"top":return b`
32
+ left: 50%;
33
+ top: 0;
34
+ transform: translate(-50%, 0) rotate(45deg);
35
+ `;case"top-right":return b`
36
+ right: 0;
37
+ top: 0;
38
+ transform: translate(-50%, 0) rotate(45deg);
39
+ `;case"right":return b`
40
+ right: 0;
41
+ top: 50%;
42
+ transform: translate(0, -50%) rotate(45deg);
43
+ `;case"bottom-right":return b`
44
+ right: 0;
45
+ bottom: 0;
46
+ transform: translate(-50%, 0) rotate(45deg);
47
+ `;case"bottom":return b`
48
+ left: 50%;
49
+ bottom: 0;
50
+ transform: translate(-50%, 0) rotate(45deg);
51
+ `;case"bottom-left":return b`
52
+ left: 24px;
53
+ bottom: 0;
54
+ transform: translate(-50%, 0) rotate(45deg);
55
+ `;case"left":return b`
56
+ left: 0;
57
+ top: 50%;
58
+ transform: translate(0, -50%) rotate(45deg);
59
+ `;case"top-left":return b`
60
+ left: 24px;
61
+ top: 0;
62
+ transform: translate(-50%, 0) rotate(45deg);
63
+ `}}(r)}
40
64
  }
41
65
  `}
42
66
  `,_=v.div`
@@ -48,4 +72,4 @@ import{jsxs as t,jsx as i,Fragment as e}from"react/jsx-runtime";import{useState
48
72
  margin-right: auto;
49
73
  }
50
74
  }
51
- `,k=({isHighlighting:r,id:p,top:f,left:v,width:$,height:x,name:k,steps:j})=>{const{customStepContent:w}=d(),{activeTutorial:T,activeStep:C,skipTutorial:S,startTutorial:D,goToNextStep:P,goToPreviousStep:E}=s(),{data:H}=m(T?.steps.at(C)?.imgUrl??void 0),[q,I]=o(void 0),{style:z,highlightingElement:N,highlightDirection:A}=u({top:f,left:v,width:$,height:x,popoverSize:q}),B=t=>{I(t?{width:t.clientWidth,height:t.clientHeight}:void 0)},F=()=>{S(p)},U=()=>{D(p)};if(void 0!==C&&j[C].custom&&!w[j[C].id])throw new Error(`[TutorialHighlightingProvider]: Custom step content not found, tutorial ID: ${p}, step ID: ${j[C].id}`);return!N&&r?null:t(b,T&&void 0!==C?{ref:B,style:{...z,width:j[C].custom?"auto":void 0},$highlightDirection:A,$highlightingElement:N,...g,children:[j[C].custom?w[j[C].id]:t(e,{children:[t("header",{children:[i(n,{data:h,color:y.interactive.primary__resting.rgba}),i(a,{variant:"h6",children:j[C]?.title})]}),i(a,{variant:"body_short",children:j[C]?.body}),H?i("img",{src:H,alt:j[C].title}):null]}),t(_,{children:[i(l,{variant:"outlined",disabled:0===C,onClick:E,children:"Back"}),i(l,{variant:"ghost",onClick:F,children:"Cancel"}),i(l,{onClick:P,children:C===j.length-1?"Finish":"Next"})]}),i(c,{stepAmount:j.length})]}:{ref:B,style:{...z},$highlightingElement:N,$highlightDirection:A,...g,children:[t("header",{children:[i(n,{data:h,color:y.interactive.primary__resting.rgba}),i(a,{variant:"h6",children:k})]}),t(_,{children:[i(l,{variant:"ghost",onClick:F,children:"Skip"}),i(l,{onClick:U,children:"Start tour"})]})]})};export{k as TutorialPopover};
75
+ `,k=({isHighlighting:o,id:f,top:u,left:v,width:b,height:x,name:k,steps:j})=>{const{customStepContent:w}=d(),{activeTutorial:P,activeStep:T,skipTutorial:C,startTutorial:S,goToNextStep:E,goToPreviousStep:H}=m(),{data:q}=h(P?.steps.at(T)?.imgUrl??void 0),[I,z]=i(void 0),{style:D,highlightingElement:N,caretPosition:A}=g({top:u,left:v,width:b,height:x,popoverSize:I}),B=t=>{z(t?{width:t.clientWidth,height:t.clientHeight}:void 0)},F=()=>{C(f)},U=()=>{S(f)};if(void 0!==T&&j[T].custom&&!w[j[T].id])throw new Error(`[TutorialHighlightingProvider]: Custom step content not found, tutorial ID: ${f}, step ID: ${j[T].id}`);return!N&&o?null:t($,P&&void 0!==T?{ref:B,style:{...D,width:j[T].custom?"auto":void 0},$caretPosition:A,$highlightingElement:N,...c,children:[j[T].custom?w[j[T].id]:t(e,{children:[t("header",{children:[r(n,{data:l,color:y.interactive.primary__resting.rgba}),r(a,{variant:"h6",children:j[T]?.title})]}),r(a,{variant:"body_short",children:j[T]?.body}),q?r("img",{src:q,alt:j[T].title}):null]}),t(_,{children:[r(s,{variant:"outlined",disabled:0===T,onClick:H,children:"Back"}),r(s,{variant:"ghost",onClick:F,children:"Cancel"}),r(s,{onClick:E,children:T===j.length-1?"Finish":"Next"})]}),r(p,{stepAmount:j.length})]}:{ref:B,style:{...D},$highlightingElement:N,$caretPosition:A,...c,children:[t("header",{children:[r(n,{data:l,color:y.interactive.primary__resting.rgba}),r(a,{variant:"h6",children:k})]}),t(_,{children:[r(s,{variant:"ghost",onClick:F,children:"Skip"}),r(s,{onClick:U,children:"Start tour"})]})]})};export{k as TutorialPopover};
@@ -1,4 +1,5 @@
1
1
  import { MotionStyle } from 'framer-motion';
2
+ export declare const CARET_OFFSET = 16;
2
3
  interface UseTutorialPopoverPositionArgs {
3
4
  top?: number;
4
5
  left?: number;
@@ -9,10 +10,12 @@ interface UseTutorialPopoverPositionArgs {
9
10
  height: number;
10
11
  };
11
12
  }
13
+ type VerticalPosition = 'top' | 'bottom';
14
+ type HorizontalPosition = 'left' | 'right';
12
15
  export interface UseTutorialPopoverPositionReturn {
13
16
  style: MotionStyle;
14
17
  highlightingElement: boolean;
15
- highlightDirection: 'top' | 'bottom' | 'left' | 'right';
18
+ caretPosition: VerticalPosition | HorizontalPosition | `${VerticalPosition}-${HorizontalPosition}`;
16
19
  }
17
20
  export declare function useTutorialPopoverPosition({ top, left, width, height, popoverSize, }: UseTutorialPopoverPositionArgs): UseTutorialPopoverPositionReturn;
18
21
  export {};
@@ -1 +1 @@
1
- import{useReversedScrollY as t}from"../../hooks/useReversedScrollY.js";import{useTransform as i}from"framer-motion";const o=16;function e({top:e,left:h,width:n,height:r,popoverSize:l}){const d=t();let g=e&&r?e+r+o:void 0,s=h&&n?h+n/2:void 0;const p=!!g&&!!s;let w="top";l&&e&&r&&g&&g+l.height>window.innerHeight&&(g=e-l.height-r-40,w="bottom"),e&&r&&h&&n&&l&&s&&s-l.width/2<0&&(s=h+n+l.width/2+o,g=e-l.height/2-4,w="left"),e&&r&&h&&n&&l&&s&&s+l.width>window.innerWidth&&(s=h-l.width/2-o,g=e-l.height/2-4,w="right");const m=i(d,(t=>p&&g?t+g:null));return{style:{position:p?"absolute":void 0,top:m,left:s},highlightingElement:p,highlightDirection:w}}export{e as useTutorialPopoverPosition};
1
+ import{useReversedScrollY as i}from"../../hooks/useReversedScrollY.js";import{useTransform as o}from"framer-motion";const t=16;function d({top:d,left:e,width:h,height:n,popoverSize:v}){const r=i();let w=d&&n?d+n+t:void 0,l=e&&h?e+h/2:void 0;const s=!!w&&!!l;let g="top";const p=(v?.width??0)/2+t,c=window.innerWidth-t,f=window.innerHeight-t,m=void 0!==d&&void 0!==n&&void 0!==e&&void 0!==h&&void 0!==l&&void 0!==v&&l<v.width/2,u=void 0!==d&&void 0!==n&&void 0!==e&&void 0!==h&&void 0!==l&&void 0!==v&&l+v.width>window.innerWidth;m?(l=e+h+v.width/2+t,w=d-v.height/2-4,g="left"):u&&(l=e-v.width/2-t,w=d-v.height/2-4,g="right");const b=void 0!==d&&void 0!==n&&void 0!==w&&void 0!==v&&d+n/2+v.height>=window.innerHeight,a=void 0!==d&&void 0!==n&&void 0!==w&&void 0!==v&&w<v.height;a?w=d+n+t:b&&(w=d-v.height-n-32),m&&(a||b)?l=e+v?.width/2:u&&(a||b)&&(l=e+h-v?.width/2),a&&m?g="top-left":a&&u&&(g="top-right"),b&&m?g="bottom-left":b&&u?g="bottom-right":b&&(g="bottom");const H=o(r,(i=>{if(!s||!w)return null;const o=i+w;return o<32?32:o>f?f:o}));return l&&l<p?l=p:l&&l>c&&(l=c),{style:{position:s?"absolute":void 0,top:H,left:l},highlightingElement:s,caretPosition:g}}export{t as CARET_OFFSET,d as useTutorialPopoverPosition};
@@ -3,7 +3,13 @@ import { GraphAppRole } from '@equinor/subsurface-app-management/dist/api/models
3
3
  export declare const fakeReleaseNotes: ReleaseNote[];
4
4
  export declare const FAKE_ROLES: GraphAppRole[];
5
5
  export declare const fakeImpersonateUsers: ImpersonateUserDto[];
6
- export declare function fakeTutorial(id: string, willPopUp: boolean, highlightElement: boolean, path?: string): MyTutorialDto;
6
+ export declare function fakeTutorial({ id, willPopUp, highlightElement, path, stepAmount, }: {
7
+ id: string;
8
+ willPopUp: boolean;
9
+ highlightElement: boolean;
10
+ path?: string;
11
+ stepAmount?: number;
12
+ }): MyTutorialDto;
7
13
  export declare const FAKE_TUTORIALS: MyTutorialDto[];
8
14
  export declare const FAKE_APPS: AmplifyApplication[];
9
15
  export declare const FAKE_FEATURE_TOGGLES: MyFeatureDto[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@equinor/amplify-component-lib",
3
- "version": "9.3.5",
3
+ "version": "9.5.0",
4
4
  "description": "Frontend Typescript components for the Amplify team",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",