@equinor/amplify-component-lib 10.10.1 → 11.0.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 (60) hide show
  1. package/dist/atoms/hooks/useLocalStorage.d.ts +2 -2
  2. package/dist/atoms/types/SideBar.d.ts +3 -4
  3. package/dist/deprecated/ExpandingIconButton/ExpandingIconButton.d.ts +2 -2
  4. package/dist/molecules/ApplicationIcon/ApplicationIcon.d.ts +1 -1
  5. package/dist/molecules/ApplicationIcon/ApplicationIcon.js +1 -1
  6. package/dist/molecules/ApplicationIcon/ApplicationIconCollection.js +1 -1
  7. package/dist/molecules/ApplicationIcon/Icons/FluidSymphony.js +1 -0
  8. package/dist/molecules/ApplicationIcon/Icons/ForecastDataInventory.js +1 -0
  9. package/dist/molecules/Chip/Chip.d.ts +2 -2
  10. package/dist/molecules/Confetti/Confetti.d.ts +2 -5
  11. package/dist/molecules/Confetti/Confetti.js +1 -1
  12. package/dist/molecules/DatePicker/DatePicker.d.ts +3 -3
  13. package/dist/molecules/DateRangePicker/DateRangePicker.d.ts +3 -3
  14. package/dist/molecules/Dialog/Dialog.d.ts +2 -2
  15. package/dist/molecules/Dialog/Dialog.styles.js +1 -1
  16. package/dist/molecules/EquinorLogo/EquinorLogo.d.ts +2 -2
  17. package/dist/molecules/FileProgress/FileProgress.js +1 -1
  18. package/dist/molecules/InputExplanation/InputExplanation.js +9 -0
  19. package/dist/molecules/ListItem/ListItem.d.ts +2 -2
  20. package/dist/molecules/OptionalTooltip/OptionalTooltip.d.ts +4 -4
  21. package/dist/molecules/ProfileAvatar/ProfileAvatar.d.ts +2 -2
  22. package/dist/molecules/Search/Search.d.ts +5 -2
  23. package/dist/molecules/Search/Search.js +9 -3
  24. package/dist/molecules/Select/Select.js +1 -1
  25. package/dist/molecules/Select/Select.styles.js +23 -19
  26. package/dist/molecules/Select/Select.types.d.ts +3 -0
  27. package/dist/molecules/SelectionControls/Checkbox/Checkbox.d.ts +2 -2
  28. package/dist/molecules/SelectionControls/Radio/Radio.d.ts +2 -2
  29. package/dist/molecules/SelectionControls/Switch/Switch.d.ts +2 -2
  30. package/dist/molecules/Skeleton/SkeletonBase/SkeletonBase.d.ts +2 -2
  31. package/dist/molecules/TextField/TextField.d.ts +3 -1
  32. package/dist/molecules/TextField/TextField.js +13 -9
  33. package/dist/organisms/PageTitle/PageTitle.js +1 -1
  34. package/dist/organisms/ReleaseNote/ReleaseNote.d.ts +3 -3
  35. package/dist/organisms/SideBar/MenuItem/BasicMenuItem.js +1 -1
  36. package/dist/organisms/SideBar/MenuItem/CollapsableMenuItem.js +1 -1
  37. package/dist/organisms/SideBar/MenuItem/MenuItem.d.ts +0 -4
  38. package/dist/organisms/SideBar/MenuItem/MenuItem.styles.js +3 -3
  39. package/dist/organisms/SideBar/SideBar.d.ts +2 -2
  40. package/dist/organisms/Status/MissingAccesses.d.ts +2 -2
  41. package/dist/organisms/Status/Title.d.ts +2 -2
  42. package/dist/organisms/Status/collections/BadRequest.d.ts +2 -2
  43. package/dist/organisms/Status/collections/GenericError.d.ts +2 -2
  44. package/dist/organisms/Status/collections/MissingPermissions.d.ts +2 -2
  45. package/dist/organisms/Status/collections/PageNotFound.d.ts +2 -2
  46. package/dist/organisms/Status/collections/ServerError.d.ts +2 -2
  47. package/dist/organisms/Template/Template.d.ts +5 -5
  48. package/dist/organisms/ToggleGroup/ToggleGroup.d.ts +2 -2
  49. package/dist/organisms/ToggleGroup/ToggleGroupOption.d.ts +2 -2
  50. package/dist/organisms/TopBar/Account/Account.d.ts +1 -0
  51. package/dist/organisms/TopBar/Account/Account.js +1 -1
  52. package/dist/organisms/TopBar/Account/ImpersonateButton.js +1 -1
  53. package/dist/organisms/TopBar/Account/ImpersonateMenu/Actions.js +1 -1
  54. package/dist/organisms/TopBar/Account/ImpersonateMenu/ImpersonateMenu.js +1 -1
  55. package/dist/organisms/TopBar/Actions.d.ts +2 -2
  56. package/dist/organisms/TopBar/FieldMenu/FieldMenu.d.ts +2 -2
  57. package/dist/organisms/TopBar/FieldMenu/FieldMenu.js +1 -1
  58. package/dist/organisms/TopBar/Guidelines/Colorbox.d.ts +3 -3
  59. package/dist/organisms/TopBar/Notifications/NotificationProvider.d.ts +2 -2
  60. package/package.json +1 -1
@@ -1,5 +1,6 @@
1
1
  import { Variants } from "../../atoms/types/variants.js";
2
2
  import { FC, KeyboardEvent, ReactNode, RefObject } from "react";
3
+ import { TooltipProps } from "@equinor/eds-core-react";
3
4
 
4
5
  //#region src/molecules/Select/Select.types.d.ts
5
6
  interface SelectOptionRequired {
@@ -94,6 +95,8 @@ type CommonSelectProps<T extends SelectOptionRequired> = {
94
95
  inDialog?: boolean;
95
96
  onOpenCallback?: (value: boolean) => void;
96
97
  onSearchFilter?: (searchValue: string, item: T) => void;
98
+ explanation?: string;
99
+ explanationPosition?: TooltipProps['placement'];
97
100
  'data-testid'?: string;
98
101
  } & CustomMenuItemComponentProps<T>;
99
102
  //#endregion
@@ -1,4 +1,4 @@
1
- import * as react102 from "react";
1
+ import * as react104 from "react";
2
2
  import { CheckboxProps } from "@equinor/eds-core-react";
3
3
 
4
4
  //#region src/molecules/SelectionControls/Checkbox/Checkbox.d.ts
@@ -7,6 +7,6 @@ interface CheckboxProps$1 extends CheckboxProps {
7
7
  outlined?: boolean;
8
8
  error?: boolean;
9
9
  }
10
- declare const Checkbox$1: react102.ForwardRefExoticComponent<CheckboxProps$1 & react102.RefAttributes<HTMLInputElement>>;
10
+ declare const Checkbox$1: react104.ForwardRefExoticComponent<CheckboxProps$1 & react104.RefAttributes<HTMLInputElement>>;
11
11
  //#endregion
12
12
  export { Checkbox$1 as Checkbox, CheckboxProps$1 as CheckboxProps };
@@ -1,4 +1,4 @@
1
- import * as react104 from "react";
1
+ import * as react106 from "react";
2
2
  import { RadioProps } from "@equinor/eds-core-react";
3
3
 
4
4
  //#region src/molecules/SelectionControls/Radio/Radio.d.ts
@@ -7,6 +7,6 @@ interface RadioProps$1 extends RadioProps {
7
7
  outlined?: boolean;
8
8
  error?: boolean;
9
9
  }
10
- declare const Radio$1: react104.ForwardRefExoticComponent<RadioProps$1 & react104.RefAttributes<HTMLInputElement>>;
10
+ declare const Radio$1: react106.ForwardRefExoticComponent<RadioProps$1 & react106.RefAttributes<HTMLInputElement>>;
11
11
  //#endregion
12
12
  export { Radio$1 as Radio, RadioProps$1 as RadioProps };
@@ -1,10 +1,10 @@
1
- import * as react106 from "react";
1
+ import * as react108 from "react";
2
2
  import { SwitchProps } from "@equinor/eds-core-react";
3
3
 
4
4
  //#region src/molecules/SelectionControls/Switch/Switch.d.ts
5
5
  interface SwitchProps$1 extends SwitchProps {
6
6
  outlined?: boolean;
7
7
  }
8
- declare const Switch$1: react106.ForwardRefExoticComponent<SwitchProps$1 & react106.RefAttributes<HTMLInputElement>>;
8
+ declare const Switch$1: react108.ForwardRefExoticComponent<SwitchProps$1 & react108.RefAttributes<HTMLInputElement>>;
9
9
  //#endregion
10
10
  export { Switch$1 as Switch, SwitchProps$1 as SwitchProps };
@@ -1,4 +1,4 @@
1
- import * as react41 from "react";
1
+ import * as react39 from "react";
2
2
  import * as styled_components_dist_types6 from "styled-components/dist/types";
3
3
  import * as styled_components_dist_models_Keyframes0 from "styled-components/dist/models/Keyframes";
4
4
 
@@ -7,6 +7,6 @@ declare const skeletonBaseloading: styled_components_dist_models_Keyframes0.defa
7
7
  interface SkeletonBaseProps {
8
8
  $offset?: number;
9
9
  }
10
- declare const SkeletonBase: styled_components_dist_types6.IStyledComponentBase<"web", styled_components_dist_types6.Substitute<react41.DetailedHTMLProps<react41.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, SkeletonBaseProps>> & string;
10
+ declare const SkeletonBase: styled_components_dist_types6.IStyledComponentBase<"web", styled_components_dist_types6.Substitute<react39.DetailedHTMLProps<react39.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, SkeletonBaseProps>> & string;
11
11
  //#endregion
12
12
  export { SkeletonBase, SkeletonBaseProps, skeletonBaseloading };
@@ -1,12 +1,14 @@
1
1
  import { Variants } from "../../atoms/types/variants.js";
2
2
  import { FC, InputHTMLAttributes, TextareaHTMLAttributes } from "react";
3
- import { TextFieldProps } from "@equinor/eds-core-react";
3
+ import { TextFieldProps, TooltipProps } from "@equinor/eds-core-react";
4
4
 
5
5
  //#region src/molecules/TextField/TextField.d.ts
6
6
  type TextFieldProps$1 = Omit<TextFieldProps, 'variant'> & {
7
7
  variant?: Variants;
8
8
  loading?: boolean;
9
9
  maxCharacters?: number;
10
+ explanation?: string;
11
+ explanationPosition?: TooltipProps['placement'];
10
12
  } & (TextareaHTMLAttributes<HTMLTextAreaElement> | InputHTMLAttributes<HTMLInputElement>);
11
13
  /**
12
14
  * @param loading - Show loading skeleton on top of the text field.
@@ -1,4 +1,4 @@
1
- import{animation as e}from"../../atoms/style/animation.js";import{VARIANT_COLORS as t,colors as n}from"../../atoms/style/colors.js";import{spacings as r}from"../../atoms/style/spacings.js";import{shape as i}from"../../atoms/style/index.js";import{getSkeletonHeight as a,getSkeletonTop as o}from"../../atoms/utils/skeleton.js";import{SkeletonBase as s}from"../Skeleton/SkeletonBase/SkeletonBase.js";import{useEffect as c,useRef as l,useState as u}from"react";import{TextField as d,Typography as f}from"@equinor/eds-core-react";import p,{css as m}from"styled-components";import{jsx as h,jsxs as g}from"react/jsx-runtime";const _=p.div`
1
+ import{animation as e}from"../../atoms/style/animation.js";import{VARIANT_COLORS as t,colors as n}from"../../atoms/style/colors.js";import{spacings as r}from"../../atoms/style/spacings.js";import{shape as i}from"../../atoms/style/index.js";import{getSkeletonHeight as a,getSkeletonTop as o}from"../../atoms/utils/skeleton.js";import{SkeletonBase as s}from"../Skeleton/SkeletonBase/SkeletonBase.js";import{InputExplanation as c}from"../InputExplanation/InputExplanation.js";import{useEffect as l,useRef as u,useState as d}from"react";import{TextField as f,Typography as p}from"@equinor/eds-core-react";import m,{css as h}from"styled-components";import{jsx as g,jsxs as _}from"react/jsx-runtime";const v=m.div`
2
2
  position: relative;
3
3
  height: fit-content;
4
4
  input,
@@ -10,7 +10,7 @@ import{animation as e}from"../../atoms/style/animation.js";import{VARIANT_COLORS
10
10
  &::placeholder {
11
11
  opacity: 1;
12
12
  }
13
- &:hover {
13
+ &:hover:not(:disabled) {
14
14
  background: ${n.ui.background__light_medium.rgba};
15
15
  }
16
16
  &:disabled {
@@ -27,14 +27,14 @@ import{animation as e}from"../../atoms/style/animation.js";import{VARIANT_COLORS
27
27
  margin-right: ${({$helperRightWidth:e})=>e?`calc(${e}px + ${r.medium})`:0};
28
28
  }
29
29
 
30
- ${({$variant:e,$disabled:r})=>r?m`
30
+ ${({$variant:e,$disabled:r})=>r?h`
31
31
  div {
32
32
  outline: none !important;
33
33
  }
34
34
  p {
35
35
  color: ${n.interactive.disabled__text.rgba} !important;
36
36
  }
37
- `:e===void 0?m`
37
+ `:e===void 0?h`
38
38
  input:hover,
39
39
  textarea:hover {
40
40
  box-shadow: inset 0 -2px 0 0
@@ -48,8 +48,8 @@ import{animation as e}from"../../atoms/style/animation.js";import{VARIANT_COLORS
48
48
  ${n.interactive.primary__resting.rgba};
49
49
  }
50
50
  }
51
- `:m`
52
- ${e===`dirty`&&m`
51
+ `:h`
52
+ ${e===`dirty`&&h`
53
53
  input,
54
54
  textarea {
55
55
  box-shadow: inset 0 -2px 0 0 ${t[e]};
@@ -71,12 +71,16 @@ import{animation as e}from"../../atoms/style/animation.js";import{VARIANT_COLORS
71
71
  }
72
72
  }
73
73
  `}
74
- `,v=p(s)`
74
+ `,y=m(s)`
75
75
  position: absolute;
76
76
  left: ${r.small};
77
77
  border-radius: ${i.corners.borderRadius};
78
78
  transform: translateY(${r.x_small});
79
- `,y=p(f)`
79
+ `,b=m(p)`
80
80
  position: absolute;
81
81
  right: ${r.small};
82
- `,b=e=>{if(e.maxCharacters&&`type`in e&&e.type!==`text`)throw Error('`maxCharacters` prop is not supported for input types other than "text".');let i={...e,variant:e.variant===`dirty`?void 0:e.variant},s=e.loading?void 0:e.variant,f=o(e),p=a(e),m=l(`${Math.max(20,Math.random()*80)}%`),[b,x]=u(typeof e.value==`string`?e.value.length:0),[S,C]=u(0),w=e=>{if(e){let t=e.getBoundingClientRect().width;C(t)}},T=t=>{e.onChange&&e.onChange(t),e.maxCharacters&&x(t.target.value.length)};return c(()=>{typeof e.value==`string`&&e.maxCharacters&&e.value.length!==b&&x(e.value.length)},[b,e.maxCharacters,e.value]),g(_,{$variant:s,$disabled:e.loading?!1:e.disabled,$helperRightWidth:S,style:{marginBottom:!e.helperText&&e.maxCharacters?`calc(${r.small} + 1rem)`:0},children:[h(d,{...i,disabled:e.loading||e.disabled,onChange:T}),e.loading&&h(v,{className:`skeleton`,role:`progressbar`,style:{top:f,height:p,width:m.current}}),e.maxCharacters&&g(y,{ref:w,variant:`helper`,group:`input`,color:i.variant?t[i.variant]:n.text.static_icons__tertiary.rgba,style:{bottom:e.helperText?`0`:`calc((${r.small} + 1rem) * -1)`},children:[b,` / `,e.maxCharacters]})]})};export{b as TextField};
82
+ `,x=m.div`
83
+ display: flex;
84
+ gap: ${r.x_small};
85
+ align-items: center;
86
+ `,S=e=>{if(e.maxCharacters&&`type`in e&&e.type!==`text`)throw Error('`maxCharacters` prop is not supported for input types other than "text".');if(e.explanation&&!e.label)throw Error("`explanation` prop requires a `label` to be set on the TextField.");let i={...e,variant:e.variant===`dirty`?void 0:e.variant},s=e.loading?void 0:e.variant,p=o(e),m=a(e),h=u(`${Math.max(20,Math.random()*80)}%`),[S,C]=d(typeof e.value==`string`?e.value.length:0),[w,T]=d(0),E=e=>{if(e){let t=e.getBoundingClientRect().width;T(t)}},D=t=>{e.onChange&&e.onChange(t),e.maxCharacters&&C(t.target.value.length)};return l(()=>{typeof e.value==`string`&&e.maxCharacters&&e.value.length!==S&&C(e.value.length)},[S,e.maxCharacters,e.value]),_(v,{$variant:s,$disabled:e.loading?!1:e.disabled,$helperRightWidth:w,style:{marginBottom:!e.helperText&&e.maxCharacters?`calc(${r.small} + 1rem)`:0},children:[g(f,{...i,label:i.label?_(x,{children:[i.label,e.explanation&&g(c,{position:e.explanationPosition,children:e.explanation})]}):void 0,disabled:e.loading||e.disabled,onChange:D}),e.loading&&g(y,{className:`skeleton`,role:`progressbar`,style:{top:p,height:m,width:h.current}}),e.maxCharacters&&_(b,{ref:E,variant:`helper`,group:`input`,color:i.variant?t[i.variant]:n.text.static_icons__tertiary.rgba,style:{bottom:e.helperText?`0`:`calc((${r.small} + 1rem) * -1)`},children:[S,` / `,e.maxCharacters]})]})};export{S as TextField};
@@ -1 +1 @@
1
- import{environment as e}from"../../atoms/utils/auth_environment.js";import{useEffect as t}from"react";const n=e.getAppName(import.meta.env.VITE_NAME),r=({title:e,children:r})=>(t(()=>{document.title!==e&&(document.title=`${n} - ${e}`)},[e]),r);export{r as PageTitle};
1
+ import{environment as e}from"../../atoms/utils/auth_environment.js";import{useEffect as t}from"react";const n=e.getAppName(import.meta.env.VITE_NAME),r=({title:e,children:r})=>(t(()=>{let t=`${n} - ${e}`;document.title!==t&&(document.title=t)},[e]),r);export{r as PageTitle};
@@ -1,4 +1,4 @@
1
- import * as react111 from "react";
1
+ import * as react113 from "react";
2
2
  import { ReactNode } from "react";
3
3
  import { ReleaseNote } from "@equinor/subsurface-app-management";
4
4
 
@@ -7,9 +7,9 @@ type ReleaseNoteProps = {
7
7
  actionMenu?: ReactNode;
8
8
  expanded?: boolean;
9
9
  } & ReleaseNote;
10
- declare const ReleaseNote$1: react111.ForwardRefExoticComponent<{
10
+ declare const ReleaseNote$1: react113.ForwardRefExoticComponent<{
11
11
  actionMenu?: ReactNode;
12
12
  expanded?: boolean;
13
- } & ReleaseNote & react111.RefAttributes<HTMLDivElement>>;
13
+ } & ReleaseNote & react113.RefAttributes<HTMLDivElement>>;
14
14
  //#endregion
15
15
  export { ReleaseNote$1 as ReleaseNote, ReleaseNoteProps };
@@ -1 +1 @@
1
- import{useSideBar as e}from"../../../providers/SideBarProvider.js";import{OptionalTooltip as t}from"../../../molecules/OptionalTooltip/OptionalTooltip.js";import{IconContainer as n,ItemText as r,Link as i,MenuItemWrapper as a}from"./MenuItem.styles.js";import{canNavigate as o,isCurrentUrl as s}from"./MenuItem.utils.js";import{useCallback as c,useMemo as l}from"react";import{Icon as u}from"@equinor/eds-core-react";import{jsx as d,jsxs as f}from"react/jsx-runtime";import{useLocation as p}from"@tanstack/react-router";import{Feature as m}from"@equinor/subsurface-app-management";const h=({icon:h,link:g,onClick:_,replace:v=!1,name:y,disabled:b=!1,featureUuid:x,...S})=>{let{pathname:C}=p(),w=s({currentUrl:C,link:g}),{isOpen:T}=e(),E=o({currentUrl:C,link:g,replace:v,disabled:b}),D=c(e=>{if(!E){e.preventDefault();return}_&&_()},[E,_]),O=l(()=>d(t,{title:y,placement:`right`,children:d(a,{children:f(i,{to:g,$active:w,"aria-disabled":b,$disabled:b,onClick:D,tabIndex:0,"data-testid":`sidebar-menu-item`,replace:v,...S,children:[d(n,{"data-testid":`icon-container`,children:d(u,{data:h,size:24})}),T&&d(r,{$active:w,$disabled:b,variant:`button`,group:`navigation`,children:y})]})})}),[b,D,h,w,T,g,y,S,v]);return x?d(m,{featureUuid:x,children:O}):O};export{h as BasicMenuItem};
1
+ import{useSideBar as e}from"../../../providers/SideBarProvider.js";import{OptionalTooltip as t}from"../../../molecules/OptionalTooltip/OptionalTooltip.js";import{IconContainer as n,ItemText as r,Link as i,MenuItemWrapper as a}from"./MenuItem.styles.js";import{canNavigate as o,isCurrentUrl as s}from"./MenuItem.utils.js";import{useCallback as c,useMemo as l}from"react";import{Icon as u}from"@equinor/eds-core-react";import{jsx as d,jsxs as f}from"react/jsx-runtime";import{useLocation as p}from"@tanstack/react-router";import{Feature as m}from"@equinor/subsurface-app-management";const h=({icon:h,onClick:g,replace:_=!1,name:v,disabled:y=!1,featureUuid:b,...x})=>{let{pathname:S}=p(),C=s({currentUrl:S,link:x.to}),{isOpen:w}=e(),T=o({currentUrl:S,link:x.to,replace:_,disabled:y}),E=c(e=>{if(!T){e.preventDefault();return}g&&g()},[T,g]),D=l(()=>d(t,{title:v,placement:`right`,children:d(a,{children:f(i,{$active:C,"aria-disabled":y,$disabled:y,onClick:E,tabIndex:0,"data-testid":`sidebar-menu-item`,...x,children:[d(n,{"data-testid":`icon-container`,children:d(u,{data:h,size:24})}),w&&d(r,{$active:C,$disabled:y,variant:`button`,group:`navigation`,children:v})]})})}),[y,E,h,C,w,v,x]);return b?d(m,{featureUuid:b,children:D}):D};export{h as BasicMenuItem};
@@ -45,4 +45,4 @@ import{colors as e}from"../../../atoms/style/colors.js";import{spacings as t}fro
45
45
  > p:first-child {
46
46
  grid-column: 2;
47
47
  }
48
- `,D=({icon:t,name:s,items:g,..._})=>{let{pathname:D}=w(),O=r(D),{isOpen:k}=n(),A=r(k),j=g.some(e=>l({currentUrl:D,link:e.link})),M=f(null),[N,P]=p(!1),F=()=>P(e=>!e);u(()=>{(A&&!k&&N||O!==D&&N&&!k)&&P(!1)},[N,k,D,A,O]);let I=d(()=>y(i,{title:s,placement:`right`,children:y(c,{children:b(T,{ref:M,$open:k,$active:j,$expanded:N,onClick:F,..._,children:[y(a,{"data-testid":`icon-container`,children:y(m,{data:t,size:24,color:e.interactive.primary__resting.rgba})}),k&&b(v,{children:[y(o,{$active:!1,$disabled:!1,variant:`button`,group:`navigation`,children:s}),y(m,{data:N?S:x,size:24,color:e.interactive.primary__resting.rgba})]})]})})}),[N,t,j,k,s,_]);return N&&k?b(v,{children:[I,g.map((e,t)=>y(E,{to:e.link,$active:l({currentUrl:D,link:e.link}),$disabled:e.disabled||!1,children:y(o,{$active:j,$disabled:e.disabled||!1,variant:`button`,group:`navigation`,children:e.name})},t))]}):N?b(v,{children:[I,y(h,{open:!0,anchorEl:M.current,placement:`right-start`,onClose:F,children:g.map(e=>y(h.Item,{as:C,active:l({currentUrl:D,link:e.link}),style:{width:`256px`},to:e.link,children:e.name},e.link))})]}):I};export{D as CollapsableMenuItem};
48
+ `,D=({icon:t,name:s,items:g,..._})=>{let{pathname:D}=w(),O=r(D),{isOpen:k}=n(),A=r(k),j=g.some(e=>l({currentUrl:D,link:e.to})),M=f(null),[N,P]=p(!1),F=()=>P(e=>!e);u(()=>{(A&&!k&&N||O!==D&&N&&!k)&&P(!1)},[N,k,D,A,O]);let I=d(()=>y(i,{title:s,placement:`right`,children:y(c,{children:b(T,{ref:M,$open:k,$active:j,$expanded:N,onClick:F,..._,children:[y(a,{"data-testid":`icon-container`,children:y(m,{data:t,size:24,color:e.interactive.primary__resting.rgba})}),k&&b(v,{children:[y(o,{$active:!1,$disabled:!1,variant:`button`,group:`navigation`,children:s}),y(m,{data:N?S:x,size:24,color:e.interactive.primary__resting.rgba})]})]})})}),[N,t,j,k,s,_]);return N&&k?b(v,{children:[I,g.map((e,t)=>y(E,{$active:l({currentUrl:D,link:e.to}),$disabled:e.disabled||!1,...e,children:y(o,{$active:j,$disabled:e.disabled||!1,variant:`button`,group:`navigation`,children:e.name})},t))]}):N?b(v,{children:[I,y(h,{open:!0,anchorEl:M.current,placement:`right-start`,onClose:F,children:g.map(e=>y(h.Item,{as:C,active:l({currentUrl:D,link:e.to}),style:{width:`256px`},...e,children:e.name},e.to))})]}):I};export{D as CollapsableMenuItem};
@@ -3,10 +3,6 @@ import { FC } from "react";
3
3
 
4
4
  //#region src/organisms/SideBar/MenuItem/MenuItem.d.ts
5
5
  type MenuItemProps = {
6
- /**
7
- * @deprecated - currentUrl is not needed anymore, useLocation from react router is used internally
8
- */
9
- currentUrl?: string;
10
6
  disabled?: boolean;
11
7
  } & SideBarMenuItem;
12
8
  declare const MenuItem: FC<MenuItemProps>;
@@ -1,6 +1,6 @@
1
- import{colors as e}from"../../../atoms/style/colors.js";import{spacings as t}from"../../../atoms/style/spacings.js";import{Typography as n}from"@equinor/eds-core-react";import r from"styled-components";import{Link as i}from"@tanstack/react-router";const a=r.span`
1
+ import{colors as e}from"../../../atoms/style/colors.js";import{spacings as t}from"../../../atoms/style/spacings.js";import{Typography as n}from"@equinor/eds-core-react";import r from"styled-components";import{createLink as i}from"@tanstack/react-router";const a=r.span`
2
2
  width: 100%;
3
- `,o=r(i)`
3
+ `,o=i(r.a`
4
4
  display: flex;
5
5
  align-self: stretch;
6
6
  align-items: center;
@@ -24,7 +24,7 @@ import{colors as e}from"../../../atoms/style/colors.js";import{spacings as t}fro
24
24
  fill: ${({$disabled:t,$active:n})=>!t&&!n&&e.interactive.primary__hover.rgba};
25
25
  }
26
26
  }
27
- `,s=r.div`
27
+ `),s=r.div`
28
28
  display: flex;
29
29
  padding: ${t.x_small};
30
30
  align-items: center;
@@ -1,4 +1,4 @@
1
- import * as react127 from "react";
1
+ import * as react129 from "react";
2
2
  import { HTMLAttributes, ReactNode } from "react";
3
3
 
4
4
  //#region src/organisms/SideBar/SideBar.d.ts
@@ -16,6 +16,6 @@ interface SideBarWithCreate extends SideBarProps {
16
16
  createDisabled?: boolean;
17
17
  createActive?: boolean;
18
18
  }
19
- declare const SideBar: react127.ForwardRefExoticComponent<(SideBarWithCreate | BaseSideBar) & react127.RefAttributes<HTMLDivElement>>;
19
+ declare const SideBar: react129.ForwardRefExoticComponent<(SideBarWithCreate | BaseSideBar) & react129.RefAttributes<HTMLDivElement>>;
20
20
  //#endregion
21
21
  export { SideBar };
@@ -1,4 +1,4 @@
1
- import * as react135 from "react";
1
+ import * as react141 from "react";
2
2
 
3
3
  //#region src/organisms/Status/MissingAccesses.d.ts
4
4
  interface AccessType {
@@ -9,6 +9,6 @@ interface MissingAccessesProps {
9
9
  accesses?: AccessType[];
10
10
  text?: string;
11
11
  }
12
- declare const MissingAccesses: react135.ForwardRefExoticComponent<MissingAccessesProps & react135.RefAttributes<HTMLDivElement>>;
12
+ declare const MissingAccesses: react141.ForwardRefExoticComponent<MissingAccessesProps & react141.RefAttributes<HTMLDivElement>>;
13
13
  //#endregion
14
14
  export { MissingAccesses };
@@ -1,9 +1,9 @@
1
- import * as react133 from "react";
1
+ import * as react135 from "react";
2
2
 
3
3
  //#region src/organisms/Status/Title.d.ts
4
4
  interface TitleProps {
5
5
  title?: string;
6
6
  }
7
- declare const Title: react133.ForwardRefExoticComponent<TitleProps & react133.RefAttributes<HTMLHeadingElement>>;
7
+ declare const Title: react135.ForwardRefExoticComponent<TitleProps & react135.RefAttributes<HTMLHeadingElement>>;
8
8
  //#endregion
9
9
  export { Title };
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime10 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime8 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/organisms/Status/collections/BadRequest.d.ts
4
4
  interface BadRequestProps {
@@ -12,6 +12,6 @@ declare const BadRequest: ({
12
12
  redirectFallbackUrl,
13
13
  onBackClick,
14
14
  hideBackButton
15
- }: BadRequestProps) => react_jsx_runtime10.JSX.Element;
15
+ }: BadRequestProps) => react_jsx_runtime8.JSX.Element;
16
16
  //#endregion
17
17
  export { BadRequest };
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime12 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime9 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/organisms/Status/collections/GenericError.d.ts
4
4
  interface GenericErrorProps {
@@ -14,6 +14,6 @@ declare const GenericError: ({
14
14
  redirectFallbackUrl,
15
15
  onBackClick,
16
16
  hideBackButton
17
- }: GenericErrorProps) => react_jsx_runtime12.JSX.Element;
17
+ }: GenericErrorProps) => react_jsx_runtime9.JSX.Element;
18
18
  //#endregion
19
19
  export { GenericError };
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime8 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime10 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/organisms/Status/collections/MissingPermissions.d.ts
4
4
  interface MissingPermissionsProps {
@@ -14,6 +14,6 @@ declare const MissingPermissions: ({
14
14
  redirectFallbackUrl,
15
15
  onBackClick,
16
16
  hideBackButton
17
- }: MissingPermissionsProps) => react_jsx_runtime8.JSX.Element;
17
+ }: MissingPermissionsProps) => react_jsx_runtime10.JSX.Element;
18
18
  //#endregion
19
19
  export { MissingPermissions };
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime9 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime11 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/organisms/Status/collections/PageNotFound.d.ts
4
4
  interface PageNotFoundProps {
@@ -12,6 +12,6 @@ declare const PageNotFound: ({
12
12
  redirectFallbackUrl,
13
13
  onBackClick,
14
14
  hideBackButton
15
- }: PageNotFoundProps) => react_jsx_runtime9.JSX.Element;
15
+ }: PageNotFoundProps) => react_jsx_runtime11.JSX.Element;
16
16
  //#endregion
17
17
  export { PageNotFound };
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime11 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime12 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/organisms/Status/collections/ServerError.d.ts
4
4
  interface ServerErrorProps {
@@ -12,6 +12,6 @@ declare const ServerError: ({
12
12
  redirectFallbackUrl,
13
13
  onBackClick,
14
14
  hideBackButton
15
- }: ServerErrorProps) => react_jsx_runtime11.JSX.Element;
15
+ }: ServerErrorProps) => react_jsx_runtime12.JSX.Element;
16
16
  //#endregion
17
17
  export { ServerError };
@@ -1,14 +1,14 @@
1
- import * as react108 from "react";
2
- import * as styled_components12 from "styled-components";
1
+ import * as react110 from "react";
2
+ import * as styled_components13 from "styled-components";
3
3
  import { IStyledComponent } from "styled-components";
4
- import * as styled_components_dist_types50 from "styled-components/dist/types";
4
+ import * as styled_components_dist_types51 from "styled-components/dist/types";
5
5
 
6
6
  //#region src/organisms/Template/Template.d.ts
7
7
  interface ContentProps {
8
8
  $open: boolean;
9
9
  }
10
- declare const Content: styled_components_dist_types50.IStyledComponentBase<"web", styled_components_dist_types50.Substitute<react108.DetailedHTMLProps<react108.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, ContentProps>> & string;
11
- declare const GlobalStyles: react108.NamedExoticComponent<styled_components12.ExecutionProps & object>;
10
+ declare const Content: styled_components_dist_types51.IStyledComponentBase<"web", styled_components_dist_types51.Substitute<react110.DetailedHTMLProps<react110.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, ContentProps>> & string;
11
+ declare const GlobalStyles: react110.NamedExoticComponent<styled_components13.ExecutionProps & object>;
12
12
  type TemplateType = IStyledComponent<'web', any> & {
13
13
  Container: IStyledComponent<'web', any>;
14
14
  Content: typeof Content;
@@ -1,7 +1,7 @@
1
1
  import { ToggleGroup as ToggleGroup$1 } from "./ToggleGroup.types.js";
2
- import * as react143 from "react";
2
+ import * as react145 from "react";
3
3
 
4
4
  //#region src/organisms/ToggleGroup/ToggleGroup.d.ts
5
- declare const ToggleGroup: react143.ForwardRefExoticComponent<ToggleGroup$1 & react143.RefAttributes<HTMLDivElement>>;
5
+ declare const ToggleGroup: react145.ForwardRefExoticComponent<ToggleGroup$1 & react145.RefAttributes<HTMLDivElement>>;
6
6
  //#endregion
7
7
  export { ToggleGroup };
@@ -1,9 +1,9 @@
1
1
  import { ToggleGroupOption as ToggleGroupOption$1 } from "./ToggleGroup.types.js";
2
- import * as react141 from "react";
2
+ import * as react143 from "react";
3
3
  import { HTMLAttributes } from "react";
4
4
 
5
5
  //#region src/organisms/ToggleGroup/ToggleGroupOption.d.ts
6
6
  type ToggleGroupOptionProps = ToggleGroupOption$1 & Omit<HTMLAttributes<HTMLButtonElement>, 'onToggle' | 'disabled'>;
7
- declare const ToggleGroupOption: react141.ForwardRefExoticComponent<ToggleGroupOptionProps & react141.RefAttributes<HTMLButtonElement>>;
7
+ declare const ToggleGroupOption: react143.ForwardRefExoticComponent<ToggleGroupOptionProps & react143.RefAttributes<HTMLButtonElement>>;
8
8
  //#endregion
9
9
  export { ToggleGroupOption };
@@ -10,6 +10,7 @@ interface AccountProps {
10
10
  availableFields?: Field[];
11
11
  availableWells?: string[];
12
12
  enableEnvironmentToggle?: boolean;
13
+ onImpersonateChange?: () => void;
13
14
  }
14
15
  declare const Account: FC<AccountProps>;
15
16
  //#endregion
@@ -1 +1 @@
1
- import{EnvironmentType as e}from"../../../atoms/enums/Environment.js";import{environment as t}from"../../../atoms/utils/auth_environment.js";import{useAuth as ee}from"../../../providers/AuthProvider/AuthProvider.js";import{useLocalStorage as n}from"../../../atoms/hooks/useLocalStorage.js";import{Button as r}from"../../../molecules/Button/Button.js";import{TopBarMenu as i}from"../TopBarMenu.js";import{useActiveImpersonationUser as a}from"./ImpersonateMenu/hooks/useActiveImpersonationUser.js";import{useCanImpersonate as o}from"./ImpersonateMenu/hooks/useCanImpersonate.js";import{useMappedRoles as s}from"./ImpersonateMenu/hooks/useMappedRoles.js";import{useStopImpersonation as c}from"./ImpersonateMenu/hooks/useStopImpersonation.js";import{ButtonWrapper as l,Container as u,EnvironmentToggleWrapper as d,TextContent as f}from"./Account.styles.js";import{impersonateUserDtoToFullName as p}from"./ImpersonateMenu/Impersonate.utils.js";import{ImpersonateMenu as m}from"./ImpersonateMenu/ImpersonateMenu.js";import{AccountAvatar as h}from"./AccountAvatar.js";import{AccountButton as te}from"./AccountButton.js";import{ActiveUserImpersonationButton as ne}from"./ActiveUserImpersonationButton.js";import{ImpersonateButton as re}from"./ImpersonateButton.js";import{RoleList as ie}from"./RoleList.js";import{EnvironmentToggle as ae}from"./EnvironmentToggle.js";import{StatusChips as g}from"./StatusChips.js";import{useCallback as _,useEffect as v,useMemo as y,useRef as b,useState as x}from"react";import{Icon as S,Typography as C}from"@equinor/eds-core-react";import{Fragment as w,jsx as T,jsxs as E}from"react/jsx-runtime";import{log_out as D}from"@equinor/eds-icons";import{ENVIRONMENT_TOGGLE_KEY as O}from"@equinor/subsurface-app-management";const k=({renderCustomButton:k,hideRoles:A=!1,useDisplayNameForRole:j=!1,children:M,availableFields:N,availableWells:P,enableEnvironmentToggle:F=!1})=>{let I=t.getEnvironmentName(import.meta.env.VITE_ENVIRONMENT_NAME),oe=t.getApiClientId(import.meta.env.VITE_API_CLIENT_ID),L=t.getAppName(import.meta.env.VITE_NAME),{account:R,roles:z,logout:B}=ee(),[V,H]=x(!1),[U,W]=x(!1),[G,K]=n(O,[]),q=b(null),{data:se=!0}=o(),{data:J}=a(),{mutate:Y}=c(),X=s(J?J.roles:z??[],j),ce=J?p(J):R?.name,le=J?J.uniqueName:R?.username,Z=()=>H(!1),Q=_(()=>{H(e=>!e),W(!1)},[]),$=()=>{W(!0),H(!1)};return v(()=>{J&&J.appName!=null&&J.appName.toUpperCase()!=L.toUpperCase()&&Y()},[J,L,Y]),E(w,{children:[y(()=>k?k(q,Q):null,[k,Q])||T(te,{ref:q,onClick:Q,environmentToggle:G}),E(i,{open:V,title:`Account`,onClose:Z,anchorEl:q.current,children:[E(u,{children:[J&&T(ne,{onClick:$}),T(h,{environmentToggle:G}),E(f,{children:[T(C,{variant:`h6`,children:ce}),T(C,{children:le})]}),G.length>0&&T(g,{statuses:G}),X&&!A&&T(w,{children:X.length<=3?T(g,{statuses:X}):T(ie,{roles:X})}),M,se&&I!==e.PRODUCTION&&oe&&T(re,{onOpenImpersonateMenu:$,onClose:Z})]}),F&&I!==e.PRODUCTION&&T(d,{children:T(ae,{setEnvironmentToggle:K,environmentToggle:G})}),T(l,{children:E(r,{variant:`ghost`,onClick:B,children:[T(S,{data:D}),`Log out`]})})]}),T(m,{open:U,onClose:()=>W(!1),anchorEl:q.current,availableFields:N,availableWells:P})]})};k.displayName=`TopBar.Account`;export{k as Account};
1
+ import{EnvironmentType as e}from"../../../atoms/enums/Environment.js";import{environment as t}from"../../../atoms/utils/auth_environment.js";import{useAuth as ee}from"../../../providers/AuthProvider/AuthProvider.js";import{useLocalStorage as n}from"../../../atoms/hooks/useLocalStorage.js";import{Button as r}from"../../../molecules/Button/Button.js";import{TopBarMenu as i}from"../TopBarMenu.js";import{useActiveImpersonationUser as a}from"./ImpersonateMenu/hooks/useActiveImpersonationUser.js";import{useCanImpersonate as o}from"./ImpersonateMenu/hooks/useCanImpersonate.js";import{useMappedRoles as s}from"./ImpersonateMenu/hooks/useMappedRoles.js";import{useStopImpersonation as c}from"./ImpersonateMenu/hooks/useStopImpersonation.js";import{ButtonWrapper as l,Container as u,EnvironmentToggleWrapper as d,TextContent as f}from"./Account.styles.js";import{impersonateUserDtoToFullName as p}from"./ImpersonateMenu/Impersonate.utils.js";import{ImpersonateMenu as m}from"./ImpersonateMenu/ImpersonateMenu.js";import{AccountAvatar as h}from"./AccountAvatar.js";import{AccountButton as te}from"./AccountButton.js";import{ActiveUserImpersonationButton as ne}from"./ActiveUserImpersonationButton.js";import{ImpersonateButton as re}from"./ImpersonateButton.js";import{RoleList as ie}from"./RoleList.js";import{EnvironmentToggle as ae}from"./EnvironmentToggle.js";import{StatusChips as g}from"./StatusChips.js";import{useCallback as oe,useEffect as _,useMemo as v,useRef as y,useState as b}from"react";import{Icon as x,Typography as S}from"@equinor/eds-core-react";import{Fragment as C,jsx as w,jsxs as T}from"react/jsx-runtime";import{log_out as E}from"@equinor/eds-icons";import{ENVIRONMENT_TOGGLE_KEY as D}from"@equinor/subsurface-app-management";const O=({renderCustomButton:O,hideRoles:k=!1,useDisplayNameForRole:A=!1,children:j,availableFields:M,availableWells:N,enableEnvironmentToggle:P=!1,onImpersonateChange:F})=>{let I=t.getEnvironmentName(import.meta.env.VITE_ENVIRONMENT_NAME),se=t.getApiClientId(import.meta.env.VITE_API_CLIENT_ID),L=t.getAppName(import.meta.env.VITE_NAME),{account:R,roles:z,logout:B}=ee(),[V,H]=b(!1),[U,W]=b(!1),[G,K]=n(D,[]),q=y(null),{data:ce=!0}=o(),{data:J}=a(),{mutate:Y}=c(),X=s(J?J.roles:z??[],A),le=J?p(J):R?.name,ue=J?J.uniqueName:R?.username,Z=()=>H(!1),Q=oe(()=>{H(e=>!e),W(!1)},[]),$=()=>{W(!0),H(!1)};return _(()=>{J&&J.appName!=null&&J.appName.toUpperCase()!=L.toUpperCase()&&Y()},[J,L,Y]),T(C,{children:[v(()=>O?O(q,Q):null,[O,Q])||w(te,{ref:q,onClick:Q,environmentToggle:G}),T(i,{open:V,title:`Account`,onClose:Z,anchorEl:q.current,children:[T(u,{children:[J&&w(ne,{onClick:$}),w(h,{environmentToggle:G}),T(f,{children:[w(S,{variant:`h6`,children:le}),w(S,{children:ue})]}),G.length>0&&w(g,{statuses:G}),X&&!k&&w(C,{children:X.length<=3?w(g,{statuses:X}):w(ie,{roles:X})}),j,ce&&I!==e.PRODUCTION&&se&&w(re,{onOpenImpersonateMenu:$,onClose:Z,onImpersonateChange:F})]}),P&&I!==e.PRODUCTION&&w(d,{children:w(ae,{setEnvironmentToggle:K,environmentToggle:G})}),w(l,{children:T(r,{variant:`ghost`,onClick:B,children:[w(x,{data:E}),`Log out`]})})]}),w(m,{open:U,onClose:()=>W(!1),anchorEl:q.current,availableFields:M,availableWells:N,onImpersonateChange:F})]})};O.displayName=`TopBar.Account`;export{O as Account};
@@ -5,4 +5,4 @@ import{colors as e}from"../../../atoms/style/colors.js";import{spacings as t}fro
5
5
  svg {
6
6
  fill: ${e.interactive.danger__resting.rgba};
7
7
  }
8
- `,g=({onOpenImpersonateMenu:e,onClose:t})=>{let{data:a}=n(),{mutateAsync:l,isPending:g}=r();return a&&g?u(h,{variant:`outlined`,color:`danger`,children:u(o,{})}):a?d(h,{variant:`outlined`,color:`danger`,onClick:async()=>{await l(),t()},children:[u(s,{data:m}),`End impersonation`]}):d(i,{onClick:e,children:[u(s,{data:p}),u(c,{variant:`button`,group:`navigation`,as:`span`,children:`Impersonate`}),u(s,{data:f})]})};export{g as ImpersonateButton};
8
+ `,g=({onOpenImpersonateMenu:e,onClose:t,onImpersonateChange:a})=>{let{data:l}=n(),{mutateAsync:g,isPending:_}=r();return l&&_?u(h,{variant:`outlined`,color:`danger`,children:u(o,{})}):l?d(h,{variant:`outlined`,color:`danger`,onClick:async()=>{await g(),t(),a?.()},children:[u(s,{data:m}),`End impersonation`]}):d(i,{onClick:e,children:[u(s,{data:p}),u(c,{variant:`button`,group:`navigation`,as:`span`,children:`Impersonate`}),u(s,{data:f})]})};export{g as ImpersonateButton};
@@ -8,4 +8,4 @@ import{spacings as e}from"../../../../atoms/style/spacings.js";import{useActiveI
8
8
  display: flex;
9
9
  justify-content: flex-end;
10
10
  gap: ${e.small};
11
- `,d=({selectedUniqueName:e,onCancel:o})=>{let{data:d}=t(),{mutateAsync:f,isPending:p}=n();return c(l,{children:[s(a,{variant:`body_short`,children:`By selecting a user to impersonate, you will view the contents of this app as if you would be that user.`}),c(u,{children:[s(r,{variant:`outlined`,onClick:o,children:`Cancel`}),p?s(r,{children:s(i,{})}):s(r,{onClick:async()=>{await f(e),o()},disabled:e===``||e===d?.uniqueName,"data-testid":`start-impersonate-button`,children:`Impersonate`})]})]})};export{d as Actions};
11
+ `,d=({selectedUniqueName:e,onCancel:o,onImpersonateChange:d})=>{let{data:f}=t(),{mutateAsync:p,isPending:m}=n();return c(l,{children:[s(a,{variant:`body_short`,children:`By selecting a user to impersonate, you will view the contents of this app as if you would be that user.`}),c(u,{children:[s(r,{variant:`outlined`,onClick:o,children:`Cancel`}),m?s(r,{children:s(i,{})}):s(r,{onClick:async()=>{await p(e),o(),d?.()},disabled:e===``||e===f?.uniqueName,"data-testid":`start-impersonate-button`,children:`Impersonate`})]})]})};export{d as Actions};
@@ -1 +1 @@
1
- import{Search as e}from"../../../../molecules/Search/Search.js";import{useActiveImpersonationUser as t}from"./hooks/useActiveImpersonationUser.js";import{CreateOrEditUser as n}from"./CreateOrEditUser/CreateOrEditUser.js";import{DeleteUser as r}from"./DeleteUser/DeleteUser.js";import{useGetAllImpersonationUsersForApp as i}from"./hooks/useGetAllImpersonationUsersForApp.js";import{Actions as a}from"./Actions.js";import{CreateNewUserButton as o}from"./CreateNewUserButton.js";import{Content as s,Header as c,NoUsersText as l}from"./ImpersonateMenu.styles.js";import{impersonateUserDtoToFullName as u}from"./Impersonate.utils.js";import{UserImpersonation as d}from"./UserImpersonation.js";import{useEffect as f,useState as p}from"react";import{Menu as m,Typography as h}from"@equinor/eds-core-react";import{jsx as g,jsxs as _}from"react/jsx-runtime";const v=({open:v,onClose:y,anchorEl:b,availableFields:x,availableWells:S})=>{let[C,w]=p(!1),[T,E]=p(void 0),[D,O]=p(void 0),[k,A]=p(``),[j,M]=p(``),{data:N}=i(),{data:P}=t(),F=N?.filter(e=>u(e).toLowerCase().includes(j.toLowerCase()));f(()=>{!v&&P&&k!==P.uniqueName?A(P.uniqueName):!v&&!P&&k!==``&&A(``)},[P,v,k]);let I=()=>{y()},L=()=>w(!0),R=()=>{w(!1),T&&E(void 0)},z=()=>{w(!1),T&&E(void 0),I()},B=e=>{E(N?.find(t=>t.uniqueName===e)),w(!0)},V=e=>{O(N?.find(t=>t.uniqueName===e))};return v?C?g(m,{open:!0,anchorEl:b,onClose:z,placement:`bottom-end`,style:{width:`400px`},children:g(n,{editingUser:T,onBack:R,availableFields:x,availableWells:S})}):D?g(m,{open:!0,anchorEl:b,onClose:z,placement:`bottom-end`,style:{width:`400px`},children:g(r,{user:D,onBack:()=>{O(void 0)}})}):_(m,{open:!0,anchorEl:b,onClose:I,placement:`bottom-end`,style:{width:`400px`},children:[_(c,{children:[g(h,{variant:`h6`,children:`Impersonate`}),g(h,{variant:`caption`,children:`Select a user to impersonate`}),g(e,{placeholder:`Search users`,value:j,onChange:e=>{M(e.target.value)}})]}),g(s,{children:F&&F.length>0?F?.map(e=>g(d,{...e,selected:k===e.uniqueName,onClick:A,onEdit:B,onDelete:V},e.uniqueName)):g(l,{children:`No items found`})}),g(o,{onClick:L}),g(a,{selectedUniqueName:k,onCancel:y})]}):null};export{v as ImpersonateMenu};
1
+ import{Search as e}from"../../../../molecules/Search/Search.js";import{useActiveImpersonationUser as t}from"./hooks/useActiveImpersonationUser.js";import{CreateOrEditUser as n}from"./CreateOrEditUser/CreateOrEditUser.js";import{DeleteUser as r}from"./DeleteUser/DeleteUser.js";import{useGetAllImpersonationUsersForApp as i}from"./hooks/useGetAllImpersonationUsersForApp.js";import{Actions as a}from"./Actions.js";import{CreateNewUserButton as o}from"./CreateNewUserButton.js";import{Content as s,Header as c,NoUsersText as l}from"./ImpersonateMenu.styles.js";import{impersonateUserDtoToFullName as u}from"./Impersonate.utils.js";import{UserImpersonation as d}from"./UserImpersonation.js";import{useEffect as f,useState as p}from"react";import{Menu as m,Typography as h}from"@equinor/eds-core-react";import{jsx as g,jsxs as _}from"react/jsx-runtime";const v=({open:v,onClose:y,anchorEl:b,availableFields:x,availableWells:S,onImpersonateChange:C})=>{let[w,T]=p(!1),[E,D]=p(void 0),[O,k]=p(void 0),[A,j]=p(``),[M,N]=p(``),{data:P}=i(),{data:F}=t(),I=P?.filter(e=>u(e).toLowerCase().includes(M.toLowerCase()));f(()=>{!v&&F&&A!==F.uniqueName?j(F.uniqueName):!v&&!F&&A!==``&&j(``)},[F,v,A]);let L=()=>{y()},R=()=>T(!0),z=()=>{T(!1),E&&D(void 0)},B=()=>{T(!1),E&&D(void 0),L()},V=e=>{D(P?.find(t=>t.uniqueName===e)),T(!0)},H=e=>{k(P?.find(t=>t.uniqueName===e))};return v?w?g(m,{open:!0,anchorEl:b,onClose:B,placement:`bottom-end`,style:{width:`400px`},children:g(n,{editingUser:E,onBack:z,availableFields:x,availableWells:S})}):O?g(m,{open:!0,anchorEl:b,onClose:B,placement:`bottom-end`,style:{width:`400px`},children:g(r,{user:O,onBack:()=>{k(void 0)}})}):_(m,{open:!0,anchorEl:b,onClose:L,placement:`bottom-end`,style:{width:`400px`},children:[_(c,{children:[g(h,{variant:`h6`,children:`Impersonate`}),g(h,{variant:`caption`,children:`Select a user to impersonate`}),g(e,{placeholder:`Search users`,value:M,onChange:e=>{N(e.target.value)}})]}),g(s,{children:I&&I.length>0?I?.map(e=>g(d,{...e,selected:A===e.uniqueName,onClick:j,onEdit:V,onDelete:H},e.uniqueName)):g(l,{children:`No items found`})}),g(o,{onClick:R}),g(a,{selectedUniqueName:A,onCancel:y,onImpersonateChange:C})]}):null};export{v as ImpersonateMenu};
@@ -1,7 +1,7 @@
1
- import * as react131 from "react";
1
+ import * as react133 from "react";
2
2
  import { HTMLAttributes } from "react";
3
3
 
4
4
  //#region src/organisms/TopBar/Actions.d.ts
5
- declare const Actions: react131.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react131.RefAttributes<HTMLDivElement>>;
5
+ declare const Actions: react133.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react133.RefAttributes<HTMLDivElement>>;
6
6
  //#endregion
7
7
  export { Actions };
@@ -1,5 +1,5 @@
1
1
  import { Field } from "../../../atoms/types/Field.js";
2
- import * as react129 from "react";
2
+ import * as react131 from "react";
3
3
 
4
4
  //#region src/organisms/TopBar/FieldMenu/FieldMenu.d.ts
5
5
  interface FieldMenuProps {
@@ -8,6 +8,6 @@ interface FieldMenuProps {
8
8
  itemNameSingular?: string;
9
9
  showAccessITLink?: boolean;
10
10
  }
11
- declare const FieldMenu: react129.ForwardRefExoticComponent<FieldMenuProps & react129.RefAttributes<HTMLDivElement>>;
11
+ declare const FieldMenu: react131.ForwardRefExoticComponent<FieldMenuProps & react131.RefAttributes<HTMLDivElement>>;
12
12
  //#endregion
13
13
  export { FieldMenu };
@@ -1 +1 @@
1
- import{tokens as e}from"../../../node_modules/@equinor/eds-tokens/dist/esm/base/index.js";import{TopBarMenu as t}from"../TopBarMenu.js";import{TopBarButton as n}from"../TopBar.styles.js";import{ListContainer as r,MenuFixedItem as i,MenuItem as a,MenuSection as o,NoFieldsText as s,NoSearchResultsContainer as c,SearchContainer as l,TextContainer as u}from"./FieldMenu.styles.js";import{useTopBarInternalContext as d}from"../TopBarInternalContextProvider.js";import{forwardRef as f,useMemo as p,useRef as m,useState as h}from"react";import{Icon as g,Search as _,Typography as v}from"@equinor/eds-core-react";import{jsx as y,jsxs as b}from"react/jsx-runtime";import{arrow_drop_down as x,arrow_drop_up as S,check as C,exit_to_app as w,platform as T}from"@equinor/eds-icons";const{colors:E}=e,D=f(({availableFields:e,onSelect:f,itemNameSingular:D=`field`,showAccessITLink:O=!0},k)=>{let{selectedField:A}=d(),[j,M]=h(!1),N=m(null),[P,F]=h(``),I=()=>M(!1),L=()=>M(!j),R=p(()=>P===``?e.filter(e=>e.name?.toLowerCase()!==A?.name?.toLowerCase()):e.filter(e=>e.name?.toLowerCase().includes(P.toLowerCase())),[e,P,A]),z=R.length===0,B=p(()=>{if(A?.name)return A.name.charAt(0).toUpperCase()+A.name.slice(1)},[A?.name]),V=e=>{F(e.target.value)},H=e.length>=4;return A?b(`div`,{ref:k,children:[b(n,{variant:`ghost`,ref:N,onClick:L,"data-testid":`field-selector-top-bar-button`,$fieldSelector:!0,children:[y(g,{data:T,size:24}),B,y(g,{data:j?S:x})]}),y(t,{open:j,title:`Field Selection`,onClose:I,anchorEl:N.current,contentPadding:!1,children:b(`section`,{children:[b(o,{children:[H&&y(l,{children:y(_,{autoFocus:!0,placeholder:`Search fields`,value:P,onChange:V})}),b(r,{children:[!z&&P===``&&y(i,{$active:!0,children:b(`div`,{children:[y(u,{children:y(v,{variant:`h6`,children:A.name?.toLowerCase()})}),y(g,{data:C,color:E.interactive.primary__resting.rgba,size:24})]})}),z?y(c,{children:b(s,{variant:`body_short`,color:E.text.static_icons__tertiary.rgba,children:[`No `,D,`s matching your search`]})}):R.map(e=>y(a,{onClick:()=>{f(e),I()},children:y(u,{children:y(v,{variant:`h6`,children:e.name?.toLowerCase()})})},e.uuid))]})]}),O&&!z&&y(i,{"data-testid":`access-it-link`,onClick:()=>window.open(`https://accessit.equinor.com/#`,`_blank`),children:b(`div`,{children:[b(u,{children:[b(v,{variant:`overline`,children:[`Missing a `,D,`?`]}),y(v,{variant:`h6`,children:`Go to AccessIT`})]}),y(g,{data:w,color:E.interactive.primary__resting.rgba,size:24})]})})]})})]}):null});D.displayName=`FieldSelector`;export{D as FieldMenu};
1
+ import{tokens as e}from"../../../node_modules/@equinor/eds-tokens/dist/esm/base/index.js";import{TopBarMenu as t}from"../TopBarMenu.js";import{TopBarButton as n}from"../TopBar.styles.js";import{ListContainer as r,MenuFixedItem as i,MenuItem as a,MenuSection as o,NoFieldsText as s,NoSearchResultsContainer as c,SearchContainer as l,TextContainer as u}from"./FieldMenu.styles.js";import{useTopBarInternalContext as d}from"../TopBarInternalContextProvider.js";import{forwardRef as f,useMemo as p,useRef as m,useState as h}from"react";import{Icon as g,Search as _,Typography as v}from"@equinor/eds-core-react";import{jsx as y,jsxs as b}from"react/jsx-runtime";import{arrow_drop_down as x,arrow_drop_up as S,check as C,exit_to_app as w,platform as T}from"@equinor/eds-icons";const{colors:E}=e,D=f(({availableFields:e,onSelect:f,itemNameSingular:D=`field`,showAccessITLink:O=!0},k)=>{let{selectedField:A}=d(),[j,M]=h(!1),N=m(null),[P,F]=h(``),I=()=>M(!1),L=()=>M(!j),R=p(()=>P===``?e.filter(e=>e.name?.toLowerCase()!==A?.name?.toLowerCase()):e.filter(e=>e.name?.toLowerCase().includes(P.toLowerCase())),[e,P,A]),z=p(()=>{if(A?.name)return A.name.charAt(0).toUpperCase()+A.name.slice(1)},[A?.name]),B=e=>{F(e.target.value)},V=e.length>=4,H=R.length===0&&V;return A?b(`div`,{ref:k,children:[b(n,{variant:`ghost`,ref:N,onClick:L,"data-testid":`field-selector-top-bar-button`,$fieldSelector:!0,children:[y(g,{data:T,size:24}),z,y(g,{data:j?S:x})]}),y(t,{open:j,title:`Field Selection`,onClose:I,anchorEl:N.current,contentPadding:!1,children:b(`section`,{children:[b(o,{children:[V&&y(l,{children:y(_,{autoFocus:!0,placeholder:`Search fields`,value:P,onChange:B})}),b(r,{children:[!H&&P===``&&y(i,{$active:!0,children:b(`div`,{children:[y(u,{children:y(v,{variant:`h6`,children:A.name?.toLowerCase()})}),y(g,{data:C,color:E.interactive.primary__resting.rgba,size:24})]})}),H?y(c,{children:b(s,{variant:`body_short`,color:E.text.static_icons__tertiary.rgba,children:[`No `,D,`s matching your search`]})}):R.map(e=>y(a,{onClick:()=>{f(e),I()},children:y(u,{children:y(v,{variant:`h6`,children:e.name?.toLowerCase()})})},e.uuid))]})]}),O&&!H&&y(i,{"data-testid":`access-it-link`,onClick:()=>window.open(`https://accessit.equinor.com/#`,`_blank`),children:b(`div`,{children:[b(u,{children:[b(v,{variant:`overline`,children:[`Missing a `,D,`?`]}),y(v,{variant:`h6`,children:`Go to AccessIT`})]}),y(g,{data:w,color:E.interactive.primary__resting.rgba,size:24})]})})]})})]}):null});D.displayName=`FieldSelector`;export{D as FieldMenu};
@@ -1,10 +1,10 @@
1
- import * as react150 from "react";
2
- import * as styled_components_dist_types59 from "styled-components/dist/types";
1
+ import * as react152 from "react";
2
+ import * as styled_components_dist_types60 from "styled-components/dist/types";
3
3
 
4
4
  //#region src/organisms/TopBar/Guidelines/Colorbox.d.ts
5
5
  interface ColorboxProps {
6
6
  $color: string;
7
7
  }
8
- declare const Colorbox: styled_components_dist_types59.IStyledComponentBase<"web", styled_components_dist_types59.Substitute<react150.DetailedHTMLProps<react150.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, ColorboxProps>> & string;
8
+ declare const Colorbox: styled_components_dist_types60.IStyledComponentBase<"web", styled_components_dist_types60.Substitute<react152.DetailedHTMLProps<react152.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, ColorboxProps>> & string;
9
9
  //#endregion
10
10
  export { Colorbox };
@@ -1,4 +1,4 @@
1
- import * as react149 from "react";
1
+ import * as react151 from "react";
2
2
  import { Dispatch, FC, ReactNode, SetStateAction } from "react";
3
3
 
4
4
  //#region src/organisms/TopBar/Notifications/NotificationProvider.d.ts
@@ -6,7 +6,7 @@ interface NotificationContext {
6
6
  setIsOpen: Dispatch<SetStateAction<boolean>>;
7
7
  isOpen: boolean;
8
8
  }
9
- declare const NotificationContext: react149.Context<NotificationContext | undefined>;
9
+ declare const NotificationContext: react151.Context<NotificationContext | undefined>;
10
10
  declare const useNotification: () => NotificationContext;
11
11
  //#endregion
12
12
  export { useNotification };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@equinor/amplify-component-lib",
3
- "version": "10.10.1",
3
+ "version": "11.0.0",
4
4
  "description": "Frontend Typescript components for the Amplify team",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",