@corva/ui 3.74.0 → 3.74.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs-bundle/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js +1 -1
- package/cjs-bundle/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js.map +1 -1
- package/cjs-bundle/components/UserMention/index.js +1 -1
- package/cjs-bundle/components/UserMention/index.js.map +1 -1
- package/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.d.ts.map +1 -1
- package/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js +1 -1
- package/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js.map +1 -1
- package/components/UserMention/index.js +1 -1
- package/components/UserMention/index.js.map +1 -1
- package/mcp-server/server.mjs +1 -1
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevCenterAppContainer.js","sources":["../../../../src/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js"],"sourcesContent":["/* eslint-disable react/prop-types */\nimport { useContext, useMemo, useState } from 'react';\nimport classNames from 'classnames';\nimport { noop, pick, pickBy } from 'lodash';\nimport { useTheme } from '@material-ui/core';\nimport { BugReport as BugReportIcon } from '@material-ui/icons';\n\nimport AppContext from '../AppContext';\nimport { DevCenterRouterContext } from '../DevCenterRouterContext';\n\nimport { useAnnotationsData, useAnnotationsList, useAppMaximized, useAppSettings } from './effects';\nimport {\n AppActions,\n AppSettingsDialog,\n DcFullscreenElemsCoordinatorProvider,\n DevCenterAppView,\n FullscreenButton,\n NonPriorityMenus,\n} from './components';\nimport RestoreAppSizeButton from './components/RestoreAppSizeButton';\nimport { getAppAvailability, getAppVersion } from './utils';\nimport PriorityMenus from './components/PriorityMenus';\nimport { CommentsSwitchButton, CommentsSwitchProvider } from './components/CommentsSwitch';\n\nimport styles from './DevCenterAppContainer.scss';\n\nimport { isInsideNewMobileApp, isMobileDetected, isNativeDetected } from '~/utils/mobileDetect';\nimport AnnotationIcon from '~components/Icons/AnnotationIcon';\nimport { AnnotationsList, AnnotationsProvider } from '~/components/Annotations';\nimport { ToastContainer } from '~/components/Toaster';\nimport { useDevCenterApp } from '~/effects';\nimport { DEV_CENTER_CLI_APP_ID } from '~/constants';\nimport {\n getAppName,\n getAppSegment,\n getTimestampFromQuery,\n isDCAppMultiRig,\n} from '~/utils/devcenter';\nimport { showSuccessNotification } from '~/utils';\nimport { HelpCenterIcon } from '~/components/HelpCenter';\nimport { ButtonIcon, Tooltip } from '~/componentsV2';\nimport { AppCommonsProvider } from '~/componentsV2/AppCommonsProvider';\n\nconst isMobileView = isNativeDetected || isMobileDetected;\nconst PAGE_NAME = 'DevCenter_AppContainer';\n\nconst isHomePage = router => !!router?.location?.pathname?.startsWith('/home');\n\nfunction DevCenterAppContainer({\n CLIAppComponent,\n CLIAppSettings,\n app,\n appId,\n className,\n coordinates,\n currentDashboardAppsLastAnnotations,\n currentUser,\n devCenterRouter,\n disableAppAssetSelection,\n isActionsDisabled,\n isBrowserFullscreen,\n enterBrowserFullscreen,\n exitBrowserFullscreen,\n isSeparateWindow,\n openSeparateWindow,\n closeSeparateWindow,\n setSeparateWindowTitle,\n // [REACT-18-MIGRATION-TAG] PLT-3099: the platform's isolation decision, passed only by the\n // in-process branch of DevCenterIsolatedApp; iframe mounts leave it false.\n isNonIsolatedApp = false,\n isSettingsDialogHidden,\n layoutEnvironment,\n onAppContainerClick = noop,\n onAppRemove,\n onReportBugClick,\n onCloneDashboard,\n onHelpCenterClick,\n onIsMaximizedChange,\n onSettingChange,\n onSettingsChange,\n openIntercom = noop,\n registerAITools,\n setIsFullscreenModalMode = noop,\n timestamp,\n updateCurrentDashboardAppLastAnnotation,\n dashboardMeta,\n reloadApp = undefined,\n chatActions,\n}) {\n const appsData = useContext(AppContext);\n const theme = useTheme();\n const [mainMenuItems, setMainMenuItems] = useState([]);\n const [secondaryMenuItems, setSecondaryMenuItems] = useState([]);\n const appData = appsData?.[appId || app.id] ?? {\n isLoading: true,\n };\n const application = app.package?.manifest?.application;\n const segment = getAppSegment(app);\n const appIsChiplessDashboard = !!dashboardMeta?.isChiplessDashboard;\n const isMultiRig = isDCAppMultiRig({\n uiSettings: application?.ui,\n isChiplessDashboard: appIsChiplessDashboard,\n });\n const areCommentsEnabled = !!application?.ui?.enable_comments;\n const appName = getAppName(app);\n const { isMaximized, setIsMaximized } = useAppMaximized({\n onIsMaximizedChange,\n devCenterRouter,\n appId,\n });\n\n // Note: we need to pass timestamp directly for apps that are embedded in isolated apps\n const appTimestamp = timestamp || getTimestampFromQuery(devCenterRouter.location.query?.query);\n const isCLIApp = app.id === DEV_CENTER_CLI_APP_ID;\n const updatedCoordinates = isCLIApp && isMobileView ? { ...coordinates, w: 12 } : coordinates;\n const version = getAppVersion(app);\n\n const {\n isLoading: isAppLoading,\n AppSettings,\n AppComponent,\n } = useDevCenterApp({\n CLIAppComponent,\n CLIAppSettings,\n app,\n version,\n });\n\n const { isAppSettingsDialogOpened, toggleAppSettingsDialog } = useAppSettings({\n setIsFullscreenModalMode,\n });\n const { isAnnotationsListOpened, toggleAnnotationsList } = useAnnotationsList();\n\n const isLoading = isAppLoading || !currentUser || (!isMultiRig && appData.isLoading);\n\n const { appLastAnnotation, assetCompanyId, assetIdForAnnotation, isAppSupportsAnnotations } =\n useAnnotationsData({\n app,\n appData,\n currentDashboardAppsLastAnnotations,\n });\n\n const filteredAppData = pickBy(\n pick(appData, ['well', 'rig', 'fracFleet', 'wells', 'interventionUnit']),\n Boolean\n );\n\n const simplifiedSecondaryMenuItems = useMemo(\n () =>\n secondaryMenuItems?.map(item => ({\n ...item,\n onClick: () => {\n item.onClick?.();\n if (item.to) {\n devCenterRouter.push(item.to);\n }\n },\n })),\n [secondaryMenuItems, devCenterRouter]\n );\n\n const appHeadersV3Enabled = !!app?.package?.manifest?.application?.ui?.use_app_header_v3;\n const isInsideHomePage = isHomePage(devCenterRouter);\n\n // ⚠️⚠️⚠️ When adding/changing providers, also add them to/change /src/testing/AppTestWrapper\n return (\n <DevCenterRouterContext.Provider value={devCenterRouter}>\n <DcFullscreenElemsCoordinatorProvider setIsFullscreenModalMode={setIsFullscreenModalMode}>\n <AppCommonsProvider\n maximized={isMaximized}\n setMaximized={setIsMaximized}\n appId={app?.app?.id}\n app={app}\n appSettings={app.settings}\n onSettingChange={onSettingChange}\n onSettingsChange={onSettingsChange}\n appHeadersV3Enabled={appHeadersV3Enabled}\n isBrowserFullscreen={isBrowserFullscreen}\n enterBrowserFullscreen={enterBrowserFullscreen}\n exitBrowserFullscreen={exitBrowserFullscreen}\n isSeparateWindow={isSeparateWindow}\n openSeparateWindow={openSeparateWindow}\n closeSeparateWindow={closeSeparateWindow}\n setSeparateWindowTitle={setSeparateWindowTitle}\n isNonIsolatedApp={isNonIsolatedApp}\n disableAppAssetSelection={disableAppAssetSelection}\n isMultiRig={isMultiRig}\n currentUser={currentUser}\n appData={appData}\n layoutEnvironment={layoutEnvironment}\n appSettingsComponent={AppSettings}\n dashboardMeta={dashboardMeta}\n toggleAnnotationsList={isAppSupportsAnnotations ? toggleAnnotationsList : undefined}\n onHelpCenterClick={onHelpCenterClick}\n secondaryMenuItems={simplifiedSecondaryMenuItems}\n onAppRemove={onAppRemove}\n isInsideNewMobileApp={isInsideNewMobileApp}\n globalOffsetWells={dashboardMeta?.globalOffsetWells}\n globalOffsetWellsVersion={dashboardMeta?.globalOffsetWellsVersion}\n globalOffsetWellsToken={dashboardMeta?.globalOffsetWellsToken}\n reloadApp={reloadApp}\n {...filteredAppData}\n >\n <CommentsSwitchProvider>\n <div\n className={classNames(\n 'dc-app-container',\n isInsideNewMobileApp && 'dc-app-container--inside-new-mobile-app',\n isInsideHomePage && 'dc-app-container--inside-home-page',\n className,\n // This class is applied so that DC apps developers can style their content\n // when an app is in fullscreen\n isMaximized && 'dc-app-container__maximized',\n theme.isLightTheme && 'dc-app-container__light-theme',\n styles.container\n )}\n data-testid={`${PAGE_NAME}_${appName}`}\n // It's important to call it without native event because it's passed through iframe\n onClick={() => onAppContainerClick()}\n >\n <ToastContainer />\n <div className={styles.containerContent}>\n <DevCenterAppView\n AppComponent={AppComponent}\n app={app}\n appData={filteredAppData}\n isAppLoading={isAppLoading}\n availability={getAppAvailability(\n app.availability,\n currentUser.company.with_subscription\n )}\n isCLIApp={isCLIApp}\n isLoading={isLoading}\n isMultiRig={isMultiRig}\n layoutEnvironment={layoutEnvironment}\n openIntercom={openIntercom}\n segment={segment}\n toggleAppSettingsDialog={toggleAppSettingsDialog}\n appProps={{\n coordinates: updatedCoordinates,\n currentUser,\n devCenterRouter,\n onSettingChange,\n onSettingsChange,\n registerAITools,\n segment,\n setIsFullscreenModalMode,\n setIsMaximized,\n setMainMenuItems,\n setSecondaryMenuItems,\n toggleAppSettingsDialog,\n // TODO remove when componentsV2 AppHeader is used everywhere\n appHeaderProps: {\n app,\n appLastAnnotation,\n appSettings: app.settings,\n coordinates: updatedCoordinates,\n currentUser,\n isMaximized,\n layoutEnvironment,\n onSettingChange,\n toggleAnnotationsList,\n updateCurrentDashboardAppLastAnnotation,\n ...filteredAppData,\n },\n isNative: isNativeDetected,\n layoutEnvironment,\n timestamp: appTimestamp,\n chatActions,\n }}\n />\n </div>\n {isAppSettingsDialogOpened && (\n <AppSettingsDialog\n AppSettingsComponent={AppSettings}\n app={app}\n appData={appData}\n appName={appName}\n currentUser={currentUser}\n disableAppAssetSelection={disableAppAssetSelection}\n isMultiRig={isMultiRig}\n isSettingsDialogHidden={isSettingsDialogHidden}\n layoutEnvironment={layoutEnvironment}\n onAppRemove={onAppRemove}\n onCloneDashboard={onCloneDashboard}\n onSettingChange={onSettingChange}\n onSettingsChange={onSettingsChange}\n openIntercom={openIntercom}\n rigId={appData.rig?.id ?? null}\n timestamp={appTimestamp}\n toggleAppSettingsDialog={toggleAppSettingsDialog}\n />\n )}\n {isAnnotationsListOpened && (\n <AnnotationsProvider>\n <AnnotationsList\n appId={app.app.id}\n appSettings={app.settings}\n appTitle={appName}\n assetCompanyId={assetCompanyId}\n assetId={assetIdForAnnotation}\n currentUser={currentUser}\n onClose={toggleAnnotationsList}\n showSuccessNotification={showSuccessNotification}\n />\n </AnnotationsProvider>\n )}\n {isMaximized && !appHeadersV3Enabled && (\n <RestoreAppSizeButton setIsMaximized={setIsMaximized} />\n )}\n\n {!isActionsDisabled && (!appHeadersV3Enabled || isLoading) && (\n <AppActions>\n {areCommentsEnabled && <CommentsSwitchButton currentUser={currentUser} />}\n\n {isAppSupportsAnnotations && (\n <Tooltip title=\"Add Annotation\" placement=\"top\" disabled={!!isMobileView}>\n <ButtonIcon\n size=\"small\"\n type=\"tertiaryBg\"\n onClick={toggleAnnotationsList}\n testId={`${PAGE_NAME}_addAnnotation`}\n >\n <AnnotationIcon />\n </ButtonIcon>\n </Tooltip>\n )}\n\n {onReportBugClick && !isCLIApp && (\n <Tooltip title=\"Report A Bug\" placement=\"top\" disabled={!!isMobileView}>\n <ButtonIcon size=\"small\" type=\"tertiaryBg\" onClick={() => onReportBugClick()}>\n <BugReportIcon />\n </ButtonIcon>\n </Tooltip>\n )}\n\n <Tooltip\n placement=\"top\"\n disabled={!!isMobileView || isCLIApp}\n title=\"Help Center\"\n >\n <ButtonIcon\n testId={`${PAGE_NAME}_helpContent`}\n onClick={() => onHelpCenterClick()}\n disabled={isCLIApp}\n size=\"small\"\n type=\"tertiaryBg\"\n >\n <HelpCenterIcon\n appId={app.app.id}\n helpContentUpdatedAt={app.help_content_updated_at}\n />\n </ButtonIcon>\n </Tooltip>\n\n {isMobileView && !isMaximized && !isInsideNewMobileApp ? (\n <FullscreenButton setIsMaximized={setIsMaximized} />\n ) : (\n <>\n <PriorityMenus\n menuItems={mainMenuItems}\n devCenterRouter={devCenterRouter}\n isMobileView={isMobileView}\n />\n <NonPriorityMenus\n devCenterRouter={devCenterRouter}\n isMaximized={isMaximized}\n isMobileView={isMobileView}\n menuItems={secondaryMenuItems}\n setIsFullscreenModalMode={setIsFullscreenModalMode}\n setIsMaximized={setIsMaximized}\n toggleAppSettingsDialog={toggleAppSettingsDialog}\n />\n </>\n )}\n </AppActions>\n )}\n </div>\n </CommentsSwitchProvider>\n </AppCommonsProvider>\n </DcFullscreenElemsCoordinatorProvider>\n </DevCenterRouterContext.Provider>\n );\n}\n\nexport default DevCenterAppContainer;\n"],"names":["isMobileView","isNativeDetected","isMobileDetected","PAGE_NAME","DevCenterAppContainer","_ref","_appsData","_app$package","_app$package$manifest","_application$ui","_devCenterRouter$loca","_app$package2","_app$package2$manifes","_app$package2$manifes2","_app$package2$manifes3","_app$app","_appData$rig$id","_appData$rig","router","_router$location","_router$location$path","CLIAppComponent","CLIAppSettings","app","appId","className","coordinates","currentDashboardAppsLastAnnotations","currentUser","devCenterRouter","disableAppAssetSelection","isActionsDisabled","isBrowserFullscreen","enterBrowserFullscreen","exitBrowserFullscreen","isSeparateWindow","openSeparateWindow","closeSeparateWindow","setSeparateWindowTitle","_ref$isNonIsolatedApp","isNonIsolatedApp","isSettingsDialogHidden","layoutEnvironment","_ref$onAppContainerCl","onAppContainerClick","noop","onAppRemove","onReportBugClick","onCloneDashboard","onHelpCenterClick","onIsMaximizedChange","onSettingChange","onSettingsChange","_ref$openIntercom","openIntercom","registerAITools","_ref$setIsFullscreenM","setIsFullscreenModalMode","timestamp","updateCurrentDashboardAppLastAnnotation","dashboardMeta","_ref$reloadApp","reloadApp","undefined","chatActions","appsData","useContext","AppContext","theme","useTheme","useState","_useState2","_slicedToArray","_useState","mainMenuItems","setMainMenuItems","_useState4","_useState3","secondaryMenuItems","setSecondaryMenuItems","appData","id","isLoading","application","package","manifest","segment","getAppSegment","appIsChiplessDashboard","isChiplessDashboard","isMultiRig","isDCAppMultiRig","uiSettings","ui","areCommentsEnabled","enable_comments","appName","getAppName","_useAppMaximized","useAppMaximized","isMaximized","setIsMaximized","appTimestamp","getTimestampFromQuery","location","query","isCLIApp","DEV_CENTER_CLI_APP_ID","updatedCoordinates","w","version","getAppVersion","_useDevCenterApp","useDevCenterApp","isAppLoading","AppSettings","AppComponent","_useAppSettings","useAppSettings","isAppSettingsDialogOpened","toggleAppSettingsDialog","_useAnnotationsList","useAnnotationsList","isAnnotationsListOpened","toggleAnnotationsList","_useAnnotationsData","useAnnotationsData","appLastAnnotation","assetCompanyId","assetIdForAnnotation","isAppSupportsAnnotations","filteredAppData","pickBy","pick","Boolean","simplifiedSecondaryMenuItems","useMemo","map","item","_objectSpread","onClick","_item$onClick","call","to","push","appHeadersV3Enabled","use_app_header_v3","isInsideHomePage","pathname","startsWith","_jsx","DevCenterRouterContext","Provider","value","children","DcFullscreenElemsCoordinatorProvider","AppCommonsProvider","maximized","setMaximized","appSettings","settings","appSettingsComponent","isInsideNewMobileApp","globalOffsetWells","globalOffsetWellsVersion","globalOffsetWellsToken","CommentsSwitchProvider","_jsxs","classNames","isLightTheme","styles","container","ToastContainer","containerContent","DevCenterAppView","availability","getAppAvailability","company","with_subscription","appProps","appHeaderProps","isNative","AppSettingsDialog","AppSettingsComponent","rigId","rig","AnnotationsProvider","AnnotationsList","appTitle","assetId","onClose","showSuccessNotification","RestoreAppSizeButton","AppActions","CommentsSwitchButton","Tooltip","title","placement","disabled","ButtonIcon","size","type","testId","concat","AnnotationIcon","BugReportIcon","HelpCenterIcon","helpContentUpdatedAt","help_content_updated_at","_Fragment","PriorityMenus","menuItems","NonPriorityMenus","FullscreenButton"],"mappings":"05hBA2CA,IAAMA,EAAeC,GAAoBC,EACnCC,GAAY,yBAIlB,SAASC,GAwCNC,GAAA,IAAAC,EAAAC,EAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GA1CgBC,GAAMC,GAAAC,GAGvBC,KAAAA,gBACAC,KAAAA,eACAC,KAAAA,IACAC,KAAAA,MACAC,KAAAA,UACAC,KAAAA,YACAC,KAAAA,oCACAC,KAAAA,YACAC,KAAAA,gBACAC,KAAAA,yBACAC,KAAAA,kBACAC,KAAAA,oBACAC,KAAAA,uBACAC,KAAAA,sBACAC,KAAAA,iBACAC,KAAAA,mBACAC,KAAAA,oBACAC,KAAAA,uBAAsBC,GAAAlC,EAGtBmC,iBAAAA,gBAAwBD,GACxBE,KAAAA,uBACAC,KAAAA,kBAAiBC,GAAAtC,EACjBuC,oBAAAA,eAAsBC,EAAIF,GAC1BG,KAAAA,YACAC,KAAAA,iBACAC,KAAAA,iBACAC,KAAAA,kBACAC,KAAAA,oBACAC,KAAAA,gBACAC,KAAAA,iBAAgBC,GAAAhD,EAChBiD,aAAAA,eAAeT,EAAIQ,GACnBE,KAAAA,gBAAeC,GAAAnD,EACfoD,yBAAAA,eAA2BZ,EAAIW,GAC/BE,KAAAA,UACAC,KAAAA,wCACAC,KAAAA,cAAaC,GAAAxD,EACbyD,UAAAA,oBAAYC,EAASF,GACrBG,KAAAA,YAEMC,GAAWC,EAAWC,GACtBC,GAAQC,IAC4BC,GAAAA,EAAS,IAAGC,GAAAC,EAAAC,GAAA,GAA/CC,GAAaH,GAAA,GAAEI,GAAgBJ,GAAA,GACcD,GAAAA,EAAS,IAAGM,GAAAJ,EAAAK,GAAA,GAAzDC,GAAkBF,GAAA,GAAEG,GAAqBH,GAAA,GAC1CI,GAAyC,QAAlC1E,EAAG2D,cAAAA,EAAAA,GAAWzC,IAASD,GAAI0D,WAAO,IAAA3E,EAAAA,EAAA,CAC7C4E,WAAW,GAEPC,WAAc5D,EAAAA,GAAI6D,sBAAJ,WAAA7E,EAAa8E,gBAAb,IAAA7E,UAAAA,GAAuB2E,YACrCG,GAAUC,EAAchE,IACxBiE,KAA2B5B,WAAAA,GAAe6B,qBAC1CC,GAAaC,EAAgB,CACjCC,WAAYT,cAAAA,EAAAA,GAAaU,GACzBJ,oBAAqBD,KAEjBM,KAAuBX,UAAe,QAAJ1E,GAAX0E,GAAaU,UAAE,IAAApF,KAAfA,GAAiBsF,iBACxCC,GAAUC,EAAW1E,IAC3B2E,GAAwCC,EAAgB,CACtDjD,oBAAAA,GACArB,gBAAAA,GACAL,MAAAA,KAHM4E,MAAAA,YAAaC,MAAAA,eAOfC,GAAe5C,IAAa6C,EAAsB,QAAA1E,GAAAA,GAAgB2E,SAASC,aAAzB,IAAA/F,QAAA,EAAAA,GAAgC+F,OAClFC,GAAWnF,GAAI0D,KAAO0B,EACtBC,GAAqBF,IAAY1G,SAAoB0B,IAAW,GAAA,CAAEmF,EAAG,KAAOnF,GAC5EoF,GAAUC,EAAcxF,IAE9ByF,GAIIC,EAAgB,CAClB5F,gBAAAA,GACAC,eAAAA,GACAC,IAAAA,GACAuF,QAAAA,KAPWI,MAAXhC,UACAiC,MAAAA,YACAC,MAAAA,aAQFC,GAA+DC,EAAe,CAC5E7D,yBAAAA,KADM8D,MAAAA,0BAA2BC,MAAAA,wBAGnCC,GAA2DC,IAAnDC,MAAAA,wBAAyBC,MAAAA,sBAE3B1C,GAAYgC,KAAiBtF,KAAiB8D,IAAcV,GAAQE,UAE1E2C,GACEC,EAAmB,CACjBvG,IAAAA,GACAyD,QAAAA,GACArD,oCAAAA,KAJIoG,MAAAA,kBAAmBC,MAAAA,eAAgBC,MAAAA,qBAAsBC,MAAAA,yBAO3DC,GAAkBC,EACtBC,EAAKrD,GAAS,CAAC,OAAQ,MAAO,YAAa,QAAS,qBACpDsD,SAGIC,GAA+BC,GACnC,WAAA,OACE1D,cAAkB,EAAlBA,GAAoB2D,KAAI,SAAAC,GAAI,OAAAC,EAAAA,EAAA,CAAA,EACvBD,GAAI,CAAA,EAAA,CACPE,QAAS,WAAM,IAAAC,EACb,QAAAA,EAAAH,EAAKE,eAAL,IAAAC,GAAAA,EAAAC,KAAAJ,GACIA,EAAKK,IACPlH,GAAgBmH,KAAKN,EAAKK,GAE9B,GAAC,GACA,GACL,CAACjE,GAAoBjD,KAGjBoH,KAAwB1H,kBAAAA,GAAAA,GAAK6D,kCAALzE,GAAc0E,mCAAdzE,GAAwBuE,2BAAxB,WAAAtE,GAAqCgF,UAArC,IAAA/E,KAAAA,GAAyCoI,mBACjEC,KApHuBjI,OAAZA,GAoHmBW,KApHS,WAAhBX,GAAQsF,gBAAQ,IAAArF,IAAU,QAAVC,GAAhBD,GAAkBiI,gBAAQ,IAAAhI,KAA1BA,GAA4BiI,WAAW,UAuHpE,OACEC,EAACC,EAAuBC,SAAQ,CAACC,MAAO5H,GAAgB6H,SACtDJ,EAACK,EAAoC,CAAClG,yBAA0BA,GAAyBiG,SACvFJ,EAACM,EAAkBjB,EAAAA,EAAA,CACjBkB,UAAWzD,GACX0D,aAAczD,GACd7E,MAAOD,UAAA,QAAGR,GAAHQ,GAAKA,WAAL,IAAAR,QAAG,EAAHA,GAAUkE,GACjB1D,IAAKA,GACLwI,YAAaxI,GAAIyI,SACjB7G,gBAAiBA,GACjBC,iBAAkBA,GAClB6F,oBAAqBA,GACrBjH,oBAAqBA,GACrBC,uBAAwBA,GACxBC,sBAAuBA,GACvBC,iBAAkBA,GAClBC,mBAAoBA,GACpBC,oBAAqBA,GACrBC,uBAAwBA,GACxBE,iBAAkBA,GAClBV,yBAA0BA,GAC1B4D,WAAYA,GACZ9D,YAAaA,GACboD,QAASA,GACTtC,kBAAmBA,GACnBuH,qBAAsB9C,GACtBvD,cAAeA,GACfgE,sBAAuBM,GAA2BN,QAAwB7D,EAC1Ed,kBAAmBA,GACnB6B,mBAAoByD,GACpBzF,YAAaA,GACboH,qBAAsBA,EACtBC,kBAAmBvG,cAAAA,EAAAA,GAAeuG,kBAClCC,yBAA0BxG,cAAAA,EAAAA,GAAewG,yBACzCC,uBAAwBzG,cAAAA,EAAAA,GAAeyG,uBACvCvG,UAAWA,IACPqE,IAAe,GAAA,CAAAuB,SAEnBJ,EAACgB,EAAsB,CAAAZ,SACrBa,EAAA,MAAA,CACE9I,UAAW+I,EACT,mBACAN,GAAwB,0CACxBf,IAAoB,qCACpB1H,GAGA2E,IAAe,8BACfhC,GAAMqG,cAAgB,gCACtBC,EAAOC,WAET,cAAgBxK,GAAAA,OAAAA,eAAa6F,IAE7B4C,QAAS,WAAA,OAAMhG,IAAsB,EAAA8G,SAErC,CAAAJ,EAACsB,EAAc,CAAA,GACftB,EAAA,MAAA,CAAK7H,UAAWiJ,EAAOG,iBAAiBnB,SACtCJ,EAACwB,EAAgB,CACf1D,aAAcA,GACd7F,IAAKA,GACLyD,QAASmD,GACTjB,aAAcA,GACd6D,aAAcC,EACZzJ,GAAIwJ,aACJnJ,GAAYqJ,QAAQC,mBAEtBxE,SAAUA,GACVxB,UAAWA,GACXQ,WAAYA,GACZhD,kBAAmBA,GACnBY,aAAcA,GACdgC,QAASA,GACTkC,wBAAyBA,GACzB2D,SAAU,CACRzJ,YAAakF,GACbhF,YAAAA,GACAC,gBAAAA,GACAsB,gBAAAA,GACAC,iBAAAA,GACAG,gBAAAA,GACA+B,QAAAA,GACA7B,yBAAAA,GACA4C,eAAAA,GACA1B,iBAAAA,GACAI,sBAAAA,GACAyC,wBAAAA,GAEA4D,eAAczC,EAAA,CACZpH,IAAAA,GACAwG,kBAAAA,GACAgC,YAAaxI,GAAIyI,SACjBtI,YAAakF,GACbhF,YAAAA,GACAwE,YAAAA,GACA1D,kBAAAA,GACAS,gBAAAA,GACAyE,sBAAAA,GACAjE,wCAAAA,IACGwE,IAELkD,SAAUpL,EACVyC,kBAAAA,GACAgB,UAAW4C,GACXtC,YAAAA,QAILuD,IACC+B,EAACgC,EAAiB,CAChBC,qBAAsBpE,GACtB5F,IAAKA,GACLyD,QAASA,GACTgB,QAASA,GACTpE,YAAaA,GACbE,yBAA0BA,GAC1B4D,WAAYA,GACZjD,uBAAwBA,GACxBC,kBAAmBA,GACnBI,YAAaA,GACbE,iBAAkBA,GAClBG,gBAAiBA,GACjBC,iBAAkBA,GAClBE,aAAcA,GACdkI,cAAKxK,WAAAC,GAAE+D,GAAQyG,yBAARxK,GAAagE,oBAAM,KAC1BvB,UAAW4C,GACXkB,wBAAyBA,KAG5BG,IACC2B,EAACoC,EAAmB,CAAAhC,SAClBJ,EAACqC,EAAe,CACdnK,MAAOD,GAAIA,IAAI0D,GACf8E,YAAaxI,GAAIyI,SACjB4B,SAAU5F,GACVgC,eAAgBA,GAChB6D,QAAS5D,GACTrG,YAAaA,GACbkK,QAASlE,GACTmE,wBAAyBA,MAI9B3F,KAAgB6C,IACfK,EAAC0C,EAAoB,CAAC3F,eAAgBA,MAGtCtE,MAAuBkH,IAAuB/D,KAC9CqF,EAAC0B,EAAU,CAAAvC,SACR5D,CAAAA,IAAsBwD,EAAC4C,EAAoB,CAACtK,YAAaA,KAEzDsG,IACCoB,EAAC6C,EAAO,CAACC,MAAM,iBAAiBC,UAAU,MAAMC,WAAYtM,EAAa0J,SACvEJ,EAACiD,EAAU,CACTC,KAAK,QACLC,KAAK,aACL7D,QAAShB,GACT8E,OAAM,GAAAC,OAAKxM,GAA0B,kBAAAuJ,SAErCJ,EAACsD,EAAc,QAKpB7J,KAAqB2D,IACpB4C,EAAC6C,EAAO,CAACC,MAAM,eAAeC,UAAU,MAAMC,WAAYtM,EAAa0J,SACrEJ,EAACiD,EAAU,CAACC,KAAK,QAAQC,KAAK,aAAa7D,QAAS,WAAA,OAAM7F,IAAmB,EAAA2G,SAC3EJ,EAACuD,EAAa,QAKpBvD,EAAC6C,EAAO,CACNE,UAAU,MACVC,WAAYtM,GAAgB0G,GAC5B0F,MAAM,cAAa1C,SAEnBJ,EAACiD,EAAU,CACTG,OAAM,GAAAC,OAAKxM,GAAwB,gBACnCyI,QAAS,WAAA,OAAM3F,IAAoB,EACnCqJ,SAAU5F,GACV8F,KAAK,QACLC,KAAK,aAAY/C,SAEjBJ,EAACwD,EAAc,CACbtL,MAAOD,GAAIA,IAAI0D,GACf8H,qBAAsBxL,GAAIyL,+BAK/BhN,GAAiBoG,IAAgB8D,EAGhCK,EAAA0C,EAAA,CAAAvD,SAAA,CACEJ,EAAC4D,EAAa,CACZC,UAAWzI,GACX7C,gBAAiBA,GACjB7B,aAAcA,IAEhBsJ,EAAC8D,EAAgB,CACfvL,gBAAiBA,GACjBuE,YAAaA,GACbpG,aAAcA,EACdmN,UAAWrI,GACXrB,yBAA0BA,GAC1B4C,eAAgBA,GAChBmB,wBAAyBA,QAf7B8B,EAAC+D,EAAgB,CAAChH,eAAgBA,mBA2BtD"}
|
|
1
|
+
{"version":3,"file":"DevCenterAppContainer.js","sources":["../../../../src/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js"],"sourcesContent":["/* eslint-disable react/prop-types */\nimport { useContext, useMemo, useState } from 'react';\nimport classNames from 'classnames';\nimport { noop, pick, pickBy } from 'lodash';\nimport { useTheme } from '@material-ui/core';\nimport { BugReport as BugReportIcon } from '@material-ui/icons';\n\nimport AppContext from '../AppContext';\nimport { DevCenterRouterContext } from '../DevCenterRouterContext';\n\nimport { useAnnotationsData, useAnnotationsList, useAppMaximized, useAppSettings } from './effects';\nimport {\n AppActions,\n AppSettingsDialog,\n DcFullscreenElemsCoordinatorProvider,\n DevCenterAppView,\n FullscreenButton,\n NonPriorityMenus,\n} from './components';\nimport RestoreAppSizeButton from './components/RestoreAppSizeButton';\nimport { getAppAvailability, getAppVersion } from './utils';\nimport PriorityMenus from './components/PriorityMenus';\nimport { CommentsSwitchButton, CommentsSwitchProvider } from './components/CommentsSwitch';\n\nimport styles from './DevCenterAppContainer.scss';\n\nimport { isInsideNewMobileApp, isMobileDetected, isNativeDetected } from '~/utils/mobileDetect';\nimport AnnotationIcon from '~components/Icons/AnnotationIcon';\nimport { AnnotationsList, AnnotationsProvider } from '~/components/Annotations';\nimport { ToastContainer } from '~/components/Toaster';\nimport { useDevCenterApp } from '~/effects';\nimport { DEV_CENTER_CLI_APP_ID } from '~/constants';\nimport {\n getAppName,\n getAppSegment,\n getTimestampFromQuery,\n isDCAppMultiRig,\n} from '~/utils/devcenter';\nimport { showSuccessNotification } from '~/utils';\nimport { HelpCenterIcon } from '~/components/HelpCenter';\nimport { ButtonIcon, Tooltip } from '~/componentsV2';\nimport { AppCommonsProvider } from '~/componentsV2/AppCommonsProvider';\n\nconst isMobileView = isNativeDetected || isMobileDetected;\nconst PAGE_NAME = 'DevCenter_AppContainer';\n\nconst isHomePage = router => !!router?.location?.pathname?.startsWith('/home');\n\nfunction DevCenterAppContainer({\n CLIAppComponent,\n CLIAppSettings,\n app,\n appId,\n className,\n coordinates,\n currentDashboardAppsLastAnnotations,\n currentUser,\n devCenterRouter,\n disableAppAssetSelection,\n isActionsDisabled,\n isBrowserFullscreen,\n enterBrowserFullscreen,\n exitBrowserFullscreen,\n isSeparateWindow,\n openSeparateWindow,\n closeSeparateWindow,\n setSeparateWindowTitle,\n // [REACT-18-MIGRATION-TAG] PLT-3099: the platform's isolation decision, passed only by the\n // in-process branch of DevCenterIsolatedApp; iframe mounts leave it false.\n isNonIsolatedApp = false,\n isSettingsDialogHidden,\n layoutEnvironment,\n onAppContainerClick = noop,\n onAppRemove,\n onReportBugClick,\n onCloneDashboard,\n onHelpCenterClick,\n onIsMaximizedChange,\n onSettingChange,\n onSettingsChange,\n openIntercom = noop,\n registerAITools,\n setIsFullscreenModalMode = noop,\n timestamp,\n updateCurrentDashboardAppLastAnnotation,\n dashboardMeta,\n reloadApp = undefined,\n chatActions,\n}) {\n const appsData = useContext(AppContext);\n const theme = useTheme();\n const [mainMenuItems, setMainMenuItems] = useState([]);\n const [secondaryMenuItems, setSecondaryMenuItems] = useState([]);\n const appData = appsData?.[appId || app.id] ?? {\n isLoading: true,\n };\n const application = app.package?.manifest?.application;\n const segment = getAppSegment(app);\n const appIsChiplessDashboard = !!dashboardMeta?.isChiplessDashboard;\n const isMultiRig = isDCAppMultiRig({\n uiSettings: application?.ui,\n isChiplessDashboard: appIsChiplessDashboard,\n });\n const areCommentsEnabled = !!application?.ui?.enable_comments;\n const appName = getAppName(app);\n const { isMaximized, setIsMaximized } = useAppMaximized({\n onIsMaximizedChange,\n devCenterRouter,\n appId,\n });\n\n // Note: we need to pass timestamp directly for apps that are embedded in isolated apps\n const appTimestamp = timestamp || getTimestampFromQuery(devCenterRouter.location.query?.query);\n const isCLIApp = app.id === DEV_CENTER_CLI_APP_ID;\n const updatedCoordinates = isCLIApp && isMobileView ? { ...coordinates, w: 12 } : coordinates;\n const version = getAppVersion(app);\n\n const {\n isLoading: isAppLoading,\n AppSettings,\n AppComponent,\n } = useDevCenterApp({\n CLIAppComponent,\n CLIAppSettings,\n app,\n version,\n });\n\n const { isAppSettingsDialogOpened, toggleAppSettingsDialog } = useAppSettings({\n setIsFullscreenModalMode,\n });\n const { isAnnotationsListOpened, toggleAnnotationsList } = useAnnotationsList();\n\n const isLoading = isAppLoading || !currentUser || (!isMultiRig && appData.isLoading);\n\n const { appLastAnnotation, assetCompanyId, assetIdForAnnotation, isAppSupportsAnnotations } =\n useAnnotationsData({\n app,\n appData,\n currentDashboardAppsLastAnnotations,\n });\n\n const filteredAppData = pickBy(\n pick(appData, ['well', 'rig', 'fracFleet', 'wells', 'interventionUnit']),\n Boolean\n );\n\n const simplifiedSecondaryMenuItems = useMemo(\n () =>\n secondaryMenuItems?.map(item => ({\n ...item,\n onClick: () => {\n item.onClick?.();\n if (item.to) {\n devCenterRouter.push(item.to);\n }\n },\n })),\n [secondaryMenuItems, devCenterRouter]\n );\n\n const appHeadersV3Enabled = !!app?.package?.manifest?.application?.ui?.use_app_header_v3;\n const isInsideHomePage = isHomePage(devCenterRouter);\n\n // ⚠️⚠️⚠️ When adding/changing providers, also add them to/change /src/testing/AppTestWrapper\n return (\n <DevCenterRouterContext.Provider value={devCenterRouter}>\n <DcFullscreenElemsCoordinatorProvider setIsFullscreenModalMode={setIsFullscreenModalMode}>\n <AppCommonsProvider\n maximized={isMaximized}\n setMaximized={setIsMaximized}\n appId={app?.app?.id}\n app={app}\n appSettings={app.settings}\n onSettingChange={onSettingChange}\n onSettingsChange={onSettingsChange}\n appHeadersV3Enabled={appHeadersV3Enabled}\n isBrowserFullscreen={isBrowserFullscreen}\n enterBrowserFullscreen={enterBrowserFullscreen}\n exitBrowserFullscreen={exitBrowserFullscreen}\n isSeparateWindow={isSeparateWindow}\n openSeparateWindow={openSeparateWindow}\n closeSeparateWindow={closeSeparateWindow}\n setSeparateWindowTitle={setSeparateWindowTitle}\n isNonIsolatedApp={isNonIsolatedApp}\n disableAppAssetSelection={disableAppAssetSelection}\n isMultiRig={isMultiRig}\n currentUser={currentUser}\n appData={appData}\n layoutEnvironment={layoutEnvironment}\n appSettingsComponent={AppSettings}\n dashboardMeta={dashboardMeta}\n toggleAnnotationsList={isAppSupportsAnnotations ? toggleAnnotationsList : undefined}\n onHelpCenterClick={onHelpCenterClick}\n secondaryMenuItems={simplifiedSecondaryMenuItems}\n onAppRemove={onAppRemove}\n isInsideNewMobileApp={isInsideNewMobileApp}\n globalOffsetWells={dashboardMeta?.globalOffsetWells}\n globalOffsetWellsVersion={dashboardMeta?.globalOffsetWellsVersion}\n globalOffsetWellsToken={dashboardMeta?.globalOffsetWellsToken}\n reloadApp={reloadApp}\n {...filteredAppData}\n >\n <CommentsSwitchProvider>\n <div\n className={classNames(\n 'dc-app-container',\n isInsideNewMobileApp && 'dc-app-container--inside-new-mobile-app',\n isInsideHomePage && 'dc-app-container--inside-home-page',\n className,\n // This class is applied so that DC apps developers can style their content\n // when an app is in fullscreen\n isMaximized && 'dc-app-container__maximized',\n theme.isLightTheme && 'dc-app-container__light-theme',\n styles.container\n )}\n data-testid={`${PAGE_NAME}_${appName}`}\n // It's important to call it without native event because it's passed through iframe\n onClick={() => onAppContainerClick()}\n >\n <ToastContainer />\n <div className={styles.containerContent}>\n <DevCenterAppView\n // 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 isAppLoading={isAppLoading}\n availability={getAppAvailability(\n app.availability,\n currentUser.company.with_subscription\n )}\n isCLIApp={isCLIApp}\n isLoading={isLoading}\n isMultiRig={isMultiRig}\n layoutEnvironment={layoutEnvironment}\n openIntercom={openIntercom}\n segment={segment}\n toggleAppSettingsDialog={toggleAppSettingsDialog}\n appProps={{\n coordinates: updatedCoordinates,\n currentUser,\n devCenterRouter,\n onSettingChange,\n onSettingsChange,\n registerAITools,\n segment,\n setIsFullscreenModalMode,\n setIsMaximized,\n setMainMenuItems,\n setSecondaryMenuItems,\n toggleAppSettingsDialog,\n // TODO remove when componentsV2 AppHeader is used everywhere\n appHeaderProps: {\n app,\n appLastAnnotation,\n appSettings: app.settings,\n coordinates: updatedCoordinates,\n currentUser,\n isMaximized,\n layoutEnvironment,\n onSettingChange,\n toggleAnnotationsList,\n updateCurrentDashboardAppLastAnnotation,\n ...filteredAppData,\n },\n isNative: isNativeDetected,\n layoutEnvironment,\n timestamp: appTimestamp,\n chatActions,\n }}\n />\n </div>\n {isAppSettingsDialogOpened && (\n <AppSettingsDialog\n AppSettingsComponent={AppSettings}\n app={app}\n appData={appData}\n appName={appName}\n currentUser={currentUser}\n disableAppAssetSelection={disableAppAssetSelection}\n isMultiRig={isMultiRig}\n isSettingsDialogHidden={isSettingsDialogHidden}\n layoutEnvironment={layoutEnvironment}\n onAppRemove={onAppRemove}\n onCloneDashboard={onCloneDashboard}\n onSettingChange={onSettingChange}\n onSettingsChange={onSettingsChange}\n openIntercom={openIntercom}\n rigId={appData.rig?.id ?? null}\n timestamp={appTimestamp}\n toggleAppSettingsDialog={toggleAppSettingsDialog}\n />\n )}\n {isAnnotationsListOpened && (\n <AnnotationsProvider>\n <AnnotationsList\n appId={app.app.id}\n appSettings={app.settings}\n appTitle={appName}\n assetCompanyId={assetCompanyId}\n assetId={assetIdForAnnotation}\n currentUser={currentUser}\n onClose={toggleAnnotationsList}\n showSuccessNotification={showSuccessNotification}\n />\n </AnnotationsProvider>\n )}\n {isMaximized && !appHeadersV3Enabled && (\n <RestoreAppSizeButton setIsMaximized={setIsMaximized} />\n )}\n\n {!isActionsDisabled && (!appHeadersV3Enabled || isLoading) && (\n <AppActions>\n {areCommentsEnabled && <CommentsSwitchButton currentUser={currentUser} />}\n\n {isAppSupportsAnnotations && (\n <Tooltip title=\"Add Annotation\" placement=\"top\" disabled={!!isMobileView}>\n <ButtonIcon\n size=\"small\"\n type=\"tertiaryBg\"\n onClick={toggleAnnotationsList}\n testId={`${PAGE_NAME}_addAnnotation`}\n >\n <AnnotationIcon />\n </ButtonIcon>\n </Tooltip>\n )}\n\n {onReportBugClick && !isCLIApp && (\n <Tooltip title=\"Report A Bug\" placement=\"top\" disabled={!!isMobileView}>\n <ButtonIcon size=\"small\" type=\"tertiaryBg\" onClick={() => onReportBugClick()}>\n <BugReportIcon />\n </ButtonIcon>\n </Tooltip>\n )}\n\n <Tooltip\n placement=\"top\"\n disabled={!!isMobileView || isCLIApp}\n title=\"Help Center\"\n >\n <ButtonIcon\n testId={`${PAGE_NAME}_helpContent`}\n onClick={() => onHelpCenterClick()}\n disabled={isCLIApp}\n size=\"small\"\n type=\"tertiaryBg\"\n >\n <HelpCenterIcon\n appId={app.app.id}\n helpContentUpdatedAt={app.help_content_updated_at}\n />\n </ButtonIcon>\n </Tooltip>\n\n {isMobileView && !isMaximized && !isInsideNewMobileApp ? (\n <FullscreenButton setIsMaximized={setIsMaximized} />\n ) : (\n <>\n <PriorityMenus\n menuItems={mainMenuItems}\n devCenterRouter={devCenterRouter}\n isMobileView={isMobileView}\n />\n <NonPriorityMenus\n devCenterRouter={devCenterRouter}\n isMaximized={isMaximized}\n isMobileView={isMobileView}\n menuItems={secondaryMenuItems}\n setIsFullscreenModalMode={setIsFullscreenModalMode}\n setIsMaximized={setIsMaximized}\n toggleAppSettingsDialog={toggleAppSettingsDialog}\n />\n </>\n )}\n </AppActions>\n )}\n </div>\n </CommentsSwitchProvider>\n </AppCommonsProvider>\n </DcFullscreenElemsCoordinatorProvider>\n </DevCenterRouterContext.Provider>\n );\n}\n\nexport default DevCenterAppContainer;\n"],"names":["isMobileView","isNativeDetected","isMobileDetected","PAGE_NAME","DevCenterAppContainer","_ref","_appsData","_app$package","_app$package$manifest","_application$ui","_devCenterRouter$loca","_app$package2","_app$package2$manifes","_app$package2$manifes2","_app$package2$manifes3","_app$app","_appData$rig$id","_appData$rig","router","_router$location","_router$location$path","CLIAppComponent","CLIAppSettings","app","appId","className","coordinates","currentDashboardAppsLastAnnotations","currentUser","devCenterRouter","disableAppAssetSelection","isActionsDisabled","isBrowserFullscreen","enterBrowserFullscreen","exitBrowserFullscreen","isSeparateWindow","openSeparateWindow","closeSeparateWindow","setSeparateWindowTitle","_ref$isNonIsolatedApp","isNonIsolatedApp","isSettingsDialogHidden","layoutEnvironment","_ref$onAppContainerCl","onAppContainerClick","noop","onAppRemove","onReportBugClick","onCloneDashboard","onHelpCenterClick","onIsMaximizedChange","onSettingChange","onSettingsChange","_ref$openIntercom","openIntercom","registerAITools","_ref$setIsFullscreenM","setIsFullscreenModalMode","timestamp","updateCurrentDashboardAppLastAnnotation","dashboardMeta","_ref$reloadApp","reloadApp","undefined","chatActions","appsData","useContext","AppContext","theme","useTheme","useState","_useState2","_slicedToArray","_useState","mainMenuItems","setMainMenuItems","_useState4","_useState3","secondaryMenuItems","setSecondaryMenuItems","appData","id","isLoading","application","package","manifest","segment","getAppSegment","appIsChiplessDashboard","isChiplessDashboard","isMultiRig","isDCAppMultiRig","uiSettings","ui","areCommentsEnabled","enable_comments","appName","getAppName","_useAppMaximized","useAppMaximized","isMaximized","setIsMaximized","appTimestamp","getTimestampFromQuery","location","query","isCLIApp","DEV_CENTER_CLI_APP_ID","updatedCoordinates","w","version","getAppVersion","_useDevCenterApp","useDevCenterApp","isAppLoading","AppSettings","AppComponent","_useAppSettings","useAppSettings","isAppSettingsDialogOpened","toggleAppSettingsDialog","_useAnnotationsList","useAnnotationsList","isAnnotationsListOpened","toggleAnnotationsList","_useAnnotationsData","useAnnotationsData","appLastAnnotation","assetCompanyId","assetIdForAnnotation","isAppSupportsAnnotations","filteredAppData","pickBy","pick","Boolean","simplifiedSecondaryMenuItems","useMemo","map","item","_objectSpread","onClick","_item$onClick","call","to","push","appHeadersV3Enabled","use_app_header_v3","isInsideHomePage","pathname","startsWith","_jsx","DevCenterRouterContext","Provider","value","children","DcFullscreenElemsCoordinatorProvider","AppCommonsProvider","maximized","setMaximized","appSettings","settings","appSettingsComponent","isInsideNewMobileApp","globalOffsetWells","globalOffsetWellsVersion","globalOffsetWellsToken","CommentsSwitchProvider","_jsxs","classNames","isLightTheme","styles","container","ToastContainer","containerContent","DevCenterAppView","availability","getAppAvailability","company","with_subscription","appProps","appHeaderProps","isNative","appHash","AppSettingsDialog","AppSettingsComponent","rigId","rig","AnnotationsProvider","AnnotationsList","appTitle","assetId","onClose","showSuccessNotification","RestoreAppSizeButton","AppActions","CommentsSwitchButton","Tooltip","title","placement","disabled","ButtonIcon","size","type","testId","concat","AnnotationIcon","BugReportIcon","HelpCenterIcon","helpContentUpdatedAt","help_content_updated_at","_Fragment","PriorityMenus","menuItems","NonPriorityMenus","FullscreenButton"],"mappings":"05hBA2CA,IAAMA,EAAeC,GAAoBC,EACnCC,GAAY,yBAIlB,SAASC,GAwCNC,GAAA,IAAAC,EAAAC,EAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GA1CgBC,GAAMC,GAAAC,GAGvBC,KAAAA,gBACAC,KAAAA,eACAC,KAAAA,IACAC,KAAAA,MACAC,KAAAA,UACAC,KAAAA,YACAC,KAAAA,oCACAC,KAAAA,YACAC,KAAAA,gBACAC,KAAAA,yBACAC,KAAAA,kBACAC,KAAAA,oBACAC,KAAAA,uBACAC,KAAAA,sBACAC,KAAAA,iBACAC,KAAAA,mBACAC,KAAAA,oBACAC,KAAAA,uBAAsBC,GAAAlC,EAGtBmC,iBAAAA,gBAAwBD,GACxBE,KAAAA,uBACAC,KAAAA,kBAAiBC,GAAAtC,EACjBuC,oBAAAA,eAAsBC,EAAIF,GAC1BG,KAAAA,YACAC,KAAAA,iBACAC,KAAAA,iBACAC,KAAAA,kBACAC,KAAAA,oBACAC,KAAAA,gBACAC,KAAAA,iBAAgBC,GAAAhD,EAChBiD,aAAAA,eAAeT,EAAIQ,GACnBE,KAAAA,gBAAeC,GAAAnD,EACfoD,yBAAAA,eAA2BZ,EAAIW,GAC/BE,KAAAA,UACAC,KAAAA,wCACAC,KAAAA,cAAaC,GAAAxD,EACbyD,UAAAA,oBAAYC,EAASF,GACrBG,KAAAA,YAEMC,GAAWC,EAAWC,GACtBC,GAAQC,IAC4BC,GAAAA,EAAS,IAAGC,GAAAC,EAAAC,GAAA,GAA/CC,GAAaH,GAAA,GAAEI,GAAgBJ,GAAA,GACcD,GAAAA,EAAS,IAAGM,GAAAJ,EAAAK,GAAA,GAAzDC,GAAkBF,GAAA,GAAEG,GAAqBH,GAAA,GAC1CI,GAAyC,QAAlC1E,EAAG2D,cAAAA,EAAAA,GAAWzC,IAASD,GAAI0D,WAAO,IAAA3E,EAAAA,EAAA,CAC7C4E,WAAW,GAEPC,WAAc5D,EAAAA,GAAI6D,sBAAJ,WAAA7E,EAAa8E,gBAAb,IAAA7E,UAAAA,GAAuB2E,YACrCG,GAAUC,EAAchE,IACxBiE,KAA2B5B,WAAAA,GAAe6B,qBAC1CC,GAAaC,EAAgB,CACjCC,WAAYT,cAAAA,EAAAA,GAAaU,GACzBJ,oBAAqBD,KAEjBM,KAAuBX,UAAe,QAAJ1E,GAAX0E,GAAaU,UAAE,IAAApF,KAAfA,GAAiBsF,iBACxCC,GAAUC,EAAW1E,IAC3B2E,GAAwCC,EAAgB,CACtDjD,oBAAAA,GACArB,gBAAAA,GACAL,MAAAA,KAHM4E,MAAAA,YAAaC,MAAAA,eAOfC,GAAe5C,IAAa6C,EAAsB,QAAA1E,GAAAA,GAAgB2E,SAASC,aAAzB,IAAA/F,QAAA,EAAAA,GAAgC+F,OAClFC,GAAWnF,GAAI0D,KAAO0B,EACtBC,GAAqBF,IAAY1G,SAAoB0B,IAAW,GAAA,CAAEmF,EAAG,KAAOnF,GAC5EoF,GAAUC,EAAcxF,IAE9ByF,GAIIC,EAAgB,CAClB5F,gBAAAA,GACAC,eAAAA,GACAC,IAAAA,GACAuF,QAAAA,KAPWI,MAAXhC,UACAiC,MAAAA,YACAC,MAAAA,aAQFC,GAA+DC,EAAe,CAC5E7D,yBAAAA,KADM8D,MAAAA,0BAA2BC,MAAAA,wBAGnCC,GAA2DC,IAAnDC,MAAAA,wBAAyBC,MAAAA,sBAE3B1C,GAAYgC,KAAiBtF,KAAiB8D,IAAcV,GAAQE,UAE1E2C,GACEC,EAAmB,CACjBvG,IAAAA,GACAyD,QAAAA,GACArD,oCAAAA,KAJIoG,MAAAA,kBAAmBC,MAAAA,eAAgBC,MAAAA,qBAAsBC,MAAAA,yBAO3DC,GAAkBC,EACtBC,EAAKrD,GAAS,CAAC,OAAQ,MAAO,YAAa,QAAS,qBACpDsD,SAGIC,GAA+BC,GACnC,WAAA,OACE1D,cAAkB,EAAlBA,GAAoB2D,KAAI,SAAAC,GAAI,OAAAC,EAAAA,EAAA,CAAA,EACvBD,GAAI,CAAA,EAAA,CACPE,QAAS,WAAM,IAAAC,EACb,QAAAA,EAAAH,EAAKE,eAAL,IAAAC,GAAAA,EAAAC,KAAAJ,GACIA,EAAKK,IACPlH,GAAgBmH,KAAKN,EAAKK,GAE9B,GAAC,GACA,GACL,CAACjE,GAAoBjD,KAGjBoH,KAAwB1H,kBAAAA,GAAAA,GAAK6D,kCAALzE,GAAc0E,mCAAdzE,GAAwBuE,2BAAxB,WAAAtE,GAAqCgF,UAArC,IAAA/E,KAAAA,GAAyCoI,mBACjEC,KApHuBjI,OAAZA,GAoHmBW,KApHS,WAAhBX,GAAQsF,gBAAQ,IAAArF,IAAU,QAAVC,GAAhBD,GAAkBiI,gBAAQ,IAAAhI,KAA1BA,GAA4BiI,WAAW,UAuHpE,OACEC,EAACC,EAAuBC,SAAQ,CAACC,MAAO5H,GAAgB6H,SACtDJ,EAACK,EAAoC,CAAClG,yBAA0BA,GAAyBiG,SACvFJ,EAACM,EAAkBjB,EAAAA,EAAA,CACjBkB,UAAWzD,GACX0D,aAAczD,GACd7E,MAAOD,UAAA,QAAGR,GAAHQ,GAAKA,WAAL,IAAAR,QAAG,EAAHA,GAAUkE,GACjB1D,IAAKA,GACLwI,YAAaxI,GAAIyI,SACjB7G,gBAAiBA,GACjBC,iBAAkBA,GAClB6F,oBAAqBA,GACrBjH,oBAAqBA,GACrBC,uBAAwBA,GACxBC,sBAAuBA,GACvBC,iBAAkBA,GAClBC,mBAAoBA,GACpBC,oBAAqBA,GACrBC,uBAAwBA,GACxBE,iBAAkBA,GAClBV,yBAA0BA,GAC1B4D,WAAYA,GACZ9D,YAAaA,GACboD,QAASA,GACTtC,kBAAmBA,GACnBuH,qBAAsB9C,GACtBvD,cAAeA,GACfgE,sBAAuBM,GAA2BN,QAAwB7D,EAC1Ed,kBAAmBA,GACnB6B,mBAAoByD,GACpBzF,YAAaA,GACboH,qBAAsBA,EACtBC,kBAAmBvG,cAAAA,EAAAA,GAAeuG,kBAClCC,yBAA0BxG,cAAAA,EAAAA,GAAewG,yBACzCC,uBAAwBzG,cAAAA,EAAAA,GAAeyG,uBACvCvG,UAAWA,IACPqE,IAAe,GAAA,CAAAuB,SAEnBJ,EAACgB,EAAsB,CAAAZ,SACrBa,EAAA,MAAA,CACE9I,UAAW+I,EACT,mBACAN,GAAwB,0CACxBf,IAAoB,qCACpB1H,GAGA2E,IAAe,8BACfhC,GAAMqG,cAAgB,gCACtBC,EAAOC,WAET,cAAgBxK,GAAAA,OAAAA,eAAa6F,IAE7B4C,QAAS,WAAA,OAAMhG,IAAsB,EAAA8G,SAErC,CAAAJ,EAACsB,EAAc,CAAA,GACftB,EAAA,MAAA,CAAK7H,UAAWiJ,EAAOG,iBAAiBnB,SACtCJ,EAACwB,EAGC,CAEA1D,aAAcA,GACd7F,IAAKA,GACLyD,QAASmD,GACTjB,aAAcA,GACd6D,aAAcC,EACZzJ,GAAIwJ,aACJnJ,GAAYqJ,QAAQC,mBAEtBxE,SAAUA,GACVxB,UAAWA,GACXQ,WAAYA,GACZhD,kBAAmBA,GACnBY,aAAcA,GACdgC,QAASA,GACTkC,wBAAyBA,GACzB2D,SAAU,CACRzJ,YAAakF,GACbhF,YAAAA,GACAC,gBAAAA,GACAsB,gBAAAA,GACAC,iBAAAA,GACAG,gBAAAA,GACA+B,QAAAA,GACA7B,yBAAAA,GACA4C,eAAAA,GACA1B,iBAAAA,GACAI,sBAAAA,GACAyC,wBAAAA,GAEA4D,eAAczC,EAAA,CACZpH,IAAAA,GACAwG,kBAAAA,GACAgC,YAAaxI,GAAIyI,SACjBtI,YAAakF,GACbhF,YAAAA,GACAwE,YAAAA,GACA1D,kBAAAA,GACAS,gBAAAA,GACAyE,sBAAAA,GACAjE,wCAAAA,IACGwE,IAELkD,SAAUpL,EACVyC,kBAAAA,GACAgB,UAAW4C,GACXtC,YAAAA,KA9CGgB,GAAQsG,WAkDhB/D,IACC+B,EAACiC,EAAiB,CAChBC,qBAAsBrE,GACtB5F,IAAKA,GACLyD,QAASA,GACTgB,QAASA,GACTpE,YAAaA,GACbE,yBAA0BA,GAC1B4D,WAAYA,GACZjD,uBAAwBA,GACxBC,kBAAmBA,GACnBI,YAAaA,GACbE,iBAAkBA,GAClBG,gBAAiBA,GACjBC,iBAAkBA,GAClBE,aAAcA,GACdmI,cAAKzK,WAAAC,GAAE+D,GAAQ0G,yBAARzK,GAAagE,oBAAM,KAC1BvB,UAAW4C,GACXkB,wBAAyBA,KAG5BG,IACC2B,EAACqC,EAAmB,CAAAjC,SAClBJ,EAACsC,EAAe,CACdpK,MAAOD,GAAIA,IAAI0D,GACf8E,YAAaxI,GAAIyI,SACjB6B,SAAU7F,GACVgC,eAAgBA,GAChB8D,QAAS7D,GACTrG,YAAaA,GACbmK,QAASnE,GACToE,wBAAyBA,MAI9B5F,KAAgB6C,IACfK,EAAC2C,EAAoB,CAAC5F,eAAgBA,MAGtCtE,MAAuBkH,IAAuB/D,KAC9CqF,EAAC2B,EAAU,CAAAxC,SACR5D,CAAAA,IAAsBwD,EAAC6C,EAAoB,CAACvK,YAAaA,KAEzDsG,IACCoB,EAAC8C,EAAO,CAACC,MAAM,iBAAiBC,UAAU,MAAMC,WAAYvM,EAAa0J,SACvEJ,EAACkD,EAAU,CACTC,KAAK,QACLC,KAAK,aACL9D,QAAShB,GACT+E,OAAM,GAAAC,OAAKzM,GAA0B,kBAAAuJ,SAErCJ,EAACuD,EAAc,QAKpB9J,KAAqB2D,IACpB4C,EAAC8C,EAAO,CAACC,MAAM,eAAeC,UAAU,MAAMC,WAAYvM,EAAa0J,SACrEJ,EAACkD,EAAU,CAACC,KAAK,QAAQC,KAAK,aAAa9D,QAAS,WAAA,OAAM7F,IAAmB,EAAA2G,SAC3EJ,EAACwD,EAAa,QAKpBxD,EAAC8C,EAAO,CACNE,UAAU,MACVC,WAAYvM,GAAgB0G,GAC5B2F,MAAM,cAAa3C,SAEnBJ,EAACkD,EAAU,CACTG,OAAM,GAAAC,OAAKzM,GAAwB,gBACnCyI,QAAS,WAAA,OAAM3F,IAAoB,EACnCsJ,SAAU7F,GACV+F,KAAK,QACLC,KAAK,aAAYhD,SAEjBJ,EAACyD,EAAc,CACbvL,MAAOD,GAAIA,IAAI0D,GACf+H,qBAAsBzL,GAAI0L,+BAK/BjN,GAAiBoG,IAAgB8D,EAGhCK,EAAA2C,EAAA,CAAAxD,SAAA,CACEJ,EAAC6D,EAAa,CACZC,UAAW1I,GACX7C,gBAAiBA,GACjB7B,aAAcA,IAEhBsJ,EAAC+D,EAAgB,CACfxL,gBAAiBA,GACjBuE,YAAaA,GACbpG,aAAcA,EACdoN,UAAWtI,GACXrB,yBAA0BA,GAC1B4C,eAAgBA,GAChBmB,wBAAyBA,QAf7B8B,EAACgE,EAAgB,CAACjH,eAAgBA,mBA2BtD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import o from"@babel/runtime/helpers/defineProperty";import{useEffect as e,useCallback as r}from"react";import{debounce as i}from"lodash";import n from"prop-types";import{withStyles as t}from"@material-ui/core/styles";import{MentionsInput as s,Mention as a}from"react-mentions";import l from"@material-ui/core/colors/blue";import{handleFetchUsers as u}from"./utils/index.js";import{URL_CAPTURE_PATTERN as c}from"../../utils/links.js";import{USER_MARKUP as p,LINK_MARKUP as m}from"./constants.js";import d from"./style.css.js";import{AvatarComponent as g}from"../Avatar/index.js";import"../../permissions/PermissionsContext.js";import{PERMISSIONS as f}from"../../permissions/constants/index.js";import"@babel/runtime/helpers/slicedToArray";import{withPermissionsHOC as b}from"../../permissions/withPermissionsHOC.js";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/regenerator";import"../../clients/jsonApi/index.js";import"../../permissions/ProvidePermissions.js";import{jsxs as h,jsx as y}from"react/jsx-runtime";function v(o,e){var r=Object.keys(o);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(o);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),r.push.apply(r,i)}return r}function j(e){for(var r=1;r<arguments.length;r++){var i=null!=arguments[r]?arguments[r]:{};r%2?v(Object(i),!0).forEach((function(r){o(e,r,i[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):v(Object(i)).forEach((function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(i,o))}))}return e}var _={backgroundColor:l[100]},w={color:"#00bcd4"},O={color:"var(--palette-info-light)",backgroundColor:"rgb(from var(--palette-primary-text-1) r g b / 0.04)",outline:"1px solid rgb(from var(--palette-primary-text-1) r g b / 0.16)",borderRadius:"4px"},P
|
|
1
|
+
import o from"@babel/runtime/helpers/defineProperty";import{useEffect as e,useCallback as r}from"react";import{debounce as i}from"lodash";import n from"prop-types";import{withStyles as t}from"@material-ui/core/styles";import{MentionsInput as s,Mention as a}from"react-mentions";import l from"@material-ui/core/colors/blue";import{handleFetchUsers as u}from"./utils/index.js";import{URL_CAPTURE_PATTERN as c}from"../../utils/links.js";import{USER_MARKUP as p,LINK_MARKUP as m}from"./constants.js";import d from"./style.css.js";import{AvatarComponent as g}from"../Avatar/index.js";import"../../permissions/PermissionsContext.js";import{PERMISSIONS as f}from"../../permissions/constants/index.js";import"@babel/runtime/helpers/slicedToArray";import{withPermissionsHOC as b}from"../../permissions/withPermissionsHOC.js";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/regenerator";import"../../clients/jsonApi/index.js";import"../../permissions/ProvidePermissions.js";import{jsxs as h,jsx as y}from"react/jsx-runtime";function v(o,e){var r=Object.keys(o);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(o);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),r.push.apply(r,i)}return r}function j(e){for(var r=1;r<arguments.length;r++){var i=null!=arguments[r]?arguments[r]:{};r%2?v(Object(i),!0).forEach((function(r){o(e,r,i[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):v(Object(i)).forEach((function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(i,o))}))}return e}var _={backgroundColor:l[100]},w={color:"#00bcd4"},O={color:"var(--palette-info-light)",backgroundColor:"rgb(from var(--palette-primary-text-1) r g b / 0.04)",outline:"1px solid rgb(from var(--palette-primary-text-1) r g b / 0.16)",borderRadius:"4px"},P=/(?!)/,C=[],x={suggestions:{item:{"&focused":{backgroundColor:"rgba(0, 0, 0, 0.08)"}}}},S=j(j({},x),{},{input:{color:"#fff",caretColor:"#fff",zIndex:1},highlighter:{color:"#fff"}}),k=j(j({},x),{},{input:{color:"#000"}}),R=function(o){var n=o.onChange,t=void 0===n?A:n,l=o.singleLine,f=void 0!==l&&l,b=o.suggestionsPortalHost,v=void 0===b?null:b,x=o.value,R=void 0===x?"":x,U=o.inputRef,q=void 0===U?null:U,H=o.classes,I=o.style,M=void 0===I?D:I,V=o.withLightTheme,B=void 0!==V&&V,Q=o.placeholder,z=void 0===Q?"Mention people using '@'":Q,G=o.onMount,J=void 0===G?N:G,W=o.onKeyDown,X=void 0===W?T:W,Y=o.onKeyUp,Z=void 0===Y?F:Y,$=o.onFocus,oo=void 0===$?K:$,eo=o.onBlur,ro=void 0===eo?E:eo,io=o.autoFocus,no=void 0===io||io,to=o.disabled,so=void 0!==to&&to,ao=o.companyId,lo=void 0===ao?null:ao,uo=o.currentUser,co=void 0===uo?null:uo,po=o.isCompanySelectVisible,mo=o.mentionProps,go=void 0===mo?L:mo,fo=o.allowSuggestionsAboveCursor,bo=void 0!==fo&&fo,ho=o.allowEmptyQuery,yo=void 0!==ho&&ho,vo=o.highlightLinks,jo=void 0!==vo&&vo;e(J,[]);var _o=r(i((function(o,e){var r=po&&co&&co.company_id!==lo?[co.company_id,lo]:null;u(o,e,r,yo)}),400),[lo,yo]),wo=j(j({},B?k:S),M);if(jo){var Oo,Po=null===(Oo=wo.input)||void 0===Oo?void 0:Oo.color;wo.input=j(j({caretColor:Po},wo.input),{},{color:"transparent"}),wo.highlighter=j(j({color:Po},wo.highlighter),{},{substring:{visibility:"visible"}})}return h(s,{value:R,onChange:function(o,e){t(e)},singleLine:f,allowSpaceInQuery:!0,classNames:d,placeholder:z,suggestionsPortalHost:v,inputRef:q,style:wo,onKeyDown:X,onKeyUp:Z,autoFocus:no,onFocus:oo,onBlur:ro,disabled:so,allowSuggestionsAboveCursor:bo,children:[y(a,j({markup:p,renderSuggestion:function(o){return function(o,e){return h("div",{className:d.mention__suggestion,children:[y(g,{alt:o.display,displayName:o.display,className:e.avatar,imgSrc:o.photo}),h("div",{className:d.mention__suggestion__info,children:[y("span",{"data-testid":"".concat("userMention","_name_").concat(o.display),className:d.mention__suggestion__info__name,children:o.display}),o.title&&y("span",{className:d.mention__suggestion__info__group,children:o.title})]})]})}(o,H)},trigger:"@",data:_o,displayTransform:function(o,e){return"@".concat(e)},style:B?_:w,appendSpaceOnAdd:!0},go)),jo&&y(a,{markup:m,regex:c,trigger:P,data:C,displayTransform:function(o){return o},style:O})]})};R.propTypes={onChange:n.func,singleLine:n.bool,suggestionsPortalHost:n.shape({current:n.instanceOf(Element)}),value:n.string,inputRef:n.shape({}),classes:n.shape({avatar:n.string.isRequired}).isRequired,withLightTheme:n.bool,placeholder:n.string,style:n.shape({}),mentionProps:n.shape({}),onMount:n.func,onKeyDown:n.func,onKeyUp:n.func,onFocus:n.func,onBlur:n.func,autoFocus:n.bool,disabled:n.bool,currentUser:n.shape({company_id:n.number.isRequired}),companyId:n.number,isCompanySelectVisible:n.bool.isRequired,allowSuggestionsAboveCursor:n.bool,highlightLinks:n.bool,allowEmptyQuery:n.bool};var A=function(){},D={suggestions:{list:{background:"#414141"},item:{color:"white",height:30,"&focused":{backgroundColor:"rgba(255, 255, 255, 0.08)"}}}},L={},N=function(){},T=function(){},F=function(){},K=function(){},E=function(){},U=b({isCompanySelectVisible:f.companySelectorView})(t({avatar:{height:45,width:45,border:"1.5px solid #fff"}})(R));export{U as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/UserMention/index.js"],"sourcesContent":["import { useCallback, useEffect } from 'react';\nimport { debounce } from 'lodash';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { MentionsInput, Mention } from 'react-mentions';\nimport blue from '@material-ui/core/colors/blue';\n\nimport { handleFetchUsers } from './utils';\n\nimport { URL_CAPTURE_PATTERN } from '~/utils/links';\nimport { USER_MARKUP, LINK_MARKUP } from './constants';\n\nimport styles from './style.css';\n\nimport Avatar from '~components/Avatar';\nimport { withPermissionsHOC, PERMISSIONS } from '~/permissions';\n\nconst PAGE_NAME = 'userMention';\n\nconst muiStyles = {\n avatar: {\n height: 45,\n width: 45,\n border: '1.5px solid #fff',\n },\n};\n\nconst mentionLightStyle = {\n backgroundColor: blue[100],\n};\nconst mentionDarkStyle = {\n color: '#00bcd4',\n};\n\n// Matches the mirror token in `LinkedText`, which react-mentions cannot share as a class.\n// Off the palette, not literal white, or the tint vanishes against a light theme.\nconst linkStyle = {\n color: 'var(--palette-info-light)',\n backgroundColor: 'rgb(from var(--palette-primary-text-1) r g b / 0.04)',\n // Outline, not border: a border takes space and would shift the text.\n outline: '1px solid rgb(from var(--palette-primary-text-1) r g b / 0.16)',\n borderRadius: '4px',\n};\n\n// This mention exists to paint existing text, never to offer a suggestion.\nconst NEVER_TRIGGERS = /$^/;\nconst NO_SUGGESTIONS = [];\n\n// NOTE: IMPORTANT! 'input', 'mention' and 'highliter' should always have same font/latter/height/line etc values\nconst inputStyles = {\n suggestions: {\n item: {\n '&focused': {\n backgroundColor: 'rgba(0, 0, 0, 0.08)',\n },\n },\n },\n};\n\nconst darkThemeInputStyles = {\n ...inputStyles,\n input: {\n color: '#fff',\n caretColor: '#fff',\n zIndex: 1,\n },\n highlighter: {\n color: '#fff',\n },\n};\n\nconst lightThemeInputStyles = {\n ...inputStyles,\n input: { color: '#000' },\n};\n\nconst renderSuggestion = (entry, classes) => (\n <div className={styles.mention__suggestion}>\n <Avatar\n alt={entry.display}\n displayName={entry.display}\n className={classes.avatar}\n imgSrc={entry.photo}\n />\n <div className={styles.mention__suggestion__info}>\n <span\n data-testid={`${PAGE_NAME}_name_${entry.display}`}\n className={styles.mention__suggestion__info__name}\n >\n {entry.display}\n </span>\n {entry.title && (\n <span className={styles.mention__suggestion__info__group}>{entry.title}</span>\n )}\n </div>\n </div>\n);\n\nconst UserMention = ({\n onChange = DEFAULT_USER_MENTION_ON_CHANGE,\n singleLine = false,\n suggestionsPortalHost = null,\n value = '',\n inputRef = null,\n classes,\n style = DEFAULT_USER_MENTION_STYLE,\n withLightTheme = false,\n placeholder = \"Mention people using '@'\",\n onMount = DEFAULT_USER_MENTION_ON_MOUNT,\n onKeyDown = DEFAULT_USER_MENTION_ON_KEY_DOWN,\n onKeyUp = DEFAULT_USER_MENTION_ON_KEY_UP,\n onFocus = DEFAULT_USER_MENTION_ON_FOCUS,\n onBlur = DEFAULT_USER_MENTION_ON_BLUR,\n autoFocus = true,\n disabled = false,\n companyId = null,\n currentUser = null,\n isCompanySelectVisible,\n mentionProps = DEFAULT_USER_MENTION_MENTION_PROPS,\n allowSuggestionsAboveCursor = false,\n allowEmptyQuery = false,\n highlightLinks = false,\n}) => {\n useEffect(onMount, []);\n\n const fetchUsers = (search, callback) => {\n const companyIds =\n isCompanySelectVisible && currentUser && currentUser.company_id !== companyId\n ? [currentUser.company_id, companyId]\n : null;\n\n handleFetchUsers(search, callback, companyIds, allowEmptyQuery);\n };\n\n const debouncedUsersFetch = useCallback(debounce(fetchUsers, 400), [companyId, allowEmptyQuery]);\n\n const onInputChange = (event, newValue) => {\n onChange(newValue);\n };\n\n const themedStyle = {\n ...(withLightTheme ? lightThemeInputStyles : darkThemeInputStyles),\n ...style,\n };\n\n // react-mentions paints the text in the textarea and keeps the highlighter behind it, so a\n // mention's colour never shows through. Handing the text to the highlighter instead is what\n // lets a link carry the same token as the plain textareas do.\n if (highlightLinks) {\n const textColor = themedStyle.input?.color;\n\n themedStyle.input = { caretColor: textColor, ...themedStyle.input, color: 'transparent' };\n themedStyle.highlighter = {\n color: textColor,\n ...themedStyle.highlighter,\n substring: { visibility: 'visible' },\n };\n }\n\n return (\n <MentionsInput\n value={value}\n onChange={onInputChange}\n singleLine={singleLine}\n allowSpaceInQuery\n classNames={styles}\n placeholder={placeholder}\n suggestionsPortalHost={suggestionsPortalHost}\n inputRef={inputRef}\n style={themedStyle}\n onKeyDown={onKeyDown}\n onKeyUp={onKeyUp}\n autoFocus={autoFocus}\n onFocus={onFocus}\n onBlur={onBlur}\n disabled={disabled}\n allowSuggestionsAboveCursor={allowSuggestionsAboveCursor}\n >\n <Mention\n markup={USER_MARKUP}\n renderSuggestion={entry => renderSuggestion(entry, classes)}\n trigger=\"@\"\n data={debouncedUsersFetch}\n displayTransform={(id, display) => `@${display}`}\n style={withLightTheme ? mentionLightStyle : mentionDarkStyle}\n appendSpaceOnAdd\n {...mentionProps}\n />\n\n {/* Highlight only: a `regex` makes react-mentions style matching text without any markup\n of its own, so the url stays exactly as typed in the value it hands back. */}\n {highlightLinks && (\n <Mention\n markup={LINK_MARKUP}\n regex={URL_CAPTURE_PATTERN}\n trigger={NEVER_TRIGGERS}\n data={NO_SUGGESTIONS}\n displayTransform={display => display}\n style={linkStyle}\n />\n )}\n </MentionsInput>\n );\n};\n\nUserMention.propTypes = {\n onChange: PropTypes.func,\n singleLine: PropTypes.bool,\n suggestionsPortalHost: PropTypes.shape({\n current: PropTypes.instanceOf(Element),\n }),\n value: PropTypes.string,\n inputRef: PropTypes.shape({}),\n classes: PropTypes.shape({\n avatar: PropTypes.string.isRequired,\n }).isRequired,\n withLightTheme: PropTypes.bool,\n placeholder: PropTypes.string,\n style: PropTypes.shape({}),\n mentionProps: PropTypes.shape({}),\n onMount: PropTypes.func,\n onKeyDown: PropTypes.func,\n onKeyUp: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n autoFocus: PropTypes.bool,\n disabled: PropTypes.bool,\n\n currentUser: PropTypes.shape({\n company_id: PropTypes.number.isRequired,\n }),\n companyId: PropTypes.number,\n isCompanySelectVisible: PropTypes.bool.isRequired,\n allowSuggestionsAboveCursor: PropTypes.bool,\n highlightLinks: PropTypes.bool,\n /** Show default users when only \"@\" is typed, instead of waiting for a search term. */\n allowEmptyQuery: PropTypes.bool,\n};\n\nconst DEFAULT_USER_MENTION_ON_CHANGE = () => undefined;\n\nconst DEFAULT_USER_MENTION_STYLE = {\n suggestions: {\n list: {\n background: '#414141',\n },\n item: {\n color: 'white',\n height: 30,\n '&focused': {\n backgroundColor: 'rgba(255, 255, 255, 0.08)',\n },\n },\n },\n};\n\nconst DEFAULT_USER_MENTION_MENTION_PROPS = {};\nconst DEFAULT_USER_MENTION_ON_MOUNT = () => undefined;\nconst DEFAULT_USER_MENTION_ON_KEY_DOWN = () => undefined;\nconst DEFAULT_USER_MENTION_ON_KEY_UP = () => undefined;\nconst DEFAULT_USER_MENTION_ON_FOCUS = () => undefined;\nconst DEFAULT_USER_MENTION_ON_BLUR = () => undefined;\n\nexport default withPermissionsHOC({ isCompanySelectVisible: PERMISSIONS.companySelectorView })(\n withStyles(muiStyles)(UserMention)\n);\n"],"names":["mentionLightStyle","backgroundColor","blue","mentionDarkStyle","color","linkStyle","outline","borderRadius","NEVER_TRIGGERS","NO_SUGGESTIONS","inputStyles","suggestions","item","darkThemeInputStyles","input","caretColor","zIndex","highlighter","lightThemeInputStyles","UserMention","_ref","_ref$onChange","onChange","DEFAULT_USER_MENTION_ON_CHANGE","_ref$singleLine","singleLine","_ref$suggestionsPorta","suggestionsPortalHost","_ref$value","value","_ref$inputRef","inputRef","classes","_ref$style","style","DEFAULT_USER_MENTION_STYLE","_ref$withLightTheme","withLightTheme","_ref$placeholder","placeholder","_ref$onMount","onMount","DEFAULT_USER_MENTION_ON_MOUNT","_ref$onKeyDown","onKeyDown","DEFAULT_USER_MENTION_ON_KEY_DOWN","_ref$onKeyUp","onKeyUp","DEFAULT_USER_MENTION_ON_KEY_UP","_ref$onFocus","onFocus","DEFAULT_USER_MENTION_ON_FOCUS","_ref$onBlur","onBlur","DEFAULT_USER_MENTION_ON_BLUR","_ref$autoFocus","autoFocus","_ref$disabled","disabled","_ref$companyId","companyId","_ref$currentUser","currentUser","isCompanySelectVisible","_ref$mentionProps","mentionProps","DEFAULT_USER_MENTION_MENTION_PROPS","_ref$allowSuggestions","allowSuggestionsAboveCursor","_ref$allowEmptyQuery","allowEmptyQuery","_ref$highlightLinks","highlightLinks","useEffect","debouncedUsersFetch","useCallback","debounce","search","callback","companyIds","company_id","handleFetchUsers","themedStyle","_themedStyle$input","textColor","_objectSpread","substring","visibility","_jsxs","MentionsInput","event","newValue","allowSpaceInQuery","classNames","styles","children","_jsx","Mention","markup","USER_MARKUP","renderSuggestion","entry","className","mention__suggestion","Avatar","alt","display","displayName","avatar","imgSrc","photo","mention__suggestion__info","concat","mention__suggestion__info__name","title","mention__suggestion__info__group","trigger","data","displayTransform","id","appendSpaceOnAdd","LINK_MARKUP","regex","URL_CAPTURE_PATTERN","propTypes","PropTypes","func","bool","shape","current","instanceOf","Element","string","isRequired","number","list","background","height","UserMention$1","withPermissionsHOC","PERMISSIONS","companySelectorView","withStyles","width","border"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/UserMention/index.js"],"sourcesContent":["import { useCallback, useEffect } from 'react';\nimport { debounce } from 'lodash';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { MentionsInput, Mention } from 'react-mentions';\nimport blue from '@material-ui/core/colors/blue';\n\nimport { handleFetchUsers } from './utils';\n\nimport { URL_CAPTURE_PATTERN } from '~/utils/links';\nimport { USER_MARKUP, LINK_MARKUP } from './constants';\n\nimport styles from './style.css';\n\nimport Avatar from '~components/Avatar';\nimport { withPermissionsHOC, PERMISSIONS } from '~/permissions';\n\nconst PAGE_NAME = 'userMention';\n\nconst muiStyles = {\n avatar: {\n height: 45,\n width: 45,\n border: '1.5px solid #fff',\n },\n};\n\nconst mentionLightStyle = {\n backgroundColor: blue[100],\n};\nconst mentionDarkStyle = {\n color: '#00bcd4',\n};\n\n// Matches the mirror token in `LinkedText`, which react-mentions cannot share as a class.\n// Off the palette, not literal white, or the tint vanishes against a light theme.\nconst linkStyle = {\n color: 'var(--palette-info-light)',\n backgroundColor: 'rgb(from var(--palette-primary-text-1) r g b / 0.04)',\n // Outline, not border: a border takes space and would shift the text.\n outline: '1px solid rgb(from var(--palette-primary-text-1) r g b / 0.16)',\n borderRadius: '4px',\n};\n\n// This mention exists to paint existing text, never to offer a suggestion.\n// `/$^/` looks like it never matches but matches the empty string, and react-mentions then reads\n// capture groups this regex does not have — every caret at the start of an empty composer threw.\nconst NEVER_TRIGGERS = /(?!)/;\nconst NO_SUGGESTIONS = [];\n\n// NOTE: IMPORTANT! 'input', 'mention' and 'highliter' should always have same font/latter/height/line etc values\nconst inputStyles = {\n suggestions: {\n item: {\n '&focused': {\n backgroundColor: 'rgba(0, 0, 0, 0.08)',\n },\n },\n },\n};\n\nconst darkThemeInputStyles = {\n ...inputStyles,\n input: {\n color: '#fff',\n caretColor: '#fff',\n zIndex: 1,\n },\n highlighter: {\n color: '#fff',\n },\n};\n\nconst lightThemeInputStyles = {\n ...inputStyles,\n input: { color: '#000' },\n};\n\nconst renderSuggestion = (entry, classes) => (\n <div className={styles.mention__suggestion}>\n <Avatar\n alt={entry.display}\n displayName={entry.display}\n className={classes.avatar}\n imgSrc={entry.photo}\n />\n <div className={styles.mention__suggestion__info}>\n <span\n data-testid={`${PAGE_NAME}_name_${entry.display}`}\n className={styles.mention__suggestion__info__name}\n >\n {entry.display}\n </span>\n {entry.title && (\n <span className={styles.mention__suggestion__info__group}>{entry.title}</span>\n )}\n </div>\n </div>\n);\n\nconst UserMention = ({\n onChange = DEFAULT_USER_MENTION_ON_CHANGE,\n singleLine = false,\n suggestionsPortalHost = null,\n value = '',\n inputRef = null,\n classes,\n style = DEFAULT_USER_MENTION_STYLE,\n withLightTheme = false,\n placeholder = \"Mention people using '@'\",\n onMount = DEFAULT_USER_MENTION_ON_MOUNT,\n onKeyDown = DEFAULT_USER_MENTION_ON_KEY_DOWN,\n onKeyUp = DEFAULT_USER_MENTION_ON_KEY_UP,\n onFocus = DEFAULT_USER_MENTION_ON_FOCUS,\n onBlur = DEFAULT_USER_MENTION_ON_BLUR,\n autoFocus = true,\n disabled = false,\n companyId = null,\n currentUser = null,\n isCompanySelectVisible,\n mentionProps = DEFAULT_USER_MENTION_MENTION_PROPS,\n allowSuggestionsAboveCursor = false,\n allowEmptyQuery = false,\n highlightLinks = false,\n}) => {\n useEffect(onMount, []);\n\n const fetchUsers = (search, callback) => {\n const companyIds =\n isCompanySelectVisible && currentUser && currentUser.company_id !== companyId\n ? [currentUser.company_id, companyId]\n : null;\n\n handleFetchUsers(search, callback, companyIds, allowEmptyQuery);\n };\n\n const debouncedUsersFetch = useCallback(debounce(fetchUsers, 400), [companyId, allowEmptyQuery]);\n\n const onInputChange = (event, newValue) => {\n onChange(newValue);\n };\n\n const themedStyle = {\n ...(withLightTheme ? lightThemeInputStyles : darkThemeInputStyles),\n ...style,\n };\n\n // react-mentions paints the text in the textarea and keeps the highlighter behind it, so a\n // mention's colour never shows through. Handing the text to the highlighter instead is what\n // lets a link carry the same token as the plain textareas do.\n if (highlightLinks) {\n const textColor = themedStyle.input?.color;\n\n themedStyle.input = { caretColor: textColor, ...themedStyle.input, color: 'transparent' };\n themedStyle.highlighter = {\n color: textColor,\n ...themedStyle.highlighter,\n substring: { visibility: 'visible' },\n };\n }\n\n return (\n <MentionsInput\n value={value}\n onChange={onInputChange}\n singleLine={singleLine}\n allowSpaceInQuery\n classNames={styles}\n placeholder={placeholder}\n suggestionsPortalHost={suggestionsPortalHost}\n inputRef={inputRef}\n style={themedStyle}\n onKeyDown={onKeyDown}\n onKeyUp={onKeyUp}\n autoFocus={autoFocus}\n onFocus={onFocus}\n onBlur={onBlur}\n disabled={disabled}\n allowSuggestionsAboveCursor={allowSuggestionsAboveCursor}\n >\n <Mention\n markup={USER_MARKUP}\n renderSuggestion={entry => renderSuggestion(entry, classes)}\n trigger=\"@\"\n data={debouncedUsersFetch}\n displayTransform={(id, display) => `@${display}`}\n style={withLightTheme ? mentionLightStyle : mentionDarkStyle}\n appendSpaceOnAdd\n {...mentionProps}\n />\n\n {/* Highlight only: a `regex` makes react-mentions style matching text without any markup\n of its own, so the url stays exactly as typed in the value it hands back. */}\n {highlightLinks && (\n <Mention\n markup={LINK_MARKUP}\n regex={URL_CAPTURE_PATTERN}\n trigger={NEVER_TRIGGERS}\n data={NO_SUGGESTIONS}\n displayTransform={display => display}\n style={linkStyle}\n />\n )}\n </MentionsInput>\n );\n};\n\nUserMention.propTypes = {\n onChange: PropTypes.func,\n singleLine: PropTypes.bool,\n suggestionsPortalHost: PropTypes.shape({\n current: PropTypes.instanceOf(Element),\n }),\n value: PropTypes.string,\n inputRef: PropTypes.shape({}),\n classes: PropTypes.shape({\n avatar: PropTypes.string.isRequired,\n }).isRequired,\n withLightTheme: PropTypes.bool,\n placeholder: PropTypes.string,\n style: PropTypes.shape({}),\n mentionProps: PropTypes.shape({}),\n onMount: PropTypes.func,\n onKeyDown: PropTypes.func,\n onKeyUp: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n autoFocus: PropTypes.bool,\n disabled: PropTypes.bool,\n\n currentUser: PropTypes.shape({\n company_id: PropTypes.number.isRequired,\n }),\n companyId: PropTypes.number,\n isCompanySelectVisible: PropTypes.bool.isRequired,\n allowSuggestionsAboveCursor: PropTypes.bool,\n highlightLinks: PropTypes.bool,\n /** Show default users when only \"@\" is typed, instead of waiting for a search term. */\n allowEmptyQuery: PropTypes.bool,\n};\n\nconst DEFAULT_USER_MENTION_ON_CHANGE = () => undefined;\n\nconst DEFAULT_USER_MENTION_STYLE = {\n suggestions: {\n list: {\n background: '#414141',\n },\n item: {\n color: 'white',\n height: 30,\n '&focused': {\n backgroundColor: 'rgba(255, 255, 255, 0.08)',\n },\n },\n },\n};\n\nconst DEFAULT_USER_MENTION_MENTION_PROPS = {};\nconst DEFAULT_USER_MENTION_ON_MOUNT = () => undefined;\nconst DEFAULT_USER_MENTION_ON_KEY_DOWN = () => undefined;\nconst DEFAULT_USER_MENTION_ON_KEY_UP = () => undefined;\nconst DEFAULT_USER_MENTION_ON_FOCUS = () => undefined;\nconst DEFAULT_USER_MENTION_ON_BLUR = () => undefined;\n\nexport default withPermissionsHOC({ isCompanySelectVisible: PERMISSIONS.companySelectorView })(\n withStyles(muiStyles)(UserMention)\n);\n"],"names":["mentionLightStyle","backgroundColor","blue","mentionDarkStyle","color","linkStyle","outline","borderRadius","NEVER_TRIGGERS","NO_SUGGESTIONS","inputStyles","suggestions","item","darkThemeInputStyles","input","caretColor","zIndex","highlighter","lightThemeInputStyles","UserMention","_ref","_ref$onChange","onChange","DEFAULT_USER_MENTION_ON_CHANGE","_ref$singleLine","singleLine","_ref$suggestionsPorta","suggestionsPortalHost","_ref$value","value","_ref$inputRef","inputRef","classes","_ref$style","style","DEFAULT_USER_MENTION_STYLE","_ref$withLightTheme","withLightTheme","_ref$placeholder","placeholder","_ref$onMount","onMount","DEFAULT_USER_MENTION_ON_MOUNT","_ref$onKeyDown","onKeyDown","DEFAULT_USER_MENTION_ON_KEY_DOWN","_ref$onKeyUp","onKeyUp","DEFAULT_USER_MENTION_ON_KEY_UP","_ref$onFocus","onFocus","DEFAULT_USER_MENTION_ON_FOCUS","_ref$onBlur","onBlur","DEFAULT_USER_MENTION_ON_BLUR","_ref$autoFocus","autoFocus","_ref$disabled","disabled","_ref$companyId","companyId","_ref$currentUser","currentUser","isCompanySelectVisible","_ref$mentionProps","mentionProps","DEFAULT_USER_MENTION_MENTION_PROPS","_ref$allowSuggestions","allowSuggestionsAboveCursor","_ref$allowEmptyQuery","allowEmptyQuery","_ref$highlightLinks","highlightLinks","useEffect","debouncedUsersFetch","useCallback","debounce","search","callback","companyIds","company_id","handleFetchUsers","themedStyle","_themedStyle$input","textColor","_objectSpread","substring","visibility","_jsxs","MentionsInput","event","newValue","allowSpaceInQuery","classNames","styles","children","_jsx","Mention","markup","USER_MARKUP","renderSuggestion","entry","className","mention__suggestion","Avatar","alt","display","displayName","avatar","imgSrc","photo","mention__suggestion__info","concat","mention__suggestion__info__name","title","mention__suggestion__info__group","trigger","data","displayTransform","id","appendSpaceOnAdd","LINK_MARKUP","regex","URL_CAPTURE_PATTERN","propTypes","PropTypes","func","bool","shape","current","instanceOf","Element","string","isRequired","number","list","background","height","UserMention$1","withPermissionsHOC","PERMISSIONS","companySelectorView","withStyles","width","border"],"mappings":"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"}
|
package/mcp-server/server.mjs
CHANGED