@equinor/amplify-component-lib 9.16.1-beta.0 → 9.16.1
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.
- package/dist/atoms/hooks/useFaqsInApplication.js +1 -1
- package/dist/atoms/hooks/useLocalStorage.d.ts +2 -2
- package/dist/atoms/hooks/usePrefetchRichTextImages.js +1 -1
- package/dist/atoms/hooks/useRichTextImage.js +1 -1
- package/dist/atoms/hooks/useSearchParameter.d.ts +12 -0
- package/dist/atoms/hooks/useSearchParameter.js +1 -0
- package/dist/atoms/hooks/useSelect.js +1 -1
- package/dist/atoms/index.d.ts +1 -0
- package/dist/atoms/index.js +1 -1
- package/dist/atoms/utils/auth_environment.js +1 -1
- package/dist/atoms/utils/date.js +1 -1
- package/dist/atoms/utils/map.js +1 -1
- package/dist/atoms/utils/size.js +1 -1
- package/dist/atoms/utils/url.js +1 -1
- package/dist/deprecated/IconToggleButton.js +1 -1
- package/dist/deprecated/OldStepper/OldStepLine.js +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.js +1 -1
- package/dist/molecules/ApplicationIcon/ApplicationIconBase.js +1 -1
- package/dist/molecules/Badge/Badge.styles.js +1 -1
- package/dist/molecules/Button/Button.js +1 -1
- package/dist/molecules/Chip/Chip.d.ts +2 -2
- package/dist/molecules/Chip/Chip.styles.js +1 -1
- package/dist/molecules/ContentMenu/ContentMenu.js +1 -1
- package/dist/molecules/DatePicker/DatePicker.d.ts +3 -3
- package/dist/molecules/DateRangePicker/DateRangePicker.d.ts +3 -3
- package/dist/molecules/Dialog/Dialog.d.ts +2 -2
- package/dist/molecules/EquinorLogo/EquinorLogo.d.ts +2 -2
- package/dist/molecules/FileProgress/CompactFileProgress.js +1 -1
- package/dist/molecules/FileProgress/FileProgress.utils.js +1 -1
- package/dist/molecules/FileProgress/RegularFileProgress.js +1 -1
- package/dist/molecules/IconCell/IconCell.d.ts +2 -2
- package/dist/molecules/IconCell/IconCell.utils.js +1 -1
- package/dist/molecules/InfoElement/CopyText.js +1 -1
- package/dist/molecules/ListItem/ListItem.d.ts +2 -2
- package/dist/molecules/OptionDrawer/OptionDrawer.utils.js +1 -1
- package/dist/molecules/OptionalTooltip/OptionalTooltip.d.ts +4 -4
- package/dist/molecules/ProfileAvatar/ProfileAvatar.d.ts +2 -2
- package/dist/molecules/ProfileAvatar/ProfileAvatar.js +1 -1
- package/dist/molecules/RichTextEditor/MenuBar/AddImageButton.js +1 -1
- package/dist/molecules/RichTextEditor/MenuBar/MenuBar.d.ts +6 -6
- package/dist/molecules/RichTextEditor/MenuBar/Table/TableColumn.js +1 -1
- package/dist/molecules/RichTextEditor/MenuBar/Table/TableMerge.js +1 -1
- package/dist/molecules/RichTextEditor/MenuBar/Table/TableRow.js +1 -1
- package/dist/molecules/RichTextEditor/MenuBar/Table/ToggleTable.js +1 -1
- package/dist/molecules/RichTextEditor/MenuBar/TextColor.js +1 -1
- package/dist/molecules/RichTextEditor/custom-extensions/ExtendedImage.js +1 -1
- package/dist/molecules/RichTextEditor/index.d.ts +3 -3
- package/dist/molecules/Search/Search.d.ts +2 -2
- package/dist/molecules/Select/AddTagItem.js +1 -1
- package/dist/molecules/Select/Select.styles.d.ts +4 -4
- package/dist/molecules/Select/SelectMenuItem.js +1 -1
- package/dist/molecules/SelectionControls/Checkbox/Checkbox.d.ts +2 -2
- package/dist/molecules/SelectionControls/Radio/Radio.d.ts +2 -2
- package/dist/molecules/SelectionControls/Switch/Switch.d.ts +2 -2
- package/dist/molecules/Sieve/Filter.d.ts +10 -0
- package/dist/molecules/Sieve/Filter.js +1 -0
- package/dist/molecules/Sieve/Sieve.d.ts +7 -0
- package/dist/molecules/Sieve/Sieve.js +1 -0
- package/dist/molecules/Sieve/Sieve.styles.js +43 -0
- package/dist/molecules/Sieve/Sieve.types.d.ts +28 -0
- package/dist/molecules/Sieve/Sort.js +1 -0
- package/dist/molecules/Skeleton/SkeletonBase/SkeletonBase.d.ts +2 -2
- package/dist/molecules/Stepper/Step/Step.js +1 -1
- package/dist/molecules/Stepper/Stepper.js +1 -1
- package/dist/molecules/Waves/Waves.js +1 -1
- package/dist/molecules/index.d.ts +3 -0
- package/dist/molecules/index.js +1 -1
- package/dist/organisms/Faq/Category/Category.js +2 -2
- package/dist/organisms/Faq/Category/Question.js +1 -1
- package/dist/organisms/Faq/Faq.js +1 -1
- package/dist/organisms/Faq/Header.js +2 -2
- package/dist/organisms/FieldSelector/FieldSelector.js +1 -1
- package/dist/organisms/Filter/ButtonWithMenu.js +1 -1
- package/dist/organisms/ReleaseNote/ReleaseNote.d.ts +3 -3
- package/dist/organisms/ReleaseNote/ReleaseNote.js +1 -1
- package/dist/organisms/ReleaseNote/ReleaseNote.utils.js +1 -1
- package/dist/organisms/SideBar/MenuItem/BasicMenuItem.js +1 -1
- package/dist/organisms/SideBar/MenuItem/CollapsableMenuItem.js +1 -1
- package/dist/organisms/SideBar/MenuItem/MenuItem.styles.js +1 -1
- package/dist/organisms/SideBar/MenuItem/MenuItem.utils.js +1 -1
- package/dist/organisms/SideBar/SideBar.d.ts +2 -2
- package/dist/organisms/Status/Action.d.ts +2 -2
- package/dist/organisms/Status/Description.d.ts +2 -2
- package/dist/organisms/Status/MissingAccesses.d.ts +2 -2
- package/dist/organisms/Status/Title.d.ts +2 -2
- package/dist/organisms/Status/collections/BadRequest.js +2 -2
- package/dist/organisms/Status/collections/GenericError.js +1 -1
- package/dist/organisms/Status/collections/MissingAccessToApp.js +1 -1
- package/dist/organisms/Status/collections/MissingPermissions.js +1 -1
- package/dist/organisms/Status/collections/PageNotFound.js +2 -2
- package/dist/organisms/Status/collections/ServerError.js +2 -2
- package/dist/organisms/TableOfContents/TableOfContents.styles.js +1 -1
- package/dist/organisms/Template/Template.d.ts +3 -3
- package/dist/organisms/ToggleGroup/ToggleGroup.d.ts +2 -2
- package/dist/organisms/ToggleGroup/ToggleGroupOption.d.ts +2 -2
- package/dist/organisms/TopBar/Account/ImpersonateButton.js +1 -1
- package/dist/organisms/TopBar/Account/ImpersonateMenu/Actions.js +1 -1
- package/dist/organisms/TopBar/Account/ImpersonateMenu/CreateOrEditUser/CreateOrEditUser.js +1 -1
- package/dist/organisms/TopBar/Account/ImpersonateMenu/DeleteUser/DeleteUser.js +1 -1
- package/dist/organisms/TopBar/Account/ImpersonateMenu/ImpersonateMenu.js +1 -1
- package/dist/organisms/TopBar/Actions.d.ts +2 -2
- package/dist/organisms/TopBar/FieldMenu/FieldMenu.d.ts +2 -2
- package/dist/organisms/TopBar/Guidelines/Colorbox.d.ts +2 -2
- package/dist/organisms/TopBar/Resources/Feedback/Feedback.utils.js +2 -2
- package/dist/organisms/TopBar/Resources/Feedback/FeedbackForm/FeedbackForm.js +1 -1
- package/dist/organisms/TopBar/Resources/Feedback/FeedbackForm/Severity.js +1 -1
- package/dist/organisms/TopBar/Resources/Feedback/FeedbackForm/UploadFile/ImageFile.js +1 -1
- package/dist/organisms/TopBar/Resources/Feedback/FeedbackForm/UploadFile/UploadFile.js +1 -1
- package/dist/organisms/TopBar/Resources/Feedback/FeedbackForm/Url.js +1 -1
- package/dist/organisms/TopBar/Resources/Feedback/ResponsePage/ResponsePage.js +1 -1
- package/dist/organisms/TopBar/Resources/Feedback/ResponsePage/ResponseStatus.js +1 -1
- package/dist/organisms/TopBar/Resources/ReleaseNotesDialog/Header/Header.js +1 -1
- package/dist/organisms/TopBar/Resources/ReleaseNotesDialog/ReleaseNotesDialog.js +1 -1
- package/dist/organisms/TopBar/TopBar.styles.js +1 -1
- package/dist/organisms/TopBar/Tutorials/TutorialItem.js +1 -1
- package/dist/providers/AuthProvider/AuthProviderInner.js +1 -1
- package/dist/providers/ReleaseNotesProvider.js +1 -1
- package/dist/providers/SideBarProvider.js +1 -1
- package/dist/providers/StepperProvider.js +1 -1
- package/dist/providers/TableOfContentsProvider.js +1 -1
- package/dist/providers/ThemeProvider/ThemeProvider.js +1 -1
- package/dist/providers/TutorialHighlightingProvider/TutorialHighlightingProviderInner.js +1 -1
- package/package.json +9 -5
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react108 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:
|
|
12
|
+
declare const MissingAccesses: react108.ForwardRefExoticComponent<MissingAccessesProps & react108.RefAttributes<HTMLDivElement>>;
|
|
13
13
|
//#endregion
|
|
14
14
|
export { MissingAccesses };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react110 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:
|
|
7
|
+
declare const Title: react110.ForwardRefExoticComponent<TitleProps & react110.RefAttributes<HTMLHeadingElement>>;
|
|
8
8
|
//#endregion
|
|
9
9
|
export { Title };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{Status as e}from"../index.js";import{jsx as t,jsxs as n}from"react/jsx-runtime";import{
|
|
1
|
+
import{Status as e}from"../index.js";import{jsx as t,jsxs as n}from"react/jsx-runtime";import{useNavigate as r}from"react-router";const i=()=>{let i=r(),a=()=>{i(-1)};return n(e,{color:`#AB9067`,children:[t(e.Title,{title:`Bad request`}),t(e.Description,{text:`We encountered some confusion regarding your request.
|
|
2
2
|
Please try again later, or if the issue persists, kindly report
|
|
3
|
-
it using the feedback form located in the top bar.`}),t(e.Action,{onClick:
|
|
3
|
+
it using the feedback form located in the top bar.`}),t(e.Action,{onClick:a})]})};export{i as BadRequest};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Status as e}from"../index.js";import{jsx as t,jsxs as n}from"react/jsx-runtime";import{
|
|
1
|
+
import{Status as e}from"../index.js";import{jsx as t,jsxs as n}from"react/jsx-runtime";import{useNavigate as r}from"react-router";const i=()=>{let i=r(),a=()=>{i(-1)};return n(e,{children:[t(e.Title,{}),t(e.Description,{}),t(e.Action,{onClick:a})]})};export{i as GenericError};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{environment as e}from"../../../atoms/utils/auth_environment.js";import{Status as t}from"../index.js";import{jsx as n,jsxs as r}from"react/jsx-runtime";const i=()=>{let i=e.getAppName(import.meta.env.VITE_NAME);return r(t,{children:[n(t.Title,{title:`You don't have access to ${i}`}),n(t.Description,{text:`You can apply for acces to the app in AccessIT`}),n(t.Action,{onClick:
|
|
1
|
+
import{environment as e}from"../../../atoms/utils/auth_environment.js";import{Status as t}from"../index.js";import{jsx as n,jsxs as r}from"react/jsx-runtime";const i=()=>{let i=e.getAppName(import.meta.env.VITE_NAME),a=()=>{window.open(`https://accessit.equinor.com/Search/Search?term=${encodeURIComponent(i)}`,`_blank`)};return r(t,{children:[n(t.Title,{title:`You don't have access to ${i}`}),n(t.Description,{text:`You can apply for acces to the app in AccessIT`}),n(t.Action,{onClick:a,buttonText:`Apply for access`})]})};export{i as MissingAccessToApp};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Status as e}from"../index.js";import{jsx as t,jsxs as n}from"react/jsx-runtime";import{
|
|
1
|
+
import{Status as e}from"../index.js";import{jsx as t,jsxs as n}from"react/jsx-runtime";import{useNavigate as r}from"react-router";const i=()=>{let i=r(),a=()=>{i(-1)};return n(e,{children:[t(e.Title,{title:`It looks like you don't have permission to access this page.`}),t(e.Action,{onClick:a})]})};export{i as MissingPermissions};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Status as e}from"../index.js";import{jsx as t,jsxs as n}from"react/jsx-runtime";import{
|
|
2
|
-
Please check the URL and try again.`}),t(e.Action,{onClick:
|
|
1
|
+
import{Status as e}from"../index.js";import{jsx as t,jsxs as n}from"react/jsx-runtime";import{useNavigate as r}from"react-router";const i=()=>{let i=r(),a=()=>{i(-1)};return n(e,{center:!1,children:[t(e.Title,{title:`Page not found`}),t(e.Description,{text:`It looks like the page you're looking for has gone missing.
|
|
2
|
+
Please check the URL and try again.`}),t(e.Action,{onClick:a})]})};export{i as PageNotFound};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{Status as e}from"../index.js";import{jsx as t,jsxs as n}from"react/jsx-runtime";import{
|
|
1
|
+
import{Status as e}from"../index.js";import{jsx as t,jsxs as n}from"react/jsx-runtime";import{useNavigate as r}from"react-router";const i=()=>{let i=r(),a=()=>{i(-1)};return n(e,{color:`#C47E84`,children:[t(e.Title,{title:`Something is wrong on our servers`}),t(e.Description,{text:`Our server encountered an unexpected issue. Please try
|
|
2
2
|
again shortly, or reach out via the feedback form if the problem
|
|
3
|
-
continues.`}),t(e.Action,{onClick:
|
|
3
|
+
continues.`}),t(e.Action,{onClick:a})]})};export{i as ServerError};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{tokens as e}from"../../node_modules/@equinor/eds-tokens/dist/esm/base/index.js";import{animation as t}from"../../atoms/style/animation.js";import{spacings as n}from"../../atoms/style/spacings.js";import{HEIGHT as r}from"./TableOfContents.constants.js";import i,{css as a}from"styled-components";import{motion as o}from"framer-motion";import{Link as s}from"
|
|
1
|
+
import{tokens as e}from"../../node_modules/@equinor/eds-tokens/dist/esm/base/index.js";import{animation as t}from"../../atoms/style/animation.js";import{spacings as n}from"../../atoms/style/spacings.js";import{HEIGHT as r}from"./TableOfContents.constants.js";import i,{css as a}from"styled-components";import{motion as o}from"framer-motion";import{Link as s}from"react-router-dom";const{colors:c,shape:l}=e,u=i.button`
|
|
2
2
|
&:hover {
|
|
3
3
|
background: ${c.interactive.primary__hover_alt.rgba};
|
|
4
4
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react5 from "react";
|
|
2
2
|
import * as styled_components0 from "styled-components";
|
|
3
3
|
import { IStyledComponent } from "styled-components";
|
|
4
4
|
import * as styled_components_dist_types0 from "styled-components/dist/types";
|
|
@@ -7,8 +7,8 @@ import * as styled_components_dist_types0 from "styled-components/dist/types";
|
|
|
7
7
|
interface ContentProps {
|
|
8
8
|
$open: boolean;
|
|
9
9
|
}
|
|
10
|
-
declare const Content: styled_components_dist_types0.IStyledComponentBase<"web", styled_components_dist_types0.Substitute<
|
|
11
|
-
declare const GlobalStyles:
|
|
10
|
+
declare const Content: styled_components_dist_types0.IStyledComponentBase<"web", styled_components_dist_types0.Substitute<react5.DetailedHTMLProps<react5.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, ContentProps>> & string;
|
|
11
|
+
declare const GlobalStyles: react5.NamedExoticComponent<styled_components0.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 } from "./ToggleGroup.types.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react114 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/organisms/ToggleGroup/ToggleGroup.d.ts
|
|
5
|
-
declare const ToggleGroup$1:
|
|
5
|
+
declare const ToggleGroup$1: react114.ForwardRefExoticComponent<ToggleGroup & react114.RefAttributes<HTMLDivElement>>;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { ToggleGroup$1 as ToggleGroup };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ToggleGroupOption } from "./ToggleGroup.types.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react116 from "react";
|
|
3
3
|
import { HTMLAttributes } from "react";
|
|
4
4
|
|
|
5
5
|
//#region src/organisms/ToggleGroup/ToggleGroupOption.d.ts
|
|
6
6
|
type ToggleGroupOptionProps = ToggleGroupOption & Omit<HTMLAttributes<HTMLButtonElement>, 'onToggle' | 'disabled'>;
|
|
7
|
-
declare const ToggleGroupOption$1:
|
|
7
|
+
declare const ToggleGroupOption$1: react116.ForwardRefExoticComponent<ToggleGroupOptionProps & react116.RefAttributes<HTMLButtonElement>>;
|
|
8
8
|
//#endregion
|
|
9
9
|
export { ToggleGroupOption$1 as ToggleGroupOption };
|
|
@@ -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:
|
|
8
|
+
`,g=({onOpenImpersonateMenu:e,onClose:t})=>{let{data:a}=n(),{mutateAsync:l,isPending:g}=r(),_=async()=>{await l(),t()};return a&&g?u(h,{variant:`outlined`,color:`danger`,children:u(o,{})}):a?d(h,{variant:`outlined`,color:`danger`,onClick:_,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:
|
|
11
|
+
`,d=({selectedUniqueName:e,onCancel:o})=>{let{data:d}=t(),{mutateAsync:f,isPending:p}=n(),m=async()=>{await f(e),o()};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:m,disabled:e===``||e===d?.uniqueName,children:`Impersonate`})]})]})};export{d as Actions};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{environment as e}from"../../../../../atoms/utils/auth_environment.js";import{TextField as t}from"../../../../../molecules/TextField/TextField.js";import{ComboBox as n}from"../../../../../molecules/Select/ComboBox/ComboBox.js";import{SingleSelect as r}from"../../../../../molecules/Select/SingleSelect/SingleSelect.js";import{useAllAppRoles as i}from"../hooks/useAllAppRoles.js";import{useCreateImpersonation as a}from"../hooks/useCreateImpersonation.js";import{useEditImpersonation as o}from"../hooks/useEditImpersonation.js";import{Header as s}from"../Impersonate.styles.js";import{Container as c,Section as l}from"./CreateOrEditUser.styles.js";import{useEffect as u,useMemo as d,useRef as f,useState as p}from"react";import{Button as m,DotProgress as h,Icon as g,Typography as _}from"@equinor/eds-core-react";import{jsx as v,jsxs as y}from"react/jsx-runtime";import{arrow_back as b}from"@equinor/eds-icons";const x=({editingUser:x,onBack:S,availableFields:C,availableWells:w})=>{let T=f(!1),[E,D]=p([]),[O,k]=p(``),[A,j]=p(``),[M,N]=p(``),[P,F]=p(void 0),[I,L]=p(void 0),{data:R,isLoading:z}=i();u(()=>{if(x&&R&&!T.current){if(T.current=!0,D(x.roles.map(e=>{let t=R.find(t=>t.value===e);return t?{value:e,label:t.displayName}:{value:e,label:e}})),C){let e=C.find(e=>e.uuid==x.field)?.name??void 0;F(e)}if(w){let e=w.find(e=>e==x.well)??void 0;L(e)}k(x.firstName),j(x.lastName),N(x.email??``)}},[R,x,T,C,w]);let B=d(()=>R?.map(e=>({value:e.value,label:e.displayName}))??[],[R]),V=C?.map(e=>({value:e.uuid??``,label:e.name??``}))??[],H=w?.map(e=>({value:e,label:e}))??[],{mutateAsync:U,isPending:W}=a(),{mutateAsync:G,isPending:K}=o(),q=W||K,J=d(()=>O===``||A===``||E.length===0,[O,A,E.length]);return y(c,{children:[y(s,{children:[v(m,{variant:`ghost_icon`,onClick:S,children:v(g,{data:b})}),v(_,{variant:`h6`,children:x?`Edit user`:`Create new user`})]}),y(l,{children:[v(t,{id:`first-name`,label:`First name`,placeholder:`Add first name...`,value:O,onChange:
|
|
1
|
+
import{environment as e}from"../../../../../atoms/utils/auth_environment.js";import{TextField as t}from"../../../../../molecules/TextField/TextField.js";import{ComboBox as n}from"../../../../../molecules/Select/ComboBox/ComboBox.js";import{SingleSelect as r}from"../../../../../molecules/Select/SingleSelect/SingleSelect.js";import{useAllAppRoles as i}from"../hooks/useAllAppRoles.js";import{useCreateImpersonation as a}from"../hooks/useCreateImpersonation.js";import{useEditImpersonation as o}from"../hooks/useEditImpersonation.js";import{Header as s}from"../Impersonate.styles.js";import{Container as c,Section as l}from"./CreateOrEditUser.styles.js";import{useEffect as u,useMemo as d,useRef as f,useState as p}from"react";import{Button as m,DotProgress as h,Icon as g,Typography as _}from"@equinor/eds-core-react";import{jsx as v,jsxs as y}from"react/jsx-runtime";import{arrow_back as b}from"@equinor/eds-icons";const x=({editingUser:x,onBack:S,availableFields:C,availableWells:w})=>{let T=f(!1),[E,D]=p([]),[O,k]=p(``),[A,j]=p(``),[M,N]=p(``),[P,F]=p(void 0),[I,L]=p(void 0),{data:R,isLoading:z}=i();u(()=>{if(x&&R&&!T.current){if(T.current=!0,D(x.roles.map(e=>{let t=R.find(t=>t.value===e);return t?{value:e,label:t.displayName}:{value:e,label:e}})),C){let e=C.find(e=>e.uuid==x.field)?.name??void 0;F(e)}if(w){let e=w.find(e=>e==x.well)??void 0;L(e)}k(x.firstName),j(x.lastName),N(x.email??``)}},[R,x,T,C,w]);let B=d(()=>R?.map(e=>({value:e.value,label:e.displayName}))??[],[R]),V=C?.map(e=>({value:e.uuid??``,label:e.name??``}))??[],H=w?.map(e=>({value:e,label:e}))??[],{mutateAsync:U,isPending:W}=a(),{mutateAsync:G,isPending:K}=o(),q=W||K,J=d(()=>O===``||A===``||E.length===0,[O,A,E.length]),Y=e=>{k(e.target.value)},X=e=>{j(e.target.value)},Z=e=>{N(e.target.value)},Q=e=>{D(e)},$=e=>{F(e?.value)},ee=e=>{L(e?.value)},te=async()=>{x?(await G({id:x.id,firstName:O,lastName:A,fullName:`${O} ${A}`,email:M===``?void 0:M,field:P,well:I,roles:E.map(e=>e.value).sort(),uniqueName:x.uniqueName,appName:x.appName,activeUsers:[]}),S()):(await U({firstName:O,lastName:A,field:P,well:I,email:M===``?void 0:M,roles:E.map(e=>e.value).sort(),uniqueName:`${O}.${A}`.toLowerCase(),appName:e.getAppName(import.meta.env.VITE_NAME),activeUsers:[]}),S())};return y(c,{children:[y(s,{children:[v(m,{variant:`ghost_icon`,onClick:S,children:v(g,{data:b})}),v(_,{variant:`h6`,children:x?`Edit user`:`Create new user`})]}),y(l,{children:[v(t,{id:`first-name`,label:`First name`,placeholder:`Add first name...`,value:O,onChange:Y}),v(t,{id:`last-name`,label:`Last name`,placeholder:`Add last name...`,value:A,onChange:X}),v(t,{id:`email`,label:`E-mail`,placeholder:`Add e-mail...`,meta:`Optional`,value:M,onChange:Z})]}),y(l,{children:[V&&V.length>0&&v(r,{placeholder:`Select field...`,label:`Field`,meta:`Optional (For internal application role purposes)`,value:V.find(e=>e.value===P),onSelect:$,items:V}),H&&H.length>0&&v(r,{label:`Well`,placeholder:`Select well...`,meta:`Optional (For internal application role purposes)`,value:H.find(e=>e.value===I),onSelect:ee,items:H})]}),v(l,{children:v(n,{label:`Roles`,placeholder:`Select roles...`,values:E,onSelect:Q,items:B,loading:z})}),y(l,{children:[v(m,{variant:`outlined`,onClick:S,children:`Cancel`}),q?v(m,{children:v(h,{})}):v(m,{onClick:te,disabled:J,children:x?`Save`:`Create`})]})]})};export{x as CreateOrEditUser};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{colors as e}from"../../../../../atoms/style/colors.js";import{useSnackbar as t}from"../../../../../providers/SnackbarProvider/SnackbarProvider.js";import{Button as n}from"../../../../../molecules/Button/Button.js";import{Header as r}from"../Impersonate.styles.js";import{useDeleteImpersonation as i}from"../hooks/useDeleteImpersonation.js";import{Container as a}from"./DeleteUser.styles.js";import{RoleChip as o,RolesContainer as s,TextContent as c}from"../../Account.styles.js";import{ImpersonateAvatar as l}from"../../ImpersonateAvatar.js";import{DotProgress as u,Icon as d,Typography as f}from"@equinor/eds-core-react";import{jsx as p,jsxs as m}from"react/jsx-runtime";import{arrow_back as h,delete_to_trash as g}from"@equinor/eds-icons";const _=({user:_,onBack:v})=>{let{mutateAsync:y,isPending:b}=i(),{showSnackbar:x}=t(),S=`${_.firstName} ${_.lastName}
|
|
1
|
+
import{colors as e}from"../../../../../atoms/style/colors.js";import{useSnackbar as t}from"../../../../../providers/SnackbarProvider/SnackbarProvider.js";import{Button as n}from"../../../../../molecules/Button/Button.js";import{Header as r}from"../Impersonate.styles.js";import{useDeleteImpersonation as i}from"../hooks/useDeleteImpersonation.js";import{Container as a}from"./DeleteUser.styles.js";import{RoleChip as o,RolesContainer as s,TextContent as c}from"../../Account.styles.js";import{ImpersonateAvatar as l}from"../../ImpersonateAvatar.js";import{DotProgress as u,Icon as d,Typography as f}from"@equinor/eds-core-react";import{jsx as p,jsxs as m}from"react/jsx-runtime";import{arrow_back as h,delete_to_trash as g}from"@equinor/eds-icons";const _=({user:_,onBack:v})=>{let{mutateAsync:y,isPending:b}=i(),{showSnackbar:x}=t(),S=`${_.firstName} ${_.lastName}`,C=async()=>{await y(_),x(`Deleted user "${S}" successfully`),v()};return m(a,{children:[m(r,{children:[p(n,{variant:`ghost_icon`,onClick:v,children:p(d,{data:h})}),p(f,{variant:`h6`,children:`Delete user`})]}),m(`section`,{children:[p(f,{variant:`h4`,children:`You are deleting a user`}),m(f,{variant:`caption`,color:e.text.static_icons__tertiary.rgba,children:[`Are you sure you want to delete user "`,S,`"?`]})]}),p(l,{size:64,fullName:S}),m(c,{children:[p(f,{variant:`h6`,children:S}),p(f,{children:_.uniqueName})]}),p(s,{children:_.roles.map(e=>p(o,{children:e},e))}),m(`div`,{children:[b?p(n,{variant:`outlined`,color:`danger`,children:p(u,{color:`tertiary`})}):m(n,{variant:`outlined`,color:`danger`,onClick:C,children:[p(d,{data:g}),` Delete user`]}),p(n,{variant:`ghost`,onClick:v,children:`Cancel`})]})]})};export{_ as DeleteUser};
|
|
@@ -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:
|
|
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))},H=()=>{O(void 0)},U=e=>{M(e.target.value)};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:H})}):_(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:U})]}),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,7 +1,7 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react112 from "react";
|
|
2
2
|
import { HTMLAttributes } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/organisms/TopBar/Actions.d.ts
|
|
5
|
-
declare const Actions:
|
|
5
|
+
declare const Actions: react112.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react112.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
|
|
2
|
+
import * as react131 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/organisms/TopBar/FieldMenu/FieldMenu.d.ts
|
|
5
5
|
interface FieldMenuProps {
|
|
@@ -9,6 +9,6 @@ interface FieldMenuProps {
|
|
|
9
9
|
itemNameSingular?: string;
|
|
10
10
|
showAccessITLink?: boolean;
|
|
11
11
|
}
|
|
12
|
-
declare const FieldMenu:
|
|
12
|
+
declare const FieldMenu: react131.ForwardRefExoticComponent<FieldMenuProps & react131.RefAttributes<HTMLDivElement>>;
|
|
13
13
|
//#endregion
|
|
14
14
|
export { FieldMenu };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react142 from "react";
|
|
2
2
|
import * as styled_components_dist_types48 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_types48.IStyledComponentBase<"web", styled_components_dist_types48.Substitute<
|
|
8
|
+
declare const Colorbox: styled_components_dist_types48.IStyledComponentBase<"web", styled_components_dist_types48.Substitute<react142.DetailedHTMLProps<react142.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, ColorboxProps>> & string;
|
|
9
9
|
//#endregion
|
|
10
10
|
export { Colorbox };
|
|
@@ -2,7 +2,7 @@ import{EnvironmentType as e}from"../../../../atoms/enums/Environment.js";import{
|
|
|
2
2
|
${e.urgency?i:``}
|
|
3
3
|
${t?a:``}
|
|
4
4
|
${o}
|
|
5
|
-
${e.description} \n \n User agent string: ${navigator.userAgent}`},m=(t,n)=>{let r=n?`selfservice?id=ticket&table=incident&sys_id=`:`now/nav/ui/classic/params/target/incident.do%3Fsys_id%3D
|
|
5
|
+
${e.description} \n \n User agent string: ${navigator.userAgent}`},m=(t,n)=>{let r=n?`selfservice?id=ticket&table=incident&sys_id=`:`now/nav/ui/classic/params/target/incident.do%3Fsys_id%3D`,i=l(import.meta.env.VITE_ENVIRONMENT_NAME)===e.PRODUCTION;return`https://equinor${i?``:`test`}.service-now.com/${r}${t}`},h=()=>{if(navigator.userAgent.includes(i.EDGE_SHORT))return i.EDGE;if(navigator.userAgent.includes(i.CHROME))return i.CHROME;if(navigator.userAgent.includes(i.SAFARI))return i.SAFARI;if(navigator.userAgent.includes(i.FIREFOX))return i.FIREFOX},g=e=>{let t=e;e===i.EDGE&&(t=i.EDGE_SHORT);let n=RegExp(`${t}/(\\d+(?:\\.\\d+)+)`);return navigator.userAgent.match(n)?.[1]},_=()=>{let e=h();return e?`${e} (${g(e)})`:`Not found`},v=(e,t,i,o,s)=>{let l=i===a.BUG,d=l?`:bug: Bug report`:`:bulb: Suggestion`,f=[],p=[];p.push({type:`mrkdwn`,text:`*Title* \n ${e.title}`}),f.push({type:`mrkdwn`,text:` ${n(new Date,{format:`DD. month YYYY`})}`}),e.url&&f.push({type:`mrkdwn`,text:`*<${e.url}|Error URL>*`}),e.urgency&&p.push({type:`mrkdwn`,text:`*Severity* \n ${u(e)} ${e.urgency}`});let h=[{type:`header`,text:{type:`plain_text`,text:d,emoji:!0}},{type:`section`,fields:f},{type:`section`,fields:p},{type:`section`,fields:[{type:`mrkdwn`,text:`*Application*
|
|
6
6
|
`+c(import.meta.env.VITE_NAME)},{type:`mrkdwn`,text:`*User* \n ${o}`}]},{type:`section`,fields:[{type:`mrkdwn`,text:`*Browser*
|
|
7
7
|
`+_()},{type:`mrkdwn`,text:`*Field* \n ${r(t??`Not found`)}`}]},{type:`section`,text:{type:`mrkdwn`,text:`*Description*
|
|
8
|
-
`+e.description}}];return s&&
|
|
8
|
+
`+e.description}}];return s&&h.push({type:`section`,text:{type:`mrkdwn`,text:`*<${m(s)}|:link: Click to open the ticket in Service Now>*`}}),h.push({type:`divider`}),JSON.stringify(h)};export{p as createServiceNowDescription,m as createServiceNowUrl,v as createSlackMessage,f as getUrgencyNumber,d as readUploadedFileAsText};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{FeedbackType as e}from"../Feedback.types.js";import{useFeedbackContext as t}from"../hooks/useFeedbackContext.js";import{UploadFile as n}from"./UploadFile/UploadFile.js";import{Description as r}from"./Description.js";import
|
|
1
|
+
import{FeedbackType as e}from"../Feedback.types.js";import{useFeedbackContext as t}from"../hooks/useFeedbackContext.js";import{UploadFile as n}from"./UploadFile/UploadFile.js";import{Description as r}from"./Description.js";import i from"./Severity.js";import{Title as a}from"./Title.js";import{Url as o}from"./Url.js";import{Actions as s,Container as c,ContentWrapper as l,LockedFormWarning as u,ReportLocationText as d,UploadInfo as f}from"../Feedback.styles.js";import{useMemo as p}from"react";import{Button as m,Icon as h,Typography as g}from"@equinor/eds-core-react";import{Fragment as _,jsx as v,jsxs as y}from"react/jsx-runtime";import{info_circle as b}from"@equinor/eds-icons";const x=()=>{let{isWrongDomain:x,selectedType:S,resetForm:C,feedbackContent:w,onDialogClose:T,serviceNowSuccess:E,handleSave:D,requestIsLoading:O}=t(),k=p(()=>w.title.length>0&&w.description.length>0&&!x,[w.title.length,w.description.length,x]);return v(l,{children:y(c,{children:[v(a,{}),S===e.BUG&&y(_,{children:[v(i,{}),v(o,{})]}),v(r,{}),y(f,{children:[v(h,{data:b}),v(g,{children:`Please make sure the uploaded files do not contain confidential or personal information`})]}),v(n,{}),v(d,{children:S===e.BUG?`Bug reports are sent to Service Now and to the development team directly`:`Feature suggestions are sent to the development team directly`}),E&&y(u,{children:[v(h,{data:b}),v(g,{children:`The report has already been sent to service now, and part of the form is locked, so you can retry sending it to the development team. Otherwise you can reset the form with the "Reset form" button in the bottom left corner.`})]}),y(s,{children:[v(m,{variant:`ghost`,onClick:C,"data-testid":`reset-form-button`,children:`Reset form`}),y(`div`,{children:[v(m,{variant:`ghost`,onClick:T,children:`Cancel`}),v(m,{onClick:D,disabled:!k||O,"data-testid":`submit-button`,children:E?`Send again`:`Send`})]})]})]})})};export{x as FeedbackForm};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import{SingleSelect as e}from"../../../../../molecules/Select/SingleSelect/SingleSelect.js";import{UrgencyOption as t}from"../Feedback.types.js";import{useFeedbackContext as n}from"../hooks/useFeedbackContext.js";import{LockedInputTooltip as r}from"./LockedInputTooltip.js";import i from"styled-components";import{jsx as a}from"react/jsx-runtime";const o=i.div`
|
|
2
2
|
grid-column: 1/2;
|
|
3
|
-
`,s=Object.values(t).map(e=>({value:e,label:e})),c=()=>{let{serviceNowSuccess:t,feedbackContent:i,updateFeedback:c}=n(),l=i.urgency?{value:i.urgency,label:i.urgency}:void 0;return a(o,{children:a(r,{show:t,children:a(e,{items:s,label:`Severity`,meta:`optional`,clearable:!1,disabled:t,value:l,placeholder:`Select error impact`,onSelect:e=>{c(`urgency`,e.value)}})})})};export{c as
|
|
3
|
+
`,s=Object.values(t).map(e=>({value:e,label:e})),c=()=>{let{serviceNowSuccess:t,feedbackContent:i,updateFeedback:c}=n(),l=i.urgency?{value:i.urgency,label:i.urgency}:void 0;return a(o,{children:a(r,{show:t,children:a(e,{items:s,label:`Severity`,meta:`optional`,clearable:!1,disabled:t,value:l,placeholder:`Select error impact`,onSelect:e=>{c(`urgency`,e.value)}})})})};export{c as default};
|
|
@@ -4,4 +4,4 @@ import{tokens as e}from"../../../../../../node_modules/@equinor/eds-tokens/dist/
|
|
|
4
4
|
width: 82px;
|
|
5
5
|
height: 82px;
|
|
6
6
|
position: relative;
|
|
7
|
-
`,_=e=>{let[u,_]=c(``),{error:v,onDelete:y}=e,b=s(()=>{if(!v)return;let t=e.errors[0].code,n=e.errors[0].message;return t===`file-too-large`?n=n.replace(/(\d+ bytes)/,`1MB`):t===`file-invalid-type`&&(n=n.replace(/(\w+\/\w+,)/g,``).replaceAll(`,`,`, `)),`${e.errors[0].code} \n${n}`},[v,e]),x=s(()=>e.file.name,[v,e]),S=s(()=>v?e.errors.find(e=>e.code.includes(`invalid`))?`Invalid file type`:e.errors.find(e=>e.code.includes(`large`))?`Invalid file size`:`Error`:``,[v,e]);return o(()=>{
|
|
7
|
+
`,_=e=>{let[u,_]=c(``),{error:v,onDelete:y}=e,b=s(()=>{if(!v)return;let t=e.errors[0].code,n=e.errors[0].message;return t===`file-too-large`?n=n.replace(/(\d+ bytes)/,`1MB`):t===`file-invalid-type`&&(n=n.replace(/(\w+\/\w+,)/g,``).replaceAll(`,`,`, `)),`${e.errors[0].code} \n${n}`},[v,e]),x=s(()=>e.file.name,[v,e]),S=s(()=>v?e.errors.find(e=>e.code.includes(`invalid`))?`Invalid file type`:e.errors.find(e=>e.code.includes(`large`))?`Invalid file size`:`Error`:``,[v,e]);return o(()=>{let n=async e=>{let n=await t(e);_(n)};v||n(e.file)},[v,e]),f(g,{children:[d(r,{title:`${x}${v?`: `+b:``}`,children:v?f(a,{children:[d(l,{data:m,color:h.interactive.warning__text.rgba}),d(`div`,{children:S})]}):d(i,{children:d(`img`,{src:u,alt:`Uploaded file: ${x}`})})}),d(n,{"data-testid":`attachment-delete-button`,onClick:y,children:d(l,{color:h.text.static_icons__tertiary.rgba,data:p,size:24})})]})};export{_ as ImageFile};
|
|
@@ -2,4 +2,4 @@ import{FileUploadArea as e}from"../../../../../../molecules/FileUploadArea/FileU
|
|
|
2
2
|
grid-column: 1/3;
|
|
3
3
|
display: flex;
|
|
4
4
|
flex-direction: column;
|
|
5
|
-
`;function d(e,t){if(e.length===0||e.length===1)return e;for(let n=0;n<e.length;n++)for(let r=n+1;r<e.length;r++)t(e[n],e[r])&&e.splice(n,1);return e}const f=()=>{let{feedbackAttachments:s,setFeedbackAttachments:f}=n(),[p,m]=o([]),h=(e,t)=>{if(e.length>=1){let t=e.filter(e=>!e.name.startsWith(`.`))
|
|
5
|
+
`;function d(e,t){if(e.length===0||e.length===1)return e;for(let n=0;n<e.length;n++)for(let r=n+1;r<e.length;r++)t(e[n],e[r])&&e.splice(n,1);return e}const f=()=>{let{feedbackAttachments:s,setFeedbackAttachments:f}=n(),[p,m]=o([]),h=(e,t)=>{if(e.length>=1){let t=e.filter(e=>!e.name.startsWith(`.`)),n=new FileReader;n.readAsDataURL(e[0]);let r=[];s&&r.push(...s);let i=[...t,...r],a=d(i,(e,t)=>e.name===t.name&&e.size===t.size);f(a)}m(t)},g=e=>{let t=s?.filter(t=>t.name!==e.name&&t.size!==e.size)??[];f(t)},_=e=>{m(p?.filter(t=>t.file.name===e.file.name&&t.file.size!==e.file.size)??[])};return l(u,{children:[c(i,{group:`input`,variant:`label`,children:`Attachments (.jpg, .jpeg, .png) (max 1 MB)`}),l(r,{children:[c(e,{maxSize:t,onDrop:h,accept:{"image/jpeg":[`.jpeg`,`.jpg`],"image/png":[`.png`]},size:`small`}),s?.map(e=>c(a,{onDelete:()=>g(e),file:e},e.name+e.size)),p.map(e=>c(a,{...e,onDelete:()=>_(e),error:!0},e.file.name+e.file.size))]})]})};export{f as UploadFile};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import{TextField as e}from"../../../../../molecules/TextField/TextField.js";import{EQUINOR_EMAIL_SUFFIX as t}from"../Feedback.const.js";import{useFeedbackContext as n}from"../hooks/useFeedbackContext.js";import{LockedInputTooltip as r}from"./LockedInputTooltip.js";import i from"styled-components";import{jsx as a}from"react/jsx-runtime";const o=i.div`
|
|
2
2
|
grid-column: 2/3;
|
|
3
|
-
`,s=()=>{let{serviceNowSuccess:i,feedbackContent:s,updateFeedback:c,isWrongDomain:l,setIsWrongDomain:u}=n();return a(o,{children:a(r,{show:i,children:a(e,{id:`feedback-url`,label:`URL`,disabled:i,meta:`optional`,value:s.url,placeholder:`URL of error location`,variant:l?`error`:void 0,helperText:l?`The provided URL must be from a ${t} domain`:``,onChange:
|
|
3
|
+
`,s=()=>{let{serviceNowSuccess:i,feedbackContent:s,updateFeedback:c,isWrongDomain:l,setIsWrongDomain:u}=n(),d=e=>{c(`url`,e.currentTarget.value),(e.currentTarget.value===``||l&&e.currentTarget.value.includes(t))&&u(!1)},f=e=>{let n=e.currentTarget.value;!n.includes(t)&&n.length!==0&&u(!0)};return a(o,{children:a(r,{show:i,children:a(e,{id:`feedback-url`,label:`URL`,disabled:i,meta:`optional`,value:s.url,placeholder:`URL of error location`,variant:l?`error`:void 0,helperText:l?`The provided URL must be from a ${t} domain`:``,onChange:d,onBlur:f})})})};export{s as Url};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{spacings as e}from"../../../../../atoms/style/spacings.js";import{useFeedbackContext as t}from"../hooks/useFeedbackContext.js";import{ContentWrapper as n}from"../Feedback.styles.js";import{AnimateChangeInHeight as r}from"./AnimateChangeInHeight.js";import
|
|
1
|
+
import{spacings as e}from"../../../../../atoms/style/spacings.js";import{useFeedbackContext as t}from"../hooks/useFeedbackContext.js";import{ContentWrapper as n}from"../Feedback.styles.js";import{AnimateChangeInHeight as r}from"./AnimateChangeInHeight.js";import i from"./ResponseStatus.js";import{Success as a}from"./Success.js";import{useEffect as o,useState as s}from"react";import{Button as c}from"@equinor/eds-core-react";import l from"styled-components";import{jsx as u,jsxs as d}from"react/jsx-runtime";import{motion as f}from"framer-motion";const p=l(f.div)`
|
|
2
2
|
display: flex;
|
|
3
3
|
gap: ${e.large};
|
|
4
4
|
height: auto;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{FeedbackType as e}from"../Feedback.types.js";import{useFeedbackContext as t}from"../hooks/useFeedbackContext.js";import{RequestStatus as n}from"./RequestStatus.js";import{FullSlackResponse as r}from"./FullSlackResponse.js";import{Fragment as i,jsx as a,jsxs as o}from"react/jsx-runtime";const s=()=>{let{serviceNowRequestResponse:s,selectedType:c,showAllSlackRequests:l,allSlackRequestStatus:u}=t();return o(i,{children:[c===e.BUG&&a(n,{title:`Service Now`,requestStatus:s}),l?a(r,{allSlackRequestStatus:{status:u}}):a(n,{title:`Development team`,requestStatus:{status:u}})]})};export{s as
|
|
1
|
+
import{FeedbackType as e}from"../Feedback.types.js";import{useFeedbackContext as t}from"../hooks/useFeedbackContext.js";import{RequestStatus as n}from"./RequestStatus.js";import{FullSlackResponse as r}from"./FullSlackResponse.js";import{Fragment as i,jsx as a,jsxs as o}from"react/jsx-runtime";const s=()=>{let{serviceNowRequestResponse:s,selectedType:c,showAllSlackRequests:l,allSlackRequestStatus:u}=t();return o(i,{children:[c===e.BUG&&a(n,{title:`Service Now`,requestStatus:s}),l?a(r,{allSlackRequestStatus:{status:u}}):a(n,{title:`Development team`,requestStatus:{status:u}})]})};export{s as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useReleaseNotes as e}from"../../../../../providers/ReleaseNotesProvider.js";import{ButtonContainer as t,Wrapper as n}from"./Header.styles.js";import{Button as r,Icon as i,Tooltip as a,Typography as o}from"@equinor/eds-core-react";import{jsx as s,jsxs as c}from"react/jsx-runtime";import{close as l,external_link as u}from"@equinor/eds-icons";const d=()=>{let{setOpen:d,showAllReleaseNotesLink:f}=e();return c(n,{children:[s(o,{variant:`h1`,bold:!0,children:`What's new?`}),c(t,{children:[s(a,{title:`Release notes in SAM`,children:s(r,{variant:`ghost_icon`,href:f,target:`_blank`,children:s(i,{data:u})})}),s(r,{variant:`ghost_icon`,onClick:
|
|
1
|
+
import{useReleaseNotes as e}from"../../../../../providers/ReleaseNotesProvider.js";import{ButtonContainer as t,Wrapper as n}from"./Header.styles.js";import{Button as r,Icon as i,Tooltip as a,Typography as o}from"@equinor/eds-core-react";import{jsx as s,jsxs as c}from"react/jsx-runtime";import{close as l,external_link as u}from"@equinor/eds-icons";const d=()=>{let{setOpen:d,showAllReleaseNotesLink:f}=e(),p=()=>{d(!1)};return c(n,{children:[s(o,{variant:`h1`,bold:!0,children:`What's new?`}),c(t,{children:[s(a,{title:`Release notes in SAM`,children:s(r,{variant:`ghost_icon`,href:f,target:`_blank`,children:s(i,{data:u})})}),s(r,{variant:`ghost_icon`,onClick:p,"aria-label":`close modal`,children:s(i,{data:l})})]})]})};export{d as Header};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Status as e}from"../../../Status/index.js";import{usePrefetchRichTextImages as t}from"../../../../atoms/hooks/usePrefetchRichTextImages.js";import{useReleaseNotes as n}from"../../../../providers/ReleaseNotesProvider.js";import{Button as r}from"../../../../molecules/Button/Button.js";import{Header as i}from"./Header/Header.js";import{AllReleaseNotesWrapper as a,LoadingWrapper as o,StyledDialog as s}from"./ReleaseNotesDialog.styles.js";import{ReleaseNote as c}from"../../../ReleaseNote/ReleaseNote.js";import{CircularProgress as l}from"@equinor/eds-core-react";import{Fragment as u,jsx as d,jsxs as f}from"react/jsx-runtime";import{ReleaseNotesService as p,useReleaseNotesQuery as m}from"@equinor/subsurface-app-management";const h=({enabled:h})=>{let{setOpen:g,open:_,mostRecentReleaseNote:v,showAllReleaseNotesLink:y}=n(),{isLoading:b}=m({enabled:h}),{isPrefetching:x}=t({richTextValues:v?.body?[v.body]:[],onImageRead:p.getReleaseNoteImage});return f(s,{open:_,onClose:
|
|
1
|
+
import{Status as e}from"../../../Status/index.js";import{usePrefetchRichTextImages as t}from"../../../../atoms/hooks/usePrefetchRichTextImages.js";import{useReleaseNotes as n}from"../../../../providers/ReleaseNotesProvider.js";import{Button as r}from"../../../../molecules/Button/Button.js";import{Header as i}from"./Header/Header.js";import{AllReleaseNotesWrapper as a,LoadingWrapper as o,StyledDialog as s}from"./ReleaseNotesDialog.styles.js";import{ReleaseNote as c}from"../../../ReleaseNote/ReleaseNote.js";import{CircularProgress as l}from"@equinor/eds-core-react";import{Fragment as u,jsx as d,jsxs as f}from"react/jsx-runtime";import{ReleaseNotesService as p,useReleaseNotesQuery as m}from"@equinor/subsurface-app-management";const h=({enabled:h})=>{let{setOpen:g,open:_,mostRecentReleaseNote:v,showAllReleaseNotesLink:y}=n(),{isLoading:b}=m({enabled:h}),{isPrefetching:x}=t({richTextValues:v?.body?[v.body]:[],onImageRead:p.getReleaseNoteImage}),S=()=>{g(!1)};return f(s,{open:_,onClose:S,isDismissable:!0,children:[d(i,{}),b||x?d(o,{children:d(l,{})}):v?f(u,{children:[d(c,{...v,expanded:!0}),d(a,{children:d(r,{variant:`ghost`,href:y,target:`_blank`,children:`See all release notes in SAM`})})]}):f(e,{children:[d(e.Title,{title:`No published release notes`}),d(e.Description,{text:`This application has no published release notes yet.`})]})]})};export{h as ReleaseNotesDialog};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{EnvironmentType as e}from"../../atoms/enums/Environment.js";import{colors as t}from"../../atoms/style/colors.js";import{spacings as n}from"../../atoms/style/spacings.js";import{Button as r,CircularProgress as i,TopBar as a,Typography as o}from"@equinor/eds-core-react";import s,{css as c}from"styled-components";import{Link as l}from"
|
|
1
|
+
import{EnvironmentType as e}from"../../atoms/enums/Environment.js";import{colors as t}from"../../atoms/style/colors.js";import{spacings as n}from"../../atoms/style/spacings.js";import{Button as r,CircularProgress as i,TopBar as a,Typography as o}from"@equinor/eds-core-react";import s,{css as c}from"styled-components";import{Link as l}from"react-router-dom";const u=s(a)`
|
|
2
2
|
border-bottom: 1px solid ${t.ui.background__medium.rgba};
|
|
3
3
|
padding-left: ${n.medium};
|
|
4
4
|
align-content: center;
|
|
@@ -18,4 +18,4 @@ import{animation as e}from"../../../atoms/style/animation.js";import{colors as t
|
|
|
18
18
|
&:hover {
|
|
19
19
|
background: ${t.interactive.primary__hover_alt.rgba};
|
|
20
20
|
}
|
|
21
|
-
`,f=({onTutorialStart:e,onClose:n,id:a,name:f})=>{let{startTutorial:p,seenTutorialIDs:m}=u(),h=m.includes(a)
|
|
21
|
+
`,f=({onTutorialStart:e,onClose:n,id:a,name:f})=>{let{startTutorial:p,seenTutorialIDs:m}=u(),h=m.includes(a),g=()=>{p(a),e?.(a),n()};return s(d,{onClick:g,children:[h&&s(`header`,{children:[o(r,{data:c,size:16,color:t.interactive.primary__resting.rgba}),o(i,{varinat:`caption`,children:`COMPLETED`})]}),o(i,{variant:`h4`,children:f}),o(r,{data:l,color:t.interactive.primary__resting.rgba})]})};export{f as TutorialItem};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{auth as e,environment as t}from"../../atoms/utils/auth_environment.js";import{FullPageSpinner as n}from"../../molecules/FullPageSpinner/FullPageSpinner.js";import{MissingAccessToApp as r}from"../../organisms/Status/collections/MissingAccessToApp.js";import{useEffect as i,useRef as a,useState as o}from"react";import{useMsal as s,useMsalAuthentication as c}from"@azure/msal-react";import{InteractionRequiredAuthError as l,InteractionType as u}from"@azure/msal-browser";import{jsx as d}from"react/jsx-runtime";import{jwtDecode as f}from"jwt-decode";const{GRAPH_ENDPOINTS:p,GRAPH_REQUESTS_LOGIN:m,GRAPH_REQUESTS_PHOTO:h,GRAPH_REQUESTS_BACKEND:g,fetchMsGraph:_,isInIframe:v}=e,{getApiScope:y}=t,b=({children:e,account:t,setAccount:b,setPhoto:x,setRoles:S,authState:C,setAuthState:w,withoutLoader:T,loadingComponent:E,unauthorizedComponent:D,withoutBackend:O})=>{let{instance:k,accounts:A,inProgress:j}=s(),{login:M,result:N,error:P,acquireToken:F}=c(u.Silent,m),[I,L]=o(!1),R=a(!1);return i(()=>{I
|
|
1
|
+
import{auth as e,environment as t}from"../../atoms/utils/auth_environment.js";import{FullPageSpinner as n}from"../../molecules/FullPageSpinner/FullPageSpinner.js";import{MissingAccessToApp as r}from"../../organisms/Status/collections/MissingAccessToApp.js";import{useEffect as i,useRef as a,useState as o}from"react";import{useMsal as s,useMsalAuthentication as c}from"@azure/msal-react";import{InteractionRequiredAuthError as l,InteractionType as u}from"@azure/msal-browser";import{jsx as d}from"react/jsx-runtime";import{jwtDecode as f}from"jwt-decode";const{GRAPH_ENDPOINTS:p,GRAPH_REQUESTS_LOGIN:m,GRAPH_REQUESTS_PHOTO:h,GRAPH_REQUESTS_BACKEND:g,fetchMsGraph:_,isInIframe:v}=e,{getApiScope:y}=t,b=({children:e,account:t,setAccount:b,setPhoto:x,setRoles:S,authState:C,setAuthState:w,withoutLoader:T,loadingComponent:E,unauthorizedComponent:D,withoutBackend:O})=>{let{instance:k,accounts:A,inProgress:j}=s(),{login:M,result:N,error:P,acquireToken:F}=c(u.Silent,m),[I,L]=o(!1),R=a(!1);return i(()=>{if(I)return;let e=async()=>{console.log(`[AuthProvider] Initializing`),await k.initialize(),console.log(`[AuthProvider] Finished initializing`),L(!0)};e().catch(e=>{console.error(`[AuthProvider] Error during initialization`,e)})},[k,I]),i(()=>{I&&(P instanceof l&&!v()&&C!==`unauthorized`?(console.error(P),console.log(`[AuthProvider] No account found, need to login via. redirect`),M(u.Redirect,m).catch(e=>{console.error(`[AuthProvider] Error during login`,e)})):N?.account&&!t?(console.log(`[AuthProvider] Found account in useMsalAuth result, setting that one as active`),k.setActiveAccount(N.account),b(N.account)):A.length>0&&!t?(console.log(`[AuthProvider] Found account in accounts array, setting that one as active`),k.setActiveAccount(A[0]),b(A[0])):P&&console.error(`[AuthProvider] Unexpected error:`,P))},[t,A,P,k,I,M,N,b,C]),i(()=>{if(!t||!I||R.current||j!==`none`)return;R.current=!0;let e=async()=>{try{let e=await F(u.Silent,h);if(e){let t=await _(p.PHOTO,e.accessToken);if(t.status===404)return null;let n=await t.blob(),r=window.URL??window.webkitURL,i=r.createObjectURL(n);x(i)}}catch(e){console.error(e)}},n=async()=>{try{let e=await F(u.Silent,g(y(import.meta.env.VITE_API_SCOPE)));if(console.log(`[AuthProvider] Successfully acquired token`),e&&e.accessToken){console.log(`[AuthProvider] Decoding token`);let t=f(e.accessToken);if(console.log(`[AuthProvider] Token was valid`),t.roles)console.log(`[AuthProvider] Found roles`),S(t.roles);else throw Error(`Could not find roles in token`);w(`authorized`)}}catch(e){console.error(`[AuthProvider] Token error when trying to get roles!`,e),w(`unauthorized`)}},r=async()=>{await e(),O?w(`authorized`):await n()};r()},[t,F,P,I,j,w,x,S,O]),C===`unauthorized`?D??d(r,{}):T?e:C===`loading`||t===void 0?E??d(n,{variant:`application`}):e};export{b as AuthProviderInner};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{EnvironmentType as e}from"../atoms/enums/Environment.js";import{environment as t}from"../atoms/utils/auth_environment.js";import{useLocalStorage as n}from"../atoms/hooks/useLocalStorage.js";import{usingReleaseNoteDate as r}from"../organisms/ReleaseNote/ReleaseNote.utils.js";import{environmentAndAppNameToURL as i}from"../organisms/TopBar/Resources/ReleaseNotesDialog/ReleaseNotesDialog.utils.js";import{sortReleaseNotesByDate as a}from"./ReleaseNotesProvider.utils.js";import{createContext as o,useContext as s,useEffect as c,useState as l}from"react";import{jsx as u}from"react/jsx-runtime";import{useReleaseNotesQuery as d}from"@equinor/subsurface-app-management";const{getEnvironmentName:f,getAppName:p}=t,m=o(void 0),h=()=>{let e=s(m);if(e===void 0)throw Error(`useReleaseNotes must be used within a ReleaseNotesProvider`);return e},g=1e3*60*60*24*14,_=({children:t,enabled:o,popUpNewReleaseNote:s=!1})=>{let{data:h}=d({enabled:o}),[_,v]=l(!1),[y,b]=n(`release-notes-was-viewed-key`,``,g),x=h?.toSorted(a).at(0),S=p(import.meta.env.VITE_NAME),C=f(import.meta.env.VITE_ENVIRONMENT_NAME),w=C===e.LOCALHOST?e.DEVELOP:C,T=i(w,S);return c(()=>{if(!x||!s)return;let e=new Date(r(x)).getTime()
|
|
1
|
+
import{EnvironmentType as e}from"../atoms/enums/Environment.js";import{environment as t}from"../atoms/utils/auth_environment.js";import{useLocalStorage as n}from"../atoms/hooks/useLocalStorage.js";import{usingReleaseNoteDate as r}from"../organisms/ReleaseNote/ReleaseNote.utils.js";import{environmentAndAppNameToURL as i}from"../organisms/TopBar/Resources/ReleaseNotesDialog/ReleaseNotesDialog.utils.js";import{sortReleaseNotesByDate as a}from"./ReleaseNotesProvider.utils.js";import{createContext as o,useContext as s,useEffect as c,useState as l}from"react";import{jsx as u}from"react/jsx-runtime";import{useReleaseNotesQuery as d}from"@equinor/subsurface-app-management";const{getEnvironmentName:f,getAppName:p}=t,m=o(void 0),h=()=>{let e=s(m);if(e===void 0)throw Error(`useReleaseNotes must be used within a ReleaseNotesProvider`);return e},g=1e3*60*60*24*14,_=({children:t,enabled:o,popUpNewReleaseNote:s=!1})=>{let{data:h}=d({enabled:o}),[_,v]=l(!1),[y,b]=n(`release-notes-was-viewed-key`,``,g),x=h?.toSorted(a).at(0),S=p(import.meta.env.VITE_NAME),C=f(import.meta.env.VITE_ENVIRONMENT_NAME),w=C===e.LOCALHOST?e.DEVELOP:C,T=i(w,S);return c(()=>{if(!x||!s)return;let e=new Date(r(x)).getTime(),t=Date.now(),n=t-e;n<=g&&y!==x.releaseId&&(v(!0),b(x.releaseId))},[y,x,s,b]),u(m.Provider,{value:{open:_,setOpen:v,mostRecentReleaseNote:x,showAllReleaseNotesLink:T},children:t})};export{_ as ReleaseNotesProvider,h as useReleaseNotes};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createContext as e,useContext as t,useReducer as n}from"react";import{jsx as r}from"react/jsx-runtime";function i(){let e=t(a);if(e===void 0)throw Error(`Sidebar hook must be used within Provider`);return e}const a=e(void 0),o=`amplify-sidebar-state`,s=()=>{let e=localStorage.getItem(o);return e?JSON.parse(e):{isOpen:!1}},c=e=>{localStorage.setItem(o,JSON.stringify(e))},l=(e,t)=>(c(t),t),u=({children:e})=>{let[t,i]=n(l,s());return r(a.Provider,{value:{isOpen:t.isOpen,setIsOpen:
|
|
1
|
+
import{createContext as e,useContext as t,useReducer as n}from"react";import{jsx as r}from"react/jsx-runtime";function i(){let e=t(a);if(e===void 0)throw Error(`Sidebar hook must be used within Provider`);return e}const a=e(void 0),o=`amplify-sidebar-state`,s=()=>{let e=localStorage.getItem(o);return e?JSON.parse(e):{isOpen:!1}},c=e=>{localStorage.setItem(o,JSON.stringify(e))},l=(e,t)=>(c(t),t),u=({children:e})=>{let[t,i]=n(l,s()),o=e=>{i({isOpen:e})};return r(a.Provider,{value:{isOpen:t.isOpen,setIsOpen:o},children:e})};export{u as SideBarProvider,i as useSideBar};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createContext as e,useCallback as t,useContext as n,useState as r}from"react";import{jsx as i}from"react/jsx-runtime";import{useLocation as a,useNavigate as o,useParams as s}from"
|
|
1
|
+
import{createContext as e,useCallback as t,useContext as n,useState as r}from"react";import{jsx as i}from"react/jsx-runtime";import{useLocation as a,useNavigate as o,useParams as s}from"react-router";const c=e(void 0);function l(){let e=n(c);if(!e)throw Error(`useStepper must be used within a StepperProvider`);return e}const u=({steps:e,children:n,isStepDisabled:l,...u})=>{let{step:d}=s(),f=o(),p=a().pathname.split(`/`).slice(0,-1).join(`/`),m=u.syncToURLParam?Number(d):u?.initialStep??0;if(u.syncToURLParam&&d&&isNaN(Number(d)))throw Error(`Step URL param must be a valid number when using "syncToURLParam"`);if(e.length<2)throw Error(`Stepper must have at least 2 steps`);let[h,g]=r(m),_=u.syncToURLParam?Number(d):h,[v,y]=r(0);if(m>=e.length||m<0)throw Error(`initialStep must be a valid index of the steps array`);let b=e=>{u.syncToURLParam?f(`${p}/${e}`):g(e)},x=()=>{v!==0&&y(0)},S=()=>{if(`subSteps`in e[_]&&e[_].subSteps&&v<e[_].subSteps.length-1){y(e=>e+1);return}_!==e.length-1&&(b(_+1),x())},C=()=>{if(v>0&&`subSteps`in e[_]&&e[_].subSteps&&e[_].subSteps.length>0){y(e=>e-1);return}if(_===0)return;b(_-1);let t=e.at(_-1);t&&`subSteps`in t&&t.subSteps&&y(t.subSteps.length-1)},w=t(t=>l?l({step:e[t],stepIndex:t,currentStep:e[_],currentStepIndex:_}):!1,[l,_,e]);return i(c.Provider,{value:{steps:e,currentStep:_,currentSubStep:v,setCurrentStep:b,goToNextStep:S,goToPreviousStep:C,isStepAtIndexDisabled:w},children:n})};export{u as StepperProvider,l as useStepper};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useOnScreenMultiple as e}from"../atoms/hooks/useOnScreenMultiple.js";import{getValues as t}from"./TableOfContentsProvider.utils.js";import{createContext as n,useCallback as r,useContext as i,useEffect as a,useMemo as o,useRef as s,useState as c}from"react";import{jsx as l}from"react/jsx-runtime";import{useLocation as u,useNavigate as d}from"
|
|
1
|
+
import{useOnScreenMultiple as e}from"../atoms/hooks/useOnScreenMultiple.js";import{getValues as t}from"./TableOfContentsProvider.utils.js";import{createContext as n,useCallback as r,useContext as i,useEffect as a,useMemo as o,useRef as s,useState as c}from"react";import{jsx as l}from"react/jsx-runtime";import{useLocation as u,useNavigate as d}from"react-router";const f=n(void 0);function p(){let e=i(f);if(e===void 0)throw Error(`'useTableOfContents' must be used within provider`);return e}const m=({items:n,children:i,hashNavigation:p})=>{let m=d(),{hash:h}=u(),[g,_]=c(n[0]?.value),[v,y]=c([]),[b,x]=c(h!==``),S=s(!1),C=o(()=>n.flatMap(e=>t([],e)),[n]);a(()=>{y(C.map(e=>document.getElementById(e)))},[C]),a(()=>{h.length||(S.current=!0)},[h]);let w=r(e=>{if(e.value===g)return!0;if(e.children&&g){let n=t([],e);return n.includes(g)}return!1},[g]),T=e(v),E=s(-1),D=r((e,t)=>{let n=C.findIndex(t=>t===e),r=v[n];if(r){let e=t?.shouldInstantlyJumpOnMount&&b?`instant`:t?.behavior??`smooth`;r.scrollIntoView({block:`start`,behavior:e}),E.current=n;let i=1/0,a=0,o=()=>{let e=r?.getBoundingClientRect().top;if(e===i){if(a+=1,a>1){_(C[n]),p&&(m(`#${C[n]}`,{replace:!0}),x(!1)),E.current=-1;return}}else a=0,i=e;requestAnimationFrame(o)};requestAnimationFrame(o)}},[v,p,m,b,C]);return a(()=>{if(T.length===0||T.length!==C.length||E.current!==-1)return;let e=-1;for(let t=T.length-1;t>=0;t--)T[t]&&(e=t);if(e===-1||C.at(e)===void 0)return;let t=h.replace(`#`,``);if(!S.current&&t.length&&C.includes(t)){D(t,{behavior:`instant`,shouldInstantlyJumpOnMount:!0}),S.current=!0;return}_(C[e]),p&&m(`#${C[e]}`,{replace:!0})},[p,m,C,T]),l(f.Provider,{value:{items:n,selected:g,setSelected:D,isActive:w},children:i})};export{m as TableOfContentsProvider,p as useTableOfContents};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useLocalStorage as e}from"../../atoms/hooks/useLocalStorage.js";import{THEME_LOCALSTORAGE_KEY as t}from"./ThemeProvider.constants.js";import{Theme as n}from"../../atoms/enums/Theme.js";import{createContext as r,useContext as i,useEffect as a}from"react";import{jsx as o}from"react/jsx-runtime";const s=r(void 0);function c(){let e=i(s);if(e===void 0)throw Error(`ThemeProvider must be used within Provider`);return e}const l=({children:r})=>{let[i,c]=e(t,n.LIGHT);
|
|
1
|
+
import{useLocalStorage as e}from"../../atoms/hooks/useLocalStorage.js";import{THEME_LOCALSTORAGE_KEY as t}from"./ThemeProvider.constants.js";import{Theme as n}from"../../atoms/enums/Theme.js";import{createContext as r,useContext as i,useEffect as a}from"react";import{jsx as o}from"react/jsx-runtime";const s=r(void 0);function c(){let e=i(s);if(e===void 0)throw Error(`ThemeProvider must be used within Provider`);return e}const l=({children:r})=>{let[i,c]=e(t,n.LIGHT);a(()=>{document.documentElement.setAttribute(`data-theme`,i)},[i]);let l=e=>{c(e)};return o(s.Provider,{value:{theme:i,setTheme:l},children:r})};export{l as ThemeProvider,s as ThemeProviderContext,c as useThemeProvider};
|
|
@@ -21,4 +21,4 @@ import{spacings as e}from"../../atoms/style/spacings.js";import{getHighlightElem
|
|
|
21
21
|
height: 100vh;
|
|
22
22
|
background: none;
|
|
23
23
|
pointer-events: none;
|
|
24
|
-
`,g=({children:e,contentRef:s})=>{let{activeTutorial:g,activeStep:_,unseenTutorialsOnThisPage:v}=f(),y=p()>0,b=n(s),[x,S]=o({width:window.innerWidth,height:window.innerHeight});a(()=>{let e=()=>{S({width:window.innerWidth,height:window.innerHeight})};return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]);let[C,w]=o([]);a(()=>{y
|
|
24
|
+
`,g=({children:e,contentRef:s})=>{let{activeTutorial:g,activeStep:_,unseenTutorialsOnThisPage:v}=f(),y=p()>0,b=n(s),[x,S]=o({width:window.innerWidth,height:window.innerHeight});a(()=>{let e=()=>{S({width:window.innerWidth,height:window.innerHeight})};return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]);let[C,w]=o([]);a(()=>{if(y)return;let e=async()=>{if(g&&_!==void 0){if(!g.steps[_].highlightElement)return w([]);let e=await t(g.id,_,x);return w(e?[e]:[])}let e=await Promise.all(v.map(e=>{if(e.steps.at(0)?.highlightElement)return t(e.id,0,x)}));return w(e.filter(e=>e!==void 0))};e()},[_,g,y,v,x]);let T=g?[g]:v.filter(e=>e.steps[0].highlightElement&&C.some(e=>e.id)||!e.steps[0].highlightElement);return T.length>0?u(c,{children:[e,l(h,{children:T.map(e=>{let t=C.find(t=>t.id===e.id);return l(i,{isHighlighting:C.length>0,contentRef:s,...e,...t},e.id)})}),u(m,{children:[u(`mask`,{id:`tutorials-rectangles`,children:[l(`rect`,{width:`100%`,height:`100%`,fill:`white`}),l(d.g,{style:{translateY:b},children:C.map(e=>l(d.path,{"data-testid":`tutorial-mask-${e.id}`,initial:{opacity:0,d:`M ${e.left} ${e.top} h ${e.width} v ${e.height} h -${e.width} Z`},animate:{opacity:1,d:`M ${e.left} ${e.top} h ${e.width} v ${e.height} h -${e.width} Z`},fill:`black`},e.id))})]}),l(d.rect,{width:`100%`,height:`100%`,fill:`rgba(111, 111, 111, 0.35)`,mask:`url(#tutorials-rectangles)`,...r})]})]}):l(c,{children:e})};export{g as TutorialHighlightingProviderInner};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@equinor/amplify-component-lib",
|
|
3
|
-
"version": "9.16.1
|
|
3
|
+
"version": "9.16.1",
|
|
4
4
|
"description": "Frontend Typescript components for the Amplify team",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@equinor/eds-icons": "^0.22.0",
|
|
55
|
-
"@equinor/subsurface-app-management": "4.4.3
|
|
55
|
+
"@equinor/subsurface-app-management": "^4.4.3",
|
|
56
56
|
"@eslint/js": "^9.22.0",
|
|
57
57
|
"@faker-js/faker": "^9.6.0",
|
|
58
58
|
"@storybook/addon-designs": "^10.0.2",
|
|
@@ -72,6 +72,7 @@
|
|
|
72
72
|
"@types/random-seed": "^0.3.5",
|
|
73
73
|
"@types/react": "^19.0.10",
|
|
74
74
|
"@types/react-dom": "^19.0.4",
|
|
75
|
+
"@types/react-router-dom": "^5.3.3",
|
|
75
76
|
"@types/styled-components": "^5.1.34",
|
|
76
77
|
"@types/uuid": "^10.0.0",
|
|
77
78
|
"@types/wicg-file-system-access": "^2023.10.5",
|
|
@@ -92,10 +93,12 @@
|
|
|
92
93
|
"prettier": "^3.5.3",
|
|
93
94
|
"react": "^19.0.0",
|
|
94
95
|
"react-dom": "^19.0.0",
|
|
96
|
+
"react-router": "^6.28.0",
|
|
97
|
+
"react-router-dom": "^6.28.0",
|
|
95
98
|
"resize-observer-polyfill": "^1.5.1",
|
|
96
99
|
"resolve-tspaths": "^0.8.23",
|
|
97
100
|
"storybook": "^9.1.1",
|
|
98
|
-
"tsdown": "^0.14.
|
|
101
|
+
"tsdown": "^0.14.1",
|
|
99
102
|
"typescript": "^5.8.2",
|
|
100
103
|
"typescript-eslint": "^8.26.1",
|
|
101
104
|
"uuid": "^11.1.0",
|
|
@@ -110,11 +113,12 @@
|
|
|
110
113
|
},
|
|
111
114
|
"peerDependencies": {
|
|
112
115
|
"@equinor/eds-icons": "*",
|
|
113
|
-
"@equinor/subsurface-app-management": "4.4.3
|
|
116
|
+
"@equinor/subsurface-app-management": ">=4.4.3",
|
|
114
117
|
"@tanstack/react-query": "*",
|
|
115
|
-
"@tanstack/react-router": "*",
|
|
116
118
|
"react": "^19.0.0",
|
|
117
119
|
"react-dom": "^19.0.0",
|
|
120
|
+
"react-router": "^6.28.0",
|
|
121
|
+
"react-router-dom": "^6.28.0",
|
|
118
122
|
"@equinor/eds-core-react": "0.44.0",
|
|
119
123
|
"@equinor/eds-data-grid-react": "^0.7.5",
|
|
120
124
|
"@tiptap/core": "^3.1.0",
|