@corva/ui 3.76.0-7 → 3.76.0-9

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.
Files changed (33) hide show
  1. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js.map +1 -1
  2. package/cjs-bundle/componentsV2/AppCommonsProvider/AppCommonsContext.js.map +1 -1
  3. package/cjs-bundle/componentsV2/AppHeader/V3/Actions/Actions.constants.js +1 -1
  4. package/cjs-bundle/componentsV2/AppHeader/V3/Actions/Actions.constants.js.map +1 -1
  5. package/cjs-bundle/componentsV2/AppHeader/V3/Actions/Actions.js +1 -1
  6. package/cjs-bundle/componentsV2/AppHeader/V3/Actions/Actions.js.map +1 -1
  7. package/cjs-bundle/componentsV2/AppHeader/V3/AppHeaderV3.js +1 -1
  8. package/cjs-bundle/componentsV2/AppHeader/V3/AppHeaderV3.js.map +1 -1
  9. package/cjs-bundle/componentsV2/AppHeader/V3/AppHeaderV3.scss.js +1 -1
  10. package/cjs-bundle/componentsV2/AppHeader/V3/useResponsivity.js +1 -1
  11. package/cjs-bundle/componentsV2/AppHeader/V3/useResponsivity.js.map +1 -1
  12. package/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.d.ts +2 -9
  13. package/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.d.ts.map +1 -1
  14. package/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js.map +1 -1
  15. package/componentsV2/AppCommonsProvider/AppCommonsContext.d.ts +19 -6
  16. package/componentsV2/AppCommonsProvider/AppCommonsContext.d.ts.map +1 -1
  17. package/componentsV2/AppCommonsProvider/AppCommonsContext.js.map +1 -1
  18. package/componentsV2/AppHeader/V3/Actions/Actions.constants.d.ts +1 -0
  19. package/componentsV2/AppHeader/V3/Actions/Actions.constants.d.ts.map +1 -1
  20. package/componentsV2/AppHeader/V3/Actions/Actions.constants.js +1 -1
  21. package/componentsV2/AppHeader/V3/Actions/Actions.constants.js.map +1 -1
  22. package/componentsV2/AppHeader/V3/Actions/Actions.d.ts.map +1 -1
  23. package/componentsV2/AppHeader/V3/Actions/Actions.js +1 -1
  24. package/componentsV2/AppHeader/V3/Actions/Actions.js.map +1 -1
  25. package/componentsV2/AppHeader/V3/AppHeaderV3.d.ts.map +1 -1
  26. package/componentsV2/AppHeader/V3/AppHeaderV3.js +1 -1
  27. package/componentsV2/AppHeader/V3/AppHeaderV3.js.map +1 -1
  28. package/componentsV2/AppHeader/V3/AppHeaderV3.scss.js +1 -1
  29. package/componentsV2/AppHeader/V3/useResponsivity.js +1 -1
  30. package/componentsV2/AppHeader/V3/useResponsivity.js.map +1 -1
  31. package/mcp-server/server.mjs +2 -2
  32. package/package.json +1 -1
  33. package/tsconfig.tsbuildinfo +1 -1
@@ -1,7 +1,7 @@
1
1
  import type { ComponentType, FC } from 'react';
2
2
  import type { AppCoordinates, ChatActions, DashboardAppLastAnnotation, DevCenterAppResource, DevCenterCurrentUser, DevCenterRouter, LayoutEnvironment, RegisterAITools, SetIsFullscreenModalMode, UpdateDashboardAppLastAnnotation } from './types';
3
3
  import type { FullscreenModes } from '../../../types';
4
- import type { GlobalOffsetWell } from '../../../componentsV2/AppCommonsProvider/AppCommonsContext';
4
+ import type { AppDashboardMeta } from '../../../componentsV2/AppCommonsProvider/AppCommonsContext';
5
5
  /**
6
6
  * `Partial<FullscreenModes>` carries the seven browser-fullscreen and separate-window members.
7
7
  * `AppCommonsProvider` derives `isExpanded` from them and republishes them to the app bundle,
@@ -26,14 +26,7 @@ export type DevCenterAppContainerProps = Partial<FullscreenModes> & {
26
26
  chatActions?: ChatActions | null;
27
27
  coordinates?: AppCoordinates | null;
28
28
  currentDashboardAppsLastAnnotations?: DashboardAppLastAnnotation[] | null;
29
- dashboardMeta?: {
30
- isMultiAsset?: boolean;
31
- isMultiWell?: boolean;
32
- isChiplessDashboard?: boolean;
33
- globalOffsetWells?: GlobalOffsetWell[];
34
- globalOffsetWellsVersion?: number;
35
- globalOffsetWellsToken?: number;
36
- };
29
+ dashboardMeta?: AppDashboardMeta;
37
30
  disableAppAssetSelection?: boolean;
38
31
  isActionsDisabled?: boolean;
39
32
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"DevCenterAppContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AA2B/C,OAAO,KAAK,EACV,cAAc,EAEd,WAAW,EACX,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EAEpB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,gCAAgC,EACjC,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4DAA4D,CAAC;AAiBnG;;;;;GAKG;AACH,MAAM,MAAM,0BAA0B,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG;IAClE,GAAG,EAAE,oBAAoB,CAAC;IAC1B,WAAW,EAAE,oBAAoB,CAAC;IAClC,yEAAyE;IACzE,eAAe,EAAE,eAAe,CAAC;IAEjC;;;;OAIG;IAEH,eAAe,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAE5C,cAAc,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAC3C,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACpC,mCAAmC,CAAC,EAAE,0BAA0B,EAAE,GAAG,IAAI,CAAC;IAC1E,aAAa,CAAC,EAAE;QACd,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;QACvC,wBAAwB,CAAC,EAAE,MAAM,CAAC;QAClC,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;IACF,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC7C,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IACrD,gBAAgB,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IACvC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IACpD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,uCAAuC,CAAC,EAAE,gCAAgC,CAAC;CAC5E,CAAC;AAKF,QAAA,MAAM,qBAAqB,EAAE,EAAE,CAAC,0BAA0B,CAkSzD,CAAC;eAEa,qBAAqB"}
1
+ {"version":3,"file":"DevCenterAppContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AA2B/C,OAAO,KAAK,EACV,cAAc,EAEd,WAAW,EACX,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EAEpB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,gCAAgC,EACjC,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4DAA4D,CAAC;AAiBnG;;;;;GAKG;AACH,MAAM,MAAM,0BAA0B,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG;IAClE,GAAG,EAAE,oBAAoB,CAAC;IAC1B,WAAW,EAAE,oBAAoB,CAAC;IAClC,yEAAyE;IACzE,eAAe,EAAE,eAAe,CAAC;IAEjC;;;;OAIG;IAEH,eAAe,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAE5C,cAAc,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAC3C,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACpC,mCAAmC,CAAC,EAAE,0BAA0B,EAAE,GAAG,IAAI,CAAC;IAC1E,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC7C,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IACrD,gBAAgB,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IACvC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IACpD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,uCAAuC,CAAC,EAAE,gCAAgC,CAAC;CAC5E,CAAC;AAKF,QAAA,MAAM,qBAAqB,EAAE,EAAE,CAAC,0BAA0B,CAkSzD,CAAC;eAEa,qBAAqB"}
@@ -1 +1 @@
1
- {"version":3,"file":"DevCenterAppContainer.js","sources":["../../../../src/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.tsx"],"sourcesContent":["import { useContext, useMemo, useState } from 'react';\nimport type { ComponentType, FC } from 'react';\nimport classNames from 'classnames';\nimport { noop, pick, pickBy } from 'lodash';\nimport { useTheme } from '@material-ui/core';\n\nimport AppContext from '../AppContext';\nimport { DevCenterRouterContext } from '../DevCenterRouterContext';\n\nimport {\n useAnnotationsData,\n useAnnotationsList,\n useAppMaximized,\n useAppSettings,\n useDevCenterAppProps,\n} from './effects';\nimport { DcFullscreenElemsCoordinatorProvider } from './components/DcFullscreenElemsCoordinatorProvider';\nimport { DevCenterAppDialogs } from './components/DevCenterAppDialogs';\nimport DevCenterAppView from './components/DevCenterAppView';\nimport { LegacyAppActions } from './components/LegacyAppActions';\nimport RestoreAppSizeButton from './components/RestoreAppSizeButton';\nimport { getAppAvailability, getAppVersion } from './utils';\nimport {\n APP_DATA_ASSET_KEYS,\n HOME_PATH_PREFIX,\n MOBILE_CLI_APP_GRID_WIDTH,\n PAGE_NAME,\n} from './constants';\nimport type {\n AppCoordinates,\n AppDataEntry,\n ChatActions,\n DashboardAppLastAnnotation,\n DevCenterAppResource,\n DevCenterCurrentUser,\n DevCenterMenuItem,\n DevCenterRouter,\n LayoutEnvironment,\n RegisterAITools,\n SetIsFullscreenModalMode,\n UpdateDashboardAppLastAnnotation,\n} from './types';\nimport type { FullscreenModes } from '../../../types';\n// Relative on purpose: a `~/` alias does not resolve from the published `.d.ts`.\nimport type { GlobalOffsetWell } from '../../../componentsV2/AppCommonsProvider/AppCommonsContext';\nimport { CommentsSwitchProvider } from './components/CommentsSwitch';\n\nimport styles from './DevCenterAppContainer.scss';\n\nimport { isInsideNewMobileApp, isMobileDetected, isNativeDetected } from '~/utils/mobileDetect';\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 { AppCommonsProvider } from '~/componentsV2/AppCommonsProvider';\n\n/**\n * `Partial<FullscreenModes>` carries the seven browser-fullscreen and separate-window members.\n * `AppCommonsProvider` derives `isExpanded` from them and republishes them to the app bundle,\n * so dropping them silently disables both features — and nothing type-checks it, because every\n * member is optional on the provider.\n */\nexport type DevCenterAppContainerProps = Partial<FullscreenModes> & {\n app: DevCenterAppResource;\n currentUser: DevCenterCurrentUser;\n /** Platform router. Not React Router — the DC shell supplies its own. */\n devCenterRouter: DevCenterRouter;\n\n /**\n * Slots for the CLI app bundle's own components. `any` rather than a narrower prop type on\n * purpose: this accepts arbitrary app components, and any narrowing would reject the concretely\n * typed ones consumers pass.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- see the note above\n CLIAppComponent?: ComponentType<any> | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- see the note above\n CLIAppSettings?: ComponentType<any> | null;\n /** Defaults to `app.id` when omitted. */\n appId?: number;\n className?: string | null;\n chatActions?: ChatActions | null;\n coordinates?: AppCoordinates | null;\n currentDashboardAppsLastAnnotations?: DashboardAppLastAnnotation[] | null;\n dashboardMeta?: {\n isMultiAsset?: boolean;\n isMultiWell?: boolean;\n isChiplessDashboard?: boolean;\n globalOffsetWells?: GlobalOffsetWell[];\n globalOffsetWellsVersion?: number;\n globalOffsetWellsToken?: number;\n };\n disableAppAssetSelection?: boolean;\n isActionsDisabled?: boolean;\n /**\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 */\n isNonIsolatedApp?: boolean;\n isSettingsDialogHidden?: boolean;\n layoutEnvironment?: LayoutEnvironment | null;\n onAppContainerClick?: () => void;\n onAppRemove?: () => void;\n onCloneDashboard?: () => void;\n onHelpCenterClick?: () => void;\n onIsMaximizedChange?: (isMaximized: boolean) => void;\n onReportBugClick?: (() => void) | null;\n onSettingChange?: (key: string, value: unknown) => void;\n onSettingsChange?: (value: unknown) => void;\n openIntercom?: () => void;\n registerAITools?: RegisterAITools;\n reloadApp?: () => void;\n setIsFullscreenModalMode?: SetIsFullscreenModalMode;\n timestamp?: number | null;\n updateCurrentDashboardAppLastAnnotation?: UpdateDashboardAppLastAnnotation;\n};\n\nconst isHomePage = (router: DevCenterRouter) =>\n !!router.location.pathname?.startsWith(HOME_PATH_PREFIX);\n\nconst DevCenterAppContainer: FC<DevCenterAppContainerProps> = ({\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 isNonIsolatedApp = false,\n isSettingsDialogHidden,\n layoutEnvironment,\n onAppContainerClick = noop,\n onAppRemove,\n onReportBugClick,\n onCloneDashboard,\n onHelpCenterClick,\n onIsMaximizedChange,\n onSettingChange = noop,\n onSettingsChange = noop,\n openIntercom = noop,\n registerAITools,\n setIsFullscreenModalMode = noop,\n timestamp,\n updateCurrentDashboardAppLastAnnotation,\n dashboardMeta,\n reloadApp,\n chatActions,\n}) => {\n // `AppContext` is still JavaScript and calls `createContext()` with no argument, so it hands\n // back `undefined`. Declared here rather than asserted; the real fix is a type argument on the\n // context itself, which belongs to `DevCenter/AppContext`.\n const appsData: Record<string, AppDataEntry> | undefined = useContext(AppContext);\n const theme = useTheme();\n const isMobileView = isNativeDetected || isMobileDetected;\n const [mainMenuItems, setMainMenuItems] = useState<DevCenterMenuItem[]>([]);\n const [secondaryMenuItems, setSecondaryMenuItems] = useState<DevCenterMenuItem[]>([]);\n // `||`, not `??`: DevCenterEmbeddedApp uses 0 as its unset sentinel for appId.\n const appDataKey = appId || app.id;\n const appData: AppDataEntry = (appDataKey ? appsData?.[appDataKey] : undefined) ?? {\n isLoading: true,\n };\n const application = app.package?.manifest?.application;\n const segment = getAppSegment(app);\n const isChiplessDashboard = !!dashboardMeta?.isChiplessDashboard;\n const isMultiRig = isDCAppMultiRig({\n uiSettings: application?.ui,\n isChiplessDashboard,\n });\n const isCommentsEnabled = !!application?.ui?.enable_comments;\n const appName = getAppName(app);\n const { isMaximized, setIsMaximized } = useAppMaximized({\n onIsMaximizedChange,\n devCenterRouter,\n appId,\n });\n\n // Isolated apps are mounted without the router query the timestamp normally comes from,\n // so the host passes it as a prop instead.\n const appTimestamp = timestamp || getTimestampFromQuery(devCenterRouter.location.query?.query);\n const isCLIApp = app.id === DEV_CENTER_CLI_APP_ID;\n // Memoised because the CLI-on-mobile branch builds a new object: unmemoised it would be a fresh\n // reference on every render and would keep `useDevCenterAppProps` from ever holding its memo.\n const updatedCoordinates = useMemo(\n () =>\n isCLIApp && isMobileView ? { ...coordinates, w: MOBILE_CLI_APP_GRID_WIDTH } : coordinates,\n [isCLIApp, isMobileView, coordinates]\n );\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 {\n appLastAnnotation,\n assetCompanyId,\n assetIdForAnnotation,\n isAppSupportsAnnotations: isAnnotationsSupported,\n } = useAnnotationsData({\n app,\n appData,\n currentDashboardAppsLastAnnotations,\n });\n\n const filteredAppData = useMemo(\n () => pickBy(pick(appData, APP_DATA_ASSET_KEYS), Boolean),\n [appData]\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 isAppHeadersV3Enabled = !!application?.ui?.use_app_header_v3;\n const isInsideHomePage = isHomePage(devCenterRouter);\n\n const appProps = useDevCenterAppProps({\n app,\n appLastAnnotation,\n appTimestamp,\n chatActions,\n coordinates: updatedCoordinates,\n currentUser,\n devCenterRouter,\n filteredAppData,\n isMaximized,\n layoutEnvironment,\n onSettingChange,\n onSettingsChange,\n registerAITools,\n segment,\n setIsFullscreenModalMode,\n setIsMaximized,\n setMainMenuItems,\n setSecondaryMenuItems,\n toggleAnnotationsList,\n toggleAppSettingsDialog,\n updateCurrentDashboardAppLastAnnotation,\n });\n\n // Called without the native event: this crosses an iframe boundary, where a DOM event\n // cannot be serialised.\n const handleAppContainerClick = () => onAppContainerClick();\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={isAppHeadersV3Enabled}\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={isAnnotationsSupported ? 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 <article\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 onClick={handleAppContainerClick}\n >\n <ToastContainer />\n <div className={styles.containerContent}>\n <DevCenterAppView\n // DC apps keep per-asset state in mount-time hooks, so a new asset means a\n // new mount. React 18 batching collapses away the `isLoading` frame this used\n // to rely on whenever AppsDataProvider serves the asset from its cache.\n key={appData.appHash}\n AppComponent={AppComponent}\n app={app}\n appData={filteredAppData}\n availability={getAppAvailability(\n app.availability,\n currentUser.company.with_subscription\n )}\n isCLIApp={isCLIApp}\n isLoading={isLoading}\n isMultiRig={isMultiRig}\n layoutEnvironment={layoutEnvironment ?? null}\n openIntercom={openIntercom}\n segment={segment}\n toggleAppSettingsDialog={toggleAppSettingsDialog}\n appProps={appProps}\n />\n </div>\n <DevCenterAppDialogs\n app={app}\n appData={appData}\n appName={appName}\n appSettingsComponent={AppSettings}\n assetCompanyId={assetCompanyId}\n assetIdForAnnotation={assetIdForAnnotation}\n currentUser={currentUser}\n disableAppAssetSelection={disableAppAssetSelection}\n isAnnotationsListOpened={isAnnotationsListOpened}\n isAppSettingsDialogOpened={isAppSettingsDialogOpened}\n isMultiRig={isMultiRig}\n isSettingsDialogHidden={isSettingsDialogHidden}\n layoutEnvironment={layoutEnvironment}\n onAppRemove={onAppRemove}\n onCloneDashboard={onCloneDashboard}\n onSettingsChange={onSettingsChange}\n openIntercom={openIntercom}\n toggleAnnotationsList={toggleAnnotationsList}\n toggleAppSettingsDialog={toggleAppSettingsDialog}\n />\n {isMaximized && !isAppHeadersV3Enabled && (\n <RestoreAppSizeButton setIsMaximized={setIsMaximized} />\n )}\n\n {!isActionsDisabled && (!isAppHeadersV3Enabled || isLoading) && (\n <LegacyAppActions\n app={app}\n currentUser={currentUser}\n devCenterRouter={devCenterRouter}\n isAnnotationsSupported={isAnnotationsSupported}\n isCLIApp={isCLIApp}\n isCommentsEnabled={isCommentsEnabled}\n isInsideNewMobileApp={isInsideNewMobileApp}\n isMaximized={isMaximized}\n isMobileView={isMobileView}\n mainMenuItems={mainMenuItems}\n secondaryMenuItems={secondaryMenuItems}\n onHelpCenterClick={onHelpCenterClick}\n onReportBugClick={onReportBugClick}\n setIsFullscreenModalMode={setIsFullscreenModalMode}\n setIsMaximized={setIsMaximized}\n toggleAnnotationsList={toggleAnnotationsList}\n toggleAppSettingsDialog={toggleAppSettingsDialog}\n />\n )}\n </article>\n </CommentsSwitchProvider>\n </AppCommonsProvider>\n </DcFullscreenElemsCoordinatorProvider>\n </DevCenterRouterContext.Provider>\n );\n};\n\nexport default DevCenterAppContainer;\n"],"names":["DevCenterAppContainer","_ref","_ref2","_app$package","_app$package$manifest","_application$ui","_devCenterRouter$loca","_application$ui2","_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","_ref$onSettingChange","onSettingChange","_ref$onSettingsChange","onSettingsChange","_ref$openIntercom","openIntercom","registerAITools","_ref$setIsFullscreenM","setIsFullscreenModalMode","timestamp","updateCurrentDashboardAppLastAnnotation","dashboardMeta","reloadApp","chatActions","appsData","useContext","AppContext","theme","useTheme","isMobileView","isNativeDetected","isMobileDetected","useState","_useState2","_slicedToArray","_useState","mainMenuItems","setMainMenuItems","_useState4","_useState3","secondaryMenuItems","setSecondaryMenuItems","appDataKey","id","appData","undefined","isLoading","application","package","manifest","segment","getAppSegment","isChiplessDashboard","isMultiRig","isDCAppMultiRig","uiSettings","ui","isCommentsEnabled","enable_comments","appName","getAppName","_useAppMaximized","useAppMaximized","isMaximized","setIsMaximized","appTimestamp","getTimestampFromQuery","location","query","isCLIApp","DEV_CENTER_CLI_APP_ID","updatedCoordinates","useMemo","_objectSpread","w","MOBILE_CLI_APP_GRID_WIDTH","version","getAppVersion","_useDevCenterApp","useDevCenterApp","isAppLoading","AppSettings","AppComponent","_useAppSettings","useAppSettings","isAppSettingsDialogOpened","toggleAppSettingsDialog","_useAnnotationsList","useAnnotationsList","isAnnotationsListOpened","toggleAnnotationsList","_useAnnotationsData","useAnnotationsData","appLastAnnotation","assetCompanyId","assetIdForAnnotation","isAnnotationsSupported","isAppSupportsAnnotations","filteredAppData","pickBy","pick","APP_DATA_ASSET_KEYS","Boolean","simplifiedSecondaryMenuItems","map","item","onClick","_item$onClick","call","to","push","isAppHeadersV3Enabled","use_app_header_v3","isInsideHomePage","pathname","startsWith","HOME_PATH_PREFIX","appProps","useDevCenterAppProps","_jsx","DevCenterRouterContext","Provider","value","children","DcFullscreenElemsCoordinatorProvider","AppCommonsProvider","maximized","setMaximized","appSettings","settings","appHeadersV3Enabled","appSettingsComponent","isInsideNewMobileApp","globalOffsetWells","globalOffsetWellsVersion","globalOffsetWellsToken","CommentsSwitchProvider","_jsxs","classNames","isLightTheme","styles","container","PAGE_NAME","ToastContainer","containerContent","DevCenterAppView","availability","getAppAvailability","company","with_subscription","appHash","DevCenterAppDialogs","RestoreAppSizeButton","LegacyAppActions"],"mappings":"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"}
1
+ {"version":3,"file":"DevCenterAppContainer.js","sources":["../../../../src/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.tsx"],"sourcesContent":["import { useContext, useMemo, useState } from 'react';\nimport type { ComponentType, FC } from 'react';\nimport classNames from 'classnames';\nimport { noop, pick, pickBy } from 'lodash';\nimport { useTheme } from '@material-ui/core';\n\nimport AppContext from '../AppContext';\nimport { DevCenterRouterContext } from '../DevCenterRouterContext';\n\nimport {\n useAnnotationsData,\n useAnnotationsList,\n useAppMaximized,\n useAppSettings,\n useDevCenterAppProps,\n} from './effects';\nimport { DcFullscreenElemsCoordinatorProvider } from './components/DcFullscreenElemsCoordinatorProvider';\nimport { DevCenterAppDialogs } from './components/DevCenterAppDialogs';\nimport DevCenterAppView from './components/DevCenterAppView';\nimport { LegacyAppActions } from './components/LegacyAppActions';\nimport RestoreAppSizeButton from './components/RestoreAppSizeButton';\nimport { getAppAvailability, getAppVersion } from './utils';\nimport {\n APP_DATA_ASSET_KEYS,\n HOME_PATH_PREFIX,\n MOBILE_CLI_APP_GRID_WIDTH,\n PAGE_NAME,\n} from './constants';\nimport type {\n AppCoordinates,\n AppDataEntry,\n ChatActions,\n DashboardAppLastAnnotation,\n DevCenterAppResource,\n DevCenterCurrentUser,\n DevCenterMenuItem,\n DevCenterRouter,\n LayoutEnvironment,\n RegisterAITools,\n SetIsFullscreenModalMode,\n UpdateDashboardAppLastAnnotation,\n} from './types';\nimport type { FullscreenModes } from '../../../types';\n// Relative on purpose: a `~/` alias does not resolve from the published `.d.ts`.\nimport type { AppDashboardMeta } from '../../../componentsV2/AppCommonsProvider/AppCommonsContext';\nimport { CommentsSwitchProvider } from './components/CommentsSwitch';\n\nimport styles from './DevCenterAppContainer.scss';\n\nimport { isInsideNewMobileApp, isMobileDetected, isNativeDetected } from '~/utils/mobileDetect';\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 { AppCommonsProvider } from '~/componentsV2/AppCommonsProvider';\n\n/**\n * `Partial<FullscreenModes>` carries the seven browser-fullscreen and separate-window members.\n * `AppCommonsProvider` derives `isExpanded` from them and republishes them to the app bundle,\n * so dropping them silently disables both features — and nothing type-checks it, because every\n * member is optional on the provider.\n */\nexport type DevCenterAppContainerProps = Partial<FullscreenModes> & {\n app: DevCenterAppResource;\n currentUser: DevCenterCurrentUser;\n /** Platform router. Not React Router — the DC shell supplies its own. */\n devCenterRouter: DevCenterRouter;\n\n /**\n * Slots for the CLI app bundle's own components. `any` rather than a narrower prop type on\n * purpose: this accepts arbitrary app components, and any narrowing would reject the concretely\n * typed ones consumers pass.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- see the note above\n CLIAppComponent?: ComponentType<any> | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- see the note above\n CLIAppSettings?: ComponentType<any> | null;\n /** Defaults to `app.id` when omitted. */\n appId?: number;\n className?: string | null;\n chatActions?: ChatActions | null;\n coordinates?: AppCoordinates | null;\n currentDashboardAppsLastAnnotations?: DashboardAppLastAnnotation[] | null;\n dashboardMeta?: AppDashboardMeta;\n disableAppAssetSelection?: boolean;\n isActionsDisabled?: boolean;\n /**\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 */\n isNonIsolatedApp?: boolean;\n isSettingsDialogHidden?: boolean;\n layoutEnvironment?: LayoutEnvironment | null;\n onAppContainerClick?: () => void;\n onAppRemove?: () => void;\n onCloneDashboard?: () => void;\n onHelpCenterClick?: () => void;\n onIsMaximizedChange?: (isMaximized: boolean) => void;\n onReportBugClick?: (() => void) | null;\n onSettingChange?: (key: string, value: unknown) => void;\n onSettingsChange?: (value: unknown) => void;\n openIntercom?: () => void;\n registerAITools?: RegisterAITools;\n reloadApp?: () => void;\n setIsFullscreenModalMode?: SetIsFullscreenModalMode;\n timestamp?: number | null;\n updateCurrentDashboardAppLastAnnotation?: UpdateDashboardAppLastAnnotation;\n};\n\nconst isHomePage = (router: DevCenterRouter) =>\n !!router.location.pathname?.startsWith(HOME_PATH_PREFIX);\n\nconst DevCenterAppContainer: FC<DevCenterAppContainerProps> = ({\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 isNonIsolatedApp = false,\n isSettingsDialogHidden,\n layoutEnvironment,\n onAppContainerClick = noop,\n onAppRemove,\n onReportBugClick,\n onCloneDashboard,\n onHelpCenterClick,\n onIsMaximizedChange,\n onSettingChange = noop,\n onSettingsChange = noop,\n openIntercom = noop,\n registerAITools,\n setIsFullscreenModalMode = noop,\n timestamp,\n updateCurrentDashboardAppLastAnnotation,\n dashboardMeta,\n reloadApp,\n chatActions,\n}) => {\n // `AppContext` is still JavaScript and calls `createContext()` with no argument, so it hands\n // back `undefined`. Declared here rather than asserted; the real fix is a type argument on the\n // context itself, which belongs to `DevCenter/AppContext`.\n const appsData: Record<string, AppDataEntry> | undefined = useContext(AppContext);\n const theme = useTheme();\n const isMobileView = isNativeDetected || isMobileDetected;\n const [mainMenuItems, setMainMenuItems] = useState<DevCenterMenuItem[]>([]);\n const [secondaryMenuItems, setSecondaryMenuItems] = useState<DevCenterMenuItem[]>([]);\n // `||`, not `??`: DevCenterEmbeddedApp uses 0 as its unset sentinel for appId.\n const appDataKey = appId || app.id;\n const appData: AppDataEntry = (appDataKey ? appsData?.[appDataKey] : undefined) ?? {\n isLoading: true,\n };\n const application = app.package?.manifest?.application;\n const segment = getAppSegment(app);\n const isChiplessDashboard = !!dashboardMeta?.isChiplessDashboard;\n const isMultiRig = isDCAppMultiRig({\n uiSettings: application?.ui,\n isChiplessDashboard,\n });\n const isCommentsEnabled = !!application?.ui?.enable_comments;\n const appName = getAppName(app);\n const { isMaximized, setIsMaximized } = useAppMaximized({\n onIsMaximizedChange,\n devCenterRouter,\n appId,\n });\n\n // Isolated apps are mounted without the router query the timestamp normally comes from,\n // so the host passes it as a prop instead.\n const appTimestamp = timestamp || getTimestampFromQuery(devCenterRouter.location.query?.query);\n const isCLIApp = app.id === DEV_CENTER_CLI_APP_ID;\n // Memoised because the CLI-on-mobile branch builds a new object: unmemoised it would be a fresh\n // reference on every render and would keep `useDevCenterAppProps` from ever holding its memo.\n const updatedCoordinates = useMemo(\n () =>\n isCLIApp && isMobileView ? { ...coordinates, w: MOBILE_CLI_APP_GRID_WIDTH } : coordinates,\n [isCLIApp, isMobileView, coordinates]\n );\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 {\n appLastAnnotation,\n assetCompanyId,\n assetIdForAnnotation,\n isAppSupportsAnnotations: isAnnotationsSupported,\n } = useAnnotationsData({\n app,\n appData,\n currentDashboardAppsLastAnnotations,\n });\n\n const filteredAppData = useMemo(\n () => pickBy(pick(appData, APP_DATA_ASSET_KEYS), Boolean),\n [appData]\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 isAppHeadersV3Enabled = !!application?.ui?.use_app_header_v3;\n const isInsideHomePage = isHomePage(devCenterRouter);\n\n const appProps = useDevCenterAppProps({\n app,\n appLastAnnotation,\n appTimestamp,\n chatActions,\n coordinates: updatedCoordinates,\n currentUser,\n devCenterRouter,\n filteredAppData,\n isMaximized,\n layoutEnvironment,\n onSettingChange,\n onSettingsChange,\n registerAITools,\n segment,\n setIsFullscreenModalMode,\n setIsMaximized,\n setMainMenuItems,\n setSecondaryMenuItems,\n toggleAnnotationsList,\n toggleAppSettingsDialog,\n updateCurrentDashboardAppLastAnnotation,\n });\n\n // Called without the native event: this crosses an iframe boundary, where a DOM event\n // cannot be serialised.\n const handleAppContainerClick = () => onAppContainerClick();\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={isAppHeadersV3Enabled}\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={isAnnotationsSupported ? 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 <article\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 onClick={handleAppContainerClick}\n >\n <ToastContainer />\n <div className={styles.containerContent}>\n <DevCenterAppView\n // DC apps keep per-asset state in mount-time hooks, so a new asset means a\n // new mount. React 18 batching collapses away the `isLoading` frame this used\n // to rely on whenever AppsDataProvider serves the asset from its cache.\n key={appData.appHash}\n AppComponent={AppComponent}\n app={app}\n appData={filteredAppData}\n availability={getAppAvailability(\n app.availability,\n currentUser.company.with_subscription\n )}\n isCLIApp={isCLIApp}\n isLoading={isLoading}\n isMultiRig={isMultiRig}\n layoutEnvironment={layoutEnvironment ?? null}\n openIntercom={openIntercom}\n segment={segment}\n toggleAppSettingsDialog={toggleAppSettingsDialog}\n appProps={appProps}\n />\n </div>\n <DevCenterAppDialogs\n app={app}\n appData={appData}\n appName={appName}\n appSettingsComponent={AppSettings}\n assetCompanyId={assetCompanyId}\n assetIdForAnnotation={assetIdForAnnotation}\n currentUser={currentUser}\n disableAppAssetSelection={disableAppAssetSelection}\n isAnnotationsListOpened={isAnnotationsListOpened}\n isAppSettingsDialogOpened={isAppSettingsDialogOpened}\n isMultiRig={isMultiRig}\n isSettingsDialogHidden={isSettingsDialogHidden}\n layoutEnvironment={layoutEnvironment}\n onAppRemove={onAppRemove}\n onCloneDashboard={onCloneDashboard}\n onSettingsChange={onSettingsChange}\n openIntercom={openIntercom}\n toggleAnnotationsList={toggleAnnotationsList}\n toggleAppSettingsDialog={toggleAppSettingsDialog}\n />\n {isMaximized && !isAppHeadersV3Enabled && (\n <RestoreAppSizeButton setIsMaximized={setIsMaximized} />\n )}\n\n {!isActionsDisabled && (!isAppHeadersV3Enabled || isLoading) && (\n <LegacyAppActions\n app={app}\n currentUser={currentUser}\n devCenterRouter={devCenterRouter}\n isAnnotationsSupported={isAnnotationsSupported}\n isCLIApp={isCLIApp}\n isCommentsEnabled={isCommentsEnabled}\n isInsideNewMobileApp={isInsideNewMobileApp}\n isMaximized={isMaximized}\n isMobileView={isMobileView}\n mainMenuItems={mainMenuItems}\n secondaryMenuItems={secondaryMenuItems}\n onHelpCenterClick={onHelpCenterClick}\n onReportBugClick={onReportBugClick}\n setIsFullscreenModalMode={setIsFullscreenModalMode}\n setIsMaximized={setIsMaximized}\n toggleAnnotationsList={toggleAnnotationsList}\n toggleAppSettingsDialog={toggleAppSettingsDialog}\n />\n )}\n </article>\n </CommentsSwitchProvider>\n </AppCommonsProvider>\n </DcFullscreenElemsCoordinatorProvider>\n </DevCenterRouterContext.Provider>\n );\n};\n\nexport default DevCenterAppContainer;\n"],"names":["DevCenterAppContainer","_ref","_ref2","_app$package","_app$package$manifest","_application$ui","_devCenterRouter$loca","_application$ui2","_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","_ref$onSettingChange","onSettingChange","_ref$onSettingsChange","onSettingsChange","_ref$openIntercom","openIntercom","registerAITools","_ref$setIsFullscreenM","setIsFullscreenModalMode","timestamp","updateCurrentDashboardAppLastAnnotation","dashboardMeta","reloadApp","chatActions","appsData","useContext","AppContext","theme","useTheme","isMobileView","isNativeDetected","isMobileDetected","useState","_useState2","_slicedToArray","_useState","mainMenuItems","setMainMenuItems","_useState4","_useState3","secondaryMenuItems","setSecondaryMenuItems","appDataKey","id","appData","undefined","isLoading","application","package","manifest","segment","getAppSegment","isChiplessDashboard","isMultiRig","isDCAppMultiRig","uiSettings","ui","isCommentsEnabled","enable_comments","appName","getAppName","_useAppMaximized","useAppMaximized","isMaximized","setIsMaximized","appTimestamp","getTimestampFromQuery","location","query","isCLIApp","DEV_CENTER_CLI_APP_ID","updatedCoordinates","useMemo","_objectSpread","w","MOBILE_CLI_APP_GRID_WIDTH","version","getAppVersion","_useDevCenterApp","useDevCenterApp","isAppLoading","AppSettings","AppComponent","_useAppSettings","useAppSettings","isAppSettingsDialogOpened","toggleAppSettingsDialog","_useAnnotationsList","useAnnotationsList","isAnnotationsListOpened","toggleAnnotationsList","_useAnnotationsData","useAnnotationsData","appLastAnnotation","assetCompanyId","assetIdForAnnotation","isAnnotationsSupported","isAppSupportsAnnotations","filteredAppData","pickBy","pick","APP_DATA_ASSET_KEYS","Boolean","simplifiedSecondaryMenuItems","map","item","onClick","_item$onClick","call","to","push","isAppHeadersV3Enabled","use_app_header_v3","isInsideHomePage","pathname","startsWith","HOME_PATH_PREFIX","appProps","useDevCenterAppProps","_jsx","DevCenterRouterContext","Provider","value","children","DcFullscreenElemsCoordinatorProvider","AppCommonsProvider","maximized","setMaximized","appSettings","settings","appHeadersV3Enabled","appSettingsComponent","isInsideNewMobileApp","globalOffsetWells","globalOffsetWellsVersion","globalOffsetWellsToken","CommentsSwitchProvider","_jsxs","classNames","isLightTheme","styles","container","PAGE_NAME","ToastContainer","containerContent","DevCenterAppView","availability","getAppAvailability","company","with_subscription","appHash","DevCenterAppDialogs","RestoreAppSizeButton","LegacyAppActions"],"mappings":"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"}
@@ -4,6 +4,24 @@ export type GlobalOffsetWell = {
4
4
  id: number;
5
5
  [key: string]: unknown;
6
6
  };
7
+ /** Host-owned planning scope. Presence identifies a Well Planning dashboard. */
8
+ export type WellPlanningDashboardMeta = {
9
+ assetId: number | null;
10
+ dashboardId: string;
11
+ defaultDashboardKind?: string;
12
+ segment: string | null;
13
+ };
14
+ export type AppDashboardMeta = {
15
+ /** The host owns app identity and maximization controls. */
16
+ isEmbedded?: boolean;
17
+ isMultiAsset?: boolean;
18
+ isMultiWell?: boolean;
19
+ isChiplessDashboard?: boolean;
20
+ globalOffsetWells?: GlobalOffsetWell[];
21
+ globalOffsetWellsVersion?: number;
22
+ globalOffsetWellsToken?: number;
23
+ wellPlanning?: WellPlanningDashboardMeta;
24
+ };
7
25
  export type AppCommonsContextType = {
8
26
  maximized: boolean;
9
27
  appId: number;
@@ -18,12 +36,7 @@ export type AppCommonsContextType = {
18
36
  fracFleet?: FracFleet;
19
37
  interventionUnit?: InterventionUnit;
20
38
  wells?: Well[];
21
- dashboardMeta?: {
22
- isMultiAsset?: boolean;
23
- isMultiWell?: boolean;
24
- isChiplessDashboard?: boolean;
25
- globalOffsetWellsToken?: number;
26
- };
39
+ dashboardMeta?: AppDashboardMeta;
27
40
  appHeadersV3Enabled?: boolean;
28
41
  isNonIsolatedApp?: boolean;
29
42
  disableAppAssetSelection?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"AppCommonsContext.d.ts","sourceRoot":"","sources":["../../../src/componentsV2/AppCommonsProvider/AppCommonsContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAiB,SAAS,EAAc,MAAM,OAAO,CAAC;AAE5E,OAAO,EACL,GAAG,EACH,WAAW,EACX,KAAK,EACL,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,IAAI,EACJ,IAAI,EACL,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAIF,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,gBAAgB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAE3C,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,GAAG,CAAC,EAAE,KAAK,CAAC;IACZ,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IAGf,aAAa,CAAC,EAAE;QACd,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;IACF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAG9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACvC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,qBAAqB,GAC/D,OAAO,CAAC,eAAe,CAAC,GAAG;IACzB,8FAA8F;IAC9F,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAEzE,oBAAoB,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IAC1C,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,kBAAkB,CAAC,EAAE;QAAE,KAAK,EAAE,SAAS,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;QAAC,IAAI,CAAC,EAAE,SAAS,CAAA;KAAE,EAAE,CAAC;IACpF,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEJ,eAAO,MAAM,iBAAiB,wDAG7B,CAAC;AAEF,eAAO,MAAM,qBAAqB,qCAAsC,CAAC;AAEzE,eAAO,MAAM,aAAa,QAA0C,qBAAqB,CAAC"}
1
+ {"version":3,"file":"AppCommonsContext.d.ts","sourceRoot":"","sources":["../../../src/componentsV2/AppCommonsProvider/AppCommonsContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAiB,SAAS,EAAc,MAAM,OAAO,CAAC;AAE5E,OAAO,EACL,GAAG,EACH,WAAW,EACX,KAAK,EACL,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,IAAI,EACJ,IAAI,EACL,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,gFAAgF;AAChF,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,4DAA4D;IAC5D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACvC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE,yBAAyB,CAAC;CAC1C,CAAC;AAIF,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,gBAAgB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAE3C,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,GAAG,CAAC,EAAE,KAAK,CAAC;IACZ,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IAGf,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAG9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACvC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,qBAAqB,GAC/D,OAAO,CAAC,eAAe,CAAC,GAAG;IACzB,8FAA8F;IAC9F,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAEzE,oBAAoB,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IAC1C,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,kBAAkB,CAAC,EAAE;QAAE,KAAK,EAAE,SAAS,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;QAAC,IAAI,CAAC,EAAE,SAAS,CAAA;KAAE,EAAE,CAAC;IACpF,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEJ,eAAO,MAAM,iBAAiB,wDAG7B,CAAC;AAEF,eAAO,MAAM,qBAAqB,qCAAsC,CAAC;AAEzE,eAAO,MAAM,aAAa,QAA0C,qBAAqB,CAAC"}
@@ -1 +1 @@
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 } & Record<string, unknown>) | null;\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","useAppCommonsInternal","useContext","useAppCommons"],"mappings":"sDAwEO,IAAMA,EAAoBC,EAE/B,MAGWC,EAAwB,WAAH,OAASC,EAAWH,EAAkB,EAE3DI,EAAgB,WAAH,OAASD,EAAWH,EAAkB"}
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/** Host-owned planning scope. Presence identifies a Well Planning dashboard. */\nexport type WellPlanningDashboardMeta = {\n assetId: number | null;\n dashboardId: string;\n defaultDashboardKind?: string;\n segment: string | null;\n};\n\nexport type AppDashboardMeta = {\n /** The host owns app identity and maximization controls. */\n isEmbedded?: boolean;\n isMultiAsset?: boolean;\n isMultiWell?: boolean;\n isChiplessDashboard?: boolean;\n globalOffsetWells?: GlobalOffsetWell[];\n globalOffsetWellsVersion?: number;\n globalOffsetWellsToken?: number;\n wellPlanning?: WellPlanningDashboardMeta;\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?: AppDashboardMeta;\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 } & Record<string, unknown>) | null;\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","useAppCommonsInternal","useContext","useAppCommons"],"mappings":"sDAuFO,IAAMA,EAAoBC,EAE/B,MAGWC,EAAwB,WAAH,OAASC,EAAWH,EAAkB,EAE3DI,EAAgB,WAAH,OAASD,EAAWH,EAAkB"}
@@ -1,4 +1,5 @@
1
1
  export declare enum ActionsTestIds {
2
+ MoreButtonTestId = "CorvaUI.AppHeader.Actions.MoreButtonTestId",
2
3
  CollapseButtonTestId = "CorvaUI.AppHeader.Actions.CollapseButtonTestId",
3
4
  ExpandButtonTestId = "CorvaUI.AppHeader.Actions.ExpandButtonTestId",
4
5
  AdditionalActionItemTestId = "CorvaUI.AppHeader.Actions.AdditionalActionItemTestId",
@@ -1 +1 @@
1
- {"version":3,"file":"Actions.constants.d.ts","sourceRoot":"","sources":["../../../../../src/componentsV2/AppHeader/V3/Actions/Actions.constants.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACxB,oBAAoB,mDAAmD;IACvE,kBAAkB,iDAAiD;IACnE,0BAA0B,yDAAyD;IACnF,wBAAwB,uDAAuD;IAC/E,sBAAsB,qDAAqD;IAC3E,kBAAkB,iDAAiD;IACnE,2BAA2B,0DAA0D;IACrF,wBAAwB,uDAAuD;CAChF"}
1
+ {"version":3,"file":"Actions.constants.d.ts","sourceRoot":"","sources":["../../../../../src/componentsV2/AppHeader/V3/Actions/Actions.constants.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACxB,gBAAgB,+CAA+C;IAC/D,oBAAoB,mDAAmD;IACvE,kBAAkB,iDAAiD;IACnE,0BAA0B,yDAAyD;IACnF,wBAAwB,uDAAuD;IAC/E,sBAAsB,qDAAqD;IAC3E,kBAAkB,iDAAiD;IACnE,2BAA2B,0DAA0D;IACrF,wBAAwB,uDAAuD;CAChF"}
@@ -1,2 +1,2 @@
1
- var e;!function(e){e.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"}(e||(e={}));export{e as ActionsTestIds};
1
+ var e;!function(e){e.MoreButtonTestId="CorvaUI.AppHeader.Actions.MoreButtonTestId",e.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"}(e||(e={}));export{e as ActionsTestIds};
2
2
  //# sourceMappingURL=Actions.constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Actions.constants.js","sources":["../../../../../src/componentsV2/AppHeader/V3/Actions/Actions.constants.ts"],"sourcesContent":["export enum ActionsTestIds {\n CollapseButtonTestId = 'CorvaUI.AppHeader.Actions.CollapseButtonTestId',\n ExpandButtonTestId = 'CorvaUI.AppHeader.Actions.ExpandButtonTestId',\n AdditionalActionItemTestId = 'CorvaUI.AppHeader.Actions.AdditionalActionItemTestId',\n CloseCommentButtonTestId = 'CorvaUI.AppHeader.Actions.CloseCommentButtonTestId',\n AddMessageButtonTestId = 'CorvaUI.AppHeader.Actions.AddMessageButtonTestId',\n MaximizeItemTestId = 'CorvaUI.AppHeader.Actions.MaximizeItemTestId',\n BrowserFullscreenItemTestId = 'CorvaUI.AppHeader.Actions.BrowserFullscreenItemTestId',\n SeparateWindowItemTestId = 'CorvaUI.AppHeader.Actions.SeparateWindowItemTestId',\n}\n"],"names":["ActionsTestIds"],"mappings":"AAAA,IAAYA,GASX,SATWA,GAAAA,EAAc,qBAAA,iDAAdA,EAAc,mBAAA,+CAAdA,EAAc,2BAAA,uDAAdA,EAAc,yBAAA,qDAAdA,EAAc,uBAAA,mDAAdA,EAAc,mBAAA,+CAAdA,EAAc,4BAAA,wDAAdA,EAAc,yBAAA,oDAAdA,CASX,CATWA,IAAAA,EAAc,CAAA"}
1
+ {"version":3,"file":"Actions.constants.js","sources":["../../../../../src/componentsV2/AppHeader/V3/Actions/Actions.constants.ts"],"sourcesContent":["export enum ActionsTestIds {\n MoreButtonTestId = 'CorvaUI.AppHeader.Actions.MoreButtonTestId',\n CollapseButtonTestId = 'CorvaUI.AppHeader.Actions.CollapseButtonTestId',\n ExpandButtonTestId = 'CorvaUI.AppHeader.Actions.ExpandButtonTestId',\n AdditionalActionItemTestId = 'CorvaUI.AppHeader.Actions.AdditionalActionItemTestId',\n CloseCommentButtonTestId = 'CorvaUI.AppHeader.Actions.CloseCommentButtonTestId',\n AddMessageButtonTestId = 'CorvaUI.AppHeader.Actions.AddMessageButtonTestId',\n MaximizeItemTestId = 'CorvaUI.AppHeader.Actions.MaximizeItemTestId',\n BrowserFullscreenItemTestId = 'CorvaUI.AppHeader.Actions.BrowserFullscreenItemTestId',\n SeparateWindowItemTestId = 'CorvaUI.AppHeader.Actions.SeparateWindowItemTestId',\n}\n"],"names":["ActionsTestIds"],"mappings":"AAAA,IAAYA,GAUX,SAVWA,GAAAA,EAAc,iBAAA,6CAAdA,EAAc,qBAAA,iDAAdA,EAAc,mBAAA,+CAAdA,EAAc,2BAAA,uDAAdA,EAAc,yBAAA,qDAAdA,EAAc,uBAAA,mDAAdA,EAAc,mBAAA,+CAAdA,EAAc,4BAAA,wDAAdA,EAAc,yBAAA,oDAAdA,CAUX,CAVWA,IAAAA,EAAc,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Actions.d.ts","sourceRoot":"","sources":["../../../../../src/componentsV2/AppHeader/V3/Actions/Actions.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAA0B,MAAM,cAAc,CAAC;AAsBxE,KAAK,YAAY,GAAG;IAClB,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACvC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAOF,eAAO,MAAM,OAAO,iFAKjB,YAAY,4CAiTd,CAAC"}
1
+ {"version":3,"file":"Actions.d.ts","sourceRoot":"","sources":["../../../../../src/componentsV2/AppHeader/V3/Actions/Actions.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAA0B,MAAM,cAAc,CAAC;AAsBxE,KAAK,YAAY,GAAG;IAClB,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACvC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAOF,eAAO,MAAM,OAAO,iFAKjB,YAAY,4CAmTd,CAAC"}
@@ -1,2 +1,2 @@
1
- import o from"@babel/runtime/helpers/toConsumableArray";import s from"@babel/runtime/helpers/defineProperty";import n from"@babel/runtime/helpers/slicedToArray";import t from"@babel/runtime/helpers/typeof";import{useState as i,useRef as c,useCallback as e,useEffect as r,useMemo as m,Fragment as p}from"react";import l from"classnames";import{ButtonIcon as u}from"../../../ButtonIcon/ButtonIcon.js";import{Tooltip as a}from"../../../Tooltip/Tooltip.js";import{SettingsButton as d}from"../SettingsButton/SettingsButton.js";import"../SettingsButton/SettingsButton.constants.js";import{Menu as j}from"../../../Menu/Menu.js";import"../../../AppCommonsProvider/AppCommonsProvider.js";import{useAppCommonsInternal as I}from"../../../AppCommonsProvider/AppCommonsContext.js";import{useAppSettingsPanel as C}from"../../../AppPanel/AppPanelsContext.js";import{HideInNativeApp as f}from"../../../HideInNativeApp/index.js";import{ActionsTestIds as h}from"./Actions.constants.js";import b from"./Actions.scss.js";import{CollapseIcon as g,ExpandIcon as y,CloseSmallIcon as O,MoreOneIcon as v,MessageIcon as A,SettingTwoIcon as B}from"../../../../icons/iconParkIcons.js";import{AddMessageCustomIcon as P}from"../../../../icons/customIcons/icons/AddMessage.js";import"../../../../icons/customIcons/icons/DragOne.js";import"../../../../icons/customIcons/icons/Attention.js";import"../../../../icons/customIcons/icons/Collapse.js";import"../../../../icons/customIcons/icons/Dashboard.js";import"../../../../icons/customIcons/icons/Expand.js";import"../../../../icons/customIcons/icons/FolderClosed.js";import"../../../../icons/customIcons/icons/FolderClosedFilled.js";import"../../../../icons/customIcons/icons/FolderOpened.js";import"../../../../icons/customIcons/icons/GreaterOrEqual.js";import"../../../../icons/customIcons/icons/LessOrEqual.js";import"../../../../icons/customIcons/icons/Search.js";import"../../../../icons/customIcons/icons/SearchOne.js";import"../../../../icons/customIcons/icons/Wellhub.js";import"../../../../icons/customIcons/icons/MultiRuler.js";import"../../../../icons/customIcons/icons/Checkbox.js";import"../../../../icons/customIcons/icons/CheckboxChecked.js";import"../../../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../../../icons/customIcons/icons/Radio.js";import"../../../../icons/customIcons/icons/RadioChecked.js";import"../../../../icons/customIcons/icons/SimulFrac.js";import"../../../../icons/customIcons/icons/ZipperFrac.js";import"../../../../icons/customIcons/icons/CautionFilled.js";import"../../../../icons/customIcons/icons/InfoRounded.js";import"../../../../icons/customIcons/icons/FlameFilled.js";import"../../../../icons/customIcons/icons/MoreApp.js";import"../../../../icons/customIcons/icons/Pad.js";import"../../../../icons/customIcons/icons/DrilloutUnit.js";import"../../../../icons/customIcons/icons/FracFleet.js";import"../../../../icons/customIcons/icons/Global.js";import"../../../../icons/customIcons/icons/Program.js";import"../../../../icons/customIcons/icons/Rig.js";import"../../../../icons/customIcons/icons/Well.js";import"../../../../icons/customIcons/icons/Gap.js";import"../../../../icons/customIcons/icons/Pin.js";import"../../../../icons/customIcons/icons/PinOne.js";import"../../../../icons/customIcons/icons/PinOneCrossed.js";import"../../../../icons/customIcons/icons/CloseOneFilled.js";import"../../../../icons/customIcons/icons/AttentionFilled.js";import"../../../../icons/customIcons/icons/CheckOneFilled.js";import"../../../../icons/customIcons/icons/Archive.js";import"../../../../icons/customIcons/icons/ArchiveCancel.js";import"../../../../icons/customIcons/icons/Unarchive.js";import"../../../../icons/customIcons/icons/Archived.js";import"../../../../icons/customIcons/icons/InterventionUnit.js";import"../../../../icons/customIcons/icons/CloudDelete.js";import"../../../../icons/customIcons/icons/Lasso.js";import"../../../../icons/customIcons/icons/Radius.js";import"../../../../icons/customIcons/icons/ErrorOps.js";import"../../../../icons/customIcons/icons/DataTypeOps.js";import"../../../../icons/customIcons/icons/FalsePositiveOps.js";import"../../../../icons/customIcons/icons/CalibrationOps.js";import"../../../../icons/customIcons/icons/CriticalOps.js";import"../../../../icons/customIcons/icons/Company.js";import"../../../../icons/customIcons/icons/ArchiveOne.js";import"../../../../icons/customIcons/icons/ParseBotFusion.js";import"../../../../icons/customIcons/icons/Connect.js";import"../../../../icons/customIcons/icons/PuzzleOne.js";import"../../../../icons/customIcons/icons/Feed.js";import"../../../../icons/customIcons/icons/Prompt.js";import"../../../../icons/customIcons/icons/Companies.js";import"../../../../icons/customIcons/icons/ClipboardAi.js";import"../../../../icons/customIcons/icons/Key.js";import"../../../../icons/customIcons/icons/AtSignCrossed.js";import"../../../../icons/customIcons/icons/MappingManual.js";import"../../../../icons/customIcons/icons/Mapping.js";import"../../../../icons/customIcons/icons/Metrics.js";import"../../../../icons/customIcons/icons/Drops.js";import"../../../../icons/customIcons/icons/ClipboardSearch.js";import"../../../../icons/customIcons/icons/Template.js";import"../../../../icons/customIcons/icons/ClipboardMetrics.js";import"../../../../icons/customIcons/icons/ClipboardBuilder.js";import"../../../../icons/customIcons/icons/UnitConversion.js";import"../../../../icons/customIcons/icons/NPT.js";import"../../../../icons/customIcons/icons/GuidedFrac.js";import"../../../../clients/subscriptions/constants.js";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/regenerator";import"querystring";import"uuid/v1";import"lodash";import"../../../../clients/subscriptions.v1.js";import"../../../../clients/jsonApi/index.js";import"../../../../clients/subscriptions/subscriptions-client.factory.js";import"immutable";import"query-string";import"../../../../constants/goals.js";import"../../../../constants/segment.js";import"../../../../constants/alerts.js";import"../../../../constants/apps.js";import"../../../../constants/drillstring.js";import"../../../../constants/completion.js";import"../../../../constants/appPackages.js";import"../../../../constants/notifications.js";import"../../../../constants/feed.js";import"../../../../constants/bha.js";import"../../../../constants/corvaCompanyId.js";import"../../../../components/GradientManager/configuration/constants.js";import"../../../../utils/index.js";import"uuid";import"jsona";import"../../../../utils/env.js";import"../../../../components/StatusBadge/constants.js";import"lodash/set";import"lodash/get";import"lodash/unset";import"moment";import"../../../../clients/api/apiCore.js";import"../../../../clients/constants.js";import"../../../../clients/sso/auth0.js";import"../../../../clients/sso/oauth2.js";import"../../../../clients/api/rateLimiter.js";import"lodash/isEmpty";import"lodash/sortBy";import"../../../../constants/streamSourceType.js";import{useAppCommentsMode as S,useSetAppCommentsMode as k}from"../../../../components/DevCenter/DevCenterAppContainer/components/CommentsSwitch/CommentsSwitchContext.js";import{isInsideNewMobileApp as F}from"../../../../utils/mobileDetect.js";import{jsx as M,jsxs as x,Fragment as w}from"react/jsx-runtime";function T(o,s){var n=Object.keys(o);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(o);s&&(t=t.filter((function(s){return Object.getOwnPropertyDescriptor(o,s).enumerable}))),n.push.apply(n,t)}return n}function D(o){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?T(Object(t),!0).forEach((function(n){s(o,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(t)):T(Object(t)).forEach((function(s){Object.defineProperty(o,s,Object.getOwnPropertyDescriptor(t,s))}))}return o}var z=function(o){return!!o&&"object"===t(o)&&"title"in o},E=function(s){var t=s.additionalActions,T=s.showComments,E=s.disableSettings,W=s.hideSettingsUnderMore,N=I(),R=N.maximized,U=N.setMaximized,G=N.appSettingsComponent,q=N.isExpanded,L=N.isBrowserFullscreen,H=N.enterBrowserFullscreen,K=N.exitBrowserFullscreen,Z=N.isSeparateWindow,J=N.openSeparateWindow,Q=N.closeSeparateWindow,V=S(),X=k(),Y=i(!1),$=n(Y,2),_=$[0],oo=$[1],so=c(null),no=c(null),to=i(!0),io=n(to,2),co=io[0],eo=io[1],ro=i(!1),mo=n(ro,2),po=mo[0],lo=mo[1],uo=c(null),ao=c(!1),jo=C(),Io=jo.open,Co=jo.isOpen,fo=!!G&&!E,ho=e((function(){oo((function(o){return!o}))}),[]),bo=e((function(){X((function(o){return!o}))}),[X]),go=e((function(){ao.current=!1,lo(!1)}),[]),yo=e((function(){eo(!1),go(),Z?null==Q||Q():L?null==K||K():U(!R)}),[go,Q,K,L,Z,R,U]),Oo=Z?"Close Separate Window":q?"Restore":"Maximize",vo=e((function(){uo.current&&(clearTimeout(uo.current),uo.current=null)}),[]),Ao=e((function(){!q&&H&&(vo(),uo.current=setTimeout((function(){ao.current=!0,lo(!0)}),500))}),[vo,H,q]);r((function(){return vo}),[vo]);var Bo=e((function(){ao.current?ao.current=!1:yo()}),[yo]),Po=e((function(){go(),null==J||J()}),[go,J]),So=e((function(){go(),null==H||H()}),[go,H]);r((function(){eo(!0)}),[q]);var ko=m((function(){if(F)return[];var s=function(o){return function(){ho(),null==o||o()}},n=(t||[]).filter(z).map((function(o){return D(D({},o),{},{onClick:s(o.onClick)})})),i={icon:M(A,{}),onClick:s(bo),title:V?"Close Comments Mode":"Add Comment"},c={title:Oo,onClick:s(yo),icon:M(q?g:y,{})},e={title:"Settings",onClick:s(Io),icon:M(B,{})};return[].concat(o(n),o(T?[i]:[]),o(W&&fo?[e]:[]),[c])}),[t,V,W,q,Oo,Io,fo,T,bo,yo,ho]),Fo=ko.length>1,Mo=M(u,{size:"small",type:"tertiaryBg",ref:no,onClick:Bo,onMouseDown:Ao,onMouseUp:vo,onMouseLeave:vo,className:Fo?b.fullscreenButton:void 0,testId:q?h.CollapseButtonTestId:h.ExpandButtonTestId,children:M(q?g:y,{})});return x(w,{children:[M(f,{children:null==t?void 0:t.map((function(o,s){return z(o)?M(a,{title:o.title,children:M(u,{size:"small",type:"tertiary",onClick:o.onClick,className:l(b.additionalActionButton),testId:h.AdditionalActionItemTestId,children:o.icon})},s):M(p,{children:o},s)}))}),M(f,{children:T&&M(a,{title:V?"Close Comments Mode":"Add Comment",children:M(u,{size:"small",type:V?"secondaryBg":"tertiaryBg",onClick:bo,className:Fo?b.commentButton:void 0,testId:V?h.CloseCommentButtonTestId:h.AddMessageButtonTestId,children:V?M(O,{}):M(P,{fill:"currentColor"})})})}),fo&&M(d,{className:W&&!F?b.settingsHiddenUnderMore:void 0}),x(f,{children:[co?M(a,{title:Oo,children:Mo}):Mo,no.current&&x(j,{anchorEl:no.current,open:po,onClose:go,placement:"bottom-end",children:[M(j.Item,{onClick:yo,testId:h.MaximizeItemTestId,children:"Maximize"}),M(j.Item,{onClick:So,testId:h.BrowserFullscreenItemTestId,children:"Full Screen"}),M(j.Item,{onClick:Po,testId:h.SeparateWindowItemTestId,children:"Separate Window"})]})]}),x(f,{children:[Fo&&M(a,{title:"More",children:M(u,{type:_||W&&Co?"secondaryBg":"tertiaryBg",className:b.moreButton,ref:so,onClick:ho,size:"small",children:M(v,{})})}),Fo&&so.current&&M(j,{anchorEl:so.current,open:_,onClose:ho,placement:"bottom-end",children:ko.map((function(o,s){return M(j.Item,{size:"large",prefix:o.icon,onClick:o.onClick,children:o.title},s)}))})]})]})};export{E as Actions};
1
+ import o from"@babel/runtime/helpers/toConsumableArray";import s from"@babel/runtime/helpers/defineProperty";import n from"@babel/runtime/helpers/slicedToArray";import t from"@babel/runtime/helpers/typeof";import{useState as i,useRef as c,useCallback as e,useEffect as r,useMemo as m,Fragment as p}from"react";import l from"classnames";import{ButtonIcon as u}from"../../../ButtonIcon/ButtonIcon.js";import{Tooltip as a}from"../../../Tooltip/Tooltip.js";import{SettingsButton as d}from"../SettingsButton/SettingsButton.js";import"../SettingsButton/SettingsButton.constants.js";import{Menu as j}from"../../../Menu/Menu.js";import"../../../AppCommonsProvider/AppCommonsProvider.js";import{useAppCommonsInternal as I}from"../../../AppCommonsProvider/AppCommonsContext.js";import{useAppSettingsPanel as C}from"../../../AppPanel/AppPanelsContext.js";import{HideInNativeApp as f}from"../../../HideInNativeApp/index.js";import{ActionsTestIds as h}from"./Actions.constants.js";import b from"./Actions.scss.js";import{CollapseIcon as g,ExpandIcon as y,CloseSmallIcon as O,MoreOneIcon as v,MessageIcon as A,SettingTwoIcon as B}from"../../../../icons/iconParkIcons.js";import{AddMessageCustomIcon as M}from"../../../../icons/customIcons/icons/AddMessage.js";import"../../../../icons/customIcons/icons/DragOne.js";import"../../../../icons/customIcons/icons/Attention.js";import"../../../../icons/customIcons/icons/Collapse.js";import"../../../../icons/customIcons/icons/Dashboard.js";import"../../../../icons/customIcons/icons/Expand.js";import"../../../../icons/customIcons/icons/FolderClosed.js";import"../../../../icons/customIcons/icons/FolderClosedFilled.js";import"../../../../icons/customIcons/icons/FolderOpened.js";import"../../../../icons/customIcons/icons/GreaterOrEqual.js";import"../../../../icons/customIcons/icons/LessOrEqual.js";import"../../../../icons/customIcons/icons/Search.js";import"../../../../icons/customIcons/icons/SearchOne.js";import"../../../../icons/customIcons/icons/Wellhub.js";import"../../../../icons/customIcons/icons/MultiRuler.js";import"../../../../icons/customIcons/icons/Checkbox.js";import"../../../../icons/customIcons/icons/CheckboxChecked.js";import"../../../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../../../icons/customIcons/icons/Radio.js";import"../../../../icons/customIcons/icons/RadioChecked.js";import"../../../../icons/customIcons/icons/SimulFrac.js";import"../../../../icons/customIcons/icons/ZipperFrac.js";import"../../../../icons/customIcons/icons/CautionFilled.js";import"../../../../icons/customIcons/icons/InfoRounded.js";import"../../../../icons/customIcons/icons/FlameFilled.js";import"../../../../icons/customIcons/icons/MoreApp.js";import"../../../../icons/customIcons/icons/Pad.js";import"../../../../icons/customIcons/icons/DrilloutUnit.js";import"../../../../icons/customIcons/icons/FracFleet.js";import"../../../../icons/customIcons/icons/Global.js";import"../../../../icons/customIcons/icons/Program.js";import"../../../../icons/customIcons/icons/Rig.js";import"../../../../icons/customIcons/icons/Well.js";import"../../../../icons/customIcons/icons/Gap.js";import"../../../../icons/customIcons/icons/Pin.js";import"../../../../icons/customIcons/icons/PinOne.js";import"../../../../icons/customIcons/icons/PinOneCrossed.js";import"../../../../icons/customIcons/icons/CloseOneFilled.js";import"../../../../icons/customIcons/icons/AttentionFilled.js";import"../../../../icons/customIcons/icons/CheckOneFilled.js";import"../../../../icons/customIcons/icons/Archive.js";import"../../../../icons/customIcons/icons/ArchiveCancel.js";import"../../../../icons/customIcons/icons/Unarchive.js";import"../../../../icons/customIcons/icons/Archived.js";import"../../../../icons/customIcons/icons/InterventionUnit.js";import"../../../../icons/customIcons/icons/CloudDelete.js";import"../../../../icons/customIcons/icons/Lasso.js";import"../../../../icons/customIcons/icons/Radius.js";import"../../../../icons/customIcons/icons/ErrorOps.js";import"../../../../icons/customIcons/icons/DataTypeOps.js";import"../../../../icons/customIcons/icons/FalsePositiveOps.js";import"../../../../icons/customIcons/icons/CalibrationOps.js";import"../../../../icons/customIcons/icons/CriticalOps.js";import"../../../../icons/customIcons/icons/Company.js";import"../../../../icons/customIcons/icons/ArchiveOne.js";import"../../../../icons/customIcons/icons/ParseBotFusion.js";import"../../../../icons/customIcons/icons/Connect.js";import"../../../../icons/customIcons/icons/PuzzleOne.js";import"../../../../icons/customIcons/icons/Feed.js";import"../../../../icons/customIcons/icons/Prompt.js";import"../../../../icons/customIcons/icons/Companies.js";import"../../../../icons/customIcons/icons/ClipboardAi.js";import"../../../../icons/customIcons/icons/Key.js";import"../../../../icons/customIcons/icons/AtSignCrossed.js";import"../../../../icons/customIcons/icons/MappingManual.js";import"../../../../icons/customIcons/icons/Mapping.js";import"../../../../icons/customIcons/icons/Metrics.js";import"../../../../icons/customIcons/icons/Drops.js";import"../../../../icons/customIcons/icons/ClipboardSearch.js";import"../../../../icons/customIcons/icons/Template.js";import"../../../../icons/customIcons/icons/ClipboardMetrics.js";import"../../../../icons/customIcons/icons/ClipboardBuilder.js";import"../../../../icons/customIcons/icons/UnitConversion.js";import"../../../../icons/customIcons/icons/NPT.js";import"../../../../icons/customIcons/icons/GuidedFrac.js";import"../../../../clients/subscriptions/constants.js";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/regenerator";import"querystring";import"uuid/v1";import"lodash";import"../../../../clients/subscriptions.v1.js";import"../../../../clients/jsonApi/index.js";import"../../../../clients/subscriptions/subscriptions-client.factory.js";import"immutable";import"query-string";import"../../../../constants/goals.js";import"../../../../constants/segment.js";import"../../../../constants/alerts.js";import"../../../../constants/apps.js";import"../../../../constants/drillstring.js";import"../../../../constants/completion.js";import"../../../../constants/appPackages.js";import"../../../../constants/notifications.js";import"../../../../constants/feed.js";import"../../../../constants/bha.js";import"../../../../constants/corvaCompanyId.js";import"../../../../components/GradientManager/configuration/constants.js";import"../../../../utils/index.js";import"uuid";import"jsona";import"../../../../utils/env.js";import"../../../../components/StatusBadge/constants.js";import"lodash/set";import"lodash/get";import"lodash/unset";import"moment";import"../../../../clients/api/apiCore.js";import"../../../../clients/constants.js";import"../../../../clients/sso/auth0.js";import"../../../../clients/sso/oauth2.js";import"../../../../clients/api/rateLimiter.js";import"lodash/isEmpty";import"lodash/sortBy";import"../../../../constants/streamSourceType.js";import{useAppCommentsMode as P,useSetAppCommentsMode as S}from"../../../../components/DevCenter/DevCenterAppContainer/components/CommentsSwitch/CommentsSwitchContext.js";import{isInsideNewMobileApp as k}from"../../../../utils/mobileDetect.js";import{jsx as F,jsxs as x,Fragment as w}from"react/jsx-runtime";function T(o,s){var n=Object.keys(o);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(o);s&&(t=t.filter((function(s){return Object.getOwnPropertyDescriptor(o,s).enumerable}))),n.push.apply(n,t)}return n}function D(o){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?T(Object(t),!0).forEach((function(n){s(o,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(t)):T(Object(t)).forEach((function(s){Object.defineProperty(o,s,Object.getOwnPropertyDescriptor(t,s))}))}return o}var z=function(o){return!!o&&"object"===t(o)&&"title"in o},E=function(s){var t=s.additionalActions,T=s.showComments,E=s.disableSettings,W=s.hideSettingsUnderMore,N=I(),R=N.maximized,U=N.setMaximized,G=N.appSettingsComponent,q=N.isExpanded,L=N.isBrowserFullscreen,H=N.enterBrowserFullscreen,K=N.exitBrowserFullscreen,Z=N.isSeparateWindow,J=N.openSeparateWindow,Q=N.closeSeparateWindow,V=N.dashboardMeta,X=!(null==V||!V.isEmbedded),Y=P(),$=S(),_=i(!1),oo=n(_,2),so=oo[0],no=oo[1],to=c(null),io=c(null),co=i(!0),eo=n(co,2),ro=eo[0],mo=eo[1],po=i(!1),lo=n(po,2),uo=lo[0],ao=lo[1],jo=c(null),Io=c(!1),Co=C(),fo=Co.open,ho=Co.isOpen,bo=!!G&&!E,go=e((function(){no((function(o){return!o}))}),[]),yo=e((function(){$((function(o){return!o}))}),[$]),Oo=e((function(){Io.current=!1,ao(!1)}),[]),vo=e((function(){mo(!1),Oo(),Z?null==Q||Q():L?null==K||K():U(!R)}),[Oo,Q,K,L,Z,R,U]),Ao=Z?"Close Separate Window":q?"Restore":"Maximize",Bo=e((function(){jo.current&&(clearTimeout(jo.current),jo.current=null)}),[]),Mo=e((function(){!q&&H&&(Bo(),jo.current=setTimeout((function(){Io.current=!0,ao(!0)}),500))}),[Bo,H,q]);r((function(){return Bo}),[Bo]);var Po=e((function(){Io.current?Io.current=!1:vo()}),[vo]),So=e((function(){Oo(),null==J||J()}),[Oo,J]),ko=e((function(){Oo(),null==H||H()}),[Oo,H]);r((function(){mo(!0)}),[q]);var Fo=m((function(){if(k)return[];var s=function(o){return function(){go(),null==o||o()}},n=(t||[]).filter(z).map((function(o){return D(D({},o),{},{onClick:s(o.onClick)})})),i={icon:F(A,{}),onClick:s(yo),title:Y?"Close Comments Mode":"Add Comment"},c={title:Ao,onClick:s(vo),icon:F(q?g:y,{})},e={title:"Settings",onClick:s(fo),icon:F(B,{})};return[].concat(o(n),o(T?[i]:[]),o(W&&bo?[e]:[]),o(X?[]:[c]))}),[t,Y,W,q,Ao,fo,bo,T,X,yo,vo,go]),xo=Fo.length>(X?0:1),wo=F(u,{size:"small",type:"tertiaryBg",ref:io,onClick:Po,onMouseDown:Mo,onMouseUp:Bo,onMouseLeave:Bo,className:xo?b.fullscreenButton:void 0,testId:q?h.CollapseButtonTestId:h.ExpandButtonTestId,children:F(q?g:y,{})}),To=ro?F(a,{title:Ao,children:wo}):wo;return x(w,{children:[F(f,{children:null==t?void 0:t.map((function(o,s){return z(o)?F(a,{title:o.title,children:F(u,{size:"small",type:"tertiary",onClick:o.onClick,className:l(b.additionalActionButton),testId:h.AdditionalActionItemTestId,children:o.icon})},s):F(p,{children:o},s)}))}),F(f,{children:T&&F(a,{title:Y?"Close Comments Mode":"Add Comment",children:F(u,{size:"small",type:Y?"secondaryBg":"tertiaryBg",onClick:yo,className:xo?b.commentButton:void 0,testId:Y?h.CloseCommentButtonTestId:h.AddMessageButtonTestId,children:Y?F(O,{}):F(M,{fill:"currentColor"})})})}),bo&&F(d,{className:W&&!k?b.settingsHiddenUnderMore:void 0}),x(f,{children:[!X&&To,!X&&io.current&&x(j,{anchorEl:io.current,open:uo,onClose:Oo,placement:"bottom-end",children:[F(j.Item,{onClick:vo,testId:h.MaximizeItemTestId,children:"Maximize"}),F(j.Item,{onClick:ko,testId:h.BrowserFullscreenItemTestId,children:"Full Screen"}),F(j.Item,{onClick:So,testId:h.SeparateWindowItemTestId,children:"Separate Window"})]})]}),x(f,{children:[xo&&F(a,{title:"More",children:F(u,{type:so||W&&ho?"secondaryBg":"tertiaryBg",className:b.moreButton,ref:to,testId:h.MoreButtonTestId,onClick:go,size:"small",children:F(v,{})})}),xo&&to.current&&F(j,{anchorEl:to.current,open:so,onClose:go,placement:"bottom-end",children:Fo.map((function(o,s){return F(j.Item,{size:"large",prefix:o.icon,onClick:o.onClick,children:o.title},s)}))})]})]})};export{E as Actions};
2
2
  //# sourceMappingURL=Actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Actions.js","sources":["../../../../../src/componentsV2/AppHeader/V3/Actions/Actions.tsx"],"sourcesContent":["import { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport classNames from 'classnames';\n\nimport { ButtonIcon } from '../../../ButtonIcon';\nimport { Tooltip } from '../../../Tooltip';\nimport { SettingsButton } from '../SettingsButton';\nimport { AdditionalAction, AdditionalActionObject } from '../constants';\nimport { Menu } from '../../../Menu';\nimport { useAppCommonsInternal } from '../../../AppCommonsProvider';\nimport { useAppSettingsPanel } from '../../../AppPanel/AppPanelsContext';\nimport { HideInNativeApp } from '../../../HideInNativeApp';\n\nimport { ActionsTestIds } from './Actions.constants';\n\nimport styles from './Actions.scss';\n\nimport {\n AddMessageCustomIcon,\n CloseSmallIcon,\n CollapseIcon,\n ExpandIcon,\n MessageIcon,\n MoreOneIcon,\n SettingTwoIcon,\n} from '~/icons';\nimport { useAppCommentsMode, useSetAppCommentsMode } from '~/effects';\nimport { isInsideNewMobileApp } from '~/utils/mobileDetect';\n\ntype ActionsProps = {\n additionalActions?: AdditionalAction[];\n showComments?: boolean;\n disableSettings?: boolean;\n hideSettingsUnderMore?: boolean;\n};\n\nconst isActionObject = (action: AdditionalAction): action is AdditionalActionObject =>\n !!action && typeof action === 'object' && 'title' in action;\n\nconst LONG_PRESS_DELAY_MS = 500;\n\nexport const Actions = ({\n additionalActions,\n showComments,\n disableSettings,\n hideSettingsUnderMore,\n}: ActionsProps) => {\n const {\n maximized,\n setMaximized,\n appSettingsComponent,\n isExpanded,\n isBrowserFullscreen,\n enterBrowserFullscreen,\n exitBrowserFullscreen,\n isSeparateWindow,\n openSeparateWindow,\n closeSeparateWindow,\n } = useAppCommonsInternal();\n const commentsEnabled = useAppCommentsMode();\n const setCommentsMode = useSetAppCommentsMode();\n const [moreMenuOpen, setMoreMenuOpen] = useState(false);\n const moreButtonRef = useRef<HTMLButtonElement>(null);\n const maximizeButtonRef = useRef<HTMLButtonElement>(null);\n const [showMaximizeTooltip, setShowMaximizeTooltip] = useState(true);\n const [isModesMenuOpen, setIsModesMenuOpen] = useState(false);\n const longPressTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const isLongPressRef = useRef(false);\n\n const { open, isOpen } = useAppSettingsPanel();\n const settingsVisible = !!appSettingsComponent && !disableSettings;\n\n const toggleMoreMenu = useCallback(() => {\n setMoreMenuOpen(value => !value);\n }, []);\n\n const toggleCommentsMode = useCallback(() => {\n setCommentsMode(value => !value);\n }, [setCommentsMode]);\n\n const closeModesMenu = useCallback(() => {\n isLongPressRef.current = false;\n setIsModesMenuOpen(false);\n }, []);\n\n const toggleMaximized = useCallback(() => {\n setShowMaximizeTooltip(false);\n closeModesMenu();\n\n if (isSeparateWindow) {\n closeSeparateWindow?.();\n return;\n }\n\n if (isBrowserFullscreen) {\n exitBrowserFullscreen?.();\n return;\n }\n\n setMaximized(!maximized);\n }, [\n closeModesMenu,\n closeSeparateWindow,\n exitBrowserFullscreen,\n isBrowserFullscreen,\n isSeparateWindow,\n maximized,\n setMaximized,\n ]);\n\n const maximizeTooltip = isSeparateWindow\n ? 'Close Separate Window'\n : isExpanded\n ? 'Restore'\n : 'Maximize';\n\n const cancelLongPress = useCallback(() => {\n if (longPressTimerRef.current) {\n clearTimeout(longPressTimerRef.current);\n longPressTimerRef.current = null;\n }\n }, []);\n\n const handleMaximizeMouseDown = useCallback(() => {\n if (isExpanded || !enterBrowserFullscreen) return;\n\n cancelLongPress();\n longPressTimerRef.current = setTimeout(() => {\n isLongPressRef.current = true;\n setIsModesMenuOpen(true);\n }, LONG_PRESS_DELAY_MS);\n }, [cancelLongPress, enterBrowserFullscreen, isExpanded]);\n\n useEffect(() => cancelLongPress, [cancelLongPress]);\n\n const handleMaximizeClick = useCallback(() => {\n if (isLongPressRef.current) {\n isLongPressRef.current = false;\n return;\n }\n\n toggleMaximized();\n }, [toggleMaximized]);\n\n const handleSeparateWindowClick = useCallback(() => {\n closeModesMenu();\n openSeparateWindow?.();\n }, [closeModesMenu, openSeparateWindow]);\n\n const handleBrowserFullscreenClick = useCallback(() => {\n closeModesMenu();\n enterBrowserFullscreen?.();\n }, [closeModesMenu, enterBrowserFullscreen]);\n\n useEffect(() => {\n setShowMaximizeTooltip(true);\n }, [isExpanded]);\n\n const menuActionItems = useMemo(() => {\n if (isInsideNewMobileApp) return [];\n\n const getOnClick = (handler: AdditionalActionObject['onClick']) => () => {\n toggleMoreMenu();\n handler?.();\n };\n\n const objectActions = (additionalActions || [])\n .filter(isActionObject)\n .map(item => ({ ...item, onClick: getOnClick(item.onClick) }));\n\n const commentItem: AdditionalActionObject = {\n icon: <MessageIcon />,\n onClick: getOnClick(toggleCommentsMode),\n title: commentsEnabled ? 'Close Comments Mode' : 'Add Comment',\n };\n\n const maximizeItem: AdditionalActionObject = {\n title: maximizeTooltip,\n onClick: getOnClick(toggleMaximized),\n icon: isExpanded ? <CollapseIcon /> : <ExpandIcon />,\n };\n\n const settingsItem = {\n title: 'Settings',\n onClick: getOnClick(open),\n icon: <SettingTwoIcon />,\n };\n\n return [\n ...objectActions,\n ...(showComments ? [commentItem] : []),\n ...(hideSettingsUnderMore && settingsVisible ? [settingsItem] : []),\n maximizeItem,\n ];\n }, [\n additionalActions,\n commentsEnabled,\n hideSettingsUnderMore,\n isExpanded,\n maximizeTooltip,\n open,\n settingsVisible,\n showComments,\n toggleCommentsMode,\n toggleMaximized,\n toggleMoreMenu,\n ]);\n\n // Show menu only if there's something there besides the fullscreen item\n const hasMenu = menuActionItems.length > 1;\n\n const maximizeButton = (\n <ButtonIcon\n size=\"small\"\n type=\"tertiaryBg\"\n ref={maximizeButtonRef}\n onClick={handleMaximizeClick}\n onMouseDown={handleMaximizeMouseDown}\n onMouseUp={cancelLongPress}\n onMouseLeave={cancelLongPress}\n className={hasMenu ? styles.fullscreenButton : undefined}\n testId={isExpanded ? ActionsTestIds.CollapseButtonTestId : ActionsTestIds.ExpandButtonTestId}\n >\n {isExpanded ? <CollapseIcon /> : <ExpandIcon />}\n </ButtonIcon>\n );\n\n return (\n <>\n <HideInNativeApp>\n {additionalActions?.map((action, index) =>\n !isActionObject(action) ? (\n <Fragment key={index}>{action}</Fragment>\n ) : (\n <Tooltip title={action.title} key={index}>\n <ButtonIcon\n size=\"small\"\n type=\"tertiary\"\n onClick={action.onClick}\n className={classNames(styles.additionalActionButton)}\n testId={ActionsTestIds.AdditionalActionItemTestId}\n >\n {action.icon}\n </ButtonIcon>\n </Tooltip>\n )\n )}\n </HideInNativeApp>\n\n <HideInNativeApp>\n {showComments && (\n <Tooltip title={commentsEnabled ? 'Close Comments Mode' : 'Add Comment'}>\n <ButtonIcon\n size=\"small\"\n type={commentsEnabled ? 'secondaryBg' : 'tertiaryBg'}\n onClick={toggleCommentsMode}\n className={hasMenu ? styles.commentButton : undefined}\n testId={\n commentsEnabled\n ? ActionsTestIds.CloseCommentButtonTestId\n : ActionsTestIds.AddMessageButtonTestId\n }\n >\n {commentsEnabled ? <CloseSmallIcon /> : <AddMessageCustomIcon fill=\"currentColor\" />}\n </ButtonIcon>\n </Tooltip>\n )}\n </HideInNativeApp>\n\n {settingsVisible && (\n <SettingsButton\n className={\n hideSettingsUnderMore && !isInsideNewMobileApp\n ? styles.settingsHiddenUnderMore\n : undefined\n }\n />\n )}\n\n {/* \n Our \"pseudo-fullscreen\" system gets a stroke when we try to go fullscreen when a tooltip is shown (and we're in a \"pseudo-fullscreen\" mode) \n and we change actual \"fullscreen\" status of an app.\n So we don't show tooltip when user clicks the button, and we expect the \"fullscreen\" status to change.\n */}\n <HideInNativeApp>\n {showMaximizeTooltip ? (\n <Tooltip title={maximizeTooltip}>{maximizeButton}</Tooltip>\n ) : (\n maximizeButton\n )}\n\n {maximizeButtonRef.current && (\n <Menu\n anchorEl={maximizeButtonRef.current}\n open={isModesMenuOpen}\n onClose={closeModesMenu}\n placement=\"bottom-end\"\n >\n <Menu.Item onClick={toggleMaximized} testId={ActionsTestIds.MaximizeItemTestId}>\n Maximize\n </Menu.Item>\n <Menu.Item\n onClick={handleBrowserFullscreenClick}\n testId={ActionsTestIds.BrowserFullscreenItemTestId}\n >\n Full Screen\n </Menu.Item>\n <Menu.Item\n onClick={handleSeparateWindowClick}\n testId={ActionsTestIds.SeparateWindowItemTestId}\n >\n Separate Window\n </Menu.Item>\n </Menu>\n )}\n </HideInNativeApp>\n\n <HideInNativeApp>\n {hasMenu && (\n <Tooltip title=\"More\">\n <ButtonIcon\n type={\n moreMenuOpen || (hideSettingsUnderMore && isOpen) ? 'secondaryBg' : 'tertiaryBg'\n }\n className={styles.moreButton}\n ref={moreButtonRef}\n onClick={toggleMoreMenu}\n size=\"small\"\n >\n <MoreOneIcon />\n </ButtonIcon>\n </Tooltip>\n )}\n\n {hasMenu && moreButtonRef.current && (\n <Menu\n anchorEl={moreButtonRef.current}\n open={moreMenuOpen}\n onClose={toggleMoreMenu}\n placement=\"bottom-end\"\n >\n {menuActionItems.map((item, index) => (\n <Menu.Item size=\"large\" prefix={item.icon} key={index} onClick={item.onClick}>\n {item.title}\n </Menu.Item>\n ))}\n </Menu>\n )}\n </HideInNativeApp>\n </>\n );\n};\n"],"names":["isActionObject","action","_typeof","Actions","_ref","additionalActions","showComments","disableSettings","hideSettingsUnderMore","_useAppCommonsInterna","useAppCommonsInternal","maximized","setMaximized","appSettingsComponent","isExpanded","isBrowserFullscreen","enterBrowserFullscreen","exitBrowserFullscreen","isSeparateWindow","openSeparateWindow","closeSeparateWindow","commentsEnabled","useAppCommentsMode","setCommentsMode","useSetAppCommentsMode","useState","_useState2","_slicedToArray","_useState","moreMenuOpen","setMoreMenuOpen","moreButtonRef","useRef","maximizeButtonRef","_useState4","_useState3","showMaximizeTooltip","setShowMaximizeTooltip","_useState6","_useState5","isModesMenuOpen","setIsModesMenuOpen","longPressTimerRef","isLongPressRef","_useAppSettingsPanel","useAppSettingsPanel","open","isOpen","settingsVisible","toggleMoreMenu","useCallback","value","toggleCommentsMode","closeModesMenu","current","toggleMaximized","maximizeTooltip","cancelLongPress","clearTimeout","handleMaximizeMouseDown","setTimeout","useEffect","handleMaximizeClick","handleSeparateWindowClick","handleBrowserFullscreenClick","menuActionItems","useMemo","isInsideNewMobileApp","getOnClick","handler","objectActions","filter","map","item","_objectSpread","onClick","commentItem","icon","_jsx","MessageIcon","title","maximizeItem","CollapseIcon","ExpandIcon","settingsItem","SettingTwoIcon","_toConsumableArray","hasMenu","length","maximizeButton","ButtonIcon","size","type","ref","onMouseDown","onMouseUp","onMouseLeave","className","styles","fullscreenButton","undefined","testId","ActionsTestIds","CollapseButtonTestId","ExpandButtonTestId","children","_jsxs","_Fragment","HideInNativeApp","index","Tooltip","classNames","additionalActionButton","AdditionalActionItemTestId","Fragment","commentButton","CloseCommentButtonTestId","AddMessageButtonTestId","CloseSmallIcon","AddMessageCustomIcon","fill","SettingsButton","settingsHiddenUnderMore","Menu","anchorEl","onClose","placement","Item","MaximizeItemTestId","BrowserFullscreenItemTestId","SeparateWindowItemTestId","moreButton","MoreOneIcon","prefix"],"mappings":"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"}
1
+ {"version":3,"file":"Actions.js","sources":["../../../../../src/componentsV2/AppHeader/V3/Actions/Actions.tsx"],"sourcesContent":["import { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport classNames from 'classnames';\n\nimport { ButtonIcon } from '../../../ButtonIcon';\nimport { Tooltip } from '../../../Tooltip';\nimport { SettingsButton } from '../SettingsButton';\nimport { AdditionalAction, AdditionalActionObject } from '../constants';\nimport { Menu } from '../../../Menu';\nimport { useAppCommonsInternal } from '../../../AppCommonsProvider';\nimport { useAppSettingsPanel } from '../../../AppPanel/AppPanelsContext';\nimport { HideInNativeApp } from '../../../HideInNativeApp';\n\nimport { ActionsTestIds } from './Actions.constants';\n\nimport styles from './Actions.scss';\n\nimport {\n AddMessageCustomIcon,\n CloseSmallIcon,\n CollapseIcon,\n ExpandIcon,\n MessageIcon,\n MoreOneIcon,\n SettingTwoIcon,\n} from '~/icons';\nimport { useAppCommentsMode, useSetAppCommentsMode } from '~/effects';\nimport { isInsideNewMobileApp } from '~/utils/mobileDetect';\n\ntype ActionsProps = {\n additionalActions?: AdditionalAction[];\n showComments?: boolean;\n disableSettings?: boolean;\n hideSettingsUnderMore?: boolean;\n};\n\nconst isActionObject = (action: AdditionalAction): action is AdditionalActionObject =>\n !!action && typeof action === 'object' && 'title' in action;\n\nconst LONG_PRESS_DELAY_MS = 500;\n\nexport const Actions = ({\n additionalActions,\n showComments,\n disableSettings,\n hideSettingsUnderMore,\n}: ActionsProps) => {\n const {\n maximized,\n setMaximized,\n appSettingsComponent,\n isExpanded,\n isBrowserFullscreen,\n enterBrowserFullscreen,\n exitBrowserFullscreen,\n isSeparateWindow,\n openSeparateWindow,\n closeSeparateWindow,\n dashboardMeta,\n } = useAppCommonsInternal();\n const isEmbedded = !!dashboardMeta?.isEmbedded;\n const commentsEnabled = useAppCommentsMode();\n const setCommentsMode = useSetAppCommentsMode();\n const [moreMenuOpen, setMoreMenuOpen] = useState(false);\n const moreButtonRef = useRef<HTMLButtonElement>(null);\n const maximizeButtonRef = useRef<HTMLButtonElement>(null);\n const [showMaximizeTooltip, setShowMaximizeTooltip] = useState(true);\n const [isModesMenuOpen, setIsModesMenuOpen] = useState(false);\n const longPressTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const isLongPressRef = useRef(false);\n\n const { open, isOpen } = useAppSettingsPanel();\n const settingsVisible = !!appSettingsComponent && !disableSettings;\n\n const toggleMoreMenu = useCallback(() => {\n setMoreMenuOpen(value => !value);\n }, []);\n\n const toggleCommentsMode = useCallback(() => {\n setCommentsMode(value => !value);\n }, [setCommentsMode]);\n\n const closeModesMenu = useCallback(() => {\n isLongPressRef.current = false;\n setIsModesMenuOpen(false);\n }, []);\n\n const toggleMaximized = useCallback(() => {\n setShowMaximizeTooltip(false);\n closeModesMenu();\n\n if (isSeparateWindow) {\n closeSeparateWindow?.();\n return;\n }\n\n if (isBrowserFullscreen) {\n exitBrowserFullscreen?.();\n return;\n }\n\n setMaximized(!maximized);\n }, [\n closeModesMenu,\n closeSeparateWindow,\n exitBrowserFullscreen,\n isBrowserFullscreen,\n isSeparateWindow,\n maximized,\n setMaximized,\n ]);\n\n const maximizeTooltip = isSeparateWindow\n ? 'Close Separate Window'\n : isExpanded\n ? 'Restore'\n : 'Maximize';\n\n const cancelLongPress = useCallback(() => {\n if (longPressTimerRef.current) {\n clearTimeout(longPressTimerRef.current);\n longPressTimerRef.current = null;\n }\n }, []);\n\n const handleMaximizeMouseDown = useCallback(() => {\n if (isExpanded || !enterBrowserFullscreen) return;\n\n cancelLongPress();\n longPressTimerRef.current = setTimeout(() => {\n isLongPressRef.current = true;\n setIsModesMenuOpen(true);\n }, LONG_PRESS_DELAY_MS);\n }, [cancelLongPress, enterBrowserFullscreen, isExpanded]);\n\n useEffect(() => cancelLongPress, [cancelLongPress]);\n\n const handleMaximizeClick = useCallback(() => {\n if (isLongPressRef.current) {\n isLongPressRef.current = false;\n return;\n }\n\n toggleMaximized();\n }, [toggleMaximized]);\n\n const handleSeparateWindowClick = useCallback(() => {\n closeModesMenu();\n openSeparateWindow?.();\n }, [closeModesMenu, openSeparateWindow]);\n\n const handleBrowserFullscreenClick = useCallback(() => {\n closeModesMenu();\n enterBrowserFullscreen?.();\n }, [closeModesMenu, enterBrowserFullscreen]);\n\n useEffect(() => {\n setShowMaximizeTooltip(true);\n }, [isExpanded]);\n\n const menuActionItems = useMemo(() => {\n if (isInsideNewMobileApp) return [];\n\n const getOnClick = (handler: AdditionalActionObject['onClick']) => () => {\n toggleMoreMenu();\n handler?.();\n };\n\n const objectActions = (additionalActions || [])\n .filter(isActionObject)\n .map(item => ({ ...item, onClick: getOnClick(item.onClick) }));\n\n const commentItem: AdditionalActionObject = {\n icon: <MessageIcon />,\n onClick: getOnClick(toggleCommentsMode),\n title: commentsEnabled ? 'Close Comments Mode' : 'Add Comment',\n };\n\n const maximizeItem: AdditionalActionObject = {\n title: maximizeTooltip,\n onClick: getOnClick(toggleMaximized),\n icon: isExpanded ? <CollapseIcon /> : <ExpandIcon />,\n };\n\n const settingsItem = {\n title: 'Settings',\n onClick: getOnClick(open),\n icon: <SettingTwoIcon />,\n };\n\n return [\n ...objectActions,\n ...(showComments ? [commentItem] : []),\n ...(hideSettingsUnderMore && settingsVisible ? [settingsItem] : []),\n ...(!isEmbedded ? [maximizeItem] : []),\n ];\n }, [\n additionalActions,\n commentsEnabled,\n hideSettingsUnderMore,\n isExpanded,\n maximizeTooltip,\n open,\n settingsVisible,\n showComments,\n isEmbedded,\n toggleCommentsMode,\n toggleMaximized,\n toggleMoreMenu,\n ]);\n\n // Maximization is already available as a button.\n const hasMenu = menuActionItems.length > (isEmbedded ? 0 : 1);\n\n const maximizeButton = (\n <ButtonIcon\n size=\"small\"\n type=\"tertiaryBg\"\n ref={maximizeButtonRef}\n onClick={handleMaximizeClick}\n onMouseDown={handleMaximizeMouseDown}\n onMouseUp={cancelLongPress}\n onMouseLeave={cancelLongPress}\n className={hasMenu ? styles.fullscreenButton : undefined}\n testId={isExpanded ? ActionsTestIds.CollapseButtonTestId : ActionsTestIds.ExpandButtonTestId}\n >\n {isExpanded ? <CollapseIcon /> : <ExpandIcon />}\n </ButtonIcon>\n );\n\n // Hide the tooltip during maximization changes to avoid fullscreen positioning issues.\n const maximizeWithTooltip = showMaximizeTooltip ? (\n <Tooltip title={maximizeTooltip}>{maximizeButton}</Tooltip>\n ) : (\n maximizeButton\n );\n\n return (\n <>\n <HideInNativeApp>\n {additionalActions?.map((action, index) =>\n !isActionObject(action) ? (\n <Fragment key={index}>{action}</Fragment>\n ) : (\n <Tooltip title={action.title} key={index}>\n <ButtonIcon\n size=\"small\"\n type=\"tertiary\"\n onClick={action.onClick}\n className={classNames(styles.additionalActionButton)}\n testId={ActionsTestIds.AdditionalActionItemTestId}\n >\n {action.icon}\n </ButtonIcon>\n </Tooltip>\n )\n )}\n </HideInNativeApp>\n\n <HideInNativeApp>\n {showComments && (\n <Tooltip title={commentsEnabled ? 'Close Comments Mode' : 'Add Comment'}>\n <ButtonIcon\n size=\"small\"\n type={commentsEnabled ? 'secondaryBg' : 'tertiaryBg'}\n onClick={toggleCommentsMode}\n className={hasMenu ? styles.commentButton : undefined}\n testId={\n commentsEnabled\n ? ActionsTestIds.CloseCommentButtonTestId\n : ActionsTestIds.AddMessageButtonTestId\n }\n >\n {commentsEnabled ? <CloseSmallIcon /> : <AddMessageCustomIcon fill=\"currentColor\" />}\n </ButtonIcon>\n </Tooltip>\n )}\n </HideInNativeApp>\n\n {settingsVisible && (\n <SettingsButton\n className={\n hideSettingsUnderMore && !isInsideNewMobileApp\n ? styles.settingsHiddenUnderMore\n : undefined\n }\n />\n )}\n\n <HideInNativeApp>\n {!isEmbedded && maximizeWithTooltip}\n\n {!isEmbedded && maximizeButtonRef.current && (\n <Menu\n anchorEl={maximizeButtonRef.current}\n open={isModesMenuOpen}\n onClose={closeModesMenu}\n placement=\"bottom-end\"\n >\n <Menu.Item onClick={toggleMaximized} testId={ActionsTestIds.MaximizeItemTestId}>\n Maximize\n </Menu.Item>\n <Menu.Item\n onClick={handleBrowserFullscreenClick}\n testId={ActionsTestIds.BrowserFullscreenItemTestId}\n >\n Full Screen\n </Menu.Item>\n <Menu.Item\n onClick={handleSeparateWindowClick}\n testId={ActionsTestIds.SeparateWindowItemTestId}\n >\n Separate Window\n </Menu.Item>\n </Menu>\n )}\n </HideInNativeApp>\n\n <HideInNativeApp>\n {hasMenu && (\n <Tooltip title=\"More\">\n <ButtonIcon\n type={\n moreMenuOpen || (hideSettingsUnderMore && isOpen) ? 'secondaryBg' : 'tertiaryBg'\n }\n className={styles.moreButton}\n ref={moreButtonRef}\n testId={ActionsTestIds.MoreButtonTestId}\n onClick={toggleMoreMenu}\n size=\"small\"\n >\n <MoreOneIcon />\n </ButtonIcon>\n </Tooltip>\n )}\n\n {hasMenu && moreButtonRef.current && (\n <Menu\n anchorEl={moreButtonRef.current}\n open={moreMenuOpen}\n onClose={toggleMoreMenu}\n placement=\"bottom-end\"\n >\n {menuActionItems.map((item, index) => (\n <Menu.Item size=\"large\" prefix={item.icon} key={index} onClick={item.onClick}>\n {item.title}\n </Menu.Item>\n ))}\n </Menu>\n )}\n </HideInNativeApp>\n </>\n );\n};\n"],"names":["isActionObject","action","_typeof","Actions","_ref","additionalActions","showComments","disableSettings","hideSettingsUnderMore","_useAppCommonsInterna","useAppCommonsInternal","maximized","setMaximized","appSettingsComponent","isExpanded","isBrowserFullscreen","enterBrowserFullscreen","exitBrowserFullscreen","isSeparateWindow","openSeparateWindow","closeSeparateWindow","dashboardMeta","isEmbedded","commentsEnabled","useAppCommentsMode","setCommentsMode","useSetAppCommentsMode","useState","_useState2","_slicedToArray","_useState","moreMenuOpen","setMoreMenuOpen","moreButtonRef","useRef","maximizeButtonRef","_useState4","_useState3","showMaximizeTooltip","setShowMaximizeTooltip","_useState6","_useState5","isModesMenuOpen","setIsModesMenuOpen","longPressTimerRef","isLongPressRef","_useAppSettingsPanel","useAppSettingsPanel","open","isOpen","settingsVisible","toggleMoreMenu","useCallback","value","toggleCommentsMode","closeModesMenu","current","toggleMaximized","maximizeTooltip","cancelLongPress","clearTimeout","handleMaximizeMouseDown","setTimeout","useEffect","handleMaximizeClick","handleSeparateWindowClick","handleBrowserFullscreenClick","menuActionItems","useMemo","isInsideNewMobileApp","getOnClick","handler","objectActions","filter","map","item","_objectSpread","onClick","commentItem","icon","_jsx","MessageIcon","title","maximizeItem","CollapseIcon","ExpandIcon","settingsItem","SettingTwoIcon","_toConsumableArray","hasMenu","length","maximizeButton","ButtonIcon","size","type","ref","onMouseDown","onMouseUp","onMouseLeave","className","styles","fullscreenButton","undefined","testId","ActionsTestIds","CollapseButtonTestId","ExpandButtonTestId","children","maximizeWithTooltip","Tooltip","_jsxs","_Fragment","HideInNativeApp","index","classNames","additionalActionButton","AdditionalActionItemTestId","Fragment","commentButton","CloseCommentButtonTestId","AddMessageButtonTestId","CloseSmallIcon","AddMessageCustomIcon","fill","SettingsButton","settingsHiddenUnderMore","Menu","anchorEl","onClose","placement","Item","MaximizeItemTestId","BrowserFullscreenItemTestId","SeparateWindowItemTestId","moreButton","MoreButtonTestId","MoreOneIcon","prefix"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AppHeaderV3.d.ts","sourceRoot":"","sources":["../../../../src/componentsV2/AppHeader/V3/AppHeaderV3.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,SAAS,EAAqB,MAAM,OAAO,CAAC;AAOvE,OAAO,EAAoB,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAQjE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAKhE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAE7B,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAE/B;;OAEG;IACH,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,qBAAqB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAEzC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IAEF,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC;IAEjE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACpC,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,2BAA2B,CAAC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACvC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IAErC;;;OAGG;IACH,oBAAoB,CAAC,EAAE;QACrB,qBAAqB,CAAC,EAAE,OAAO,CAAC;KACjC,CAAC;IAEF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CA0M5C,CAAC"}
1
+ {"version":3,"file":"AppHeaderV3.d.ts","sourceRoot":"","sources":["../../../../src/componentsV2/AppHeader/V3/AppHeaderV3.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,SAAS,EAAqB,MAAM,OAAO,CAAC;AAOvE,OAAO,EAAoB,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAQjE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAKhE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAE7B,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAE/B;;OAEG;IACH,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,qBAAqB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAEzC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IAEF,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC;IAEjE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACpC,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,2BAA2B,CAAC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACvC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IAErC;;;OAGG;IACH,oBAAoB,CAAC,EAAE;QACrB,qBAAqB,CAAC,EAAE,OAAO,CAAC;KACjC,CAAC;IAEF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAiN5C,CAAC"}
@@ -1,2 +1,2 @@
1
- import e from"@babel/runtime/helpers/defineProperty";import{useRef as t,useEffect as o}from"react";import i from"classnames";import{isEmpty as l}from"lodash";import{SEGMENTS as s}from"../../../constants/segment.js";import{getAppSegment as n}from"../../../utils/devcenter.js";import{PadModeSelect as r}from"../../PadModeSelect/PadModeSelect.js";import"../../PadModeSelect/PadModeSelect.constants.js";import{AppHeaderTestIds as d}from"../AppHeader.constants.js";import"../../AppCommonsProvider/AppCommonsProvider.js";import{useAppCommonsInternal as a}from"../../AppCommonsProvider/AppCommonsContext.js";import{HideInNativeApp as p}from"../../HideInNativeApp/index.js";import{AppHeaderFinderProps as c}from"../../utils.js";import{VersionSelect as m}from"./VersionSelect/VersionSelect.js";import{AssetChips as v}from"./AssetChips/AssetChips.js";import{AppTitle as u}from"./AppTitle/AppTitle.js";import"./AppTitle/AppTitle.constants.js";import{useResponsivity as f}from"./useResponsivity.js";import{Actions as h}from"./Actions/Actions.js";import"./Actions/Actions.constants.js";import C from"./AppHeaderV3.scss.js";import{jsxs as j,jsx as y}from"react/jsx-runtime";function A(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,i)}return o}function b(t){for(var o=1;o<arguments.length;o++){var i=null!=arguments[o]?arguments[o]:{};o%2?A(Object(i),!0).forEach((function(o){e(t,o,i[o])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):A(Object(i)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))}))}return t}var g=function(e){var A,g,O,P,I,M,N,S,L,w,R,T,D,x,U,E,W=e.elementsClassNames,k=e.className,H=e.testId,V=e.logo,q=e.additionalControls,B=e.title,F=e.padModeDisabled,z=e.padModeWells,G=e.dqData,J=e.asset,K=e.lastUpdate,Q=e.additionalActions,X=e.showComments,Y=e.titleControls,Z=e.disableSettings,$=e.showAssetChips,_=e.disableAssetSelector,ee=e.titleMenuActions,te=e.titleControlsPosition,oe=void 0===te?"right":te,ie=e.responsivenessConfig,le=t(null),se=a(),ne=se.app,re=se.appName,de=se.well,ae=se.wells,pe=se.rig,ce=se.fracFleet,me=se.interventionUnit,ve=se.isExpanded,ue=se.setSeparateWindowTitle,fe=se.isInsideNewMobileApp,he=se.disableAppAssetSelection,Ce=se.isMultiRig,je=z||ae,ye=n(ne)===s.COMPLETION&&!de,Ae=!l(je)&&!!ce,be=he||Ce,ge=!he&&!F&&!fe&&ye&&Ae,Oe=V?"ultranarrow":ge||q||Y?"narrow":void 0,Pe="left"===oe&&!!Y,Ie=t(null),Me=t(null),Ne=t(null),Se=t(null),Le=t(null),we=t(null),Re=t(null),Te=null!==(A=null!==(g=null!==(O=null==de?void 0:de.name)&&void 0!==O?O:null==pe?void 0:pe.name)&&void 0!==g?g:null==ce?void 0:ce.name)&&void 0!==A?A:null==me?void 0:me.name;o((function(){null==ue||ue([re,Te].filter(Boolean).join(" - "))}),[ue,re,Te]);var De=f({disabled:fe,titleControlsLeft:Pe,rootRef:le,versionRef:Ie,additionalControlsRef:Ne,titleControlsRef:Se,logoRef:we,padModeRef:Me,chipsRef:Le,actionsRef:Re});return j("div",b(b({className:i(C.root,k),"data-testid":H,ref:le,style:null===(P=De.root)||void 0===P?void 0:P.style},c),{},{children:[y("div",{className:i(C.logoContainer,null==W?void 0:W.logoContainer),ref:we,children:V&&"string"==typeof V?y("img",{className:C.logo,src:V,alt:"Logo"}):V}),y(u,{title:ve&&null!=Te?Te:B,asset:J,dqData:G,lastUpdate:K,className:i(C.title,Pe&&C.titleWithControlsLeft,null==W?void 0:W.title),disableAssetSelector:_,titleMenuActions:ee,style:null===(I=De.title)||void 0===I?void 0:I.style}),Y&&y("div",{className:i(C.titleControls,Pe&&C.titleControlsLeft,(null===(M=De.titleControls)||void 0===M?void 0:M.lastInLine)&&C.lastInLine,null==W?void 0:W.titleControls),ref:Se,style:null===(N=De.titleControls)||void 0===N?void 0:N.style,children:Y}),y(p,{children:y("div",{className:C.version,ref:Ie,children:y(m,{className:null==W?void 0:W.versionSelect})})}),ge&&y("div",{className:i(C.padMode,(null===(S=De.padMode)||void 0===S?void 0:S.lastInLine)&&C.lastInLine),ref:Me,style:null===(L=De.padMode)||void 0===L?void 0:L.style,children:y(r,{testId:d.PadModeSelectTestId})}),q&&y("div",{className:i(C.additionalControls,(null===(w=De.additionalControls)||void 0===w?void 0:w.lastInLine)&&C.lastInLine,null==W?void 0:W.additionalControls),ref:Ne,style:null===(R=De.additionalControls)||void 0===R?void 0:R.style,"data-testid":d.AdditionalControlsTestId,children:q}),!be&&$&&y(p,{children:y("div",{className:i(C.assetChips,(null===(T=De.chips)||void 0===T?void 0:T.lastInLine)&&C.lastInLine,null==W?void 0:W.chips),ref:Le,style:null===(D=De.chips)||void 0===D?void 0:D.style,children:y(v,{chipsWidth:Oe})})}),y("div",{className:i(C.actions,(null===(x=De.actions)||void 0===x?void 0:x.lastInLine)&&C.lastInLine,null==W?void 0:W.actions),ref:Re,style:null===(U=De.actions)||void 0===U?void 0:U.style,"data-testid":d.ActionsRootTestId,children:y(h,{additionalActions:Q,showComments:X,disableSettings:Z,hideSettingsUnderMore:null==ie?void 0:ie.hideSettingsUnderMore})}),null===(E=De.linebreaks)||void 0===E?void 0:E.map((function(e,t){return y("div",{className:C.responsivenessLineBreak,style:e},t)}))]}))};export{g as AppHeaderV3};
1
+ import e from"@babel/runtime/helpers/defineProperty";import{useRef as t,useEffect as o}from"react";import i from"classnames";import{isEmpty as l}from"lodash";import{SEGMENTS as s}from"../../../constants/segment.js";import{getAppSegment as n}from"../../../utils/devcenter.js";import{PadModeSelect as r}from"../../PadModeSelect/PadModeSelect.js";import"../../PadModeSelect/PadModeSelect.constants.js";import{AppHeaderTestIds as d}from"../AppHeader.constants.js";import"../../AppCommonsProvider/AppCommonsProvider.js";import{useAppCommonsInternal as a}from"../../AppCommonsProvider/AppCommonsContext.js";import{HideInNativeApp as p}from"../../HideInNativeApp/index.js";import{AppHeaderFinderProps as c}from"../../utils.js";import{VersionSelect as m}from"./VersionSelect/VersionSelect.js";import{AssetChips as v}from"./AssetChips/AssetChips.js";import{AppTitle as u}from"./AppTitle/AppTitle.js";import"./AppTitle/AppTitle.constants.js";import{useResponsivity as f}from"./useResponsivity.js";import{Actions as h}from"./Actions/Actions.js";import"./Actions/Actions.constants.js";import C from"./AppHeaderV3.scss.js";import{jsxs as j,Fragment as y,jsx as A}from"react/jsx-runtime";function b(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,i)}return o}function g(t){for(var o=1;o<arguments.length;o++){var i=null!=arguments[o]?arguments[o]:{};o%2?b(Object(i),!0).forEach((function(o){e(t,o,i[o])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):b(Object(i)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(i,e))}))}return t}var M=function(e){var b,M,O,P,I,N,S,L,w,R,T,D,x,E,U,W,k=e.elementsClassNames,H=e.className,V=e.testId,q=e.logo,B=e.additionalControls,F=e.title,z=e.padModeDisabled,G=e.padModeWells,J=e.dqData,K=e.asset,Q=e.lastUpdate,X=e.additionalActions,Y=e.showComments,Z=e.titleControls,$=e.disableSettings,_=e.showAssetChips,ee=e.disableAssetSelector,te=e.titleMenuActions,oe=e.titleControlsPosition,ie=void 0===oe?"right":oe,le=e.responsivenessConfig,se=t(null),ne=a(),re=ne.app,de=ne.appName,ae=ne.well,pe=ne.wells,ce=ne.rig,me=ne.fracFleet,ve=ne.interventionUnit,ue=ne.isExpanded,fe=ne.setSeparateWindowTitle,he=ne.isInsideNewMobileApp,Ce=ne.disableAppAssetSelection,je=ne.isMultiRig,ye=ne.dashboardMeta,Ae=!(null==ye||!ye.isEmbedded),be=G||pe,ge=n(re)===s.COMPLETION&&!ae,Me=!l(be)&&!!me,Oe=Ce||je,Pe=!(Ae||Ce||z||he)&&ge&&Me,Ie=q?"ultranarrow":Pe||B||Z?"narrow":void 0,Ne="left"===ie&&!!Z,Se=t(null),Le=t(null),we=t(null),Re=t(null),Te=t(null),De=t(null),xe=t(null),Ee=null!==(b=null!==(M=null!==(O=null==ae?void 0:ae.name)&&void 0!==O?O:null==ce?void 0:ce.name)&&void 0!==M?M:null==me?void 0:me.name)&&void 0!==b?b:null==ve?void 0:ve.name;o((function(){null==fe||fe([de,Ee].filter(Boolean).join(" - "))}),[fe,de,Ee]);var Ue=f({disabled:he||Ae,titleControlsLeft:Ne,rootRef:se,versionRef:Se,additionalControlsRef:we,titleControlsRef:Re,logoRef:De,padModeRef:Le,chipsRef:Te,actionsRef:xe});return j("div",g(g({className:i(C.root,Ae&&C.embedded,H),"data-testid":V,ref:se,style:null===(P=Ue.root)||void 0===P?void 0:P.style},c),{},{children:[!Ae&&j(y,{children:[A("div",{className:i(C.logoContainer,null==k?void 0:k.logoContainer),ref:De,children:q&&"string"==typeof q?A("img",{className:C.logo,src:q,alt:"Logo"}):q}),A(u,{title:ue&&null!=Ee?Ee:F,asset:K,dqData:J,lastUpdate:Q,className:i(C.title,Ne&&C.titleWithControlsLeft,null==k?void 0:k.title),disableAssetSelector:ee,titleMenuActions:te,style:null===(I=Ue.title)||void 0===I?void 0:I.style})]}),Z&&A("div",{className:i(C.titleControls,Ne&&C.titleControlsLeft,(null===(N=Ue.titleControls)||void 0===N?void 0:N.lastInLine)&&C.lastInLine,null==k?void 0:k.titleControls),ref:Re,style:null===(S=Ue.titleControls)||void 0===S?void 0:S.style,children:Z}),A(p,{children:A("div",{className:C.version,ref:Se,children:A(m,{className:null==k?void 0:k.versionSelect})})}),Pe&&A("div",{className:i(C.padMode,(null===(L=Ue.padMode)||void 0===L?void 0:L.lastInLine)&&C.lastInLine),ref:Le,style:null===(w=Ue.padMode)||void 0===w?void 0:w.style,children:A(r,{testId:d.PadModeSelectTestId})}),B&&A("div",{className:i(C.additionalControls,(null===(R=Ue.additionalControls)||void 0===R?void 0:R.lastInLine)&&C.lastInLine,null==k?void 0:k.additionalControls),ref:we,style:null===(T=Ue.additionalControls)||void 0===T?void 0:T.style,"data-testid":d.AdditionalControlsTestId,children:B}),!Ae&&!Oe&&_&&A(p,{children:A("div",{className:i(C.assetChips,(null===(D=Ue.chips)||void 0===D?void 0:D.lastInLine)&&C.lastInLine,null==k?void 0:k.chips),ref:Te,style:null===(x=Ue.chips)||void 0===x?void 0:x.style,children:A(v,{chipsWidth:Ie})})}),A("div",{className:i(C.actions,(null===(E=Ue.actions)||void 0===E?void 0:E.lastInLine)&&C.lastInLine,null==k?void 0:k.actions),ref:xe,style:null===(U=Ue.actions)||void 0===U?void 0:U.style,"data-testid":d.ActionsRootTestId,children:A(h,{additionalActions:X,showComments:Y,disableSettings:$,hideSettingsUnderMore:null==le?void 0:le.hideSettingsUnderMore})}),null===(W=Ue.linebreaks)||void 0===W?void 0:W.map((function(e,t){return A("div",{className:C.responsivenessLineBreak,style:e},t)}))]}))};export{M as AppHeaderV3};
2
2
  //# sourceMappingURL=AppHeaderV3.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppHeaderV3.js","sources":["../../../../src/componentsV2/AppHeader/V3/AppHeaderV3.tsx"],"sourcesContent":["import { FC, ReactElement, ReactNode, useEffect, useRef } from 'react';\nimport classNames from 'classnames';\nimport { isEmpty } from 'lodash';\n\nimport { SEGMENTS } from '../../../constants/segment';\nimport { getAppSegment } from '../../../utils/devcenter';\nimport { PadModeSelect } from '../../PadModeSelect';\nimport { AppHeaderTestIds, Asset, UseWellnessAlertsReturnType } from '../AppHeader.constants';\nimport { useAppCommonsInternal } from '../../AppCommonsProvider';\nimport { HideInNativeApp } from '../../HideInNativeApp';\nimport { AppHeaderFinderProps } from '../../utils';\n\nimport { VersionSelect } from './VersionSelect';\nimport { AssetChips } from './AssetChips';\nimport { AppTitle } from './AppTitle';\nimport { useResponsivity } from './useResponsivity';\nimport { AdditionalAction, TitleMenuAction } from './constants';\nimport { Actions } from './Actions';\n\nimport styles from './AppHeaderV3.scss';\n\nexport type AppHeaderV3Props = {\n logo?: string | ReactElement;\n\n additionalControls?: ReactNode;\n\n /**\n * Used to put some controls alongside title\n */\n titleControls?: ReactNode;\n titleControlsPosition?: 'right' | 'left';\n\n /**\n * An escape hatch to tweak the styling of internal elements\n *\n * `buttons`, `titleControls` and `versionSelect` are for *V3 only*\n */\n elementsClassNames?: {\n title?: string;\n additionalControls?: string;\n chips?: string;\n actions?: string;\n versionSelect?: string;\n titleControls?: string;\n logoContainer?: string;\n };\n\n title?: ReactNode;\n padModeDisabled?: boolean;\n padModeWells?: ReturnType<typeof useAppCommonsInternal>['wells'];\n\n lastUpdate?: number | string | Date;\n asset?: Asset | Asset[];\n dqData?: UseWellnessAlertsReturnType;\n showComments?: boolean;\n additionalActions?: AdditionalAction[];\n disableSettings?: boolean;\n showAssetChips?: boolean;\n disableAssetSelector?: boolean;\n titleMenuActions?: TitleMenuAction[];\n\n /**\n * Configuration for responsive behavior of header elements\n * - `hideSettingsUnderMore`: When true, settings button will be hidden under \"More\" menu at smaller screen sizes\n */\n responsivenessConfig?: {\n hideSettingsUnderMore?: boolean;\n };\n\n className?: string;\n testId?: string;\n};\n\nexport const AppHeaderV3: FC<AppHeaderV3Props> = ({\n elementsClassNames,\n className,\n testId,\n logo,\n additionalControls,\n title,\n padModeDisabled,\n padModeWells,\n dqData,\n asset,\n lastUpdate,\n additionalActions,\n showComments,\n titleControls,\n disableSettings,\n showAssetChips,\n disableAssetSelector,\n titleMenuActions,\n titleControlsPosition = 'right',\n responsivenessConfig,\n}) => {\n const rootRef = useRef<HTMLDivElement>(null);\n const {\n app,\n appName,\n well,\n wells: contextWells,\n rig,\n fracFleet,\n interventionUnit,\n isExpanded,\n setSeparateWindowTitle,\n isInsideNewMobileApp,\n disableAppAssetSelection,\n isMultiRig,\n } = useAppCommonsInternal();\n\n const segment = getAppSegment(app);\n const wells = padModeWells || contextWells;\n const isCompletionPadMode = segment === SEGMENTS.COMPLETION && !well;\n const hasPadModeAssets = !isEmpty(wells) && !!fracFleet;\n const shouldDisableAssetControls = disableAppAssetSelection || isMultiRig;\n const canShowPadMode = !disableAppAssetSelection && !padModeDisabled && !isInsideNewMobileApp;\n const hasPadMode = canShowPadMode && isCompletionPadMode && hasPadModeAssets;\n\n const possiblyNarrowChips =\n hasPadMode || !!additionalControls || !!titleControls ? 'narrow' : undefined;\n const chipsWidth = logo ? 'ultranarrow' : possiblyNarrowChips;\n\n const titleControlsLeft = titleControlsPosition === 'left' && !!titleControls;\n\n const versionRef = useRef<HTMLDivElement>(null);\n const padModeRef = useRef<HTMLDivElement>(null);\n const additionalControlsRef = useRef<HTMLDivElement>(null);\n const titleControlsRef = useRef<HTMLDivElement>(null);\n const chipsRef = useRef<HTMLDivElement>(null);\n const logoRef = useRef<HTMLDivElement>(null);\n const actionsRef = useRef<HTMLDivElement>(null);\n\n const assetName = well?.name ?? rig?.name ?? fracFleet?.name ?? interventionUnit?.name;\n\n useEffect(() => {\n setSeparateWindowTitle?.([appName, assetName].filter(Boolean).join(' - '));\n }, [setSeparateWindowTitle, appName, assetName]);\n\n const responsivity = useResponsivity({\n disabled: isInsideNewMobileApp,\n titleControlsLeft,\n\n rootRef,\n versionRef,\n additionalControlsRef,\n titleControlsRef,\n logoRef,\n padModeRef,\n chipsRef,\n actionsRef,\n });\n\n return (\n <div\n className={classNames(styles.root, className)}\n data-testid={testId}\n ref={rootRef}\n style={responsivity.root?.style}\n {...AppHeaderFinderProps}\n >\n <div\n className={classNames(styles.logoContainer, elementsClassNames?.logoContainer)}\n ref={logoRef}\n >\n {logo && typeof logo === 'string' ? (\n <img className={styles.logo} src={logo} alt=\"Logo\" />\n ) : (\n logo\n )}\n </div>\n\n <AppTitle\n title={isExpanded ? assetName ?? title : title}\n asset={asset}\n dqData={dqData}\n lastUpdate={lastUpdate}\n className={classNames(\n styles.title,\n titleControlsLeft && styles.titleWithControlsLeft,\n elementsClassNames?.title\n )}\n disableAssetSelector={disableAssetSelector}\n titleMenuActions={titleMenuActions}\n style={responsivity.title?.style}\n />\n\n {titleControls && (\n <div\n className={classNames(\n styles.titleControls,\n titleControlsLeft && styles.titleControlsLeft,\n responsivity.titleControls?.lastInLine && styles.lastInLine,\n elementsClassNames?.titleControls\n )}\n ref={titleControlsRef}\n style={responsivity.titleControls?.style}\n >\n {titleControls}\n </div>\n )}\n\n <HideInNativeApp>\n <div className={styles.version} ref={versionRef}>\n <VersionSelect className={elementsClassNames?.versionSelect} />\n </div>\n </HideInNativeApp>\n\n {hasPadMode && (\n <div\n className={classNames(\n styles.padMode,\n responsivity.padMode?.lastInLine && styles.lastInLine\n )}\n ref={padModeRef}\n style={responsivity.padMode?.style}\n >\n <PadModeSelect testId={AppHeaderTestIds.PadModeSelectTestId} />\n </div>\n )}\n\n {additionalControls && (\n <div\n className={classNames(\n styles.additionalControls,\n responsivity.additionalControls?.lastInLine && styles.lastInLine,\n elementsClassNames?.additionalControls\n )}\n ref={additionalControlsRef}\n style={responsivity.additionalControls?.style}\n data-testid={AppHeaderTestIds.AdditionalControlsTestId}\n >\n {additionalControls}\n </div>\n )}\n\n {!shouldDisableAssetControls && showAssetChips && (\n <HideInNativeApp>\n <div\n className={classNames(\n styles.assetChips,\n responsivity.chips?.lastInLine && styles.lastInLine,\n elementsClassNames?.chips\n )}\n ref={chipsRef}\n style={responsivity.chips?.style}\n >\n <AssetChips chipsWidth={chipsWidth} />\n </div>\n </HideInNativeApp>\n )}\n\n <div\n className={classNames(\n styles.actions,\n responsivity.actions?.lastInLine && styles.lastInLine,\n elementsClassNames?.actions\n )}\n ref={actionsRef}\n style={responsivity.actions?.style}\n data-testid={AppHeaderTestIds.ActionsRootTestId}\n >\n <Actions\n additionalActions={additionalActions}\n showComments={showComments}\n disableSettings={disableSettings}\n hideSettingsUnderMore={responsivenessConfig?.hideSettingsUnderMore}\n />\n </div>\n\n {responsivity.linebreaks?.map((css, index) => (\n <div className={styles.responsivenessLineBreak} style={css} key={index} />\n ))}\n </div>\n );\n};\n"],"names":["AppHeaderV3","_ref","_ref2","_ref3","_well$name","_responsivity$root","_responsivity$title","_responsivity$titleCo","_responsivity$titleCo2","_responsivity$padMode","_responsivity$padMode2","_responsivity$additio","_responsivity$additio2","_responsivity$chips","_responsivity$chips2","_responsivity$actions","_responsivity$actions2","_responsivity$linebre","elementsClassNames","className","testId","logo","additionalControls","title","padModeDisabled","padModeWells","dqData","asset","lastUpdate","additionalActions","showComments","titleControls","disableSettings","showAssetChips","disableAssetSelector","titleMenuActions","_ref$titleControlsPos","titleControlsPosition","responsivenessConfig","rootRef","useRef","_useAppCommonsInterna","useAppCommonsInternal","app","appName","well","contextWells","wells","rig","fracFleet","interventionUnit","isExpanded","setSeparateWindowTitle","isInsideNewMobileApp","disableAppAssetSelection","isMultiRig","isCompletionPadMode","getAppSegment","SEGMENTS","COMPLETION","hasPadModeAssets","isEmpty","shouldDisableAssetControls","hasPadMode","chipsWidth","undefined","titleControlsLeft","versionRef","padModeRef","additionalControlsRef","titleControlsRef","chipsRef","logoRef","actionsRef","assetName","name","useEffect","filter","Boolean","join","responsivity","useResponsivity","disabled","_jsxs","_objectSpread","classNames","styles","root","ref","style","AppHeaderFinderProps","children","_jsx","logoContainer","src","alt","AppTitle","titleWithControlsLeft","lastInLine","HideInNativeApp","version","VersionSelect","versionSelect","padMode","PadModeSelect","AppHeaderTestIds","PadModeSelectTestId","AdditionalControlsTestId","assetChips","chips","AssetChips","actions","ActionsRootTestId","Actions","hideSettingsUnderMore","linebreaks","map","css","index","responsivenessLineBreak"],"mappings":"usDAyEaA,IAAAA,EAAoC,SAqB3CC,GAAA,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EApBJC,IAAAA,mBACAC,IAAAA,UACAC,IAAAA,OACAC,IAAAA,KACAC,IAAAA,mBACAC,IAAAA,MACAC,IAAAA,gBACAC,IAAAA,aACAC,IAAAA,OACAC,IAAAA,MACAC,IAAAA,WACAC,IAAAA,kBACAC,IAAAA,aACAC,IAAAA,cACAC,IAAAA,gBACAC,IAAAA,eACAC,IAAAA,qBACAC,KAAAA,iBAAgBC,GAAAnC,EAChBoC,sBAAAA,eAAwB,QAAOD,GAC/BE,KAAAA,qBAEMC,GAAUC,EAAuB,MACvCC,GAaIC,IAZFC,MAAAA,IACAC,MAAAA,QACAC,MAAAA,KACOC,MAAPC,MACAC,MAAAA,IACAC,MAAAA,UACAC,MAAAA,iBACAC,MAAAA,WACAC,MAAAA,uBACAC,MAAAA,qBACAC,MAAAA,yBACAC,MAAAA,WAIIR,GAAQtB,GAAgBqB,GACxBU,GAFUC,EAAcd,MAEUe,EAASC,aAAed,GAC1De,IAAoBC,EAAQd,OAAYE,GACxCa,GAA6BR,IAA4BC,GAEzDQ,IADkBT,KAA6B9B,IAAoB6B,IACpCG,IAAuBI,GAItDI,GAAa3C,EAAO,cADxB0C,IAAgBzC,GAAwBS,EAAgB,cAAWkC,EAG/DC,GAA8C,SAA1B7B,MAAsCN,EAE1DoC,GAAa3B,EAAuB,MACpC4B,GAAa5B,EAAuB,MACpC6B,GAAwB7B,EAAuB,MAC/C8B,GAAmB9B,EAAuB,MAC1C+B,GAAW/B,EAAuB,MAClCgC,GAAUhC,EAAuB,MACjCiC,GAAajC,EAAuB,MAEpCkC,GAA0DxB,QAAjDhD,EAA0B,QAA1BC,EAAiB6C,QAAjB5C,EAAGyC,cAAAA,EAAAA,GAAM8B,YAAQ3B,IAAAA,EAAAA,EAAAA,gBAAAA,GAAK2B,YAAI,IAAAxE,EAAAA,EAAI8C,cAAS,EAATA,GAAW0B,YAAQzB,IAAAA,EAAAA,EAAAA,cAAAA,EAAAA,GAAkByB,KAElFC,GAAU,WACRxB,UAAAA,GAAyB,CAACR,GAAS8B,IAAWG,OAAOC,SAASC,KAAK,OACpE,GAAE,CAAC3B,GAAwBR,GAAS8B,KAErC,IAAMM,GAAeC,EAAgB,CACnCC,SAAU7B,GACVa,kBAAAA,GAEA3B,QAAAA,GACA4B,WAAAA,GACAE,sBAAAA,GACAC,iBAAAA,GACAE,QAAAA,GACAJ,WAAAA,GACAG,SAAAA,GACAE,WAAAA,KAGF,OACEU,EAAA,MAAAC,EAAAA,EAAA,CACEjE,UAAWkE,EAAWC,EAAOC,KAAMpE,GACnC,cAAaC,EACboE,IAAKjD,GACLkD,cAAOT,EAAAA,GAAaO,yBAAblF,EAAmBoF,OACtBC,GAAoB,GAAA,CAAAC,SAExB,CAAAC,EAAA,MAAA,CACEzE,UAAWkE,EAAWC,EAAOO,cAAe3E,aAAkB,EAAlBA,EAAoB2E,eAChEL,IAAKhB,GAAQmB,SAEZtE,GAAwB,iBAATA,EACduE,EAAA,MAAA,CAAKzE,UAAWmE,EAAOjE,KAAMyE,IAAKzE,EAAM0E,IAAI,SAE5C1E,IAIJuE,EAACI,EAAQ,CACPzE,MAAO4B,IAAauB,SAAAA,GAAqBnD,EACzCI,MAAOA,EACPD,OAAQA,EACRE,WAAYA,EACZT,UAAWkE,EACTC,EAAO/D,MACP2C,IAAqBoB,EAAOW,sBAC5B/E,eAAAA,EAAoBK,OAEtBW,qBAAsBA,EACtBC,iBAAkBA,GAClBsD,cAAOT,EAAAA,GAAazD,0BAAbjB,EAAoBmF,QAG5B1D,GACC6D,EAAA,MAAA,CACEzE,UAAWkE,EACTC,EAAOvD,cACPmC,IAAqBoB,EAAOpB,mBACF,UAA1Bc,GAAajD,qBAAa,IAAAxB,OAAA,EAA1BA,EAA4B2F,aAAcZ,EAAOY,WACjDhF,aAAkB,EAAlBA,EAAoBa,eAEtByD,IAAKlB,GACLmB,MAAiC,UAA1BT,GAAajD,qBAAa,IAAAvB,OAAA,EAA1BA,EAA4BiF,MAAME,SAExC5D,IAIL6D,EAACO,EAAe,CAAAR,SACdC,EAAA,MAAA,CAAKzE,UAAWmE,EAAOc,QAASZ,IAAKrB,GAAWwB,SAC9CC,EAACS,EAAa,CAAClF,UAAWD,aAAkB,EAAlBA,EAAoBoF,oBAIjDvC,IACC6B,EAAA,MAAA,CACEzE,UAAWkE,EACTC,EAAOiB,iBACPvB,EAAAA,GAAauB,4BAAb9F,EAAsByF,aAAcZ,EAAOY,YAE7CV,IAAKpB,GACLqB,MAA2B,UAApBT,GAAauB,eAAO,IAAA7F,OAAA,EAApBA,EAAsB+E,MAAME,SAEnCC,EAACY,EAAa,CAACpF,OAAQqF,EAAiBC,wBAI3CpF,GACCsE,EAAA,MAAA,CACEzE,UAAWkE,EACTC,EAAOhE,oBACP,QAAA0D,EAAAA,GAAa1D,0BAAb,IAAAX,OAAA,EAAAA,EAAiCuF,aAAcZ,EAAOY,WACtDhF,aAAAA,EAAAA,EAAoBI,oBAEtBkE,IAAKnB,GACLoB,MAAsC,UAA/BT,GAAa1D,0BAAkB,IAAAV,OAAA,EAA/BA,EAAiC6E,MACxC,cAAagB,EAAiBE,yBAAyBhB,SAEtDrE,KAIHwC,IAA8B7B,GAC9B2D,EAACO,EAAe,CAAAR,SACdC,EAAA,MAAA,CACEzE,UAAWkE,EACTC,EAAOsB,YACP,QAAA5B,EAAAA,GAAa6B,aAAb,IAAAhG,OAAA,EAAAA,EAAoBqF,aAAcZ,EAAOY,WACzChF,aAAAA,EAAAA,EAAoB2F,OAEtBrB,IAAKjB,GACLkB,MAAyB,UAAlBT,GAAa6B,aAAK,IAAA/F,OAAA,EAAlBA,EAAoB2E,MAAME,SAEjCC,EAACkB,EAAU,CAAC9C,WAAYA,SAK9B4B,EAAA,MAAA,CACEzE,UAAWkE,EACTC,EAAOyB,SACP,QAAA/B,EAAAA,GAAa+B,eAAb,IAAAhG,OAAA,EAAAA,EAAsBmF,aAAcZ,EAAOY,WAC3ChF,aAAAA,EAAAA,EAAoB6F,SAEtBvB,IAAKf,GACLgB,MAA2B,UAApBT,GAAa+B,eAAO,IAAA/F,OAAA,EAApBA,EAAsByE,MAC7B,cAAagB,EAAiBO,kBAAkBrB,SAEhDC,EAACqB,EAAO,CACNpF,kBAAmBA,EACnBC,aAAcA,EACdE,gBAAiBA,EACjBkF,sBAAuB5E,cAAoB,EAApBA,GAAsB4E,0BAIzB,QAFlBjG,EAEL+D,GAAamC,kBAAU,IAAAlG,OAAA,EAAvBA,EAAyBmG,KAAI,SAACC,EAAKC,GAAK,OACvC1B,EAAA,MAAA,CAAKzE,UAAWmE,EAAOiC,wBAAyB9B,MAAO4B,GAAUC,EAAS,OAIlF"}
1
+ {"version":3,"file":"AppHeaderV3.js","sources":["../../../../src/componentsV2/AppHeader/V3/AppHeaderV3.tsx"],"sourcesContent":["import { FC, ReactElement, ReactNode, useEffect, useRef } from 'react';\nimport classNames from 'classnames';\nimport { isEmpty } from 'lodash';\n\nimport { SEGMENTS } from '../../../constants/segment';\nimport { getAppSegment } from '../../../utils/devcenter';\nimport { PadModeSelect } from '../../PadModeSelect';\nimport { AppHeaderTestIds, Asset, UseWellnessAlertsReturnType } from '../AppHeader.constants';\nimport { useAppCommonsInternal } from '../../AppCommonsProvider';\nimport { HideInNativeApp } from '../../HideInNativeApp';\nimport { AppHeaderFinderProps } from '../../utils';\n\nimport { VersionSelect } from './VersionSelect';\nimport { AssetChips } from './AssetChips';\nimport { AppTitle } from './AppTitle';\nimport { useResponsivity } from './useResponsivity';\nimport { AdditionalAction, TitleMenuAction } from './constants';\nimport { Actions } from './Actions';\n\nimport styles from './AppHeaderV3.scss';\n\nexport type AppHeaderV3Props = {\n logo?: string | ReactElement;\n\n additionalControls?: ReactNode;\n\n /**\n * Used to put some controls alongside title\n */\n titleControls?: ReactNode;\n titleControlsPosition?: 'right' | 'left';\n\n /**\n * An escape hatch to tweak the styling of internal elements\n *\n * `buttons`, `titleControls` and `versionSelect` are for *V3 only*\n */\n elementsClassNames?: {\n title?: string;\n additionalControls?: string;\n chips?: string;\n actions?: string;\n versionSelect?: string;\n titleControls?: string;\n logoContainer?: string;\n };\n\n title?: ReactNode;\n padModeDisabled?: boolean;\n padModeWells?: ReturnType<typeof useAppCommonsInternal>['wells'];\n\n lastUpdate?: number | string | Date;\n asset?: Asset | Asset[];\n dqData?: UseWellnessAlertsReturnType;\n showComments?: boolean;\n additionalActions?: AdditionalAction[];\n disableSettings?: boolean;\n showAssetChips?: boolean;\n disableAssetSelector?: boolean;\n titleMenuActions?: TitleMenuAction[];\n\n /**\n * Configuration for responsive behavior of header elements\n * - `hideSettingsUnderMore`: When true, settings button will be hidden under \"More\" menu at smaller screen sizes\n */\n responsivenessConfig?: {\n hideSettingsUnderMore?: boolean;\n };\n\n className?: string;\n testId?: string;\n};\n\nexport const AppHeaderV3: FC<AppHeaderV3Props> = ({\n elementsClassNames,\n className,\n testId,\n logo,\n additionalControls,\n title,\n padModeDisabled,\n padModeWells,\n dqData,\n asset,\n lastUpdate,\n additionalActions,\n showComments,\n titleControls,\n disableSettings,\n showAssetChips,\n disableAssetSelector,\n titleMenuActions,\n titleControlsPosition = 'right',\n responsivenessConfig,\n}) => {\n const rootRef = useRef<HTMLDivElement>(null);\n const {\n app,\n appName,\n well,\n wells: contextWells,\n rig,\n fracFleet,\n interventionUnit,\n isExpanded,\n setSeparateWindowTitle,\n isInsideNewMobileApp,\n disableAppAssetSelection,\n isMultiRig,\n dashboardMeta,\n } = useAppCommonsInternal();\n\n const isEmbedded = !!dashboardMeta?.isEmbedded;\n const segment = getAppSegment(app);\n const wells = padModeWells || contextWells;\n const isCompletionPadMode = segment === SEGMENTS.COMPLETION && !well;\n const hasPadModeAssets = !isEmpty(wells) && !!fracFleet;\n const shouldDisableAssetControls = disableAppAssetSelection || isMultiRig;\n const canShowPadMode =\n !isEmbedded && !disableAppAssetSelection && !padModeDisabled && !isInsideNewMobileApp;\n const hasPadMode = canShowPadMode && isCompletionPadMode && hasPadModeAssets;\n\n const possiblyNarrowChips =\n hasPadMode || !!additionalControls || !!titleControls ? 'narrow' : undefined;\n const chipsWidth = logo ? 'ultranarrow' : possiblyNarrowChips;\n\n const titleControlsLeft = titleControlsPosition === 'left' && !!titleControls;\n\n const versionRef = useRef<HTMLDivElement>(null);\n const padModeRef = useRef<HTMLDivElement>(null);\n const additionalControlsRef = useRef<HTMLDivElement>(null);\n const titleControlsRef = useRef<HTMLDivElement>(null);\n const chipsRef = useRef<HTMLDivElement>(null);\n const logoRef = useRef<HTMLDivElement>(null);\n const actionsRef = useRef<HTMLDivElement>(null);\n\n const assetName = well?.name ?? rig?.name ?? fracFleet?.name ?? interventionUnit?.name;\n\n useEffect(() => {\n setSeparateWindowTitle?.([appName, assetName].filter(Boolean).join(' - '));\n }, [setSeparateWindowTitle, appName, assetName]);\n\n const responsivity = useResponsivity({\n disabled: isInsideNewMobileApp || isEmbedded,\n titleControlsLeft,\n\n rootRef,\n versionRef,\n additionalControlsRef,\n titleControlsRef,\n logoRef,\n padModeRef,\n chipsRef,\n actionsRef,\n });\n\n return (\n <div\n className={classNames(styles.root, isEmbedded && styles.embedded, className)}\n data-testid={testId}\n ref={rootRef}\n style={responsivity.root?.style}\n {...AppHeaderFinderProps}\n >\n {!isEmbedded && (\n <>\n <div\n className={classNames(styles.logoContainer, elementsClassNames?.logoContainer)}\n ref={logoRef}\n >\n {logo && typeof logo === 'string' ? (\n <img className={styles.logo} src={logo} alt=\"Logo\" />\n ) : (\n logo\n )}\n </div>\n\n <AppTitle\n title={isExpanded ? assetName ?? title : title}\n asset={asset}\n dqData={dqData}\n lastUpdate={lastUpdate}\n className={classNames(\n styles.title,\n titleControlsLeft && styles.titleWithControlsLeft,\n elementsClassNames?.title\n )}\n disableAssetSelector={disableAssetSelector}\n titleMenuActions={titleMenuActions}\n style={responsivity.title?.style}\n />\n </>\n )}\n\n {titleControls && (\n <div\n className={classNames(\n styles.titleControls,\n titleControlsLeft && styles.titleControlsLeft,\n responsivity.titleControls?.lastInLine && styles.lastInLine,\n elementsClassNames?.titleControls\n )}\n ref={titleControlsRef}\n style={responsivity.titleControls?.style}\n >\n {titleControls}\n </div>\n )}\n\n <HideInNativeApp>\n <div className={styles.version} ref={versionRef}>\n <VersionSelect className={elementsClassNames?.versionSelect} />\n </div>\n </HideInNativeApp>\n\n {hasPadMode && (\n <div\n className={classNames(\n styles.padMode,\n responsivity.padMode?.lastInLine && styles.lastInLine\n )}\n ref={padModeRef}\n style={responsivity.padMode?.style}\n >\n <PadModeSelect testId={AppHeaderTestIds.PadModeSelectTestId} />\n </div>\n )}\n\n {additionalControls && (\n <div\n className={classNames(\n styles.additionalControls,\n responsivity.additionalControls?.lastInLine && styles.lastInLine,\n elementsClassNames?.additionalControls\n )}\n ref={additionalControlsRef}\n style={responsivity.additionalControls?.style}\n data-testid={AppHeaderTestIds.AdditionalControlsTestId}\n >\n {additionalControls}\n </div>\n )}\n\n {!isEmbedded && !shouldDisableAssetControls && showAssetChips && (\n <HideInNativeApp>\n <div\n className={classNames(\n styles.assetChips,\n responsivity.chips?.lastInLine && styles.lastInLine,\n elementsClassNames?.chips\n )}\n ref={chipsRef}\n style={responsivity.chips?.style}\n >\n <AssetChips chipsWidth={chipsWidth} />\n </div>\n </HideInNativeApp>\n )}\n\n <div\n className={classNames(\n styles.actions,\n responsivity.actions?.lastInLine && styles.lastInLine,\n elementsClassNames?.actions\n )}\n ref={actionsRef}\n style={responsivity.actions?.style}\n data-testid={AppHeaderTestIds.ActionsRootTestId}\n >\n <Actions\n additionalActions={additionalActions}\n showComments={showComments}\n disableSettings={disableSettings}\n hideSettingsUnderMore={responsivenessConfig?.hideSettingsUnderMore}\n />\n </div>\n\n {responsivity.linebreaks?.map((css, index) => (\n <div className={styles.responsivenessLineBreak} style={css} key={index} />\n ))}\n </div>\n );\n};\n"],"names":["AppHeaderV3","_ref","_ref2","_ref3","_well$name","_responsivity$root","_responsivity$title","_responsivity$titleCo","_responsivity$titleCo2","_responsivity$padMode","_responsivity$padMode2","_responsivity$additio","_responsivity$additio2","_responsivity$chips","_responsivity$chips2","_responsivity$actions","_responsivity$actions2","_responsivity$linebre","elementsClassNames","className","testId","logo","additionalControls","title","padModeDisabled","padModeWells","dqData","asset","lastUpdate","additionalActions","showComments","titleControls","disableSettings","showAssetChips","disableAssetSelector","titleMenuActions","_ref$titleControlsPos","titleControlsPosition","responsivenessConfig","rootRef","useRef","_useAppCommonsInterna","useAppCommonsInternal","app","appName","well","contextWells","wells","rig","fracFleet","interventionUnit","isExpanded","setSeparateWindowTitle","isInsideNewMobileApp","disableAppAssetSelection","isMultiRig","dashboardMeta","isEmbedded","isCompletionPadMode","getAppSegment","SEGMENTS","COMPLETION","hasPadModeAssets","isEmpty","shouldDisableAssetControls","hasPadMode","chipsWidth","undefined","titleControlsLeft","versionRef","padModeRef","additionalControlsRef","titleControlsRef","chipsRef","logoRef","actionsRef","assetName","name","useEffect","filter","Boolean","join","responsivity","useResponsivity","disabled","_jsxs","_objectSpread","classNames","styles","root","embedded","ref","style","AppHeaderFinderProps","children","_Fragment","_jsx","logoContainer","src","alt","AppTitle","titleWithControlsLeft","lastInLine","HideInNativeApp","version","VersionSelect","versionSelect","padMode","PadModeSelect","AppHeaderTestIds","PadModeSelectTestId","AdditionalControlsTestId","assetChips","chips","AssetChips","actions","ActionsRootTestId","Actions","hideSettingsUnderMore","linebreaks","map","css","index","responsivenessLineBreak"],"mappings":"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"}