@corva/ui 3.41.0-0 → 3.41.0-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/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js +1 -1
- package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js.map +1 -1
- package/cjs-bundle/components/Search/Search.js +1 -1
- package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.d.ts.map +1 -1
- package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js +1 -1
- package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js.map +1 -1
- package/components/Search/Search.d.ts +2 -1
- package/components/Search/Search.d.ts.map +1 -1
- package/components/Search/Search.js +1 -1
- package/package.json +1 -1
package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),n=require("@babel/runtime/helpers/slicedToArray"),r=require("@babel/runtime/helpers/objectWithoutProperties"),t=require("react"),o=require("classnames"),i=require("react-router"),a=require("lodash"),s=require("prop-types"),u=require("./IsolatedPage.js"),p=require("./constants.js"),l=require("./DevCenterIsolatedApp.module.css.js"),d=require("../AppContext.js"),c=require("../../../permissions/PermissionsContext.js");require("../../../permissions/constants/index.js"),require("../../../permissions/withPermissionsHOC.js"),require("@babel/runtime/helpers/asyncToGenerator"),require("@babel/runtime/regenerator"),require("../../../clients/jsonApi/index.js"),require("../../../permissions/ProvidePermissions.js");var f=require("../../../utils/index.js");require("../AppHeader/AppHeader.js"),require("../AppSideBar/AppSideBar.js"),require("../AppsDataProvider/AppsDataProvider.js");var v=require("../DevCenterAppContainer/DevCenterAppContainer.js");require("../NavigationBar/NavigationBar.js"),require("../SideBar/SideBar.js"),require("../AppSettingsPopover/AppSettingsPopover.js"),require("../AppFilterPanelLayout/AppFilterPanelLayout.js"),require("../DevCenterRouterContext/DevCenterRouterContext.js"),require("../DevCenterRouterContext/UniversalLink/UniversalLink.js");var C=require("react/jsx-runtime");require("./DevCenterIsolatedAppPage.js");var b=require("../../../utils/mobileDetect.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),n=require("@babel/runtime/helpers/slicedToArray"),r=require("@babel/runtime/helpers/objectWithoutProperties"),t=require("react"),o=require("classnames"),i=require("react-router"),a=require("lodash"),s=require("prop-types"),u=require("./IsolatedPage.js"),p=require("./constants.js"),l=require("./DevCenterIsolatedApp.module.css.js"),d=require("../AppContext.js"),c=require("../../../permissions/PermissionsContext.js");require("../../../permissions/constants/index.js"),require("../../../permissions/withPermissionsHOC.js"),require("@babel/runtime/helpers/asyncToGenerator"),require("@babel/runtime/regenerator"),require("../../../clients/jsonApi/index.js"),require("../../../permissions/ProvidePermissions.js");var f=require("../../../utils/index.js");require("../AppHeader/AppHeader.js"),require("../AppSideBar/AppSideBar.js"),require("../AppsDataProvider/AppsDataProvider.js");var v=require("../DevCenterAppContainer/DevCenterAppContainer.js");require("../NavigationBar/NavigationBar.js"),require("../SideBar/SideBar.js"),require("../AppSettingsPopover/AppSettingsPopover.js"),require("../AppFilterPanelLayout/AppFilterPanelLayout.js"),require("../DevCenterRouterContext/DevCenterRouterContext.js"),require("../DevCenterRouterContext/UniversalLink/UniversalLink.js");var C=require("react/jsx-runtime");require("./DevCenterIsolatedAppPage.js");var b=require("../DevCenterAppContainer/utils.js"),m=require("../../../utils/mobileDetect.js"),A=require("../../../utils/devcenter.js");function j(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var g=j(e),q=j(n),I=j(r),M=j(o),h=j(s),x=["isIsolationFeatureEnabled","onAppFullscreenTransparentMode","onIsMaximizedChange","onInnerContainerMouseEnter","onInnerContainerMouseLeave","onAppContainerClick","setInnerContainerRefFn"];function y(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function P(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?y(Object(r),!0).forEach((function(n){g.default(e,n,r[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):y(Object(r)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))}))}return e}function E(e){var n,r,o,i,a,s,j,g=e.isIsolationFeatureEnabled,h=e.onAppFullscreenTransparentMode,y=e.onIsMaximizedChange,E=e.onInnerContainerMouseEnter,R=e.onInnerContainerMouseLeave,D=e.onAppContainerClick,w=e.setInnerContainerRefFn,O=I.default(e,x),S=t.useMemo((function(){return A.createDevCenterRouter(O.router)}),[null===(n=O.router)||void 0===n?void 0:n.location]),T=A.isCorvaApp(null==O||null===(r=O.app)||void 0===r?void 0:r.app)&&!A.isIsolationEnabledInPackageManifest(null==O||null===(o=O.app)||void 0===o?void 0:o.package)||!g,F=T?v:u.IsolatedPage,L=null===(i=O.app)||void 0===i||null===(a=i.app)||void 0===a?void 0:a.app_key,_=b.getAppVersion(O.app),k="".concat(L,"-").concat(_),z=t.useRef(),U=t.useRef(),B=t.useRef(),N=t.useRef(!1),W=t.useRef(!1),H=A.isAppMaximized(null===(s=O.router)||void 0===s||null===(j=s.location)||void 0===j?void 0:j.query,O.app.id),V=t.useRef(H);V.current=H;var G=t.useState(f.getUserUnits()),J=q.default(G,2),K=J[0],Q=J[1];t.useEffect((function(){var e=f.subscribeForUserUnitsUpdates((function(e){return Q(e)}));return function(){return e()}}),[]);var X=t.useContext(d),Y=c.default();function Z(){h({appId:O.app.id,isModeEnabled:!1}),document.body.classList.remove("dc-isolated-app__body-overflow",l.compensateScroll)}var $=t.useCallback((function(e){var n,r,t,o,i,a=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!g||T||V.current&&!N.current||N.current===e){var s;a&&W.current!==a&&(W.current=a,null===(s=U.current)||void 0===s||s.classList.add(l.containerMaximizedTransparentModal))}else{var d,c=e?"add":"remove";if(null===(n=U.current)||void 0===n||n.classList[c](l.containerMaximizedTransparent),a||"remove"===c)null===(d=U.current)||void 0===d||d.classList[c](l.containerMaximizedTransparentModal);z.current=null===(r=U.current)||void 0===r||null===(t=r.querySelector("[".concat(u.APP_IFRAME_ATTRIBUTE,"]")))||void 0===t||null===(o=t.contentWindow)||void 0===o?void 0:o.document;var f=null===(i=z.current)||void 0===i?void 0:i.getElementById(p.ISOLATED_PAGE_APP_CONTAINER_ID);if(f){if(e){var v=B.current.getBoundingClientRect(),C=v.top,b=v.left,m=v.width,A=v.height;f.setAttribute("style","\n top: ".concat(C,"px;\n left: ").concat(b,"px;\n width: ").concat(m,"px;\n height: ").concat(A,"px;\n position: absolute;\n ")),h({appId:O.app.id,isModeEnabled:!0});var j=window.innerWidth!==document.body.clientWidth;document.body.classList.add("dc-isolated-app__body-overflow",j&&l.compensateScroll)}else f.setAttribute("style",""),Z();N.current=e,W.current=a}}}),[g,T,V]);t.useEffect((function(){return Z}),[]),t.useEffect((function(){H&&N.current&&$(!1)}),[H]);var ee=t.useCallback((function(e){U.current=e,w(e)}),[]);return C.jsx("div",{className:M.default("dc-isolated-app",l.fixedSizeContainer),ref:B,children:C.jsx("div",{ref:ee,onMouseEnter:E,onMouseLeave:R,"data-testid":"".concat("DevCenter_AppContainer","_").concat(O.app.app.name),className:M.default(l.container,m.isInsideNewMobileApp&&l.newMobileAppContainer,H&&l.containerMaximized),children:C.jsx(F,P(P({},O),{},{appContextValue:X,devCenterRouter:S,globalNotificationToastsAPI:window[Symbol.for("notificationToasts")],globalMixpanelEventTracker:window[Symbol.for("logToMixpanel")],onAppContainerClick:D,onIsMaximizedChange:y,permissionsContextValue:Y,setIsFullscreenModalMode:$,userUnits:K}),k)})})}E.propTypes={app:h.default.shape({id:h.default.number,app:h.default.shape({name:h.default.string})}).isRequired,currentUser:h.default.shape({}).isRequired,isIsolationFeatureEnabled:h.default.bool,onAppContainerClick:h.default.func,onAppFullscreenTransparentMode:h.default.func,onAppRemove:h.default.func,onInnerContainerMouseEnter:h.default.func,onInnerContainerMouseLeave:h.default.func,onIsMaximizedChange:h.default.func,onSettingChange:h.default.func,onSettingsChange:h.default.func,setInnerContainerRefFn:h.default.func,updateCurrentDashboardAppLastAnnotation:h.default.func},E.defaultProps={isIsolationFeatureEnabled:!1,onAppContainerClick:a.noop,onAppFullscreenTransparentMode:a.noop,onAppRemove:a.noop,onInnerContainerMouseEnter:a.noop,onInnerContainerMouseLeave:a.noop,onIsMaximizedChange:a.noop,onSettingChange:a.noop,onSettingsChange:a.noop,setInnerContainerRefFn:a.noop,updateCurrentDashboardAppLastAnnotation:a.noop};var R=i.withRouter(E);exports.DevCenterIsolatedApp=R;
|
|
2
2
|
//# sourceMappingURL=DevCenterIsolatedApp.js.map
|
package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevCenterIsolatedApp.js","sources":["../../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js"],"sourcesContent":["import { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { withRouter } from 'react-router';\nimport { noop } from 'lodash';\nimport PropTypes from 'prop-types';\n\nimport { IsolatedPage, APP_IFRAME_ATTRIBUTE } from './IsolatedPage';\nimport { ISOLATED_PAGE_APP_CONTAINER_ID } from './constants';\n\nimport styles from './DevCenterIsolatedApp.module.css';\n\nimport AppContext from '~/components/DevCenter/AppContext';\nimport { usePermissionsContext } from '~/permissions';\nimport { devcenter as devCenterUtils, getUserUnits, subscribeForUserUnitsUpdates } from '~/utils';\nimport { DevCenterAppContainer } from '~/components/DevCenter';\nimport { isInsideNewMobileApp } from '~/utils/mobileDetect';\n\nconst PAGE_NAME = 'DevCenter_AppContainer';\n\nfunction DevCenterIsolatedAppComponent({\n isIsolationFeatureEnabled,\n onAppFullscreenTransparentMode,\n onIsMaximizedChange,\n onInnerContainerMouseEnter,\n onInnerContainerMouseLeave,\n onAppContainerClick,\n setInnerContainerRefFn,\n ...props\n}) {\n const devCenterRouter = useMemo(\n () => devCenterUtils.createDevCenterRouter(props.router),\n [props.router?.location]\n );\n\n const isNonIsolatedApp =\n (devCenterUtils.isCorvaApp(props?.app?.app) &&\n !devCenterUtils.isIsolationEnabledInPackageManifest(props?.app?.package)) ||\n !isIsolationFeatureEnabled;\n\n const DCAppComponent = isNonIsolatedApp ? DevCenterAppContainer : IsolatedPage;\n\n const appIframeDocument = useRef();\n const containerRef = useRef();\n const fixedSizeContainerRef = useRef();\n const fullscreenModeRef = useRef(false);\n const fullscreenModalModeRef = useRef(false);\n\n const isAppMaximized = devCenterUtils.isAppMaximized(props.router?.location?.query, props.app.id);\n\n // save to ref to not re-create setIsFullscreenModalMode callback on change and reduce the amoount of DC apps re-renders\n const isAppMaximizedRef = useRef(isAppMaximized);\n isAppMaximizedRef.current = isAppMaximized;\n\n const [userUnits, setUserUnits] = useState(getUserUnits());\n\n useEffect(() => {\n const unsubscribeFn = subscribeForUserUnitsUpdates(newUserUnits => setUserUnits(newUserUnits));\n\n return () => unsubscribeFn();\n }, []);\n\n const appContextValue = useContext(AppContext);\n const permissionsContextValue = usePermissionsContext();\n\n /*\n What is fullscreen modal mode?\n\n Our apps, are shown in isolated iFrames. Because of it, when an app has some modal\n and opens it - it's opened inside of its iframe, instead of opening at the center of the screen.\n\n To make app modals & other elements be opened at the center of the screen, as if they are not inside of an iframe,\n we use some hacks.\n\n When the app wants to open a fullscreen element, we make its iframe fullscreen, but with transparent background,\n and we set width/height & position of that app iframe to inner app container that is located inside of the iframe.\n So when iframe's fullscreen element is opened, it looks like it's a part of the platform, and the app which shows the element, looks like\n usual, not in fullscreen\n\n So the platform provides this setIsFullscreenModalMode function to DC apps.\n When DC app wants to open a modal that should be opened at the center of the screen - it needs to\n call setIsFullscreenModalMode(true) first. And when it closes the modal - setIsFullscreenModalMode(false)\n\n Two things are important about this\n - all these styles that make this invisible background work should be applied at once\n - enter and exit from the mode, shouldn't trigger even a single re-render, as it may impact\n some elements inside the DC app\n\n There's a second parameter to `setIsFullscreenModalMode`: `isModal`. It should be used when a fullscreen overlay is displayed\n (Modal, for instance) that should cover everything on screen.\n\n What it does - it basically sets the stretched element's z-index to a very high value, so it covers every other UI element in CWF\n */\n\n function handleAppFullscreenTransparentModeExit() {\n onAppFullscreenTransparentMode({ appId: props.app.id, isModeEnabled: false });\n document.body.classList.remove('dc-isolated-app__body-overflow', styles.compensateScroll);\n }\n\n const setIsFullscreenModalMode = useCallback(\n function setIsFullscreenModalMode(nextIsFullscreenModalModeValue, isModal = false) {\n // When an app is already in fullscreen mode, no need to use this\n // invisible fullscreen mode to make elements take the whole screen\n\n if (\n !isIsolationFeatureEnabled ||\n isNonIsolatedApp ||\n (isAppMaximizedRef.current && !fullscreenModeRef.current) ||\n fullscreenModeRef.current === nextIsFullscreenModalModeValue\n ) {\n // Adding modal class if modal is opened when non-modal is already open\n if (isModal && fullscreenModalModeRef.current !== isModal) {\n fullscreenModalModeRef.current = isModal;\n containerRef.current?.classList.add(styles.containerMaximizedTransparentModal);\n }\n\n return;\n }\n\n const classesEditMethod = nextIsFullscreenModalModeValue ? 'add' : 'remove';\n\n containerRef.current?.classList[classesEditMethod](styles.containerMaximizedTransparent);\n\n if (isModal || classesEditMethod === 'remove') {\n containerRef.current?.classList[classesEditMethod](\n styles.containerMaximizedTransparentModal\n );\n }\n\n appIframeDocument.current = containerRef.current?.querySelector(\n `[${APP_IFRAME_ATTRIBUTE}]`\n )?.contentWindow?.document;\n\n const isolatedPageAppContainer = appIframeDocument.current?.getElementById(\n ISOLATED_PAGE_APP_CONTAINER_ID\n );\n\n if (!isolatedPageAppContainer) {\n return;\n }\n\n if (nextIsFullscreenModalModeValue) {\n const { top, left, width, height } = fixedSizeContainerRef.current.getBoundingClientRect();\n\n // We need to directly set inner iFrame container sizes together with DC platform styles\n // as passing this as props and using some effect inside of an iframe\n // results in a slight delay, which looks like a quick layout jump\n isolatedPageAppContainer.setAttribute(\n 'style',\n `\n top: ${top}px;\n left: ${left}px;\n width: ${width}px;\n height: ${height}px;\n position: absolute;\n `\n );\n onAppFullscreenTransparentMode({ appId: props.app.id, isModeEnabled: true });\n const isBodyScrollVisible = window.innerWidth !== document.body.clientWidth;\n document.body.classList.add(\n 'dc-isolated-app__body-overflow',\n isBodyScrollVisible && styles.compensateScroll\n );\n } else {\n isolatedPageAppContainer.setAttribute('style', '');\n handleAppFullscreenTransparentModeExit();\n }\n fullscreenModeRef.current = nextIsFullscreenModalModeValue;\n fullscreenModalModeRef.current = isModal;\n },\n [isIsolationFeatureEnabled, isNonIsolatedApp, isAppMaximizedRef]\n );\n\n useEffect(() => {\n return handleAppFullscreenTransparentModeExit;\n }, []);\n\n useEffect(() => {\n if (isAppMaximized && fullscreenModeRef.current) {\n setIsFullscreenModalMode(false);\n }\n }, [isAppMaximized]);\n\n /**\n * This should be the same function as calling react-intersection-observer's ref setter actually triggers re-render.\n * Which in its turn causes infinite re-render loop.\n */\n const setContainerRefs = useCallback(node => {\n containerRef.current = node;\n setInnerContainerRefFn(node);\n }, []);\n\n return (\n <div\n className={classNames('dc-isolated-app', styles.fixedSizeContainer)}\n ref={fixedSizeContainerRef}\n >\n <div\n ref={setContainerRefs}\n onMouseEnter={onInnerContainerMouseEnter}\n onMouseLeave={onInnerContainerMouseLeave}\n data-testid={`${PAGE_NAME}_${props.app.app.name}`}\n className={classNames(\n styles.container,\n isInsideNewMobileApp && styles.newMobileAppContainer,\n isAppMaximized && styles.containerMaximized\n )}\n >\n <DCAppComponent\n {...props}\n appContextValue={appContextValue}\n devCenterRouter={devCenterRouter}\n globalNotificationToastsAPI={window[Symbol.for('notificationToasts')]}\n globalMixpanelEventTracker={window[Symbol.for('logToMixpanel')]}\n onAppContainerClick={onAppContainerClick}\n onIsMaximizedChange={onIsMaximizedChange}\n permissionsContextValue={permissionsContextValue}\n setIsFullscreenModalMode={setIsFullscreenModalMode}\n userUnits={userUnits}\n />\n </div>\n </div>\n );\n}\n\nDevCenterIsolatedAppComponent.propTypes = {\n app: PropTypes.shape({\n id: PropTypes.number,\n app: PropTypes.shape({\n name: PropTypes.string,\n }),\n }).isRequired,\n currentUser: PropTypes.shape({}).isRequired,\n isIsolationFeatureEnabled: PropTypes.bool,\n onAppContainerClick: PropTypes.func,\n onAppFullscreenTransparentMode: PropTypes.func,\n onAppRemove: PropTypes.func,\n onInnerContainerMouseEnter: PropTypes.func,\n onInnerContainerMouseLeave: PropTypes.func,\n onIsMaximizedChange: PropTypes.func,\n onSettingChange: PropTypes.func,\n onSettingsChange: PropTypes.func,\n setInnerContainerRefFn: PropTypes.func,\n updateCurrentDashboardAppLastAnnotation: PropTypes.func,\n};\n\nDevCenterIsolatedAppComponent.defaultProps = {\n isIsolationFeatureEnabled: false,\n onAppContainerClick: noop,\n onAppFullscreenTransparentMode: noop,\n onAppRemove: noop,\n onInnerContainerMouseEnter: noop,\n onInnerContainerMouseLeave: noop,\n onIsMaximizedChange: noop,\n onSettingChange: noop,\n onSettingsChange: noop,\n setInnerContainerRefFn: noop,\n updateCurrentDashboardAppLastAnnotation: noop,\n};\n\nexport const DevCenterIsolatedApp = withRouter(DevCenterIsolatedAppComponent);\n"],"names":["DevCenterIsolatedAppComponent","_ref","_props$router","_props$app","_props$app2","_props$router2","_props$router2$locati","isIsolationFeatureEnabled","onAppFullscreenTransparentMode","onIsMaximizedChange","onInnerContainerMouseEnter","onInnerContainerMouseLeave","onAppContainerClick","setInnerContainerRefFn","props","_objectWithoutProperties","_excluded","devCenterRouter","useMemo","devCenterUtils","createDevCenterRouter","router","location","isNonIsolatedApp","isCorvaApp","app","package","DCAppComponent","DevCenterAppContainer","IsolatedPage","appIframeDocument","useRef","containerRef","fixedSizeContainerRef","fullscreenModeRef","fullscreenModalModeRef","isAppMaximized","query","id","isAppMaximizedRef","current","_useState","useState","getUserUnits","_useState2","_slicedToArray","userUnits","setUserUnits","useEffect","unsubscribeFn","subscribeForUserUnitsUpdates","newUserUnits","appContextValue","useContext","AppContext","permissionsContextValue","usePermissionsContext","handleAppFullscreenTransparentModeExit","appId","isModeEnabled","document","body","classList","remove","styles","compensateScroll","setIsFullscreenModalMode","useCallback","nextIsFullscreenModalModeValue","_containerRef$current2","_containerRef$current4","_containerRef$current5","_containerRef$current6","_appIframeDocument$cu","isModal","_containerRef$current","add","containerMaximizedTransparentModal","_containerRef$current3","classesEditMethod","containerMaximizedTransparent","querySelector","concat","APP_IFRAME_ATTRIBUTE","contentWindow","isolatedPageAppContainer","getElementById","ISOLATED_PAGE_APP_CONTAINER_ID","_fixedSizeContainerRe","getBoundingClientRect","top","left","width","height","setAttribute","isBodyScrollVisible","window","innerWidth","clientWidth","setContainerRefs","node","_jsx","className","classNames","fixedSizeContainer","ref","children","jsx","onMouseEnter","onMouseLeave","PAGE_NAME","name","container","isInsideNewMobileApp","newMobileAppContainer","containerMaximized","_objectSpread","globalNotificationToastsAPI","Symbol","for","globalMixpanelEventTracker","propTypes","PropTypes","shape","number","string","isRequired","currentUser","bool","func","onAppRemove","onSettingChange","onSettingsChange","updateCurrentDashboardAppLastAnnotation","defaultProps","noop","DevCenterIsolatedApp","withRouter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DevCenterIsolatedApp.js","sources":["../../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js"],"sourcesContent":["import { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { withRouter } from 'react-router';\nimport { noop } from 'lodash';\nimport PropTypes from 'prop-types';\n\nimport { IsolatedPage, APP_IFRAME_ATTRIBUTE } from './IsolatedPage';\nimport { ISOLATED_PAGE_APP_CONTAINER_ID } from './constants';\n\nimport styles from './DevCenterIsolatedApp.module.css';\n\nimport AppContext from '~/components/DevCenter/AppContext';\nimport { usePermissionsContext } from '~/permissions';\nimport { devcenter as devCenterUtils, getUserUnits, subscribeForUserUnitsUpdates } from '~/utils';\nimport { DevCenterAppContainer } from '~/components/DevCenter';\nimport { getAppVersion } from '~/components/DevCenter/DevCenterAppContainer/utils';\nimport { isInsideNewMobileApp } from '~/utils/mobileDetect';\n\nconst PAGE_NAME = 'DevCenter_AppContainer';\n\nfunction DevCenterIsolatedAppComponent({\n isIsolationFeatureEnabled,\n onAppFullscreenTransparentMode,\n onIsMaximizedChange,\n onInnerContainerMouseEnter,\n onInnerContainerMouseLeave,\n onAppContainerClick,\n setInnerContainerRefFn,\n ...props\n}) {\n const devCenterRouter = useMemo(\n () => devCenterUtils.createDevCenterRouter(props.router),\n [props.router?.location]\n );\n\n const isNonIsolatedApp =\n (devCenterUtils.isCorvaApp(props?.app?.app) &&\n !devCenterUtils.isIsolationEnabledInPackageManifest(props?.app?.package)) ||\n !isIsolationFeatureEnabled;\n\n const DCAppComponent = isNonIsolatedApp ? DevCenterAppContainer : IsolatedPage;\n\n // Key to force iframe recreation when app version changes.\n // This ensures global dependencies are re-initialized for the new version.\n const appKey = props.app?.app?.app_key;\n const appVersion = getAppVersion(props.app);\n const iframeKey = `${appKey}-${appVersion}`;\n\n const appIframeDocument = useRef();\n const containerRef = useRef();\n const fixedSizeContainerRef = useRef();\n const fullscreenModeRef = useRef(false);\n const fullscreenModalModeRef = useRef(false);\n\n const isAppMaximized = devCenterUtils.isAppMaximized(props.router?.location?.query, props.app.id);\n\n // save to ref to not re-create setIsFullscreenModalMode callback on change and reduce the amoount of DC apps re-renders\n const isAppMaximizedRef = useRef(isAppMaximized);\n isAppMaximizedRef.current = isAppMaximized;\n\n const [userUnits, setUserUnits] = useState(getUserUnits());\n\n useEffect(() => {\n const unsubscribeFn = subscribeForUserUnitsUpdates(newUserUnits => setUserUnits(newUserUnits));\n\n return () => unsubscribeFn();\n }, []);\n\n const appContextValue = useContext(AppContext);\n const permissionsContextValue = usePermissionsContext();\n\n /*\n What is fullscreen modal mode?\n\n Our apps, are shown in isolated iFrames. Because of it, when an app has some modal\n and opens it - it's opened inside of its iframe, instead of opening at the center of the screen.\n\n To make app modals & other elements be opened at the center of the screen, as if they are not inside of an iframe,\n we use some hacks.\n\n When the app wants to open a fullscreen element, we make its iframe fullscreen, but with transparent background,\n and we set width/height & position of that app iframe to inner app container that is located inside of the iframe.\n So when iframe's fullscreen element is opened, it looks like it's a part of the platform, and the app which shows the element, looks like\n usual, not in fullscreen\n\n So the platform provides this setIsFullscreenModalMode function to DC apps.\n When DC app wants to open a modal that should be opened at the center of the screen - it needs to\n call setIsFullscreenModalMode(true) first. And when it closes the modal - setIsFullscreenModalMode(false)\n\n Two things are important about this\n - all these styles that make this invisible background work should be applied at once\n - enter and exit from the mode, shouldn't trigger even a single re-render, as it may impact\n some elements inside the DC app\n\n There's a second parameter to `setIsFullscreenModalMode`: `isModal`. It should be used when a fullscreen overlay is displayed\n (Modal, for instance) that should cover everything on screen.\n\n What it does - it basically sets the stretched element's z-index to a very high value, so it covers every other UI element in CWF\n */\n\n function handleAppFullscreenTransparentModeExit() {\n onAppFullscreenTransparentMode({ appId: props.app.id, isModeEnabled: false });\n document.body.classList.remove('dc-isolated-app__body-overflow', styles.compensateScroll);\n }\n\n const setIsFullscreenModalMode = useCallback(\n function setIsFullscreenModalMode(nextIsFullscreenModalModeValue, isModal = false) {\n // When an app is already in fullscreen mode, no need to use this\n // invisible fullscreen mode to make elements take the whole screen\n\n if (\n !isIsolationFeatureEnabled ||\n isNonIsolatedApp ||\n (isAppMaximizedRef.current && !fullscreenModeRef.current) ||\n fullscreenModeRef.current === nextIsFullscreenModalModeValue\n ) {\n // Adding modal class if modal is opened when non-modal is already open\n if (isModal && fullscreenModalModeRef.current !== isModal) {\n fullscreenModalModeRef.current = isModal;\n containerRef.current?.classList.add(styles.containerMaximizedTransparentModal);\n }\n\n return;\n }\n\n const classesEditMethod = nextIsFullscreenModalModeValue ? 'add' : 'remove';\n\n containerRef.current?.classList[classesEditMethod](styles.containerMaximizedTransparent);\n\n if (isModal || classesEditMethod === 'remove') {\n containerRef.current?.classList[classesEditMethod](\n styles.containerMaximizedTransparentModal\n );\n }\n\n appIframeDocument.current = containerRef.current?.querySelector(\n `[${APP_IFRAME_ATTRIBUTE}]`\n )?.contentWindow?.document;\n\n const isolatedPageAppContainer = appIframeDocument.current?.getElementById(\n ISOLATED_PAGE_APP_CONTAINER_ID\n );\n\n if (!isolatedPageAppContainer) {\n return;\n }\n\n if (nextIsFullscreenModalModeValue) {\n const { top, left, width, height } = fixedSizeContainerRef.current.getBoundingClientRect();\n\n // We need to directly set inner iFrame container sizes together with DC platform styles\n // as passing this as props and using some effect inside of an iframe\n // results in a slight delay, which looks like a quick layout jump\n isolatedPageAppContainer.setAttribute(\n 'style',\n `\n top: ${top}px;\n left: ${left}px;\n width: ${width}px;\n height: ${height}px;\n position: absolute;\n `\n );\n onAppFullscreenTransparentMode({ appId: props.app.id, isModeEnabled: true });\n const isBodyScrollVisible = window.innerWidth !== document.body.clientWidth;\n document.body.classList.add(\n 'dc-isolated-app__body-overflow',\n isBodyScrollVisible && styles.compensateScroll\n );\n } else {\n isolatedPageAppContainer.setAttribute('style', '');\n handleAppFullscreenTransparentModeExit();\n }\n fullscreenModeRef.current = nextIsFullscreenModalModeValue;\n fullscreenModalModeRef.current = isModal;\n },\n [isIsolationFeatureEnabled, isNonIsolatedApp, isAppMaximizedRef]\n );\n\n useEffect(() => {\n return handleAppFullscreenTransparentModeExit;\n }, []);\n\n useEffect(() => {\n if (isAppMaximized && fullscreenModeRef.current) {\n setIsFullscreenModalMode(false);\n }\n }, [isAppMaximized]);\n\n /**\n * This should be the same function as calling react-intersection-observer's ref setter actually triggers re-render.\n * Which in its turn causes infinite re-render loop.\n */\n const setContainerRefs = useCallback(node => {\n containerRef.current = node;\n setInnerContainerRefFn(node);\n }, []);\n\n return (\n <div\n className={classNames('dc-isolated-app', styles.fixedSizeContainer)}\n ref={fixedSizeContainerRef}\n >\n <div\n ref={setContainerRefs}\n onMouseEnter={onInnerContainerMouseEnter}\n onMouseLeave={onInnerContainerMouseLeave}\n data-testid={`${PAGE_NAME}_${props.app.app.name}`}\n className={classNames(\n styles.container,\n isInsideNewMobileApp && styles.newMobileAppContainer,\n isAppMaximized && styles.containerMaximized\n )}\n >\n <DCAppComponent\n key={iframeKey}\n {...props}\n appContextValue={appContextValue}\n devCenterRouter={devCenterRouter}\n globalNotificationToastsAPI={window[Symbol.for('notificationToasts')]}\n globalMixpanelEventTracker={window[Symbol.for('logToMixpanel')]}\n onAppContainerClick={onAppContainerClick}\n onIsMaximizedChange={onIsMaximizedChange}\n permissionsContextValue={permissionsContextValue}\n setIsFullscreenModalMode={setIsFullscreenModalMode}\n userUnits={userUnits}\n />\n </div>\n </div>\n );\n}\n\nDevCenterIsolatedAppComponent.propTypes = {\n app: PropTypes.shape({\n id: PropTypes.number,\n app: PropTypes.shape({\n name: PropTypes.string,\n }),\n }).isRequired,\n currentUser: PropTypes.shape({}).isRequired,\n isIsolationFeatureEnabled: PropTypes.bool,\n onAppContainerClick: PropTypes.func,\n onAppFullscreenTransparentMode: PropTypes.func,\n onAppRemove: PropTypes.func,\n onInnerContainerMouseEnter: PropTypes.func,\n onInnerContainerMouseLeave: PropTypes.func,\n onIsMaximizedChange: PropTypes.func,\n onSettingChange: PropTypes.func,\n onSettingsChange: PropTypes.func,\n setInnerContainerRefFn: PropTypes.func,\n updateCurrentDashboardAppLastAnnotation: PropTypes.func,\n};\n\nDevCenterIsolatedAppComponent.defaultProps = {\n isIsolationFeatureEnabled: false,\n onAppContainerClick: noop,\n onAppFullscreenTransparentMode: noop,\n onAppRemove: noop,\n onInnerContainerMouseEnter: noop,\n onInnerContainerMouseLeave: noop,\n onIsMaximizedChange: noop,\n onSettingChange: noop,\n onSettingsChange: noop,\n setInnerContainerRefFn: noop,\n updateCurrentDashboardAppLastAnnotation: noop,\n};\n\nexport const DevCenterIsolatedApp = withRouter(DevCenterIsolatedAppComponent);\n"],"names":["DevCenterIsolatedAppComponent","_ref","_props$router","_props$app","_props$app2","_props$app3","_props$app3$app","_props$router2","_props$router2$locati","isIsolationFeatureEnabled","onAppFullscreenTransparentMode","onIsMaximizedChange","onInnerContainerMouseEnter","onInnerContainerMouseLeave","onAppContainerClick","setInnerContainerRefFn","props","_objectWithoutProperties","_excluded","devCenterRouter","useMemo","devCenterUtils","createDevCenterRouter","router","location","isNonIsolatedApp","isCorvaApp","app","package","DCAppComponent","DevCenterAppContainer","IsolatedPage","appKey","app_key","appVersion","getAppVersion","iframeKey","concat","appIframeDocument","useRef","containerRef","fixedSizeContainerRef","fullscreenModeRef","fullscreenModalModeRef","isAppMaximized","query","id","isAppMaximizedRef","current","_useState","useState","getUserUnits","_useState2","_slicedToArray","userUnits","setUserUnits","useEffect","unsubscribeFn","subscribeForUserUnitsUpdates","newUserUnits","appContextValue","useContext","AppContext","permissionsContextValue","usePermissionsContext","handleAppFullscreenTransparentModeExit","appId","isModeEnabled","document","body","classList","remove","styles","compensateScroll","setIsFullscreenModalMode","useCallback","nextIsFullscreenModalModeValue","_containerRef$current2","_containerRef$current4","_containerRef$current5","_containerRef$current6","_appIframeDocument$cu","isModal","_containerRef$current","add","containerMaximizedTransparentModal","_containerRef$current3","classesEditMethod","containerMaximizedTransparent","querySelector","APP_IFRAME_ATTRIBUTE","contentWindow","isolatedPageAppContainer","getElementById","ISOLATED_PAGE_APP_CONTAINER_ID","_fixedSizeContainerRe","getBoundingClientRect","top","left","width","height","setAttribute","isBodyScrollVisible","window","innerWidth","clientWidth","setContainerRefs","node","_jsx","className","classNames","fixedSizeContainer","ref","children","jsx","onMouseEnter","onMouseLeave","PAGE_NAME","name","container","isInsideNewMobileApp","newMobileAppContainer","containerMaximized","_objectSpread","globalNotificationToastsAPI","Symbol","for","globalMixpanelEventTracker","propTypes","PropTypes","shape","number","string","isRequired","currentUser","bool","func","onAppRemove","onSettingChange","onSettingsChange","updateCurrentDashboardAppLastAnnotation","defaultProps","noop","DevCenterIsolatedApp","withRouter"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require('./../../ext-esm/tslib/tslib.es6.js'),o=require("react/jsx-runtime"),n=require("react"),s=require("classnames"),i=require("lodash"),t=require("@material-ui/lab"),r=require("@material-ui/core"),c=require("@material-ui/icons"),u=require("./components/Listbox.js"),l=require("./components/Paper.js");require("./components/RecentSearches.js");var a=require("./components/Groups.js"),p=require("./components/SelectAllListItem.js"),d=require("./context/index.js"),m=require("./effects/useAutocompleteOptions.js"),h=require("./styles.js"),I=require("../../icons/iconParkIcons.js");require("../../icons/customIcons/icons/AddMessage.js"),require("../../icons/customIcons/icons/Attention.js"),require("../../icons/customIcons/icons/Collapse.js"),require("../../icons/customIcons/icons/Dashboard.js"),require("../../icons/customIcons/icons/Expand.js"),require("../../icons/customIcons/icons/FolderClosed.js"),require("../../icons/customIcons/icons/FolderClosedFilled.js"),require("../../icons/customIcons/icons/FolderOpened.js"),require("../../icons/customIcons/icons/GreaterOrEqual.js"),require("../../icons/customIcons/icons/LessOrEqual.js"),require("../../icons/customIcons/icons/Search.js"),require("../../icons/customIcons/icons/SearchOne.js"),require("../../icons/customIcons/icons/Wellhub.js"),require("../../icons/customIcons/icons/MultiRuler.js"),require("../../icons/customIcons/icons/Checkbox.js"),require("../../icons/customIcons/icons/CheckboxChecked.js"),require("../../icons/customIcons/icons/CheckboxIndeterminate.js"),require("../../icons/customIcons/icons/Radio.js"),require("../../icons/customIcons/icons/RadioChecked.js"),require("../../icons/customIcons/icons/SimulFrac.js"),require("../../icons/customIcons/icons/ZipperFrac.js"),require("../../icons/customIcons/icons/CautionFilled.js"),require("../../icons/customIcons/icons/MoreApp.js"),require("../../icons/customIcons/icons/Pad.js"),require("../../icons/customIcons/icons/DrilloutUnit.js"),require("../../icons/customIcons/icons/FracFleet.js"),require("../../icons/customIcons/icons/Global.js"),require("../../icons/customIcons/icons/Program.js"),require("../../icons/customIcons/icons/Rig.js"),require("../../icons/customIcons/icons/Well.js"),require("../../icons/customIcons/icons/Gap.js"),require("../../icons/customIcons/icons/Pin.js"),require("../../icons/customIcons/icons/CloseOneFilled.js"),require("../../icons/customIcons/icons/AttentionFilled.js"),require("../../icons/customIcons/icons/CheckOneFilled.js"),require("../../icons/customIcons/icons/Archive.js"),require("../../icons/customIcons/icons/ArchiveCancel.js"),require("../../icons/customIcons/icons/Unarchive.js"),require("../../icons/customIcons/icons/Archived.js"),require("../../icons/customIcons/icons/InterventionUnit.js"),require("../../icons/customIcons/icons/Lasso.js");var v=require("../MiddleTruncatedText/MiddleTruncatedText.js"),g=require("../IconButton/index.js");function j(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var C=j(s),f={},x=function(s){var a=s.AutocompleteProps,j=void 0===a?{}:a,x=s.value,b=s.disableClearable,q=void 0!==b&&b,O=s.onChange,_=s.onInputChange,P=void 0===_?null:_,S=s.loading,A=void 0!==S&&S,y=s.options,F=void 0===y?[]:y,R=s.optionSize,k=s.placeholder,G=void 0===k?"Search...":k,T=s.onGroupChange,N=void 0===T?function(){}:T,L=s.disabled,M=void 0!==L&&L,E=s.disableResetOnGroupChange,D=s.multiple,z=void 0!==D&&D,B=s.groups,w=void 0===B?[]:B,U=s.GroupsComponent,K=void 0===U?null:U,W=s.recentSearchesMaxCount,H=void 0===W?3:W,V=s.dataStorageKey,Z=void 0===V?"Search:recentSearches":V,J=s.RecentSearchesComponent,Q=void 0===J?null:J,X=s.dataStorage,Y=void 0===X?sessionStorage:X,$=s.onInputReset,ee=void 0===$?null:$,oe=s.getOptionLabel,ne=void 0===oe?function(e){return e.label||""}:oe,se=s.TextFieldProps,ie=void 0===se?{endAdornment:null}:se,te=s.ListboxProps,re=void 0===te?null:te,ce=s.onInputChangeCallback,ue=void 0===ce?function(){}:ce,le=s.renderCustomOption,ae=void 0===le?null:le,pe=s.isHiddenAllOption,de=void 0!==pe&&pe,me=s.onOpen,he=void 0===me?i.noop:me,Ie=s.selectedGroup,ve=void 0===Ie?null:Ie,ge=s.onGroupReset,je=void 0===ge?function(){}:ge,Ce=s.onClose,fe=void 0===Ce?function(){}:Ce,xe=s.popperProps,be=void 0===xe?f:xe,qe=s.paperFooter,Oe=s.noOptionsText,_e=void 0===Oe?"No Options":Oe,Pe=s.ListboxComponent,Se=void 0===Pe?u:Pe,Ae=s.isPrioritizedSelectedOptions,ye=void 0!==Ae&&Ae,Fe=s.isOpenedFromParent,Re=void 0===Fe?void 0:Fe,ke=s.onFocus,Ge=void 0===ke?null:ke,Te=s.InputProps,Ne=void 0===Te?null:Te,Le=s.classes,Me=void 0===Le?{}:Le,Ee=s.popupIcon;void 0===Ee&&o.jsx(I.DownOneIcon,{theme:"filled",fill:"#BDBDBD",size:16});var De=s.shouldResetInputOnAutocompleteChange,ze=e.__rest(s,["AutocompleteProps","value","disableClearable","onChange","onInputChange","loading","options","optionSize","placeholder","onGroupChange","disabled","disableResetOnGroupChange","multiple","groups","GroupsComponent","recentSearchesMaxCount","dataStorageKey","RecentSearchesComponent","dataStorage","onInputReset","getOptionLabel","TextFieldProps","ListboxProps","onInputChangeCallback","renderCustomOption","isHiddenAllOption","onOpen","selectedGroup","onGroupReset","onClose","popperProps","paperFooter","noOptionsText","ListboxComponent","isPrioritizedSelectedOptions","isOpenedFromParent","onFocus","InputProps","classes","popupIcon","shouldResetInputOnAutocompleteChange"]),Be=n.useState(""),we=Be[0],Ue=Be[1],Ke=n.useState(""),We=Ke[0],He=Ke[1],Ve=n.useState(!1),Ze=Ve[0],Je=Ve[1],Qe=n.useState(!1),Xe=Qe[0],Ye=Qe[1],$e=n.useRef(),eo=n.useRef(),oo=m.useAutocompletOptions({options:F,value:x,groups:w,selectedGroup:ve,isPrioritizedSelectedOptions:ye}),no=oo.autocompleteOptions,so=oo.isGrouped,io=oo.handleAutocompleOptionsUpdate,to=h(),ro=Me.popper,co=Me.listbox,uo=Me.popupIndicator,lo=Me.popupIndicatorOpen,ao=Me.groupChip,po=e.__rest(Me,["popper","listbox","popupIndicator","popupIndicatorOpen","groupChip"]),mo=e.__assign({popper:C.default(to.popper,ro),listbox:C.default(to.listbox,co),popupIndicator:C.default(to.popupIndicator,uo),popupIndicatorOpen:C.default(to.popupIndicatorOpen,lo)},po),ho=function(){Ue(""),null==ee||ee()},Io=n.useCallback(i.debounce((function(e){return He(e)}),500),[]),vo=function(e){var o=w.find((function(o){return o.id===e}));E||ho(),N(o)},go=function(e){we.length||z&&"ArrowLeft"===e.code&&e.stopPropagation()};n.useEffect((function(){Ze&&($e.current.focus(),$e.current.setSelectionRange(we.length,we.length))}));var jo=z&&Array.isArray(x)?x.length:null,Co=z&&(null==no?void 0:no.length)===jo,fo=z&&!!jo&&!Co,xo=function(){return ho(),j.getOptionDisabled&&Co?O(null,[F[F.length-1]]):O(null,Co||fo?[]:no)};n.useEffect((function(){Io(we),P&&P(we)}),[we]);var bo=function(e,o){"blur"===o&&(!e.relatedTarget||eo.current.contains(e.relatedTarget))||(fe(),Je(!1))},qo=function(){(null!=Re?Re:Ze)?(Je(!1),fe()):(Je(!0),he())},Oo=function(e){if(Co&&!de)return"All";var n=e[0].label||e[0].name||"";return 1===(null==e?void 0:e.length)?o.jsx("div",{children:o.jsx(v.MiddleTruncatedText,{children:n})}):"".concat(null==e?void 0:e.length," Selected")},_o=i.isEmpty(no),Po=n.useMemo((function(){return{onOutsideClick:bo,isEmptyOptions:_o,loading:A,AllSelectComponent:!de&&z&&!_o&&o.jsx(p,{className:to.selectAllCheckbox,onClick:xo,someSelected:fo,allSelected:Co}),RecentSearchesComponent:Q&&o.jsx(Q,{title:"Recent Searches",Icon:c.AccessTime,dataStorage:Y,dataStorageKey:Z,maxCount:H,isHidden:!i.isEmpty(we),onInputChange:function(e){return Ue(e)},inputValue:We}),GroupsComponent:!ve&&so&&K&&o.jsx(K,{onGroupClick:vo,groups:w})}}),[ve,A,so,_o,we,de,z,_o,We,fe,bo]),So=n.useMemo((function(){return function(n){var s=n.children,i=n.className,t=e.__rest(n,["children","className"]);return o.jsxs(l,e.__assign({},t,{className:i,inputRef:$e,ref:eo,children:[s,qe]}))}}),[qe]),Ao=n.useMemo((function(){return function(n){var s=be.style,i=e.__rest(be,["style"]);return o.jsx(r.Popper,e.__assign({},n,{style:e.__assign(e.__assign({},n.style),s),placement:"bottom-start"},i))}}),[be]);return o.jsx(d.PaperContext.Provider,{value:Po,children:o.jsx(t.Autocomplete,e.__assign({},i.omit(ze,["InputProps","isNullable","isOpenedFromParent"]),{PopperComponent:Ao,disableClearable:q,onOpen:function(e){io(),Je(!0),he(e)},onClose:bo,open:null!=Re?Re:Ze,onChange:function(e,o){z&&!De||Ue(""),O(e,o)},forcePopupIcon:j.forcePopupIcon,fullWidth:!0,disabled:M,value:x,classes:mo,renderInput:function(s){var t,c,u,l,a=n.useState(!1),p=a[0],d=a[1],m=s.InputProps,h=s.inputProps,v=e.__rest(s,["InputProps","inputProps"]),f=(null===(l=null===(u=null===(c=m.endAdornment)||void 0===c?void 0:c.props)||void 0===u?void 0:u.children)||void 0===l?void 0:l.length)>1?n.cloneElement(m.endAdornment,{children:m.endAdornment.props.children.slice(1),onMouseDown:function(e){return e.stopPropagation()},onMouseUp:function(e){return e.stopPropagation()}}):m.endAdornment,b=1===jo,O=p||Ze||we.length>0||!i.isEmpty(x)||!i.isEmpty(null==Ne?void 0:Ne.startAdornment),_=Ne||{},P=_.classes,S=void 0===P?{}:P,y=S.input,F=void 0===y?"":y,R=e.__rest(S,["input"]),k=_.style,T=e.__rest(_,["classes","style"]);return o.jsx(r.TextField,e.__assign({},v,i.omit(ie,["endAdornment"]),{onBlur:function(){d(!1),b&&Ye(!0)},onFocus:function(){d(!0)},onKeyDown:go,inputRef:$e,placeholder:G,classes:{root:to.searchInput},inputProps:e.__assign(e.__assign({style:{padding:5}},h),ze.inputProps),InputLabelProps:{shrink:O},InputProps:e.__assign(e.__assign(e.__assign({classes:e.__assign({input:C.default(Xe?to.inputShrinked:b&&to.inputExpanded,F)},R),style:e.__assign({paddingRight:0,paddingBottom:0},k)},m),T),{startAdornment:o.jsxs(o.Fragment,{children:[null==Ne?void 0:Ne.startAdornment,ve&&o.jsx(r.Chip,{className:to.selectedGroup,"data-not-migrated-muichip":!0,variant:"outlined",label:o.jsxs("div",{className:to.selectedGroupLabel,children:[ve.name,o.jsx(I.CloseSmallIcon,{size:16,id:"removeGroupIcon",className:to.removeIcon,onClick:je})]})},ve.id),z&&!i.isEmpty(x)&&o.jsx("div",{onClick:qo,id:"selectedOptions",className:C.default(to.selectedLabel,Xe&&to.selectedLabelExpanded),children:Oo(x)})]}),endAdornment:o.jsxs(o.Fragment,{children:[o.jsxs(r.InputAdornment,{className:C.default(to.endAdornment,(t={},t[to.removeIconWithDropdown]=j.forcePopupIcon,t)),position:"end",children:[ie.endAdornment,A&&o.jsx(r.CircularProgress,{color:"primary",size:20}),p&&we&&!q&&o.jsx(g,{"data-testid":"".concat("AutocompleteSearch","_clear_icon"),size:"small",className:to.iconButton,onClick:function(){Ue(""),ee&&ee()},tooltipProps:{title:"Clear"},children:o.jsx(I.CloseSmallIcon,{size:20,className:to.closeIcon})})]}),j.forcePopupIcon&&f]})})}))},loading:A,options:no,renderGroup:function(e){var n=e.key,s=e.group,t=e.children;return!s||!i.isEmpty(ve)&&z?t:o.jsxs("div",{className:to.group,children:[o.jsx(r.Tooltip,{title:s,placement:"right",TransitionComponent:r.Fade,TransitionProps:{timeout:500},enterDelay:500,children:o.jsx(r.Chip,{"data-not-migrated-muichip":!0,className:C.default(to.groupChip,ao),variant:"outlined",label:s})}),t]},n)},disableCloseOnSelect:z,multiple:z,renderOption:ae||function(e,n){var s=e.label,i=void 0===s?"":s,t=e.id;return z?o.jsxs("div",{className:C.default(to.option,R),"data-testid":"autocompleteOption_".concat(i,"MenuItem"),children:[o.jsx(r.Checkbox,{size:"small",disableRipple:!0,className:to.checkbox,checked:n.selected}),o.jsx(v.MiddleTruncatedText,{className:to.optionLabelContainer,children:i})]},t):o.jsx(r.MenuItem,{className:to.menuItem,value:t,"data-testid":"autocompleteOption_".concat(i,"MenuItem"),children:o.jsx(v.MiddleTruncatedText,{className:to.optionLabelContainer,children:i})},t)},groupBy:so?function(e){return e.group}:null,PaperComponent:So,ListboxComponent:Se,inputValue:we,getOptionLabel:ne,getOptionDisabled:null==j?void 0:j.getOptionDisabled,onInputChange:function(e,o,n){Ue(E?function(e){return"reset"===n?e:o}:o),ue(o,n)},loadingText:o.jsx("div",{className:to.label,children:"Loading ..."}),noOptionsText:o.jsx("div",{className:to.label,children:_e}),ListboxProps:re,onFocus:function(){Ye(!1),null==Ge||Ge()}}))})};x.Groups=a,exports.Search=x,exports.default=x;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require('./../../ext-esm/tslib/tslib.es6.js'),o=require("react/jsx-runtime"),n=require("react"),s=require("classnames"),i=require("lodash"),t=require("@material-ui/lab"),r=require("@material-ui/core"),c=require("@material-ui/icons"),l=require("./components/Listbox.js"),u=require("./components/Paper.js");require("./components/RecentSearches.js");var a=require("./components/Groups.js"),p=require("./components/SelectAllListItem.js"),d=require("./context/index.js"),m=require("./effects/useAutocompleteOptions.js"),h=require("./styles.js"),v=require("../../icons/iconParkIcons.js");require("../../icons/customIcons/icons/AddMessage.js"),require("../../icons/customIcons/icons/Attention.js"),require("../../icons/customIcons/icons/Collapse.js"),require("../../icons/customIcons/icons/Dashboard.js"),require("../../icons/customIcons/icons/Expand.js"),require("../../icons/customIcons/icons/FolderClosed.js"),require("../../icons/customIcons/icons/FolderClosedFilled.js"),require("../../icons/customIcons/icons/FolderOpened.js"),require("../../icons/customIcons/icons/GreaterOrEqual.js"),require("../../icons/customIcons/icons/LessOrEqual.js"),require("../../icons/customIcons/icons/Search.js"),require("../../icons/customIcons/icons/SearchOne.js"),require("../../icons/customIcons/icons/Wellhub.js"),require("../../icons/customIcons/icons/MultiRuler.js"),require("../../icons/customIcons/icons/Checkbox.js"),require("../../icons/customIcons/icons/CheckboxChecked.js"),require("../../icons/customIcons/icons/CheckboxIndeterminate.js"),require("../../icons/customIcons/icons/Radio.js"),require("../../icons/customIcons/icons/RadioChecked.js"),require("../../icons/customIcons/icons/SimulFrac.js"),require("../../icons/customIcons/icons/ZipperFrac.js"),require("../../icons/customIcons/icons/CautionFilled.js"),require("../../icons/customIcons/icons/MoreApp.js"),require("../../icons/customIcons/icons/Pad.js"),require("../../icons/customIcons/icons/DrilloutUnit.js"),require("../../icons/customIcons/icons/FracFleet.js"),require("../../icons/customIcons/icons/Global.js"),require("../../icons/customIcons/icons/Program.js"),require("../../icons/customIcons/icons/Rig.js"),require("../../icons/customIcons/icons/Well.js"),require("../../icons/customIcons/icons/Gap.js"),require("../../icons/customIcons/icons/Pin.js"),require("../../icons/customIcons/icons/CloseOneFilled.js"),require("../../icons/customIcons/icons/AttentionFilled.js"),require("../../icons/customIcons/icons/CheckOneFilled.js"),require("../../icons/customIcons/icons/Archive.js"),require("../../icons/customIcons/icons/ArchiveCancel.js"),require("../../icons/customIcons/icons/Unarchive.js"),require("../../icons/customIcons/icons/Archived.js"),require("../../icons/customIcons/icons/InterventionUnit.js"),require("../../icons/customIcons/icons/Lasso.js");var I=require("../MiddleTruncatedText/MiddleTruncatedText.js"),g=require("../IconButton/index.js");function j(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var C=j(s),f={},x=function(s){var a=s.AutocompleteProps,j=void 0===a?{}:a,x=s.value,b=s.disableClearable,q=void 0!==b&&b,O=s.onChange,_=s.onInputChange,P=void 0===_?null:_,S=s.loading,A=void 0!==S&&S,y=s.options,F=void 0===y?[]:y,R=s.optionSize,k=s.placeholder,G=void 0===k?"Search...":k,L=s.onGroupChange,T=void 0===L?function(){}:L,N=s.disabled,M=void 0!==N&&N,E=s.disableResetOnGroupChange,D=s.multiple,z=void 0!==D&&D,B=s.groups,w=void 0===B?[]:B,H=s.GroupsComponent,U=void 0===H?null:H,K=s.recentSearchesMaxCount,W=void 0===K?3:K,V=s.dataStorageKey,Z=void 0===V?"Search:recentSearches":V,J=s.RecentSearchesComponent,Q=void 0===J?null:J,X=s.dataStorage,Y=void 0===X?sessionStorage:X,$=s.onInputReset,ee=void 0===$?null:$,oe=s.getOptionLabel,ne=void 0===oe?function(e){return e.label||""}:oe,se=s.TextFieldProps,ie=void 0===se?{endAdornment:null}:se,te=s.ListboxProps,re=void 0===te?null:te,ce=s.onInputChangeCallback,le=void 0===ce?function(){}:ce,ue=s.renderCustomOption,ae=void 0===ue?null:ue,pe=s.isHiddenAllOption,de=void 0!==pe&&pe,me=s.isHiddenAllLabel,he=void 0!==me&&me,ve=s.onOpen,Ie=void 0===ve?i.noop:ve,ge=s.selectedGroup,je=void 0===ge?null:ge,Ce=s.onGroupReset,fe=void 0===Ce?function(){}:Ce,xe=s.onClose,be=void 0===xe?function(){}:xe,qe=s.popperProps,Oe=void 0===qe?f:qe,_e=s.paperFooter,Pe=s.noOptionsText,Se=void 0===Pe?"No Options":Pe,Ae=s.ListboxComponent,ye=void 0===Ae?l:Ae,Fe=s.isPrioritizedSelectedOptions,Re=void 0!==Fe&&Fe,ke=s.isOpenedFromParent,Ge=void 0===ke?void 0:ke,Le=s.onFocus,Te=void 0===Le?null:Le,Ne=s.InputProps,Me=void 0===Ne?null:Ne,Ee=s.classes,De=void 0===Ee?{}:Ee,ze=s.popupIcon;void 0===ze&&o.jsx(v.DownOneIcon,{theme:"filled",fill:"#BDBDBD",size:16});var Be=s.shouldResetInputOnAutocompleteChange,we=e.__rest(s,["AutocompleteProps","value","disableClearable","onChange","onInputChange","loading","options","optionSize","placeholder","onGroupChange","disabled","disableResetOnGroupChange","multiple","groups","GroupsComponent","recentSearchesMaxCount","dataStorageKey","RecentSearchesComponent","dataStorage","onInputReset","getOptionLabel","TextFieldProps","ListboxProps","onInputChangeCallback","renderCustomOption","isHiddenAllOption","isHiddenAllLabel","onOpen","selectedGroup","onGroupReset","onClose","popperProps","paperFooter","noOptionsText","ListboxComponent","isPrioritizedSelectedOptions","isOpenedFromParent","onFocus","InputProps","classes","popupIcon","shouldResetInputOnAutocompleteChange"]),He=n.useState(""),Ue=He[0],Ke=He[1],We=n.useState(""),Ve=We[0],Ze=We[1],Je=n.useState(!1),Qe=Je[0],Xe=Je[1],Ye=n.useState(!1),$e=Ye[0],eo=Ye[1],oo=n.useRef(),no=n.useRef(),so=m.useAutocompletOptions({options:F,value:x,groups:w,selectedGroup:je,isPrioritizedSelectedOptions:Re}),io=so.autocompleteOptions,to=so.isGrouped,ro=so.handleAutocompleOptionsUpdate,co=h(),lo=De.popper,uo=De.listbox,ao=De.popupIndicator,po=De.popupIndicatorOpen,mo=De.groupChip,ho=e.__rest(De,["popper","listbox","popupIndicator","popupIndicatorOpen","groupChip"]),vo=e.__assign({popper:C.default(co.popper,lo),listbox:C.default(co.listbox,uo),popupIndicator:C.default(co.popupIndicator,ao),popupIndicatorOpen:C.default(co.popupIndicatorOpen,po)},ho),Io=function(){Ke(""),null==ee||ee()},go=n.useCallback(i.debounce((function(e){return Ze(e)}),500),[]),jo=function(e){var o=w.find((function(o){return o.id===e}));E||Io(),T(o)},Co=function(e){Ue.length||z&&"ArrowLeft"===e.code&&e.stopPropagation()};n.useEffect((function(){Qe&&(oo.current.focus(),oo.current.setSelectionRange(Ue.length,Ue.length))}));var fo=z&&Array.isArray(x)?x.length:null,xo=z&&(null==io?void 0:io.length)===fo,bo=z&&!!fo&&!xo,qo=function(){return Io(),j.getOptionDisabled&&xo?O(null,[F[F.length-1]]):O(null,xo||bo?[]:io)};n.useEffect((function(){go(Ue),P&&P(Ue)}),[Ue]);var Oo=function(e,o){"blur"===o&&(!e.relatedTarget||no.current.contains(e.relatedTarget))||(be(),Xe(!1))},_o=function(){(null!=Ge?Ge:Qe)?(Xe(!1),be()):(Xe(!0),Ie())},Po=function(e){if(xo&&!de&&!he)return"All";var n=e[0].label||e[0].name||"";return 1===(null==e?void 0:e.length)?o.jsx("div",{children:o.jsx(I.MiddleTruncatedText,{children:n})}):"".concat(null==e?void 0:e.length," Selected")},So=i.isEmpty(io),Ao=n.useMemo((function(){return{onOutsideClick:Oo,isEmptyOptions:So,loading:A,AllSelectComponent:!de&&z&&!So&&o.jsx(p,{className:co.selectAllCheckbox,onClick:qo,someSelected:bo,allSelected:xo}),RecentSearchesComponent:Q&&o.jsx(Q,{title:"Recent Searches",Icon:c.AccessTime,dataStorage:Y,dataStorageKey:Z,maxCount:W,isHidden:!i.isEmpty(Ue),onInputChange:function(e){return Ke(e)},inputValue:Ve}),GroupsComponent:!je&&to&&U&&o.jsx(U,{onGroupClick:jo,groups:w})}}),[je,A,to,So,Ue,de,z,So,Ve,be,Oo]),yo=n.useMemo((function(){return function(n){var s=n.children,i=n.className,t=e.__rest(n,["children","className"]);return o.jsxs(u,e.__assign({},t,{className:i,inputRef:oo,ref:no,children:[s,_e]}))}}),[_e]),Fo=n.useMemo((function(){return function(n){var s=Oe.style,i=e.__rest(Oe,["style"]);return o.jsx(r.Popper,e.__assign({},n,{style:e.__assign(e.__assign({},n.style),s),placement:"bottom-start"},i))}}),[Oe]);return o.jsx(d.PaperContext.Provider,{value:Ao,children:o.jsx(t.Autocomplete,e.__assign({},i.omit(we,["InputProps","isNullable","isOpenedFromParent"]),{PopperComponent:Fo,disableClearable:q,onOpen:function(e){ro(),Xe(!0),Ie(e)},onClose:Oo,open:null!=Ge?Ge:Qe,onChange:function(e,o){z&&!Be||Ke(""),O(e,o)},forcePopupIcon:j.forcePopupIcon,fullWidth:!0,disabled:M,value:x,classes:vo,renderInput:function(s){var t,c,l,u,a=n.useState(!1),p=a[0],d=a[1],m=s.InputProps,h=s.inputProps,I=e.__rest(s,["InputProps","inputProps"]),f=(null===(u=null===(l=null===(c=m.endAdornment)||void 0===c?void 0:c.props)||void 0===l?void 0:l.children)||void 0===u?void 0:u.length)>1?n.cloneElement(m.endAdornment,{children:m.endAdornment.props.children.slice(1),onMouseDown:function(e){return e.stopPropagation()},onMouseUp:function(e){return e.stopPropagation()}}):m.endAdornment,b=1===fo,O=p||Qe||Ue.length>0||!i.isEmpty(x)||!i.isEmpty(null==Me?void 0:Me.startAdornment),_=Me||{},P=_.classes,S=void 0===P?{}:P,y=S.input,F=void 0===y?"":y,R=e.__rest(S,["input"]),k=_.style,L=e.__rest(_,["classes","style"]);return o.jsx(r.TextField,e.__assign({},I,i.omit(ie,["endAdornment"]),{onBlur:function(){d(!1),b&&eo(!0)},onFocus:function(){d(!0)},onKeyDown:Co,inputRef:oo,placeholder:G,classes:{root:co.searchInput},inputProps:e.__assign(e.__assign({style:{padding:5}},h),we.inputProps),InputLabelProps:{shrink:O},InputProps:e.__assign(e.__assign(e.__assign({classes:e.__assign({input:C.default($e?co.inputShrinked:b&&co.inputExpanded,F)},R),style:e.__assign({paddingRight:0,paddingBottom:0},k)},m),L),{startAdornment:o.jsxs(o.Fragment,{children:[null==Me?void 0:Me.startAdornment,je&&o.jsx(r.Chip,{className:co.selectedGroup,"data-not-migrated-muichip":!0,variant:"outlined",label:o.jsxs("div",{className:co.selectedGroupLabel,children:[je.name,o.jsx(v.CloseSmallIcon,{size:16,id:"removeGroupIcon",className:co.removeIcon,onClick:fe})]})},je.id),z&&!i.isEmpty(x)&&o.jsx("div",{onClick:_o,id:"selectedOptions",className:C.default(co.selectedLabel,$e&&co.selectedLabelExpanded),children:Po(x)})]}),endAdornment:o.jsxs(o.Fragment,{children:[o.jsxs(r.InputAdornment,{className:C.default(co.endAdornment,(t={},t[co.removeIconWithDropdown]=j.forcePopupIcon,t)),position:"end",children:[ie.endAdornment,A&&o.jsx(r.CircularProgress,{color:"primary",size:20}),p&&Ue&&!q&&o.jsx(g,{"data-testid":"".concat("AutocompleteSearch","_clear_icon"),size:"small",className:co.iconButton,onClick:function(){Ke(""),ee&&ee()},tooltipProps:{title:"Clear"},children:o.jsx(v.CloseSmallIcon,{size:20,className:co.closeIcon})})]}),j.forcePopupIcon&&f]})})}))},loading:A,options:io,renderGroup:function(e){var n=e.key,s=e.group,t=e.children;return!s||!i.isEmpty(je)&&z?t:o.jsxs("div",{className:co.group,children:[o.jsx(r.Tooltip,{title:s,placement:"right",TransitionComponent:r.Fade,TransitionProps:{timeout:500},enterDelay:500,children:o.jsx(r.Chip,{"data-not-migrated-muichip":!0,className:C.default(co.groupChip,mo),variant:"outlined",label:s})}),t]},n)},disableCloseOnSelect:z,multiple:z,renderOption:ae||function(e,n){var s=e.label,i=void 0===s?"":s,t=e.id;return z?o.jsxs("div",{className:C.default(co.option,R),"data-testid":"autocompleteOption_".concat(i,"MenuItem"),children:[o.jsx(r.Checkbox,{size:"small",disableRipple:!0,className:co.checkbox,checked:n.selected}),o.jsx(I.MiddleTruncatedText,{className:co.optionLabelContainer,children:i})]},t):o.jsx(r.MenuItem,{className:co.menuItem,value:t,"data-testid":"autocompleteOption_".concat(i,"MenuItem"),children:o.jsx(I.MiddleTruncatedText,{className:co.optionLabelContainer,children:i})},t)},groupBy:to?function(e){return e.group}:null,PaperComponent:yo,ListboxComponent:ye,inputValue:Ue,getOptionLabel:ne,getOptionDisabled:null==j?void 0:j.getOptionDisabled,onInputChange:function(e,o,n){Ke(E?function(e){return"reset"===n?e:o}:o),le(o,n)},loadingText:o.jsx("div",{className:co.label,children:"Loading ..."}),noOptionsText:o.jsx("div",{className:co.label,children:Se}),ListboxProps:re,onFocus:function(){eo(!1),null==Te||Te()}}))})};x.Groups=a,exports.Search=x,exports.default=x;
|
|
2
2
|
//# sourceMappingURL=Search.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevCenterIsolatedApp.d.ts","sourceRoot":"","sources":["../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DevCenterIsolatedApp.d.ts","sourceRoot":"","sources":["../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js"],"names":[],"mappings":"AA2QA,uCAA8E"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"@babel/runtime/helpers/defineProperty";import n from"@babel/runtime/helpers/slicedToArray";import r from"@babel/runtime/helpers/objectWithoutProperties";import{useMemo as t,useRef as o,useState as i,useEffect as a,useContext as
|
|
1
|
+
import e from"@babel/runtime/helpers/defineProperty";import n from"@babel/runtime/helpers/slicedToArray";import r from"@babel/runtime/helpers/objectWithoutProperties";import{useMemo as t,useRef as o,useState as i,useEffect as a,useContext as p,useCallback as s}from"react";import l from"classnames";import{withRouter as c}from"react-router";import{noop as u}from"lodash";import d from"prop-types";import{APP_IFRAME_ATTRIBUTE as m,IsolatedPage as v}from"./IsolatedPage.js";import{ISOLATED_PAGE_APP_CONTAINER_ID as f}from"./constants.js";import C from"./DevCenterIsolatedApp.module.css.js";import b from"../AppContext.js";import g from"../../../permissions/PermissionsContext.js";import"../../../permissions/constants/index.js";import"../../../permissions/withPermissionsHOC.js";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/regenerator";import"../../../clients/jsonApi/index.js";import"../../../permissions/ProvidePermissions.js";import{getUserUnits as j,subscribeForUserUnitsUpdates as A}from"../../../utils/index.js";import"../AppHeader/AppHeader.js";import"../AppSideBar/AppSideBar.js";import"../AppsDataProvider/AppsDataProvider.js";import h from"../DevCenterAppContainer/DevCenterAppContainer.js";import"../NavigationBar/NavigationBar.js";import"../SideBar/SideBar.js";import"../AppSettingsPopover/AppSettingsPopover.js";import"../AppFilterPanelLayout/AppFilterPanelLayout.js";import"../DevCenterRouterContext/DevCenterRouterContext.js";import"../DevCenterRouterContext/UniversalLink/UniversalLink.js";import{jsx as M}from"react/jsx-runtime";import"./DevCenterIsolatedAppPage.js";import{getAppVersion as y}from"../DevCenterAppContainer/utils.js";import{isInsideNewMobileApp as I}from"../../../utils/mobileDetect.js";import{createDevCenterRouter as x,isCorvaApp as P,isIsolationEnabledInPackageManifest as w,isAppMaximized as D}from"../../../utils/devcenter.js";var O=["isIsolationFeatureEnabled","onAppFullscreenTransparentMode","onIsMaximizedChange","onInnerContainerMouseEnter","onInnerContainerMouseLeave","onAppContainerClick","setInnerContainerRefFn"];function S(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function L(n){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?S(Object(t),!0).forEach((function(r){e(n,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):S(Object(t)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}))}return n}function E(e){var c,u,d,S,E,F,T,R=e.isIsolationFeatureEnabled,k=e.onAppFullscreenTransparentMode,z=e.onIsMaximizedChange,B=e.onInnerContainerMouseEnter,_=e.onInnerContainerMouseLeave,N=e.onAppContainerClick,q=e.setInnerContainerRefFn,U=r(e,O),W=t((function(){return x(U.router)}),[null===(c=U.router)||void 0===c?void 0:c.location]),H=P(null==U||null===(u=U.app)||void 0===u?void 0:u.app)&&!w(null==U||null===(d=U.app)||void 0===d?void 0:d.package)||!R,V=H?h:v,G=null===(S=U.app)||void 0===S||null===(E=S.app)||void 0===E?void 0:E.app_key,J=y(U.app),K="".concat(G,"-").concat(J),Q=o(),X=o(),Y=o(),Z=o(!1),$=o(!1),ee=D(null===(F=U.router)||void 0===F||null===(T=F.location)||void 0===T?void 0:T.query,U.app.id),ne=o(ee);ne.current=ee;var re=i(j()),te=n(re,2),oe=te[0],ie=te[1];a((function(){var e=A((function(e){return ie(e)}));return function(){return e()}}),[]);var ae=p(b),pe=g();function se(){k({appId:U.app.id,isModeEnabled:!1}),document.body.classList.remove("dc-isolated-app__body-overflow",C.compensateScroll)}var le=s((function(e){var n,r,t,o,i,a=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!R||H||ne.current&&!Z.current||Z.current===e){var p;a&&$.current!==a&&($.current=a,null===(p=X.current)||void 0===p||p.classList.add(C.containerMaximizedTransparentModal))}else{var s,l=e?"add":"remove";if(null===(n=X.current)||void 0===n||n.classList[l](C.containerMaximizedTransparent),a||"remove"===l)null===(s=X.current)||void 0===s||s.classList[l](C.containerMaximizedTransparentModal);Q.current=null===(r=X.current)||void 0===r||null===(t=r.querySelector("[".concat(m,"]")))||void 0===t||null===(o=t.contentWindow)||void 0===o?void 0:o.document;var c=null===(i=Q.current)||void 0===i?void 0:i.getElementById(f);if(c){if(e){var u=Y.current.getBoundingClientRect(),d=u.top,v=u.left,b=u.width,g=u.height;c.setAttribute("style","\n top: ".concat(d,"px;\n left: ").concat(v,"px;\n width: ").concat(b,"px;\n height: ").concat(g,"px;\n position: absolute;\n ")),k({appId:U.app.id,isModeEnabled:!0});var j=window.innerWidth!==document.body.clientWidth;document.body.classList.add("dc-isolated-app__body-overflow",j&&C.compensateScroll)}else c.setAttribute("style",""),se();Z.current=e,$.current=a}}}),[R,H,ne]);a((function(){return se}),[]),a((function(){ee&&Z.current&&le(!1)}),[ee]);var ce=s((function(e){X.current=e,q(e)}),[]);return M("div",{className:l("dc-isolated-app",C.fixedSizeContainer),ref:Y,children:M("div",{ref:ce,onMouseEnter:B,onMouseLeave:_,"data-testid":"".concat("DevCenter_AppContainer","_").concat(U.app.app.name),className:l(C.container,I&&C.newMobileAppContainer,ee&&C.containerMaximized),children:M(V,L(L({},U),{},{appContextValue:ae,devCenterRouter:W,globalNotificationToastsAPI:window[Symbol.for("notificationToasts")],globalMixpanelEventTracker:window[Symbol.for("logToMixpanel")],onAppContainerClick:N,onIsMaximizedChange:z,permissionsContextValue:pe,setIsFullscreenModalMode:le,userUnits:oe}),K)})})}E.propTypes={app:d.shape({id:d.number,app:d.shape({name:d.string})}).isRequired,currentUser:d.shape({}).isRequired,isIsolationFeatureEnabled:d.bool,onAppContainerClick:d.func,onAppFullscreenTransparentMode:d.func,onAppRemove:d.func,onInnerContainerMouseEnter:d.func,onInnerContainerMouseLeave:d.func,onIsMaximizedChange:d.func,onSettingChange:d.func,onSettingsChange:d.func,setInnerContainerRefFn:d.func,updateCurrentDashboardAppLastAnnotation:d.func},E.defaultProps={isIsolationFeatureEnabled:!1,onAppContainerClick:u,onAppFullscreenTransparentMode:u,onAppRemove:u,onInnerContainerMouseEnter:u,onInnerContainerMouseLeave:u,onIsMaximizedChange:u,onSettingChange:u,onSettingsChange:u,setInnerContainerRefFn:u,updateCurrentDashboardAppLastAnnotation:u};var F=c(E);export{F as DevCenterIsolatedApp};
|
|
2
2
|
//# sourceMappingURL=DevCenterIsolatedApp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevCenterIsolatedApp.js","sources":["../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js"],"sourcesContent":["import { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { withRouter } from 'react-router';\nimport { noop } from 'lodash';\nimport PropTypes from 'prop-types';\n\nimport { IsolatedPage, APP_IFRAME_ATTRIBUTE } from './IsolatedPage';\nimport { ISOLATED_PAGE_APP_CONTAINER_ID } from './constants';\n\nimport styles from './DevCenterIsolatedApp.module.css';\n\nimport AppContext from '~/components/DevCenter/AppContext';\nimport { usePermissionsContext } from '~/permissions';\nimport { devcenter as devCenterUtils, getUserUnits, subscribeForUserUnitsUpdates } from '~/utils';\nimport { DevCenterAppContainer } from '~/components/DevCenter';\nimport { isInsideNewMobileApp } from '~/utils/mobileDetect';\n\nconst PAGE_NAME = 'DevCenter_AppContainer';\n\nfunction DevCenterIsolatedAppComponent({\n isIsolationFeatureEnabled,\n onAppFullscreenTransparentMode,\n onIsMaximizedChange,\n onInnerContainerMouseEnter,\n onInnerContainerMouseLeave,\n onAppContainerClick,\n setInnerContainerRefFn,\n ...props\n}) {\n const devCenterRouter = useMemo(\n () => devCenterUtils.createDevCenterRouter(props.router),\n [props.router?.location]\n );\n\n const isNonIsolatedApp =\n (devCenterUtils.isCorvaApp(props?.app?.app) &&\n !devCenterUtils.isIsolationEnabledInPackageManifest(props?.app?.package)) ||\n !isIsolationFeatureEnabled;\n\n const DCAppComponent = isNonIsolatedApp ? DevCenterAppContainer : IsolatedPage;\n\n const appIframeDocument = useRef();\n const containerRef = useRef();\n const fixedSizeContainerRef = useRef();\n const fullscreenModeRef = useRef(false);\n const fullscreenModalModeRef = useRef(false);\n\n const isAppMaximized = devCenterUtils.isAppMaximized(props.router?.location?.query, props.app.id);\n\n // save to ref to not re-create setIsFullscreenModalMode callback on change and reduce the amoount of DC apps re-renders\n const isAppMaximizedRef = useRef(isAppMaximized);\n isAppMaximizedRef.current = isAppMaximized;\n\n const [userUnits, setUserUnits] = useState(getUserUnits());\n\n useEffect(() => {\n const unsubscribeFn = subscribeForUserUnitsUpdates(newUserUnits => setUserUnits(newUserUnits));\n\n return () => unsubscribeFn();\n }, []);\n\n const appContextValue = useContext(AppContext);\n const permissionsContextValue = usePermissionsContext();\n\n /*\n What is fullscreen modal mode?\n\n Our apps, are shown in isolated iFrames. Because of it, when an app has some modal\n and opens it - it's opened inside of its iframe, instead of opening at the center of the screen.\n\n To make app modals & other elements be opened at the center of the screen, as if they are not inside of an iframe,\n we use some hacks.\n\n When the app wants to open a fullscreen element, we make its iframe fullscreen, but with transparent background,\n and we set width/height & position of that app iframe to inner app container that is located inside of the iframe.\n So when iframe's fullscreen element is opened, it looks like it's a part of the platform, and the app which shows the element, looks like\n usual, not in fullscreen\n\n So the platform provides this setIsFullscreenModalMode function to DC apps.\n When DC app wants to open a modal that should be opened at the center of the screen - it needs to\n call setIsFullscreenModalMode(true) first. And when it closes the modal - setIsFullscreenModalMode(false)\n\n Two things are important about this\n - all these styles that make this invisible background work should be applied at once\n - enter and exit from the mode, shouldn't trigger even a single re-render, as it may impact\n some elements inside the DC app\n\n There's a second parameter to `setIsFullscreenModalMode`: `isModal`. It should be used when a fullscreen overlay is displayed\n (Modal, for instance) that should cover everything on screen.\n\n What it does - it basically sets the stretched element's z-index to a very high value, so it covers every other UI element in CWF\n */\n\n function handleAppFullscreenTransparentModeExit() {\n onAppFullscreenTransparentMode({ appId: props.app.id, isModeEnabled: false });\n document.body.classList.remove('dc-isolated-app__body-overflow', styles.compensateScroll);\n }\n\n const setIsFullscreenModalMode = useCallback(\n function setIsFullscreenModalMode(nextIsFullscreenModalModeValue, isModal = false) {\n // When an app is already in fullscreen mode, no need to use this\n // invisible fullscreen mode to make elements take the whole screen\n\n if (\n !isIsolationFeatureEnabled ||\n isNonIsolatedApp ||\n (isAppMaximizedRef.current && !fullscreenModeRef.current) ||\n fullscreenModeRef.current === nextIsFullscreenModalModeValue\n ) {\n // Adding modal class if modal is opened when non-modal is already open\n if (isModal && fullscreenModalModeRef.current !== isModal) {\n fullscreenModalModeRef.current = isModal;\n containerRef.current?.classList.add(styles.containerMaximizedTransparentModal);\n }\n\n return;\n }\n\n const classesEditMethod = nextIsFullscreenModalModeValue ? 'add' : 'remove';\n\n containerRef.current?.classList[classesEditMethod](styles.containerMaximizedTransparent);\n\n if (isModal || classesEditMethod === 'remove') {\n containerRef.current?.classList[classesEditMethod](\n styles.containerMaximizedTransparentModal\n );\n }\n\n appIframeDocument.current = containerRef.current?.querySelector(\n `[${APP_IFRAME_ATTRIBUTE}]`\n )?.contentWindow?.document;\n\n const isolatedPageAppContainer = appIframeDocument.current?.getElementById(\n ISOLATED_PAGE_APP_CONTAINER_ID\n );\n\n if (!isolatedPageAppContainer) {\n return;\n }\n\n if (nextIsFullscreenModalModeValue) {\n const { top, left, width, height } = fixedSizeContainerRef.current.getBoundingClientRect();\n\n // We need to directly set inner iFrame container sizes together with DC platform styles\n // as passing this as props and using some effect inside of an iframe\n // results in a slight delay, which looks like a quick layout jump\n isolatedPageAppContainer.setAttribute(\n 'style',\n `\n top: ${top}px;\n left: ${left}px;\n width: ${width}px;\n height: ${height}px;\n position: absolute;\n `\n );\n onAppFullscreenTransparentMode({ appId: props.app.id, isModeEnabled: true });\n const isBodyScrollVisible = window.innerWidth !== document.body.clientWidth;\n document.body.classList.add(\n 'dc-isolated-app__body-overflow',\n isBodyScrollVisible && styles.compensateScroll\n );\n } else {\n isolatedPageAppContainer.setAttribute('style', '');\n handleAppFullscreenTransparentModeExit();\n }\n fullscreenModeRef.current = nextIsFullscreenModalModeValue;\n fullscreenModalModeRef.current = isModal;\n },\n [isIsolationFeatureEnabled, isNonIsolatedApp, isAppMaximizedRef]\n );\n\n useEffect(() => {\n return handleAppFullscreenTransparentModeExit;\n }, []);\n\n useEffect(() => {\n if (isAppMaximized && fullscreenModeRef.current) {\n setIsFullscreenModalMode(false);\n }\n }, [isAppMaximized]);\n\n /**\n * This should be the same function as calling react-intersection-observer's ref setter actually triggers re-render.\n * Which in its turn causes infinite re-render loop.\n */\n const setContainerRefs = useCallback(node => {\n containerRef.current = node;\n setInnerContainerRefFn(node);\n }, []);\n\n return (\n <div\n className={classNames('dc-isolated-app', styles.fixedSizeContainer)}\n ref={fixedSizeContainerRef}\n >\n <div\n ref={setContainerRefs}\n onMouseEnter={onInnerContainerMouseEnter}\n onMouseLeave={onInnerContainerMouseLeave}\n data-testid={`${PAGE_NAME}_${props.app.app.name}`}\n className={classNames(\n styles.container,\n isInsideNewMobileApp && styles.newMobileAppContainer,\n isAppMaximized && styles.containerMaximized\n )}\n >\n <DCAppComponent\n {...props}\n appContextValue={appContextValue}\n devCenterRouter={devCenterRouter}\n globalNotificationToastsAPI={window[Symbol.for('notificationToasts')]}\n globalMixpanelEventTracker={window[Symbol.for('logToMixpanel')]}\n onAppContainerClick={onAppContainerClick}\n onIsMaximizedChange={onIsMaximizedChange}\n permissionsContextValue={permissionsContextValue}\n setIsFullscreenModalMode={setIsFullscreenModalMode}\n userUnits={userUnits}\n />\n </div>\n </div>\n );\n}\n\nDevCenterIsolatedAppComponent.propTypes = {\n app: PropTypes.shape({\n id: PropTypes.number,\n app: PropTypes.shape({\n name: PropTypes.string,\n }),\n }).isRequired,\n currentUser: PropTypes.shape({}).isRequired,\n isIsolationFeatureEnabled: PropTypes.bool,\n onAppContainerClick: PropTypes.func,\n onAppFullscreenTransparentMode: PropTypes.func,\n onAppRemove: PropTypes.func,\n onInnerContainerMouseEnter: PropTypes.func,\n onInnerContainerMouseLeave: PropTypes.func,\n onIsMaximizedChange: PropTypes.func,\n onSettingChange: PropTypes.func,\n onSettingsChange: PropTypes.func,\n setInnerContainerRefFn: PropTypes.func,\n updateCurrentDashboardAppLastAnnotation: PropTypes.func,\n};\n\nDevCenterIsolatedAppComponent.defaultProps = {\n isIsolationFeatureEnabled: false,\n onAppContainerClick: noop,\n onAppFullscreenTransparentMode: noop,\n onAppRemove: noop,\n onInnerContainerMouseEnter: noop,\n onInnerContainerMouseLeave: noop,\n onIsMaximizedChange: noop,\n onSettingChange: noop,\n onSettingsChange: noop,\n setInnerContainerRefFn: noop,\n updateCurrentDashboardAppLastAnnotation: noop,\n};\n\nexport const DevCenterIsolatedApp = withRouter(DevCenterIsolatedAppComponent);\n"],"names":["DevCenterIsolatedAppComponent","_ref","_props$router","_props$app","_props$app2","_props$router2","_props$router2$locati","isIsolationFeatureEnabled","onAppFullscreenTransparentMode","onIsMaximizedChange","onInnerContainerMouseEnter","onInnerContainerMouseLeave","onAppContainerClick","setInnerContainerRefFn","props","_objectWithoutProperties","_excluded","devCenterRouter","useMemo","devCenterUtils","router","location","isNonIsolatedApp","app","package","DCAppComponent","DevCenterAppContainer","IsolatedPage","appIframeDocument","useRef","containerRef","fixedSizeContainerRef","fullscreenModeRef","fullscreenModalModeRef","isAppMaximized","query","id","isAppMaximizedRef","current","_useState","useState","getUserUnits","_useState2","_slicedToArray","userUnits","setUserUnits","useEffect","unsubscribeFn","subscribeForUserUnitsUpdates","newUserUnits","appContextValue","useContext","AppContext","permissionsContextValue","usePermissionsContext","handleAppFullscreenTransparentModeExit","appId","isModeEnabled","document","body","classList","remove","styles","compensateScroll","setIsFullscreenModalMode","useCallback","nextIsFullscreenModalModeValue","_containerRef$current2","_containerRef$current4","_containerRef$current5","_containerRef$current6","_appIframeDocument$cu","isModal","_containerRef$current","add","containerMaximizedTransparentModal","_containerRef$current3","classesEditMethod","containerMaximizedTransparent","querySelector","concat","APP_IFRAME_ATTRIBUTE","contentWindow","isolatedPageAppContainer","getElementById","ISOLATED_PAGE_APP_CONTAINER_ID","_fixedSizeContainerRe","getBoundingClientRect","top","left","width","height","setAttribute","isBodyScrollVisible","window","innerWidth","clientWidth","setContainerRefs","node","_jsx","className","classNames","fixedSizeContainer","ref","children","onMouseEnter","onMouseLeave","PAGE_NAME","name","container","isInsideNewMobileApp","newMobileAppContainer","containerMaximized","_objectSpread","globalNotificationToastsAPI","Symbol","for","globalMixpanelEventTracker","propTypes","PropTypes","shape","number","string","isRequired","currentUser","bool","func","onAppRemove","onSettingChange","onSettingsChange","updateCurrentDashboardAppLastAnnotation","defaultProps","noop","DevCenterIsolatedApp","withRouter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DevCenterIsolatedApp.js","sources":["../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js"],"sourcesContent":["import { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { withRouter } from 'react-router';\nimport { noop } from 'lodash';\nimport PropTypes from 'prop-types';\n\nimport { IsolatedPage, APP_IFRAME_ATTRIBUTE } from './IsolatedPage';\nimport { ISOLATED_PAGE_APP_CONTAINER_ID } from './constants';\n\nimport styles from './DevCenterIsolatedApp.module.css';\n\nimport AppContext from '~/components/DevCenter/AppContext';\nimport { usePermissionsContext } from '~/permissions';\nimport { devcenter as devCenterUtils, getUserUnits, subscribeForUserUnitsUpdates } from '~/utils';\nimport { DevCenterAppContainer } from '~/components/DevCenter';\nimport { getAppVersion } from '~/components/DevCenter/DevCenterAppContainer/utils';\nimport { isInsideNewMobileApp } from '~/utils/mobileDetect';\n\nconst PAGE_NAME = 'DevCenter_AppContainer';\n\nfunction DevCenterIsolatedAppComponent({\n isIsolationFeatureEnabled,\n onAppFullscreenTransparentMode,\n onIsMaximizedChange,\n onInnerContainerMouseEnter,\n onInnerContainerMouseLeave,\n onAppContainerClick,\n setInnerContainerRefFn,\n ...props\n}) {\n const devCenterRouter = useMemo(\n () => devCenterUtils.createDevCenterRouter(props.router),\n [props.router?.location]\n );\n\n const isNonIsolatedApp =\n (devCenterUtils.isCorvaApp(props?.app?.app) &&\n !devCenterUtils.isIsolationEnabledInPackageManifest(props?.app?.package)) ||\n !isIsolationFeatureEnabled;\n\n const DCAppComponent = isNonIsolatedApp ? DevCenterAppContainer : IsolatedPage;\n\n // Key to force iframe recreation when app version changes.\n // This ensures global dependencies are re-initialized for the new version.\n const appKey = props.app?.app?.app_key;\n const appVersion = getAppVersion(props.app);\n const iframeKey = `${appKey}-${appVersion}`;\n\n const appIframeDocument = useRef();\n const containerRef = useRef();\n const fixedSizeContainerRef = useRef();\n const fullscreenModeRef = useRef(false);\n const fullscreenModalModeRef = useRef(false);\n\n const isAppMaximized = devCenterUtils.isAppMaximized(props.router?.location?.query, props.app.id);\n\n // save to ref to not re-create setIsFullscreenModalMode callback on change and reduce the amoount of DC apps re-renders\n const isAppMaximizedRef = useRef(isAppMaximized);\n isAppMaximizedRef.current = isAppMaximized;\n\n const [userUnits, setUserUnits] = useState(getUserUnits());\n\n useEffect(() => {\n const unsubscribeFn = subscribeForUserUnitsUpdates(newUserUnits => setUserUnits(newUserUnits));\n\n return () => unsubscribeFn();\n }, []);\n\n const appContextValue = useContext(AppContext);\n const permissionsContextValue = usePermissionsContext();\n\n /*\n What is fullscreen modal mode?\n\n Our apps, are shown in isolated iFrames. Because of it, when an app has some modal\n and opens it - it's opened inside of its iframe, instead of opening at the center of the screen.\n\n To make app modals & other elements be opened at the center of the screen, as if they are not inside of an iframe,\n we use some hacks.\n\n When the app wants to open a fullscreen element, we make its iframe fullscreen, but with transparent background,\n and we set width/height & position of that app iframe to inner app container that is located inside of the iframe.\n So when iframe's fullscreen element is opened, it looks like it's a part of the platform, and the app which shows the element, looks like\n usual, not in fullscreen\n\n So the platform provides this setIsFullscreenModalMode function to DC apps.\n When DC app wants to open a modal that should be opened at the center of the screen - it needs to\n call setIsFullscreenModalMode(true) first. And when it closes the modal - setIsFullscreenModalMode(false)\n\n Two things are important about this\n - all these styles that make this invisible background work should be applied at once\n - enter and exit from the mode, shouldn't trigger even a single re-render, as it may impact\n some elements inside the DC app\n\n There's a second parameter to `setIsFullscreenModalMode`: `isModal`. It should be used when a fullscreen overlay is displayed\n (Modal, for instance) that should cover everything on screen.\n\n What it does - it basically sets the stretched element's z-index to a very high value, so it covers every other UI element in CWF\n */\n\n function handleAppFullscreenTransparentModeExit() {\n onAppFullscreenTransparentMode({ appId: props.app.id, isModeEnabled: false });\n document.body.classList.remove('dc-isolated-app__body-overflow', styles.compensateScroll);\n }\n\n const setIsFullscreenModalMode = useCallback(\n function setIsFullscreenModalMode(nextIsFullscreenModalModeValue, isModal = false) {\n // When an app is already in fullscreen mode, no need to use this\n // invisible fullscreen mode to make elements take the whole screen\n\n if (\n !isIsolationFeatureEnabled ||\n isNonIsolatedApp ||\n (isAppMaximizedRef.current && !fullscreenModeRef.current) ||\n fullscreenModeRef.current === nextIsFullscreenModalModeValue\n ) {\n // Adding modal class if modal is opened when non-modal is already open\n if (isModal && fullscreenModalModeRef.current !== isModal) {\n fullscreenModalModeRef.current = isModal;\n containerRef.current?.classList.add(styles.containerMaximizedTransparentModal);\n }\n\n return;\n }\n\n const classesEditMethod = nextIsFullscreenModalModeValue ? 'add' : 'remove';\n\n containerRef.current?.classList[classesEditMethod](styles.containerMaximizedTransparent);\n\n if (isModal || classesEditMethod === 'remove') {\n containerRef.current?.classList[classesEditMethod](\n styles.containerMaximizedTransparentModal\n );\n }\n\n appIframeDocument.current = containerRef.current?.querySelector(\n `[${APP_IFRAME_ATTRIBUTE}]`\n )?.contentWindow?.document;\n\n const isolatedPageAppContainer = appIframeDocument.current?.getElementById(\n ISOLATED_PAGE_APP_CONTAINER_ID\n );\n\n if (!isolatedPageAppContainer) {\n return;\n }\n\n if (nextIsFullscreenModalModeValue) {\n const { top, left, width, height } = fixedSizeContainerRef.current.getBoundingClientRect();\n\n // We need to directly set inner iFrame container sizes together with DC platform styles\n // as passing this as props and using some effect inside of an iframe\n // results in a slight delay, which looks like a quick layout jump\n isolatedPageAppContainer.setAttribute(\n 'style',\n `\n top: ${top}px;\n left: ${left}px;\n width: ${width}px;\n height: ${height}px;\n position: absolute;\n `\n );\n onAppFullscreenTransparentMode({ appId: props.app.id, isModeEnabled: true });\n const isBodyScrollVisible = window.innerWidth !== document.body.clientWidth;\n document.body.classList.add(\n 'dc-isolated-app__body-overflow',\n isBodyScrollVisible && styles.compensateScroll\n );\n } else {\n isolatedPageAppContainer.setAttribute('style', '');\n handleAppFullscreenTransparentModeExit();\n }\n fullscreenModeRef.current = nextIsFullscreenModalModeValue;\n fullscreenModalModeRef.current = isModal;\n },\n [isIsolationFeatureEnabled, isNonIsolatedApp, isAppMaximizedRef]\n );\n\n useEffect(() => {\n return handleAppFullscreenTransparentModeExit;\n }, []);\n\n useEffect(() => {\n if (isAppMaximized && fullscreenModeRef.current) {\n setIsFullscreenModalMode(false);\n }\n }, [isAppMaximized]);\n\n /**\n * This should be the same function as calling react-intersection-observer's ref setter actually triggers re-render.\n * Which in its turn causes infinite re-render loop.\n */\n const setContainerRefs = useCallback(node => {\n containerRef.current = node;\n setInnerContainerRefFn(node);\n }, []);\n\n return (\n <div\n className={classNames('dc-isolated-app', styles.fixedSizeContainer)}\n ref={fixedSizeContainerRef}\n >\n <div\n ref={setContainerRefs}\n onMouseEnter={onInnerContainerMouseEnter}\n onMouseLeave={onInnerContainerMouseLeave}\n data-testid={`${PAGE_NAME}_${props.app.app.name}`}\n className={classNames(\n styles.container,\n isInsideNewMobileApp && styles.newMobileAppContainer,\n isAppMaximized && styles.containerMaximized\n )}\n >\n <DCAppComponent\n key={iframeKey}\n {...props}\n appContextValue={appContextValue}\n devCenterRouter={devCenterRouter}\n globalNotificationToastsAPI={window[Symbol.for('notificationToasts')]}\n globalMixpanelEventTracker={window[Symbol.for('logToMixpanel')]}\n onAppContainerClick={onAppContainerClick}\n onIsMaximizedChange={onIsMaximizedChange}\n permissionsContextValue={permissionsContextValue}\n setIsFullscreenModalMode={setIsFullscreenModalMode}\n userUnits={userUnits}\n />\n </div>\n </div>\n );\n}\n\nDevCenterIsolatedAppComponent.propTypes = {\n app: PropTypes.shape({\n id: PropTypes.number,\n app: PropTypes.shape({\n name: PropTypes.string,\n }),\n }).isRequired,\n currentUser: PropTypes.shape({}).isRequired,\n isIsolationFeatureEnabled: PropTypes.bool,\n onAppContainerClick: PropTypes.func,\n onAppFullscreenTransparentMode: PropTypes.func,\n onAppRemove: PropTypes.func,\n onInnerContainerMouseEnter: PropTypes.func,\n onInnerContainerMouseLeave: PropTypes.func,\n onIsMaximizedChange: PropTypes.func,\n onSettingChange: PropTypes.func,\n onSettingsChange: PropTypes.func,\n setInnerContainerRefFn: PropTypes.func,\n updateCurrentDashboardAppLastAnnotation: PropTypes.func,\n};\n\nDevCenterIsolatedAppComponent.defaultProps = {\n isIsolationFeatureEnabled: false,\n onAppContainerClick: noop,\n onAppFullscreenTransparentMode: noop,\n onAppRemove: noop,\n onInnerContainerMouseEnter: noop,\n onInnerContainerMouseLeave: noop,\n onIsMaximizedChange: noop,\n onSettingChange: noop,\n onSettingsChange: noop,\n setInnerContainerRefFn: noop,\n updateCurrentDashboardAppLastAnnotation: noop,\n};\n\nexport const DevCenterIsolatedApp = withRouter(DevCenterIsolatedAppComponent);\n"],"names":["DevCenterIsolatedAppComponent","_ref","_props$router","_props$app","_props$app2","_props$app3","_props$app3$app","_props$router2","_props$router2$locati","isIsolationFeatureEnabled","onAppFullscreenTransparentMode","onIsMaximizedChange","onInnerContainerMouseEnter","onInnerContainerMouseLeave","onAppContainerClick","setInnerContainerRefFn","props","_objectWithoutProperties","_excluded","devCenterRouter","useMemo","devCenterUtils","router","location","isNonIsolatedApp","app","package","DCAppComponent","DevCenterAppContainer","IsolatedPage","appKey","app_key","appVersion","getAppVersion","iframeKey","concat","appIframeDocument","useRef","containerRef","fixedSizeContainerRef","fullscreenModeRef","fullscreenModalModeRef","isAppMaximized","query","id","isAppMaximizedRef","current","_useState","useState","getUserUnits","_useState2","_slicedToArray","userUnits","setUserUnits","useEffect","unsubscribeFn","subscribeForUserUnitsUpdates","newUserUnits","appContextValue","useContext","AppContext","permissionsContextValue","usePermissionsContext","handleAppFullscreenTransparentModeExit","appId","isModeEnabled","document","body","classList","remove","styles","compensateScroll","setIsFullscreenModalMode","useCallback","nextIsFullscreenModalModeValue","_containerRef$current2","_containerRef$current4","_containerRef$current5","_containerRef$current6","_appIframeDocument$cu","isModal","_containerRef$current","add","containerMaximizedTransparentModal","_containerRef$current3","classesEditMethod","containerMaximizedTransparent","querySelector","APP_IFRAME_ATTRIBUTE","contentWindow","isolatedPageAppContainer","getElementById","ISOLATED_PAGE_APP_CONTAINER_ID","_fixedSizeContainerRe","getBoundingClientRect","top","left","width","height","setAttribute","isBodyScrollVisible","window","innerWidth","clientWidth","setContainerRefs","node","_jsx","className","classNames","fixedSizeContainer","ref","children","onMouseEnter","onMouseLeave","PAGE_NAME","name","container","isInsideNewMobileApp","newMobileAppContainer","containerMaximized","_objectSpread","globalNotificationToastsAPI","Symbol","for","globalMixpanelEventTracker","propTypes","PropTypes","shape","number","string","isRequired","currentUser","bool","func","onAppRemove","onSettingChange","onSettingsChange","updateCurrentDashboardAppLastAnnotation","defaultProps","noop","DevCenterIsolatedApp","withRouter"],"mappings":"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"}
|
|
@@ -73,6 +73,7 @@ type SearchProps = {
|
|
|
73
73
|
renderCustomOption?: (option: any, state: any) => ReactNode;
|
|
74
74
|
onInputReset?: () => void;
|
|
75
75
|
isHiddenAllOption?: boolean;
|
|
76
|
+
isHiddenAllLabel?: boolean;
|
|
76
77
|
paperFooter?: ReactNode;
|
|
77
78
|
isOpenedFromParent?: boolean;
|
|
78
79
|
popperProps?: Partial<{
|
|
@@ -90,7 +91,7 @@ type SearchProps = {
|
|
|
90
91
|
shouldResetInputOnAutocompleteChange?: boolean;
|
|
91
92
|
} & Omit<AutocompleteProps<any, false, false, false>, 'value' | 'onChange' | 'options' | 'onClose' | 'disableClearable' | 'onInputChange' | 'getOptionLabel' | 'loading' | 'disabled' | 'multiple' | 'popupIcon' | 'ListboxProps' | 'classes' | 'placeholder' | 'ListboxComponent' | 'onOpen' | 'onFocus' | 'inp' | 'noOptionsText' | 'renderInput' | 'PopperComponent' | 'open' | 'forcePopupIcon' | 'fullWidth' | 'renderGroup' | 'disableCloseOnSelect' | 'renderOption' | 'groupBy' | 'PaperComponent' | 'inputValue' | 'getOptionDisabled' | 'loadingText' | 'InputProps' | 'isNullable'>;
|
|
92
93
|
export declare const Search: {
|
|
93
|
-
({ AutocompleteProps, value, disableClearable, onChange, onInputChange, loading, options, optionSize, placeholder, onGroupChange, disabled, disableResetOnGroupChange, multiple, groups, GroupsComponent, recentSearchesMaxCount, dataStorageKey, RecentSearchesComponent, dataStorage, onInputReset, getOptionLabel, TextFieldProps, ListboxProps, onInputChangeCallback, renderCustomOption, isHiddenAllOption, onOpen, selectedGroup, onGroupReset, onClose, popperProps, paperFooter, noOptionsText, ListboxComponent, isPrioritizedSelectedOptions, isOpenedFromParent, onFocus, InputProps, classes, popupIcon, shouldResetInputOnAutocompleteChange, ...props }: SearchProps): JSX.Element;
|
|
94
|
+
({ AutocompleteProps, value, disableClearable, onChange, onInputChange, loading, options, optionSize, placeholder, onGroupChange, disabled, disableResetOnGroupChange, multiple, groups, GroupsComponent, recentSearchesMaxCount, dataStorageKey, RecentSearchesComponent, dataStorage, onInputReset, getOptionLabel, TextFieldProps, ListboxProps, onInputChangeCallback, renderCustomOption, isHiddenAllOption, isHiddenAllLabel, onOpen, selectedGroup, onGroupReset, onClose, popperProps, paperFooter, noOptionsText, ListboxComponent, isPrioritizedSelectedOptions, isOpenedFromParent, onFocus, InputProps, classes, popupIcon, shouldResetInputOnAutocompleteChange, ...props }: SearchProps): JSX.Element;
|
|
94
95
|
Groups: ({ onGroupClick, groups }: {
|
|
95
96
|
onGroupClick: (id: string) => void;
|
|
96
97
|
groups: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Search.d.ts","sourceRoot":"","sources":["../../../src/components/Search/Search.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Search.d.ts","sourceRoot":"","sources":["../../../src/components/Search/Search.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__rest as o,__assign as n}from'./../../ext-esm/tslib/tslib.es6.js';import{jsx as e,jsxs as t,Fragment as i}from"react/jsx-runtime";import{useState as s,useRef as c,useCallback as r,useEffect as l,useMemo as p,cloneElement as a}from"react";import u from"classnames";import{debounce as d,isEmpty as m,omit as h,noop as v}from"lodash";import{Autocomplete as I}from"@material-ui/lab";import{Popper as f,Tooltip as g,Fade as C,Chip as b,TextField as j,InputAdornment as O,CircularProgress as P,MenuItem as x,Checkbox as A}from"@material-ui/core";import{AccessTime as S}from"@material-ui/icons";import F from"./components/Listbox.js";import G from"./components/Paper.js";import"./components/RecentSearches.js";import N from"./components/Groups.js";import R from"./components/SelectAllListItem.js";import{PaperContext as k}from"./context/index.js";import{useAutocompletOptions as L}from"./effects/useAutocompleteOptions.js";import y from"./styles.js";import{DownOneIcon as T,CloseSmallIcon as D}from"../../icons/iconParkIcons.js";import"../../icons/customIcons/icons/AddMessage.js";import"../../icons/customIcons/icons/Attention.js";import"../../icons/customIcons/icons/Collapse.js";import"../../icons/customIcons/icons/Dashboard.js";import"../../icons/customIcons/icons/Expand.js";import"../../icons/customIcons/icons/FolderClosed.js";import"../../icons/customIcons/icons/FolderClosedFilled.js";import"../../icons/customIcons/icons/FolderOpened.js";import"../../icons/customIcons/icons/GreaterOrEqual.js";import"../../icons/customIcons/icons/LessOrEqual.js";import"../../icons/customIcons/icons/Search.js";import"../../icons/customIcons/icons/SearchOne.js";import"../../icons/customIcons/icons/Wellhub.js";import"../../icons/customIcons/icons/MultiRuler.js";import"../../icons/customIcons/icons/Checkbox.js";import"../../icons/customIcons/icons/CheckboxChecked.js";import"../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../icons/customIcons/icons/Radio.js";import"../../icons/customIcons/icons/RadioChecked.js";import"../../icons/customIcons/icons/SimulFrac.js";import"../../icons/customIcons/icons/ZipperFrac.js";import"../../icons/customIcons/icons/CautionFilled.js";import"../../icons/customIcons/icons/MoreApp.js";import"../../icons/customIcons/icons/Pad.js";import"../../icons/customIcons/icons/DrilloutUnit.js";import"../../icons/customIcons/icons/FracFleet.js";import"../../icons/customIcons/icons/Global.js";import"../../icons/customIcons/icons/Program.js";import"../../icons/customIcons/icons/Rig.js";import"../../icons/customIcons/icons/Well.js";import"../../icons/customIcons/icons/Gap.js";import"../../icons/customIcons/icons/Pin.js";import"../../icons/customIcons/icons/CloseOneFilled.js";import"../../icons/customIcons/icons/AttentionFilled.js";import"../../icons/customIcons/icons/CheckOneFilled.js";import"../../icons/customIcons/icons/Archive.js";import"../../icons/customIcons/icons/ArchiveCancel.js";import"../../icons/customIcons/icons/Unarchive.js";import"../../icons/customIcons/icons/Archived.js";import"../../icons/customIcons/icons/InterventionUnit.js";import"../../icons/customIcons/icons/Lasso.js";import{MiddleTruncatedText as z}from"../MiddleTruncatedText/MiddleTruncatedText.js";import M from"../IconButton/index.js";var B={},E=function(N){var E=N.AutocompleteProps,U=void 0===E?{}:E,_=N.value,w=N.disableClearable,K=void 0!==w&&w,W=N.onChange,H=N.onInputChange,q=void 0===H?null:H,V=N.loading,Z=void 0!==V&&V,J=N.options,Q=void 0===J?[]:J,X=N.optionSize,Y=N.placeholder,$=void 0===Y?"Search...":Y,oo=N.onGroupChange,no=void 0===oo?function(){}:oo,eo=N.disabled,to=void 0!==eo&&eo,io=N.disableResetOnGroupChange,so=N.multiple,co=void 0!==so&&so,ro=N.groups,lo=void 0===ro?[]:ro,po=N.GroupsComponent,ao=void 0===po?null:po,uo=N.recentSearchesMaxCount,mo=void 0===uo?3:uo,ho=N.dataStorageKey,vo=void 0===ho?"Search:recentSearches":ho,Io=N.RecentSearchesComponent,fo=void 0===Io?null:Io,go=N.dataStorage,Co=void 0===go?sessionStorage:go,bo=N.onInputReset,jo=void 0===bo?null:bo,Oo=N.getOptionLabel,Po=void 0===Oo?function(o){return o.label||""}:Oo,xo=N.TextFieldProps,Ao=void 0===xo?{endAdornment:null}:xo,So=N.ListboxProps,Fo=void 0===So?null:So,Go=N.onInputChangeCallback,No=void 0===Go?function(){}:Go,Ro=N.renderCustomOption,ko=void 0===Ro?null:Ro,Lo=N.isHiddenAllOption,yo=void 0!==Lo&&Lo,To=N.onOpen,Do=void 0===To?v:To,zo=N.selectedGroup,Mo=void 0===zo?null:zo,Bo=N.onGroupReset,Eo=void 0===Bo?function(){}:Bo,Uo=N.onClose,_o=void 0===Uo?function(){}:Uo,wo=N.popperProps,Ko=void 0===wo?B:wo,Wo=N.paperFooter,Ho=N.noOptionsText,qo=void 0===Ho?"No Options":Ho,Vo=N.ListboxComponent,Zo=void 0===Vo?F:Vo,Jo=N.isPrioritizedSelectedOptions,Qo=void 0!==Jo&&Jo,Xo=N.isOpenedFromParent,Yo=void 0===Xo?void 0:Xo,$o=N.onFocus,on=void 0===$o?null:$o,nn=N.InputProps,en=void 0===nn?null:nn,tn=N.classes,sn=void 0===tn?{}:tn,cn=N.popupIcon;void 0===cn&&e(T,{theme:"filled",fill:"#BDBDBD",size:16});var rn=N.shouldResetInputOnAutocompleteChange,ln=o(N,["AutocompleteProps","value","disableClearable","onChange","onInputChange","loading","options","optionSize","placeholder","onGroupChange","disabled","disableResetOnGroupChange","multiple","groups","GroupsComponent","recentSearchesMaxCount","dataStorageKey","RecentSearchesComponent","dataStorage","onInputReset","getOptionLabel","TextFieldProps","ListboxProps","onInputChangeCallback","renderCustomOption","isHiddenAllOption","onOpen","selectedGroup","onGroupReset","onClose","popperProps","paperFooter","noOptionsText","ListboxComponent","isPrioritizedSelectedOptions","isOpenedFromParent","onFocus","InputProps","classes","popupIcon","shouldResetInputOnAutocompleteChange"]),pn=s(""),an=pn[0],un=pn[1],dn=s(""),mn=dn[0],hn=dn[1],vn=s(!1),In=vn[0],fn=vn[1],gn=s(!1),Cn=gn[0],bn=gn[1],jn=c(),On=c(),Pn=L({options:Q,value:_,groups:lo,selectedGroup:Mo,isPrioritizedSelectedOptions:Qo}),xn=Pn.autocompleteOptions,An=Pn.isGrouped,Sn=Pn.handleAutocompleOptionsUpdate,Fn=y(),Gn=sn.popper,Nn=sn.listbox,Rn=sn.popupIndicator,kn=sn.popupIndicatorOpen,Ln=sn.groupChip,yn=o(sn,["popper","listbox","popupIndicator","popupIndicatorOpen","groupChip"]),Tn=n({popper:u(Fn.popper,Gn),listbox:u(Fn.listbox,Nn),popupIndicator:u(Fn.popupIndicator,Rn),popupIndicatorOpen:u(Fn.popupIndicatorOpen,kn)},yn),Dn=function(){un(""),null==jo||jo()},zn=r(d((function(o){return hn(o)}),500),[]),Mn=function(o){var n=lo.find((function(n){return n.id===o}));io||Dn(),no(n)},Bn=function(o){an.length||co&&"ArrowLeft"===o.code&&o.stopPropagation()};l((function(){In&&(jn.current.focus(),jn.current.setSelectionRange(an.length,an.length))}));var En=co&&Array.isArray(_)?_.length:null,Un=co&&(null==xn?void 0:xn.length)===En,_n=co&&!!En&&!Un,wn=function(){return Dn(),U.getOptionDisabled&&Un?W(null,[Q[Q.length-1]]):W(null,Un||_n?[]:xn)};l((function(){zn(an),q&&q(an)}),[an]);var Kn=function(o,n){"blur"===n&&(!o.relatedTarget||On.current.contains(o.relatedTarget))||(_o(),fn(!1))},Wn=function(){(null!=Yo?Yo:In)?(fn(!1),_o()):(fn(!0),Do())},Hn=function(o){if(Un&&!yo)return"All";var n=o[0].label||o[0].name||"";return 1===(null==o?void 0:o.length)?e("div",{children:e(z,{children:n})}):"".concat(null==o?void 0:o.length," Selected")},qn=m(xn),Vn=p((function(){return{onOutsideClick:Kn,isEmptyOptions:qn,loading:Z,AllSelectComponent:!yo&&co&&!qn&&e(R,{className:Fn.selectAllCheckbox,onClick:wn,someSelected:_n,allSelected:Un}),RecentSearchesComponent:fo&&e(fo,{title:"Recent Searches",Icon:S,dataStorage:Co,dataStorageKey:vo,maxCount:mo,isHidden:!m(an),onInputChange:function(o){return un(o)},inputValue:mn}),GroupsComponent:!Mo&&An&&ao&&e(ao,{onGroupClick:Mn,groups:lo})}}),[Mo,Z,An,qn,an,yo,co,qn,mn,_o,Kn]),Zn=p((function(){return function(e){var i=e.children,s=e.className,c=o(e,["children","className"]);return t(G,n({},c,{className:s,inputRef:jn,ref:On,children:[i,Wo]}))}}),[Wo]),Jn=p((function(){return function(t){var i=Ko.style,s=o(Ko,["style"]);return e(f,n({},t,{style:n(n({},t.style),i),placement:"bottom-start"},s))}}),[Ko]);return e(k.Provider,{value:Vn,children:e(I,n({},h(ln,["InputProps","isNullable","isOpenedFromParent"]),{PopperComponent:Jn,disableClearable:K,onOpen:function(o){Sn(),fn(!0),Do(o)},onClose:Kn,open:null!=Yo?Yo:In,onChange:function(o,n){co&&!rn||un(""),W(o,n)},forcePopupIcon:U.forcePopupIcon,fullWidth:!0,disabled:to,value:_,classes:Tn,renderInput:function(c){var r,l,p,d,v=s(!1),I=v[0],f=v[1],g=c.InputProps,C=c.inputProps,x=o(c,["InputProps","inputProps"]),A=(null===(d=null===(p=null===(l=g.endAdornment)||void 0===l?void 0:l.props)||void 0===p?void 0:p.children)||void 0===d?void 0:d.length)>1?a(g.endAdornment,{children:g.endAdornment.props.children.slice(1),onMouseDown:function(o){return o.stopPropagation()},onMouseUp:function(o){return o.stopPropagation()}}):g.endAdornment,S=1===En,F=I||In||an.length>0||!m(_)||!m(null==en?void 0:en.startAdornment),G=en||{},N=G.classes,R=void 0===N?{}:N,k=R.input,L=void 0===k?"":k,y=o(R,["input"]),T=G.style,z=o(G,["classes","style"]);return e(j,n({},x,h(Ao,["endAdornment"]),{onBlur:function(){f(!1),S&&bn(!0)},onFocus:function(){f(!0)},onKeyDown:Bn,inputRef:jn,placeholder:$,classes:{root:Fn.searchInput},inputProps:n(n({style:{padding:5}},C),ln.inputProps),InputLabelProps:{shrink:F},InputProps:n(n(n({classes:n({input:u(Cn?Fn.inputShrinked:S&&Fn.inputExpanded,L)},y),style:n({paddingRight:0,paddingBottom:0},T)},g),z),{startAdornment:t(i,{children:[null==en?void 0:en.startAdornment,Mo&&e(b,{className:Fn.selectedGroup,"data-not-migrated-muichip":!0,variant:"outlined",label:t("div",{className:Fn.selectedGroupLabel,children:[Mo.name,e(D,{size:16,id:"removeGroupIcon",className:Fn.removeIcon,onClick:Eo})]})},Mo.id),co&&!m(_)&&e("div",{onClick:Wn,id:"selectedOptions",className:u(Fn.selectedLabel,Cn&&Fn.selectedLabelExpanded),children:Hn(_)})]}),endAdornment:t(i,{children:[t(O,{className:u(Fn.endAdornment,(r={},r[Fn.removeIconWithDropdown]=U.forcePopupIcon,r)),position:"end",children:[Ao.endAdornment,Z&&e(P,{color:"primary",size:20}),I&&an&&!K&&e(M,{"data-testid":"".concat("AutocompleteSearch","_clear_icon"),size:"small",className:Fn.iconButton,onClick:function(){un(""),jo&&jo()},tooltipProps:{title:"Clear"},children:e(D,{size:20,className:Fn.closeIcon})})]}),U.forcePopupIcon&&A]})})}))},loading:Z,options:xn,renderGroup:function(o){var n=o.key,i=o.group,s=o.children;return!i||!m(Mo)&&co?s:t("div",{className:Fn.group,children:[e(g,{title:i,placement:"right",TransitionComponent:C,TransitionProps:{timeout:500},enterDelay:500,children:e(b,{"data-not-migrated-muichip":!0,className:u(Fn.groupChip,Ln),variant:"outlined",label:i})}),s]},n)},disableCloseOnSelect:co,multiple:co,renderOption:ko||function(o,n){var i=o.label,s=void 0===i?"":i,c=o.id;return co?t("div",{className:u(Fn.option,X),"data-testid":"autocompleteOption_".concat(s,"MenuItem"),children:[e(A,{size:"small",disableRipple:!0,className:Fn.checkbox,checked:n.selected}),e(z,{className:Fn.optionLabelContainer,children:s})]},c):e(x,{className:Fn.menuItem,value:c,"data-testid":"autocompleteOption_".concat(s,"MenuItem"),children:e(z,{className:Fn.optionLabelContainer,children:s})},c)},groupBy:An?function(o){return o.group}:null,PaperComponent:Zn,ListboxComponent:Zo,inputValue:an,getOptionLabel:Po,getOptionDisabled:null==U?void 0:U.getOptionDisabled,onInputChange:function(o,n,e){un(io?function(o){return"reset"===e?o:n}:n),No(n,e)},loadingText:e("div",{className:Fn.label,children:"Loading ..."}),noOptionsText:e("div",{className:Fn.label,children:qo}),ListboxProps:Fo,onFocus:function(){bn(!1),null==on||on()}}))})};E.Groups=N;export{E as Search,E as default};
|
|
1
|
+
import{__rest as o,__assign as n}from'./../../ext-esm/tslib/tslib.es6.js';import{jsx as e,jsxs as t,Fragment as i}from"react/jsx-runtime";import{useState as s,useRef as c,useCallback as r,useEffect as l,useMemo as p,cloneElement as a}from"react";import u from"classnames";import{debounce as d,isEmpty as m,omit as h,noop as v}from"lodash";import{Autocomplete as I}from"@material-ui/lab";import{Popper as f,Tooltip as g,Fade as C,Chip as b,TextField as j,InputAdornment as O,CircularProgress as P,MenuItem as A,Checkbox as x}from"@material-ui/core";import{AccessTime as S}from"@material-ui/icons";import F from"./components/Listbox.js";import G from"./components/Paper.js";import"./components/RecentSearches.js";import L from"./components/Groups.js";import N from"./components/SelectAllListItem.js";import{PaperContext as R}from"./context/index.js";import{useAutocompletOptions as k}from"./effects/useAutocompleteOptions.js";import y from"./styles.js";import{DownOneIcon as T,CloseSmallIcon as D}from"../../icons/iconParkIcons.js";import"../../icons/customIcons/icons/AddMessage.js";import"../../icons/customIcons/icons/Attention.js";import"../../icons/customIcons/icons/Collapse.js";import"../../icons/customIcons/icons/Dashboard.js";import"../../icons/customIcons/icons/Expand.js";import"../../icons/customIcons/icons/FolderClosed.js";import"../../icons/customIcons/icons/FolderClosedFilled.js";import"../../icons/customIcons/icons/FolderOpened.js";import"../../icons/customIcons/icons/GreaterOrEqual.js";import"../../icons/customIcons/icons/LessOrEqual.js";import"../../icons/customIcons/icons/Search.js";import"../../icons/customIcons/icons/SearchOne.js";import"../../icons/customIcons/icons/Wellhub.js";import"../../icons/customIcons/icons/MultiRuler.js";import"../../icons/customIcons/icons/Checkbox.js";import"../../icons/customIcons/icons/CheckboxChecked.js";import"../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../icons/customIcons/icons/Radio.js";import"../../icons/customIcons/icons/RadioChecked.js";import"../../icons/customIcons/icons/SimulFrac.js";import"../../icons/customIcons/icons/ZipperFrac.js";import"../../icons/customIcons/icons/CautionFilled.js";import"../../icons/customIcons/icons/MoreApp.js";import"../../icons/customIcons/icons/Pad.js";import"../../icons/customIcons/icons/DrilloutUnit.js";import"../../icons/customIcons/icons/FracFleet.js";import"../../icons/customIcons/icons/Global.js";import"../../icons/customIcons/icons/Program.js";import"../../icons/customIcons/icons/Rig.js";import"../../icons/customIcons/icons/Well.js";import"../../icons/customIcons/icons/Gap.js";import"../../icons/customIcons/icons/Pin.js";import"../../icons/customIcons/icons/CloseOneFilled.js";import"../../icons/customIcons/icons/AttentionFilled.js";import"../../icons/customIcons/icons/CheckOneFilled.js";import"../../icons/customIcons/icons/Archive.js";import"../../icons/customIcons/icons/ArchiveCancel.js";import"../../icons/customIcons/icons/Unarchive.js";import"../../icons/customIcons/icons/Archived.js";import"../../icons/customIcons/icons/InterventionUnit.js";import"../../icons/customIcons/icons/Lasso.js";import{MiddleTruncatedText as z}from"../MiddleTruncatedText/MiddleTruncatedText.js";import M from"../IconButton/index.js";var B={},E=function(L){var E=L.AutocompleteProps,H=void 0===E?{}:E,U=L.value,_=L.disableClearable,w=void 0!==_&&_,K=L.onChange,W=L.onInputChange,q=void 0===W?null:W,V=L.loading,Z=void 0!==V&&V,J=L.options,Q=void 0===J?[]:J,X=L.optionSize,Y=L.placeholder,$=void 0===Y?"Search...":Y,oo=L.onGroupChange,no=void 0===oo?function(){}:oo,eo=L.disabled,to=void 0!==eo&&eo,io=L.disableResetOnGroupChange,so=L.multiple,co=void 0!==so&&so,ro=L.groups,lo=void 0===ro?[]:ro,po=L.GroupsComponent,ao=void 0===po?null:po,uo=L.recentSearchesMaxCount,mo=void 0===uo?3:uo,ho=L.dataStorageKey,vo=void 0===ho?"Search:recentSearches":ho,Io=L.RecentSearchesComponent,fo=void 0===Io?null:Io,go=L.dataStorage,Co=void 0===go?sessionStorage:go,bo=L.onInputReset,jo=void 0===bo?null:bo,Oo=L.getOptionLabel,Po=void 0===Oo?function(o){return o.label||""}:Oo,Ao=L.TextFieldProps,xo=void 0===Ao?{endAdornment:null}:Ao,So=L.ListboxProps,Fo=void 0===So?null:So,Go=L.onInputChangeCallback,Lo=void 0===Go?function(){}:Go,No=L.renderCustomOption,Ro=void 0===No?null:No,ko=L.isHiddenAllOption,yo=void 0!==ko&&ko,To=L.isHiddenAllLabel,Do=void 0!==To&&To,zo=L.onOpen,Mo=void 0===zo?v:zo,Bo=L.selectedGroup,Eo=void 0===Bo?null:Bo,Ho=L.onGroupReset,Uo=void 0===Ho?function(){}:Ho,_o=L.onClose,wo=void 0===_o?function(){}:_o,Ko=L.popperProps,Wo=void 0===Ko?B:Ko,qo=L.paperFooter,Vo=L.noOptionsText,Zo=void 0===Vo?"No Options":Vo,Jo=L.ListboxComponent,Qo=void 0===Jo?F:Jo,Xo=L.isPrioritizedSelectedOptions,Yo=void 0!==Xo&&Xo,$o=L.isOpenedFromParent,on=void 0===$o?void 0:$o,nn=L.onFocus,en=void 0===nn?null:nn,tn=L.InputProps,sn=void 0===tn?null:tn,cn=L.classes,rn=void 0===cn?{}:cn,ln=L.popupIcon;void 0===ln&&e(T,{theme:"filled",fill:"#BDBDBD",size:16});var pn=L.shouldResetInputOnAutocompleteChange,an=o(L,["AutocompleteProps","value","disableClearable","onChange","onInputChange","loading","options","optionSize","placeholder","onGroupChange","disabled","disableResetOnGroupChange","multiple","groups","GroupsComponent","recentSearchesMaxCount","dataStorageKey","RecentSearchesComponent","dataStorage","onInputReset","getOptionLabel","TextFieldProps","ListboxProps","onInputChangeCallback","renderCustomOption","isHiddenAllOption","isHiddenAllLabel","onOpen","selectedGroup","onGroupReset","onClose","popperProps","paperFooter","noOptionsText","ListboxComponent","isPrioritizedSelectedOptions","isOpenedFromParent","onFocus","InputProps","classes","popupIcon","shouldResetInputOnAutocompleteChange"]),un=s(""),dn=un[0],mn=un[1],hn=s(""),vn=hn[0],In=hn[1],fn=s(!1),gn=fn[0],Cn=fn[1],bn=s(!1),jn=bn[0],On=bn[1],Pn=c(),An=c(),xn=k({options:Q,value:U,groups:lo,selectedGroup:Eo,isPrioritizedSelectedOptions:Yo}),Sn=xn.autocompleteOptions,Fn=xn.isGrouped,Gn=xn.handleAutocompleOptionsUpdate,Ln=y(),Nn=rn.popper,Rn=rn.listbox,kn=rn.popupIndicator,yn=rn.popupIndicatorOpen,Tn=rn.groupChip,Dn=o(rn,["popper","listbox","popupIndicator","popupIndicatorOpen","groupChip"]),zn=n({popper:u(Ln.popper,Nn),listbox:u(Ln.listbox,Rn),popupIndicator:u(Ln.popupIndicator,kn),popupIndicatorOpen:u(Ln.popupIndicatorOpen,yn)},Dn),Mn=function(){mn(""),null==jo||jo()},Bn=r(d((function(o){return In(o)}),500),[]),En=function(o){var n=lo.find((function(n){return n.id===o}));io||Mn(),no(n)},Hn=function(o){dn.length||co&&"ArrowLeft"===o.code&&o.stopPropagation()};l((function(){gn&&(Pn.current.focus(),Pn.current.setSelectionRange(dn.length,dn.length))}));var Un=co&&Array.isArray(U)?U.length:null,_n=co&&(null==Sn?void 0:Sn.length)===Un,wn=co&&!!Un&&!_n,Kn=function(){return Mn(),H.getOptionDisabled&&_n?K(null,[Q[Q.length-1]]):K(null,_n||wn?[]:Sn)};l((function(){Bn(dn),q&&q(dn)}),[dn]);var Wn=function(o,n){"blur"===n&&(!o.relatedTarget||An.current.contains(o.relatedTarget))||(wo(),Cn(!1))},qn=function(){(null!=on?on:gn)?(Cn(!1),wo()):(Cn(!0),Mo())},Vn=function(o){if(_n&&!yo&&!Do)return"All";var n=o[0].label||o[0].name||"";return 1===(null==o?void 0:o.length)?e("div",{children:e(z,{children:n})}):"".concat(null==o?void 0:o.length," Selected")},Zn=m(Sn),Jn=p((function(){return{onOutsideClick:Wn,isEmptyOptions:Zn,loading:Z,AllSelectComponent:!yo&&co&&!Zn&&e(N,{className:Ln.selectAllCheckbox,onClick:Kn,someSelected:wn,allSelected:_n}),RecentSearchesComponent:fo&&e(fo,{title:"Recent Searches",Icon:S,dataStorage:Co,dataStorageKey:vo,maxCount:mo,isHidden:!m(dn),onInputChange:function(o){return mn(o)},inputValue:vn}),GroupsComponent:!Eo&&Fn&&ao&&e(ao,{onGroupClick:En,groups:lo})}}),[Eo,Z,Fn,Zn,dn,yo,co,Zn,vn,wo,Wn]),Qn=p((function(){return function(e){var i=e.children,s=e.className,c=o(e,["children","className"]);return t(G,n({},c,{className:s,inputRef:Pn,ref:An,children:[i,qo]}))}}),[qo]),Xn=p((function(){return function(t){var i=Wo.style,s=o(Wo,["style"]);return e(f,n({},t,{style:n(n({},t.style),i),placement:"bottom-start"},s))}}),[Wo]);return e(R.Provider,{value:Jn,children:e(I,n({},h(an,["InputProps","isNullable","isOpenedFromParent"]),{PopperComponent:Xn,disableClearable:w,onOpen:function(o){Gn(),Cn(!0),Mo(o)},onClose:Wn,open:null!=on?on:gn,onChange:function(o,n){co&&!pn||mn(""),K(o,n)},forcePopupIcon:H.forcePopupIcon,fullWidth:!0,disabled:to,value:U,classes:zn,renderInput:function(c){var r,l,p,d,v=s(!1),I=v[0],f=v[1],g=c.InputProps,C=c.inputProps,A=o(c,["InputProps","inputProps"]),x=(null===(d=null===(p=null===(l=g.endAdornment)||void 0===l?void 0:l.props)||void 0===p?void 0:p.children)||void 0===d?void 0:d.length)>1?a(g.endAdornment,{children:g.endAdornment.props.children.slice(1),onMouseDown:function(o){return o.stopPropagation()},onMouseUp:function(o){return o.stopPropagation()}}):g.endAdornment,S=1===Un,F=I||gn||dn.length>0||!m(U)||!m(null==sn?void 0:sn.startAdornment),G=sn||{},L=G.classes,N=void 0===L?{}:L,R=N.input,k=void 0===R?"":R,y=o(N,["input"]),T=G.style,z=o(G,["classes","style"]);return e(j,n({},A,h(xo,["endAdornment"]),{onBlur:function(){f(!1),S&&On(!0)},onFocus:function(){f(!0)},onKeyDown:Hn,inputRef:Pn,placeholder:$,classes:{root:Ln.searchInput},inputProps:n(n({style:{padding:5}},C),an.inputProps),InputLabelProps:{shrink:F},InputProps:n(n(n({classes:n({input:u(jn?Ln.inputShrinked:S&&Ln.inputExpanded,k)},y),style:n({paddingRight:0,paddingBottom:0},T)},g),z),{startAdornment:t(i,{children:[null==sn?void 0:sn.startAdornment,Eo&&e(b,{className:Ln.selectedGroup,"data-not-migrated-muichip":!0,variant:"outlined",label:t("div",{className:Ln.selectedGroupLabel,children:[Eo.name,e(D,{size:16,id:"removeGroupIcon",className:Ln.removeIcon,onClick:Uo})]})},Eo.id),co&&!m(U)&&e("div",{onClick:qn,id:"selectedOptions",className:u(Ln.selectedLabel,jn&&Ln.selectedLabelExpanded),children:Vn(U)})]}),endAdornment:t(i,{children:[t(O,{className:u(Ln.endAdornment,(r={},r[Ln.removeIconWithDropdown]=H.forcePopupIcon,r)),position:"end",children:[xo.endAdornment,Z&&e(P,{color:"primary",size:20}),I&&dn&&!w&&e(M,{"data-testid":"".concat("AutocompleteSearch","_clear_icon"),size:"small",className:Ln.iconButton,onClick:function(){mn(""),jo&&jo()},tooltipProps:{title:"Clear"},children:e(D,{size:20,className:Ln.closeIcon})})]}),H.forcePopupIcon&&x]})})}))},loading:Z,options:Sn,renderGroup:function(o){var n=o.key,i=o.group,s=o.children;return!i||!m(Eo)&&co?s:t("div",{className:Ln.group,children:[e(g,{title:i,placement:"right",TransitionComponent:C,TransitionProps:{timeout:500},enterDelay:500,children:e(b,{"data-not-migrated-muichip":!0,className:u(Ln.groupChip,Tn),variant:"outlined",label:i})}),s]},n)},disableCloseOnSelect:co,multiple:co,renderOption:Ro||function(o,n){var i=o.label,s=void 0===i?"":i,c=o.id;return co?t("div",{className:u(Ln.option,X),"data-testid":"autocompleteOption_".concat(s,"MenuItem"),children:[e(x,{size:"small",disableRipple:!0,className:Ln.checkbox,checked:n.selected}),e(z,{className:Ln.optionLabelContainer,children:s})]},c):e(A,{className:Ln.menuItem,value:c,"data-testid":"autocompleteOption_".concat(s,"MenuItem"),children:e(z,{className:Ln.optionLabelContainer,children:s})},c)},groupBy:Fn?function(o){return o.group}:null,PaperComponent:Qn,ListboxComponent:Qo,inputValue:dn,getOptionLabel:Po,getOptionDisabled:null==H?void 0:H.getOptionDisabled,onInputChange:function(o,n,e){mn(io?function(o){return"reset"===e?o:n}:n),Lo(n,e)},loadingText:e("div",{className:Ln.label,children:"Loading ..."}),noOptionsText:e("div",{className:Ln.label,children:Zo}),ListboxProps:Fo,onFocus:function(){On(!1),null==en||en()}}))})};E.Groups=L;export{E as Search,E as default};
|
|
2
2
|
//# sourceMappingURL=Search.js.map
|