@corva/ui 3.62.0-3 → 3.62.0-5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- import o from"@babel/runtime/helpers/defineProperty";import s from"@babel/runtime/helpers/slicedToArray";import{useContext as t,useState as n,useMemo as e}from"react";import i from"classnames";import{pickBy as p,pick as r,noop as c}from"lodash";import{useTheme as m}from"@material-ui/core";import{BugReport as a}from"@material-ui/icons";import l from"../AppContext.js";import{DevCenterRouterContext as d}from"../DevCenterRouterContext/DevCenterRouterContext.js";import"../DevCenterRouterContext/UniversalLink/UniversalLink.js";import"@babel/runtime/helpers/objectWithoutProperties";import"react-router-dom";import"query-string";import{jsx as u,jsxs as j,Fragment as A}from"react/jsx-runtime";import g from"./effects/useAppSettings.js";import C from"./effects/useAnnotationsList.js";import I from"./effects/useAnnotationsData.js";import V from"./effects/useAppMaximized.js";import v from"./components/AppActions/AppActions.js";import h from"./components/AppSettingsDialog/AppSettingsDialog.js";import"./components/AppSettingsDialog/components/RemoveAppButton.js";import"./components/AppSettingsDialog/components/SettingsAccordion.js";import"./components/AnnotationsButton/AnnotationsButton.js";import{NonPriorityMenus as S}from"./components/NonPriorityMenus/NonPriorityMenus.js";import f from"./components/FullscreenButton/FullscreenButton.js";import"./components/AppInfoMessage/AppInfoMessage.js";import b from"./components/DevCenterAppView/DevCenterAppView.js";import{DcFullscreenElemsCoordinatorProvider as D}from"./components/DcFullscreenElemsCoordinatorProvider/DcFullscreenElemsCoordinatorProvider.js";import"./components/DcFullscreenElemsCoordinatorProvider/IsInsideDcFullscreenElemProvider.js";import"./components/IsInsideIsolatedDcAppProvider/IsInsideIsolatedDcAppProvider.js";import P from"./components/RestoreAppSizeButton/index.js";import{getAppVersion as M,getAppAvailability as y}from"./utils.js";import T from"./components/PriorityMenus/PriorityMenus.js";import{RollbarWrapper as x}from"./components/RollbarWrapper/RollbarWrapper.js";import{CommentsSwitchProvider as L}from"./components/CommentsSwitch/CommentsSwitchProvider.js";import{CommentsSwitchButton as k}from"./components/CommentsSwitch/CommentsSwitchButton.js";import B from"./DevCenterAppContainer.css.js";import{isInsideNewMobileApp as O,isNativeDetected as H,isMobileDetected as F}from"../../../utils/mobileDetect.js";import w from"../../Icons/AnnotationIcon.js";import R from"../../Annotations/components/AnnotationsList/index.js";import"../../Annotations/components/LastAnnotation/index.js";import{AnnotationsProvider as z}from"../../Annotations/AnnotationsContext.js";import"../../Toaster/Toaster.js";import{ToastContainer as q}from"../../Toaster/ToastContainer.js";import"../../../clients/subscriptions/constants.js";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/regenerator";import"querystring";import"uuid/v1";import"../../../clients/subscriptions.v1.js";import"../../../clients/jsonApi/index.js";import"../../../clients/subscriptions/subscriptions-client.factory.js";import E from"../../../effects/useDevCenterApp.js";import"../../../utils/index.js";import"uuid";import"jsona";import"../../../constants/segment.js";import"../../../utils/env.js";import{DEV_CENTER_CLI_APP_ID as W}from"../../../constants/devcenter.js";import"../../../constants/goals.js";import"../../../constants/alerts.js";import"../../../constants/apps.js";import"../../../constants/drillstring.js";import"../../../constants/completion.js";import"../../../constants/appPackages.js";import"../../../constants/notifications.js";import"../../../constants/feed.js";import"../../../constants/bha.js";import"../../../constants/corvaCompanyId.js";import"../../GradientManager/configuration/constants.js";import"../../StatusBadge/constants.js";import"@babel/runtime/helpers/toConsumableArray";import"lodash/set";import"lodash/get";import"lodash/unset";import"moment";import"../../../clients/api/apiCore.js";import"../../../clients/constants.js";import"../../../clients/sso/auth0.js";import"../../../clients/sso/oauth2.js";import"../../../clients/api/rateLimiter.js";import"lodash/isEmpty";import"lodash/sortBy";import"../../../constants/streamSourceType.js";import"./components/CommentsSwitch/CommentsSwitchContext.js";import{AppCommonsProvider as _}from"../../../componentsV2/AppCommonsProvider/AppCommonsProvider.js";import"../../../componentsV2/AppCommonsProvider/AppCommonsContext.js";import"../../../componentsV2/AppSettings/AppSettingsPinningContext.js";import{getAppSegment as U,getAppName as G,getTimestampFromQuery as N}from"../../../utils/devcenter.js";import{HelpCenterIcon as K}from"../../HelpCenter/HelpCenterIcon.js";import"../../../componentsV2/Text/Text.js";import"../../../componentsV2/Grid/Grid.js";import"../../../componentsV2/Grid/Cell.js";import"../../../componentsV2/Header/Header.scss.js";import"../../../componentsV2/Button/Button.js";import{ButtonIcon as Z}from"../../../componentsV2/ButtonIcon/ButtonIcon.js";import{Tooltip as J}from"../../../componentsV2/Tooltip/Tooltip.js";import"../../../componentsV2/Popover/Popover.js";import"../../../componentsV2/Radio/Radio.js";import"../../../componentsV2/RadioAndCheckboxGroup/RadioAndCheckboxGroup.scss.js";import"../../../componentsV2/Checkbox/Checkbox.js";import"../../../componentsV2/TextInput/TextInput.js";import"../../../componentsV2/TextInputNext/TextInputNext.js";import"../../../componentsV2/Label/Label.js";import"../../../componentsV2/TextEndTruncated/TextEndTruncated.scss.js";import"../../../componentsV2/TextMiddleTruncated/TextMiddleTruncated.constants.js";import"../../../componentsV2/TextMiddleTruncated/TextMiddleTruncated.scss.js";import"../../../componentsV2/TextLink/TextLink.js";import"../../../componentsV2/Chip/Chip.js";import"../../../componentsV2/ChipAlert/ChipAlert.js";import"../../../componentsV2/ChipIndicator/ChipIndicator.js";import"../../../componentsV2/Avatar/Avatar.js";import"../../../componentsV2/AvatarGroup/AvatarGroup.js";import"@material-ui/lab";import"../../../componentsV2/ToggleButtons/ToggleButtons.scss.js";import"../../../componentsV2/Paper/Paper.js";import"../../../componentsV2/ModalWindow/ModalWindow.js";import"../../../componentsV2/Modal/Modal.scss.js";import"../../../componentsV2/Menu/Menu.js";import"@icon-park/react/es/all";import"../../../icons/IconParkProvider.js";import"../../../icons/customIcons/icons/AddMessage.js";import"../../../icons/customIcons/icons/Attention.js";import"../../../icons/customIcons/icons/Collapse.js";import"../../../icons/customIcons/icons/Dashboard.js";import"../../../icons/customIcons/icons/Expand.js";import"../../../icons/customIcons/icons/FolderClosed.js";import"../../../icons/customIcons/icons/FolderClosedFilled.js";import"../../../icons/customIcons/icons/FolderOpened.js";import"../../../icons/customIcons/icons/GreaterOrEqual.js";import"../../../icons/customIcons/icons/LessOrEqual.js";import"../../../icons/customIcons/icons/Search.js";import"../../../icons/customIcons/icons/SearchOne.js";import"../../../icons/customIcons/icons/Wellhub.js";import"../../../icons/customIcons/icons/MultiRuler.js";import"../../../icons/customIcons/icons/Checkbox.js";import"../../../icons/customIcons/icons/CheckboxChecked.js";import"../../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../../icons/customIcons/icons/Radio.js";import"../../../icons/customIcons/icons/RadioChecked.js";import"../../../icons/customIcons/icons/SimulFrac.js";import"../../../icons/customIcons/icons/ZipperFrac.js";import"../../../icons/customIcons/icons/CautionFilled.js";import"../../../icons/customIcons/icons/MoreApp.js";import"../../../icons/customIcons/icons/Pad.js";import"../../../icons/customIcons/icons/DrilloutUnit.js";import"../../../icons/customIcons/icons/FracFleet.js";import"../../../icons/customIcons/icons/Global.js";import"../../../icons/customIcons/icons/Program.js";import"../../../icons/customIcons/icons/Rig.js";import"../../../icons/customIcons/icons/Well.js";import"../../../icons/customIcons/icons/Gap.js";import"../../../icons/customIcons/icons/Pin.js";import"../../../icons/customIcons/icons/CloseOneFilled.js";import"../../../icons/customIcons/icons/AttentionFilled.js";import"../../../icons/customIcons/icons/CheckOneFilled.js";import"../../../icons/customIcons/icons/Archive.js";import"../../../icons/customIcons/icons/ArchiveCancel.js";import"../../../icons/customIcons/icons/Unarchive.js";import"../../../icons/customIcons/icons/Archived.js";import"../../../icons/customIcons/icons/InterventionUnit.js";import"../../../icons/customIcons/icons/CloudDelete.js";import"../../../icons/customIcons/icons/Lasso.js";import"../../../icons/customIcons/icons/Radius.js";import"../../../icons/customIcons/icons/ErrorOps.js";import"../../../icons/customIcons/icons/DataTypeOps.js";import"../../../icons/customIcons/icons/FalsePositiveOps.js";import"../../../icons/customIcons/icons/CalibrationOps.js";import"../../../icons/customIcons/icons/CriticalOps.js";import"../../../icons/customIcons/icons/Company.js";import"../../../icons/customIcons/icons/ArchiveOne.js";import"../../../icons/customIcons/icons/ParseBotFusion.js";import"../../../icons/customIcons/icons/Connect.js";import"../../../icons/customIcons/icons/PuzzleOne.js";import"../../../icons/customIcons/icons/Feed.js";import"../../../icons/customIcons/icons/Prompt.js";import"../../../icons/customIcons/icons/Companies.js";import"../../../icons/customIcons/icons/ClipboardAi.js";import"../../../icons/customIcons/icons/Key.js";import"../../../icons/customIcons/icons/AtSignCrossed.js";import"../../../icons/customIcons/icons/MappingManual.js";import"../../../icons/customIcons/icons/Mapping.js";import"../../../icons/customIcons/icons/Metrics.js";import"../../../icons/customIcons/icons/Drops.js";import"../../../icons/customIcons/icons/ClipboardSearch.js";import"../../../icons/customIcons/icons/Template.js";import"../../../icons/customIcons/icons/ClipboardMetrics.js";import"../../../icons/customIcons/icons/ClipboardBuilder.js";import"../../../icons/customIcons/icons/UnitConversion.js";import"../../../icons/customIcons/icons/NPT.js";import"../../../componentsV2/utils.js";import"../../../componentsV2/Hint/Hint.scss.js";import"../../../componentsV2/Counter/Counter.js";import"../../../componentsV2/BadgeBase/BadgeBase.scss.js";import"../../../componentsV2/TemplatesControl/TemplatesControl.js";import"zustand";import"../../../componentsV2/TemplatesControl/utils.js";import"../../../componentsV2/TemplatesControl/icons/folder/index.js";import"../../../componentsV2/TemplatesControl/Store/utils.js";import"../../../componentsV2/TemplatesControl/types.js";import"../../../permissions/PermissionsContext.js";import"../../../permissions/constants/index.js";import"../../../permissions/withPermissionsHOC.js";import"../../../permissions/ProvidePermissions.js";import"../../../componentsV2/BadgeDot/BadgeDot.scss.js";import"../../../componentsV2/LoaderLinear/LoaderLinear.scss.js";import"../../../componentsV2/LoaderLogo/LoaderLogo.constants.js";import"../../../componentsV2/LoaderLogo/LoaderLogo.scss.js";import"../../../componentsV2/Switch/Switch.js";import"../../../componentsV2/Tabs/Tabs.js";import"../../../componentsV2/EmptyState/EmptyState.scss.js";import"../../../componentsV2/FileIcon/FileIcon.js";import"../../../componentsV2/Tag/Tag.js";import"react-dropzone";import"../../../componentsV2/FilesDropzone/FilesDropzone.scss.js";import"../../../componentsV2/FilesLoader/FilesLoader.scss.js";import"../../../componentsV2/FilesProcessor/FilesProcessor.scss.js";import"../../../componentsV2/Skeleton/Skeleton.scss.js";import"../../../utils/main.js";import"../../../componentsV2/CopyToClipboard/CopyToClipboard.scss.js";import"../../../componentsV2/Stepper/Step/Step.scss.js";import"../../../componentsV2/Stepper/Stepper.scss.js";import"../../../componentsV2/ButtonLive/ButtonLive.js";import"../../../componentsV2/ButtonText/ButtonText.js";import"../../../componentsV2/IndicatorLive/IndicatorLive.js";import"../../../componentsV2/Accordion/Accordion.scss.js";import"../../../componentsV2/Breadcrumbs/Breadcrumbs.scss.js";import"../../../componentsV2/BadgeComment/BadgeComment.js";import"../../../componentsV2/AppContainer/AppContainer.js";import"../../../componentsV2/AppContainer/AppContainer.constants.js";import"../../../componentsV2/AppFooter/AppFooter.js";import"../../../componentsV2/AppHeader/AppHeader.constants.js";import"../../../componentsV2/AppHeader/AppBadge/AppBadge.scss.js";import"../../../componentsV2/AppHeader/AppAssets/utils.js";import"../../../componentsV2/AppHeader/AppAssets/AppAssets.scss.js";import"../../PadModeSelect/PadModeSelect.js";import"../../../componentsV2/AppHeader/PadMode/PadMode.scss.js";import"../../../componentsV2/PadModeSelect/PadModeSelect.js";import"../../../componentsV2/PadModeSelect/PadModeSelect.constants.js";import"../../../componentsV2/AppHeader/V3/VersionSelect/VersionSelect.js";import"../../../componentsV2/UniversalLink/UniversalLink.scss.js";import"../../../componentsV2/AppHeader/V3/AssetChips/AssetChips.scss.js";import"../../../componentsV2/AppHeader/V3/DqStatusIcon/DqStatusIcon.js";import"../../../componentsV2/AppHeader/V3/DqStatusIcon/DqStatusIcon.constants.js";import"../../../componentsV2/AppFooter/DqPopover/DqStatusIcon/DqStatusIcon.js";import"../../../componentsV2/AppDqPopover/DqAlertTooltip/DqAlertTooltip.scss.js";import"../../../componentsV2/AppDqPopover/DqAlert/DqAlert.scss.js";import"../../../componentsV2/AppDqPopover/DqAsset/DqAsset.scss.js";import"../../../componentsV2/AppDqPopover/AppDqPopover.scss.js";import"../../AppIcon/AppIcon.js";import"../../../utils/getSingleAsset.js";import"../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorChip/AssetSelectorChip.js";import"../../../componentsV2/AppHeader/V3/AssetSelector/constants.js";import"../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorSelect/AssetSelectorSelect.scss.js";import"../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorSelect/loadAssets.js";import"../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelector.scss.js";import"../../../componentsV2/AppHeader/V3/AppTitle/AppTitle.constants.js";import"../../../componentsV2/AppHeader/V3/AppTitle/AppTitle.scss.js";import"../../../componentsV2/AppHeader/V3/constants.scss.js";import"@babel/runtime/helpers/typeof";import"../../../componentsV2/AppHeader/V3/SettingsButton/SettingsButton.js";import"../../../componentsV2/AppHeader/V3/SettingsButton/SettingsButton.constants.js";import"../../../componentsV2/AppSettings/AppSettings.js";import"../../../componentsV2/AppSettings/AppSettings.constants.js";import"../../../componentsV2/AppSizeProvider/AppSizeProvider.js";import"../../../componentsV2/AppHeader/V3/Actions/Actions.constants.js";import"../../../componentsV2/AppHeader/V3/Actions/Actions.scss.js";import"../../../componentsV2/AppHeader/V3/AppHeaderV3.scss.js";import"../../../componentsV2/AppHeader/AppHeader.scss.js";import"../../../componentsV2/OffsetWellsButton/OffsetWellsButton.js";import"../../../componentsV2/Autocomplete/Autocomplete.js";import"../../../componentsV2/Select/Select.js";import"../../../componentsV2/AppSettingsDivider/AppSettingsDivider.scss.js";import"../../../componentsV2/WellArchivedMessage/WellArchivedMessage.js";import"../../../componentsV2/DatePicker/DatePicker.js";import"../../../componentsV2/DragHandle/DragHandle.js";import"../../../componentsV2/CompletionsOffsetWellPicker/CompletionsOffsetWellPicker.js";import"../../../componentsV2/Slider/constants.js";import"../../../componentsV2/Slider/components/SliderThumb.js";import"../../../componentsV2/Slider/Slider.scss.js";import"react-color";import"../../../componentsV2/ColorPicker/Swatches/Swatches.scss.js";import"../../../componentsV2/ColorPicker/OpacityDragtracker/OpacityDragTracker.scss.js";import"../../../componentsV2/ColorPicker/ColorPicker.scss.js";import{showSuccessNotification as Q}from"../../../utils/notificationToasts.js";function X(o,s){var t=Object.keys(o);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(o);s&&(n=n.filter((function(s){return Object.getOwnPropertyDescriptor(o,s).enumerable}))),t.push.apply(t,n)}return t}function Y(s){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?X(Object(n),!0).forEach((function(t){o(s,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(n)):X(Object(n)).forEach((function(o){Object.defineProperty(s,o,Object.getOwnPropertyDescriptor(n,o))}))}return s}var $=H||F,oo="DevCenter_AppContainer";function so(o){var F,X,so,to,no,eo,io,po,ro,co,mo,ao,lo,uo,jo,Ao,go,Co,Io,Vo,vo=o.CLIAppComponent,ho=o.CLIAppSettings,So=o.app,fo=o.appId,bo=o.className,Do=o.coordinates,Po=o.currentDashboardAppsLastAnnotations,Mo=o.currentUser,yo=o.devCenterRouter,To=o.isActionsDisabled,xo=o.isSettingsDialogHidden,Lo=o.layoutEnvironment,ko=o.onAppContainerClick,Bo=void 0===ko?c:ko,Oo=o.onAppRemove,Ho=o.onReportBugClick,Fo=o.onCloneDashboard,wo=o.onHelpCenterClick,Ro=o.onIsMaximizedChange,zo=o.onSettingChange,qo=o.onSettingsChange,Eo=o.openIntercom,Wo=void 0===Eo?c:Eo,_o=o.setIsFullscreenModalMode,Uo=void 0===_o?c:_o,Go=o.timestamp,No=o.updateCurrentDashboardAppLastAnnotation,Ko=o.dashboardMeta,Zo=o.reloadApp,Jo=void 0===Zo?void 0:Zo,Qo=o.chatActions,Xo=t(l),Yo=m(),$o=n([]),os=s($o,2),ss=os[0],ts=os[1],ns=n([]),es=s(ns,2),is=es[0],ps=es[1],rs=null!==(F=null==Xo?void 0:Xo[fo||So.id])&&void 0!==F?F:{isLoading:!0},cs=null===(X=So.package)||void 0===X||null===(so=X.manifest)||void 0===so?void 0:so.application,ms=U(So),as=!(null==cs||null===(to=cs.ui)||void 0===to||!to.multi_rig),ls=!(null==cs||null===(no=cs.ui)||void 0===no||!no.enable_comments),ds=G(So),us=V({onIsMaximizedChange:Ro,devCenterRouter:yo,appId:fo}),js=us.isMaximized,As=us.setIsMaximized,gs=Go||N(null===(eo=yo.location.query)||void 0===eo?void 0:eo.query),Cs=So.id===W,Is=Cs&&$?Y(Y({},Do),{},{w:12}):Do,Vs=M(So),vs=E({CLIAppComponent:vo,CLIAppSettings:ho,app:So,version:Vs}),hs=vs.isLoading,Ss=vs.AppSettings,fs=vs.AppComponent,bs=g({setIsFullscreenModalMode:Uo}),Ds=bs.isAppSettingsDialogOpened,Ps=bs.toggleAppSettingsDialog,Ms=C(),ys=Ms.isAnnotationsListOpened,Ts=Ms.toggleAnnotationsList,xs=hs||!Mo||!as&&rs.isLoading,Ls=I({app:So,appData:rs,currentDashboardAppsLastAnnotations:Po}),ks=Ls.appLastAnnotation,Bs=Ls.assetCompanyId,Os=Ls.assetIdForAnnotation,Hs=Ls.isAppSupportsAnnotations,Fs=p(r(rs,["well","rig","fracFleet","wells","interventionUnit"]),Boolean),ws=e((function(){return null==is?void 0:is.map((function(o){return Y(Y({},o),{},{onClick:function(){var s;null===(s=o.onClick)||void 0===s||s.call(o),o.to&&yo.push(o.to)}})}))}),[is,yo]),Rs=!(null==So||null===(io=So.package)||void 0===io||null===(po=io.manifest)||void 0===po||null===(ro=po.application)||void 0===ro||null===(co=ro.ui)||void 0===co||!co.use_app_header_v3),zs=!(null==(Co=yo)||null===(Io=Co.location)||void 0===Io||null===(Vo=Io.pathname)||void 0===Vo||!Vo.startsWith("/home"));return u(x,{companyId:null==So||null===(mo=So.app)||void 0===mo?void 0:mo.company_id,appKey:null==cs?void 0:cs.key,isCLIApp:Cs,rollbarManifestConfig:null==So||null===(ao=So.package)||void 0===ao||null===(lo=ao.manifest)||void 0===lo||null===(uo=lo.settings)||void 0===uo?void 0:uo.rollbar,version:Vs,children:u(d.Provider,{value:yo,children:u(D,{setIsFullscreenModalMode:Uo,children:u(_,Y(Y({maximized:js,setMaximized:As,appId:null==So||null===(jo=So.app)||void 0===jo?void 0:jo.id,app:So,appSettings:So.settings,onSettingChange:zo,onSettingsChange:qo,appHeadersV3Enabled:Rs,currentUser:Mo,appData:rs,layoutEnvironment:Lo,appSettingsComponent:Ss,dashboardMeta:Ko,toggleAnnotationsList:Hs?Ts:void 0,onHelpCenterClick:wo,secondaryMenuItems:ws,onAppRemove:Oo,isInsideNewMobileApp:O,globalOffsetWells:null==Ko?void 0:Ko.globalOffsetWells,globalOffsetWellsVersion:null==Ko?void 0:Ko.globalOffsetWellsVersion,reloadApp:Jo},Fs),{},{children:u(L,{children:j("div",{className:i("dc-app-container",O&&"dc-app-container--inside-new-mobile-app",zs&&"dc-app-container--inside-home-page",bo,js&&"dc-app-container__maximized",Yo.isLightTheme&&"dc-app-container__light-theme",B.container),"data-testid":"".concat(oo,"_").concat(ds),onClick:function(){return Bo()},children:[u(q,{}),u("div",{className:B.containerContent,children:u(b,{AppComponent:fs,app:So,appData:Fs,isAppLoading:hs,availability:y(So.availability,Mo.company.with_subscription),isCLIApp:Cs,isLoading:xs,isMultiRig:as,layoutEnvironment:Lo,openIntercom:Wo,segment:ms,toggleAppSettingsDialog:Ps,appProps:{coordinates:Is,currentUser:Mo,devCenterRouter:yo,onSettingChange:zo,onSettingsChange:qo,segment:ms,setIsFullscreenModalMode:Uo,setIsMaximized:As,setMainMenuItems:ts,setSecondaryMenuItems:ps,toggleAppSettingsDialog:Ps,appHeaderProps:Y({app:So,appLastAnnotation:ks,appSettings:So.settings,coordinates:Is,currentUser:Mo,isMaximized:js,layoutEnvironment:Lo,onSettingChange:zo,toggleAnnotationsList:Ts,updateCurrentDashboardAppLastAnnotation:No},Fs),isNative:H,layoutEnvironment:Lo,timestamp:gs,chatActions:Qo}})}),Ds&&u(h,{AppSettingsComponent:Ss,app:So,appData:rs,appName:ds,currentUser:Mo,isMultiRig:as,isSettingsDialogHidden:xo,layoutEnvironment:Lo,onAppRemove:Oo,onCloneDashboard:Fo,onSettingChange:zo,onSettingsChange:qo,openIntercom:Wo,rigId:null!==(Ao=null===(go=rs.rig)||void 0===go?void 0:go.id)&&void 0!==Ao?Ao:null,timestamp:gs,toggleAppSettingsDialog:Ps}),ys&&u(z,{children:u(R,{appId:So.app.id,appSettings:So.settings,appTitle:ds,assetCompanyId:Bs,assetId:Os,currentUser:Mo,onClose:Ts,showSuccessNotification:Q})}),js&&!Rs&&u(P,{setIsMaximized:As}),!To&&(!Rs||xs)&&j(v,{children:[ls&&u(k,{currentUser:Mo}),Hs&&u(J,{title:"Add Annotation",placement:"top",disabled:!!$,children:u(Z,{size:"small",type:"tertiaryBg",onClick:Ts,testId:"".concat(oo,"_addAnnotation"),children:u(w,{})})}),Ho&&!Cs&&u(J,{title:"Report A Bug",placement:"top",disabled:!!$,children:u(Z,{size:"small",type:"tertiaryBg",onClick:function(){return Ho()},children:u(a,{})})}),u(J,{placement:"top",disabled:!!$||Cs,title:"Help Center",children:u(Z,{testId:"".concat(oo,"_helpContent"),onClick:function(){return wo()},disabled:Cs,size:"small",type:"tertiaryBg",children:u(K,{appId:So.app.id,helpContentUpdatedAt:So.help_content_updated_at})})}),!$||js||O?j(A,{children:[u(T,{menuItems:ss,devCenterRouter:yo,isMobileView:$}),u(S,{devCenterRouter:yo,isMaximized:js,isMobileView:$,menuItems:is,setIsFullscreenModalMode:Uo,setIsMaximized:As,toggleAppSettingsDialog:Ps})]}):u(f,{setIsMaximized:As})]})]})})}))})})})}export{so as default};
1
+ import o from"@babel/runtime/helpers/defineProperty";import s from"@babel/runtime/helpers/slicedToArray";import{useContext as t,useState as n,useMemo as e}from"react";import i from"classnames";import{pickBy as p,pick as r,noop as c}from"lodash";import{useTheme as m}from"@material-ui/core";import{BugReport as a}from"@material-ui/icons";import l from"../AppContext.js";import{DevCenterRouterContext as d}from"../DevCenterRouterContext/DevCenterRouterContext.js";import"../DevCenterRouterContext/UniversalLink/UniversalLink.js";import"@babel/runtime/helpers/objectWithoutProperties";import"react-router-dom";import"query-string";import{jsx as u,jsxs as j,Fragment as A}from"react/jsx-runtime";import g from"./effects/useAppSettings.js";import C from"./effects/useAnnotationsList.js";import I from"./effects/useAnnotationsData.js";import V from"./effects/useAppMaximized.js";import v from"./components/AppActions/AppActions.js";import h from"./components/AppSettingsDialog/AppSettingsDialog.js";import"./components/AppSettingsDialog/components/RemoveAppButton.js";import"./components/AppSettingsDialog/components/SettingsAccordion.js";import"./components/AnnotationsButton/AnnotationsButton.js";import{NonPriorityMenus as S}from"./components/NonPriorityMenus/NonPriorityMenus.js";import f from"./components/FullscreenButton/FullscreenButton.js";import"./components/AppInfoMessage/AppInfoMessage.js";import b from"./components/DevCenterAppView/DevCenterAppView.js";import{DcFullscreenElemsCoordinatorProvider as D}from"./components/DcFullscreenElemsCoordinatorProvider/DcFullscreenElemsCoordinatorProvider.js";import"./components/DcFullscreenElemsCoordinatorProvider/IsInsideDcFullscreenElemProvider.js";import"./components/IsInsideIsolatedDcAppProvider/IsInsideIsolatedDcAppProvider.js";import P from"./components/RestoreAppSizeButton/index.js";import{getAppVersion as M,getAppAvailability as y}from"./utils.js";import T from"./components/PriorityMenus/PriorityMenus.js";import{RollbarWrapper as x}from"./components/RollbarWrapper/RollbarWrapper.js";import{CommentsSwitchProvider as L}from"./components/CommentsSwitch/CommentsSwitchProvider.js";import{CommentsSwitchButton as k}from"./components/CommentsSwitch/CommentsSwitchButton.js";import B from"./DevCenterAppContainer.css.js";import{isInsideNewMobileApp as O,isNativeDetected as H,isMobileDetected as F}from"../../../utils/mobileDetect.js";import w from"../../Icons/AnnotationIcon.js";import R from"../../Annotations/components/AnnotationsList/index.js";import"../../Annotations/components/LastAnnotation/index.js";import{AnnotationsProvider as z}from"../../Annotations/AnnotationsContext.js";import"../../Toaster/Toaster.js";import{ToastContainer as q}from"../../Toaster/ToastContainer.js";import"../../../clients/subscriptions/constants.js";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/regenerator";import"querystring";import"uuid/v1";import"../../../clients/subscriptions.v1.js";import"../../../clients/jsonApi/index.js";import"../../../clients/subscriptions/subscriptions-client.factory.js";import E from"../../../effects/useDevCenterApp.js";import"../../../utils/index.js";import"uuid";import"jsona";import"../../../constants/segment.js";import"../../../utils/env.js";import{DEV_CENTER_CLI_APP_ID as W}from"../../../constants/devcenter.js";import"../../../constants/goals.js";import"../../../constants/alerts.js";import"../../../constants/apps.js";import"../../../constants/drillstring.js";import"../../../constants/completion.js";import"../../../constants/appPackages.js";import"../../../constants/notifications.js";import"../../../constants/feed.js";import"../../../constants/bha.js";import"../../../constants/corvaCompanyId.js";import"../../GradientManager/configuration/constants.js";import"../../StatusBadge/constants.js";import"@babel/runtime/helpers/toConsumableArray";import"lodash/set";import"lodash/get";import"lodash/unset";import"moment";import"../../../clients/api/apiCore.js";import"../../../clients/constants.js";import"../../../clients/sso/auth0.js";import"../../../clients/sso/oauth2.js";import"../../../clients/api/rateLimiter.js";import"lodash/isEmpty";import"lodash/sortBy";import"../../../constants/streamSourceType.js";import"./components/CommentsSwitch/CommentsSwitchContext.js";import{AppCommonsProvider as _}from"../../../componentsV2/AppCommonsProvider/AppCommonsProvider.js";import"../../../componentsV2/AppCommonsProvider/AppCommonsContext.js";import"../../../componentsV2/AppSettings/AppSettingsPinningContext.js";import{getAppSegment as U,getAppName as G,getTimestampFromQuery as N}from"../../../utils/devcenter.js";import{HelpCenterIcon as K}from"../../HelpCenter/HelpCenterIcon.js";import"../../../componentsV2/Text/Text.js";import"../../../componentsV2/Grid/Grid.js";import"../../../componentsV2/Grid/Cell.js";import"../../../componentsV2/Header/Header.scss.js";import"../../../componentsV2/Button/Button.js";import{ButtonIcon as Z}from"../../../componentsV2/ButtonIcon/ButtonIcon.js";import{Tooltip as J}from"../../../componentsV2/Tooltip/Tooltip.js";import"../../../componentsV2/Popover/Popover.js";import"../../../componentsV2/Radio/Radio.js";import"../../../componentsV2/RadioAndCheckboxGroup/RadioAndCheckboxGroup.scss.js";import"../../../componentsV2/Checkbox/Checkbox.js";import"../../../componentsV2/TextInput/TextInput.js";import"../../../componentsV2/TextInputNext/TextInputNext.js";import"../../../componentsV2/Label/Label.js";import"../../../componentsV2/TextEndTruncated/TextEndTruncated.scss.js";import"../../../componentsV2/TextMiddleTruncated/TextMiddleTruncated.constants.js";import"../../../componentsV2/TextMiddleTruncated/TextMiddleTruncated.scss.js";import"../../../componentsV2/TextLink/TextLink.js";import"../../../componentsV2/Chip/Chip.js";import"../../../componentsV2/ChipAlert/ChipAlert.js";import"../../../componentsV2/ChipIndicator/ChipIndicator.js";import"../../../componentsV2/Avatar/Avatar.js";import"../../../componentsV2/AvatarGroup/AvatarGroup.js";import"@material-ui/lab";import"../../../componentsV2/ToggleButtons/ToggleButtons.scss.js";import"../../../componentsV2/Paper/Paper.js";import"../../../componentsV2/ModalWindow/ModalWindow.js";import"../../../componentsV2/Modal/Modal.scss.js";import"../../../componentsV2/Menu/Menu.js";import"@icon-park/react/es/all";import"../../../icons/IconParkProvider.js";import"../../../icons/customIcons/icons/AddMessage.js";import"../../../icons/customIcons/icons/Attention.js";import"../../../icons/customIcons/icons/Collapse.js";import"../../../icons/customIcons/icons/Dashboard.js";import"../../../icons/customIcons/icons/Expand.js";import"../../../icons/customIcons/icons/FolderClosed.js";import"../../../icons/customIcons/icons/FolderClosedFilled.js";import"../../../icons/customIcons/icons/FolderOpened.js";import"../../../icons/customIcons/icons/GreaterOrEqual.js";import"../../../icons/customIcons/icons/LessOrEqual.js";import"../../../icons/customIcons/icons/Search.js";import"../../../icons/customIcons/icons/SearchOne.js";import"../../../icons/customIcons/icons/Wellhub.js";import"../../../icons/customIcons/icons/MultiRuler.js";import"../../../icons/customIcons/icons/Checkbox.js";import"../../../icons/customIcons/icons/CheckboxChecked.js";import"../../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../../icons/customIcons/icons/Radio.js";import"../../../icons/customIcons/icons/RadioChecked.js";import"../../../icons/customIcons/icons/SimulFrac.js";import"../../../icons/customIcons/icons/ZipperFrac.js";import"../../../icons/customIcons/icons/CautionFilled.js";import"../../../icons/customIcons/icons/MoreApp.js";import"../../../icons/customIcons/icons/Pad.js";import"../../../icons/customIcons/icons/DrilloutUnit.js";import"../../../icons/customIcons/icons/FracFleet.js";import"../../../icons/customIcons/icons/Global.js";import"../../../icons/customIcons/icons/Program.js";import"../../../icons/customIcons/icons/Rig.js";import"../../../icons/customIcons/icons/Well.js";import"../../../icons/customIcons/icons/Gap.js";import"../../../icons/customIcons/icons/Pin.js";import"../../../icons/customIcons/icons/CloseOneFilled.js";import"../../../icons/customIcons/icons/AttentionFilled.js";import"../../../icons/customIcons/icons/CheckOneFilled.js";import"../../../icons/customIcons/icons/Archive.js";import"../../../icons/customIcons/icons/ArchiveCancel.js";import"../../../icons/customIcons/icons/Unarchive.js";import"../../../icons/customIcons/icons/Archived.js";import"../../../icons/customIcons/icons/InterventionUnit.js";import"../../../icons/customIcons/icons/CloudDelete.js";import"../../../icons/customIcons/icons/Lasso.js";import"../../../icons/customIcons/icons/Radius.js";import"../../../icons/customIcons/icons/ErrorOps.js";import"../../../icons/customIcons/icons/DataTypeOps.js";import"../../../icons/customIcons/icons/FalsePositiveOps.js";import"../../../icons/customIcons/icons/CalibrationOps.js";import"../../../icons/customIcons/icons/CriticalOps.js";import"../../../icons/customIcons/icons/Company.js";import"../../../icons/customIcons/icons/ArchiveOne.js";import"../../../icons/customIcons/icons/ParseBotFusion.js";import"../../../icons/customIcons/icons/Connect.js";import"../../../icons/customIcons/icons/PuzzleOne.js";import"../../../icons/customIcons/icons/Feed.js";import"../../../icons/customIcons/icons/Prompt.js";import"../../../icons/customIcons/icons/Companies.js";import"../../../icons/customIcons/icons/ClipboardAi.js";import"../../../icons/customIcons/icons/Key.js";import"../../../icons/customIcons/icons/AtSignCrossed.js";import"../../../icons/customIcons/icons/MappingManual.js";import"../../../icons/customIcons/icons/Mapping.js";import"../../../icons/customIcons/icons/Metrics.js";import"../../../icons/customIcons/icons/Drops.js";import"../../../icons/customIcons/icons/ClipboardSearch.js";import"../../../icons/customIcons/icons/Template.js";import"../../../icons/customIcons/icons/ClipboardMetrics.js";import"../../../icons/customIcons/icons/ClipboardBuilder.js";import"../../../icons/customIcons/icons/UnitConversion.js";import"../../../icons/customIcons/icons/NPT.js";import"../../../componentsV2/utils.js";import"../../../componentsV2/Hint/Hint.scss.js";import"../../../componentsV2/Counter/Counter.js";import"../../../componentsV2/BadgeBase/BadgeBase.scss.js";import"../../../componentsV2/TemplatesControl/TemplatesControl.js";import"zustand";import"../../../componentsV2/TemplatesControl/utils.js";import"../../../componentsV2/TemplatesControl/icons/folder/index.js";import"../../../componentsV2/TemplatesControl/Store/utils.js";import"../../../componentsV2/TemplatesControl/types.js";import"../../../permissions/PermissionsContext.js";import"../../../permissions/constants/index.js";import"../../../permissions/withPermissionsHOC.js";import"../../../permissions/ProvidePermissions.js";import"../../../componentsV2/BadgeDot/BadgeDot.scss.js";import"../../../componentsV2/LoaderLinear/LoaderLinear.scss.js";import"../../../componentsV2/LoaderLogo/LoaderLogo.constants.js";import"../../../componentsV2/LoaderLogo/LoaderLogo.scss.js";import"../../../componentsV2/Switch/Switch.js";import"../../../componentsV2/Tabs/Tabs.js";import"../../../componentsV2/EmptyState/EmptyState.scss.js";import"../../../componentsV2/FileIcon/FileIcon.js";import"../../../componentsV2/Tag/Tag.js";import"react-dropzone";import"../../../componentsV2/FilesDropzone/FilesDropzone.scss.js";import"../../../componentsV2/FilesLoader/FilesLoader.scss.js";import"../../../componentsV2/FilesProcessor/FilesProcessor.scss.js";import"../../../componentsV2/Skeleton/Skeleton.scss.js";import"../../../utils/main.js";import"../../../componentsV2/CopyToClipboard/CopyToClipboard.scss.js";import"../../../componentsV2/Stepper/Step/Step.scss.js";import"../../../componentsV2/Stepper/Stepper.scss.js";import"../../../componentsV2/ButtonLive/ButtonLive.js";import"../../../componentsV2/ButtonText/ButtonText.js";import"../../../componentsV2/IndicatorLive/IndicatorLive.js";import"../../../componentsV2/Accordion/Accordion.scss.js";import"../../../componentsV2/Breadcrumbs/Breadcrumbs.scss.js";import"../../../componentsV2/BadgeComment/BadgeComment.js";import"../../../componentsV2/AppContainer/AppContainer.js";import"../../../componentsV2/AppContainer/AppContainer.constants.js";import"../../../componentsV2/AppFooter/AppFooter.js";import"../../../componentsV2/AppHeader/AppHeader.constants.js";import"../../../componentsV2/AppHeader/AppBadge/AppBadge.scss.js";import"../../../componentsV2/AppHeader/AppAssets/utils.js";import"../../../componentsV2/AppHeader/AppAssets/AppAssets.scss.js";import"../../PadModeSelect/PadModeSelect.js";import"../../../componentsV2/AppHeader/PadMode/PadMode.scss.js";import"../../../componentsV2/PadModeSelect/PadModeSelect.js";import"../../../componentsV2/PadModeSelect/PadModeSelect.constants.js";import"../../../componentsV2/AppHeader/V3/VersionSelect/VersionSelect.js";import"../../../componentsV2/UniversalLink/UniversalLink.scss.js";import"../../../componentsV2/AppHeader/V3/AssetChips/AssetChips.scss.js";import"../../../componentsV2/AppHeader/V3/DqStatusIcon/DqStatusIcon.js";import"../../../componentsV2/AppHeader/V3/DqStatusIcon/DqStatusIcon.constants.js";import"../../../componentsV2/AppFooter/DqPopover/DqStatusIcon/DqStatusIcon.js";import"../../../componentsV2/AppDqPopover/DqAlertTooltip/DqAlertTooltip.scss.js";import"../../../componentsV2/AppDqPopover/DqAlert/DqAlert.scss.js";import"../../../componentsV2/AppDqPopover/DqAsset/DqAsset.scss.js";import"../../../componentsV2/AppDqPopover/AppDqPopover.scss.js";import"../../AppIcon/AppIcon.js";import"../../../utils/getSingleAsset.js";import"../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorChip/AssetSelectorChip.js";import"../../../componentsV2/AppHeader/V3/AssetSelector/constants.js";import"../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorSelect/AssetSelectorSelect.scss.js";import"../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorSelect/loadAssets.js";import"../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelector.scss.js";import"../../../componentsV2/AppHeader/V3/AppTitle/AppTitle.constants.js";import"../../../componentsV2/AppHeader/V3/AppTitle/AppTitle.scss.js";import"../../../componentsV2/AppHeader/V3/constants.scss.js";import"@babel/runtime/helpers/typeof";import"../../../componentsV2/AppHeader/V3/SettingsButton/SettingsButton.js";import"../../../componentsV2/AppHeader/V3/SettingsButton/SettingsButton.constants.js";import"../../../componentsV2/AppSettings/AppSettings.js";import"../../../componentsV2/AppSettings/AppSettings.constants.js";import"../../../componentsV2/AppSizeProvider/AppSizeProvider.js";import"../../../componentsV2/AppHeader/V3/Actions/Actions.constants.js";import"../../../componentsV2/AppHeader/V3/Actions/Actions.scss.js";import"../../../componentsV2/AppHeader/V3/AppHeaderV3.scss.js";import"../../../componentsV2/AppHeader/AppHeader.scss.js";import"../../../componentsV2/OffsetWellsButton/OffsetWellsButton.js";import"../../../componentsV2/Autocomplete/Autocomplete.js";import"../../../componentsV2/Select/Select.js";import"../../../componentsV2/AppSettingsDivider/AppSettingsDivider.scss.js";import"../../../componentsV2/WellArchivedMessage/WellArchivedMessage.js";import"../../../componentsV2/DatePicker/DatePicker.js";import"../../../componentsV2/DragHandle/DragHandle.js";import"../../../componentsV2/CompletionsOffsetWellPicker/CompletionsOffsetWellPicker.js";import"../../../componentsV2/Slider/constants.js";import"../../../componentsV2/Slider/components/SliderThumb.js";import"../../../componentsV2/Slider/Slider.scss.js";import"react-color";import"../../../componentsV2/ColorPicker/Swatches/Swatches.scss.js";import"../../../componentsV2/ColorPicker/OpacityDragtracker/OpacityDragTracker.scss.js";import"../../../componentsV2/ColorPicker/ColorPicker.scss.js";import{showSuccessNotification as Q}from"../../../utils/notificationToasts.js";function X(o,s){var t=Object.keys(o);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(o);s&&(n=n.filter((function(s){return Object.getOwnPropertyDescriptor(o,s).enumerable}))),t.push.apply(t,n)}return t}function Y(s){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?X(Object(n),!0).forEach((function(t){o(s,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(n)):X(Object(n)).forEach((function(o){Object.defineProperty(s,o,Object.getOwnPropertyDescriptor(n,o))}))}return s}var $=H||F,oo="DevCenter_AppContainer";function so(o){var F,X,so,to,no,eo,io,po,ro,co,mo,ao,lo,uo,jo,Ao,go,Co,Io,Vo,vo=o.CLIAppComponent,ho=o.CLIAppSettings,So=o.app,fo=o.appId,bo=o.className,Do=o.coordinates,Po=o.currentDashboardAppsLastAnnotations,Mo=o.currentUser,yo=o.devCenterRouter,To=o.disableAppAssetSelection,xo=o.isActionsDisabled,Lo=o.isSettingsDialogHidden,ko=o.layoutEnvironment,Bo=o.onAppContainerClick,Oo=void 0===Bo?c:Bo,Ho=o.onAppRemove,Fo=o.onReportBugClick,wo=o.onCloneDashboard,Ro=o.onHelpCenterClick,zo=o.onIsMaximizedChange,qo=o.onSettingChange,Eo=o.onSettingsChange,Wo=o.openIntercom,_o=void 0===Wo?c:Wo,Uo=o.setIsFullscreenModalMode,Go=void 0===Uo?c:Uo,No=o.timestamp,Ko=o.updateCurrentDashboardAppLastAnnotation,Zo=o.dashboardMeta,Jo=o.reloadApp,Qo=void 0===Jo?void 0:Jo,Xo=o.chatActions,Yo=t(l),$o=m(),os=n([]),ss=s(os,2),ts=ss[0],ns=ss[1],es=n([]),is=s(es,2),ps=is[0],rs=is[1],cs=null!==(F=null==Yo?void 0:Yo[fo||So.id])&&void 0!==F?F:{isLoading:!0},ms=null===(X=So.package)||void 0===X||null===(so=X.manifest)||void 0===so?void 0:so.application,as=U(So),ls=!(null==ms||null===(to=ms.ui)||void 0===to||!to.multi_rig),ds=!(null==ms||null===(no=ms.ui)||void 0===no||!no.enable_comments),us=G(So),js=V({onIsMaximizedChange:zo,devCenterRouter:yo,appId:fo}),As=js.isMaximized,gs=js.setIsMaximized,Cs=No||N(null===(eo=yo.location.query)||void 0===eo?void 0:eo.query),Is=So.id===W,Vs=Is&&$?Y(Y({},Do),{},{w:12}):Do,vs=M(So),hs=E({CLIAppComponent:vo,CLIAppSettings:ho,app:So,version:vs}),Ss=hs.isLoading,fs=hs.AppSettings,bs=hs.AppComponent,Ds=g({setIsFullscreenModalMode:Go}),Ps=Ds.isAppSettingsDialogOpened,Ms=Ds.toggleAppSettingsDialog,ys=C(),Ts=ys.isAnnotationsListOpened,xs=ys.toggleAnnotationsList,Ls=Ss||!Mo||!ls&&cs.isLoading,ks=I({app:So,appData:cs,currentDashboardAppsLastAnnotations:Po}),Bs=ks.appLastAnnotation,Os=ks.assetCompanyId,Hs=ks.assetIdForAnnotation,Fs=ks.isAppSupportsAnnotations,ws=p(r(cs,["well","rig","fracFleet","wells","interventionUnit"]),Boolean),Rs=e((function(){return null==ps?void 0:ps.map((function(o){return Y(Y({},o),{},{onClick:function(){var s;null===(s=o.onClick)||void 0===s||s.call(o),o.to&&yo.push(o.to)}})}))}),[ps,yo]),zs=!(null==So||null===(io=So.package)||void 0===io||null===(po=io.manifest)||void 0===po||null===(ro=po.application)||void 0===ro||null===(co=ro.ui)||void 0===co||!co.use_app_header_v3),qs=!(null==(Co=yo)||null===(Io=Co.location)||void 0===Io||null===(Vo=Io.pathname)||void 0===Vo||!Vo.startsWith("/home"));return u(x,{companyId:null==So||null===(mo=So.app)||void 0===mo?void 0:mo.company_id,appKey:null==ms?void 0:ms.key,isCLIApp:Is,rollbarManifestConfig:null==So||null===(ao=So.package)||void 0===ao||null===(lo=ao.manifest)||void 0===lo||null===(uo=lo.settings)||void 0===uo?void 0:uo.rollbar,version:vs,children:u(d.Provider,{value:yo,children:u(D,{setIsFullscreenModalMode:Go,children:u(_,Y(Y({maximized:As,setMaximized:gs,appId:null==So||null===(jo=So.app)||void 0===jo?void 0:jo.id,app:So,appSettings:So.settings,onSettingChange:qo,onSettingsChange:Eo,appHeadersV3Enabled:zs,currentUser:Mo,appData:cs,layoutEnvironment:ko,appSettingsComponent:fs,dashboardMeta:Zo,toggleAnnotationsList:Fs?xs:void 0,onHelpCenterClick:Ro,secondaryMenuItems:Rs,onAppRemove:Ho,isInsideNewMobileApp:O,globalOffsetWells:null==Zo?void 0:Zo.globalOffsetWells,globalOffsetWellsVersion:null==Zo?void 0:Zo.globalOffsetWellsVersion,reloadApp:Qo},ws),{},{children:u(L,{children:j("div",{className:i("dc-app-container",O&&"dc-app-container--inside-new-mobile-app",qs&&"dc-app-container--inside-home-page",bo,As&&"dc-app-container__maximized",$o.isLightTheme&&"dc-app-container__light-theme",B.container),"data-testid":"".concat(oo,"_").concat(us),onClick:function(){return Oo()},children:[u(q,{}),u("div",{className:B.containerContent,children:u(b,{AppComponent:bs,app:So,appData:ws,isAppLoading:Ss,availability:y(So.availability,Mo.company.with_subscription),isCLIApp:Is,isLoading:Ls,isMultiRig:ls,layoutEnvironment:ko,openIntercom:_o,segment:as,toggleAppSettingsDialog:Ms,appProps:{coordinates:Vs,currentUser:Mo,devCenterRouter:yo,onSettingChange:qo,onSettingsChange:Eo,segment:as,setIsFullscreenModalMode:Go,setIsMaximized:gs,setMainMenuItems:ns,setSecondaryMenuItems:rs,toggleAppSettingsDialog:Ms,appHeaderProps:Y({app:So,appLastAnnotation:Bs,appSettings:So.settings,coordinates:Vs,currentUser:Mo,isMaximized:As,layoutEnvironment:ko,onSettingChange:qo,toggleAnnotationsList:xs,updateCurrentDashboardAppLastAnnotation:Ko},ws),isNative:H,layoutEnvironment:ko,timestamp:Cs,chatActions:Xo}})}),Ps&&u(h,{AppSettingsComponent:fs,app:So,appData:cs,appName:us,currentUser:Mo,disableAppAssetSelection:To,isMultiRig:ls,isSettingsDialogHidden:Lo,layoutEnvironment:ko,onAppRemove:Ho,onCloneDashboard:wo,onSettingChange:qo,onSettingsChange:Eo,openIntercom:_o,rigId:null!==(Ao=null===(go=cs.rig)||void 0===go?void 0:go.id)&&void 0!==Ao?Ao:null,timestamp:Cs,toggleAppSettingsDialog:Ms}),Ts&&u(z,{children:u(R,{appId:So.app.id,appSettings:So.settings,appTitle:us,assetCompanyId:Os,assetId:Hs,currentUser:Mo,onClose:xs,showSuccessNotification:Q})}),As&&!zs&&u(P,{setIsMaximized:gs}),!xo&&(!zs||Ls)&&j(v,{children:[ds&&u(k,{currentUser:Mo}),Fs&&u(J,{title:"Add Annotation",placement:"top",disabled:!!$,children:u(Z,{size:"small",type:"tertiaryBg",onClick:xs,testId:"".concat(oo,"_addAnnotation"),children:u(w,{})})}),Fo&&!Is&&u(J,{title:"Report A Bug",placement:"top",disabled:!!$,children:u(Z,{size:"small",type:"tertiaryBg",onClick:function(){return Fo()},children:u(a,{})})}),u(J,{placement:"top",disabled:!!$||Is,title:"Help Center",children:u(Z,{testId:"".concat(oo,"_helpContent"),onClick:function(){return Ro()},disabled:Is,size:"small",type:"tertiaryBg",children:u(K,{appId:So.app.id,helpContentUpdatedAt:So.help_content_updated_at})})}),!$||As||O?j(A,{children:[u(T,{menuItems:ts,devCenterRouter:yo,isMobileView:$}),u(S,{devCenterRouter:yo,isMaximized:As,isMobileView:$,menuItems:ps,setIsFullscreenModalMode:Go,setIsMaximized:gs,toggleAppSettingsDialog:Ms})]}):u(f,{setIsMaximized:gs})]})]})})}))})})})}export{so as default};
2
2
  //# sourceMappingURL=DevCenterAppContainer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DevCenterAppContainer.js","sources":["../../../../src/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js"],"sourcesContent":["/* eslint-disable react/prop-types */\nimport { useContext, useMemo, useState } from 'react';\nimport classNames from 'classnames';\nimport { noop, pick, pickBy } from 'lodash';\nimport { useTheme } from '@material-ui/core';\nimport { BugReport as BugReportIcon } from '@material-ui/icons';\n\nimport AppContext from '../AppContext';\nimport { DevCenterRouterContext } from '../DevCenterRouterContext';\n\nimport { useAnnotationsData, useAnnotationsList, useAppMaximized, useAppSettings } from './effects';\nimport {\n AppActions,\n AppSettingsDialog,\n DcFullscreenElemsCoordinatorProvider,\n DevCenterAppView,\n FullscreenButton,\n NonPriorityMenus,\n} from './components';\nimport RestoreAppSizeButton from './components/RestoreAppSizeButton';\nimport { getAppAvailability, getAppVersion } from './utils';\nimport PriorityMenus from './components/PriorityMenus';\nimport { RollbarWrapper } from './components/RollbarWrapper/RollbarWrapper';\nimport { CommentsSwitchButton, CommentsSwitchProvider } from './components/CommentsSwitch';\n\nimport styles from './DevCenterAppContainer.css';\n\nimport { isInsideNewMobileApp, isMobileDetected, isNativeDetected } from '~/utils/mobileDetect';\nimport AnnotationIcon from '~components/Icons/AnnotationIcon';\nimport { AnnotationsList, AnnotationsProvider } from '~/components/Annotations';\nimport { ToastContainer } from '~/components/Toaster';\nimport { useDevCenterApp } from '~/effects';\nimport { DEV_CENTER_CLI_APP_ID } from '~/constants';\nimport { getAppName, getAppSegment, getTimestampFromQuery } from '~/utils/devcenter';\nimport { showSuccessNotification } from '~/utils';\nimport { HelpCenterIcon } from '~/components/HelpCenter';\nimport { ButtonIcon, Tooltip } from '~/componentsV2';\nimport { AppCommonsProvider } from '~/componentsV2/AppCommonsProvider';\n\nconst isMobileView = isNativeDetected || isMobileDetected;\nconst PAGE_NAME = 'DevCenter_AppContainer';\n\nconst isHomePage = router => !!router?.location?.pathname?.startsWith('/home');\n\nfunction DevCenterAppContainer({\n CLIAppComponent,\n CLIAppSettings,\n app,\n appId,\n className,\n coordinates,\n currentDashboardAppsLastAnnotations,\n currentUser,\n devCenterRouter,\n isActionsDisabled,\n isSettingsDialogHidden,\n layoutEnvironment,\n onAppContainerClick = noop,\n onAppRemove,\n onReportBugClick,\n onCloneDashboard,\n onHelpCenterClick,\n onIsMaximizedChange,\n onSettingChange,\n onSettingsChange,\n openIntercom = noop,\n setIsFullscreenModalMode = noop,\n timestamp,\n updateCurrentDashboardAppLastAnnotation,\n dashboardMeta,\n reloadApp = undefined,\n chatActions,\n}) {\n const appsData = useContext(AppContext);\n const theme = useTheme();\n const [mainMenuItems, setMainMenuItems] = useState([]);\n const [secondaryMenuItems, setSecondaryMenuItems] = useState([]);\n const appData = appsData?.[appId || app.id] ?? {\n isLoading: true,\n };\n const application = app.package?.manifest?.application;\n const segment = getAppSegment(app);\n const isMultiRig = !!application?.ui?.multi_rig;\n const areCommentsEnabled = !!application?.ui?.enable_comments;\n const appName = getAppName(app);\n const { isMaximized, setIsMaximized } = useAppMaximized({\n onIsMaximizedChange,\n devCenterRouter,\n appId,\n });\n\n // Note: we need to pass timestamp directly for apps that are embedded in isolated apps\n const appTimestamp = timestamp || getTimestampFromQuery(devCenterRouter.location.query?.query);\n const isCLIApp = app.id === DEV_CENTER_CLI_APP_ID;\n const updatedCoordinates = isCLIApp && isMobileView ? { ...coordinates, w: 12 } : coordinates;\n const version = getAppVersion(app);\n\n const {\n isLoading: isAppLoading,\n AppSettings,\n AppComponent,\n } = useDevCenterApp({\n CLIAppComponent,\n CLIAppSettings,\n app,\n version,\n });\n\n const { isAppSettingsDialogOpened, toggleAppSettingsDialog } = useAppSettings({\n setIsFullscreenModalMode,\n });\n const { isAnnotationsListOpened, toggleAnnotationsList } = useAnnotationsList();\n\n const isLoading = isAppLoading || !currentUser || (!isMultiRig && appData.isLoading);\n\n const { appLastAnnotation, assetCompanyId, assetIdForAnnotation, isAppSupportsAnnotations } =\n useAnnotationsData({\n app,\n appData,\n currentDashboardAppsLastAnnotations,\n });\n\n const filteredAppData = pickBy(\n pick(appData, ['well', 'rig', 'fracFleet', 'wells', 'interventionUnit']),\n Boolean\n );\n\n const simplifiedSecondaryMenuItems = useMemo(\n () =>\n secondaryMenuItems?.map(item => ({\n ...item,\n onClick: () => {\n item.onClick?.();\n if (item.to) {\n devCenterRouter.push(item.to);\n }\n },\n })),\n [secondaryMenuItems, devCenterRouter]\n );\n\n const appHeadersV3Enabled = !!app?.package?.manifest?.application?.ui?.use_app_header_v3;\n const isInsideHomePage = isHomePage(devCenterRouter);\n\n // ⚠️⚠️⚠️ When adding/changing providers, also add them to/change /src/testing/AppTestWrapper\n return (\n <RollbarWrapper\n companyId={app?.app?.company_id}\n appKey={application?.key}\n isCLIApp={isCLIApp}\n rollbarManifestConfig={app?.package?.manifest?.settings?.rollbar}\n version={version}\n >\n <DevCenterRouterContext.Provider value={devCenterRouter}>\n <DcFullscreenElemsCoordinatorProvider setIsFullscreenModalMode={setIsFullscreenModalMode}>\n <AppCommonsProvider\n maximized={isMaximized}\n setMaximized={setIsMaximized}\n appId={app?.app?.id}\n app={app}\n appSettings={app.settings}\n onSettingChange={onSettingChange}\n onSettingsChange={onSettingsChange}\n appHeadersV3Enabled={appHeadersV3Enabled}\n currentUser={currentUser}\n appData={appData}\n layoutEnvironment={layoutEnvironment}\n appSettingsComponent={AppSettings}\n dashboardMeta={dashboardMeta}\n toggleAnnotationsList={isAppSupportsAnnotations ? toggleAnnotationsList : undefined}\n onHelpCenterClick={onHelpCenterClick}\n secondaryMenuItems={simplifiedSecondaryMenuItems}\n onAppRemove={onAppRemove}\n isInsideNewMobileApp={isInsideNewMobileApp}\n globalOffsetWells={dashboardMeta?.globalOffsetWells}\n globalOffsetWellsVersion={dashboardMeta?.globalOffsetWellsVersion}\n reloadApp={reloadApp}\n {...filteredAppData}\n >\n <CommentsSwitchProvider>\n <div\n className={classNames(\n 'dc-app-container',\n isInsideNewMobileApp && 'dc-app-container--inside-new-mobile-app',\n isInsideHomePage && 'dc-app-container--inside-home-page',\n className,\n // This class is applied so that DC apps developers can style their content\n // when an app is in fullscreen\n isMaximized && 'dc-app-container__maximized',\n theme.isLightTheme && 'dc-app-container__light-theme',\n styles.container\n )}\n data-testid={`${PAGE_NAME}_${appName}`}\n // It's important to call it without native event because it's passed through iframe\n onClick={() => onAppContainerClick()}\n >\n <ToastContainer />\n <div className={styles.containerContent}>\n <DevCenterAppView\n AppComponent={AppComponent}\n app={app}\n appData={filteredAppData}\n isAppLoading={isAppLoading}\n availability={getAppAvailability(\n app.availability,\n currentUser.company.with_subscription\n )}\n isCLIApp={isCLIApp}\n isLoading={isLoading}\n isMultiRig={isMultiRig}\n layoutEnvironment={layoutEnvironment}\n openIntercom={openIntercom}\n segment={segment}\n toggleAppSettingsDialog={toggleAppSettingsDialog}\n appProps={{\n coordinates: updatedCoordinates,\n currentUser,\n devCenterRouter,\n onSettingChange,\n onSettingsChange,\n segment,\n setIsFullscreenModalMode,\n setIsMaximized,\n setMainMenuItems,\n setSecondaryMenuItems,\n toggleAppSettingsDialog,\n // TODO remove when componentsV2 AppHeader is used everywhere\n appHeaderProps: {\n app,\n appLastAnnotation,\n appSettings: app.settings,\n coordinates: updatedCoordinates,\n currentUser,\n isMaximized,\n layoutEnvironment,\n onSettingChange,\n toggleAnnotationsList,\n updateCurrentDashboardAppLastAnnotation,\n ...filteredAppData,\n },\n isNative: isNativeDetected,\n layoutEnvironment,\n timestamp: appTimestamp,\n chatActions,\n }}\n />\n </div>\n {isAppSettingsDialogOpened && (\n <AppSettingsDialog\n AppSettingsComponent={AppSettings}\n app={app}\n appData={appData}\n appName={appName}\n currentUser={currentUser}\n isMultiRig={isMultiRig}\n isSettingsDialogHidden={isSettingsDialogHidden}\n layoutEnvironment={layoutEnvironment}\n onAppRemove={onAppRemove}\n onCloneDashboard={onCloneDashboard}\n onSettingChange={onSettingChange}\n onSettingsChange={onSettingsChange}\n openIntercom={openIntercom}\n rigId={appData.rig?.id ?? null}\n timestamp={appTimestamp}\n toggleAppSettingsDialog={toggleAppSettingsDialog}\n />\n )}\n {isAnnotationsListOpened && (\n <AnnotationsProvider>\n <AnnotationsList\n appId={app.app.id}\n appSettings={app.settings}\n appTitle={appName}\n assetCompanyId={assetCompanyId}\n assetId={assetIdForAnnotation}\n currentUser={currentUser}\n onClose={toggleAnnotationsList}\n showSuccessNotification={showSuccessNotification}\n />\n </AnnotationsProvider>\n )}\n {isMaximized && !appHeadersV3Enabled && (\n <RestoreAppSizeButton setIsMaximized={setIsMaximized} />\n )}\n\n {!isActionsDisabled && (!appHeadersV3Enabled || isLoading) && (\n <AppActions>\n {areCommentsEnabled && <CommentsSwitchButton currentUser={currentUser} />}\n\n {isAppSupportsAnnotations && (\n <Tooltip title=\"Add Annotation\" placement=\"top\" disabled={!!isMobileView}>\n <ButtonIcon\n size=\"small\"\n type=\"tertiaryBg\"\n onClick={toggleAnnotationsList}\n testId={`${PAGE_NAME}_addAnnotation`}\n >\n <AnnotationIcon />\n </ButtonIcon>\n </Tooltip>\n )}\n\n {onReportBugClick && !isCLIApp && (\n <Tooltip title=\"Report A Bug\" placement=\"top\" disabled={!!isMobileView}>\n <ButtonIcon\n size=\"small\"\n type=\"tertiaryBg\"\n onClick={() => onReportBugClick()}\n >\n <BugReportIcon />\n </ButtonIcon>\n </Tooltip>\n )}\n\n <Tooltip\n placement=\"top\"\n disabled={!!isMobileView || isCLIApp}\n title=\"Help Center\"\n >\n <ButtonIcon\n testId={`${PAGE_NAME}_helpContent`}\n onClick={() => onHelpCenterClick()}\n disabled={isCLIApp}\n size=\"small\"\n type=\"tertiaryBg\"\n >\n <HelpCenterIcon\n appId={app.app.id}\n helpContentUpdatedAt={app.help_content_updated_at}\n />\n </ButtonIcon>\n </Tooltip>\n\n {isMobileView && !isMaximized && !isInsideNewMobileApp ? (\n <FullscreenButton setIsMaximized={setIsMaximized} />\n ) : (\n <>\n <PriorityMenus\n menuItems={mainMenuItems}\n devCenterRouter={devCenterRouter}\n isMobileView={isMobileView}\n />\n <NonPriorityMenus\n devCenterRouter={devCenterRouter}\n isMaximized={isMaximized}\n isMobileView={isMobileView}\n menuItems={secondaryMenuItems}\n setIsFullscreenModalMode={setIsFullscreenModalMode}\n setIsMaximized={setIsMaximized}\n toggleAppSettingsDialog={toggleAppSettingsDialog}\n />\n </>\n )}\n </AppActions>\n )}\n </div>\n </CommentsSwitchProvider>\n </AppCommonsProvider>\n </DcFullscreenElemsCoordinatorProvider>\n </DevCenterRouterContext.Provider>\n </RollbarWrapper>\n );\n}\n\nexport default DevCenterAppContainer;\n"],"names":["isMobileView","isNativeDetected","isMobileDetected","PAGE_NAME","DevCenterAppContainer","_ref","_appsData","_app$package","_app$package$manifest","_application$ui","_application$ui2","_devCenterRouter$loca","_app$package2","_app$package2$manifes","_app$package2$manifes2","_app$package2$manifes3","_app$app","_app$package3","_app$package3$manifes","_app$package3$manifes2","_app$app2","_appData$rig$id","_appData$rig","router","_router$location","_router$location$path","CLIAppComponent","CLIAppSettings","app","appId","className","coordinates","currentDashboardAppsLastAnnotations","currentUser","devCenterRouter","isActionsDisabled","isSettingsDialogHidden","layoutEnvironment","_ref$onAppContainerCl","onAppContainerClick","noop","onAppRemove","onReportBugClick","onCloneDashboard","onHelpCenterClick","onIsMaximizedChange","onSettingChange","onSettingsChange","_ref$openIntercom","openIntercom","_ref$setIsFullscreenM","setIsFullscreenModalMode","timestamp","updateCurrentDashboardAppLastAnnotation","dashboardMeta","_ref$reloadApp","reloadApp","undefined","chatActions","appsData","useContext","AppContext","theme","useTheme","useState","_useState2","_slicedToArray","_useState","mainMenuItems","setMainMenuItems","_useState4","_useState3","secondaryMenuItems","setSecondaryMenuItems","appData","id","isLoading","application","package","manifest","segment","getAppSegment","isMultiRig","ui","multi_rig","areCommentsEnabled","enable_comments","appName","getAppName","_useAppMaximized","useAppMaximized","isMaximized","setIsMaximized","appTimestamp","getTimestampFromQuery","location","query","isCLIApp","DEV_CENTER_CLI_APP_ID","updatedCoordinates","w","version","getAppVersion","_useDevCenterApp","useDevCenterApp","isAppLoading","AppSettings","AppComponent","_useAppSettings","useAppSettings","isAppSettingsDialogOpened","toggleAppSettingsDialog","_useAnnotationsList","useAnnotationsList","isAnnotationsListOpened","toggleAnnotationsList","_useAnnotationsData","useAnnotationsData","appLastAnnotation","assetCompanyId","assetIdForAnnotation","isAppSupportsAnnotations","filteredAppData","pickBy","pick","Boolean","simplifiedSecondaryMenuItems","useMemo","map","item","_objectSpread","onClick","_item$onClick","call","to","push","appHeadersV3Enabled","use_app_header_v3","isInsideHomePage","pathname","startsWith","_jsx","RollbarWrapper","companyId","company_id","appKey","key","rollbarManifestConfig","settings","rollbar","children","DevCenterRouterContext","Provider","value","DcFullscreenElemsCoordinatorProvider","AppCommonsProvider","maximized","setMaximized","appSettings","appSettingsComponent","isInsideNewMobileApp","globalOffsetWells","globalOffsetWellsVersion","CommentsSwitchProvider","_jsxs","classNames","isLightTheme","styles","container","ToastContainer","containerContent","DevCenterAppView","availability","getAppAvailability","company","with_subscription","appProps","appHeaderProps","isNative","AppSettingsDialog","AppSettingsComponent","rigId","rig","AnnotationsProvider","AnnotationsList","appTitle","assetId","onClose","showSuccessNotification","RestoreAppSizeButton","AppActions","CommentsSwitchButton","Tooltip","title","placement","disabled","ButtonIcon","size","type","testId","concat","AnnotationIcon","BugReportIcon","HelpCenterIcon","helpContentUpdatedAt","help_content_updated_at","_Fragment","PriorityMenus","menuItems","NonPriorityMenus","FullscreenButton"],"mappings":"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"}
1
+ {"version":3,"file":"DevCenterAppContainer.js","sources":["../../../../src/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js"],"sourcesContent":["/* eslint-disable react/prop-types */\nimport { useContext, useMemo, useState } from 'react';\nimport classNames from 'classnames';\nimport { noop, pick, pickBy } from 'lodash';\nimport { useTheme } from '@material-ui/core';\nimport { BugReport as BugReportIcon } from '@material-ui/icons';\n\nimport AppContext from '../AppContext';\nimport { DevCenterRouterContext } from '../DevCenterRouterContext';\n\nimport { useAnnotationsData, useAnnotationsList, useAppMaximized, useAppSettings } from './effects';\nimport {\n AppActions,\n AppSettingsDialog,\n DcFullscreenElemsCoordinatorProvider,\n DevCenterAppView,\n FullscreenButton,\n NonPriorityMenus,\n} from './components';\nimport RestoreAppSizeButton from './components/RestoreAppSizeButton';\nimport { getAppAvailability, getAppVersion } from './utils';\nimport PriorityMenus from './components/PriorityMenus';\nimport { RollbarWrapper } from './components/RollbarWrapper/RollbarWrapper';\nimport { CommentsSwitchButton, CommentsSwitchProvider } from './components/CommentsSwitch';\n\nimport styles from './DevCenterAppContainer.css';\n\nimport { isInsideNewMobileApp, isMobileDetected, isNativeDetected } from '~/utils/mobileDetect';\nimport AnnotationIcon from '~components/Icons/AnnotationIcon';\nimport { AnnotationsList, AnnotationsProvider } from '~/components/Annotations';\nimport { ToastContainer } from '~/components/Toaster';\nimport { useDevCenterApp } from '~/effects';\nimport { DEV_CENTER_CLI_APP_ID } from '~/constants';\nimport { getAppName, getAppSegment, getTimestampFromQuery } from '~/utils/devcenter';\nimport { showSuccessNotification } from '~/utils';\nimport { HelpCenterIcon } from '~/components/HelpCenter';\nimport { ButtonIcon, Tooltip } from '~/componentsV2';\nimport { AppCommonsProvider } from '~/componentsV2/AppCommonsProvider';\n\nconst isMobileView = isNativeDetected || isMobileDetected;\nconst PAGE_NAME = 'DevCenter_AppContainer';\n\nconst isHomePage = router => !!router?.location?.pathname?.startsWith('/home');\n\nfunction DevCenterAppContainer({\n CLIAppComponent,\n CLIAppSettings,\n app,\n appId,\n className,\n coordinates,\n currentDashboardAppsLastAnnotations,\n currentUser,\n devCenterRouter,\n disableAppAssetSelection,\n isActionsDisabled,\n isSettingsDialogHidden,\n layoutEnvironment,\n onAppContainerClick = noop,\n onAppRemove,\n onReportBugClick,\n onCloneDashboard,\n onHelpCenterClick,\n onIsMaximizedChange,\n onSettingChange,\n onSettingsChange,\n openIntercom = noop,\n setIsFullscreenModalMode = noop,\n timestamp,\n updateCurrentDashboardAppLastAnnotation,\n dashboardMeta,\n reloadApp = undefined,\n chatActions,\n}) {\n const appsData = useContext(AppContext);\n const theme = useTheme();\n const [mainMenuItems, setMainMenuItems] = useState([]);\n const [secondaryMenuItems, setSecondaryMenuItems] = useState([]);\n const appData = appsData?.[appId || app.id] ?? {\n isLoading: true,\n };\n const application = app.package?.manifest?.application;\n const segment = getAppSegment(app);\n const isMultiRig = !!application?.ui?.multi_rig;\n const areCommentsEnabled = !!application?.ui?.enable_comments;\n const appName = getAppName(app);\n const { isMaximized, setIsMaximized } = useAppMaximized({\n onIsMaximizedChange,\n devCenterRouter,\n appId,\n });\n\n // Note: we need to pass timestamp directly for apps that are embedded in isolated apps\n const appTimestamp = timestamp || getTimestampFromQuery(devCenterRouter.location.query?.query);\n const isCLIApp = app.id === DEV_CENTER_CLI_APP_ID;\n const updatedCoordinates = isCLIApp && isMobileView ? { ...coordinates, w: 12 } : coordinates;\n const version = getAppVersion(app);\n\n const {\n isLoading: isAppLoading,\n AppSettings,\n AppComponent,\n } = useDevCenterApp({\n CLIAppComponent,\n CLIAppSettings,\n app,\n version,\n });\n\n const { isAppSettingsDialogOpened, toggleAppSettingsDialog } = useAppSettings({\n setIsFullscreenModalMode,\n });\n const { isAnnotationsListOpened, toggleAnnotationsList } = useAnnotationsList();\n\n const isLoading = isAppLoading || !currentUser || (!isMultiRig && appData.isLoading);\n\n const { appLastAnnotation, assetCompanyId, assetIdForAnnotation, isAppSupportsAnnotations } =\n useAnnotationsData({\n app,\n appData,\n currentDashboardAppsLastAnnotations,\n });\n\n const filteredAppData = pickBy(\n pick(appData, ['well', 'rig', 'fracFleet', 'wells', 'interventionUnit']),\n Boolean\n );\n\n const simplifiedSecondaryMenuItems = useMemo(\n () =>\n secondaryMenuItems?.map(item => ({\n ...item,\n onClick: () => {\n item.onClick?.();\n if (item.to) {\n devCenterRouter.push(item.to);\n }\n },\n })),\n [secondaryMenuItems, devCenterRouter]\n );\n\n const appHeadersV3Enabled = !!app?.package?.manifest?.application?.ui?.use_app_header_v3;\n const isInsideHomePage = isHomePage(devCenterRouter);\n\n // ⚠️⚠️⚠️ When adding/changing providers, also add them to/change /src/testing/AppTestWrapper\n return (\n <RollbarWrapper\n companyId={app?.app?.company_id}\n appKey={application?.key}\n isCLIApp={isCLIApp}\n rollbarManifestConfig={app?.package?.manifest?.settings?.rollbar}\n version={version}\n >\n <DevCenterRouterContext.Provider value={devCenterRouter}>\n <DcFullscreenElemsCoordinatorProvider setIsFullscreenModalMode={setIsFullscreenModalMode}>\n <AppCommonsProvider\n maximized={isMaximized}\n setMaximized={setIsMaximized}\n appId={app?.app?.id}\n app={app}\n appSettings={app.settings}\n onSettingChange={onSettingChange}\n onSettingsChange={onSettingsChange}\n appHeadersV3Enabled={appHeadersV3Enabled}\n currentUser={currentUser}\n appData={appData}\n layoutEnvironment={layoutEnvironment}\n appSettingsComponent={AppSettings}\n dashboardMeta={dashboardMeta}\n toggleAnnotationsList={isAppSupportsAnnotations ? toggleAnnotationsList : undefined}\n onHelpCenterClick={onHelpCenterClick}\n secondaryMenuItems={simplifiedSecondaryMenuItems}\n onAppRemove={onAppRemove}\n isInsideNewMobileApp={isInsideNewMobileApp}\n globalOffsetWells={dashboardMeta?.globalOffsetWells}\n globalOffsetWellsVersion={dashboardMeta?.globalOffsetWellsVersion}\n reloadApp={reloadApp}\n {...filteredAppData}\n >\n <CommentsSwitchProvider>\n <div\n className={classNames(\n 'dc-app-container',\n isInsideNewMobileApp && 'dc-app-container--inside-new-mobile-app',\n isInsideHomePage && 'dc-app-container--inside-home-page',\n className,\n // This class is applied so that DC apps developers can style their content\n // when an app is in fullscreen\n isMaximized && 'dc-app-container__maximized',\n theme.isLightTheme && 'dc-app-container__light-theme',\n styles.container\n )}\n data-testid={`${PAGE_NAME}_${appName}`}\n // It's important to call it without native event because it's passed through iframe\n onClick={() => onAppContainerClick()}\n >\n <ToastContainer />\n <div className={styles.containerContent}>\n <DevCenterAppView\n AppComponent={AppComponent}\n app={app}\n appData={filteredAppData}\n isAppLoading={isAppLoading}\n availability={getAppAvailability(\n app.availability,\n currentUser.company.with_subscription\n )}\n isCLIApp={isCLIApp}\n isLoading={isLoading}\n isMultiRig={isMultiRig}\n layoutEnvironment={layoutEnvironment}\n openIntercom={openIntercom}\n segment={segment}\n toggleAppSettingsDialog={toggleAppSettingsDialog}\n appProps={{\n coordinates: updatedCoordinates,\n currentUser,\n devCenterRouter,\n onSettingChange,\n onSettingsChange,\n segment,\n setIsFullscreenModalMode,\n setIsMaximized,\n setMainMenuItems,\n setSecondaryMenuItems,\n toggleAppSettingsDialog,\n // TODO remove when componentsV2 AppHeader is used everywhere\n appHeaderProps: {\n app,\n appLastAnnotation,\n appSettings: app.settings,\n coordinates: updatedCoordinates,\n currentUser,\n isMaximized,\n layoutEnvironment,\n onSettingChange,\n toggleAnnotationsList,\n updateCurrentDashboardAppLastAnnotation,\n ...filteredAppData,\n },\n isNative: isNativeDetected,\n layoutEnvironment,\n timestamp: appTimestamp,\n chatActions,\n }}\n />\n </div>\n {isAppSettingsDialogOpened && (\n <AppSettingsDialog\n AppSettingsComponent={AppSettings}\n app={app}\n appData={appData}\n appName={appName}\n currentUser={currentUser}\n disableAppAssetSelection={disableAppAssetSelection}\n isMultiRig={isMultiRig}\n isSettingsDialogHidden={isSettingsDialogHidden}\n layoutEnvironment={layoutEnvironment}\n onAppRemove={onAppRemove}\n onCloneDashboard={onCloneDashboard}\n onSettingChange={onSettingChange}\n onSettingsChange={onSettingsChange}\n openIntercom={openIntercom}\n rigId={appData.rig?.id ?? null}\n timestamp={appTimestamp}\n toggleAppSettingsDialog={toggleAppSettingsDialog}\n />\n )}\n {isAnnotationsListOpened && (\n <AnnotationsProvider>\n <AnnotationsList\n appId={app.app.id}\n appSettings={app.settings}\n appTitle={appName}\n assetCompanyId={assetCompanyId}\n assetId={assetIdForAnnotation}\n currentUser={currentUser}\n onClose={toggleAnnotationsList}\n showSuccessNotification={showSuccessNotification}\n />\n </AnnotationsProvider>\n )}\n {isMaximized && !appHeadersV3Enabled && (\n <RestoreAppSizeButton setIsMaximized={setIsMaximized} />\n )}\n\n {!isActionsDisabled && (!appHeadersV3Enabled || isLoading) && (\n <AppActions>\n {areCommentsEnabled && <CommentsSwitchButton currentUser={currentUser} />}\n\n {isAppSupportsAnnotations && (\n <Tooltip title=\"Add Annotation\" placement=\"top\" disabled={!!isMobileView}>\n <ButtonIcon\n size=\"small\"\n type=\"tertiaryBg\"\n onClick={toggleAnnotationsList}\n testId={`${PAGE_NAME}_addAnnotation`}\n >\n <AnnotationIcon />\n </ButtonIcon>\n </Tooltip>\n )}\n\n {onReportBugClick && !isCLIApp && (\n <Tooltip title=\"Report A Bug\" placement=\"top\" disabled={!!isMobileView}>\n <ButtonIcon\n size=\"small\"\n type=\"tertiaryBg\"\n onClick={() => onReportBugClick()}\n >\n <BugReportIcon />\n </ButtonIcon>\n </Tooltip>\n )}\n\n <Tooltip\n placement=\"top\"\n disabled={!!isMobileView || isCLIApp}\n title=\"Help Center\"\n >\n <ButtonIcon\n testId={`${PAGE_NAME}_helpContent`}\n onClick={() => onHelpCenterClick()}\n disabled={isCLIApp}\n size=\"small\"\n type=\"tertiaryBg\"\n >\n <HelpCenterIcon\n appId={app.app.id}\n helpContentUpdatedAt={app.help_content_updated_at}\n />\n </ButtonIcon>\n </Tooltip>\n\n {isMobileView && !isMaximized && !isInsideNewMobileApp ? (\n <FullscreenButton setIsMaximized={setIsMaximized} />\n ) : (\n <>\n <PriorityMenus\n menuItems={mainMenuItems}\n devCenterRouter={devCenterRouter}\n isMobileView={isMobileView}\n />\n <NonPriorityMenus\n devCenterRouter={devCenterRouter}\n isMaximized={isMaximized}\n isMobileView={isMobileView}\n menuItems={secondaryMenuItems}\n setIsFullscreenModalMode={setIsFullscreenModalMode}\n setIsMaximized={setIsMaximized}\n toggleAppSettingsDialog={toggleAppSettingsDialog}\n />\n </>\n )}\n </AppActions>\n )}\n </div>\n </CommentsSwitchProvider>\n </AppCommonsProvider>\n </DcFullscreenElemsCoordinatorProvider>\n </DevCenterRouterContext.Provider>\n </RollbarWrapper>\n );\n}\n\nexport default DevCenterAppContainer;\n"],"names":["isMobileView","isNativeDetected","isMobileDetected","PAGE_NAME","DevCenterAppContainer","_ref","_appsData","_app$package","_app$package$manifest","_application$ui","_application$ui2","_devCenterRouter$loca","_app$package2","_app$package2$manifes","_app$package2$manifes2","_app$package2$manifes3","_app$app","_app$package3","_app$package3$manifes","_app$package3$manifes2","_app$app2","_appData$rig$id","_appData$rig","router","_router$location","_router$location$path","CLIAppComponent","CLIAppSettings","app","appId","className","coordinates","currentDashboardAppsLastAnnotations","currentUser","devCenterRouter","disableAppAssetSelection","isActionsDisabled","isSettingsDialogHidden","layoutEnvironment","_ref$onAppContainerCl","onAppContainerClick","noop","onAppRemove","onReportBugClick","onCloneDashboard","onHelpCenterClick","onIsMaximizedChange","onSettingChange","onSettingsChange","_ref$openIntercom","openIntercom","_ref$setIsFullscreenM","setIsFullscreenModalMode","timestamp","updateCurrentDashboardAppLastAnnotation","dashboardMeta","_ref$reloadApp","reloadApp","undefined","chatActions","appsData","useContext","AppContext","theme","useTheme","useState","_useState2","_slicedToArray","_useState","mainMenuItems","setMainMenuItems","_useState4","_useState3","secondaryMenuItems","setSecondaryMenuItems","appData","id","isLoading","application","package","manifest","segment","getAppSegment","isMultiRig","ui","multi_rig","areCommentsEnabled","enable_comments","appName","getAppName","_useAppMaximized","useAppMaximized","isMaximized","setIsMaximized","appTimestamp","getTimestampFromQuery","location","query","isCLIApp","DEV_CENTER_CLI_APP_ID","updatedCoordinates","w","version","getAppVersion","_useDevCenterApp","useDevCenterApp","isAppLoading","AppSettings","AppComponent","_useAppSettings","useAppSettings","isAppSettingsDialogOpened","toggleAppSettingsDialog","_useAnnotationsList","useAnnotationsList","isAnnotationsListOpened","toggleAnnotationsList","_useAnnotationsData","useAnnotationsData","appLastAnnotation","assetCompanyId","assetIdForAnnotation","isAppSupportsAnnotations","filteredAppData","pickBy","pick","Boolean","simplifiedSecondaryMenuItems","useMemo","map","item","_objectSpread","onClick","_item$onClick","call","to","push","appHeadersV3Enabled","use_app_header_v3","isInsideHomePage","pathname","startsWith","_jsx","RollbarWrapper","companyId","company_id","appKey","key","rollbarManifestConfig","settings","rollbar","children","DevCenterRouterContext","Provider","value","DcFullscreenElemsCoordinatorProvider","AppCommonsProvider","maximized","setMaximized","appSettings","appSettingsComponent","isInsideNewMobileApp","globalOffsetWells","globalOffsetWellsVersion","CommentsSwitchProvider","_jsxs","classNames","isLightTheme","styles","container","ToastContainer","containerContent","DevCenterAppView","availability","getAppAvailability","company","with_subscription","appProps","appHeaderProps","isNative","AppSettingsDialog","AppSettingsComponent","rigId","rig","AnnotationsProvider","AnnotationsList","appTitle","assetId","onClose","showSuccessNotification","RestoreAppSizeButton","AppActions","CommentsSwitchButton","Tooltip","title","placement","disabled","ButtonIcon","size","type","testId","concat","AnnotationIcon","BugReportIcon","HelpCenterIcon","helpContentUpdatedAt","help_content_updated_at","_Fragment","PriorityMenus","menuItems","NonPriorityMenus","FullscreenButton"],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  export const PAGE_NAME: "DC_appSettings";
2
2
  export default AppSettingsDialog;
3
- declare function AppSettingsDialog({ AppSettingsComponent, app, appData, appName, currentUser, isMultiRig, isSettingsDialogHidden, layoutEnvironment, onAppRemove, onCloneDashboard, onSettingsChange, openIntercom, rigId, toggleAppSettingsDialog, }: {
3
+ declare function AppSettingsDialog({ AppSettingsComponent, app, appData, appName, currentUser, disableAppAssetSelection, isMultiRig, isSettingsDialogHidden, layoutEnvironment, onAppRemove, onCloneDashboard, onSettingsChange, openIntercom, rigId, toggleAppSettingsDialog, }: {
4
4
  AppSettingsComponent: any;
5
5
  app: any;
6
6
  appData: any;
7
7
  appName: any;
8
8
  currentUser: any;
9
+ disableAppAssetSelection: any;
9
10
  isMultiRig: any;
10
11
  isSettingsDialogHidden: any;
11
12
  layoutEnvironment: any;
@@ -23,6 +24,7 @@ declare namespace AppSettingsDialog {
23
24
  export let appData: import("prop-types").Validator<NonNullable<import("prop-types").InferProps<{}>>>;
24
25
  export let appName: import("prop-types").Validator<string>;
25
26
  export let currentUser: import("prop-types").Validator<NonNullable<import("prop-types").InferProps<{}>>>;
27
+ export { bool as disableAppAssetSelection };
26
28
  export let isMultiRig: import("prop-types").Validator<boolean>;
27
29
  export { bool as isSettingsDialogHidden };
28
30
  export let layoutEnvironment: import("prop-types").Validator<NonNullable<import("prop-types").InferProps<{}>>>;
@@ -33,6 +35,7 @@ declare namespace AppSettingsDialog {
33
35
  }
34
36
  namespace defaultProps {
35
37
  export function AppSettingsComponent(): null;
38
+ export let disableAppAssetSelection: boolean;
36
39
  export let isSettingsDialogHidden: boolean;
37
40
  export let onAppRemove: undefined;
38
41
  export { noop as onCloneDashboard };
@@ -1 +1 @@
1
- {"version":3,"file":"AppSettingsDialog.d.ts","sourceRoot":"","sources":["../../../../../../src/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js"],"names":[],"mappings":"AA6BA,wBAAyB,gBAAgB,CAAC;;AAO1C;;;;;;;;;;;;;;;gBAuQC;;;;;;;;;;;;;;;;;QAkBuB,6CAAU;;;;;;qBA5TQ,YAAY;qBAAZ,YAAY;qBACM,QAAQ"}
1
+ {"version":3,"file":"AppSettingsDialog.d.ts","sourceRoot":"","sources":["../../../../../../src/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js"],"names":[],"mappings":"AA6BA,wBAAyB,gBAAgB,CAAC;;AAO1C;;;;;;;;;;;;;;;;gBA2QC;;;;;;;;;;;;;;;;;;QAmBuB,6CAAU;;;;;;;qBAjUQ,YAAY;qBAAZ,YAAY;qBACM,QAAQ"}
@@ -1,2 +1,2 @@
1
- import o from"@babel/runtime/helpers/defineProperty";import s from"@babel/runtime/helpers/slicedToArray";import{useState as n,useRef as i,useEffect as t}from"react";import{func as e,shape as c,string as r,bool as p}from"prop-types";import{cloneDeep as m,debounce as a,noop as l,mapValues as u,keyBy as d}from"lodash";import{FormControl as j,InputLabel as g,Select as I,MenuItem as f}from"@material-ui/core";import{ArrowForward as v}from"@material-ui/icons";import h from"../../../../EmptyState/EmptyState.js";import{getIsSustainabilityApp as C}from"../../utils.js";import b from"./components/RemoveAppButton.js";import{SettingsAccordion as y}from"./components/SettingsAccordion.js";import{useStyles as A}from"./styles.js";import"@babel/runtime/helpers/objectWithoutProperties";import"@material-ui/pickers";import"@date-io/moment";import"moment";import"../../../../../config/theme/index.js";import{jsxs as S,jsx as O,Fragment as D}from"react/jsx-runtime";import P from"../../../../../hocs/withAssetEditorLockHOC.js";import k from"../../../../ErrorBoundary/ErrorBoundary.js";import R from"../../../../ErrorBoundary/DevCenterAppErrorView/DevCenterAppErrorView.js";import E from"../../../../Button/components/Button/index.js";import"moment-timezone";import"classnames";import"../../../../Button/components/LiveButton/components/LiveButtonStateIndicator/index.js";import"../../../../Button/components/LiveButton/styles.js";import"@icon-park/react/es/all";import"../../../../../icons/IconParkProvider.js";import"../../../../../icons/customIcons/icons/AddMessage.js";import"../../../../../icons/customIcons/icons/Attention.js";import"../../../../../icons/customIcons/icons/Collapse.js";import"../../../../../icons/customIcons/icons/Dashboard.js";import"../../../../../icons/customIcons/icons/Expand.js";import"../../../../../icons/customIcons/icons/FolderClosed.js";import"../../../../../icons/customIcons/icons/FolderClosedFilled.js";import"../../../../../icons/customIcons/icons/FolderOpened.js";import"../../../../../icons/customIcons/icons/GreaterOrEqual.js";import"../../../../../icons/customIcons/icons/LessOrEqual.js";import"../../../../../icons/customIcons/icons/Search.js";import"../../../../../icons/customIcons/icons/SearchOne.js";import"../../../../../icons/customIcons/icons/Wellhub.js";import"../../../../../icons/customIcons/icons/MultiRuler.js";import"../../../../../icons/customIcons/icons/Checkbox.js";import"../../../../../icons/customIcons/icons/CheckboxChecked.js";import"../../../../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../../../../icons/customIcons/icons/Radio.js";import"../../../../../icons/customIcons/icons/RadioChecked.js";import"../../../../../icons/customIcons/icons/SimulFrac.js";import"../../../../../icons/customIcons/icons/ZipperFrac.js";import"../../../../../icons/customIcons/icons/CautionFilled.js";import"../../../../../icons/customIcons/icons/MoreApp.js";import"../../../../../icons/customIcons/icons/Pad.js";import"../../../../../icons/customIcons/icons/DrilloutUnit.js";import"../../../../../icons/customIcons/icons/FracFleet.js";import"../../../../../icons/customIcons/icons/Global.js";import"../../../../../icons/customIcons/icons/Program.js";import"../../../../../icons/customIcons/icons/Rig.js";import"../../../../../icons/customIcons/icons/Well.js";import"../../../../../icons/customIcons/icons/Gap.js";import"../../../../../icons/customIcons/icons/Pin.js";import"../../../../../icons/customIcons/icons/CloseOneFilled.js";import"../../../../../icons/customIcons/icons/AttentionFilled.js";import"../../../../../icons/customIcons/icons/CheckOneFilled.js";import"../../../../../icons/customIcons/icons/Archive.js";import"../../../../../icons/customIcons/icons/ArchiveCancel.js";import"../../../../../icons/customIcons/icons/Unarchive.js";import"../../../../../icons/customIcons/icons/Archived.js";import"../../../../../icons/customIcons/icons/InterventionUnit.js";import"../../../../../icons/customIcons/icons/CloudDelete.js";import"../../../../../icons/customIcons/icons/Lasso.js";import"../../../../../icons/customIcons/icons/Radius.js";import"../../../../../icons/customIcons/icons/ErrorOps.js";import"../../../../../icons/customIcons/icons/DataTypeOps.js";import"../../../../../icons/customIcons/icons/FalsePositiveOps.js";import"../../../../../icons/customIcons/icons/CalibrationOps.js";import"../../../../../icons/customIcons/icons/CriticalOps.js";import"../../../../../icons/customIcons/icons/Company.js";import"../../../../../icons/customIcons/icons/ArchiveOne.js";import"../../../../../icons/customIcons/icons/ParseBotFusion.js";import"../../../../../icons/customIcons/icons/Connect.js";import"../../../../../icons/customIcons/icons/PuzzleOne.js";import"../../../../../icons/customIcons/icons/Feed.js";import"../../../../../icons/customIcons/icons/Prompt.js";import"../../../../../icons/customIcons/icons/Companies.js";import"../../../../../icons/customIcons/icons/ClipboardAi.js";import"../../../../../icons/customIcons/icons/Key.js";import"../../../../../icons/customIcons/icons/AtSignCrossed.js";import"../../../../../icons/customIcons/icons/MappingManual.js";import"../../../../../icons/customIcons/icons/Mapping.js";import"../../../../../icons/customIcons/icons/Metrics.js";import"../../../../../icons/customIcons/icons/Drops.js";import"../../../../../icons/customIcons/icons/ClipboardSearch.js";import"../../../../../icons/customIcons/icons/Template.js";import"../../../../../icons/customIcons/icons/ClipboardMetrics.js";import"../../../../../icons/customIcons/icons/ClipboardBuilder.js";import"../../../../../icons/customIcons/icons/UnitConversion.js";import"../../../../../icons/customIcons/icons/NPT.js";import N from"../../../../Modal/Modal.js";import{DEV_CENTER_CLI_APP_ID as x}from"../../../../../constants/devcenter.js";import"../../../../../constants/goals.js";import{SEGMENTS as M,SEGMENT_TO_ASSET_TYPE as w}from"../../../../../constants/segment.js";import"../../../../../constants/alerts.js";import"../../../../../constants/apps.js";import"../../../../../constants/drillstring.js";import"../../../../../constants/completion.js";import"../../../../../constants/appPackages.js";import"../../../../../constants/notifications.js";import"../../../../../constants/feed.js";import"../../../../../constants/bha.js";import{ASSET_TYPES as B}from"../../../../../constants/assetTypes.js";import"../../../../../constants/corvaCompanyId.js";import"../../../../GradientManager/configuration/constants.js";import T from"../../../../AssetEditorV2/index.js";import F from"../../../../AppVersionsSelect/AppVersionsSelect.js";import q from"../../../../DisabledSettingsMessage/DisabledSettingsMessage.js";import V from"../../../../ConfirmationDialog.js";import"../../../../../utils/index.js";import{AppIcon as H}from"../../../../AppIcon/AppIcon.js";import{getAppSegment as U}from"../../../../../utils/devcenter.js";import L from"../../../../../permissions/usePermissions.js";import{PERMISSIONS as G}from"../../../../../permissions/constants/index.js";import"../../../../../permissions/withPermissionsHOC.js";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/regenerator";import"../../../../../clients/jsonApi/index.js";import"../../../../../permissions/ProvidePermissions.js";import"../../../../../permissions/PermissionsContext.js";import{isInsideNewMobileApp as _}from"../../../../../utils/mobileDetect.js";import{HideInNativeApp as z}from"../../../../../componentsV2/HideInNativeApp/index.js";import{showSuccessNotification as W}from"../../../../../utils/notificationToasts.js";function K(o,s){var n=Object.keys(o);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(o);s&&(i=i.filter((function(s){return Object.getOwnPropertyDescriptor(o,s).enumerable}))),n.push.apply(n,i)}return n}function Z(s){for(var n=1;n<arguments.length;n++){var i=null!=arguments[n]?arguments[n]:{};n%2?K(Object(i),!0).forEach((function(n){o(s,n,i[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(i)):K(Object(i)).forEach((function(o){Object.defineProperty(s,o,Object.getOwnPropertyDescriptor(i,o))}))}return s}var J="DC_appSettings",Q=P(T),X=function(){return null};function Y(e){var c,r,p,l,P,K,Y,$=e.AppSettingsComponent,oo=e.app,so=e.appData,no=e.appName,io=e.currentUser,to=e.isMultiRig,eo=e.isSettingsDialogHidden,co=e.layoutEnvironment,ro=e.onAppRemove,po=e.onCloneDashboard,mo=e.onSettingsChange,ao=e.openIntercom,lo=e.rigId,uo=e.toggleAppSettingsDialog,jo=(null==oo||null===(c=oo.segment)||void 0===c?void 0:c.length)>1,go=n(U(oo)),Io=s(go,2),fo=Io[0],vo=Io[1],ho=fo===M.COMPLETION,Co=w[fo],bo=co&&"asset"===co.type,yo=L([G.getCanReadAppPackages(oo.app.id)]),Ao=s(yo,1)[0],So=Ao.active,Oo=Ao.loading,Do=n(!1),Po=s(Do,2),ko=Po[0],Ro=Po[1],Eo=n(!0),No=s(Eo,2),xo=No[0],Mo=No[1],wo=!(_||to||bo&&ho),Bo=!_&&!eo&&ro,To=i(lo);t((function(){xo||Mo(!0)}),[xo]);var Fo=n((function(){var o;return Z(Z({},m(oo.settings)),{},{package:oo.settings.package||(null==oo||null===(o=oo.package)||void 0===o?void 0:o.version)})})),qo=s(Fo,2),Vo=qo[0],Ho=qo[1],Uo=C(null==oo||null===(r=oo.app)||void 0===r?void 0:r.id),Lo=n(""),Go=s(Lo,2),_o=Go[0],zo=Go[1],Wo=i(null),Ko=i(null),Zo=Oo||So||Boolean(null===(p=Wo.current)||void 0===p?void 0:p.clientHeight),Jo=Boolean(null===(l=Ko.current)||void 0===l?void 0:l.clientHeight),Qo=Zo&&Jo,Xo=A({isCompletionApp:ho,isSustainabilityApp:Uo,isAccordionRequired:Qo,isRemoveButtonVisible:Bo}),Yo=oo.id===x,$o=function(s,n){return Ho((function(i){return Z(Z({},i),{},o({},s,n))}))},os=function(o){return Ho((function(s){return Z(Z({},s),o)}))},ss=bo?Q:T;t((function(){a(Ro,200)(!0)}),[]);var ns=S("div",{className:Xo.modalTitleContainer,children:[O(H,{className:Xo.appIcon,segment:[fo],iconUrl:null==oo||null===(P=oo.app)||void 0===P||null===(K=P.icon)||void 0===K?void 0:K.url,height:48,width:48}),S("div",{children:[O("div",{children:"".concat(no," Settings")}),O(z,{children:S("div",{"data-testid":"".concat(J,"_appstoreLink"),className:Xo.appStoreButton,onClick:function(){var o,s;return window.open((s=null==oo||null===(o=oo.app)||void 0===o?void 0:o.id,"/app-store/app/".concat(s)),"_top")},children:["Open in Appstore ",O(v,{className:Xo.arrowIcon})]})})]})]}),is=S("div",{className:Xo.modalActions,children:[Bo&&O(b,{appName:no,onAppRemove:ro}),S("div",{children:[O(E,{"data-testid":"".concat(J,"_cancel"),variation:"secondary",onClick:uo,children:"Cancel"}),eo&&O(E,{variation:"primary",onClick:function(){return po()},children:"Copy Dashboard"}),!eo&&O(E,{"data-testid":"".concat(J,"_save"),className:Xo.saveButton,variation:"primary",onClick:function(){if(!Vo.package&&!Yo)return zo("Please select app version");if(wo&&!bo){var o=null==Co?void 0:Co.primaryAsset.assetType.id,s=null==Co?void 0:Co.primaryAsset.assetType.label;if(o&&!Vo[o])return zo("Please select ".concat(s))}return mo(Vo),W("Successfully saved"),uo()},children:"Save"})]})]});return O(N,{actions:is,closeIconClassName:Xo.closeIcon,contentContainerClassName:Xo.modalContainer,modalTitleClassName:Xo.modalTitle,onClose:uo,open:!0,title:ns,children:S(k,{ErrorView:R,openIntercom:ao,children:[O(V,{open:!!_o,isShowCancel:!1,title:"Validation failed",text:_o,handleOk:function(){return zo("")},classes:{confirmation:Xo.confirmationText}}),eo&&O(q,{}),!eo&&ko&&!Jo&&!Zo&&O(h,{image:h.IMAGES.UnderConstruction,title:"No app settings"}),!eo&&S(D,{children:[S(y,{defaultExpanded:!0,className:Xo.assetAccordion,accordionDetailsRef:Wo,isAccordionRequired:Qo,summary:"Asset",children:[jo&&S(j,{className:Xo.segmentSelector,children:[O(g,{children:"Segment"}),O(I,{value:fo,onChange:function(o){var s=o.target.value;To.current=null,Mo(!1),vo(s),Ho(Z(Z({package:Vo.package,segment:s},u(d(B,"id"),(function(){return null}))),{},{assets:null}))},children:oo.segment.map((function(o){return O(f,{className:Xo.segmentMenuItem,value:o,children:o},o)}))})]}),wo&&xo&&O(ss,{appKey:Yo?null:oo.app.app_key,appType:Co,defaultValue:To.current,secondaryDefaultValue:+(null==so||null===(Y=so.well)||void 0===Y?void 0:Y.id),isHiddenMultipleAssetsToggle:!0,isHiddenTitle:!0,isNullable:bo,label:"Asset",onSettingsChange:os,settings:Vo}),O(F,{className:Xo.appVersionSelect,appId:oo.app.id,value:Vo.package,onChange:function(o){return $o("package",o)}})]}),O(k,{ErrorView:X,openIntercom:ao,children:O(y,{accordionDetailsRef:Ko,className:Xo.accordion,defaultExpanded:!0,isAccordionRequired:Qo,summary:"App Settings",children:$&&O($,{app:oo,appData:so,settings:Vo,onSettingChange:$o,onSettingsChange:os,layoutEnvironment:co,currentUser:io})})})]})]})})}Y.propTypes={AppSettingsComponent:e,app:c({}).isRequired,appData:c({}).isRequired,appName:r.isRequired,currentUser:c({}).isRequired,isMultiRig:p.isRequired,isSettingsDialogHidden:p,layoutEnvironment:c({}).isRequired,onAppRemove:e,onCloneDashboard:e,onSettingsChange:e.isRequired,toggleAppSettingsDialog:e.isRequired},Y.defaultProps={AppSettingsComponent:function(){return null},isSettingsDialogHidden:!1,onAppRemove:void 0,onCloneDashboard:l};export{J as PAGE_NAME,Y as default};
1
+ import o from"@babel/runtime/helpers/defineProperty";import s from"@babel/runtime/helpers/slicedToArray";import{useState as n,useRef as i,useEffect as t}from"react";import{func as e,shape as c,string as r,bool as p}from"prop-types";import{cloneDeep as m,debounce as a,noop as l,mapValues as u,keyBy as d}from"lodash";import{FormControl as j,InputLabel as g,Select as I,MenuItem as f}from"@material-ui/core";import{ArrowForward as v}from"@material-ui/icons";import h from"../../../../EmptyState/EmptyState.js";import{getIsSustainabilityApp as C}from"../../utils.js";import A from"./components/RemoveAppButton.js";import{SettingsAccordion as b}from"./components/SettingsAccordion.js";import{useStyles as y}from"./styles.js";import"@babel/runtime/helpers/objectWithoutProperties";import"@material-ui/pickers";import"@date-io/moment";import"moment";import"../../../../../config/theme/index.js";import{jsxs as S,jsx as O,Fragment as D}from"react/jsx-runtime";import P from"../../../../../hocs/withAssetEditorLockHOC.js";import k from"../../../../ErrorBoundary/ErrorBoundary.js";import R from"../../../../ErrorBoundary/DevCenterAppErrorView/DevCenterAppErrorView.js";import E from"../../../../Button/components/Button/index.js";import"moment-timezone";import"classnames";import"../../../../Button/components/LiveButton/components/LiveButtonStateIndicator/index.js";import"../../../../Button/components/LiveButton/styles.js";import"@icon-park/react/es/all";import"../../../../../icons/IconParkProvider.js";import"../../../../../icons/customIcons/icons/AddMessage.js";import"../../../../../icons/customIcons/icons/Attention.js";import"../../../../../icons/customIcons/icons/Collapse.js";import"../../../../../icons/customIcons/icons/Dashboard.js";import"../../../../../icons/customIcons/icons/Expand.js";import"../../../../../icons/customIcons/icons/FolderClosed.js";import"../../../../../icons/customIcons/icons/FolderClosedFilled.js";import"../../../../../icons/customIcons/icons/FolderOpened.js";import"../../../../../icons/customIcons/icons/GreaterOrEqual.js";import"../../../../../icons/customIcons/icons/LessOrEqual.js";import"../../../../../icons/customIcons/icons/Search.js";import"../../../../../icons/customIcons/icons/SearchOne.js";import"../../../../../icons/customIcons/icons/Wellhub.js";import"../../../../../icons/customIcons/icons/MultiRuler.js";import"../../../../../icons/customIcons/icons/Checkbox.js";import"../../../../../icons/customIcons/icons/CheckboxChecked.js";import"../../../../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../../../../icons/customIcons/icons/Radio.js";import"../../../../../icons/customIcons/icons/RadioChecked.js";import"../../../../../icons/customIcons/icons/SimulFrac.js";import"../../../../../icons/customIcons/icons/ZipperFrac.js";import"../../../../../icons/customIcons/icons/CautionFilled.js";import"../../../../../icons/customIcons/icons/MoreApp.js";import"../../../../../icons/customIcons/icons/Pad.js";import"../../../../../icons/customIcons/icons/DrilloutUnit.js";import"../../../../../icons/customIcons/icons/FracFleet.js";import"../../../../../icons/customIcons/icons/Global.js";import"../../../../../icons/customIcons/icons/Program.js";import"../../../../../icons/customIcons/icons/Rig.js";import"../../../../../icons/customIcons/icons/Well.js";import"../../../../../icons/customIcons/icons/Gap.js";import"../../../../../icons/customIcons/icons/Pin.js";import"../../../../../icons/customIcons/icons/CloseOneFilled.js";import"../../../../../icons/customIcons/icons/AttentionFilled.js";import"../../../../../icons/customIcons/icons/CheckOneFilled.js";import"../../../../../icons/customIcons/icons/Archive.js";import"../../../../../icons/customIcons/icons/ArchiveCancel.js";import"../../../../../icons/customIcons/icons/Unarchive.js";import"../../../../../icons/customIcons/icons/Archived.js";import"../../../../../icons/customIcons/icons/InterventionUnit.js";import"../../../../../icons/customIcons/icons/CloudDelete.js";import"../../../../../icons/customIcons/icons/Lasso.js";import"../../../../../icons/customIcons/icons/Radius.js";import"../../../../../icons/customIcons/icons/ErrorOps.js";import"../../../../../icons/customIcons/icons/DataTypeOps.js";import"../../../../../icons/customIcons/icons/FalsePositiveOps.js";import"../../../../../icons/customIcons/icons/CalibrationOps.js";import"../../../../../icons/customIcons/icons/CriticalOps.js";import"../../../../../icons/customIcons/icons/Company.js";import"../../../../../icons/customIcons/icons/ArchiveOne.js";import"../../../../../icons/customIcons/icons/ParseBotFusion.js";import"../../../../../icons/customIcons/icons/Connect.js";import"../../../../../icons/customIcons/icons/PuzzleOne.js";import"../../../../../icons/customIcons/icons/Feed.js";import"../../../../../icons/customIcons/icons/Prompt.js";import"../../../../../icons/customIcons/icons/Companies.js";import"../../../../../icons/customIcons/icons/ClipboardAi.js";import"../../../../../icons/customIcons/icons/Key.js";import"../../../../../icons/customIcons/icons/AtSignCrossed.js";import"../../../../../icons/customIcons/icons/MappingManual.js";import"../../../../../icons/customIcons/icons/Mapping.js";import"../../../../../icons/customIcons/icons/Metrics.js";import"../../../../../icons/customIcons/icons/Drops.js";import"../../../../../icons/customIcons/icons/ClipboardSearch.js";import"../../../../../icons/customIcons/icons/Template.js";import"../../../../../icons/customIcons/icons/ClipboardMetrics.js";import"../../../../../icons/customIcons/icons/ClipboardBuilder.js";import"../../../../../icons/customIcons/icons/UnitConversion.js";import"../../../../../icons/customIcons/icons/NPT.js";import N from"../../../../Modal/Modal.js";import{DEV_CENTER_CLI_APP_ID as x}from"../../../../../constants/devcenter.js";import"../../../../../constants/goals.js";import{SEGMENTS as M,SEGMENT_TO_ASSET_TYPE as w}from"../../../../../constants/segment.js";import"../../../../../constants/alerts.js";import"../../../../../constants/apps.js";import"../../../../../constants/drillstring.js";import"../../../../../constants/completion.js";import"../../../../../constants/appPackages.js";import"../../../../../constants/notifications.js";import"../../../../../constants/feed.js";import"../../../../../constants/bha.js";import{ASSET_TYPES as B}from"../../../../../constants/assetTypes.js";import"../../../../../constants/corvaCompanyId.js";import"../../../../GradientManager/configuration/constants.js";import T from"../../../../AssetEditorV2/index.js";import F from"../../../../AppVersionsSelect/AppVersionsSelect.js";import q from"../../../../DisabledSettingsMessage/DisabledSettingsMessage.js";import V from"../../../../ConfirmationDialog.js";import"../../../../../utils/index.js";import{AppIcon as H}from"../../../../AppIcon/AppIcon.js";import{getAppSegment as U}from"../../../../../utils/devcenter.js";import L from"../../../../../permissions/usePermissions.js";import{PERMISSIONS as G}from"../../../../../permissions/constants/index.js";import"../../../../../permissions/withPermissionsHOC.js";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/regenerator";import"../../../../../clients/jsonApi/index.js";import"../../../../../permissions/ProvidePermissions.js";import"../../../../../permissions/PermissionsContext.js";import{isInsideNewMobileApp as _}from"../../../../../utils/mobileDetect.js";import{HideInNativeApp as z}from"../../../../../componentsV2/HideInNativeApp/index.js";import{showSuccessNotification as W}from"../../../../../utils/notificationToasts.js";function K(o,s){var n=Object.keys(o);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(o);s&&(i=i.filter((function(s){return Object.getOwnPropertyDescriptor(o,s).enumerable}))),n.push.apply(n,i)}return n}function Z(s){for(var n=1;n<arguments.length;n++){var i=null!=arguments[n]?arguments[n]:{};n%2?K(Object(i),!0).forEach((function(n){o(s,n,i[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(i)):K(Object(i)).forEach((function(o){Object.defineProperty(s,o,Object.getOwnPropertyDescriptor(i,o))}))}return s}var J="DC_appSettings",Q=P(T),X=function(){return null};function Y(e){var c,r,p,l,P,K,Y,$=e.AppSettingsComponent,oo=e.app,so=e.appData,no=e.appName,io=e.currentUser,to=e.disableAppAssetSelection,eo=e.isMultiRig,co=e.isSettingsDialogHidden,ro=e.layoutEnvironment,po=e.onAppRemove,mo=e.onCloneDashboard,ao=e.onSettingsChange,lo=e.openIntercom,uo=e.rigId,jo=e.toggleAppSettingsDialog,go=(null==oo||null===(c=oo.segment)||void 0===c?void 0:c.length)>1,Io=n(U(oo)),fo=s(Io,2),vo=fo[0],ho=fo[1],Co=vo===M.COMPLETION,Ao=w[vo],bo=ro&&"asset"===ro.type,yo=L([G.getCanReadAppPackages(oo.app.id)]),So=s(yo,1)[0],Oo=So.active,Do=So.loading,Po=n(!1),ko=s(Po,2),Ro=ko[0],Eo=ko[1],No=n(!0),xo=s(No,2),Mo=xo[0],wo=xo[1],Bo=!(to||_||eo||bo&&Co),To=!_&&!co&&po,Fo=i(uo);t((function(){Mo||wo(!0)}),[Mo]);var qo=n((function(){var o;return Z(Z({},m(oo.settings)),{},{package:oo.settings.package||(null==oo||null===(o=oo.package)||void 0===o?void 0:o.version)})})),Vo=s(qo,2),Ho=Vo[0],Uo=Vo[1],Lo=C(null==oo||null===(r=oo.app)||void 0===r?void 0:r.id),Go=n(""),_o=s(Go,2),zo=_o[0],Wo=_o[1],Ko=i(null),Zo=i(null),Jo=Do||Oo||Boolean(null===(p=Ko.current)||void 0===p?void 0:p.clientHeight),Qo=Boolean(null===(l=Zo.current)||void 0===l?void 0:l.clientHeight),Xo=Jo&&Qo,Yo=y({isCompletionApp:Co,isSustainabilityApp:Lo,isAccordionRequired:Xo,isRemoveButtonVisible:To}),$o=oo.id===x,os=function(s,n){return Uo((function(i){return Z(Z({},i),{},o({},s,n))}))},ss=function(o){return Uo((function(s){return Z(Z({},s),o)}))},ns=bo?Q:T;t((function(){a(Eo,200)(!0)}),[]);var is=S("div",{className:Yo.modalTitleContainer,children:[O(H,{className:Yo.appIcon,segment:[vo],iconUrl:null==oo||null===(P=oo.app)||void 0===P||null===(K=P.icon)||void 0===K?void 0:K.url,height:48,width:48}),S("div",{children:[O("div",{children:"".concat(no," Settings")}),O(z,{children:S("div",{"data-testid":"".concat(J,"_appstoreLink"),className:Yo.appStoreButton,onClick:function(){var o,s;return window.open((s=null==oo||null===(o=oo.app)||void 0===o?void 0:o.id,"/app-store/app/".concat(s)),"_top")},children:["Open in Appstore ",O(v,{className:Yo.arrowIcon})]})})]})]}),ts=S("div",{className:Yo.modalActions,children:[To&&O(A,{appName:no,onAppRemove:po}),S("div",{children:[O(E,{"data-testid":"".concat(J,"_cancel"),variation:"secondary",onClick:jo,children:"Cancel"}),co&&O(E,{variation:"primary",onClick:function(){return mo()},children:"Copy Dashboard"}),!co&&O(E,{"data-testid":"".concat(J,"_save"),className:Yo.saveButton,variation:"primary",onClick:function(){if(!Ho.package&&!$o)return Wo("Please select app version");if(Bo&&!bo){var o=null==Ao?void 0:Ao.primaryAsset.assetType.id,s=null==Ao?void 0:Ao.primaryAsset.assetType.label;if(o&&!Ho[o])return Wo("Please select ".concat(s))}return ao(Ho),W("Successfully saved"),jo()},children:"Save"})]})]});return O(N,{actions:ts,closeIconClassName:Yo.closeIcon,contentContainerClassName:Yo.modalContainer,modalTitleClassName:Yo.modalTitle,onClose:jo,open:!0,title:is,children:S(k,{ErrorView:R,openIntercom:lo,children:[O(V,{open:!!zo,isShowCancel:!1,title:"Validation failed",text:zo,handleOk:function(){return Wo("")},classes:{confirmation:Yo.confirmationText}}),co&&O(q,{}),!co&&Ro&&!Qo&&!Jo&&O(h,{image:h.IMAGES.UnderConstruction,title:"No app settings"}),!co&&S(D,{children:[S(b,{defaultExpanded:!0,className:Yo.assetAccordion,accordionDetailsRef:Ko,isAccordionRequired:Xo,summary:"Asset",children:[go&&S(j,{className:Yo.segmentSelector,children:[O(g,{children:"Segment"}),O(I,{value:vo,onChange:function(o){var s=o.target.value;Fo.current=null,wo(!1),ho(s),Uo(Z(Z({package:Ho.package,segment:s},u(d(B,"id"),(function(){return null}))),{},{assets:null}))},children:oo.segment.map((function(o){return O(f,{className:Yo.segmentMenuItem,value:o,children:o},o)}))})]}),Bo&&Mo&&O(ns,{appKey:$o?null:oo.app.app_key,appType:Ao,defaultValue:Fo.current,secondaryDefaultValue:+(null==so||null===(Y=so.well)||void 0===Y?void 0:Y.id),isHiddenMultipleAssetsToggle:!0,isHiddenTitle:!0,isNullable:bo,label:"Asset",onSettingsChange:ss,settings:Ho}),O(F,{className:Yo.appVersionSelect,appId:oo.app.id,value:Ho.package,onChange:function(o){return os("package",o)}})]}),O(k,{ErrorView:X,openIntercom:lo,children:O(b,{accordionDetailsRef:Zo,className:Yo.accordion,defaultExpanded:!0,isAccordionRequired:Xo,summary:"App Settings",children:$&&O($,{app:oo,appData:so,settings:Ho,onSettingChange:os,onSettingsChange:ss,layoutEnvironment:ro,currentUser:io})})})]})]})})}Y.propTypes={AppSettingsComponent:e,app:c({}).isRequired,appData:c({}).isRequired,appName:r.isRequired,currentUser:c({}).isRequired,disableAppAssetSelection:p,isMultiRig:p.isRequired,isSettingsDialogHidden:p,layoutEnvironment:c({}).isRequired,onAppRemove:e,onCloneDashboard:e,onSettingsChange:e.isRequired,toggleAppSettingsDialog:e.isRequired},Y.defaultProps={AppSettingsComponent:function(){return null},disableAppAssetSelection:!1,isSettingsDialogHidden:!1,onAppRemove:void 0,onCloneDashboard:l};export{J as PAGE_NAME,Y as default};
2
2
  //# sourceMappingURL=AppSettingsDialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppSettingsDialog.js","sources":["../../../../../../src/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { bool, func, shape, string } from 'prop-types';\nimport { cloneDeep, debounce, keyBy, mapValues, noop } from 'lodash';\nimport { FormControl, InputLabel, MenuItem, Select } from '@material-ui/core';\nimport { ArrowForward as ArrowIcon } from '@material-ui/icons';\n\nimport EmptyState from '../../../../EmptyState';\nimport { getIsSustainabilityApp } from '../../utils';\n\nimport { RemoveAppButton, SettingsAccordion } from './components';\nimport { useStyles } from './styles';\n\nimport { withAssetEditorLockHOC } from '~/hocs';\nimport ErrorBoundary, { DevCenterAppErrorView } from '~/components/ErrorBoundary';\nimport Button from '~/components/Button';\nimport Modal from '~/components/Modal';\nimport { ASSET_TYPES, DEV_CENTER_CLI_APP_ID } from '~/constants';\nimport AssetEditor from '~/components/AssetEditorV2';\nimport AppVersionsSelect from '~/components/AppVersionsSelect';\nimport { DisabledSettingsMessage } from '~/components/DisabledSettingsMessage';\nimport ConfirmationDialog from '~/components/ConfirmationDialog';\nimport { SEGMENT_TO_ASSET_TYPE, SEGMENTS } from '~/constants/segment';\nimport { showSuccessNotification } from '~/utils';\nimport AppIcon from '~/components/AppIcon';\nimport { getAppSegment } from '~/utils/devcenter';\nimport { PERMISSIONS, usePermissions } from '~/permissions';\nimport { isInsideNewMobileApp } from '~/utils/mobileDetect';\nimport { HideInNativeApp } from '~/componentsV2/HideInNativeApp';\n\nexport const PAGE_NAME = 'DC_appSettings';\n\nconst getAppPageUrl = appId => `/app-store/app/${appId}`;\nconst AssetEditorWithLock = withAssetEditorLockHOC(AssetEditor);\n\nconst AppSettingsErrorView = () => null;\n\nfunction AppSettingsDialog({\n AppSettingsComponent,\n app,\n appData,\n appName,\n currentUser,\n isMultiRig,\n isSettingsDialogHidden,\n layoutEnvironment,\n onAppRemove,\n onCloneDashboard,\n onSettingsChange,\n openIntercom,\n rigId,\n toggleAppSettingsDialog,\n}) {\n const hasSegmentSelector = app?.segment?.length > 1;\n const [appSegmentSetting, setAppSegmentSetting] = useState(getAppSegment(app));\n const isCompletionSegment = appSegmentSetting === SEGMENTS.COMPLETION;\n const assetEditorAppType = SEGMENT_TO_ASSET_TYPE[appSegmentSetting];\n const isAssetPage = layoutEnvironment && layoutEnvironment.type === 'asset';\n const [{ active: canReadAppPackages, loading: isPermissionsLoading }] = usePermissions([\n PERMISSIONS.getCanReadAppPackages(app.app.id),\n ]);\n\n const [isMounted, setIsMounted] = useState(false);\n const [isAssetSelectorRendered, setIsAssetSelectorRendered] = useState(true);\n const isAssetSelectorVisible =\n !isInsideNewMobileApp && !isMultiRig && !(isAssetPage && isCompletionSegment);\n const isRemoveButtonVisible = !isInsideNewMobileApp && !isSettingsDialogHidden && onAppRemove;\n\n // NOTE: Keep in ref to have a way to reset default value\n // of asset selector when changing app segment\n const defaultRigId = useRef(rigId);\n\n useEffect(() => {\n if (!isAssetSelectorRendered) setIsAssetSelectorRendered(true);\n }, [isAssetSelectorRendered]);\n\n const [appSettings, setAppSettings] = useState(() => ({\n ...cloneDeep(app.settings),\n package: app.settings.package || app?.package?.version,\n }));\n\n const handleChangeAppSegment = ({ target: { value: nextSegment } }) => {\n defaultRigId.current = null;\n setIsAssetSelectorRendered(false);\n\n setAppSegmentSetting(nextSegment);\n setAppSettings({\n package: appSettings.package,\n segment: nextSegment,\n // NOTE: we need to reset asset ids when segment is changed\n ...mapValues(keyBy(ASSET_TYPES, 'id'), () => null),\n assets: null,\n });\n };\n\n const isSustainabilityApp = getIsSustainabilityApp(app?.app?.id);\n\n const [validationError, setValidationError] = useState('');\n const platformAppSettingsRef = useRef(null);\n const customAppSettingsRef = useRef(null);\n\n const hasPlatformAppSettings =\n isPermissionsLoading ||\n canReadAppPackages ||\n Boolean(platformAppSettingsRef.current?.clientHeight);\n const hasCustomAppSettings = Boolean(customAppSettingsRef.current?.clientHeight);\n const isAccordionRequired = hasPlatformAppSettings && hasCustomAppSettings;\n\n const styles = useStyles({\n isCompletionApp: isCompletionSegment,\n isSustainabilityApp,\n isAccordionRequired,\n isRemoveButtonVisible,\n });\n\n const isCLIApp = app.id === DEV_CENTER_CLI_APP_ID;\n\n const onSave = () => {\n const isNoPackageError = !appSettings.package && !isCLIApp;\n if (isNoPackageError) return setValidationError('Please select app version');\n if (isAssetSelectorVisible && !isAssetPage) {\n const appTypeKey = assetEditorAppType?.primaryAsset.assetType.id;\n const appTypeLabel = assetEditorAppType?.primaryAsset.assetType.label;\n if (appTypeKey && !appSettings[appTypeKey])\n return setValidationError(`Please select ${appTypeLabel}`);\n }\n\n onSettingsChange(appSettings);\n showSuccessNotification('Successfully saved');\n return toggleAppSettingsDialog();\n };\n\n const onAppSettingChange = (name, value) =>\n setAppSettings(prevSettings => ({\n ...prevSettings,\n [name]: value,\n }));\n\n const onAppSettingsChange = newSettings =>\n setAppSettings(prevSettings => ({ ...prevSettings, ...newSettings }));\n\n const AssetEditorComponent = isAssetPage ? AssetEditorWithLock : AssetEditor;\n\n useEffect(() => {\n const debouncedSetIsMounted = debounce(setIsMounted, 200);\n debouncedSetIsMounted(true);\n }, []);\n\n const modalTitle = (\n <div className={styles.modalTitleContainer}>\n <AppIcon\n className={styles.appIcon}\n segment={[appSegmentSetting]}\n iconUrl={app?.app?.icon?.url}\n height={48}\n width={48}\n />\n <div>\n <div>{`${appName} Settings`}</div>\n <HideInNativeApp>\n <div\n data-testid={`${PAGE_NAME}_appstoreLink`}\n className={styles.appStoreButton}\n onClick={() => window.open(getAppPageUrl(app?.app?.id), '_top')}\n >\n Open in Appstore <ArrowIcon className={styles.arrowIcon} />\n </div>\n </HideInNativeApp>\n </div>\n </div>\n );\n\n const modalActions = (\n <div className={styles.modalActions}>\n {isRemoveButtonVisible && <RemoveAppButton appName={appName} onAppRemove={onAppRemove} />}\n <div>\n <Button\n data-testid={`${PAGE_NAME}_cancel`}\n variation=\"secondary\"\n onClick={toggleAppSettingsDialog}\n >\n Cancel\n </Button>\n {isSettingsDialogHidden && (\n <Button variation=\"primary\" onClick={() => onCloneDashboard()}>\n Copy Dashboard\n </Button>\n )}\n {!isSettingsDialogHidden && (\n <Button\n data-testid={`${PAGE_NAME}_save`}\n className={styles.saveButton}\n variation=\"primary\"\n onClick={onSave}\n >\n Save\n </Button>\n )}\n </div>\n </div>\n );\n\n return (\n <Modal\n actions={modalActions}\n closeIconClassName={styles.closeIcon}\n contentContainerClassName={styles.modalContainer}\n modalTitleClassName={styles.modalTitle}\n onClose={toggleAppSettingsDialog}\n open\n title={modalTitle}\n >\n <ErrorBoundary ErrorView={DevCenterAppErrorView} openIntercom={openIntercom}>\n <ConfirmationDialog\n open={!!validationError}\n isShowCancel={false}\n title=\"Validation failed\"\n text={validationError}\n handleOk={() => setValidationError('')}\n classes={{ confirmation: styles.confirmationText }}\n />\n {isSettingsDialogHidden && <DisabledSettingsMessage />}\n {!isSettingsDialogHidden &&\n isMounted &&\n !hasCustomAppSettings &&\n !hasPlatformAppSettings && (\n <EmptyState image={EmptyState.IMAGES.UnderConstruction} title=\"No app settings\" />\n )}\n {!isSettingsDialogHidden && (\n <>\n <SettingsAccordion\n defaultExpanded\n className={styles.assetAccordion}\n accordionDetailsRef={platformAppSettingsRef}\n isAccordionRequired={isAccordionRequired}\n summary=\"Asset\"\n >\n {hasSegmentSelector && (\n <FormControl className={styles.segmentSelector}>\n <InputLabel>Segment</InputLabel>\n <Select value={appSegmentSetting} onChange={handleChangeAppSegment}>\n {app.segment.map(segmentItem => (\n <MenuItem\n className={styles.segmentMenuItem}\n key={segmentItem}\n value={segmentItem}\n >\n {segmentItem}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n )}\n {isAssetSelectorVisible && isAssetSelectorRendered && (\n <AssetEditorComponent\n appKey={isCLIApp ? null : app.app.app_key}\n appType={assetEditorAppType}\n defaultValue={defaultRigId.current}\n secondaryDefaultValue={+appData?.well?.id}\n isHiddenMultipleAssetsToggle\n isHiddenTitle\n isNullable={isAssetPage}\n label=\"Asset\"\n onSettingsChange={onAppSettingsChange}\n settings={appSettings}\n />\n )}\n <AppVersionsSelect\n className={styles.appVersionSelect}\n appId={app.app.id}\n value={appSettings.package}\n onChange={val => onAppSettingChange('package', val)}\n />\n </SettingsAccordion>\n <ErrorBoundary ErrorView={AppSettingsErrorView} openIntercom={openIntercom}>\n <SettingsAccordion\n accordionDetailsRef={customAppSettingsRef}\n className={styles.accordion}\n defaultExpanded\n isAccordionRequired={isAccordionRequired}\n summary=\"App Settings\"\n >\n {AppSettingsComponent && (\n <AppSettingsComponent\n app={app}\n appData={appData}\n settings={appSettings}\n onSettingChange={onAppSettingChange}\n onSettingsChange={onAppSettingsChange}\n layoutEnvironment={layoutEnvironment}\n currentUser={currentUser}\n />\n )}\n </SettingsAccordion>\n </ErrorBoundary>\n </>\n )}\n </ErrorBoundary>\n </Modal>\n );\n}\n\nAppSettingsDialog.propTypes = {\n AppSettingsComponent: func,\n app: shape({}).isRequired,\n appData: shape({}).isRequired,\n appName: string.isRequired,\n currentUser: shape({}).isRequired,\n isMultiRig: bool.isRequired,\n isSettingsDialogHidden: bool,\n layoutEnvironment: shape({}).isRequired,\n onAppRemove: func,\n onCloneDashboard: func,\n onSettingsChange: func.isRequired,\n toggleAppSettingsDialog: func.isRequired,\n};\n\nAppSettingsDialog.defaultProps = {\n AppSettingsComponent: () => null,\n isSettingsDialogHidden: false,\n onAppRemove: undefined,\n onCloneDashboard: noop,\n};\n\nexport default AppSettingsDialog;\n"],"names":["PAGE_NAME","AssetEditorWithLock","withAssetEditorLockHOC","AssetEditor","AppSettingsErrorView","AppSettingsDialog","_ref","_app$segment","_app$app","_platformAppSettingsR","_customAppSettingsRef","_app$app2","_app$app2$icon","_appData$well","AppSettingsComponent","app","appData","appName","currentUser","isMultiRig","isSettingsDialogHidden","layoutEnvironment","onAppRemove","onCloneDashboard","onSettingsChange","openIntercom","rigId","toggleAppSettingsDialog","hasSegmentSelector","segment","length","_useState","useState","getAppSegment","_useState2","_slicedToArray","appSegmentSetting","setAppSegmentSetting","isCompletionSegment","SEGMENTS","COMPLETION","assetEditorAppType","SEGMENT_TO_ASSET_TYPE","isAssetPage","type","_usePermissions","usePermissions","PERMISSIONS","getCanReadAppPackages","id","_usePermissions2$","canReadAppPackages","active","isPermissionsLoading","loading","_useState4","_useState3","isMounted","setIsMounted","_useState6","_useState5","isAssetSelectorRendered","setIsAssetSelectorRendered","isAssetSelectorVisible","isInsideNewMobileApp","isRemoveButtonVisible","defaultRigId","useRef","useEffect","_useState7","_app$package","_objectSpread","cloneDeep","settings","package","version","_useState8","appSettings","setAppSettings","isSustainabilityApp","getIsSustainabilityApp","_useState10","_useState9","validationError","setValidationError","platformAppSettingsRef","customAppSettingsRef","hasPlatformAppSettings","Boolean","current","clientHeight","hasCustomAppSettings","isAccordionRequired","styles","useStyles","isCompletionApp","isCLIApp","DEV_CENTER_CLI_APP_ID","onAppSettingChange","name","value","prevSettings","_defineProperty","onAppSettingsChange","newSettings","AssetEditorComponent","debounce","debouncedSetIsMounted","modalTitle","_jsxs","className","modalTitleContainer","children","_jsx","AppIcon","appIcon","iconUrl","icon","url","height","width","concat","HideInNativeApp","appStoreButton","onClick","_app$app3","appId","window","open","ArrowIcon","arrowIcon","modalActions","RemoveAppButton","Button","variation","saveButton","appTypeKey","primaryAsset","assetType","appTypeLabel","label","showSuccessNotification","Modal","actions","closeIconClassName","closeIcon","contentContainerClassName","modalContainer","modalTitleClassName","onClose","title","ErrorBoundary","ErrorView","DevCenterAppErrorView","ConfirmationDialog","isShowCancel","text","handleOk","classes","confirmation","confirmationText","DisabledSettingsMessage","EmptyState","image","IMAGES","UnderConstruction","_Fragment","SettingsAccordion","defaultExpanded","assetAccordion","accordionDetailsRef","summary","FormControl","segmentSelector","InputLabel","Select","onChange","_ref2","nextSegment","target","mapValues","keyBy","ASSET_TYPES","assets","map","segmentItem","MenuItem","segmentMenuItem","appKey","app_key","appType","defaultValue","secondaryDefaultValue","well","isHiddenMultipleAssetsToggle","isHiddenTitle","isNullable","AppVersionsSelect","appVersionSelect","val","accordion","onSettingChange","propTypes","func","shape","isRequired","string","bool","defaultProps","undefined","noop"],"mappings":"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"}
1
+ {"version":3,"file":"AppSettingsDialog.js","sources":["../../../../../../src/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { bool, func, shape, string } from 'prop-types';\nimport { cloneDeep, debounce, keyBy, mapValues, noop } from 'lodash';\nimport { FormControl, InputLabel, MenuItem, Select } from '@material-ui/core';\nimport { ArrowForward as ArrowIcon } from '@material-ui/icons';\n\nimport EmptyState from '../../../../EmptyState';\nimport { getIsSustainabilityApp } from '../../utils';\n\nimport { RemoveAppButton, SettingsAccordion } from './components';\nimport { useStyles } from './styles';\n\nimport { withAssetEditorLockHOC } from '~/hocs';\nimport ErrorBoundary, { DevCenterAppErrorView } from '~/components/ErrorBoundary';\nimport Button from '~/components/Button';\nimport Modal from '~/components/Modal';\nimport { ASSET_TYPES, DEV_CENTER_CLI_APP_ID } from '~/constants';\nimport AssetEditor from '~/components/AssetEditorV2';\nimport AppVersionsSelect from '~/components/AppVersionsSelect';\nimport { DisabledSettingsMessage } from '~/components/DisabledSettingsMessage';\nimport ConfirmationDialog from '~/components/ConfirmationDialog';\nimport { SEGMENT_TO_ASSET_TYPE, SEGMENTS } from '~/constants/segment';\nimport { showSuccessNotification } from '~/utils';\nimport AppIcon from '~/components/AppIcon';\nimport { getAppSegment } from '~/utils/devcenter';\nimport { PERMISSIONS, usePermissions } from '~/permissions';\nimport { isInsideNewMobileApp } from '~/utils/mobileDetect';\nimport { HideInNativeApp } from '~/componentsV2/HideInNativeApp';\n\nexport const PAGE_NAME = 'DC_appSettings';\n\nconst getAppPageUrl = appId => `/app-store/app/${appId}`;\nconst AssetEditorWithLock = withAssetEditorLockHOC(AssetEditor);\n\nconst AppSettingsErrorView = () => null;\n\nfunction AppSettingsDialog({\n AppSettingsComponent,\n app,\n appData,\n appName,\n currentUser,\n disableAppAssetSelection,\n isMultiRig,\n isSettingsDialogHidden,\n layoutEnvironment,\n onAppRemove,\n onCloneDashboard,\n onSettingsChange,\n openIntercom,\n rigId,\n toggleAppSettingsDialog,\n}) {\n const hasSegmentSelector = app?.segment?.length > 1;\n const [appSegmentSetting, setAppSegmentSetting] = useState(getAppSegment(app));\n const isCompletionSegment = appSegmentSetting === SEGMENTS.COMPLETION;\n const assetEditorAppType = SEGMENT_TO_ASSET_TYPE[appSegmentSetting];\n const isAssetPage = layoutEnvironment && layoutEnvironment.type === 'asset';\n const [{ active: canReadAppPackages, loading: isPermissionsLoading }] = usePermissions([\n PERMISSIONS.getCanReadAppPackages(app.app.id),\n ]);\n\n const [isMounted, setIsMounted] = useState(false);\n const [isAssetSelectorRendered, setIsAssetSelectorRendered] = useState(true);\n const isAssetSelectorVisible =\n !disableAppAssetSelection &&\n !isInsideNewMobileApp &&\n !isMultiRig &&\n !(isAssetPage && isCompletionSegment);\n const isRemoveButtonVisible = !isInsideNewMobileApp && !isSettingsDialogHidden && onAppRemove;\n\n // NOTE: Keep in ref to have a way to reset default value\n // of asset selector when changing app segment\n const defaultRigId = useRef(rigId);\n\n useEffect(() => {\n if (!isAssetSelectorRendered) setIsAssetSelectorRendered(true);\n }, [isAssetSelectorRendered]);\n\n const [appSettings, setAppSettings] = useState(() => ({\n ...cloneDeep(app.settings),\n package: app.settings.package || app?.package?.version,\n }));\n\n const handleChangeAppSegment = ({ target: { value: nextSegment } }) => {\n defaultRigId.current = null;\n setIsAssetSelectorRendered(false);\n\n setAppSegmentSetting(nextSegment);\n setAppSettings({\n package: appSettings.package,\n segment: nextSegment,\n // NOTE: we need to reset asset ids when segment is changed\n ...mapValues(keyBy(ASSET_TYPES, 'id'), () => null),\n assets: null,\n });\n };\n\n const isSustainabilityApp = getIsSustainabilityApp(app?.app?.id);\n\n const [validationError, setValidationError] = useState('');\n const platformAppSettingsRef = useRef(null);\n const customAppSettingsRef = useRef(null);\n\n const hasPlatformAppSettings =\n isPermissionsLoading ||\n canReadAppPackages ||\n Boolean(platformAppSettingsRef.current?.clientHeight);\n const hasCustomAppSettings = Boolean(customAppSettingsRef.current?.clientHeight);\n const isAccordionRequired = hasPlatformAppSettings && hasCustomAppSettings;\n\n const styles = useStyles({\n isCompletionApp: isCompletionSegment,\n isSustainabilityApp,\n isAccordionRequired,\n isRemoveButtonVisible,\n });\n\n const isCLIApp = app.id === DEV_CENTER_CLI_APP_ID;\n\n const onSave = () => {\n const isNoPackageError = !appSettings.package && !isCLIApp;\n if (isNoPackageError) return setValidationError('Please select app version');\n if (isAssetSelectorVisible && !isAssetPage) {\n const appTypeKey = assetEditorAppType?.primaryAsset.assetType.id;\n const appTypeLabel = assetEditorAppType?.primaryAsset.assetType.label;\n if (appTypeKey && !appSettings[appTypeKey])\n return setValidationError(`Please select ${appTypeLabel}`);\n }\n\n onSettingsChange(appSettings);\n showSuccessNotification('Successfully saved');\n return toggleAppSettingsDialog();\n };\n\n const onAppSettingChange = (name, value) =>\n setAppSettings(prevSettings => ({\n ...prevSettings,\n [name]: value,\n }));\n\n const onAppSettingsChange = newSettings =>\n setAppSettings(prevSettings => ({ ...prevSettings, ...newSettings }));\n\n const AssetEditorComponent = isAssetPage ? AssetEditorWithLock : AssetEditor;\n\n useEffect(() => {\n const debouncedSetIsMounted = debounce(setIsMounted, 200);\n debouncedSetIsMounted(true);\n }, []);\n\n const modalTitle = (\n <div className={styles.modalTitleContainer}>\n <AppIcon\n className={styles.appIcon}\n segment={[appSegmentSetting]}\n iconUrl={app?.app?.icon?.url}\n height={48}\n width={48}\n />\n <div>\n <div>{`${appName} Settings`}</div>\n <HideInNativeApp>\n <div\n data-testid={`${PAGE_NAME}_appstoreLink`}\n className={styles.appStoreButton}\n onClick={() => window.open(getAppPageUrl(app?.app?.id), '_top')}\n >\n Open in Appstore <ArrowIcon className={styles.arrowIcon} />\n </div>\n </HideInNativeApp>\n </div>\n </div>\n );\n\n const modalActions = (\n <div className={styles.modalActions}>\n {isRemoveButtonVisible && <RemoveAppButton appName={appName} onAppRemove={onAppRemove} />}\n <div>\n <Button\n data-testid={`${PAGE_NAME}_cancel`}\n variation=\"secondary\"\n onClick={toggleAppSettingsDialog}\n >\n Cancel\n </Button>\n {isSettingsDialogHidden && (\n <Button variation=\"primary\" onClick={() => onCloneDashboard()}>\n Copy Dashboard\n </Button>\n )}\n {!isSettingsDialogHidden && (\n <Button\n data-testid={`${PAGE_NAME}_save`}\n className={styles.saveButton}\n variation=\"primary\"\n onClick={onSave}\n >\n Save\n </Button>\n )}\n </div>\n </div>\n );\n\n return (\n <Modal\n actions={modalActions}\n closeIconClassName={styles.closeIcon}\n contentContainerClassName={styles.modalContainer}\n modalTitleClassName={styles.modalTitle}\n onClose={toggleAppSettingsDialog}\n open\n title={modalTitle}\n >\n <ErrorBoundary ErrorView={DevCenterAppErrorView} openIntercom={openIntercom}>\n <ConfirmationDialog\n open={!!validationError}\n isShowCancel={false}\n title=\"Validation failed\"\n text={validationError}\n handleOk={() => setValidationError('')}\n classes={{ confirmation: styles.confirmationText }}\n />\n {isSettingsDialogHidden && <DisabledSettingsMessage />}\n {!isSettingsDialogHidden &&\n isMounted &&\n !hasCustomAppSettings &&\n !hasPlatformAppSettings && (\n <EmptyState image={EmptyState.IMAGES.UnderConstruction} title=\"No app settings\" />\n )}\n {!isSettingsDialogHidden && (\n <>\n <SettingsAccordion\n defaultExpanded\n className={styles.assetAccordion}\n accordionDetailsRef={platformAppSettingsRef}\n isAccordionRequired={isAccordionRequired}\n summary=\"Asset\"\n >\n {hasSegmentSelector && (\n <FormControl className={styles.segmentSelector}>\n <InputLabel>Segment</InputLabel>\n <Select value={appSegmentSetting} onChange={handleChangeAppSegment}>\n {app.segment.map(segmentItem => (\n <MenuItem\n className={styles.segmentMenuItem}\n key={segmentItem}\n value={segmentItem}\n >\n {segmentItem}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n )}\n {isAssetSelectorVisible && isAssetSelectorRendered && (\n <AssetEditorComponent\n appKey={isCLIApp ? null : app.app.app_key}\n appType={assetEditorAppType}\n defaultValue={defaultRigId.current}\n secondaryDefaultValue={+appData?.well?.id}\n isHiddenMultipleAssetsToggle\n isHiddenTitle\n isNullable={isAssetPage}\n label=\"Asset\"\n onSettingsChange={onAppSettingsChange}\n settings={appSettings}\n />\n )}\n <AppVersionsSelect\n className={styles.appVersionSelect}\n appId={app.app.id}\n value={appSettings.package}\n onChange={val => onAppSettingChange('package', val)}\n />\n </SettingsAccordion>\n <ErrorBoundary ErrorView={AppSettingsErrorView} openIntercom={openIntercom}>\n <SettingsAccordion\n accordionDetailsRef={customAppSettingsRef}\n className={styles.accordion}\n defaultExpanded\n isAccordionRequired={isAccordionRequired}\n summary=\"App Settings\"\n >\n {AppSettingsComponent && (\n <AppSettingsComponent\n app={app}\n appData={appData}\n settings={appSettings}\n onSettingChange={onAppSettingChange}\n onSettingsChange={onAppSettingsChange}\n layoutEnvironment={layoutEnvironment}\n currentUser={currentUser}\n />\n )}\n </SettingsAccordion>\n </ErrorBoundary>\n </>\n )}\n </ErrorBoundary>\n </Modal>\n );\n}\n\nAppSettingsDialog.propTypes = {\n AppSettingsComponent: func,\n app: shape({}).isRequired,\n appData: shape({}).isRequired,\n appName: string.isRequired,\n currentUser: shape({}).isRequired,\n disableAppAssetSelection: bool,\n isMultiRig: bool.isRequired,\n isSettingsDialogHidden: bool,\n layoutEnvironment: shape({}).isRequired,\n onAppRemove: func,\n onCloneDashboard: func,\n onSettingsChange: func.isRequired,\n toggleAppSettingsDialog: func.isRequired,\n};\n\nAppSettingsDialog.defaultProps = {\n AppSettingsComponent: () => null,\n disableAppAssetSelection: false,\n isSettingsDialogHidden: false,\n onAppRemove: undefined,\n onCloneDashboard: noop,\n};\n\nexport default AppSettingsDialog;\n"],"names":["PAGE_NAME","AssetEditorWithLock","withAssetEditorLockHOC","AssetEditor","AppSettingsErrorView","AppSettingsDialog","_ref","_app$segment","_app$app","_platformAppSettingsR","_customAppSettingsRef","_app$app2","_app$app2$icon","_appData$well","AppSettingsComponent","app","appData","appName","currentUser","disableAppAssetSelection","isMultiRig","isSettingsDialogHidden","layoutEnvironment","onAppRemove","onCloneDashboard","onSettingsChange","openIntercom","rigId","toggleAppSettingsDialog","hasSegmentSelector","segment","length","_useState","useState","getAppSegment","_useState2","_slicedToArray","appSegmentSetting","setAppSegmentSetting","isCompletionSegment","SEGMENTS","COMPLETION","assetEditorAppType","SEGMENT_TO_ASSET_TYPE","isAssetPage","type","_usePermissions","usePermissions","PERMISSIONS","getCanReadAppPackages","id","_usePermissions2$","canReadAppPackages","active","isPermissionsLoading","loading","_useState4","_useState3","isMounted","setIsMounted","_useState6","_useState5","isAssetSelectorRendered","setIsAssetSelectorRendered","isAssetSelectorVisible","isInsideNewMobileApp","isRemoveButtonVisible","defaultRigId","useRef","useEffect","_useState7","_app$package","_objectSpread","cloneDeep","settings","package","version","_useState8","appSettings","setAppSettings","isSustainabilityApp","getIsSustainabilityApp","_useState10","_useState9","validationError","setValidationError","platformAppSettingsRef","customAppSettingsRef","hasPlatformAppSettings","Boolean","current","clientHeight","hasCustomAppSettings","isAccordionRequired","styles","useStyles","isCompletionApp","isCLIApp","DEV_CENTER_CLI_APP_ID","onAppSettingChange","name","value","prevSettings","_defineProperty","onAppSettingsChange","newSettings","AssetEditorComponent","debounce","debouncedSetIsMounted","modalTitle","_jsxs","className","modalTitleContainer","children","_jsx","AppIcon","appIcon","iconUrl","icon","url","height","width","concat","HideInNativeApp","appStoreButton","onClick","_app$app3","appId","window","open","ArrowIcon","arrowIcon","modalActions","RemoveAppButton","Button","variation","saveButton","appTypeKey","primaryAsset","assetType","appTypeLabel","label","showSuccessNotification","Modal","actions","closeIconClassName","closeIcon","contentContainerClassName","modalContainer","modalTitleClassName","onClose","title","ErrorBoundary","ErrorView","DevCenterAppErrorView","ConfirmationDialog","isShowCancel","text","handleOk","classes","confirmation","confirmationText","DisabledSettingsMessage","EmptyState","image","IMAGES","UnderConstruction","_Fragment","SettingsAccordion","defaultExpanded","assetAccordion","accordionDetailsRef","summary","FormControl","segmentSelector","InputLabel","Select","onChange","_ref2","nextSegment","target","mapValues","keyBy","ASSET_TYPES","assets","map","segmentItem","MenuItem","segmentMenuItem","appKey","app_key","appType","defaultValue","secondaryDefaultValue","well","isHiddenMultipleAssetsToggle","isHiddenTitle","isNullable","AppVersionsSelect","appVersionSelect","val","accordion","onSettingChange","propTypes","func","shape","isRequired","string","bool","defaultProps","undefined","noop"],"mappings":"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"}