@corva/ui 3.74.0-4 → 3.74.0-6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs-bundle/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js +1 -1
- package/cjs-bundle/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js.map +1 -1
- package/cjs-bundle/components/DevCenter/DevCenterAppContainer/effects/useAppMaximized.js +1 -1
- package/cjs-bundle/components/DevCenter/DevCenterAppContainer/effects/useAppMaximized.js.map +1 -1
- package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js +1 -1
- package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js.map +1 -1
- package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/useFullscreenModes.js +2 -0
- package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/useFullscreenModes.js.map +1 -0
- package/cjs-bundle/componentsV2/AppCommonsProvider/AppCommonsContext.js.map +1 -1
- package/cjs-bundle/componentsV2/AppCommonsProvider/utils.js +1 -1
- package/cjs-bundle/componentsV2/AppCommonsProvider/utils.js.map +1 -1
- package/cjs-bundle/componentsV2/AppHeader/V3/Actions/Actions.constants.js +1 -1
- package/cjs-bundle/componentsV2/AppHeader/V3/Actions/Actions.constants.js.map +1 -1
- package/cjs-bundle/componentsV2/AppHeader/V3/Actions/Actions.js +1 -1
- package/cjs-bundle/componentsV2/AppHeader/V3/Actions/Actions.js.map +1 -1
- package/cjs-bundle/componentsV2/AppHeader/V3/AppHeaderV3.js +1 -1
- package/cjs-bundle/componentsV2/AppHeader/V3/AppHeaderV3.js.map +1 -1
- package/cjs-bundle/utils/devcenter.js +1 -1
- package/cjs-bundle/utils/devcenter.js.map +1 -1
- package/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.d.ts +8 -1
- package/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.d.ts.map +1 -1
- package/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js +1 -1
- package/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js.map +1 -1
- package/components/DevCenter/DevCenterAppContainer/effects/useAppMaximized.js +1 -1
- package/components/DevCenter/DevCenterAppContainer/effects/useAppMaximized.js.map +1 -1
- package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.d.ts.map +1 -1
- package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js +1 -1
- package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js.map +1 -1
- package/components/DevCenter/IsolatedDevCenterAppContainer/__tests__/useFullscreenModes.test.d.ts +2 -0
- package/components/DevCenter/IsolatedDevCenterAppContainer/__tests__/useFullscreenModes.test.d.ts.map +1 -0
- package/components/DevCenter/IsolatedDevCenterAppContainer/useFullscreenModes.d.ts +10 -0
- package/components/DevCenter/IsolatedDevCenterAppContainer/useFullscreenModes.d.ts.map +1 -0
- package/components/DevCenter/IsolatedDevCenterAppContainer/useFullscreenModes.js +2 -0
- package/components/DevCenter/IsolatedDevCenterAppContainer/useFullscreenModes.js.map +1 -0
- package/componentsV2/AppCommonsProvider/AppCommonsContext.d.ts +4 -2
- package/componentsV2/AppCommonsProvider/AppCommonsContext.d.ts.map +1 -1
- package/componentsV2/AppCommonsProvider/AppCommonsContext.js.map +1 -1
- package/componentsV2/AppCommonsProvider/utils.d.ts +1 -1
- package/componentsV2/AppCommonsProvider/utils.d.ts.map +1 -1
- package/componentsV2/AppCommonsProvider/utils.js +1 -1
- package/componentsV2/AppCommonsProvider/utils.js.map +1 -1
- package/componentsV2/AppHeader/V3/Actions/Actions.constants.d.ts +4 -1
- package/componentsV2/AppHeader/V3/Actions/Actions.constants.d.ts.map +1 -1
- package/componentsV2/AppHeader/V3/Actions/Actions.constants.js +1 -1
- package/componentsV2/AppHeader/V3/Actions/Actions.constants.js.map +1 -1
- package/componentsV2/AppHeader/V3/Actions/Actions.d.ts.map +1 -1
- package/componentsV2/AppHeader/V3/Actions/Actions.js +1 -1
- package/componentsV2/AppHeader/V3/Actions/Actions.js.map +1 -1
- package/componentsV2/AppHeader/V3/AppHeaderV3.d.ts.map +1 -1
- package/componentsV2/AppHeader/V3/AppHeaderV3.js +1 -1
- package/componentsV2/AppHeader/V3/AppHeaderV3.js.map +1 -1
- package/mcp-server/server.mjs +9 -9
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/types/shared/Common.d.ts +9 -0
- package/types/shared/Common.d.ts.map +1 -1
- package/utils/devcenter.d.ts +1 -0
- package/utils/devcenter.d.ts.map +1 -1
- package/utils/devcenter.js +1 -1
- package/utils/devcenter.js.map +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("@babel/runtime/helpers/defineProperty"),s=require("@babel/runtime/helpers/slicedToArray"),o=require("react"),n=require("classnames"),r=require("lodash"),t=require("@material-ui/core"),i=require("@material-ui/icons"),c=require("../AppContext.js"),p=require("../DevCenterRouterContext/DevCenterRouterContext.js");require("../DevCenterRouterContext/UniversalLink/UniversalLink.js"),require("@babel/runtime/helpers/objectWithoutProperties"),require("react-router-dom"),require("query-string");var u=require("react/jsx-runtime"),a=require("./effects/useAppSettings.js"),l=require("./effects/useAnnotationsList.js"),d=require("./effects/useAnnotationsData.js"),m=require("./effects/useAppMaximized.js"),q=require("./components/AppActions/AppActions.js"),j=require("./components/AppSettingsDialog/AppSettingsDialog.js");require("./components/AppSettingsDialog/components/RemoveAppButton.js"),require("./components/AppSettingsDialog/components/SettingsAccordion.js"),require("./components/AnnotationsButton/AnnotationsButton.js");var A=require("./components/NonPriorityMenus/NonPriorityMenus.js"),g=require("./components/FullscreenButton/FullscreenButton.js");require("./components/AppInfoMessage/AppInfoMessage.js");var C=require("./components/DevCenterAppView/DevCenterAppView.js"),I=require("./components/DcFullscreenElemsCoordinatorProvider/DcFullscreenElemsCoordinatorProvider.js");require("./components/DcFullscreenElemsCoordinatorProvider/IsInsideDcFullscreenElemProvider.js"),require("./components/IsInsideIsolatedDcAppProvider/IsInsideIsolatedDcAppProvider.js");var v=require("./components/RestoreAppSizeButton/index.js"),V=require("./utils.js"),h=require("./components/PriorityMenus/PriorityMenus.js"),S=require("./components/CommentsSwitch/CommentsSwitchProvider.js"),b=require("./components/CommentsSwitch/CommentsSwitchButton.js"),x=require("./DevCenterAppContainer.scss.js"),D=require("../../../utils/mobileDetect.js"),P=require("../../Icons/AnnotationIcon.js"),M=require("../../Annotations/components/AnnotationsList/index.js");require("../../Annotations/components/LastAnnotation/index.js");var f=require("../../Annotations/AnnotationsContext.js");require("../../Toaster/Toaster.js");var T=require("../../Toaster/ToastContainer.js");require("../../../clients/subscriptions/constants.js"),require("@babel/runtime/helpers/asyncToGenerator"),require("@babel/runtime/regenerator"),require("querystring"),require("uuid/v1"),require("../../../clients/subscriptions.v1.js"),require("../../../clients/jsonApi/index.js"),require("../../../clients/subscriptions/subscriptions-client.factory.js");var y=require("../../../effects/useDevCenterApp.js");require("../../../utils/index.js"),require("uuid"),require("jsona"),require("../../../constants/segment.js"),require("../../../utils/env.js");var L=require("../../../constants/devcenter.js");require("../../../constants/goals.js"),require("../../../constants/alerts.js"),require("../../../constants/apps.js"),require("../../../constants/drillstring.js"),require("../../../constants/completion.js"),require("../../../constants/appPackages.js"),require("../../../constants/notifications.js"),require("../../../constants/feed.js"),require("../../../constants/bha.js"),require("../../../constants/corvaCompanyId.js"),require("../../GradientManager/configuration/constants.js"),require("../../StatusBadge/constants.js"),require("@babel/runtime/helpers/toConsumableArray"),require("lodash/set"),require("lodash/get"),require("lodash/unset"),require("moment"),require("../../../clients/api/apiCore.js"),require("../../../clients/constants.js"),require("../../../clients/sso/auth0.js"),require("../../../clients/sso/oauth2.js"),require("../../../clients/api/rateLimiter.js"),require("lodash/isEmpty"),require("lodash/sortBy"),require("../../../constants/streamSourceType.js"),require("./components/CommentsSwitch/CommentsSwitchContext.js");var k=require("../../../componentsV2/AppCommonsProvider/AppCommonsProvider.js");require("../../../componentsV2/AppCommonsProvider/AppCommonsContext.js"),require("../../../componentsV2/AppSettings/AppSettingsPinningContext.js");var B=require("../../../utils/devcenter.js"),H=require("../../HelpCenter/HelpCenterIcon.js");require("../../../componentsV2/Text/Text.js"),require("../../../componentsV2/Grid/Grid.js"),require("../../../componentsV2/Grid/Cell.js"),require("../../../componentsV2/Header/Header.scss.js"),require("../../../componentsV2/Button/Button.js");var O=require("../../../componentsV2/ButtonIcon/ButtonIcon.js"),F=require("../../../componentsV2/Tooltip/Tooltip.js");require("../../../componentsV2/Popover/Popover.js"),require("../../../componentsV2/PopoverPanel/PopoverPanel.js"),require("../../../componentsV2/Radio/Radio.js"),require("../../../componentsV2/RadioAndCheckboxGroup/RadioAndCheckboxGroup.scss.js"),require("../../../componentsV2/Checkbox/Checkbox.js"),require("../../../componentsV2/TextInput/TextInput.js"),require("../../../componentsV2/TextInputNext/TextInputNext.js"),require("../../../componentsV2/Label/Label.js"),require("../../../componentsV2/TextEndTruncated/TextEndTruncated.scss.js"),require("../../../componentsV2/TextMiddleTruncated/TextMiddleTruncated.constants.js"),require("../../../componentsV2/TextMiddleTruncated/TextMiddleTruncated.scss.js"),require("../../../componentsV2/TextLink/TextLink.js"),require("../../../componentsV2/Chip/Chip.js"),require("../../../componentsV2/ChipAlert/ChipAlert.js"),require("../../../componentsV2/ChipIndicator/ChipIndicator.js"),require("../../../componentsV2/Avatar/Avatar.js"),require("../../../componentsV2/AvatarGroup/AvatarGroup.js"),require("@material-ui/lab"),require("../../../componentsV2/ToggleButtons/ToggleButtons.scss.js"),require("../../../componentsV2/Paper/Paper.js"),require("../../../componentsV2/ModalWindow/ModalWindow.js"),require("../../../componentsV2/Modal/Modal.scss.js"),require("../../../componentsV2/Menu/Menu.js"),require("@icon-park/react/es/all"),require("../../../icons/IconParkProvider.js"),require("../../../icons/customIcons/icons/AddMessage.js"),require("../../../icons/customIcons/icons/DragOne.js"),require("../../../icons/customIcons/icons/Attention.js"),require("../../../icons/customIcons/icons/Collapse.js"),require("../../../icons/customIcons/icons/Dashboard.js"),require("../../../icons/customIcons/icons/Expand.js"),require("../../../icons/customIcons/icons/FolderClosed.js"),require("../../../icons/customIcons/icons/FolderClosedFilled.js"),require("../../../icons/customIcons/icons/FolderOpened.js"),require("../../../icons/customIcons/icons/GreaterOrEqual.js"),require("../../../icons/customIcons/icons/LessOrEqual.js"),require("../../../icons/customIcons/icons/Search.js"),require("../../../icons/customIcons/icons/SearchOne.js"),require("../../../icons/customIcons/icons/Wellhub.js"),require("../../../icons/customIcons/icons/MultiRuler.js"),require("../../../icons/customIcons/icons/Checkbox.js"),require("../../../icons/customIcons/icons/CheckboxChecked.js"),require("../../../icons/customIcons/icons/CheckboxIndeterminate.js"),require("../../../icons/customIcons/icons/Radio.js"),require("../../../icons/customIcons/icons/RadioChecked.js"),require("../../../icons/customIcons/icons/SimulFrac.js"),require("../../../icons/customIcons/icons/ZipperFrac.js"),require("../../../icons/customIcons/icons/CautionFilled.js"),require("../../../icons/customIcons/icons/MoreApp.js"),require("../../../icons/customIcons/icons/Pad.js"),require("../../../icons/customIcons/icons/DrilloutUnit.js"),require("../../../icons/customIcons/icons/FracFleet.js"),require("../../../icons/customIcons/icons/Global.js"),require("../../../icons/customIcons/icons/Program.js"),require("../../../icons/customIcons/icons/Rig.js"),require("../../../icons/customIcons/icons/Well.js"),require("../../../icons/customIcons/icons/Gap.js"),require("../../../icons/customIcons/icons/Pin.js"),require("../../../icons/customIcons/icons/CloseOneFilled.js"),require("../../../icons/customIcons/icons/AttentionFilled.js"),require("../../../icons/customIcons/icons/CheckOneFilled.js"),require("../../../icons/customIcons/icons/Archive.js"),require("../../../icons/customIcons/icons/ArchiveCancel.js"),require("../../../icons/customIcons/icons/Unarchive.js"),require("../../../icons/customIcons/icons/Archived.js"),require("../../../icons/customIcons/icons/InterventionUnit.js"),require("../../../icons/customIcons/icons/CloudDelete.js"),require("../../../icons/customIcons/icons/Lasso.js"),require("../../../icons/customIcons/icons/Radius.js"),require("../../../icons/customIcons/icons/ErrorOps.js"),require("../../../icons/customIcons/icons/DataTypeOps.js"),require("../../../icons/customIcons/icons/FalsePositiveOps.js"),require("../../../icons/customIcons/icons/CalibrationOps.js"),require("../../../icons/customIcons/icons/CriticalOps.js"),require("../../../icons/customIcons/icons/Company.js"),require("../../../icons/customIcons/icons/ArchiveOne.js"),require("../../../icons/customIcons/icons/ParseBotFusion.js"),require("../../../icons/customIcons/icons/Connect.js"),require("../../../icons/customIcons/icons/PuzzleOne.js"),require("../../../icons/customIcons/icons/Feed.js"),require("../../../icons/customIcons/icons/Prompt.js"),require("../../../icons/customIcons/icons/Companies.js"),require("../../../icons/customIcons/icons/ClipboardAi.js"),require("../../../icons/customIcons/icons/Key.js"),require("../../../icons/customIcons/icons/AtSignCrossed.js"),require("../../../icons/customIcons/icons/MappingManual.js"),require("../../../icons/customIcons/icons/Mapping.js"),require("../../../icons/customIcons/icons/Metrics.js"),require("../../../icons/customIcons/icons/Drops.js"),require("../../../icons/customIcons/icons/ClipboardSearch.js"),require("../../../icons/customIcons/icons/Template.js"),require("../../../icons/customIcons/icons/ClipboardMetrics.js"),require("../../../icons/customIcons/icons/ClipboardBuilder.js"),require("../../../icons/customIcons/icons/UnitConversion.js"),require("../../../icons/customIcons/icons/NPT.js"),require("../../../icons/customIcons/icons/GuidedFrac.js"),require("../../../componentsV2/utils.js"),require("../../../componentsV2/Hint/Hint.scss.js"),require("../../../componentsV2/Counter/Counter.js"),require("../../../componentsV2/BadgeBase/BadgeBase.scss.js"),require("../../../componentsV2/TemplatesControl/TemplatesControl.js"),require("zustand"),require("../../../componentsV2/TemplatesControl/utils.js"),require("../../../componentsV2/TemplatesControl/icons/folder/index.js"),require("../../../componentsV2/TemplatesControl/Store/utils.js"),require("../../../componentsV2/TemplatesControl/types.js"),require("../../../permissions/PermissionsContext.js"),require("../../../permissions/constants/index.js"),require("../../../permissions/withPermissionsHOC.js"),require("../../../permissions/ProvidePermissions.js"),require("../../../componentsV2/BadgeDot/BadgeDot.scss.js"),require("../../../componentsV2/LoaderLinear/LoaderLinear.scss.js"),require("../../../componentsV2/LoaderLogo/LoaderLogo.constants.js"),require("../../../componentsV2/LoaderLogo/LoaderLogo.scss.js"),require("../../../componentsV2/Switch/Switch.js"),require("../../../componentsV2/Tabs/Tabs.js"),require("../../../componentsV2/EmptyState/EmptyState.scss.js"),require("../../../componentsV2/FileIcon/FileIcon.js"),require("../../../componentsV2/Tag/Tag.js"),require("react-dropzone"),require("../../../componentsV2/FilesDropzone/FilesDropzone.scss.js"),require("../../../componentsV2/FilesLoader/FilesLoader.scss.js"),require("file-extension"),require("image-extensions"),require("video-extensions"),require("../../../componentsV2/FilesProcessor/FilesProcessor.scss.js"),require("../../../componentsV2/Skeleton/Skeleton.scss.js"),require("../../../utils/main.js"),require("../../../componentsV2/CopyToClipboard/CopyToClipboard.scss.js"),require("../../../componentsV2/Stepper/Step/Step.scss.js"),require("../../../componentsV2/Stepper/Stepper.scss.js"),require("../../../componentsV2/ButtonLive/ButtonLive.js"),require("../../../componentsV2/ButtonText/ButtonText.js"),require("../../../componentsV2/IndicatorLive/IndicatorLive.js"),require("../../../componentsV2/Accordion/Accordion.scss.js"),require("../../../componentsV2/Breadcrumbs/Breadcrumbs.scss.js"),require("../../../componentsV2/BadgeComment/BadgeComment.js"),require("../../../componentsV2/AppContainer/AppContainer.js"),require("../../../componentsV2/AppContainer/AppContainer.constants.js"),require("../../../componentsV2/AppFooter/AppFooter.js"),require("../../../componentsV2/AppHeader/AppHeader.constants.js"),require("../../../componentsV2/AppHeader/AppBadge/AppBadge.scss.js"),require("../../../componentsV2/AppHeader/AppAssets/utils.js"),require("../../../componentsV2/AppHeader/AppAssets/AppAssets.scss.js"),require("../../PadModeSelect/PadModeSelect.js"),require("../../../componentsV2/AppHeader/PadMode/PadMode.scss.js"),require("../../../componentsV2/PadModeSelect/PadModeSelect.js"),require("../../../componentsV2/PadModeSelect/PadModeSelect.constants.js"),require("../../../componentsV2/AppHeader/V3/VersionSelect/VersionSelect.js"),require("../../../componentsV2/UniversalLink/UniversalLink.scss.js"),require("../../../componentsV2/AppHeader/V3/AssetChips/AssetChips.scss.js"),require("../../../componentsV2/AppHeader/V3/DqStatusIcon/DqStatusIcon.js"),require("../../../componentsV2/AppHeader/V3/DqStatusIcon/DqStatusIcon.constants.js"),require("../../../componentsV2/AppFooter/DqPopover/DqStatusIcon/DqStatusIcon.js"),require("../../../componentsV2/AppDqPopover/DqAlertTooltip/DqAlertTooltip.scss.js"),require("../../../componentsV2/AppDqPopover/DqAlert/DqAlert.scss.js"),require("../../../componentsV2/AppDqPopover/DqAsset/DqAsset.scss.js"),require("../../../componentsV2/AppDqPopover/AppDqPopover.scss.js"),require("../../AppIcon/AppIcon.js"),require("../../../utils/getSingleAsset.js"),require("../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorChip/AssetSelectorChip.js"),require("../../../componentsV2/AppHeader/V3/AssetSelector/constants.js"),require("../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorSelect/AssetSelectorSelect.scss.js"),require("../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorSelect/loadAssets.js"),require("../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelector.scss.js"),require("../../../componentsV2/AppHeader/V3/AppTitle/AppTitle.constants.js"),require("../../../componentsV2/AppHeader/V3/AppTitle/AppTitle.scss.js"),require("../../../componentsV2/AppHeader/V3/constants.scss.js"),require("@babel/runtime/helpers/typeof"),require("../../../componentsV2/AppHeader/V3/SettingsButton/SettingsButton.js"),require("../../../componentsV2/AppHeader/V3/SettingsButton/SettingsButton.constants.js"),require("../../../componentsV2/AppSettings/AppSettings.js"),require("../../../componentsV2/AppSettings/AppSettings.constants.js"),require("../../../componentsV2/AppSizeProvider/AppSizeProvider.js"),require("../../../componentsV2/AppHeader/V3/Actions/Actions.constants.js"),require("../../../componentsV2/AppHeader/V3/Actions/Actions.scss.js"),require("../../../componentsV2/AppHeader/V3/AppHeaderV3.scss.js"),require("../../../componentsV2/AppHeader/AppHeader.scss.js"),require("../../../componentsV2/OffsetWellsButton/OffsetWellsButton.js"),require("../../../componentsV2/ChartAxisExtreme/ChartAxisExtreme.scss.js"),require("highcharts"),require("../../../componentsV2/ChartAxisExtreme/ChartAxisExtremeDragTracker.js"),require("../../../componentsV2/Autocomplete/Autocomplete.js"),require("../../../componentsV2/Select/Select.js"),require("../../../componentsV2/AppSettingsDivider/AppSettingsDivider.scss.js"),require("../../../componentsV2/WellArchivedMessage/WellArchivedMessage.js"),require("../../../componentsV2/DatePicker/DatePicker.js"),require("../../../componentsV2/DragHandle/DragHandle.js"),require("../../../componentsV2/CompletionsOffsetWellPicker/CompletionsOffsetWellPicker.js"),require("../../../componentsV2/Slider/constants.js"),require("../../../componentsV2/Slider/components/SliderThumb.js"),require("../../../componentsV2/Slider/Slider.scss.js"),require("../../../componentsV2/SliderAdvanced/SliderAdvanced.js"),require("react-color"),require("../../../componentsV2/ColorPicker/Swatches/Swatches.scss.js"),require("../../../componentsV2/ColorPicker/OpacityDragtracker/OpacityDragTracker.scss.js"),require("../../../componentsV2/ColorPicker/ColorPicker.scss.js"),require("../../../componentsV2/ChartHelper/ChartHelper.scss.js"),require("../../../componentsV2/Hotkey/Hotkey.js");var w=require("../../../utils/notificationToasts.js");function R(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var E=R(e),z=R(s),N=R(n);function _(e,s){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);s&&(n=n.filter((function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable}))),o.push.apply(o,n)}return o}function W(e){for(var s=1;s<arguments.length;s++){var o=null!=arguments[s]?arguments[s]:{};s%2?_(Object(o),!0).forEach((function(s){E.default(e,s,o[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):_(Object(o)).forEach((function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(o,s))}))}return e}var U=D.isNativeDetected||D.isMobileDetected,G="DevCenter_AppContainer";module.exports=function(e){var s,n,R,E,_,K,Q,Z,J,X,Y,$,ee,se,oe,ne=e.CLIAppComponent,re=e.CLIAppSettings,te=e.app,ie=e.appId,ce=e.className,pe=e.coordinates,ue=e.currentDashboardAppsLastAnnotations,ae=e.currentUser,le=e.devCenterRouter,de=e.disableAppAssetSelection,me=e.isActionsDisabled,qe=e.isNonIsolatedApp,je=void 0!==qe&&qe,Ae=e.isSettingsDialogHidden,ge=e.layoutEnvironment,Ce=e.onAppContainerClick,Ie=void 0===Ce?r.noop:Ce,ve=e.onAppRemove,Ve=e.onReportBugClick,he=e.onCloneDashboard,Se=e.onHelpCenterClick,be=e.onIsMaximizedChange,xe=e.onSettingChange,De=e.onSettingsChange,Pe=e.openIntercom,Me=void 0===Pe?r.noop:Pe,fe=e.registerAITools,Te=e.setIsFullscreenModalMode,ye=void 0===Te?r.noop:Te,Le=e.timestamp,ke=e.updateCurrentDashboardAppLastAnnotation,Be=e.dashboardMeta,He=e.reloadApp,Oe=void 0===He?void 0:He,Fe=e.chatActions,we=o.useContext(c),Re=t.useTheme(),Ee=o.useState([]),ze=z.default(Ee,2),Ne=ze[0],_e=ze[1],We=o.useState([]),Ue=z.default(We,2),Ge=Ue[0],Ke=Ue[1],Qe=null!==(s=null==we?void 0:we[ie||te.id])&&void 0!==s?s:{isLoading:!0},Ze=null===(n=te.package)||void 0===n||null===(R=n.manifest)||void 0===R?void 0:R.application,Je=B.getAppSegment(te),Xe=!(null==Be||!Be.isChiplessDashboard),Ye=B.isDCAppMultiRig({uiSettings:null==Ze?void 0:Ze.ui,isChiplessDashboard:Xe}),$e=!(null==Ze||null===(E=Ze.ui)||void 0===E||!E.enable_comments),es=B.getAppName(te),ss=m({onIsMaximizedChange:be,devCenterRouter:le,appId:ie}),os=ss.isMaximized,ns=ss.setIsMaximized,rs=Le||B.getTimestampFromQuery(null===(_=le.location.query)||void 0===_?void 0:_.query),ts=te.id===L.DEV_CENTER_CLI_APP_ID,is=ts&&U?W(W({},pe),{},{w:12}):pe,cs=V.getAppVersion(te),ps=y({CLIAppComponent:ne,CLIAppSettings:re,app:te,version:cs}),us=ps.isLoading,as=ps.AppSettings,ls=ps.AppComponent,ds=a({setIsFullscreenModalMode:ye}),ms=ds.isAppSettingsDialogOpened,qs=ds.toggleAppSettingsDialog,js=l(),As=js.isAnnotationsListOpened,gs=js.toggleAnnotationsList,Cs=us||!ae||!Ye&&Qe.isLoading,Is=d({app:te,appData:Qe,currentDashboardAppsLastAnnotations:ue}),vs=Is.appLastAnnotation,Vs=Is.assetCompanyId,hs=Is.assetIdForAnnotation,Ss=Is.isAppSupportsAnnotations,bs=r.pickBy(r.pick(Qe,["well","rig","fracFleet","wells","interventionUnit"]),Boolean),xs=o.useMemo((function(){return null==Ge?void 0:Ge.map((function(e){return W(W({},e),{},{onClick:function(){var s;null===(s=e.onClick)||void 0===s||s.call(e),e.to&&le.push(e.to)}})}))}),[Ge,le]),Ds=!(null==te||null===(K=te.package)||void 0===K||null===(Q=K.manifest)||void 0===Q||null===(Z=Q.application)||void 0===Z||null===(J=Z.ui)||void 0===J||!J.use_app_header_v3),Ps=!(null==(ee=le)||null===(se=ee.location)||void 0===se||null===(oe=se.pathname)||void 0===oe||!oe.startsWith("/home"));return u.jsx(p.DevCenterRouterContext.Provider,{value:le,children:u.jsx(I.DcFullscreenElemsCoordinatorProvider,{setIsFullscreenModalMode:ye,children:u.jsx(k.AppCommonsProvider,W(W({maximized:os,setMaximized:ns,appId:null==te||null===(X=te.app)||void 0===X?void 0:X.id,app:te,appSettings:te.settings,onSettingChange:xe,onSettingsChange:De,appHeadersV3Enabled:Ds,isNonIsolatedApp:je,disableAppAssetSelection:de,isMultiRig:Ye,currentUser:ae,appData:Qe,layoutEnvironment:ge,appSettingsComponent:as,dashboardMeta:Be,toggleAnnotationsList:Ss?gs:void 0,onHelpCenterClick:Se,secondaryMenuItems:xs,onAppRemove:ve,isInsideNewMobileApp:D.isInsideNewMobileApp,globalOffsetWells:null==Be?void 0:Be.globalOffsetWells,globalOffsetWellsVersion:null==Be?void 0:Be.globalOffsetWellsVersion,globalOffsetWellsToken:null==Be?void 0:Be.globalOffsetWellsToken,reloadApp:Oe},bs),{},{children:u.jsx(S.CommentsSwitchProvider,{children:u.jsxs("div",{className:N.default("dc-app-container",D.isInsideNewMobileApp&&"dc-app-container--inside-new-mobile-app",Ps&&"dc-app-container--inside-home-page",ce,os&&"dc-app-container__maximized",Re.isLightTheme&&"dc-app-container__light-theme",x.container),"data-testid":"".concat(G,"_").concat(es),onClick:function(){return Ie()},children:[u.jsx(T.ToastContainer,{}),u.jsx("div",{className:x.containerContent,children:u.jsx(C.default,{AppComponent:ls,app:te,appData:bs,isAppLoading:us,availability:V.getAppAvailability(te.availability,ae.company.with_subscription),isCLIApp:ts,isLoading:Cs,isMultiRig:Ye,layoutEnvironment:ge,openIntercom:Me,segment:Je,toggleAppSettingsDialog:qs,appProps:{coordinates:is,currentUser:ae,devCenterRouter:le,onSettingChange:xe,onSettingsChange:De,registerAITools:fe,segment:Je,setIsFullscreenModalMode:ye,setIsMaximized:ns,setMainMenuItems:_e,setSecondaryMenuItems:Ke,toggleAppSettingsDialog:qs,appHeaderProps:W({app:te,appLastAnnotation:vs,appSettings:te.settings,coordinates:is,currentUser:ae,isMaximized:os,layoutEnvironment:ge,onSettingChange:xe,toggleAnnotationsList:gs,updateCurrentDashboardAppLastAnnotation:ke},bs),isNative:D.isNativeDetected,layoutEnvironment:ge,timestamp:rs,chatActions:Fe}})}),ms&&u.jsx(j.default,{AppSettingsComponent:as,app:te,appData:Qe,appName:es,currentUser:ae,disableAppAssetSelection:de,isMultiRig:Ye,isSettingsDialogHidden:Ae,layoutEnvironment:ge,onAppRemove:ve,onCloneDashboard:he,onSettingChange:xe,onSettingsChange:De,openIntercom:Me,rigId:null!==(Y=null===($=Qe.rig)||void 0===$?void 0:$.id)&&void 0!==Y?Y:null,timestamp:rs,toggleAppSettingsDialog:qs}),As&&u.jsx(f.AnnotationsProvider,{children:u.jsx(M,{appId:te.app.id,appSettings:te.settings,appTitle:es,assetCompanyId:Vs,assetId:hs,currentUser:ae,onClose:gs,showSuccessNotification:w.showSuccessNotification})}),os&&!Ds&&u.jsx(v,{setIsMaximized:ns}),!me&&(!Ds||Cs)&&u.jsxs(q,{children:[$e&&u.jsx(b.CommentsSwitchButton,{currentUser:ae}),Ss&&u.jsx(F.Tooltip,{title:"Add Annotation",placement:"top",disabled:!!U,children:u.jsx(O.ButtonIcon,{size:"small",type:"tertiaryBg",onClick:gs,testId:"".concat(G,"_addAnnotation"),children:u.jsx(P,{})})}),Ve&&!ts&&u.jsx(F.Tooltip,{title:"Report A Bug",placement:"top",disabled:!!U,children:u.jsx(O.ButtonIcon,{size:"small",type:"tertiaryBg",onClick:function(){return Ve()},children:u.jsx(i.BugReport,{})})}),u.jsx(F.Tooltip,{placement:"top",disabled:!!U||ts,title:"Help Center",children:u.jsx(O.ButtonIcon,{testId:"".concat(G,"_helpContent"),onClick:function(){return Se()},disabled:ts,size:"small",type:"tertiaryBg",children:u.jsx(H.HelpCenterIcon,{appId:te.app.id,helpContentUpdatedAt:te.help_content_updated_at})})}),!U||os||D.isInsideNewMobileApp?u.jsxs(u.Fragment,{children:[u.jsx(h,{menuItems:Ne,devCenterRouter:le,isMobileView:U}),u.jsx(A.NonPriorityMenus,{devCenterRouter:le,isMaximized:os,isMobileView:U,menuItems:Ge,setIsFullscreenModalMode:ye,setIsMaximized:ns,toggleAppSettingsDialog:qs})]}):u.jsx(g,{setIsMaximized:ns})]})]})})}))})})};
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/defineProperty"),s=require("@babel/runtime/helpers/slicedToArray"),o=require("react"),n=require("classnames"),r=require("lodash"),t=require("@material-ui/core"),i=require("@material-ui/icons"),c=require("../AppContext.js"),p=require("../DevCenterRouterContext/DevCenterRouterContext.js");require("../DevCenterRouterContext/UniversalLink/UniversalLink.js"),require("@babel/runtime/helpers/objectWithoutProperties"),require("react-router-dom"),require("query-string");var u=require("react/jsx-runtime"),a=require("./effects/useAppSettings.js"),l=require("./effects/useAnnotationsList.js"),d=require("./effects/useAnnotationsData.js"),m=require("./effects/useAppMaximized.js"),q=require("./components/AppActions/AppActions.js"),j=require("./components/AppSettingsDialog/AppSettingsDialog.js");require("./components/AppSettingsDialog/components/RemoveAppButton.js"),require("./components/AppSettingsDialog/components/SettingsAccordion.js"),require("./components/AnnotationsButton/AnnotationsButton.js");var A=require("./components/NonPriorityMenus/NonPriorityMenus.js"),g=require("./components/FullscreenButton/FullscreenButton.js");require("./components/AppInfoMessage/AppInfoMessage.js");var C=require("./components/DevCenterAppView/DevCenterAppView.js"),I=require("./components/DcFullscreenElemsCoordinatorProvider/DcFullscreenElemsCoordinatorProvider.js");require("./components/DcFullscreenElemsCoordinatorProvider/IsInsideDcFullscreenElemProvider.js"),require("./components/IsInsideIsolatedDcAppProvider/IsInsideIsolatedDcAppProvider.js");var v=require("./components/RestoreAppSizeButton/index.js"),V=require("./utils.js"),S=require("./components/PriorityMenus/PriorityMenus.js"),h=require("./components/CommentsSwitch/CommentsSwitchProvider.js"),b=require("./components/CommentsSwitch/CommentsSwitchButton.js"),x=require("./DevCenterAppContainer.scss.js"),D=require("../../../utils/mobileDetect.js"),P=require("../../Icons/AnnotationIcon.js"),M=require("../../Annotations/components/AnnotationsList/index.js");require("../../Annotations/components/LastAnnotation/index.js");var f=require("../../Annotations/AnnotationsContext.js");require("../../Toaster/Toaster.js");var T=require("../../Toaster/ToastContainer.js");require("../../../clients/subscriptions/constants.js"),require("@babel/runtime/helpers/asyncToGenerator"),require("@babel/runtime/regenerator"),require("querystring"),require("uuid/v1"),require("../../../clients/subscriptions.v1.js"),require("../../../clients/jsonApi/index.js"),require("../../../clients/subscriptions/subscriptions-client.factory.js");var y=require("../../../effects/useDevCenterApp.js");require("../../../utils/index.js"),require("uuid"),require("jsona"),require("../../../constants/segment.js"),require("../../../utils/env.js");var B=require("../../../constants/devcenter.js");require("../../../constants/goals.js"),require("../../../constants/alerts.js"),require("../../../constants/apps.js"),require("../../../constants/drillstring.js"),require("../../../constants/completion.js"),require("../../../constants/appPackages.js"),require("../../../constants/notifications.js"),require("../../../constants/feed.js"),require("../../../constants/bha.js"),require("../../../constants/corvaCompanyId.js"),require("../../GradientManager/configuration/constants.js"),require("../../StatusBadge/constants.js"),require("@babel/runtime/helpers/toConsumableArray"),require("lodash/set"),require("lodash/get"),require("lodash/unset"),require("moment"),require("../../../clients/api/apiCore.js"),require("../../../clients/constants.js"),require("../../../clients/sso/auth0.js"),require("../../../clients/sso/oauth2.js"),require("../../../clients/api/rateLimiter.js"),require("lodash/isEmpty"),require("lodash/sortBy"),require("../../../constants/streamSourceType.js"),require("./components/CommentsSwitch/CommentsSwitchContext.js");var L=require("../../../componentsV2/AppCommonsProvider/AppCommonsProvider.js");require("../../../componentsV2/AppCommonsProvider/AppCommonsContext.js"),require("../../../componentsV2/AppSettings/AppSettingsPinningContext.js");var k=require("../../../utils/devcenter.js"),w=require("../../HelpCenter/HelpCenterIcon.js");require("../../../componentsV2/Text/Text.js"),require("../../../componentsV2/Grid/Grid.js"),require("../../../componentsV2/Grid/Cell.js"),require("../../../componentsV2/Header/Header.scss.js"),require("../../../componentsV2/Button/Button.js");var F=require("../../../componentsV2/ButtonIcon/ButtonIcon.js"),H=require("../../../componentsV2/Tooltip/Tooltip.js");require("../../../componentsV2/Popover/Popover.js"),require("../../../componentsV2/PopoverPanel/PopoverPanel.js"),require("../../../componentsV2/Radio/Radio.js"),require("../../../componentsV2/RadioAndCheckboxGroup/RadioAndCheckboxGroup.scss.js"),require("../../../componentsV2/Checkbox/Checkbox.js"),require("../../../componentsV2/TextInput/TextInput.js"),require("../../../componentsV2/TextInputNext/TextInputNext.js"),require("../../../componentsV2/Label/Label.js"),require("../../../componentsV2/TextEndTruncated/TextEndTruncated.scss.js"),require("../../../componentsV2/TextMiddleTruncated/TextMiddleTruncated.constants.js"),require("../../../componentsV2/TextMiddleTruncated/TextMiddleTruncated.scss.js"),require("../../../componentsV2/TextLink/TextLink.js"),require("../../../componentsV2/Chip/Chip.js"),require("../../../componentsV2/ChipAlert/ChipAlert.js"),require("../../../componentsV2/ChipIndicator/ChipIndicator.js"),require("../../../componentsV2/Avatar/Avatar.js"),require("../../../componentsV2/AvatarGroup/AvatarGroup.js"),require("@material-ui/lab"),require("../../../componentsV2/ToggleButtons/ToggleButtons.scss.js"),require("../../../componentsV2/Paper/Paper.js"),require("../../../componentsV2/ModalWindow/ModalWindow.js"),require("../../../componentsV2/Modal/Modal.scss.js"),require("../../../componentsV2/Menu/Menu.js"),require("@icon-park/react/es/all"),require("../../../icons/IconParkProvider.js"),require("../../../icons/customIcons/icons/AddMessage.js"),require("../../../icons/customIcons/icons/DragOne.js"),require("../../../icons/customIcons/icons/Attention.js"),require("../../../icons/customIcons/icons/Collapse.js"),require("../../../icons/customIcons/icons/Dashboard.js"),require("../../../icons/customIcons/icons/Expand.js"),require("../../../icons/customIcons/icons/FolderClosed.js"),require("../../../icons/customIcons/icons/FolderClosedFilled.js"),require("../../../icons/customIcons/icons/FolderOpened.js"),require("../../../icons/customIcons/icons/GreaterOrEqual.js"),require("../../../icons/customIcons/icons/LessOrEqual.js"),require("../../../icons/customIcons/icons/Search.js"),require("../../../icons/customIcons/icons/SearchOne.js"),require("../../../icons/customIcons/icons/Wellhub.js"),require("../../../icons/customIcons/icons/MultiRuler.js"),require("../../../icons/customIcons/icons/Checkbox.js"),require("../../../icons/customIcons/icons/CheckboxChecked.js"),require("../../../icons/customIcons/icons/CheckboxIndeterminate.js"),require("../../../icons/customIcons/icons/Radio.js"),require("../../../icons/customIcons/icons/RadioChecked.js"),require("../../../icons/customIcons/icons/SimulFrac.js"),require("../../../icons/customIcons/icons/ZipperFrac.js"),require("../../../icons/customIcons/icons/CautionFilled.js"),require("../../../icons/customIcons/icons/MoreApp.js"),require("../../../icons/customIcons/icons/Pad.js"),require("../../../icons/customIcons/icons/DrilloutUnit.js"),require("../../../icons/customIcons/icons/FracFleet.js"),require("../../../icons/customIcons/icons/Global.js"),require("../../../icons/customIcons/icons/Program.js"),require("../../../icons/customIcons/icons/Rig.js"),require("../../../icons/customIcons/icons/Well.js"),require("../../../icons/customIcons/icons/Gap.js"),require("../../../icons/customIcons/icons/Pin.js"),require("../../../icons/customIcons/icons/CloseOneFilled.js"),require("../../../icons/customIcons/icons/AttentionFilled.js"),require("../../../icons/customIcons/icons/CheckOneFilled.js"),require("../../../icons/customIcons/icons/Archive.js"),require("../../../icons/customIcons/icons/ArchiveCancel.js"),require("../../../icons/customIcons/icons/Unarchive.js"),require("../../../icons/customIcons/icons/Archived.js"),require("../../../icons/customIcons/icons/InterventionUnit.js"),require("../../../icons/customIcons/icons/CloudDelete.js"),require("../../../icons/customIcons/icons/Lasso.js"),require("../../../icons/customIcons/icons/Radius.js"),require("../../../icons/customIcons/icons/ErrorOps.js"),require("../../../icons/customIcons/icons/DataTypeOps.js"),require("../../../icons/customIcons/icons/FalsePositiveOps.js"),require("../../../icons/customIcons/icons/CalibrationOps.js"),require("../../../icons/customIcons/icons/CriticalOps.js"),require("../../../icons/customIcons/icons/Company.js"),require("../../../icons/customIcons/icons/ArchiveOne.js"),require("../../../icons/customIcons/icons/ParseBotFusion.js"),require("../../../icons/customIcons/icons/Connect.js"),require("../../../icons/customIcons/icons/PuzzleOne.js"),require("../../../icons/customIcons/icons/Feed.js"),require("../../../icons/customIcons/icons/Prompt.js"),require("../../../icons/customIcons/icons/Companies.js"),require("../../../icons/customIcons/icons/ClipboardAi.js"),require("../../../icons/customIcons/icons/Key.js"),require("../../../icons/customIcons/icons/AtSignCrossed.js"),require("../../../icons/customIcons/icons/MappingManual.js"),require("../../../icons/customIcons/icons/Mapping.js"),require("../../../icons/customIcons/icons/Metrics.js"),require("../../../icons/customIcons/icons/Drops.js"),require("../../../icons/customIcons/icons/ClipboardSearch.js"),require("../../../icons/customIcons/icons/Template.js"),require("../../../icons/customIcons/icons/ClipboardMetrics.js"),require("../../../icons/customIcons/icons/ClipboardBuilder.js"),require("../../../icons/customIcons/icons/UnitConversion.js"),require("../../../icons/customIcons/icons/NPT.js"),require("../../../icons/customIcons/icons/GuidedFrac.js"),require("../../../componentsV2/utils.js"),require("../../../componentsV2/Hint/Hint.scss.js"),require("../../../componentsV2/Counter/Counter.js"),require("../../../componentsV2/BadgeBase/BadgeBase.scss.js"),require("../../../componentsV2/TemplatesControl/TemplatesControl.js"),require("zustand"),require("../../../componentsV2/TemplatesControl/utils.js"),require("../../../componentsV2/TemplatesControl/icons/folder/index.js"),require("../../../componentsV2/TemplatesControl/Store/utils.js"),require("../../../componentsV2/TemplatesControl/types.js"),require("../../../permissions/PermissionsContext.js"),require("../../../permissions/constants/index.js"),require("../../../permissions/withPermissionsHOC.js"),require("../../../permissions/ProvidePermissions.js"),require("../../../componentsV2/BadgeDot/BadgeDot.scss.js"),require("../../../componentsV2/LoaderLinear/LoaderLinear.scss.js"),require("../../../componentsV2/LoaderLogo/LoaderLogo.constants.js"),require("../../../componentsV2/LoaderLogo/LoaderLogo.scss.js"),require("../../../componentsV2/Switch/Switch.js"),require("../../../componentsV2/Tabs/Tabs.js"),require("../../../componentsV2/EmptyState/EmptyState.scss.js"),require("../../../componentsV2/FileIcon/FileIcon.js"),require("../../../componentsV2/Tag/Tag.js"),require("react-dropzone"),require("../../../componentsV2/FilesDropzone/FilesDropzone.scss.js"),require("../../../componentsV2/FilesLoader/FilesLoader.scss.js"),require("file-extension"),require("image-extensions"),require("video-extensions"),require("../../../componentsV2/FilesProcessor/FilesProcessor.scss.js"),require("../../../componentsV2/Skeleton/Skeleton.scss.js"),require("../../../utils/main.js"),require("../../../componentsV2/CopyToClipboard/CopyToClipboard.scss.js"),require("../../../componentsV2/Stepper/Step/Step.scss.js"),require("../../../componentsV2/Stepper/Stepper.scss.js"),require("../../../componentsV2/ButtonLive/ButtonLive.js"),require("../../../componentsV2/ButtonText/ButtonText.js"),require("../../../componentsV2/IndicatorLive/IndicatorLive.js"),require("../../../componentsV2/Accordion/Accordion.scss.js"),require("../../../componentsV2/Breadcrumbs/Breadcrumbs.scss.js"),require("../../../componentsV2/BadgeComment/BadgeComment.js"),require("../../../componentsV2/AppContainer/AppContainer.js"),require("../../../componentsV2/AppContainer/AppContainer.constants.js"),require("../../../componentsV2/AppFooter/AppFooter.js"),require("../../../componentsV2/AppHeader/AppHeader.constants.js"),require("../../../componentsV2/AppHeader/AppBadge/AppBadge.scss.js"),require("../../../componentsV2/AppHeader/AppAssets/utils.js"),require("../../../componentsV2/AppHeader/AppAssets/AppAssets.scss.js"),require("../../PadModeSelect/PadModeSelect.js"),require("../../../componentsV2/AppHeader/PadMode/PadMode.scss.js"),require("../../../componentsV2/PadModeSelect/PadModeSelect.js"),require("../../../componentsV2/PadModeSelect/PadModeSelect.constants.js"),require("../../../componentsV2/AppHeader/V3/VersionSelect/VersionSelect.js"),require("../../../componentsV2/UniversalLink/UniversalLink.scss.js"),require("../../../componentsV2/AppHeader/V3/AssetChips/AssetChips.scss.js"),require("../../../componentsV2/AppHeader/V3/DqStatusIcon/DqStatusIcon.js"),require("../../../componentsV2/AppHeader/V3/DqStatusIcon/DqStatusIcon.constants.js"),require("../../../componentsV2/AppFooter/DqPopover/DqStatusIcon/DqStatusIcon.js"),require("../../../componentsV2/AppDqPopover/DqAlertTooltip/DqAlertTooltip.scss.js"),require("../../../componentsV2/AppDqPopover/DqAlert/DqAlert.scss.js"),require("../../../componentsV2/AppDqPopover/DqAsset/DqAsset.scss.js"),require("../../../componentsV2/AppDqPopover/AppDqPopover.scss.js"),require("../../AppIcon/AppIcon.js"),require("../../../utils/getSingleAsset.js"),require("../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorChip/AssetSelectorChip.js"),require("../../../componentsV2/AppHeader/V3/AssetSelector/constants.js"),require("../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorSelect/AssetSelectorSelect.scss.js"),require("../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorSelect/loadAssets.js"),require("../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelector.scss.js"),require("../../../componentsV2/AppHeader/V3/AppTitle/AppTitle.constants.js"),require("../../../componentsV2/AppHeader/V3/AppTitle/AppTitle.scss.js"),require("../../../componentsV2/AppHeader/V3/constants.scss.js"),require("@babel/runtime/helpers/typeof"),require("../../../componentsV2/AppHeader/V3/SettingsButton/SettingsButton.js"),require("../../../componentsV2/AppHeader/V3/SettingsButton/SettingsButton.constants.js"),require("../../../componentsV2/AppSettings/AppSettings.js"),require("../../../componentsV2/AppSettings/AppSettings.constants.js"),require("../../../componentsV2/AppSizeProvider/AppSizeProvider.js"),require("../../../componentsV2/AppHeader/V3/Actions/Actions.constants.js"),require("../../../componentsV2/AppHeader/V3/Actions/Actions.scss.js"),require("../../../componentsV2/AppHeader/V3/AppHeaderV3.scss.js"),require("../../../componentsV2/AppHeader/AppHeader.scss.js"),require("../../../componentsV2/OffsetWellsButton/OffsetWellsButton.js"),require("../../../componentsV2/ChartAxisExtreme/ChartAxisExtreme.scss.js"),require("highcharts"),require("../../../componentsV2/ChartAxisExtreme/ChartAxisExtremeDragTracker.js"),require("../../../componentsV2/Autocomplete/Autocomplete.js"),require("../../../componentsV2/Select/Select.js"),require("../../../componentsV2/AppSettingsDivider/AppSettingsDivider.scss.js"),require("../../../componentsV2/WellArchivedMessage/WellArchivedMessage.js"),require("../../../componentsV2/DatePicker/DatePicker.js"),require("../../../componentsV2/DragHandle/DragHandle.js"),require("../../../componentsV2/CompletionsOffsetWellPicker/CompletionsOffsetWellPicker.js"),require("../../../componentsV2/Slider/constants.js"),require("../../../componentsV2/Slider/components/SliderThumb.js"),require("../../../componentsV2/Slider/Slider.scss.js"),require("../../../componentsV2/SliderAdvanced/SliderAdvanced.js"),require("react-color"),require("../../../componentsV2/ColorPicker/Swatches/Swatches.scss.js"),require("../../../componentsV2/ColorPicker/OpacityDragtracker/OpacityDragTracker.scss.js"),require("../../../componentsV2/ColorPicker/ColorPicker.scss.js"),require("../../../componentsV2/ChartHelper/ChartHelper.scss.js"),require("../../../componentsV2/Hotkey/Hotkey.js");var O=require("../../../utils/notificationToasts.js");function R(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var E=R(e),z=R(s),W=R(n);function N(e,s){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);s&&(n=n.filter((function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable}))),o.push.apply(o,n)}return o}function _(e){for(var s=1;s<arguments.length;s++){var o=null!=arguments[s]?arguments[s]:{};s%2?N(Object(o),!0).forEach((function(s){E.default(e,s,o[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):N(Object(o)).forEach((function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(o,s))}))}return e}var U=D.isNativeDetected||D.isMobileDetected,G="DevCenter_AppContainer";module.exports=function(e){var s,n,R,E,N,K,Q,Z,J,X,Y,$,ee,se,oe,ne=e.CLIAppComponent,re=e.CLIAppSettings,te=e.app,ie=e.appId,ce=e.className,pe=e.coordinates,ue=e.currentDashboardAppsLastAnnotations,ae=e.currentUser,le=e.devCenterRouter,de=e.disableAppAssetSelection,me=e.isActionsDisabled,qe=e.isBrowserFullscreen,je=e.enterBrowserFullscreen,Ae=e.exitBrowserFullscreen,ge=e.isSeparateWindow,Ce=e.openSeparateWindow,Ie=e.closeSeparateWindow,ve=e.setSeparateWindowTitle,Ve=e.isNonIsolatedApp,Se=void 0!==Ve&&Ve,he=e.isSettingsDialogHidden,be=e.layoutEnvironment,xe=e.onAppContainerClick,De=void 0===xe?r.noop:xe,Pe=e.onAppRemove,Me=e.onReportBugClick,fe=e.onCloneDashboard,Te=e.onHelpCenterClick,ye=e.onIsMaximizedChange,Be=e.onSettingChange,Le=e.onSettingsChange,ke=e.openIntercom,we=void 0===ke?r.noop:ke,Fe=e.registerAITools,He=e.setIsFullscreenModalMode,Oe=void 0===He?r.noop:He,Re=e.timestamp,Ee=e.updateCurrentDashboardAppLastAnnotation,ze=e.dashboardMeta,We=e.reloadApp,Ne=void 0===We?void 0:We,_e=e.chatActions,Ue=o.useContext(c),Ge=t.useTheme(),Ke=o.useState([]),Qe=z.default(Ke,2),Ze=Qe[0],Je=Qe[1],Xe=o.useState([]),Ye=z.default(Xe,2),$e=Ye[0],es=Ye[1],ss=null!==(s=null==Ue?void 0:Ue[ie||te.id])&&void 0!==s?s:{isLoading:!0},os=null===(n=te.package)||void 0===n||null===(R=n.manifest)||void 0===R?void 0:R.application,ns=k.getAppSegment(te),rs=!(null==ze||!ze.isChiplessDashboard),ts=k.isDCAppMultiRig({uiSettings:null==os?void 0:os.ui,isChiplessDashboard:rs}),is=!(null==os||null===(E=os.ui)||void 0===E||!E.enable_comments),cs=k.getAppName(te),ps=m({onIsMaximizedChange:ye,devCenterRouter:le,appId:ie}),us=ps.isMaximized,as=ps.setIsMaximized,ls=Re||k.getTimestampFromQuery(null===(N=le.location.query)||void 0===N?void 0:N.query),ds=te.id===B.DEV_CENTER_CLI_APP_ID,ms=ds&&U?_(_({},pe),{},{w:12}):pe,qs=V.getAppVersion(te),js=y({CLIAppComponent:ne,CLIAppSettings:re,app:te,version:qs}),As=js.isLoading,gs=js.AppSettings,Cs=js.AppComponent,Is=a({setIsFullscreenModalMode:Oe}),vs=Is.isAppSettingsDialogOpened,Vs=Is.toggleAppSettingsDialog,Ss=l(),hs=Ss.isAnnotationsListOpened,bs=Ss.toggleAnnotationsList,xs=As||!ae||!ts&&ss.isLoading,Ds=d({app:te,appData:ss,currentDashboardAppsLastAnnotations:ue}),Ps=Ds.appLastAnnotation,Ms=Ds.assetCompanyId,fs=Ds.assetIdForAnnotation,Ts=Ds.isAppSupportsAnnotations,ys=r.pickBy(r.pick(ss,["well","rig","fracFleet","wells","interventionUnit"]),Boolean),Bs=o.useMemo((function(){return null==$e?void 0:$e.map((function(e){return _(_({},e),{},{onClick:function(){var s;null===(s=e.onClick)||void 0===s||s.call(e),e.to&&le.push(e.to)}})}))}),[$e,le]),Ls=!(null==te||null===(K=te.package)||void 0===K||null===(Q=K.manifest)||void 0===Q||null===(Z=Q.application)||void 0===Z||null===(J=Z.ui)||void 0===J||!J.use_app_header_v3),ks=!(null==(ee=le)||null===(se=ee.location)||void 0===se||null===(oe=se.pathname)||void 0===oe||!oe.startsWith("/home"));return u.jsx(p.DevCenterRouterContext.Provider,{value:le,children:u.jsx(I.DcFullscreenElemsCoordinatorProvider,{setIsFullscreenModalMode:Oe,children:u.jsx(L.AppCommonsProvider,_(_({maximized:us,setMaximized:as,appId:null==te||null===(X=te.app)||void 0===X?void 0:X.id,app:te,appSettings:te.settings,onSettingChange:Be,onSettingsChange:Le,appHeadersV3Enabled:Ls,isBrowserFullscreen:qe,enterBrowserFullscreen:je,exitBrowserFullscreen:Ae,isSeparateWindow:ge,openSeparateWindow:Ce,closeSeparateWindow:Ie,setSeparateWindowTitle:ve,isNonIsolatedApp:Se,disableAppAssetSelection:de,isMultiRig:ts,currentUser:ae,appData:ss,layoutEnvironment:be,appSettingsComponent:gs,dashboardMeta:ze,toggleAnnotationsList:Ts?bs:void 0,onHelpCenterClick:Te,secondaryMenuItems:Bs,onAppRemove:Pe,isInsideNewMobileApp:D.isInsideNewMobileApp,globalOffsetWells:null==ze?void 0:ze.globalOffsetWells,globalOffsetWellsVersion:null==ze?void 0:ze.globalOffsetWellsVersion,globalOffsetWellsToken:null==ze?void 0:ze.globalOffsetWellsToken,reloadApp:Ne},ys),{},{children:u.jsx(h.CommentsSwitchProvider,{children:u.jsxs("div",{className:W.default("dc-app-container",D.isInsideNewMobileApp&&"dc-app-container--inside-new-mobile-app",ks&&"dc-app-container--inside-home-page",ce,us&&"dc-app-container__maximized",Ge.isLightTheme&&"dc-app-container__light-theme",x.container),"data-testid":"".concat(G,"_").concat(cs),onClick:function(){return De()},children:[u.jsx(T.ToastContainer,{}),u.jsx("div",{className:x.containerContent,children:u.jsx(C.default,{AppComponent:Cs,app:te,appData:ys,isAppLoading:As,availability:V.getAppAvailability(te.availability,ae.company.with_subscription),isCLIApp:ds,isLoading:xs,isMultiRig:ts,layoutEnvironment:be,openIntercom:we,segment:ns,toggleAppSettingsDialog:Vs,appProps:{coordinates:ms,currentUser:ae,devCenterRouter:le,onSettingChange:Be,onSettingsChange:Le,registerAITools:Fe,segment:ns,setIsFullscreenModalMode:Oe,setIsMaximized:as,setMainMenuItems:Je,setSecondaryMenuItems:es,toggleAppSettingsDialog:Vs,appHeaderProps:_({app:te,appLastAnnotation:Ps,appSettings:te.settings,coordinates:ms,currentUser:ae,isMaximized:us,layoutEnvironment:be,onSettingChange:Be,toggleAnnotationsList:bs,updateCurrentDashboardAppLastAnnotation:Ee},ys),isNative:D.isNativeDetected,layoutEnvironment:be,timestamp:ls,chatActions:_e}})}),vs&&u.jsx(j.default,{AppSettingsComponent:gs,app:te,appData:ss,appName:cs,currentUser:ae,disableAppAssetSelection:de,isMultiRig:ts,isSettingsDialogHidden:he,layoutEnvironment:be,onAppRemove:Pe,onCloneDashboard:fe,onSettingChange:Be,onSettingsChange:Le,openIntercom:we,rigId:null!==(Y=null===($=ss.rig)||void 0===$?void 0:$.id)&&void 0!==Y?Y:null,timestamp:ls,toggleAppSettingsDialog:Vs}),hs&&u.jsx(f.AnnotationsProvider,{children:u.jsx(M,{appId:te.app.id,appSettings:te.settings,appTitle:cs,assetCompanyId:Ms,assetId:fs,currentUser:ae,onClose:bs,showSuccessNotification:O.showSuccessNotification})}),us&&!Ls&&u.jsx(v,{setIsMaximized:as}),!me&&(!Ls||xs)&&u.jsxs(q,{children:[is&&u.jsx(b.CommentsSwitchButton,{currentUser:ae}),Ts&&u.jsx(H.Tooltip,{title:"Add Annotation",placement:"top",disabled:!!U,children:u.jsx(F.ButtonIcon,{size:"small",type:"tertiaryBg",onClick:bs,testId:"".concat(G,"_addAnnotation"),children:u.jsx(P,{})})}),Me&&!ds&&u.jsx(H.Tooltip,{title:"Report A Bug",placement:"top",disabled:!!U,children:u.jsx(F.ButtonIcon,{size:"small",type:"tertiaryBg",onClick:function(){return Me()},children:u.jsx(i.BugReport,{})})}),u.jsx(H.Tooltip,{placement:"top",disabled:!!U||ds,title:"Help Center",children:u.jsx(F.ButtonIcon,{testId:"".concat(G,"_helpContent"),onClick:function(){return Te()},disabled:ds,size:"small",type:"tertiaryBg",children:u.jsx(w.HelpCenterIcon,{appId:te.app.id,helpContentUpdatedAt:te.help_content_updated_at})})}),!U||us||D.isInsideNewMobileApp?u.jsxs(u.Fragment,{children:[u.jsx(S,{menuItems:Ze,devCenterRouter:le,isMobileView:U}),u.jsx(A.NonPriorityMenus,{devCenterRouter:le,isMaximized:us,isMobileView:U,menuItems:$e,setIsFullscreenModalMode:Oe,setIsMaximized:as,toggleAppSettingsDialog:Vs})]}):u.jsx(g,{setIsMaximized:as})]})]})})}))})})};
|
|
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 { CommentsSwitchButton, CommentsSwitchProvider } from './components/CommentsSwitch';\n\nimport styles from './DevCenterAppContainer.scss';\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 {\n getAppName,\n getAppSegment,\n getTimestampFromQuery,\n isDCAppMultiRig,\n} 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 // [REACT-18-MIGRATION-TAG] PLT-3099: the platform's isolation decision, passed only by the\n // in-process branch of DevCenterIsolatedApp; iframe mounts leave it false.\n isNonIsolatedApp = false,\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 registerAITools,\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 appIsChiplessDashboard = !!dashboardMeta?.isChiplessDashboard;\n const isMultiRig = isDCAppMultiRig({\n uiSettings: application?.ui,\n isChiplessDashboard: appIsChiplessDashboard,\n });\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 <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 isNonIsolatedApp={isNonIsolatedApp}\n disableAppAssetSelection={disableAppAssetSelection}\n isMultiRig={isMultiRig}\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 globalOffsetWellsToken={dashboardMeta?.globalOffsetWellsToken}\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 registerAITools,\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 size=\"small\" type=\"tertiaryBg\" onClick={() => onReportBugClick()}>\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 );\n}\n\nexport default DevCenterAppContainer;\n"],"names":["isMobileView","isNativeDetected","isMobileDetected","PAGE_NAME","_ref","_appsData","_app$package","_app$package$manifest","_application$ui","_devCenterRouter$loca","_app$package2","_app$package2$manifes","_app$package2$manifes2","_app$package2$manifes3","_app$app","_appData$rig$id","_appData$rig","router","_router$location","_router$location$path","CLIAppComponent","CLIAppSettings","app","appId","className","coordinates","currentDashboardAppsLastAnnotations","currentUser","devCenterRouter","disableAppAssetSelection","isActionsDisabled","_ref$isNonIsolatedApp","isNonIsolatedApp","isSettingsDialogHidden","layoutEnvironment","_ref$onAppContainerCl","onAppContainerClick","noop","onAppRemove","onReportBugClick","onCloneDashboard","onHelpCenterClick","onIsMaximizedChange","onSettingChange","onSettingsChange","_ref$openIntercom","openIntercom","registerAITools","_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","appIsChiplessDashboard","isChiplessDashboard","isMultiRig","isDCAppMultiRig","uiSettings","ui","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","jsx","DevCenterRouterContext","Provider","value","children","DcFullscreenElemsCoordinatorProvider","AppCommonsProvider","maximized","setMaximized","appSettings","settings","appSettingsComponent","isInsideNewMobileApp","globalOffsetWells","globalOffsetWellsVersion","globalOffsetWellsToken","CommentsSwitchProvider","_jsxs","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","BugReport","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 { CommentsSwitchButton, CommentsSwitchProvider } from './components/CommentsSwitch';\n\nimport styles from './DevCenterAppContainer.scss';\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 {\n getAppName,\n getAppSegment,\n getTimestampFromQuery,\n isDCAppMultiRig,\n} 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 isBrowserFullscreen,\n enterBrowserFullscreen,\n exitBrowserFullscreen,\n isSeparateWindow,\n openSeparateWindow,\n closeSeparateWindow,\n setSeparateWindowTitle,\n // [REACT-18-MIGRATION-TAG] PLT-3099: the platform's isolation decision, passed only by the\n // in-process branch of DevCenterIsolatedApp; iframe mounts leave it false.\n isNonIsolatedApp = false,\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 registerAITools,\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 appIsChiplessDashboard = !!dashboardMeta?.isChiplessDashboard;\n const isMultiRig = isDCAppMultiRig({\n uiSettings: application?.ui,\n isChiplessDashboard: appIsChiplessDashboard,\n });\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 <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 isBrowserFullscreen={isBrowserFullscreen}\n enterBrowserFullscreen={enterBrowserFullscreen}\n exitBrowserFullscreen={exitBrowserFullscreen}\n isSeparateWindow={isSeparateWindow}\n openSeparateWindow={openSeparateWindow}\n closeSeparateWindow={closeSeparateWindow}\n setSeparateWindowTitle={setSeparateWindowTitle}\n isNonIsolatedApp={isNonIsolatedApp}\n disableAppAssetSelection={disableAppAssetSelection}\n isMultiRig={isMultiRig}\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 globalOffsetWellsToken={dashboardMeta?.globalOffsetWellsToken}\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 registerAITools,\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 size=\"small\" type=\"tertiaryBg\" onClick={() => onReportBugClick()}>\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 );\n}\n\nexport default DevCenterAppContainer;\n"],"names":["isMobileView","isNativeDetected","isMobileDetected","PAGE_NAME","_ref","_appsData","_app$package","_app$package$manifest","_application$ui","_devCenterRouter$loca","_app$package2","_app$package2$manifes","_app$package2$manifes2","_app$package2$manifes3","_app$app","_appData$rig$id","_appData$rig","router","_router$location","_router$location$path","CLIAppComponent","CLIAppSettings","app","appId","className","coordinates","currentDashboardAppsLastAnnotations","currentUser","devCenterRouter","disableAppAssetSelection","isActionsDisabled","isBrowserFullscreen","enterBrowserFullscreen","exitBrowserFullscreen","isSeparateWindow","openSeparateWindow","closeSeparateWindow","setSeparateWindowTitle","_ref$isNonIsolatedApp","isNonIsolatedApp","isSettingsDialogHidden","layoutEnvironment","_ref$onAppContainerCl","onAppContainerClick","noop","onAppRemove","onReportBugClick","onCloneDashboard","onHelpCenterClick","onIsMaximizedChange","onSettingChange","onSettingsChange","_ref$openIntercom","openIntercom","registerAITools","_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","appIsChiplessDashboard","isChiplessDashboard","isMultiRig","isDCAppMultiRig","uiSettings","ui","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","jsx","DevCenterRouterContext","Provider","value","children","DcFullscreenElemsCoordinatorProvider","AppCommonsProvider","maximized","setMaximized","appSettings","settings","appSettingsComponent","isInsideNewMobileApp","globalOffsetWells","globalOffsetWellsVersion","globalOffsetWellsToken","CommentsSwitchProvider","_jsxs","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","BugReport","HelpCenterIcon","helpContentUpdatedAt","help_content_updated_at","_Fragment","PriorityMenus","menuItems","NonPriorityMenus","FullscreenButton"],"mappings":"s5hBA2CA,IAAMA,EAAeC,EAAgBA,kBAAIC,mBACnCC,EAAY,wCAIlB,SAwCGC,GAAA,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EA1CgBC,GAAMC,GAAAC,GAGvBC,KAAAA,gBACAC,KAAAA,eACAC,KAAAA,IACAC,KAAAA,MACAC,KAAAA,UACAC,KAAAA,YACAC,KAAAA,oCACAC,KAAAA,YACAC,KAAAA,gBACAC,KAAAA,yBACAC,KAAAA,kBACAC,KAAAA,oBACAC,KAAAA,uBACAC,KAAAA,sBACAC,KAAAA,iBACAC,KAAAA,mBACAC,KAAAA,oBACAC,KAAAA,uBAAsBC,GAAAlC,EAGtBmC,iBAAAA,gBAAwBD,GACxBE,KAAAA,uBACAC,KAAAA,kBAAiBC,GAAAtC,EACjBuC,oBAAAA,eAAsBC,EAAIA,KAAAF,GAC1BG,KAAAA,YACAC,KAAAA,iBACAC,KAAAA,iBACAC,KAAAA,kBACAC,KAAAA,oBACAC,KAAAA,gBACAC,KAAAA,iBAAgBC,GAAAhD,EAChBiD,aAAAA,eAAeT,EAAIA,KAAAQ,GACnBE,KAAAA,gBAAeC,GAAAnD,EACfoD,yBAAAA,eAA2BZ,EAAIA,KAAAW,GAC/BE,KAAAA,UACAC,KAAAA,wCACAC,KAAAA,cAAaC,GAAAxD,EACbyD,UAAAA,oBAAYC,EAASF,GACrBG,KAAAA,YAEMC,GAAWC,aAAWC,GACtBC,GAAQC,EAAAA,WAC4BC,GAAAA,EAAQA,SAAC,IAAGC,GAAAC,EAAAA,QAAAC,GAAA,GAA/CC,GAAaH,GAAA,GAAEI,GAAgBJ,GAAA,GACcD,GAAAA,EAAQA,SAAC,IAAGM,GAAAJ,EAAAA,QAAAK,GAAA,GAAzDC,GAAkBF,GAAA,GAAEG,GAAqBH,GAAA,GAC1CI,GAAyC,QAAlC1E,EAAG2D,cAAAA,EAAAA,GAAWzC,IAASD,GAAI0D,WAAO,IAAA3E,EAAAA,EAAA,CAC7C4E,WAAW,GAEPC,WAAc5D,EAAAA,GAAI6D,sBAAJ,UAAA7E,EAAa8E,gBAAb,IAAA7E,SAAAA,EAAuB2E,YACrCG,GAAUC,gBAAchE,IACxBiE,KAA2B5B,WAAAA,GAAe6B,qBAC1CC,GAAaC,EAAAA,gBAAgB,CACjCC,WAAYT,cAAAA,EAAAA,GAAaU,GACzBJ,oBAAqBD,KAEjBM,KAAuBX,UAAe,QAAJ1E,EAAX0E,GAAaU,UAAE,IAAApF,IAAfA,EAAiBsF,iBACxCC,GAAUC,aAAW1E,IAC3B2E,GAAwCC,EAAgB,CACtDjD,oBAAAA,GACArB,gBAAAA,GACAL,MAAAA,KAHM4E,MAAAA,YAAaC,MAAAA,eAOfC,GAAe5C,IAAa6C,EAAAA,sBAAsB,QAAA1E,EAAAA,GAAgB2E,SAASC,aAAzB,IAAA/F,OAAA,EAAAA,EAAgC+F,OAClFC,GAAWnF,GAAI0D,KAAO0B,wBACtBC,GAAqBF,IAAYzG,SAAoByB,IAAW,GAAA,CAAEmF,EAAG,KAAOnF,GAC5EoF,GAAUC,gBAAcxF,IAE9ByF,GAIIC,EAAgB,CAClB5F,gBAAAA,GACAC,eAAAA,GACAC,IAAAA,GACAuF,QAAAA,KAPWI,MAAXhC,UACAiC,MAAAA,YACAC,MAAAA,aAQFC,GAA+DC,EAAe,CAC5E7D,yBAAAA,KADM8D,MAAAA,0BAA2BC,MAAAA,wBAGnCC,GAA2DC,IAAnDC,MAAAA,wBAAyBC,MAAAA,sBAE3B1C,GAAYgC,KAAiBtF,KAAiB8D,IAAcV,GAAQE,UAE1E2C,GACEC,EAAmB,CACjBvG,IAAAA,GACAyD,QAAAA,GACArD,oCAAAA,KAJIoG,MAAAA,kBAAmBC,MAAAA,eAAgBC,MAAAA,qBAAsBC,MAAAA,yBAO3DC,GAAkBC,EAAMA,OAC5BC,OAAKrD,GAAS,CAAC,OAAQ,MAAO,YAAa,QAAS,qBACpDsD,SAGIC,GAA+BC,EAAAA,SACnC,WAAA,OACE1D,cAAkB,EAAlBA,GAAoB2D,KAAI,SAAAC,GAAI,OAAAC,EAAAA,EAAA,CAAA,EACvBD,GAAI,CAAA,EAAA,CACPE,QAAS,WAAM,IAAAC,EACb,QAAAA,EAAAH,EAAKE,eAAL,IAAAC,GAAAA,EAAAC,KAAAJ,GACIA,EAAKK,IACPlH,GAAgBmH,KAAKN,EAAKK,GAE9B,GAAC,GACA,GACL,CAACjE,GAAoBjD,KAGjBoH,KAAwB1H,kBAAAA,EAAAA,GAAK6D,gCAALzE,EAAc0E,iCAAdzE,EAAwBuE,0BAAxB,UAAAtE,EAAqCgF,UAArC,IAAA/E,IAAAA,EAAyCoI,mBACjEC,KApHuBjI,OAAZA,GAoHmBW,KApHS,WAAhBX,GAAQsF,gBAAQ,IAAArF,IAAU,QAAVC,GAAhBD,GAAkBiI,gBAAQ,IAAAhI,KAA1BA,GAA4BiI,WAAW,UAuHpE,OACEC,EAAAC,IAACC,EAAsBA,uBAACC,SAAQ,CAACC,MAAO7H,GAAgB8H,SACtDL,MAACM,uCAAoC,CAACnG,yBAA0BA,GAAyBkG,SACvFL,MAACO,qBAAkBlB,EAAAA,EAAA,CACjBmB,UAAW1D,GACX2D,aAAc1D,GACd7E,MAAOD,UAAA,QAAGR,EAAHQ,GAAKA,WAAL,IAAAR,OAAG,EAAHA,EAAUkE,GACjB1D,IAAKA,GACLyI,YAAazI,GAAI0I,SACjB9G,gBAAiBA,GACjBC,iBAAkBA,GAClB6F,oBAAqBA,GACrBjH,oBAAqBA,GACrBC,uBAAwBA,GACxBC,sBAAuBA,GACvBC,iBAAkBA,GAClBC,mBAAoBA,GACpBC,oBAAqBA,GACrBC,uBAAwBA,GACxBE,iBAAkBA,GAClBV,yBAA0BA,GAC1B4D,WAAYA,GACZ9D,YAAaA,GACboD,QAASA,GACTtC,kBAAmBA,GACnBwH,qBAAsB/C,GACtBvD,cAAeA,GACfgE,sBAAuBM,GAA2BN,QAAwB7D,EAC1Ed,kBAAmBA,GACnB6B,mBAAoByD,GACpBzF,YAAaA,GACbqH,qBAAsBA,EAAqBA,qBAC3CC,kBAAmBxG,cAAAA,EAAAA,GAAewG,kBAClCC,yBAA0BzG,cAAAA,EAAAA,GAAeyG,yBACzCC,uBAAwB1G,cAAAA,EAAAA,GAAe0G,uBACvCxG,UAAWA,IACPqE,IAAe,GAAA,CAAAwB,SAEnBL,MAACiB,yBAAsB,CAAAZ,SACrBa,EAAAC,KAAA,MAAA,CACEhJ,UAAWiJ,EAAU,QACnB,mBACAP,EAAAA,sBAAwB,0CACxBhB,IAAoB,qCACpB1H,GAGA2E,IAAe,8BACfhC,GAAMuG,cAAgB,gCACtBC,EAAOC,WAET,cAAgBzK,GAAAA,OAAAA,cAAa4F,IAE7B4C,QAAS,WAAA,OAAMhG,IAAsB,EAAA+G,SAErC,CAAAL,EAAAA,IAACwB,EAAAA,eAAc,CAAA,GACfxB,EAAAC,IAAA,MAAA,CAAK9H,UAAWmJ,EAAOG,iBAAiBpB,SACtCL,MAAC0B,UAAgB,CACf5D,aAAcA,GACd7F,IAAKA,GACLyD,QAASmD,GACTjB,aAAcA,GACd+D,aAAcC,EAAkBA,mBAC9B3J,GAAI0J,aACJrJ,GAAYuJ,QAAQC,mBAEtB1E,SAAUA,GACVxB,UAAWA,GACXQ,WAAYA,GACZhD,kBAAmBA,GACnBY,aAAcA,GACdgC,QAASA,GACTkC,wBAAyBA,GACzB6D,SAAU,CACR3J,YAAakF,GACbhF,YAAAA,GACAC,gBAAAA,GACAsB,gBAAAA,GACAC,iBAAAA,GACAG,gBAAAA,GACA+B,QAAAA,GACA7B,yBAAAA,GACA4C,eAAAA,GACA1B,iBAAAA,GACAI,sBAAAA,GACAyC,wBAAAA,GAEA8D,eAAc3C,EAAA,CACZpH,IAAAA,GACAwG,kBAAAA,GACAiC,YAAazI,GAAI0I,SACjBvI,YAAakF,GACbhF,YAAAA,GACAwE,YAAAA,GACA1D,kBAAAA,GACAS,gBAAAA,GACAyE,sBAAAA,GACAjE,wCAAAA,IACGwE,IAELoD,SAAUrL,EAAgBA,iBAC1BwC,kBAAAA,GACAgB,UAAW4C,GACXtC,YAAAA,QAILuD,IACC+B,EAAAC,IAACiC,UAAiB,CAChBC,qBAAsBtE,GACtB5F,IAAKA,GACLyD,QAASA,GACTgB,QAASA,GACTpE,YAAaA,GACbE,yBAA0BA,GAC1B4D,WAAYA,GACZjD,uBAAwBA,GACxBC,kBAAmBA,GACnBI,YAAaA,GACbE,iBAAkBA,GAClBG,gBAAiBA,GACjBC,iBAAkBA,GAClBE,aAAcA,GACdoI,cAAK1K,UAAAC,EAAE+D,GAAQ2G,wBAAR1K,EAAagE,kBAAM,KAC1BvB,UAAW4C,GACXkB,wBAAyBA,KAG5BG,IACC2B,EAAAC,IAACqC,sBAAmB,CAAAjC,SAClBL,MAACuC,EAAe,CACdrK,MAAOD,GAAIA,IAAI0D,GACf+E,YAAazI,GAAI0I,SACjB6B,SAAU9F,GACVgC,eAAgBA,GAChB+D,QAAS9D,GACTrG,YAAaA,GACboK,QAASpE,GACTqE,wBAAyBA,EAAAA,4BAI9B7F,KAAgB6C,IACfK,EAAAA,IAAC4C,EAAoB,CAAC7F,eAAgBA,MAGtCtE,MAAuBkH,IAAuB/D,KAC9CsF,EAAAC,KAAC0B,EAAU,CAAAxC,SACR7D,CAAAA,IAAsBwD,EAAAC,IAAC6C,uBAAoB,CAACxK,YAAaA,KAEzDsG,IACCoB,EAAAC,IAAC8C,UAAO,CAACC,MAAM,iBAAiBC,UAAU,MAAMC,WAAYvM,EAAa0J,SACvEL,MAACmD,aAAU,CACTC,KAAK,QACLC,KAAK,aACL/D,QAAShB,GACTgF,OAAM,GAAAC,OAAKzM,EAA0B,kBAAAuJ,SAErCL,EAAAA,IAACwD,EAAc,QAKpB/J,KAAqB2D,IACpB4C,EAAAA,IAAC+C,EAAAA,QAAO,CAACC,MAAM,eAAeC,UAAU,MAAMC,WAAYvM,EAAa0J,SACrEL,MAACmD,aAAU,CAACC,KAAK,QAAQC,KAAK,aAAa/D,QAAS,WAAA,OAAM7F,IAAmB,EAAA4G,SAC3EL,EAAAA,IAACyD,EAAaC,UAAA,QAKpB1D,MAAC+C,UAAO,CACNE,UAAU,MACVC,WAAYvM,GAAgByG,GAC5B4F,MAAM,cAAa3C,SAEnBL,MAACmD,aAAU,CACTG,OAAM,GAAAC,OAAKzM,EAAwB,gBACnCwI,QAAS,WAAA,OAAM3F,IAAoB,EACnCuJ,SAAU9F,GACVgG,KAAK,QACLC,KAAK,aAAYhD,SAEjBL,MAAC2D,iBAAc,CACbzL,MAAOD,GAAIA,IAAI0D,GACfiI,qBAAsB3L,GAAI4L,+BAK/BlN,GAAiBmG,IAAgB+D,EAAoBA,qBAGpDK,EAAAC,KAAA2C,WAAA,CAAAzD,SAAA,CACEL,MAAC+D,EAAa,CACZC,UAAW5I,GACX7C,gBAAiBA,GACjB5B,aAAcA,IAEhBqJ,MAACiE,mBAAgB,CACf1L,gBAAiBA,GACjBuE,YAAaA,GACbnG,aAAcA,EACdqN,UAAWxI,GACXrB,yBAA0BA,GAC1B4C,eAAgBA,GAChBmB,wBAAyBA,QAf7B8B,EAAAC,IAACiE,EAAgB,CAACnH,eAAgBA,mBA2BtD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("@babel/runtime/helpers/defineProperty"),r=require("react");require("../../../../utils/index.js");var t=require("../../../../constants/devcenter.js");require("../../../../constants/goals.js"),require("../../../../constants/segment.js"),require("../../../../constants/alerts.js"),require("../../../../constants/apps.js"),require("../../../../constants/drillstring.js"),require("../../../../constants/completion.js"),require("../../../../constants/appPackages.js"),require("../../../../constants/notifications.js"),require("../../../../constants/feed.js"),require("../../../../constants/bha.js"),require("../../../../constants/corvaCompanyId.js"),require("lodash"),require("../../../GradientManager/configuration/constants.js");var n=require("../../../../utils/devcenter.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=s(e);function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?o(Object(t),!0).forEach((function(r){i.default(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}module.exports=function(e){var s=e.onIsMaximizedChange,
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/defineProperty"),r=require("react");require("../../../../utils/index.js");var t=require("../../../../constants/devcenter.js");require("../../../../constants/goals.js"),require("../../../../constants/segment.js"),require("../../../../constants/alerts.js"),require("../../../../constants/apps.js"),require("../../../../constants/drillstring.js"),require("../../../../constants/completion.js"),require("../../../../constants/appPackages.js"),require("../../../../constants/notifications.js"),require("../../../../constants/feed.js"),require("../../../../constants/bha.js"),require("../../../../constants/corvaCompanyId.js"),require("lodash"),require("../../../GradientManager/configuration/constants.js");var n=require("../../../../utils/devcenter.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=s(e);function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?o(Object(t),!0).forEach((function(r){i.default(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}module.exports=function(e){var s=e.onIsMaximizedChange,o=e.devCenterRouter,c=e.appId,u=void 0===c?t.DEV_CENTER_CLI_APP_ID:c,p=n.isAppMaximized(o.location.query,u);return r.useEffect((function(){null==s||s(p)}),[p]),{isMaximized:p,setIsMaximized:function(e){var r=o.location,t=r.pathname,s=a(a({},r.query),{},i.default({},n.MAXIMIZE_DC_PARAM,e?u:void 0));o.push({pathname:t,query:s})}}};
|
|
2
2
|
//# sourceMappingURL=useAppMaximized.js.map
|
package/cjs-bundle/components/DevCenter/DevCenterAppContainer/effects/useAppMaximized.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAppMaximized.js","sources":["../../../../../../src/components/DevCenter/DevCenterAppContainer/effects/useAppMaximized.js"],"sourcesContent":["import { useEffect } from 'react';\n\nimport { devcenter as devCenterUtils } from '~/utils';\nimport { DEV_CENTER_CLI_APP_ID } from '~/constants';\n\nexport default function useAppMaximized({\n onIsMaximizedChange,\n devCenterRouter,\n appId = DEV_CENTER_CLI_APP_ID,\n}) {\n const isMaximized = devCenterUtils.isAppMaximized(devCenterRouter.location.query, appId);\n const setIsMaximized = isAppMaximized => {\n const { pathname, query } = devCenterRouter.location;\n const newQuery = {\n ...query,\n
|
|
1
|
+
{"version":3,"file":"useAppMaximized.js","sources":["../../../../../../src/components/DevCenter/DevCenterAppContainer/effects/useAppMaximized.js"],"sourcesContent":["import { useEffect } from 'react';\n\nimport { devcenter as devCenterUtils } from '~/utils';\nimport { DEV_CENTER_CLI_APP_ID } from '~/constants';\n\nexport default function useAppMaximized({\n onIsMaximizedChange,\n devCenterRouter,\n appId = DEV_CENTER_CLI_APP_ID,\n}) {\n const isMaximized = devCenterUtils.isAppMaximized(devCenterRouter.location.query, appId);\n const setIsMaximized = isAppMaximized => {\n const { pathname, query } = devCenterRouter.location;\n const newQuery = {\n ...query,\n [devCenterUtils.MAXIMIZE_DC_PARAM]: isAppMaximized ? appId : undefined,\n };\n\n devCenterRouter.push({\n pathname,\n query: newQuery,\n });\n };\n\n useEffect(() => {\n onIsMaximizedChange?.(isMaximized);\n }, [isMaximized]);\n\n return {\n isMaximized,\n setIsMaximized,\n };\n}\n"],"names":["_ref","onIsMaximizedChange","devCenterRouter","_ref$appId","appId","DEV_CENTER_CLI_APP_ID","isMaximized","devCenterUtils","location","query","useEffect","setIsMaximized","isAppMaximized","pathname","newQuery","_objectSpread","_defineProperty","undefined","push"],"mappings":"08CAKe,SAIZA,GAAA,IAHDC,IAAAA,oBACAC,IAAAA,gBAAeC,EAAAH,EACfI,MAAAA,aAAQC,EAAAA,sBAAqBF,EAEvBG,EAAcC,EAAAA,eAA8BL,EAAgBM,SAASC,MAAOL,GAkBlF,OAJAM,EAAAA,WAAU,WACRT,SAAAA,EAAsBK,EACxB,GAAG,CAACA,IAEG,CACLA,YAAAA,EACAK,eAnBqB,SAAAC,GACrB,IAA4BV,EAAAA,EAAgBM,SAApCK,IAAAA,SACFC,EAAQC,EAAAA,EAAA,CAAA,IADIN,OAER,CAAA,EAAAO,EAAAA,QAAA,CAAA,EACPT,EAAAA,kBAAmCK,EAAiBR,OAAQa,IAG/Df,EAAgBgB,KAAK,CACnBL,SAAAA,EACAJ,MAAOK,KAYb"}
|
package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),n=require("@babel/runtime/helpers/slicedToArray"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),n=require("@babel/runtime/helpers/slicedToArray"),r=require("@babel/runtime/helpers/objectWithoutProperties"),t=require("react"),o=require("react-dom"),i=require("classnames"),a=require("react-router-dom"),s=require("lodash"),u=require("query-string"),p=require("prop-types"),l=require("./IsolatedPage.js"),d=require("./constants.js"),c=require("./useFullscreenModes.js"),f=require("./DevCenterIsolatedApp.module.scss.js"),v=require("../AppContext.js"),C=require("../../../permissions/PermissionsContext.js");require("../../../permissions/constants/index.js"),require("../../../permissions/withPermissionsHOC.js"),require("@babel/runtime/helpers/asyncToGenerator"),require("@babel/runtime/regenerator"),require("../../../clients/jsonApi/index.js"),require("../../../permissions/ProvidePermissions.js");var m=require("../../../utils/index.js");require("../AppHeader/AppHeader.js"),require("../AppSideBar/AppSideBar.js"),require("../AppsDataProvider/AppsDataProvider.js");var b=require("../DevCenterAppContainer/DevCenterAppContainer.js");require("../NavigationBar/NavigationBar.js"),require("../SideBar/SideBar.js"),require("../AppSettingsPopover/AppSettingsPopover.js"),require("../AppFilterPanelLayout/AppFilterPanelLayout.js"),require("../DevCenterRouterContext/DevCenterRouterContext.js"),require("../DevCenterRouterContext/UniversalLink/UniversalLink.js");var A=require("react/jsx-runtime");require("./DevCenterIsolatedAppPage.js");var g=require("../DevCenterAppContainer/utils.js"),h=require("../../../utils/mobileDetect.js"),j=require("../../../utils/devcenter.js");function q(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var y=q(e),x=q(n),I=q(r),M=q(i),w=q(u),S=q(p),R=["isIsolationFeatureEnabled","onAppFullscreenTransparentMode","onIsMaximizedChange","onInnerContainerMouseEnter","onInnerContainerMouseLeave","onAppContainerClick","setInnerContainerRefFn","onAppRemove","onSettingChange","onSettingsChange","updateCurrentDashboardAppLastAnnotation","apiRateLimiterConfig","trackApiRateLimiterException"];function P(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function E(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?P(Object(r),!0).forEach((function(n){y.default(e,n,r[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):P(Object(r)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))}))}return e}var L={};function D(e){var n,r,i,a,u,p,q,y=e.isIsolationFeatureEnabled,S=void 0!==y&&y,P=e.onAppFullscreenTransparentMode,D=void 0===P?s.noop:P,F=e.onIsMaximizedChange,O=void 0===F?s.noop:F,T=e.onInnerContainerMouseEnter,_=void 0===T?s.noop:T,k=e.onInnerContainerMouseLeave,B=void 0===k?s.noop:k,W=e.onAppContainerClick,z=void 0===W?s.noop:W,U=e.setInnerContainerRefFn,N=void 0===U?s.noop:U,H=e.onAppRemove,V=void 0===H?void 0:H,G=e.onSettingChange,J=void 0===G?s.noop:G,K=e.onSettingsChange,Q=void 0===K?s.noop:K,X=e.updateCurrentDashboardAppLastAnnotation,Y=void 0===X?s.noop:X,Z=e.apiRateLimiterConfig,$=void 0===Z?L:Z,ee=e.trackApiRateLimiterException,ne=I.default(e,R),re=t.useMemo((function(){return j.createDevCenterRouter(ne.history)}),[null===(n=ne.history)||void 0===n?void 0:n.location]),te=j.isCorvaApp(null==ne||null===(r=ne.app)||void 0===r?void 0:r.app)&&!j.isIsolationEnabledInPackageManifest(null==ne||null===(i=ne.app)||void 0===i?void 0:i.package)||!S,oe=te?b:l.IsolatedPage,ie=null===(a=ne.app)||void 0===a||null===(u=a.app)||void 0===u?void 0:u.app_key,ae=g.getAppVersion(ne.app),se="".concat(ie,"-").concat(ae),ue=t.useRef(),pe=t.useRef(),le=t.useRef(),de=t.useRef(!1),ce=t.useRef(!1),fe=j.isAppMaximized(w.default.parse(null===(p=ne.history)||void 0===p||null===(q=p.location)||void 0===q?void 0:q.search),ne.app.id),ve=t.useRef(fe);ve.current=fe;var Ce=t.useState(m.getUserUnits()),me=x.default(Ce,2),be=me[0],Ae=me[1];t.useEffect((function(){var e=m.subscribeForUserUnitsUpdates((function(e){return Ae(e)}));return function(){return e()}}),[]);var ge=t.useContext(v),he=C.default();function je(){D({appId:ne.app.id,isModeEnabled:!1}),document.body.classList.remove("dc-isolated-app__body-overflow",f.compensateScroll)}var qe=t.useCallback((function(e){var n,r,t,i,a,s=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!S||te||ve.current&&!de.current||de.current===e){var u;s&&ce.current!==s&&(ce.current=s,null===(u=pe.current)||void 0===u||u.classList.add(f.containerMaximizedTransparentModal))}else{var p,c=e?"add":"remove";if(null===(n=pe.current)||void 0===n||n.classList[c](f.containerMaximizedTransparent),s||"remove"===c)null===(p=pe.current)||void 0===p||p.classList[c](f.containerMaximizedTransparentModal);ue.current=null===(r=pe.current)||void 0===r||null===(t=r.querySelector("[".concat(l.APP_IFRAME_ATTRIBUTE,"]")))||void 0===t||null===(i=t.contentWindow)||void 0===i?void 0:i.document;var v=null===(a=ue.current)||void 0===a?void 0:a.getElementById(d.ISOLATED_PAGE_APP_CONTAINER_ID);if(v){if(e){var C=le.current.getBoundingClientRect(),m=C.top,b=C.left,A=C.width,g=C.height,h=window.innerWidth!==document.body.clientWidth;o.flushSync((function(){D({appId:ne.app.id,isModeEnabled:!0})})),v.setAttribute("style","\n top: ".concat(m,"px;\n left: ").concat(b,"px;\n width: ").concat(A,"px;\n height: ").concat(g,"px;\n position: absolute;\n ")),document.body.classList.add("dc-isolated-app__body-overflow",h&&f.compensateScroll)}else o.flushSync((function(){D({appId:ne.app.id,isModeEnabled:!1})})),v.setAttribute("style",""),document.body.classList.remove("dc-isolated-app__body-overflow",f.compensateScroll);de.current=e,ce.current=s}}}),[S,te,ve]);t.useEffect((function(){return je}),[]),t.useEffect((function(){fe&&de.current&&qe(!1)}),[fe]);var ye=c.useFullscreenModes({containerRef:le,appInstanceId:ne.app.id,isMaximized:fe}),xe=ye.isBrowserFullscreen,Ie=ye.enterBrowserFullscreen,Me=ye.exitBrowserFullscreen,we=ye.isSeparateWindow,Se=ye.openSeparateWindow,Re=ye.closeSeparateWindow,Pe=ye.setSeparateWindowTitle,Ee=t.useCallback((function(e){pe.current=e,N(e)}),[]);return A.jsx("div",{className:M.default("dc-isolated-app",f.fixedSizeContainer),ref:le,children:A.jsx("div",{ref:Ee,onMouseEnter:_,onMouseLeave:B,"data-testid":"".concat("DevCenter_AppContainer","_").concat(ne.app.app.name),className:M.default(f.container,h.isInsideNewMobileApp&&f.newMobileAppContainer,fe&&f.containerMaximized),children:A.jsx(oe,E(E({},ne),{},{isBrowserFullscreen:xe,enterBrowserFullscreen:Ie,exitBrowserFullscreen:Me,isSeparateWindow:we,openSeparateWindow:Se,closeSeparateWindow:Re,setSeparateWindowTitle:Pe,isNonIsolatedApp:te,appContextValue:ge,devCenterRouter:re,globalNotificationToastsAPI:window[Symbol.for("notificationToasts")],globalMixpanelEventTracker:window[Symbol.for("logToMixpanel")],onAppContainerClick:z,onAppRemove:V,onIsMaximizedChange:O,onSettingChange:J,onSettingsChange:Q,permissionsContextValue:he,setIsFullscreenModalMode:qe,userUnits:be,trackApiRateLimiterException:ee,updateCurrentDashboardAppLastAnnotation:Y,apiRateLimiterConfig:$}),se)})})}D.propTypes={app:S.default.shape({id:S.default.number,app:S.default.shape({name:S.default.string})}).isRequired,currentUser:S.default.shape({}).isRequired,isIsolationFeatureEnabled:S.default.bool,onAppContainerClick:S.default.func,onAppFullscreenTransparentMode:S.default.func,onAppRemove:S.default.func,onInnerContainerMouseEnter:S.default.func,onInnerContainerMouseLeave:S.default.func,onIsMaximizedChange:S.default.func,onSettingChange:S.default.func,onSettingsChange:S.default.func,setInnerContainerRefFn:S.default.func,updateCurrentDashboardAppLastAnnotation:S.default.func,apiRateLimiterConfig:S.default.object};var F=a.withRouter(D);exports.DevCenterIsolatedApp=F;
|
|
2
2
|
//# sourceMappingURL=DevCenterIsolatedApp.js.map
|
package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevCenterIsolatedApp.js","sources":["../../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js"],"sourcesContent":["import { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { flushSync } from 'react-dom';\nimport classNames from 'classnames';\nimport { withRouter } from 'react-router-dom';\nimport { noop } from 'lodash';\nimport queryString from 'query-string';\nimport PropTypes from 'prop-types';\n\nimport { APP_IFRAME_ATTRIBUTE, IsolatedPage } from './IsolatedPage';\nimport { ISOLATED_PAGE_APP_CONTAINER_ID } from './constants';\n\nimport styles from './DevCenterIsolatedApp.module.scss';\n\nimport AppContext from '~/components/DevCenter/AppContext';\nimport { usePermissionsContext } from '~/permissions';\nimport { devcenter as devCenterUtils, getUserUnits, subscribeForUserUnitsUpdates } from '~/utils';\nimport { DevCenterAppContainer } from '~/components/DevCenter';\nimport { getAppVersion } from '~/components/DevCenter/DevCenterAppContainer/utils';\nimport { isInsideNewMobileApp } from '~/utils/mobileDetect';\n\nconst PAGE_NAME = 'DevCenter_AppContainer';\nconst DEFAULT_API_RATE_LIMITER_CONFIG = {};\n\nfunction DevCenterIsolatedAppComponent({\n isIsolationFeatureEnabled = false,\n onAppFullscreenTransparentMode = noop,\n onIsMaximizedChange = noop,\n onInnerContainerMouseEnter = noop,\n onInnerContainerMouseLeave = noop,\n onAppContainerClick = noop,\n setInnerContainerRefFn = noop,\n onAppRemove = undefined,\n onSettingChange = noop,\n onSettingsChange = noop,\n updateCurrentDashboardAppLastAnnotation = noop,\n apiRateLimiterConfig = DEFAULT_API_RATE_LIMITER_CONFIG,\n trackApiRateLimiterException,\n ...props\n}) {\n const devCenterRouter = useMemo(\n () => devCenterUtils.createDevCenterRouter(props.history),\n [props.history?.location]\n );\n\n const isNonIsolatedApp =\n (devCenterUtils.isCorvaApp(props?.app?.app) &&\n !devCenterUtils.isIsolationEnabledInPackageManifest(props?.app?.package)) ||\n !isIsolationFeatureEnabled;\n\n const DCAppComponent = isNonIsolatedApp ? DevCenterAppContainer : IsolatedPage;\n\n // Key to force iframe recreation when app version changes.\n // This ensures global dependencies are re-initialized for the new version.\n const appKey = props.app?.app?.app_key;\n const appVersion = getAppVersion(props.app);\n const iframeKey = `${appKey}-${appVersion}`;\n\n const appIframeDocument = useRef();\n const containerRef = useRef();\n const fixedSizeContainerRef = useRef();\n const fullscreenModeRef = useRef(false);\n const fullscreenModalModeRef = useRef(false);\n\n const isAppMaximized = devCenterUtils.isAppMaximized(\n queryString.parse(props.history?.location?.search),\n props.app.id\n );\n\n // save to ref to not re-create setIsFullscreenModalMode callback on change and reduce the amoount of DC apps re-renders\n const isAppMaximizedRef = useRef(isAppMaximized);\n isAppMaximizedRef.current = isAppMaximized;\n\n const [userUnits, setUserUnits] = useState(getUserUnits());\n\n useEffect(() => {\n const unsubscribeFn = subscribeForUserUnitsUpdates(newUserUnits => setUserUnits(newUserUnits));\n\n return () => unsubscribeFn();\n }, []);\n\n const appContextValue = useContext(AppContext);\n const permissionsContextValue = usePermissionsContext();\n\n /*\n What is fullscreen modal mode?\n\n Our apps, are shown in isolated iFrames. Because of it, when an app has some modal\n and opens it - it's opened inside of its iframe, instead of opening at the center of the screen.\n\n To make app modals & other elements be opened at the center of the screen, as if they are not inside of an iframe,\n we use some hacks.\n\n When the app wants to open a fullscreen element, we make its iframe fullscreen, but with transparent background,\n and we set width/height & position of that app iframe to inner app container that is located inside of the iframe.\n So when iframe's fullscreen element is opened, it looks like it's a part of the platform, and the app which shows the element, looks like\n usual, not in fullscreen\n\n So the platform provides this setIsFullscreenModalMode function to DC apps.\n When DC app wants to open a modal that should be opened at the center of the screen - it needs to\n call setIsFullscreenModalMode(true) first. And when it closes the modal - setIsFullscreenModalMode(false)\n\n Two things are important about this\n - all these styles that make this invisible background work should be applied at once\n - enter and exit from the mode, shouldn't trigger even a single re-render, as it may impact\n some elements inside the DC app\n\n There's a second parameter to `setIsFullscreenModalMode`: `isModal`. It should be used when a fullscreen overlay is displayed\n (Modal, for instance) that should cover everything on screen.\n\n What it does - it basically sets the stretched element's z-index to a very high value, so it covers every other UI element in CWF\n */\n\n function handleAppFullscreenTransparentModeExit() {\n onAppFullscreenTransparentMode({ appId: props.app.id, isModeEnabled: false });\n document.body.classList.remove('dc-isolated-app__body-overflow', styles.compensateScroll);\n }\n\n const setIsFullscreenModalMode = useCallback(\n function setIsFullscreenModalMode(nextIsFullscreenModalModeValue, isModal = false) {\n // When an app is already in fullscreen mode, no need to use this\n // invisible fullscreen mode to make elements take the whole screen\n if (\n !isIsolationFeatureEnabled ||\n isNonIsolatedApp ||\n (isAppMaximizedRef.current && !fullscreenModeRef.current) ||\n fullscreenModeRef.current === nextIsFullscreenModalModeValue\n ) {\n // Adding modal class if modal is opened when non-modal is already open\n if (isModal && fullscreenModalModeRef.current !== isModal) {\n fullscreenModalModeRef.current = isModal;\n containerRef.current?.classList.add(styles.containerMaximizedTransparentModal);\n }\n\n return;\n }\n\n const classesEditMethod = nextIsFullscreenModalModeValue ? 'add' : 'remove';\n\n containerRef.current?.classList[classesEditMethod](styles.containerMaximizedTransparent);\n\n if (isModal || classesEditMethod === 'remove') {\n containerRef.current?.classList[classesEditMethod](\n styles.containerMaximizedTransparentModal\n );\n }\n\n appIframeDocument.current = containerRef.current?.querySelector(\n `[${APP_IFRAME_ATTRIBUTE}]`\n )?.contentWindow?.document;\n\n const isolatedPageAppContainer = appIframeDocument.current?.getElementById(\n ISOLATED_PAGE_APP_CONTAINER_ID\n );\n\n if (!isolatedPageAppContainer) {\n return;\n }\n\n if (nextIsFullscreenModalModeValue) {\n // 1. BATCH ALL READS FIRST - prevents layout thrashing\n const { top, left, width, height } = fixedSizeContainerRef.current.getBoundingClientRect();\n const isBodyScrollVisible = window.innerWidth !== document.body.clientWidth;\n\n // 2. Flush React state updates synchronously to prevent deferred renders\n flushSync(() => {\n onAppFullscreenTransparentMode({ appId: props.app.id, isModeEnabled: true });\n });\n\n // 3. BATCH ALL DOM WRITES - after reads and React flush\n isolatedPageAppContainer.setAttribute(\n 'style',\n `\n top: ${top}px;\n left: ${left}px;\n width: ${width}px;\n height: ${height}px;\n position: absolute;\n `\n );\n document.body.classList.add(\n 'dc-isolated-app__body-overflow',\n isBodyScrollVisible && styles.compensateScroll\n );\n } else {\n // Flush React state updates synchronously before DOM writes\n flushSync(() => {\n onAppFullscreenTransparentMode({ appId: props.app.id, isModeEnabled: false });\n });\n\n // DOM writes after React flush\n isolatedPageAppContainer.setAttribute('style', '');\n document.body.classList.remove('dc-isolated-app__body-overflow', styles.compensateScroll);\n }\n fullscreenModeRef.current = nextIsFullscreenModalModeValue;\n fullscreenModalModeRef.current = isModal;\n },\n [isIsolationFeatureEnabled, isNonIsolatedApp, isAppMaximizedRef]\n );\n\n useEffect(() => {\n return handleAppFullscreenTransparentModeExit;\n }, []);\n\n useEffect(() => {\n if (isAppMaximized && fullscreenModeRef.current) {\n setIsFullscreenModalMode(false);\n }\n }, [isAppMaximized]);\n\n /**\n * This should be the same function as calling react-intersection-observer's ref setter actually triggers re-render.\n * Which in its turn causes infinite re-render loop.\n */\n const setContainerRefs = useCallback(node => {\n containerRef.current = node;\n setInnerContainerRefFn(node);\n }, []);\n\n return (\n <div\n className={classNames('dc-isolated-app', styles.fixedSizeContainer)}\n ref={fixedSizeContainerRef}\n >\n <div\n ref={setContainerRefs}\n onMouseEnter={onInnerContainerMouseEnter}\n onMouseLeave={onInnerContainerMouseLeave}\n data-testid={`${PAGE_NAME}_${props.app.app.name}`}\n className={classNames(\n styles.container,\n isInsideNewMobileApp && styles.newMobileAppContainer,\n isAppMaximized && styles.containerMaximized\n )}\n >\n <DCAppComponent\n key={iframeKey}\n {...props}\n isNonIsolatedApp={isNonIsolatedApp}\n appContextValue={appContextValue}\n devCenterRouter={devCenterRouter}\n globalNotificationToastsAPI={window[Symbol.for('notificationToasts')]}\n globalMixpanelEventTracker={window[Symbol.for('logToMixpanel')]}\n onAppContainerClick={onAppContainerClick}\n onAppRemove={onAppRemove}\n onIsMaximizedChange={onIsMaximizedChange}\n onSettingChange={onSettingChange}\n onSettingsChange={onSettingsChange}\n permissionsContextValue={permissionsContextValue}\n setIsFullscreenModalMode={setIsFullscreenModalMode}\n userUnits={userUnits}\n trackApiRateLimiterException={trackApiRateLimiterException}\n updateCurrentDashboardAppLastAnnotation={updateCurrentDashboardAppLastAnnotation}\n apiRateLimiterConfig={apiRateLimiterConfig}\n />\n </div>\n </div>\n );\n}\n\nDevCenterIsolatedAppComponent.propTypes = {\n app: PropTypes.shape({\n id: PropTypes.number,\n app: PropTypes.shape({\n name: PropTypes.string,\n }),\n }).isRequired,\n currentUser: PropTypes.shape({}).isRequired,\n isIsolationFeatureEnabled: PropTypes.bool,\n onAppContainerClick: PropTypes.func,\n onAppFullscreenTransparentMode: PropTypes.func,\n onAppRemove: PropTypes.func,\n onInnerContainerMouseEnter: PropTypes.func,\n onInnerContainerMouseLeave: PropTypes.func,\n onIsMaximizedChange: PropTypes.func,\n onSettingChange: PropTypes.func,\n onSettingsChange: PropTypes.func,\n setInnerContainerRefFn: PropTypes.func,\n updateCurrentDashboardAppLastAnnotation: PropTypes.func,\n apiRateLimiterConfig: PropTypes.object,\n};\n\nexport const DevCenterIsolatedApp = withRouter(DevCenterIsolatedAppComponent);\n"],"names":["DEFAULT_API_RATE_LIMITER_CONFIG","DevCenterIsolatedAppComponent","_ref","_props$history","_props$app","_props$app2","_props$app3","_props$app3$app","_props$history2","_props$history2$locat","_ref$isIsolationFeatu","isIsolationFeatureEnabled","_ref$onAppFullscreenT","onAppFullscreenTransparentMode","noop","_ref$onIsMaximizedCha","onIsMaximizedChange","_ref$onInnerContainer","onInnerContainerMouseEnter","_ref$onInnerContainer2","onInnerContainerMouseLeave","_ref$onAppContainerCl","onAppContainerClick","_ref$setInnerContaine","setInnerContainerRefFn","_ref$onAppRemove","onAppRemove","undefined","_ref$onSettingChange","onSettingChange","_ref$onSettingsChange","onSettingsChange","_ref$updateCurrentDas","updateCurrentDashboardAppLastAnnotation","_ref$apiRateLimiterCo","apiRateLimiterConfig","trackApiRateLimiterException","props","_objectWithoutProperties","_excluded","devCenterRouter","useMemo","devCenterUtils","createDevCenterRouter","history","location","isNonIsolatedApp","isCorvaApp","app","package","DCAppComponent","DevCenterAppContainer","IsolatedPage","appKey","app_key","appVersion","getAppVersion","iframeKey","concat","appIframeDocument","useRef","containerRef","fixedSizeContainerRef","fullscreenModeRef","fullscreenModalModeRef","isAppMaximized","queryString","parse","search","id","isAppMaximizedRef","current","_useState","useState","getUserUnits","_useState2","_slicedToArray","userUnits","setUserUnits","useEffect","unsubscribeFn","subscribeForUserUnitsUpdates","newUserUnits","appContextValue","useContext","AppContext","permissionsContextValue","usePermissionsContext","handleAppFullscreenTransparentModeExit","appId","isModeEnabled","document","body","classList","remove","styles","compensateScroll","setIsFullscreenModalMode","useCallback","nextIsFullscreenModalModeValue","_containerRef$current2","_containerRef$current4","_containerRef$current5","_containerRef$current6","_appIframeDocument$cu","isModal","_containerRef$current","add","containerMaximizedTransparentModal","_containerRef$current3","classesEditMethod","containerMaximizedTransparent","querySelector","APP_IFRAME_ATTRIBUTE","contentWindow","isolatedPageAppContainer","getElementById","ISOLATED_PAGE_APP_CONTAINER_ID","_fixedSizeContainerRe","getBoundingClientRect","top","left","width","height","isBodyScrollVisible","window","innerWidth","clientWidth","flushSync","setAttribute","setContainerRefs","node","_jsx","className","classNames","fixedSizeContainer","ref","children","jsx","onMouseEnter","onMouseLeave","PAGE_NAME","name","container","isInsideNewMobileApp","newMobileAppContainer","containerMaximized","_objectSpread","globalNotificationToastsAPI","Symbol","for","globalMixpanelEventTracker","propTypes","PropTypes","shape","number","string","isRequired","currentUser","bool","func","object","DevCenterIsolatedApp","withRouter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DevCenterIsolatedApp.js","sources":["../../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js"],"sourcesContent":["import { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { flushSync } from 'react-dom';\nimport classNames from 'classnames';\nimport { withRouter } from 'react-router-dom';\nimport { noop } from 'lodash';\nimport queryString from 'query-string';\nimport PropTypes from 'prop-types';\n\nimport { APP_IFRAME_ATTRIBUTE, IsolatedPage } from './IsolatedPage';\nimport { ISOLATED_PAGE_APP_CONTAINER_ID } from './constants';\nimport { useFullscreenModes } from './useFullscreenModes';\n\nimport styles from './DevCenterIsolatedApp.module.scss';\n\nimport AppContext from '~/components/DevCenter/AppContext';\nimport { usePermissionsContext } from '~/permissions';\nimport { devcenter as devCenterUtils, getUserUnits, subscribeForUserUnitsUpdates } from '~/utils';\nimport { DevCenterAppContainer } from '~/components/DevCenter';\nimport { getAppVersion } from '~/components/DevCenter/DevCenterAppContainer/utils';\nimport { isInsideNewMobileApp } from '~/utils/mobileDetect';\n\nconst PAGE_NAME = 'DevCenter_AppContainer';\nconst DEFAULT_API_RATE_LIMITER_CONFIG = {};\n\nfunction DevCenterIsolatedAppComponent({\n isIsolationFeatureEnabled = false,\n onAppFullscreenTransparentMode = noop,\n onIsMaximizedChange = noop,\n onInnerContainerMouseEnter = noop,\n onInnerContainerMouseLeave = noop,\n onAppContainerClick = noop,\n setInnerContainerRefFn = noop,\n onAppRemove = undefined,\n onSettingChange = noop,\n onSettingsChange = noop,\n updateCurrentDashboardAppLastAnnotation = noop,\n apiRateLimiterConfig = DEFAULT_API_RATE_LIMITER_CONFIG,\n trackApiRateLimiterException,\n ...props\n}) {\n const devCenterRouter = useMemo(\n () => devCenterUtils.createDevCenterRouter(props.history),\n [props.history?.location]\n );\n\n const isNonIsolatedApp =\n (devCenterUtils.isCorvaApp(props?.app?.app) &&\n !devCenterUtils.isIsolationEnabledInPackageManifest(props?.app?.package)) ||\n !isIsolationFeatureEnabled;\n\n const DCAppComponent = isNonIsolatedApp ? DevCenterAppContainer : IsolatedPage;\n\n // Key to force iframe recreation when app version changes.\n // This ensures global dependencies are re-initialized for the new version.\n const appKey = props.app?.app?.app_key;\n const appVersion = getAppVersion(props.app);\n const iframeKey = `${appKey}-${appVersion}`;\n\n const appIframeDocument = useRef();\n const containerRef = useRef();\n const fixedSizeContainerRef = useRef();\n const fullscreenModeRef = useRef(false);\n const fullscreenModalModeRef = useRef(false);\n\n const isAppMaximized = devCenterUtils.isAppMaximized(\n queryString.parse(props.history?.location?.search),\n props.app.id\n );\n\n // save to ref to not re-create setIsFullscreenModalMode callback on change and reduce the amoount of DC apps re-renders\n const isAppMaximizedRef = useRef(isAppMaximized);\n isAppMaximizedRef.current = isAppMaximized;\n\n const [userUnits, setUserUnits] = useState(getUserUnits());\n\n useEffect(() => {\n const unsubscribeFn = subscribeForUserUnitsUpdates(newUserUnits => setUserUnits(newUserUnits));\n\n return () => unsubscribeFn();\n }, []);\n\n const appContextValue = useContext(AppContext);\n const permissionsContextValue = usePermissionsContext();\n\n /*\n What is fullscreen modal mode?\n\n Our apps, are shown in isolated iFrames. Because of it, when an app has some modal\n and opens it - it's opened inside of its iframe, instead of opening at the center of the screen.\n\n To make app modals & other elements be opened at the center of the screen, as if they are not inside of an iframe,\n we use some hacks.\n\n When the app wants to open a fullscreen element, we make its iframe fullscreen, but with transparent background,\n and we set width/height & position of that app iframe to inner app container that is located inside of the iframe.\n So when iframe's fullscreen element is opened, it looks like it's a part of the platform, and the app which shows the element, looks like\n usual, not in fullscreen\n\n So the platform provides this setIsFullscreenModalMode function to DC apps.\n When DC app wants to open a modal that should be opened at the center of the screen - it needs to\n call setIsFullscreenModalMode(true) first. And when it closes the modal - setIsFullscreenModalMode(false)\n\n Two things are important about this\n - all these styles that make this invisible background work should be applied at once\n - enter and exit from the mode, shouldn't trigger even a single re-render, as it may impact\n some elements inside the DC app\n\n There's a second parameter to `setIsFullscreenModalMode`: `isModal`. It should be used when a fullscreen overlay is displayed\n (Modal, for instance) that should cover everything on screen.\n\n What it does - it basically sets the stretched element's z-index to a very high value, so it covers every other UI element in CWF\n */\n\n function handleAppFullscreenTransparentModeExit() {\n onAppFullscreenTransparentMode({ appId: props.app.id, isModeEnabled: false });\n document.body.classList.remove('dc-isolated-app__body-overflow', styles.compensateScroll);\n }\n\n const setIsFullscreenModalMode = useCallback(\n function setIsFullscreenModalMode(nextIsFullscreenModalModeValue, isModal = false) {\n // When an app is already in fullscreen mode, no need to use this\n // invisible fullscreen mode to make elements take the whole screen\n if (\n !isIsolationFeatureEnabled ||\n isNonIsolatedApp ||\n (isAppMaximizedRef.current && !fullscreenModeRef.current) ||\n fullscreenModeRef.current === nextIsFullscreenModalModeValue\n ) {\n // Adding modal class if modal is opened when non-modal is already open\n if (isModal && fullscreenModalModeRef.current !== isModal) {\n fullscreenModalModeRef.current = isModal;\n containerRef.current?.classList.add(styles.containerMaximizedTransparentModal);\n }\n\n return;\n }\n\n const classesEditMethod = nextIsFullscreenModalModeValue ? 'add' : 'remove';\n\n containerRef.current?.classList[classesEditMethod](styles.containerMaximizedTransparent);\n\n if (isModal || classesEditMethod === 'remove') {\n containerRef.current?.classList[classesEditMethod](\n styles.containerMaximizedTransparentModal\n );\n }\n\n appIframeDocument.current = containerRef.current?.querySelector(\n `[${APP_IFRAME_ATTRIBUTE}]`\n )?.contentWindow?.document;\n\n const isolatedPageAppContainer = appIframeDocument.current?.getElementById(\n ISOLATED_PAGE_APP_CONTAINER_ID\n );\n\n if (!isolatedPageAppContainer) {\n return;\n }\n\n if (nextIsFullscreenModalModeValue) {\n // 1. BATCH ALL READS FIRST - prevents layout thrashing\n const { top, left, width, height } = fixedSizeContainerRef.current.getBoundingClientRect();\n const isBodyScrollVisible = window.innerWidth !== document.body.clientWidth;\n\n // 2. Flush React state updates synchronously to prevent deferred renders\n flushSync(() => {\n onAppFullscreenTransparentMode({ appId: props.app.id, isModeEnabled: true });\n });\n\n // 3. BATCH ALL DOM WRITES - after reads and React flush\n isolatedPageAppContainer.setAttribute(\n 'style',\n `\n top: ${top}px;\n left: ${left}px;\n width: ${width}px;\n height: ${height}px;\n position: absolute;\n `\n );\n document.body.classList.add(\n 'dc-isolated-app__body-overflow',\n isBodyScrollVisible && styles.compensateScroll\n );\n } else {\n // Flush React state updates synchronously before DOM writes\n flushSync(() => {\n onAppFullscreenTransparentMode({ appId: props.app.id, isModeEnabled: false });\n });\n\n // DOM writes after React flush\n isolatedPageAppContainer.setAttribute('style', '');\n document.body.classList.remove('dc-isolated-app__body-overflow', styles.compensateScroll);\n }\n fullscreenModeRef.current = nextIsFullscreenModalModeValue;\n fullscreenModalModeRef.current = isModal;\n },\n [isIsolationFeatureEnabled, isNonIsolatedApp, isAppMaximizedRef]\n );\n\n useEffect(() => {\n return handleAppFullscreenTransparentModeExit;\n }, []);\n\n useEffect(() => {\n if (isAppMaximized && fullscreenModeRef.current) {\n setIsFullscreenModalMode(false);\n }\n }, [isAppMaximized]);\n\n const {\n isBrowserFullscreen,\n enterBrowserFullscreen,\n exitBrowserFullscreen,\n isSeparateWindow,\n openSeparateWindow,\n closeSeparateWindow,\n setSeparateWindowTitle,\n } = useFullscreenModes({\n containerRef: fixedSizeContainerRef,\n appInstanceId: props.app.id,\n isMaximized: isAppMaximized,\n });\n\n /**\n * This should be the same function as calling react-intersection-observer's ref setter actually triggers re-render.\n * Which in its turn causes infinite re-render loop.\n */\n const setContainerRefs = useCallback(node => {\n containerRef.current = node;\n setInnerContainerRefFn(node);\n }, []);\n\n return (\n <div\n className={classNames('dc-isolated-app', styles.fixedSizeContainer)}\n ref={fixedSizeContainerRef}\n >\n <div\n ref={setContainerRefs}\n onMouseEnter={onInnerContainerMouseEnter}\n onMouseLeave={onInnerContainerMouseLeave}\n data-testid={`${PAGE_NAME}_${props.app.app.name}`}\n className={classNames(\n styles.container,\n isInsideNewMobileApp && styles.newMobileAppContainer,\n isAppMaximized && styles.containerMaximized\n )}\n >\n <DCAppComponent\n key={iframeKey}\n {...props}\n isBrowserFullscreen={isBrowserFullscreen}\n enterBrowserFullscreen={enterBrowserFullscreen}\n exitBrowserFullscreen={exitBrowserFullscreen}\n isSeparateWindow={isSeparateWindow}\n openSeparateWindow={openSeparateWindow}\n closeSeparateWindow={closeSeparateWindow}\n setSeparateWindowTitle={setSeparateWindowTitle}\n isNonIsolatedApp={isNonIsolatedApp}\n appContextValue={appContextValue}\n devCenterRouter={devCenterRouter}\n globalNotificationToastsAPI={window[Symbol.for('notificationToasts')]}\n globalMixpanelEventTracker={window[Symbol.for('logToMixpanel')]}\n onAppContainerClick={onAppContainerClick}\n onAppRemove={onAppRemove}\n onIsMaximizedChange={onIsMaximizedChange}\n onSettingChange={onSettingChange}\n onSettingsChange={onSettingsChange}\n permissionsContextValue={permissionsContextValue}\n setIsFullscreenModalMode={setIsFullscreenModalMode}\n userUnits={userUnits}\n trackApiRateLimiterException={trackApiRateLimiterException}\n updateCurrentDashboardAppLastAnnotation={updateCurrentDashboardAppLastAnnotation}\n apiRateLimiterConfig={apiRateLimiterConfig}\n />\n </div>\n </div>\n );\n}\n\nDevCenterIsolatedAppComponent.propTypes = {\n app: PropTypes.shape({\n id: PropTypes.number,\n app: PropTypes.shape({\n name: PropTypes.string,\n }),\n }).isRequired,\n currentUser: PropTypes.shape({}).isRequired,\n isIsolationFeatureEnabled: PropTypes.bool,\n onAppContainerClick: PropTypes.func,\n onAppFullscreenTransparentMode: PropTypes.func,\n onAppRemove: PropTypes.func,\n onInnerContainerMouseEnter: PropTypes.func,\n onInnerContainerMouseLeave: PropTypes.func,\n onIsMaximizedChange: PropTypes.func,\n onSettingChange: PropTypes.func,\n onSettingsChange: PropTypes.func,\n setInnerContainerRefFn: PropTypes.func,\n updateCurrentDashboardAppLastAnnotation: PropTypes.func,\n apiRateLimiterConfig: PropTypes.object,\n};\n\nexport const DevCenterIsolatedApp = withRouter(DevCenterIsolatedAppComponent);\n"],"names":["DEFAULT_API_RATE_LIMITER_CONFIG","DevCenterIsolatedAppComponent","_ref","_props$history","_props$app","_props$app2","_props$app3","_props$app3$app","_props$history2","_props$history2$locat","_ref$isIsolationFeatu","isIsolationFeatureEnabled","_ref$onAppFullscreenT","onAppFullscreenTransparentMode","noop","_ref$onIsMaximizedCha","onIsMaximizedChange","_ref$onInnerContainer","onInnerContainerMouseEnter","_ref$onInnerContainer2","onInnerContainerMouseLeave","_ref$onAppContainerCl","onAppContainerClick","_ref$setInnerContaine","setInnerContainerRefFn","_ref$onAppRemove","onAppRemove","undefined","_ref$onSettingChange","onSettingChange","_ref$onSettingsChange","onSettingsChange","_ref$updateCurrentDas","updateCurrentDashboardAppLastAnnotation","_ref$apiRateLimiterCo","apiRateLimiterConfig","trackApiRateLimiterException","props","_objectWithoutProperties","_excluded","devCenterRouter","useMemo","devCenterUtils","createDevCenterRouter","history","location","isNonIsolatedApp","isCorvaApp","app","package","DCAppComponent","DevCenterAppContainer","IsolatedPage","appKey","app_key","appVersion","getAppVersion","iframeKey","concat","appIframeDocument","useRef","containerRef","fixedSizeContainerRef","fullscreenModeRef","fullscreenModalModeRef","isAppMaximized","queryString","parse","search","id","isAppMaximizedRef","current","_useState","useState","getUserUnits","_useState2","_slicedToArray","userUnits","setUserUnits","useEffect","unsubscribeFn","subscribeForUserUnitsUpdates","newUserUnits","appContextValue","useContext","AppContext","permissionsContextValue","usePermissionsContext","handleAppFullscreenTransparentModeExit","appId","isModeEnabled","document","body","classList","remove","styles","compensateScroll","setIsFullscreenModalMode","useCallback","nextIsFullscreenModalModeValue","_containerRef$current2","_containerRef$current4","_containerRef$current5","_containerRef$current6","_appIframeDocument$cu","isModal","_containerRef$current","add","containerMaximizedTransparentModal","_containerRef$current3","classesEditMethod","containerMaximizedTransparent","querySelector","APP_IFRAME_ATTRIBUTE","contentWindow","isolatedPageAppContainer","getElementById","ISOLATED_PAGE_APP_CONTAINER_ID","_fixedSizeContainerRe","getBoundingClientRect","top","left","width","height","isBodyScrollVisible","window","innerWidth","clientWidth","flushSync","setAttribute","_useFullscreenModes","useFullscreenModes","appInstanceId","isMaximized","isBrowserFullscreen","enterBrowserFullscreen","exitBrowserFullscreen","isSeparateWindow","openSeparateWindow","closeSeparateWindow","setSeparateWindowTitle","setContainerRefs","node","_jsx","className","classNames","fixedSizeContainer","ref","children","jsx","onMouseEnter","onMouseLeave","PAGE_NAME","name","container","isInsideNewMobileApp","newMobileAppContainer","containerMaximized","_objectSpread","globalNotificationToastsAPI","Symbol","for","globalMixpanelEventTracker","propTypes","PropTypes","shape","number","string","isRequired","currentUser","bool","func","object","DevCenterIsolatedApp","withRouter"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/slicedToArray"),n=require("react"),r=require("../../../utils/devcenter.js");function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=t(e);exports.useFullscreenModes=function(e){var t=e.containerRef,a=e.appInstanceId,c=e.isMaximized,s=n.useState(!1),l=o.default(s,2),u=l[0],i=l[1],d=!!window.opener&&c&&new URLSearchParams(window.location.search).has("fullscreenWindow");n.useEffect((function(){var e=function(){return i(document.fullscreenElement===t.current)};return document.addEventListener("fullscreenchange",e),function(){return document.removeEventListener("fullscreenchange",e)}}),[t]);var w=n.useCallback((function(){var e;null===(e=t.current)||void 0===e||e.requestFullscreen().catch((function(e){console.error("[useFullscreenModes] Fullscreen request rejected:",e)}))}),[t]),f=n.useCallback((function(){document.exitFullscreen()}),[]),h=n.useCallback((function(){var e=new URL(window.location.href);e.searchParams.set(r.MAXIMIZE_DC_PARAM,String(a)),e.searchParams.set("fullscreenWindow",String(!0)),window.open(e.toString(),"_blank","toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=".concat(.75*window.screen.availWidth,",height=").concat(.75*window.screen.availHeight))}),[a]),v=n.useCallback((function(){return window.close()}),[]),b=n.useCallback((function(e){d&&e&&(document.title=e)}),[d]);return{isBrowserFullscreen:u,enterBrowserFullscreen:w,exitBrowserFullscreen:f,isSeparateWindow:d,openSeparateWindow:h,closeSeparateWindow:v,setSeparateWindowTitle:b}};
|
|
2
|
+
//# sourceMappingURL=useFullscreenModes.js.map
|
package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/useFullscreenModes.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFullscreenModes.js","sources":["../../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/useFullscreenModes.ts"],"sourcesContent":["import { RefObject, useCallback, useEffect, useState } from 'react';\n\nimport { FullscreenModes } from '../../../types';\nimport { MAXIMIZE_DC_PARAM } from '../../../utils/devcenter';\n\nconst SEPARATE_WINDOW_PARAM = 'fullscreenWindow';\n\ntype UseFullscreenModesParams = {\n containerRef: RefObject<HTMLElement>;\n appInstanceId?: number;\n isMaximized: boolean;\n};\n\nexport const useFullscreenModes = ({\n containerRef,\n appInstanceId,\n isMaximized,\n}: UseFullscreenModesParams): FullscreenModes => {\n const [isBrowserFullscreen, setIsBrowserFullscreen] = useState(false);\n\n // A tab can have an opener for unrelated reasons (ctrl-click, target=_blank), so the window we\n // opened is identified by the param we put in its URL, not by the opener alone.\n const isSeparateWindow =\n !!window.opener &&\n isMaximized &&\n new URLSearchParams(window.location.search).has(SEPARATE_WINDOW_PARAM);\n\n useEffect(() => {\n // Every app on the dashboard receives this event, so compare against our own container.\n const syncBrowserFullscreen = () =>\n setIsBrowserFullscreen(document.fullscreenElement === containerRef.current);\n\n document.addEventListener('fullscreenchange', syncBrowserFullscreen);\n\n return () => document.removeEventListener('fullscreenchange', syncBrowserFullscreen);\n }, [containerRef]);\n\n const enterBrowserFullscreen = useCallback(() => {\n containerRef.current?.requestFullscreen().catch(error => {\n // eslint-disable-next-line no-console\n console.error('[useFullscreenModes] Fullscreen request rejected:', error);\n });\n }, [containerRef]);\n\n const exitBrowserFullscreen = useCallback(() => {\n document.exitFullscreen();\n }, []);\n\n const openSeparateWindow = useCallback(() => {\n const windowUrl = new URL(window.location.href);\n\n windowUrl.searchParams.set(MAXIMIZE_DC_PARAM, String(appInstanceId));\n windowUrl.searchParams.set(SEPARATE_WINDOW_PARAM, String(true));\n\n window.open(\n windowUrl.toString(),\n '_blank',\n `toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=${\n window.screen.availWidth * 0.75\n },height=${window.screen.availHeight * 0.75}`\n );\n }, [appInstanceId]);\n\n const closeSeparateWindow = useCallback(() => window.close(), []);\n\n const setSeparateWindowTitle = useCallback(\n (title: string) => {\n if (isSeparateWindow && title) document.title = title;\n },\n [isSeparateWindow]\n );\n\n return {\n isBrowserFullscreen,\n enterBrowserFullscreen,\n exitBrowserFullscreen,\n isSeparateWindow,\n openSeparateWindow,\n closeSeparateWindow,\n setSeparateWindowTitle,\n };\n};\n"],"names":["_ref","containerRef","appInstanceId","isMaximized","useState","_useState2","_slicedToArray","_useState","isBrowserFullscreen","setIsBrowserFullscreen","isSeparateWindow","window","opener","URLSearchParams","location","search","has","useEffect","syncBrowserFullscreen","document","fullscreenElement","current","addEventListener","removeEventListener","enterBrowserFullscreen","useCallback","_containerRef$current","requestFullscreen","catch","error","console","exitBrowserFullscreen","exitFullscreen","openSeparateWindow","windowUrl","URL","href","searchParams","set","MAXIMIZE_DC_PARAM","String","open","toString","concat","screen","availWidth","availHeight","closeSeparateWindow","close","setSeparateWindowTitle","title"],"mappings":"oSAakC,SAIeA,GAAA,IAH/CC,IAAAA,aACAC,IAAAA,cACAC,IAAAA,YAEsDC,EAAAA,EAAQA,UAAC,GAAMC,EAAAC,EAAAA,QAAAC,EAAA,GAA9DC,EAAmBH,EAAA,GAAEI,EAAsBJ,EAAA,GAI5CK,IACFC,OAAOC,QACTT,GACA,IAAIU,gBAAgBF,OAAOG,SAASC,QAAQC,IApBlB,oBAsB5BC,EAAAA,WAAU,WAER,IAAMC,EAAwB,WAAH,OACzBT,EAAuBU,SAASC,oBAAsBnB,EAAaoB,QAAQ,EAI7E,OAFAF,SAASG,iBAAiB,mBAAoBJ,GAEvC,WAAA,OAAMC,SAASI,oBAAoB,mBAAoBL,EAAsB,CACtF,GAAG,CAACjB,IAEJ,IAAMuB,EAAyBC,EAAAA,aAAY,WAAM,IAAAC,EAC3B,QAApBA,EAAAzB,EAAaoB,eAAO,IAAAK,GAApBA,EAAsBC,oBAAoBC,OAAM,SAAAC,GAE9CC,QAAQD,MAAM,oDAAqDA,EACrE,GACF,GAAG,CAAC5B,IAEE8B,EAAwBN,EAAAA,aAAY,WACxCN,SAASa,gBACV,GAAE,IAEGC,EAAqBR,EAAAA,aAAY,WACrC,IAAMS,EAAY,IAAIC,IAAIxB,OAAOG,SAASsB,MAE1CF,EAAUG,aAAaC,IAAIC,EAAiBA,kBAAEC,OAAOtC,IACrDgC,EAAUG,aAAaC,IA/CG,mBA+CwBE,QAAO,IAEzD7B,OAAO8B,KACLP,EAAUQ,WACV,SAAQ,kFAAAC,OAEqB,IAA3BhC,OAAOiC,OAAOC,WACLlC,YAAAA,OAA4B,IAA5BA,OAAOiC,OAAOE,aAE7B,GAAG,CAAC5C,IAEE6C,EAAsBtB,EAAAA,aAAY,WAAA,OAAMd,OAAOqC,OAAO,GAAE,IAExDC,EAAyBxB,eAC7B,SAACyB,GACKxC,GAAoBwC,IAAO/B,SAAS+B,MAAQA,EAClD,GACA,CAACxC,IAGH,MAAO,CACLF,oBAAAA,EACAgB,uBAAAA,EACAO,sBAAAA,EACArB,iBAAAA,EACAuB,mBAAAA,EACAc,oBAAAA,EACAE,uBAAAA,EAEJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppCommonsContext.js","sources":["../../../../src/componentsV2/AppCommonsProvider/AppCommonsContext.ts"],"sourcesContent":["import { ComponentType, createContext, ReactNode, useContext } from 'react';\n\nimport {
|
|
1
|
+
{"version":3,"file":"AppCommonsContext.js","sources":["../../../../src/componentsV2/AppCommonsProvider/AppCommonsContext.ts"],"sourcesContent":["import { ComponentType, createContext, ReactNode, useContext } from 'react';\n\nimport {\n App,\n AppSettings,\n Asset,\n FracFleet,\n FullscreenModes,\n InterventionUnit,\n User,\n Well,\n} from '../../types';\n\nexport type GlobalOffsetWell = {\n id: number;\n [key: string]: unknown;\n};\n\n// ⚠️⚠️⚠️ Mentioned in storybook, please update when editing this type\n// Used in AppTestWrapper\nexport type AppCommonsContextType = {\n maximized: boolean;\n appId: number;\n app: App;\n appKey: string;\n appName: string;\n appSettings?: AppSettings;\n onSettingChange: (key: string, value: unknown) => void;\n onSettingsChange: (value: unknown) => void;\n\n well?: Well;\n rig?: Asset;\n fracFleet?: FracFleet;\n interventionUnit?: InterventionUnit;\n wells?: Well[];\n\n // Passed down from corva-web-frontend. May not exist, so everything must be optional\n dashboardMeta?: {\n isMultiAsset?: boolean;\n isMultiWell?: boolean;\n isChiplessDashboard?: boolean;\n globalOffsetWellsToken?: number;\n };\n appHeadersV3Enabled?: boolean;\n // [REACT-18-MIGRATION-TAG] PLT-3099: true when the app renders in-process on the host\n // (the platform isolation decision from DevCenterIsolatedApp); iframe realms leave it unset.\n isNonIsolatedApp?: boolean;\n disableAppAssetSelection?: boolean;\n isMultiRig?: boolean;\n currentUser?: User;\n globalOffsetWells?: GlobalOffsetWell[];\n globalOffsetWellsVersion?: number;\n globalOffsetWellsToken?: number;\n removeApp?: () => void;\n};\n\nexport type AppCommonsContextTypeInternal = AppCommonsContextType &\n Partial<FullscreenModes> & {\n /** True in any of the three modes: dashboard maximize, browser fullscreen, separate window */\n isExpanded?: boolean;\n setMaximized: (maximized: boolean) => void;\n appData?: unknown;\n layoutEnvironment?: { type?: string };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n appSettingsComponent?: ComponentType<any>;\n toggleAnnotationsList?: () => void;\n onHelpCenterClick?: () => void;\n secondaryMenuItems?: { title: ReactNode; onClick?: () => void; icon?: ReactNode }[];\n isInsideNewMobileApp?: boolean;\n reloadApp?: () => void;\n };\n\nexport const AppCommonsContext = createContext<AppCommonsContextTypeInternal>(\n // TODO provide defaults\n null as unknown as AppCommonsContextTypeInternal\n);\n\nexport const useAppCommonsInternal = () => useContext(AppCommonsContext);\n\nexport const useAppCommons = () => useContext(AppCommonsContext) as AppCommonsContextType;\n"],"names":["AppCommonsContext","createContext","useContext"],"mappings":"2FAwEaA,EAAoBC,EAAaA,cAE5C,wDAK2B,WAAH,OAASC,EAAAA,WAAWF,EAAkB,gCAF3B,WAAH,OAASE,EAAAA,WAAWF,EAAkB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");exports.useAppCommonsValue=function(t){var n=t.app,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");exports.useAppCommonsValue=function(t){var n=t.app,s=t.onAppRemove,a=t.onHelpCenterClick,o=t.appId,i=t.appSettings,l=t.appSettingsComponent,p=t.appData,r=t.isInsideNewMobileApp,d=t.onSettingChange,g=t.onSettingsChange,u=t.appHeadersV3Enabled,c=t.isBrowserFullscreen,w=t.enterBrowserFullscreen,m=t.exitBrowserFullscreen,S=t.isSeparateWindow,f=t.openSeparateWindow,b=t.closeSeparateWindow,A=t.setSeparateWindowTitle,W=t.isNonIsolatedApp,M=t.disableAppAssetSelection,C=t.isMultiRig,v=void 0!==C&&C,x=t.rig,F=t.maximized,I=t.setMaximized,y=t.fracFleet,O=t.dashboardMeta,h=t.well,B=t.wells,N=t.toggleAnnotationsList,E=t.layoutEnvironment,V=t.secondaryMenuItems,k=t.currentUser,z=t.appKey,H=t.appName,T=t.interventionUnit,U=t.globalOffsetWells,R=t.globalOffsetWellsVersion,D=t.globalOffsetWellsToken,K=t.reloadApp,L=F||!!c||!!S;return e.useMemo((function(){return{app:n,appKey:z,appName:H,onHelpCenterClick:a,removeApp:s,appId:o,appSettings:i,appSettingsComponent:l,appData:p,isInsideNewMobileApp:r,onSettingChange:d,onSettingsChange:g,appHeadersV3Enabled:u,isExpanded:L,isBrowserFullscreen:c,enterBrowserFullscreen:w,exitBrowserFullscreen:m,isSeparateWindow:S,openSeparateWindow:f,closeSeparateWindow:b,setSeparateWindowTitle:A,isNonIsolatedApp:W,disableAppAssetSelection:M,isMultiRig:v,rig:x,maximized:F,setMaximized:I,fracFleet:y,dashboardMeta:O,well:h,wells:B,toggleAnnotationsList:N,layoutEnvironment:E,secondaryMenuItems:V,currentUser:k,interventionUnit:T,globalOffsetWells:U,globalOffsetWellsVersion:R,globalOffsetWellsToken:D,reloadApp:K}}),[n,z,H,a,s,o,i,l,p,r,d,g,u,L,c,w,m,S,f,b,A,W,M,v,x,F,I,y,O,h,B,N,E,V,k,T,U,R,D,K])};
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../src/componentsV2/AppCommonsProvider/utils.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport { AppCommonsContextTypeInternal } from './AppCommonsContext';\n\nexport type OwnAppCommonsContextType = Omit<\n AppCommonsContextTypeInternal,\n 'appKey' | 'appName' | 'removeApp'\n> & { onAppRemove?: AppCommonsContextTypeInternal['removeApp'] };\n\ntype UseAppCommonsValueParam = OwnAppCommonsContextType & {\n appKey: string;\n appName: string;\n};\n\nexport const useAppCommonsValue = ({\n app,\n onAppRemove,\n onHelpCenterClick,\n appId,\n appSettings,\n appSettingsComponent,\n appData,\n isInsideNewMobileApp,\n onSettingChange,\n onSettingsChange,\n appHeadersV3Enabled,\n isNonIsolatedApp,\n disableAppAssetSelection,\n isMultiRig = false,\n rig,\n maximized,\n setMaximized,\n fracFleet,\n dashboardMeta,\n well,\n wells,\n toggleAnnotationsList,\n layoutEnvironment,\n secondaryMenuItems,\n currentUser,\n appKey,\n appName,\n interventionUnit,\n globalOffsetWells,\n globalOffsetWellsVersion,\n globalOffsetWellsToken,\n reloadApp,\n}: UseAppCommonsValueParam) => {\n return useMemo(\n (): AppCommonsContextTypeInternal => ({\n app,\n appKey,\n appName,\n onHelpCenterClick,\n removeApp: onAppRemove,\n appId,\n appSettings,\n appSettingsComponent,\n appData,\n isInsideNewMobileApp,\n onSettingChange,\n onSettingsChange,\n appHeadersV3Enabled,\n isNonIsolatedApp,\n disableAppAssetSelection,\n isMultiRig,\n rig,\n maximized,\n setMaximized,\n fracFleet,\n dashboardMeta,\n well,\n wells,\n toggleAnnotationsList,\n layoutEnvironment,\n secondaryMenuItems,\n currentUser,\n interventionUnit,\n globalOffsetWells,\n globalOffsetWellsVersion,\n globalOffsetWellsToken,\n reloadApp,\n }),\n [\n app,\n appKey,\n appName,\n onHelpCenterClick,\n onAppRemove,\n appId,\n appSettings,\n appSettingsComponent,\n appData,\n isInsideNewMobileApp,\n onSettingChange,\n onSettingsChange,\n appHeadersV3Enabled,\n isNonIsolatedApp,\n disableAppAssetSelection,\n isMultiRig,\n rig,\n maximized,\n setMaximized,\n fracFleet,\n dashboardMeta,\n well,\n wells,\n toggleAnnotationsList,\n layoutEnvironment,\n secondaryMenuItems,\n currentUser,\n interventionUnit,\n globalOffsetWells,\n globalOffsetWellsVersion,\n globalOffsetWellsToken,\n reloadApp,\n ]\n );\n};\n"],"names":["_ref","app","onAppRemove","onHelpCenterClick","appId","appSettings","appSettingsComponent","appData","isInsideNewMobileApp","onSettingChange","onSettingsChange","appHeadersV3Enabled","isNonIsolatedApp","disableAppAssetSelection","_ref$isMultiRig","isMultiRig","rig","maximized","setMaximized","fracFleet","dashboardMeta","well","wells","toggleAnnotationsList","layoutEnvironment","secondaryMenuItems","currentUser","appKey","appName","interventionUnit","globalOffsetWells","globalOffsetWellsVersion","globalOffsetWellsToken","reloadApp","useMemo","removeApp"],"mappings":"sHAckC,
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../src/componentsV2/AppCommonsProvider/utils.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport { AppCommonsContextTypeInternal } from './AppCommonsContext';\n\nexport type OwnAppCommonsContextType = Omit<\n AppCommonsContextTypeInternal,\n 'appKey' | 'appName' | 'removeApp'\n> & { onAppRemove?: AppCommonsContextTypeInternal['removeApp'] };\n\ntype UseAppCommonsValueParam = OwnAppCommonsContextType & {\n appKey: string;\n appName: string;\n};\n\nexport const useAppCommonsValue = ({\n app,\n onAppRemove,\n onHelpCenterClick,\n appId,\n appSettings,\n appSettingsComponent,\n appData,\n isInsideNewMobileApp,\n onSettingChange,\n onSettingsChange,\n appHeadersV3Enabled,\n isBrowserFullscreen,\n enterBrowserFullscreen,\n exitBrowserFullscreen,\n isSeparateWindow,\n openSeparateWindow,\n closeSeparateWindow,\n setSeparateWindowTitle,\n isNonIsolatedApp,\n disableAppAssetSelection,\n isMultiRig = false,\n rig,\n maximized,\n setMaximized,\n fracFleet,\n dashboardMeta,\n well,\n wells,\n toggleAnnotationsList,\n layoutEnvironment,\n secondaryMenuItems,\n currentUser,\n appKey,\n appName,\n interventionUnit,\n globalOffsetWells,\n globalOffsetWellsVersion,\n globalOffsetWellsToken,\n reloadApp,\n}: UseAppCommonsValueParam) => {\n const isExpanded = maximized || !!isBrowserFullscreen || !!isSeparateWindow;\n\n return useMemo(\n (): AppCommonsContextTypeInternal => ({\n app,\n appKey,\n appName,\n onHelpCenterClick,\n removeApp: onAppRemove,\n appId,\n appSettings,\n appSettingsComponent,\n appData,\n isInsideNewMobileApp,\n onSettingChange,\n onSettingsChange,\n appHeadersV3Enabled,\n isExpanded,\n isBrowserFullscreen,\n enterBrowserFullscreen,\n exitBrowserFullscreen,\n isSeparateWindow,\n openSeparateWindow,\n closeSeparateWindow,\n setSeparateWindowTitle,\n isNonIsolatedApp,\n disableAppAssetSelection,\n isMultiRig,\n rig,\n maximized,\n setMaximized,\n fracFleet,\n dashboardMeta,\n well,\n wells,\n toggleAnnotationsList,\n layoutEnvironment,\n secondaryMenuItems,\n currentUser,\n interventionUnit,\n globalOffsetWells,\n globalOffsetWellsVersion,\n globalOffsetWellsToken,\n reloadApp,\n }),\n [\n app,\n appKey,\n appName,\n onHelpCenterClick,\n onAppRemove,\n appId,\n appSettings,\n appSettingsComponent,\n appData,\n isInsideNewMobileApp,\n onSettingChange,\n onSettingsChange,\n appHeadersV3Enabled,\n isExpanded,\n isBrowserFullscreen,\n enterBrowserFullscreen,\n exitBrowserFullscreen,\n isSeparateWindow,\n openSeparateWindow,\n closeSeparateWindow,\n setSeparateWindowTitle,\n isNonIsolatedApp,\n disableAppAssetSelection,\n isMultiRig,\n rig,\n maximized,\n setMaximized,\n fracFleet,\n dashboardMeta,\n well,\n wells,\n toggleAnnotationsList,\n layoutEnvironment,\n secondaryMenuItems,\n currentUser,\n interventionUnit,\n globalOffsetWells,\n globalOffsetWellsVersion,\n globalOffsetWellsToken,\n reloadApp,\n ]\n );\n};\n"],"names":["_ref","app","onAppRemove","onHelpCenterClick","appId","appSettings","appSettingsComponent","appData","isInsideNewMobileApp","onSettingChange","onSettingsChange","appHeadersV3Enabled","isBrowserFullscreen","enterBrowserFullscreen","exitBrowserFullscreen","isSeparateWindow","openSeparateWindow","closeSeparateWindow","setSeparateWindowTitle","isNonIsolatedApp","disableAppAssetSelection","_ref$isMultiRig","isMultiRig","rig","maximized","setMaximized","fracFleet","dashboardMeta","well","wells","toggleAnnotationsList","layoutEnvironment","secondaryMenuItems","currentUser","appKey","appName","interventionUnit","globalOffsetWells","globalOffsetWellsVersion","globalOffsetWellsToken","reloadApp","isExpanded","useMemo","removeApp"],"mappings":"sHAckC,SAwCHA,GAAA,IAvC7BC,IAAAA,IACAC,IAAAA,YACAC,IAAAA,kBACAC,IAAAA,MACAC,IAAAA,YACAC,IAAAA,qBACAC,IAAAA,QACAC,IAAAA,qBACAC,IAAAA,gBACAC,IAAAA,iBACAC,IAAAA,oBACAC,IAAAA,oBACAC,IAAAA,uBACAC,IAAAA,sBACAC,IAAAA,iBACAC,IAAAA,mBACAC,IAAAA,oBACAC,IAAAA,uBACAC,IAAAA,iBACAC,IAAAA,yBAAwBC,EAAArB,EACxBsB,WAAAA,cAAkBD,EAClBE,IAAAA,IACAC,IAAAA,UACAC,IAAAA,aACAC,IAAAA,UACAC,IAAAA,cACAC,IAAAA,KACAC,IAAAA,MACAC,IAAAA,sBACAC,IAAAA,kBACAC,IAAAA,mBACAC,IAAAA,YACAC,IAAAA,OACAC,IAAAA,QACAC,IAAAA,iBACAC,IAAAA,kBACAC,IAAAA,yBACAC,IAAAA,uBACAC,IAAAA,UAEMC,EAAajB,KAAeZ,KAAyBG,EAE3D,OAAO2B,EAAOA,SACZ,WAAA,MAAsC,CACpCzC,IAAAA,EACAiC,OAAAA,EACAC,QAAAA,EACAhC,kBAAAA,EACAwC,UAAWzC,EACXE,MAAAA,EACAC,YAAAA,EACAC,qBAAAA,EACAC,QAAAA,EACAC,qBAAAA,EACAC,gBAAAA,EACAC,iBAAAA,EACAC,oBAAAA,EACA8B,WAAAA,EACA7B,oBAAAA,EACAC,uBAAAA,EACAC,sBAAAA,EACAC,iBAAAA,EACAC,mBAAAA,EACAC,oBAAAA,EACAC,uBAAAA,EACAC,iBAAAA,EACAC,yBAAAA,EACAE,WAAAA,EACAC,IAAAA,EACAC,UAAAA,EACAC,aAAAA,EACAC,UAAAA,EACAC,cAAAA,EACAC,KAAAA,EACAC,MAAAA,EACAC,sBAAAA,EACAC,kBAAAA,EACAC,mBAAAA,EACAC,YAAAA,EACAG,iBAAAA,EACAC,kBAAAA,EACAC,yBAAAA,EACAC,uBAAAA,EACAC,UAAAA,EACD,GACD,CACEvC,EACAiC,EACAC,EACAhC,EACAD,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA8B,EACA7B,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAG,EACAC,EACAC,EACAC,EACAC,GAGN"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var e;Object.defineProperty(exports,"__esModule",{value:!0}),exports.ActionsTestIds=void 0,(e=exports.ActionsTestIds||(exports.ActionsTestIds={})).CollapseButtonTestId="CorvaUI.AppHeader.Actions.CollapseButtonTestId",e.ExpandButtonTestId="CorvaUI.AppHeader.Actions.ExpandButtonTestId",e.AdditionalActionItemTestId="CorvaUI.AppHeader.Actions.AdditionalActionItemTestId",e.CloseCommentButtonTestId="CorvaUI.AppHeader.Actions.CloseCommentButtonTestId",e.AddMessageButtonTestId="CorvaUI.AppHeader.Actions.AddMessageButtonTestId",e.MaximizeItemTestId="CorvaUI.AppHeader.Actions.MaximizeItemTestId",e.BrowserFullscreenItemTestId="CorvaUI.AppHeader.Actions.BrowserFullscreenItemTestId",e.SeparateWindowItemTestId="CorvaUI.AppHeader.Actions.SeparateWindowItemTestId";
|
|
2
2
|
//# sourceMappingURL=Actions.constants.js.map
|