@equinor/amplify-component-lib 9.8.3 → 9.9.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.
@@ -1 +1 @@
1
- import{FaqService as e}from"@equinor/subsurface-app-management";import{useQuery as r}from"@tanstack/react-query";import{environment as t}from"../utils/auth_environment.js";function o(){return r({queryKey:["GET_FAQ_IN_APP"],queryFn:async()=>(await e.getFaqCategoriesFromApplicationId(t.getAppName(import.meta.env.VITE_NAME))).toSorted(((e,r)=>(e.orderBy??0)-(r.orderBy??0))),staleTime:3e5})}export{o as useFaqsInApplication};
1
+ import{FaqService as e}from"@equinor/subsurface-app-management";import{useQuery as r}from"@tanstack/react-query";import{environment as t}from"../utils/auth_environment.js";function a(){return r({queryKey:["GET_FAQ_IN_APP"],queryFn:async()=>(await e.getCategoriesWithFaqsFromApplicationName(t.getAppName(import.meta.env.VITE_NAME))).toSorted(((e,r)=>(e.orderBy??0)-(r.orderBy??0))),staleTime:3e5})}export{a as useFaqsInApplication};
@@ -1 +1 @@
1
- import t from"html2canvas";const r=(r,n)=>{if(!r.current)throw new Error("'node' must be a RefObject");const e=r.current;return t(e,{scrollY:-window.scrollY,useCORS:!0,backgroundColor:n||"#FFFFFF"}).then((t=>function(t){const r=window.atob(t.split(",")[1]),n=t.split(",")[0].split(":")[1].split(";")[0],e=new ArrayBuffer(r.length),o=new Uint8Array(e);for(let t=0;t<r.length;t++)o[t]=r.charCodeAt(t);return new Blob([e],{type:n})}(t.toDataURL("image/png",1))))};export{r as exportComponent};
1
+ import t from"html2canvas";const e=(e,r)=>{if(!e.current)throw new Error("'node' must be a RefObject");const o=e.current,n=o.scrollWidth,l=o.scrollHeight;return o.setAttribute("style","box-shadow: none"),o.setAttribute("style","overflow: visible"),t(o,{scrollY:-window.scrollY,useCORS:!0,backgroundColor:r||"#FFFFFF",width:n,height:l}).then((t=>(o.removeAttribute("style"),function(t){const e=window.atob(t.split(",")[1]),r=t.split(",")[0].split(":")[1].split(";")[0],o=new ArrayBuffer(e.length),n=new Uint8Array(o);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t);return new Blob([o],{type:r})}(t.toDataURL("image/png",1)))))};export{e as exportComponent};
@@ -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 l,CircularProgress as r,Icon as a}from"@equinor/eds-core-react";import{arrow_drop_up as i,arrow_drop_down as s,clear as c}from"@equinor/eds-icons";import{tokens as d}from"../../node_modules/@equinor/eds-tokens/dist/esm/base/index.js";import{useSelect as m}from"../../atoms/hooks/useSelect.js";import{getVariantIcon 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 f,Wrapper as b,Container as v,Section as x,PlaceholderText as S,ClearButton as y,HelperWrapper as C,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}=d,w=d=>{const{clearable:w=!0,loading:T=!1,disabled:j=!1,lightBackground:D=!1,underlineHighlight:R=!1,sortValues:$=!0,placeholder:A="Select...",label:V,helperText:B,showHelperIcon:F=!0,meta:K,id:_=`amplify-combobox-${V}`,variant:q,inDialog:z=!1,onSearchFilter:H,"data-testid":M}=d,{handleOnAddItem:W,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:te,searchRef:oe,tryingToRemoveItem:ne}=m({...d,clearable:w,loading:T,disabled:j,lightBackground:D,underlineHighlight:R,sortValues:$,placeholder:A}),le=o(null),re=o(null),ae=n((()=>!!V||!!K),[V,K]),ie=n((()=>!!B),[B]),se=n((()=>{if(F)return h(q)}),[F,q]);O(re.current,(e=>{z&&te&&e.target&&le.current&&re.current&&!le.current.contains(e.target)&&!re.current?.contains(e.target)&&Y()}));const ce=n((()=>{if("value"in d&&d.value)return e(g,{children:d.value.label});if("showSelectedAsText"in d&&d.showSelectedAsText){const e=d.items?d.items.length:d.groups.flatMap((e=>e.items)).length;return t(g,{children:[X.length,"/",e," Selected"]})}return X.map((t=>"customValueComponent"in d&&d.customValueComponent?e(d.customValueComponent,{item:t,onDelete:()=>ee(t),tryingToRemove:void 0!==ne&&ne.value===t.value},t.value):e(f,{"data-testid":"amplify-combobox-chip",className:"amplify-combo-box-chip",onDelete:()=>ee(t),$tryingToRemove:ne?.value===t.value,$lightBackground:D,children:t.label},t.value)))}),[X,ne,D,d,ee]);return t("div",{children:[ae&&e(l,{label:V,meta:K,htmlFor:_}),t(b,{children:[t(v,{"data-testid":M||"combobox-container",ref:le,onClick:Z,"aria-expanded":te,$variant:q,$lightBackground:D,children:[t(x,{children:[""===U&&0===X.length&&e(S,{children:A}),(""===U&&"value"in d||"values"in d&&X.length>0&&(!d.showSelectedAsText||d.showSelectedAsText&&""===U))&&ce,e("input",{id:_,disabled:j||T,ref:oe,type:"search",role:"combobox",value:U,autoComplete:"off",onChange:N,onKeyDownCapture:J})]}),T?e(r,{size:16}):e(a,{onClick:P,data:te?i:s,color:k.interactive.primary__resting.rgba}),w&&X.length>0&&!T&&e(y,{id:"clear",variant:"ghost_icon",onClick:E,"data-testid":"clearBtn",children:e(a,{data:c,size:18})})]}),ie&&t(C,{$variant:q,children:[se&&e(a,{data:se,size:16}),e(l,{label:B,htmlFor:_})]})]}),te&&e(I,{ref:re,open:!0,id:"combobox-menu",anchorEl:le.current,onClose:Y,placement:"bottom",style:{width:`${le.current?.clientWidth}px`,maxWidth:`${le.current?.clientWidth}px`},children:"groups"in d&&d.groups?e(u,{...d,search:U,itemRefs:Q,onItemSelect:L,onItemKeyDown:G,onSearchFilter:H}):e(p,{...d,search:U,itemRefs:Q,onAddItem:d.onAddItem?W:void 0,onItemSelect:L,onItemKeyDown:G,onSearchFilter:H})})]})};export{w as Select};
1
+ import{jsx as e,jsxs as t}from"react/jsx-runtime";import{useRef as o,useMemo as n}from"react";import{Label as l,CircularProgress as r,Icon as a}from"@equinor/eds-core-react";import{arrow_drop_up as i,arrow_drop_down as s,clear as c}from"@equinor/eds-icons";import{tokens as d}from"../../node_modules/@equinor/eds-tokens/dist/esm/base/index.js";import{useSelect as m}from"../../atoms/hooks/useSelect.js";import{getVariantIcon 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 f,Wrapper as b,Container as v,Section as x,PlaceholderText as S,ClearButton as y,HelperWrapper as C,StyledMenu as w}from"./Select.styles.js";import{useOutsideClick as I}from"../../node_modules/@equinor/eds-utils/dist/esm/hooks/useOutsideClick.js";const{colors:O}=d,k=d=>{const{clearable:k=!0,loading:A=!1,disabled:T=!1,lightBackground:$=!1,underlineHighlight:j=!1,sortValues:D=!0,placeholder:R="Select...",label:V,helperText:B,showHelperIcon:F=!0,meta:K,id:_=`amplify-combobox-${V}`,variant:q,inDialog:z=!1,onSearchFilter:H,"data-testid":M}=d,{handleOnAddItem:W,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:te,searchRef:oe,tryingToRemoveItem:ne}=m({...d,clearable:k,loading:A,disabled:T,lightBackground:$,underlineHighlight:j,sortValues:D,placeholder:R}),le=o(null),re=o(null),ae=n((()=>!!V||!!K),[V,K]),ie=n((()=>!!B),[B]),se=n((()=>{if(F)return h(q)}),[F,q]);I(re.current,(e=>{z&&te&&e.target&&le.current&&re.current&&!le.current.contains(e.target)&&!re.current?.contains(e.target)&&Y()}));const ce=n((()=>{if("value"in d&&d.value)return e(g,{children:d.value.label});if("showSelectedAsText"in d&&d.showSelectedAsText){const t=d.items?d.items.length:d.groups.flatMap((e=>e.items)).length,o="function"==typeof d.showSelectedAsText?d.showSelectedAsText({selectedAmount:X.length,totalAmount:t}):`${X.length}/${t} Selected`;return e(g,{children:o})}return X.map((t=>"customValueComponent"in d&&d.customValueComponent?e(d.customValueComponent,{item:t,onDelete:()=>ee(t),tryingToRemove:void 0!==ne&&ne.value===t.value},t.value):e(f,{"data-testid":"amplify-combobox-chip",className:"amplify-combo-box-chip",onDelete:()=>ee(t),$tryingToRemove:ne?.value===t.value,$lightBackground:$,children:t.label},t.value)))}),[X,ne,$,d,ee]);return t("div",{children:[ae&&e(l,{label:V,meta:K,htmlFor:_}),t(b,{children:[t(v,{"data-testid":M||"combobox-container",ref:le,onClick:Z,"aria-expanded":te,$variant:q,$lightBackground:$,children:[t(x,{children:[""===U&&0===X.length&&e(S,{children:R}),(""===U&&"value"in d||"values"in d&&X.length>0&&(!d.showSelectedAsText||d.showSelectedAsText&&""===U))&&ce,e("input",{id:_,disabled:T||A,ref:oe,type:"search",role:"combobox",value:U,autoComplete:"off",onChange:N,onKeyDownCapture:J})]}),A?e(r,{size:16}):e(a,{onClick:P,data:te?i:s,color:O.interactive.primary__resting.rgba}),k&&X.length>0&&!A&&e(y,{id:"clear",variant:"ghost_icon",onClick:E,"data-testid":"clearBtn",children:e(a,{data:c,size:18})})]}),ie&&t(C,{$variant:q,children:[se&&e(a,{data:se,size:16}),e(l,{label:B,htmlFor:_})]})]}),te&&e(w,{ref:re,open:!0,id:"combobox-menu",anchorEl:le.current,onClose:Y,placement:"bottom",style:{width:`${le.current?.clientWidth}px`,maxWidth:`${le.current?.clientWidth}px`},children:"groups"in d&&d.groups?e(u,{...d,search:U,itemRefs:Q,onItemSelect:L,onItemKeyDown:G,onSearchFilter:H}):e(p,{...d,search:U,itemRefs:Q,onAddItem:d.onAddItem?W:void 0,onItemSelect:L,onItemKeyDown:G,onSearchFilter:H})})]})};export{k as Select};
@@ -17,7 +17,10 @@ interface MultiSelectBase<T extends SelectOptionRequired> {
17
17
  syncParentChildSelection?: boolean;
18
18
  }
19
19
  type MultiSelectWithSelectedAsText<T extends SelectOptionRequired> = {
20
- showSelectedAsText: boolean;
20
+ showSelectedAsText: boolean | (({ selectedAmount, totalAmount, }: {
21
+ selectedAmount: number;
22
+ totalAmount: number;
23
+ }) => string);
21
24
  } & MultiSelectBase<T>;
22
25
  type MultiSelectWithCustomValueComponent<T extends SelectOptionRequired> = {
23
26
  showSelectedAsText?: undefined;
@@ -2,9 +2,9 @@ import { ReactNode } from 'react';
2
2
  import { ReleaseNote as ReleaseNoteDto } from '@equinor/subsurface-app-management';
3
3
  export type ReleaseNoteProps = {
4
4
  actionMenu?: ReactNode;
5
- startExpanded?: boolean;
5
+ expanded?: boolean;
6
6
  } & ReleaseNoteDto;
7
7
  export declare const ReleaseNote: import("react").ForwardRefExoticComponent<{
8
8
  actionMenu?: ReactNode;
9
- startExpanded?: boolean;
9
+ expanded?: boolean;
10
10
  } & ReleaseNoteDto & import("react").RefAttributes<HTMLDivElement>>;
@@ -1,4 +1,4 @@
1
- import{jsxs as e,jsx as o}from"react/jsx-runtime";import{forwardRef as t,useRef as r,useState as i}from"react";import{Typography as s}from"@equinor/eds-core-react";import{ReleaseNotesService as l}from"@equinor/subsurface-app-management";import{RELEASE_NOTE_RICH_TEXT_COLLAPSED_HEIGHT as m}from"./ReleaseNote.constants.js";import{timeToRead as a,usingReleaseNoteDate as n}from"./ReleaseNote.utils.js";import{ToggleExpanded as p}from"./ToggleExpanded.js";import"../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../_virtual/lodash.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"react-router-dom";import"@tanstack/react-query";import"../../atoms/utils/auth_environment.js";import{shape as c}from"../../atoms/style/index.js";import"../../atoms/enums/Errors.js";import"../../atoms/enums/Environment.js";import"../../atoms/enums/Theme.js";import"../../atoms/enums/SpacingsMode.js";import{formatRelativeDateTime as u}from"../../atoms/utils/date.js";import"html2canvas";import"proj4";import{getImagesFromRichText as d}from"../../atoms/utils/richtext.js";import"@equinor/eds-icons";import"../../molecules/AnimatedCheckmark/AnimatedCheckmark.styles.js";import"../../molecules/ApplicationIcon/ApplicationIcon.js";import"../../molecules/Badge/Badge.styles.js";import"../../molecules/Banner/Banner.styles.js";import"../../molecules/Button/Button.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"../../molecules/ProfileAvatar/ProfileAvatar.js";import{RichTextDisplay as j}from"../../molecules/RichTextDisplay/RichTextDisplay.js";import"../../molecules/RichTextEditor/MenuBar/MenuBar.js";import"@tiptap/react";import"../../molecules/RichTextEditor/RichTextEditor.styles.js";import{colors as h}from"../../atoms/style/colors.js";import"../../molecules/Tabs/Tabs.js";import"../../molecules/RichTextEditor/MenuBar/MenuBar.styles.js";import"../../molecules/RichTextEditor/MenuBar/MenuButton.js";import"../../molecules/Search/Search.js";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{spacings as g}from"../../atoms/style/spacings.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"../../molecules/Waves/Waves.styles.js";import{motion as v}from"framer-motion";import{MetaTags as f}from"./MetaTags.js";import x from"styled-components";const y=x.div`
1
+ import{jsxs as e,jsx as o}from"react/jsx-runtime";import{forwardRef as t,useRef as r,useState as i}from"react";import{Typography as s}from"@equinor/eds-core-react";import{ReleaseNotesService as l}from"@equinor/subsurface-app-management";import{RELEASE_NOTE_RICH_TEXT_COLLAPSED_HEIGHT as m}from"./ReleaseNote.constants.js";import{timeToRead as a,usingReleaseNoteDate as n}from"./ReleaseNote.utils.js";import{ToggleExpanded as p}from"./ToggleExpanded.js";import"../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../_virtual/lodash.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"react-router-dom";import"@tanstack/react-query";import"../../atoms/utils/auth_environment.js";import{shape as c}from"../../atoms/style/index.js";import"../../atoms/enums/Errors.js";import"../../atoms/enums/Environment.js";import"../../atoms/enums/Theme.js";import"../../atoms/enums/SpacingsMode.js";import{formatDate as d}from"../../atoms/utils/date.js";import"html2canvas";import"proj4";import{getImagesFromRichText as u}from"../../atoms/utils/richtext.js";import"@equinor/eds-icons";import"../../molecules/AnimatedCheckmark/AnimatedCheckmark.styles.js";import"../../molecules/ApplicationIcon/ApplicationIcon.js";import"../../molecules/Badge/Badge.styles.js";import"../../molecules/Banner/Banner.styles.js";import"../../molecules/Button/Button.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"../../molecules/ProfileAvatar/ProfileAvatar.js";import{RichTextDisplay as j}from"../../molecules/RichTextDisplay/RichTextDisplay.js";import"../../molecules/RichTextEditor/MenuBar/MenuBar.js";import"@tiptap/react";import"../../molecules/RichTextEditor/RichTextEditor.styles.js";import{colors as h}from"../../atoms/style/colors.js";import"../../molecules/Tabs/Tabs.js";import"../../molecules/RichTextEditor/MenuBar/MenuBar.styles.js";import"../../molecules/RichTextEditor/MenuBar/MenuButton.js";import"../../molecules/Search/Search.js";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{spacings as g}from"../../atoms/style/spacings.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"../../molecules/Waves/Waves.styles.js";import{motion as v}from"framer-motion";import{MetaTags as f}from"./MetaTags.js";import y from"styled-components";const x=y.div`
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  padding: ${g.medium};
@@ -16,12 +16,12 @@ import{jsxs as e,jsx as o}from"react/jsx-runtime";import{forwardRef as t,useRef
16
16
  padding-bottom: calc(
17
17
  68px + ${g.medium}
18
18
  ); // Space for the expand button
19
- `,S=x.header`
19
+ `,S=y.header`
20
20
  display: flex;
21
21
  justify-content: space-between;
22
22
  align-items: center;
23
- `,b=x.section`
23
+ `,b=y.section`
24
24
  display: flex;
25
25
  gap: ${g.medium};
26
26
  align-items: center;
27
- `,T=t((({applicationName:t,releaseDate:c,createdDate:g,tags:x,version:T,title:P,body:R,actionMenu:k,startExpanded:E=!1},B)=>{const C=n({releaseDate:c,createdDate:g}),M=r(E?"auto":m),[D,_]=i(E),[A,F]=i(d(R).length>0),w=r(new ResizeObserver((e=>{e.at(0)&&e[0].target.scrollHeight>m&&F(!0)})));return e(y,{ref:B,children:[e(S,{children:[e(b,{children:[o(s,{variant:"caption",color:h.text.static_icons__secondary.rgba,children:t}),e(s,{variant:"overline",color:h.text.static_icons__tertiary.rgba,children:[u(C),T?` ・ ${T}`:""," ・ ",a(R)]})]}),o(f,{tags:x,children:k})]}),o(s,{variant:"h4",children:P}),o(v.div,{ref:e=>{e&&w.current.observe(e)},initial:{height:M.current},animate:{height:D?"auto":m},children:o(j,{value:R,onImageRead:l.getReleaseNoteImage,padding:"none"})}),A&&o(p,{expanded:D,onToggleExpanded:()=>{_((e=>!e)),"auto"===M.current&&(M.current=m)}})]})}));T.displayName="ReleaseNote";export{T as ReleaseNote};
27
+ `,T=t((({applicationName:t,releaseDate:c,createdDate:y,tags:T,version:P,title:R,body:k,actionMenu:B,expanded:E=!1},C)=>{const M=n({releaseDate:c,createdDate:y}),D=r(E?"auto":m),[_,A]=i(E),[w,F]=i(u(k).length>0),N=r(new ResizeObserver((e=>{e.at(0)&&e[0].target.scrollHeight>m&&F(!0)})));return e(x,{ref:C,style:{paddingBottom:_?g.medium:void 0},children:[e(S,{children:[e(b,{children:[o(s,{variant:"caption",color:h.text.static_icons__secondary.rgba,children:t}),e(s,{variant:"overline",color:h.text.static_icons__tertiary.rgba,children:[d(M),P?` ・ ${P}`:""," ・ ",a(k)]})]}),o(f,{tags:T,children:B})]}),o(s,{variant:"h4",children:R}),o(v.div,{ref:e=>{e&&N.current.observe(e)},initial:{height:D.current},animate:{height:_?"auto":m},style:{overflow:_?"auto":void 0},children:o(j,{value:k,onImageRead:l.getReleaseNoteImage,padding:"none"})}),w&&!E&&o(p,{expanded:_,onToggleExpanded:()=>{A((e=>!e))}})]})}));T.displayName="ReleaseNote";export{T as ReleaseNote};
@@ -1,4 +1,4 @@
1
- import{jsx as r}from"react/jsx-runtime";import{forwardRef as o,Children as t}from"react";import{ToggleGroupOption as e}from"./ToggleGroupOption.js";import"../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../_virtual/lodash.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"react-router-dom";import"@tanstack/react-query";import"@equinor/subsurface-app-management";import"../../atoms/utils/auth_environment.js";import{shape as i}from"../../atoms/style/index.js";import"../../atoms/enums/Errors.js";import"../../atoms/enums/Environment.js";import"../../atoms/enums/Theme.js";import"../../atoms/enums/SpacingsMode.js";import"html2canvas";import"proj4";import"@equinor/eds-icons";import s,{css as a}from"styled-components";import{colors as m}from"../../atoms/style/colors.js";const p=s.div`
1
+ import{jsx as r}from"react/jsx-runtime";import{forwardRef as o,Children as t}from"react";import{ToggleGroupOption as e}from"./ToggleGroupOption.js";import"../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../_virtual/lodash.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"react-router-dom";import"@tanstack/react-query";import"@equinor/subsurface-app-management";import"../../atoms/utils/auth_environment.js";import{shape as i}from"../../atoms/style/index.js";import"../../atoms/enums/Errors.js";import"../../atoms/enums/Environment.js";import"../../atoms/enums/Theme.js";import"../../atoms/enums/SpacingsMode.js";import"html2canvas";import"proj4";import"@equinor/eds-icons";import s,{css as a}from"styled-components";import{colors as m}from"../../atoms/style/colors.js";const n=s.div`
2
2
  display: flex;
3
3
  ${({$variant:r})=>"filled"===r?a`
4
4
  border-radius: ${i.button.borderRadius};
@@ -22,4 +22,8 @@ import{jsx as r}from"react/jsx-runtime";import{forwardRef as o,Children as t}fro
22
22
  }
23
23
  }
24
24
  `:void 0}
25
- `,n=o((({variant:o="filled",children:i},s)=>r(p,{ref:s,$variant:o,children:t.map(i,(r=>{if(r.type!=e)throw"Expected child to be ToggleGroupOption!";return r}))})));n.displayName="ToggleGroup";export{n as ToggleGroup};
25
+
26
+ ${({$matchParentHeight:r})=>r?a`
27
+ height: 100%;
28
+ `:""}
29
+ `,p=o((({variant:o="filled",matchParentHeight:i=!1,children:s},a)=>r(n,{ref:a,$variant:o,$matchParentHeight:i,children:t.map(s,(r=>{if(r.type!=e)throw"Expected child to be ToggleGroupOption!";return r}))})));p.displayName="ToggleGroup";export{p as ToggleGroup};
@@ -17,6 +17,7 @@ export type ToggleGroupOption = {
17
17
  */
18
18
  export interface ToggleGroup {
19
19
  variant?: 'filled' | 'outlined' | 'ghost';
20
+ matchParentHeight?: boolean;
20
21
  children: ReactElement<ToggleGroupOption>[];
21
22
  }
22
23
  export {};
@@ -4,7 +4,7 @@ import{jsxs as r,jsx as e}from"react/jsx-runtime";import{forwardRef as a}from"re
4
4
  padding: calc(${s.medium_small} / 2); // 6px in comfortable
5
5
  > span {
6
6
  color: ${c.text.static_icons__tertiary.rgba};
7
- padding: ${s.small} calc(${s.medium_small} / 2);
7
+ padding: ${s.x_small} calc(${s.medium_small} / 2);
8
8
  }
9
9
  > svg {
10
10
  fill: ${c.text.static_icons__tertiary.rgba};
@@ -1,24 +1,8 @@
1
- import { FC, MutableRefObject, ReactElement, ReactNode } from 'react';
2
- import { AccountInfo } from '@azure/msal-common';
1
+ import { FC, ReactElement, ReactNode, RefObject } from 'react';
3
2
  export interface AccountProps {
4
- /**
5
- * @deprecated logout - Not needed anymore
6
- */
7
- logout?: () => void;
8
- /**
9
- * @deprecated account - Not needed anymore
10
- */
11
- account?: AccountInfo | undefined;
12
- /**
13
- * @deprecated photo - Not needed anymore
14
- */
15
- photo?: string | undefined;
16
- /**
17
- * @deprecated roles - Not needed anymore
18
- */
19
- roles?: string[] | undefined;
20
- renderCustomButton?: (buttonRef: MutableRefObject<HTMLButtonElement | null>, handleToggle: () => void) => ReactElement;
3
+ renderCustomButton?: (buttonRef: RefObject<HTMLButtonElement | null>, handleToggle: () => void) => ReactElement;
21
4
  hideRoleChips?: boolean;
5
+ useDisplayNameForRole?: boolean;
22
6
  children?: ReactNode;
23
7
  }
24
8
  export declare const Account: FC<AccountProps>;
@@ -1 +1 @@
1
- import{jsxs as o,Fragment as r,jsx as e}from"react/jsx-runtime";import{useState as t,useRef as i,useCallback as m,useEffect as n,useMemo as s}from"react";import{Typography as p,Button as a,Icon as c}from"@equinor/eds-core-react";import{log_out as u}from"@equinor/eds-icons";import{TopBarMenu as l}from"../TopBarMenu.js";import{useActiveImpersonationUser as d}from"./ImpersonateMenu/hooks/useActiveImpersonationUser.js";import{useCanImpersonate as h}from"./ImpersonateMenu/hooks/useCanImpersonate.js";import{useStopImpersonation as v}from"./ImpersonateMenu/hooks/useStopImpersonation.js";import{ImpersonateMenu as j}from"./ImpersonateMenu/ImpersonateMenu.js";import{Container as f,TextContent as I,RolesContainer as A,RoleChip as E,ButtonWrapper as N}from"./Account.styles.js";import{AccountAvatar as C}from"./AccountAvatar.js";import{AccountButton as T}from"./AccountButton.js";import{ActiveUserImpersonationButton as P}from"./ActiveUserImpersonationButton.js";import{ImpersonateButton as M}from"./ImpersonateButton.js";import"../../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../../_virtual/lodash.js";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";import"react-router-dom";import"@tanstack/react-query";import"@equinor/subsurface-app-management";import{environment as g}from"../../../atoms/utils/auth_environment.js";import"../../../atoms/style/colors.js";import"../../../atoms/enums/Errors.js";import{EnvironmentType as _}from"../../../atoms/enums/Environment.js";import"../../../atoms/enums/Theme.js";import"../../../atoms/enums/SpacingsMode.js";import"html2canvas";import"proj4";import{impersonateUserDtoToFullName as B}from"./ImpersonateMenu/Impersonate.utils.js";const R=({renderCustomButton:R,hideRoleChips:x=!1,children:y})=>{const S=g.getEnvironmentName(import.meta.env.VITE_ENVIRONMENT_NAME),q=g.getApiClientId(import.meta.env.VITE_API_CLIENT_ID),O=g.getAppName(import.meta.env.VITE_NAME),{account:U,roles:b,logout:V}=k(),[D,L]=t(!1),[K,w]=t(!1),z=i(null),{data:F=!0}=h(),{data:G}=d(),{mutate:H}=v(),J=G?B(G):U?.name,Q=G?G.roles:b,W=G?G.uniqueName:U?.username,X=()=>L(!1),Y=m((()=>{L((o=>!o)),w(!1)}),[]),Z=()=>{w(!0),L(!1)};n((()=>{G&&null!=G.appName&&G.appName.toUpperCase()!=O.toUpperCase()&&H()}),[G,O,H]);const $=s((()=>R?R(z,Y):null),[R,Y]);return o(r,{children:[$||e(T,{ref:z,onClick:Y}),o(l,{open:D,title:"Account",onClose:X,anchorEl:z.current,children:[o(f,{children:[G&&e(P,{onClick:Z}),e(C,{}),o(I,{children:[e(p,{variant:"h6",children:J}),e(p,{children:W})]}),Q&&!x&&e(A,{children:Q.map((o=>e(E,{children:o},o)))}),y,F&&S!==_.PRODUCTION&&q&&e(M,{onOpenImpersonateMenu:Z,onClose:X})]}),e(N,{children:o(a,{variant:"ghost",onClick:V,children:[e(c,{data:u}),"Log out"]})})]}),e(j,{open:K,onClose:()=>w(!1),anchorEl:z.current})]})};R.displayName="TopBar.Account";export{R as Account};
1
+ import{jsxs as o,Fragment as r,jsx as e}from"react/jsx-runtime";import{useState as t,useRef as i,useCallback as s,useEffect as m,useMemo as n}from"react";import{Typography as p,Button as a,Icon as u}from"@equinor/eds-core-react";import{log_out as c}from"@equinor/eds-icons";import{TopBarMenu as l}from"../TopBarMenu.js";import{useActiveImpersonationUser as d}from"./ImpersonateMenu/hooks/useActiveImpersonationUser.js";import{useCanImpersonate as h}from"./ImpersonateMenu/hooks/useCanImpersonate.js";import{useMappedRoles as v}from"./ImpersonateMenu/hooks/useMappedRoles.js";import{useStopImpersonation as j}from"./ImpersonateMenu/hooks/useStopImpersonation.js";import{ImpersonateMenu as f}from"./ImpersonateMenu/ImpersonateMenu.js";import{Container as I,TextContent as N,RolesContainer as A,RoleChip as E,ButtonWrapper as C}from"./Account.styles.js";import{AccountAvatar as T}from"./AccountAvatar.js";import{AccountButton as M}from"./AccountButton.js";import{ActiveUserImpersonationButton as P}from"./ActiveUserImpersonationButton.js";import{ImpersonateButton as k}from"./ImpersonateButton.js";import"../../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../../_virtual/lodash.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"react-router-dom";import"@tanstack/react-query";import"@equinor/subsurface-app-management";import{environment as g}from"../../../atoms/utils/auth_environment.js";import"../../../atoms/style/colors.js";import"../../../atoms/enums/Errors.js";import{EnvironmentType as _}from"../../../atoms/enums/Environment.js";import"../../../atoms/enums/Theme.js";import"../../../atoms/enums/SpacingsMode.js";import"html2canvas";import"proj4";import{impersonateUserDtoToFullName as y}from"./ImpersonateMenu/Impersonate.utils.js";const B=({renderCustomButton:B,hideRoleChips:x=!1,useDisplayNameForRole:S=!1,children:b})=>{const q=g.getEnvironmentName(import.meta.env.VITE_ENVIRONMENT_NAME),O=g.getApiClientId(import.meta.env.VITE_API_CLIENT_ID),U=g.getAppName(import.meta.env.VITE_NAME),{account:V,roles:D,logout:L}=R(),[F,K]=t(!1),[w,z]=t(!1),G=i(null),{data:H=!0}=h(),{data:J}=d(),{mutate:Q}=j(),W=v(J?J.roles:D??[],S),X=J?y(J):V?.name,Y=J?J.uniqueName:V?.username,Z=()=>K(!1),$=s((()=>{K((o=>!o)),z(!1)}),[]),oo=()=>{z(!0),K(!1)};m((()=>{J&&null!=J.appName&&J.appName.toUpperCase()!=U.toUpperCase()&&Q()}),[J,U,Q]);const ro=n((()=>B?B(G,$):null),[B,$]);return o(r,{children:[ro||e(M,{ref:G,onClick:$}),o(l,{open:F,title:"Account",onClose:Z,anchorEl:G.current,children:[o(I,{children:[J&&e(P,{onClick:oo}),e(T,{}),o(N,{children:[e(p,{variant:"h6",children:X}),e(p,{children:Y})]}),W&&!x&&e(A,{children:W.map((o=>e(E,{children:o.label},o.value)))}),b,H&&q!==_.PRODUCTION&&O&&e(k,{onOpenImpersonateMenu:oo,onClose:Z})]}),e(C,{children:o(a,{variant:"ghost",onClick:L,children:[e(u,{data:c}),"Log out"]})})]}),e(f,{open:w,onClose:()=>z(!1),anchorEl:G.current})]})};B.displayName="TopBar.Account";export{B as Account};
@@ -1 +1 @@
1
- import{jsxs as e,jsx as o}from"react/jsx-runtime";import{useState as t,useEffect as l,useMemo as s}from"react";import{Button as i,Icon as r,Typography as m,DotProgress as a}from"@equinor/eds-core-react";import{arrow_back as n}from"@equinor/eds-icons";import{useAllAppRoles as c}from"../hooks/useAllAppRoles.js";import{useCreateImpersonation as p}from"../hooks/useCreateImpersonation.js";import{useEditImpersonation as u}from"../hooks/useEditImpersonation.js";import{Header as d}from"../Impersonate.styles.js";import{Container as j,Section as h}from"./CreateOrEditUser.styles.js";import{usePrevious as v}from"../../../../../atoms/hooks/usePrevious.js";import{environment as g}from"../../../../../atoms/utils/auth_environment.js";import"../../../../../molecules/AnimatedCheckmark/AnimatedCheckmark.styles.js";import"../../../../../molecules/ApplicationIcon/ApplicationIcon.js";import"../../../../../molecules/Badge/Badge.styles.js";import"../../../../../molecules/Banner/Banner.styles.js";import"../../../../../molecules/Button/Button.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"../../../../../atoms/style/colors.js";import"html2canvas";import"proj4";import"../../../../../molecules/RichTextEditor/RichTextEditor.types.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"../../../../../molecules/ProfileAvatar/ProfileAvatar.js";import"@tiptap/react";import"../../../../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../../../../molecules/RichTextEditor/RichTextEditor.styles.js";import"../../../../../molecules/RichTextEditor/MenuBar/MenuBar.js";import"@tanstack/react-query";import"../../../../../molecules/Tabs/Tabs.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"../../../../../_virtual/lodash.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{ComboBox as C}from"../../../../../molecules/Select/ComboBox/ComboBox.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"../../../../../molecules/Waves/Waves.styles.js";import"framer-motion";import{TextField as S}from"../../../../../molecules/TextField/TextField.js";const f=({editingUser:f,onBack:k})=>{const y=v(f),[A,E]=t([]),[x,B]=t(""),[N,T]=t(""),[b,F]=t(""),{data:P,isLoading:R}=c();l((()=>{!f||void 0!==y&&y.uniqueName===f.uniqueName||(E(f.roles.map((e=>({value:e,label:e})))),B(f.firstName),T(f.lastName),F(f.email??""))}),[f,y]);const M=s((()=>P?.map((e=>({value:e.value,label:e.value})))??[]),[P]),{mutateAsync:q,isPending:I}=p(),{mutateAsync:w,isPending:L}=u(),D=I||L,O=s((()=>""===x||""===N||0===A.length),[x,N,A.length]);return e(j,{children:[e(d,{children:[o(i,{variant:"ghost_icon",onClick:k,children:o(r,{data:n})}),o(m,{variant:"h6",children:f?"Edit user":"Create new user"})]}),e(h,{children:[o(S,{id:"first-name",label:"First name",placeholder:"Add first name...",value:x,onChange:e=>{B(e.target.value)}}),o(S,{id:"last-name",label:"Last name",placeholder:"Add last name...",value:N,onChange:e=>{T(e.target.value)}}),o(S,{id:"email",label:"E-mail",placeholder:"Add e-mail...",meta:"Optional",value:b,onChange:e=>{F(e.target.value)}})]}),e(h,{children:[o(m,{variant:"label",group:"navigation",children:"Roles"}),R&&o(a,{color:"primary"}),o(C,{placeholder:"Select roles...",values:A,onSelect:e=>{E(e)},items:M})]}),e(h,{children:[o(i,{variant:"outlined",onClick:k,children:"Cancel"}),o(i,D?{children:o(a,{})}:{onClick:async()=>{f?(await w({id:f.id,firstName:x,lastName:N,email:""!==b?b:void 0,roles:A.map((e=>e.value)).sort(),uniqueName:f.uniqueName,appName:f.appName,activeUsers:[]}),k()):(await q({firstName:x,lastName:N,email:""!==b?b:void 0,roles:A.map((e=>e.value)).sort(),uniqueName:`${x}.${N}`.toLowerCase(),appName:g.getAppName(import.meta.env.VITE_NAME),activeUsers:[]}),k())},disabled:O,children:f?"Save":"Create"})]})]})};export{f as CreateOrEditUser};
1
+ import{jsxs as e,jsx as o}from"react/jsx-runtime";import{useRef as t,useState as l,useEffect as s,useMemo as r}from"react";import{Button as i,Icon as a,Typography as m,DotProgress as n}from"@equinor/eds-core-react";import{arrow_back as c}from"@equinor/eds-icons";import{useCreateImpersonation as p}from"../hooks/useCreateImpersonation.js";import{useEditImpersonation as u}from"../hooks/useEditImpersonation.js";import{Header as d}from"../Impersonate.styles.js";import{Container as j,Section as h}from"./CreateOrEditUser.styles.js";import{environment as v}from"../../../../../atoms/utils/auth_environment.js";import"../../../../../molecules/AnimatedCheckmark/AnimatedCheckmark.styles.js";import"../../../../../molecules/ApplicationIcon/ApplicationIcon.js";import"../../../../../molecules/Badge/Badge.styles.js";import"../../../../../molecules/Banner/Banner.styles.js";import"../../../../../molecules/Button/Button.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"../../../../../atoms/style/colors.js";import"html2canvas";import"proj4";import"../../../../../molecules/RichTextEditor/RichTextEditor.types.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"../../../../../molecules/ProfileAvatar/ProfileAvatar.js";import"@tiptap/react";import"../../../../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../../../../molecules/RichTextEditor/RichTextEditor.styles.js";import"../../../../../molecules/RichTextEditor/MenuBar/MenuBar.js";import"@tanstack/react-query";import"../../../../../molecules/Tabs/Tabs.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"../../../../../_virtual/lodash.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{ComboBox as g}from"../../../../../molecules/Select/ComboBox/ComboBox.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"../../../../../molecules/Waves/Waves.styles.js";import"framer-motion";import{TextField as C}from"../../../../../molecules/TextField/TextField.js";import{useAllAppRoles as S}from"../hooks/useAllAppRoles.js";const f=({editingUser:f,onBack:y})=>{const k=t(!1),[A,E]=l([]),[x,B]=l(""),[N,T]=l(""),[b,F]=l(""),{data:R,isLoading:P}=S();s((()=>{f&&R&&!k.current&&(k.current=!0,E(f.roles.map((e=>{const o=R.find((o=>o.value===e));return o?{value:e,label:o.displayName}:{value:e,label:e}}))),B(f.firstName),T(f.lastName),F(f.email??""))}),[R,f,k]);const M=r((()=>R?.map((e=>({value:e.value,label:e.displayName})))??[]),[R]),{mutateAsync:I,isPending:q}=p(),{mutateAsync:w,isPending:L}=u(),D=q||L,O=r((()=>""===x||""===N||0===A.length),[x,N,A.length]);return e(j,{children:[e(d,{children:[o(i,{variant:"ghost_icon",onClick:y,children:o(a,{data:c})}),o(m,{variant:"h6",children:f?"Edit user":"Create new user"})]}),e(h,{children:[o(C,{id:"first-name",label:"First name",placeholder:"Add first name...",value:x,onChange:e=>{B(e.target.value)}}),o(C,{id:"last-name",label:"Last name",placeholder:"Add last name...",value:N,onChange:e=>{T(e.target.value)}}),o(C,{id:"email",label:"E-mail",placeholder:"Add e-mail...",meta:"Optional",value:b,onChange:e=>{F(e.target.value)}})]}),e(h,{children:[o(m,{variant:"label",group:"navigation",children:"Roles"}),P&&o(n,{color:"primary"}),o(g,{placeholder:"Select roles...",values:A,onSelect:e=>{E(e)},items:M})]}),e(h,{children:[o(i,{variant:"outlined",onClick:y,children:"Cancel"}),o(i,D?{children:o(n,{})}:{onClick:async()=>{f?(await w({id:f.id,firstName:x,lastName:N,email:""!==b?b:void 0,roles:A.map((e=>e.value)).sort(),uniqueName:f.uniqueName,appName:f.appName,activeUsers:[]}),y()):(await I({firstName:x,lastName:N,email:""!==b?b:void 0,roles:A.map((e=>e.value)).sort(),uniqueName:`${x}.${N}`.toLowerCase(),appName:v.getAppName(import.meta.env.VITE_NAME),activeUsers:[]}),y())},disabled:O,children:f?"Save":"Create"})]})]})};export{f as CreateOrEditUser};
@@ -1,4 +1,4 @@
1
- import{jsxs as e,Fragment as t,jsx as r}from"react/jsx-runtime";import{useState as i,useRef as o}from"react";import{Icon as n,Typography as l,Button as a,Menu as s}from"@equinor/eds-core-react";import{account_circle as c,check as d,more_horizontal as m,edit as g,delete_to_trash as p}from"@equinor/eds-icons";import{Container as h,RoleChipContainer as u,RoleChip as f}from"./UserImpersonation.styles.js";import{colors as _}from"../../../../atoms/style/colors.js";import{ListItem as b}from"../../../../molecules/ListItem/ListItem.js";import{OptionalTooltip as v}from"../../../../molecules/OptionalTooltip/OptionalTooltip.js";import{impersonateUserDtoToFullName as C}from"./Impersonate.utils.js";import j from"styled-components";const k=j(b)`
1
+ import{jsxs as e,Fragment as t,jsx as r}from"react/jsx-runtime";import{useState as i,useRef as o}from"react";import{Icon as l,Typography as n,Button as a,Menu as s}from"@equinor/eds-core-react";import{account_circle as c,check as d,more_horizontal as m,edit as g,delete_to_trash as p}from"@equinor/eds-icons";import{useMappedRoles as h}from"./hooks/useMappedRoles.js";import{Container as u,RoleChipContainer as f,RoleChip as b}from"./UserImpersonation.styles.js";import{colors as _}from"../../../../atoms/style/colors.js";import{ListItem as v}from"../../../../molecules/ListItem/ListItem.js";import{OptionalTooltip as C}from"../../../../molecules/OptionalTooltip/OptionalTooltip.js";import{impersonateUserDtoToFullName as j}from"./Impersonate.utils.js";import k from"styled-components";const $=k(v)`
2
2
  svg {
3
3
  fill: ${_.interactive.danger__resting.rgba};
4
4
  }
@@ -13,4 +13,4 @@ import{jsxs as e,Fragment as t,jsx as r}from"react/jsx-runtime";import{useState
13
13
  &:hover:not(:disabled) {
14
14
  background: ${_.interactive.danger__highlight.rgba};
15
15
  }
16
- `,$=({firstName:j,lastName:$,uniqueName:y,roles:N,activeUsers:x,selected:I,onClick:q,onEdit:E,onDelete:D})=>{const[L,O]=i(!1),T=o(null),U=C({firstName:j,lastName:$}),w=[...N].sort(),z=()=>O(!1);return e(t,{children:[e(h,{$selected:I,onClick:e=>{e.target!==T.current&&q(y)},"data-testid":"impersonation-user",children:[r(n,{color:_.text.static_icons__tertiary.rgba,data:c}),r(l,{"data-testid":"name",children:U}),e(u,{$selected:I,children:[r(f,{"data-testid":"role",children:w[0]}),w.length>1&&r(v,{title:w.slice(1).join(", "),children:r(f,{"data-testid":"additional-roles",children:"+"+(w.length-1)})})]}),I&&r(n,{data:d,color:_.interactive.primary__resting.rgba}),r(a,{variant:"ghost_icon",ref:T,onClick:()=>O((e=>!e)),children:r(n,{data:m})})]}),L&&e(s,{open:!0,anchorEl:T.current,placement:"right-start",onClose:z,children:[r(b,{label:"Edit user",onClick:()=>{E(y),z()},leadingContent:g}),r(v,{title:x.length>0?"Cannot delete user with active sessions":void 0,children:r(k,{label:"Delete user",onClick:()=>{D(y),z()},disabled:x.length>0,leadingContent:p})})]})]})};export{$ as UserImpersonation};
16
+ `,y=({firstName:k,lastName:y,uniqueName:N,roles:x,activeUsers:I,selected:q,onClick:E,onEdit:D,onDelete:L})=>{const[O,T]=i(!1),U=o(null),w=j({firstName:k,lastName:y}),M=h(x),R=()=>T(!1);return e(t,{children:[e(u,{$selected:q,onClick:e=>{e.target!==U.current&&E(N)},"data-testid":"impersonation-user",children:[r(l,{color:_.text.static_icons__tertiary.rgba,data:c}),r(n,{"data-testid":"name",children:w}),e(f,{$selected:q,children:[r(b,{"data-testid":"role",children:M[0].label}),M.length>1&&r(C,{title:M.slice(1).join(", "),children:r(b,{"data-testid":"additional-roles",children:"+"+(M.length-1)})})]}),q&&r(l,{data:d,color:_.interactive.primary__resting.rgba}),r(a,{variant:"ghost_icon",ref:U,onClick:()=>T((e=>!e)),children:r(l,{data:m})})]}),O&&e(s,{open:!0,anchorEl:U.current,placement:"right-start",onClose:R,children:[r(v,{label:"Edit user",onClick:()=>{D(N),R()},leadingContent:g}),r(C,{title:I.length>0?"Cannot delete user with active sessions":void 0,children:r($,{label:"Delete user",onClick:()=>{L(N),R()},disabled:I.length>0,leadingContent:p})})]})]})};export{y as UserImpersonation};
@@ -1 +1 @@
1
- export declare function useAllAppRoles(): import("@tanstack/react-query").UseQueryResult<import("@equinor/subsurface-app-management/dist/api/models/GraphAppRole").GraphAppRole[], Error>;
1
+ export declare function useAllAppRoles(enabled?: boolean): import("@tanstack/react-query").UseQueryResult<import("@equinor/subsurface-app-management/dist/api/models/GraphAppRole").GraphAppRole[], Error>;
@@ -1 +1 @@
1
- import{AmplifyApplicationService as t}from"@equinor/subsurface-app-management";import{useQuery as e}from"@tanstack/react-query";import{AVAILABLE_ROLES as r}from"../Impersonate.constants.js";import{environment as o}from"../../../../../atoms/utils/auth_environment.js";function n(){return e({queryKey:[r],queryFn:()=>t.getAllAppRoles(o.getApiClientId(import.meta.env.VITE_API_CLIENT_ID))})}export{n as useAllAppRoles};
1
+ import{AmplifyApplicationService as e}from"@equinor/subsurface-app-management";import{useQuery as t}from"@tanstack/react-query";import{AVAILABLE_ROLES as r}from"../Impersonate.constants.js";import{environment as m}from"../../../../../atoms/utils/auth_environment.js";function n(n=!0){return t({queryKey:[r],queryFn:()=>e.getAllAppRoles(m.getApiClientId(import.meta.env.VITE_API_CLIENT_ID)),enabled:n,staleTime:1/0,gcTime:1/0})}export{n as useAllAppRoles};
@@ -0,0 +1,4 @@
1
+ export declare function useMappedRoles(roles: string[], enabled?: boolean): {
2
+ value: string;
3
+ label: string;
4
+ }[];
@@ -0,0 +1 @@
1
+ import{useMemo as e}from"react";import{useAllAppRoles as a}from"./useAllAppRoles.js";function l(l,t=!0){const{data:o=[]}=a(t);return e((()=>l.toSorted().map((e=>{const a=o.find((a=>a.value===e));return a?{value:a.value,label:a.displayName}:{value:e,label:e}}))),[o,l])}export{l as useMappedRoles};
@@ -1 +1 @@
1
- import{jsxs as e,jsx as o,Fragment as t}from"react/jsx-runtime";import{CircularProgress as s}from"@equinor/eds-core-react";import{useReleaseNotesQuery as r,ReleaseNotesService as i}from"@equinor/subsurface-app-management";import{Header as l}from"./Header/Header.js";import{StyledDialog as m,LoadingWrapper as p,AllReleaseNotesWrapper as n}from"./ReleaseNotesDialog.styles.js";import"react";import"../../../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../../../_virtual/lodash.js";import"../../Notifications/NotificationProvider.js";import"../../../../providers/AuthProvider/AuthProvider.js";import{useReleaseNotes as a}from"../../../../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"react-router-dom";import{usePrefetchRichTextImages as c}from"../../../../atoms/hooks/usePrefetchRichTextImages.js";import"@tanstack/react-query";import"../../../../atoms/utils/auth_environment.js";import"../../../../atoms/style/colors.js";import"../../../../atoms/enums/Errors.js";import"../../../../atoms/enums/Environment.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"../../../../molecules/Banner/Banner.styles.js";import{Button as u}from"../../../../molecules/Button/Button.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"../../../../molecules/ProfileAvatar/ProfileAvatar.js";import"@tiptap/react";import"../../../../molecules/RichTextEditor/RichTextEditor.styles.js";import"../../../../molecules/RichTextEditor/MenuBar/MenuBar.js";import"../../../../molecules/Tabs/Tabs.js";import"../../../../molecules/RichTextEditor/MenuBar/MenuBar.styles.js";import"../../../../molecules/RichTextEditor/MenuBar/MenuButton.js";import"../../../../molecules/Search/Search.js";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"../../../../molecules/Waves/Waves.styles.js";import"framer-motion";import{ReleaseNote as d}from"../../../ReleaseNote/ReleaseNote.js";import{Status as j}from"../../../Status/index.js";const h=({enabled:h})=>{const{setOpen:S,open:v,mostRecentReleaseNote:g,showAllReleaseNotesLink:f}=a(),{isLoading:P}=r({enabled:h}),{isPrefetching:R}=c({richTextValues:g?.body?[g.body]:[],onImageRead:i.getReleaseNoteImage});return e(m,{open:v,onClose:()=>{S(!1)},isDismissable:!0,children:[o(l,{}),P||R?o(p,{children:o(s,{})}):g?e(t,{children:[o(d,{...g,startExpanded:!0}),o(n,{children:o(u,{variant:"ghost",href:f,target:"_blank",children:"See all release notes in SAM"})})]}):e(j,{children:[o(j.Title,{title:"No published release notes"}),o(j.Description,{text:"This application has no published release notes yet."})]})]})};export{h as ReleaseNotesDialog};
1
+ import{jsxs as e,jsx as o,Fragment as t}from"react/jsx-runtime";import{CircularProgress as s}from"@equinor/eds-core-react";import{useReleaseNotesQuery as r,ReleaseNotesService as i}from"@equinor/subsurface-app-management";import{Header as l}from"./Header/Header.js";import{StyledDialog as m,LoadingWrapper as p,AllReleaseNotesWrapper as n}from"./ReleaseNotesDialog.styles.js";import"react";import"../../../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../../../_virtual/lodash.js";import"../../Notifications/NotificationProvider.js";import"../../../../providers/AuthProvider/AuthProvider.js";import{useReleaseNotes as a}from"../../../../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"react-router-dom";import{usePrefetchRichTextImages as c}from"../../../../atoms/hooks/usePrefetchRichTextImages.js";import"@tanstack/react-query";import"../../../../atoms/utils/auth_environment.js";import"../../../../atoms/style/colors.js";import"../../../../atoms/enums/Errors.js";import"../../../../atoms/enums/Environment.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"../../../../molecules/Banner/Banner.styles.js";import{Button as u}from"../../../../molecules/Button/Button.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"../../../../molecules/ProfileAvatar/ProfileAvatar.js";import"@tiptap/react";import"../../../../molecules/RichTextEditor/RichTextEditor.styles.js";import"../../../../molecules/RichTextEditor/MenuBar/MenuBar.js";import"../../../../molecules/Tabs/Tabs.js";import"../../../../molecules/RichTextEditor/MenuBar/MenuBar.styles.js";import"../../../../molecules/RichTextEditor/MenuBar/MenuButton.js";import"../../../../molecules/Search/Search.js";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"../../../../molecules/Waves/Waves.styles.js";import"framer-motion";import{ReleaseNote as d}from"../../../ReleaseNote/ReleaseNote.js";import{Status as j}from"../../../Status/index.js";const h=({enabled:h})=>{const{setOpen:S,open:v,mostRecentReleaseNote:g,showAllReleaseNotesLink:f}=a(),{isLoading:P}=r({enabled:h}),{isPrefetching:R}=c({richTextValues:g?.body?[g.body]:[],onImageRead:i.getReleaseNoteImage});return e(m,{open:v,onClose:()=>{S(!1)},isDismissable:!0,children:[o(l,{}),P||R?o(p,{children:o(s,{})}):g?e(t,{children:[o(d,{...g,expanded:!0}),o(n,{children:o(u,{variant:"ghost",href:f,target:"_blank",children:"See all release notes in SAM"})})]}):e(j,{children:[o(j.Title,{title:"No published release notes"}),o(j.Description,{text:"This application has no published release notes yet."})]})]})};export{h as ReleaseNotesDialog};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@equinor/amplify-component-lib",
3
- "version": "9.8.3",
3
+ "version": "9.9.0",
4
4
  "description": "Frontend Typescript components for the Amplify team",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",