@equinor/amplify-component-lib 9.16.1 → 9.17.0-beta.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.
- 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/useSelect.d.ts +3 -3
- package/dist/atoms/hooks/useSelect.js +1 -1
- package/dist/atoms/index.d.ts +0 -1
- 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 +1 -5
- 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.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/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.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/ProfileAvatar/ProfileAvatar.js +1 -1
- package/dist/molecules/RichTextEditor/MenuBar/AddImageButton.js +1 -1
- package/dist/molecules/RichTextEditor/MenuBar/MenuBar.d.ts +5 -5
- 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 +1 -1
- 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/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 +0 -3
- 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/ToggleGroup.js +10 -1
- package/dist/organisms/ToggleGroup/ToggleGroup.types.d.ts +1 -0
- 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/Notifications/NotificationProvider.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 +5 -9
- package/dist/atoms/hooks/useSearchParameter.d.ts +0 -12
- package/dist/atoms/hooks/useSearchParameter.js +0 -1
- package/dist/molecules/Sieve/Filter.d.ts +0 -10
- package/dist/molecules/Sieve/Filter.js +0 -1
- package/dist/molecules/Sieve/Sieve.d.ts +0 -7
- package/dist/molecules/Sieve/Sieve.js +0 -1
- package/dist/molecules/Sieve/Sieve.styles.js +0 -43
- package/dist/molecules/Sieve/Sieve.types.d.ts +0 -28
- package/dist/molecules/Sieve/Sort.js +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react113 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: react113.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & react113.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 react111 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: react111.ForwardRefExoticComponent<FieldMenuProps & react111.RefAttributes<HTMLDivElement>>;
|
|
13
13
|
//#endregion
|
|
14
14
|
export { FieldMenu };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react140 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<react140.DetailedHTMLProps<react140.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, ColorboxProps>> & string;
|
|
9
9
|
//#endregion
|
|
10
10
|
export { Colorbox };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react139 from "react";
|
|
2
2
|
import { Dispatch, FC, ReactNode, SetStateAction } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/organisms/TopBar/Notifications/NotificationProvider.d.ts
|
|
@@ -6,7 +6,7 @@ interface NotificationContext {
|
|
|
6
6
|
setIsOpen: Dispatch<SetStateAction<boolean>>;
|
|
7
7
|
isOpen: boolean;
|
|
8
8
|
}
|
|
9
|
-
declare const NotificationContext:
|
|
9
|
+
declare const NotificationContext: react139.Context<NotificationContext | undefined>;
|
|
10
10
|
declare const useNotification: () => NotificationContext;
|
|
11
11
|
//#endregion
|
|
12
12
|
export { useNotification };
|
|
@@ -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`;return`https://equinor${l(import.meta.env.VITE_ENVIRONMENT_NAME)===e.PRODUCTION?``:`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?`:bug: Bug report`:`:bulb: Suggestion`,d=[],f=[];f.push({type:`mrkdwn`,text:`*Title* \n ${e.title}`}),d.push({type:`mrkdwn`,text:` ${n(new Date,{format:`DD. month YYYY`})}`}),e.url&&d.push({type:`mrkdwn`,text:`*<${e.url}|Error URL>*`}),e.urgency&&f.push({type:`mrkdwn`,text:`*Severity* \n ${u(e)} ${e.urgency}`});let p=[{type:`header`,text:{type:`plain_text`,text:l,emoji:!0}},{type:`section`,fields:d},{type:`section`,fields:f},{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&&p.push({type:`section`,text:{type:`mrkdwn`,text:`*<${m(s)}|:link: Click to open the ticket in Service Now>*`}}),p.push({type:`divider`}),JSON.stringify(p)};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 i
|
|
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{Severity as 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 Severity};
|
|
@@ -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(()=>{v||(async e=>{let n=await t(e);_(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(`.`));new FileReader().readAsDataURL(e[0]);let n=[];s&&n.push(...s);let r=[...t,...n],i=d(r,(e,t)=>e.name===t.name&&e.size===t.size);f(i)}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()
|
|
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:e=>{c(`url`,e.currentTarget.value),(e.currentTarget.value===``||l&&e.currentTarget.value.includes(t))&&u(!1)},onBlur:e=>{let n=e.currentTarget.value;!n.includes(t)&&n.length!==0&&u(!0)}})})})};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 i
|
|
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{ResponseStatus as 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 ResponseStatus};
|
|
@@ -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()
|
|
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:()=>{d(!1)},"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})
|
|
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:()=>{g(!1)},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"react-router
|
|
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"@tanstack/react-router";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);return s(d,{onClick:()=>{p(a),e?.(a),n()},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(()=>{
|
|
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||(async()=>{console.log(`[AuthProvider] Initializing`),await k.initialize(),console.log(`[AuthProvider] Finished initializing`),L(!0)})().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).createObjectURL(n);x(r)}}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`)}};(async()=>{await e(),O?w(`authorized`):await n()})()},[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();Date.now()-e<=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())
|
|
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:e=>{i({isOpen:e})}},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"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(
|
|
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"@tanstack/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({strict:!1}),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({to:`${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"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([]),
|
|
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"@tanstack/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=s(!1),x=o(()=>n.flatMap(e=>t([],e)),[n]);a(()=>{y(x.map(e=>document.getElementById(e)))},[x]),a(()=>{h.length||(b.current=!0)},[h]);let S=r(e=>e.value===g?!0:e.children&&g?t([],e).includes(g):!1,[g]),C=e(v),w=s(-1),T=r((e,t)=>{let n=x.findIndex(t=>t===e);if(p){_(x[n]),m({to:`.`,hash:`#${x[n]}`,hashScrollIntoView:!1,replace:!0});return}let r=v[n];if(r){let e=t?.behavior??`smooth`;r.scrollIntoView({block:`start`,behavior:e}),w.current=n;let i=1/0,a=0,o=()=>{let e=r?.getBoundingClientRect().top;if(e===i){if(a+=1,a>1){_(x[n]),w.current=-1;return}}else a=0,i=e;requestAnimationFrame(o)};requestAnimationFrame(o)}},[v,p,m,x]);return a(()=>{if(h&&!b.current){b.current=!0;let e=decodeURIComponent(h.replace(`#`,``));if(!e.length||!x.includes(e))return;_(e),m({to:`.`,hash:`#${e}`,hashScrollIntoView:{block:`start`,behavior:`instant`},replace:!0})}},[h,m,x]),a(()=>{if(C.length===0||C.length!==x.length||w.current!==-1||!b.current)return;let e=-1;for(let t=C.length-1;t>=0;t--)C[t]&&(e=t);e===-1||x.at(e)===void 0||(_(x[e]),p&&m({to:`.`,hash:`#${x[e]}`,hashScrollIntoView:!1,replace:!0}))},[T,p,m,x,C]),l(f.Provider,{value:{items:n,selected:g,setSelected:T,isActive:S},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);a(()=>{document.documentElement.setAttribute(`data-theme`,i)},[i])
|
|
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);return a(()=>{document.documentElement.setAttribute(`data-theme`,i)},[i]),o(s.Provider,{value:{theme:i,setTheme:e=>{c(e)}},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(()=>{
|
|
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||(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))})()},[_,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.
|
|
3
|
+
"version": "9.17.0-beta.0",
|
|
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": "
|
|
55
|
+
"@equinor/subsurface-app-management": "4.4.3-beta.0",
|
|
56
56
|
"@eslint/js": "^9.22.0",
|
|
57
57
|
"@faker-js/faker": "^9.6.0",
|
|
58
58
|
"@storybook/addon-designs": "^10.0.2",
|
|
@@ -72,7 +72,6 @@
|
|
|
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",
|
|
76
75
|
"@types/styled-components": "^5.1.34",
|
|
77
76
|
"@types/uuid": "^10.0.0",
|
|
78
77
|
"@types/wicg-file-system-access": "^2023.10.5",
|
|
@@ -93,12 +92,10 @@
|
|
|
93
92
|
"prettier": "^3.5.3",
|
|
94
93
|
"react": "^19.0.0",
|
|
95
94
|
"react-dom": "^19.0.0",
|
|
96
|
-
"react-router": "^6.28.0",
|
|
97
|
-
"react-router-dom": "^6.28.0",
|
|
98
95
|
"resize-observer-polyfill": "^1.5.1",
|
|
99
96
|
"resolve-tspaths": "^0.8.23",
|
|
100
97
|
"storybook": "^9.1.1",
|
|
101
|
-
"tsdown": "^0.14.
|
|
98
|
+
"tsdown": "^0.14.2",
|
|
102
99
|
"typescript": "^5.8.2",
|
|
103
100
|
"typescript-eslint": "^8.26.1",
|
|
104
101
|
"uuid": "^11.1.0",
|
|
@@ -113,12 +110,11 @@
|
|
|
113
110
|
},
|
|
114
111
|
"peerDependencies": {
|
|
115
112
|
"@equinor/eds-icons": "*",
|
|
116
|
-
"@equinor/subsurface-app-management": "
|
|
113
|
+
"@equinor/subsurface-app-management": "4.4.3-beta.0",
|
|
117
114
|
"@tanstack/react-query": "*",
|
|
115
|
+
"@tanstack/react-router": "*",
|
|
118
116
|
"react": "^19.0.0",
|
|
119
117
|
"react-dom": "^19.0.0",
|
|
120
|
-
"react-router": "^6.28.0",
|
|
121
|
-
"react-router-dom": "^6.28.0",
|
|
122
118
|
"@equinor/eds-core-react": "0.44.0",
|
|
123
119
|
"@equinor/eds-data-grid-react": "^0.7.5",
|
|
124
120
|
"@tiptap/core": "^3.1.0",
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
//#region src/atoms/hooks/useSearchParameter.d.ts
|
|
2
|
-
declare function useSearchParameter<T>({
|
|
3
|
-
key,
|
|
4
|
-
initialValue,
|
|
5
|
-
parser
|
|
6
|
-
}: {
|
|
7
|
-
key: string;
|
|
8
|
-
initialValue?: T;
|
|
9
|
-
parser?: (value: string) => T;
|
|
10
|
-
}): readonly [T | undefined, (action: ((value: T | undefined) => T) | T) => void];
|
|
11
|
-
//#endregion
|
|
12
|
-
export { useSearchParameter };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{useRef as e}from"react";import{useSearchParams as t}from"react-router-dom";function n({key:n,initialValue:r,parser:i}){let[a,o]=t(),s=e(!1),c=a.get(n)??void 0,l=i&&c?i(c):c,u=!s.current&&l===void 0?r:l,d=e=>{if(s.current||=!0,e instanceof Function){let t=e(u);d(t)}else{let t=new URLSearchParams(a),r=typeof e==`string`?e:JSON.stringify(e);r===void 0||r===``||r===`null`||r===`[]`||r===`{}`?t.delete(n):t.set(n,r),o(t)}};return[u,d]}export{n as useSearchParameter};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{tokens as e}from"../../node_modules/@equinor/eds-tokens/dist/esm/base/index.js";import{useOutsideClick as t}from"../../node_modules/@equinor/eds-utils/dist/esm/hooks/useOutsideClick.js";import{Chip as n,MenuItem as r}from"./Sieve.styles.js";import{useRef as i,useState as a}from"react";import{Icon as o,Menu as s}from"@equinor/eds-core-react";import{Fragment as c,jsx as l,jsxs as u}from"react/jsx-runtime";import{arrow_drop_right as d,checkbox as f,checkbox_outline as p,filter_list as m}from"@equinor/eds-icons";const{colors:h}=e,g=({options:e,filterValues:g,setFilterValues:_})=>{let v=i(null),[y,b]=a(null),x=i(null),S=i(null),[C,w]=a(-1),[T,E]=a(!1);t(v.current,e=>{y===null&&T&&x.current&&!x.current.contains(e.target)?E(!1):T&&y!==null&&x.current&&!x.current.contains(e.target)&&S.current&&!S.current.contains(e.target)&&(E(!1),w(-1),b(null))});let D=()=>{E(!T),w(-1),b(null)},O=(e,t)=>{C===t?(w(-1),b(null)):(w(t),b(e.currentTarget))},k=(e,t)=>{let n={...g};if(e in n&&n[e].some(e=>e.value===t.value)){let r=n[e].findIndex(e=>e.value===t.value);n[e].splice(r,1),n[e].length===0&&delete n[e]}else n[e]?n[e].push(t):n[e]=[t];Object.keys(n).flatMap(e=>n?.[e]).length===0&&(n=void 0),_(n)};return e.length===0?null:u(c,{children:[u(n,{ref:v,onClick:D,children:[`Filter by `,l(o,{data:m})]}),T&&l(s,{open:!0,ref:x,anchorEl:v.current,placement:`bottom-start`,children:l(s.Section,{title:`Filter by`,children:e.map((e,t)=>u(r,{active:C===t,onClick:e=>O(e,t),children:[e.label,l(o,{data:d,color:h.text.static_icons__tertiary.rgba})]},`filter-menu-item-${e.label}`))})}),C!==-1&&l(s,{open:!0,anchorEl:y,ref:S,placement:`right-start`,children:l(s.Section,{title:e[C].label,children:e[C]?.options.map(t=>u(r,{onClick:()=>k(e[C].label,t),children:[t.label,l(o,{data:g?.[e[C].label]?.some(e=>e.value===t.value)?f:p,color:h.interactive.primary__resting.rgba})]},`filter-option-${t.label}`))})})]})};export{g as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Container as e,FilterChip as t,Search as n,Wrapper as r}from"./Sieve.styles.js";import i from"./Filter.js";import a from"./Sort.js";import{useCallback as o,useEffect as s,useRef as c,useState as l}from"react";import{jsx as u,jsxs as d}from"react/jsx-runtime";import{debounce as f}from"lodash";import{useSearchParams as p}from"react-router-dom";const m=({searchPlaceholder:m,sortOptions:h,filterOptions:g,sieveValue:_,onUpdate:v,showChips:y=!0,minSearchWidth:b=`24rem`,syncWithSearchParams:x=!1,isLoadingOptions:S=!1,debounceSearchValue:C=!1,onIsTyping:w})=>{let[T,E]=l(_.searchValue??``),D=c(!1),[O,k]=p(),A=c(!1);s(()=>{if(!A.current&&x&&!S){let e=O.get(`search`)??void 0,t=g?.map(e=>e.label)??[],n={};for(let e of t){let t=g?.find(t=>t.label===e)?.options,r=JSON.parse(O.get(e.toLowerCase())??`[]`);t!==void 0&&(n[e]=t.filter(e=>r.includes(e.label)))}v({searchValue:e,filterValues:n,sortValue:_.sortValue}),A.current=!0}},[g,A,S,v,O,_.sortValue,x]);let j=c(`{}`);s(()=>{if(x&&A.current&&!S&&JSON.stringify(_)!==j.current){_.searchValue===void 0?O.delete(`search`):O.set(`search`,_.searchValue);let e=g?.map(e=>e.label)??[],t=_.filterValues;for(let n of e)t?.[n]&&t[n].length>0?O.set(n.toLowerCase(),JSON.stringify(t[n].map(e=>e.label))):O.delete(n.toLowerCase());j.current=JSON.stringify(_),k(O),v(_)}},[g,A,S,v,O,k,_,x]);let M=o((e,t)=>{let n={..._,[e]:t};v(n)},[v,_]),N=o(f((e,t)=>{M(e,t),w?.(!1),D.current=!1},800),[M,w]),P=(e,t)=>{let n={..._.filterValues},r=n[e].findIndex(e=>e.value===t.value);n[e].splice(r,1),n[e].length===0&&delete n[e],Object.keys(n).flatMap(e=>n?.[e]).length===0&&(n=void 0),M(`filterValues`,n)},F=()=>{M(`filterValues`,void 0)},I=e=>{C?(E(e.target.value),e.target.value===``?(N.cancel(),M(`searchValue`,void 0),w?.(!1),D.current=!1):(N(`searchValue`,e.target.value),D.current||=(w?.(!0),!0))):M(`searchValue`,e.target.value===``?void 0:e.target.value)};return d(r,{className:`sieve-container`,children:[d(e,{children:[u(n,{style:{minWidth:b},placeholder:m,value:C?T:_.searchValue??``,onChange:I}),h!==void 0&&u(a,{options:h,selectedOption:_.sortValue,setSelectedOption:e=>M(`sortValue`,e)}),g!==void 0&&u(i,{options:g,filterValues:_.filterValues,setFilterValues:e=>M(`filterValues`,e)})]}),y&&d(e,{children:[Object.keys(_.filterValues??{}).map(e=>_.filterValues?.[e].map(n=>u(t,{onDelete:()=>P(e,n),children:n?.label},`filter-chip-${n?.value}`))),_.filterValues&&Object.keys(_.filterValues).flatMap(e=>_.filterValues?.[e]).length>1&&u(t,{onDelete:F,children:`Remove all`})]})]})};export{m as Sieve};
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import{colors as e}from"../../atoms/style/colors.js";import{spacings as t}from"../../atoms/style/spacings.js";import{Chip as n,Menu as r,Search as i}from"@equinor/eds-core-react";import a from"styled-components";const o=a.div`
|
|
2
|
-
display: flex;
|
|
3
|
-
flex-direction: column;
|
|
4
|
-
gap: ${t.medium};
|
|
5
|
-
`,s=a.div`
|
|
6
|
-
display: flex;
|
|
7
|
-
gap: ${t.medium};
|
|
8
|
-
align-items: center;
|
|
9
|
-
`,c=a(n)`
|
|
10
|
-
color: ${e.text.static_icons__default.rgba};
|
|
11
|
-
background: ${e.ui.background__light.rgba};
|
|
12
|
-
border: 1px solid ${e.ui.background__medium.rgba};
|
|
13
|
-
line-height: normal;
|
|
14
|
-
transition: background 0.15s ease-in;
|
|
15
|
-
|
|
16
|
-
svg {
|
|
17
|
-
z-index: auto;
|
|
18
|
-
fill: ${e.text.static_icons__default.rgba};
|
|
19
|
-
}
|
|
20
|
-
`,l=a(i)`
|
|
21
|
-
> div {
|
|
22
|
-
box-shadow: none;
|
|
23
|
-
outline: none !important;
|
|
24
|
-
background: ${e.ui.background__default.rgba};
|
|
25
|
-
> input {
|
|
26
|
-
color: ${e.text.static_icons__default.rgba};
|
|
27
|
-
box-shadow: inset 0 -1px 0 0 ${e.text.static_icons__tertiary.rgba};
|
|
28
|
-
&:hover {
|
|
29
|
-
box-shadow: inset 0 -2px 0 0 ${e.text.static_icons__tertiary.rgba};
|
|
30
|
-
}
|
|
31
|
-
&:focus {
|
|
32
|
-
box-shadow: inset 0 -2px 0 0 ${e.interactive.primary__resting.rgba};
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
`,u=a(r.Item)`
|
|
37
|
-
outline: none !important;
|
|
38
|
-
> div {
|
|
39
|
-
grid-template-columns: 1fr auto;
|
|
40
|
-
}
|
|
41
|
-
`,d=a(n)`
|
|
42
|
-
background: none;
|
|
43
|
-
`;export{d as Chip,s as Container,c as FilterChip,u as MenuItem,l as Search,o as Wrapper};
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { SieveFilterGroup } from "./Filter.js";
|
|
2
|
-
|
|
3
|
-
//#region src/molecules/Sieve/Sieve.types.d.ts
|
|
4
|
-
interface SieveOption {
|
|
5
|
-
label: string;
|
|
6
|
-
value: string;
|
|
7
|
-
}
|
|
8
|
-
type FilterValues = Record<string, SieveOption[]>;
|
|
9
|
-
interface SieveValue {
|
|
10
|
-
searchValue: string | undefined;
|
|
11
|
-
sortValue: SieveOption | undefined;
|
|
12
|
-
filterValues: FilterValues | undefined;
|
|
13
|
-
}
|
|
14
|
-
interface SieveProps {
|
|
15
|
-
searchPlaceholder: string;
|
|
16
|
-
sortOptions?: SieveOption[];
|
|
17
|
-
filterOptions?: SieveFilterGroup[];
|
|
18
|
-
sieveValue: SieveValue;
|
|
19
|
-
onUpdate: (value: SieveValue) => void;
|
|
20
|
-
showChips?: boolean;
|
|
21
|
-
minSearchWidth?: string;
|
|
22
|
-
syncWithSearchParams?: boolean;
|
|
23
|
-
isLoadingOptions?: boolean;
|
|
24
|
-
debounceSearchValue?: boolean;
|
|
25
|
-
onIsTyping?: (value: boolean) => void;
|
|
26
|
-
}
|
|
27
|
-
//#endregion
|
|
28
|
-
export { type FilterValues, type SieveOption, type SieveProps, type SieveValue };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{colors as e}from"../../atoms/style/colors.js";import{Chip as t,MenuItem as n}from"./Sieve.styles.js";import{useRef as r,useState as i}from"react";import{Icon as a,Menu as o}from"@equinor/eds-core-react";import{Fragment as s,jsx as c,jsxs as l}from"react/jsx-runtime";import{radio_button_selected as u,radio_button_unselected as d,sort as f}from"@equinor/eds-icons";const p=({options:p,selectedOption:m,setSelectedOption:h})=>{let g=r(null),[_,v]=i(!1),y=()=>{v(!_)},b=()=>{v(!1)},x=e=>{h(e)};return p.length===0?null:l(s,{children:[l(t,{ref:g,onClick:y,children:[`Sort by `,c(a,{data:f})]}),_&&c(o,{open:!0,anchorEl:g.current,onClose:b,placement:`bottom-start`,children:c(o.Section,{title:`Sort by`,children:p.map(t=>l(n,{onClick:()=>x(t),children:[t.label,c(a,{data:m?.value===t.value?u:d,color:e.interactive.primary__resting.rgba})]},`sort-item-${t.value}`))})})]})};export{p as default};
|