@corva/ui 3.50.0-0 → 3.50.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.
Files changed (33) hide show
  1. package/cjs-bundle/components/OffsetWellPickerV5/OffsetWellPickerV5.js +1 -1
  2. package/cjs-bundle/components/OffsetWellPickerV5/OffsetWellPickerV5.js.map +1 -1
  3. package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/AdvancedSearch/AdvancedSearch.js +1 -1
  4. package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/AdvancedSearch/AdvancedSearch.js.map +1 -1
  5. package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/AdvancedSearch/AssetResultSection.js +1 -1
  6. package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/AdvancedSearch/AssetResultSection.js.map +1 -1
  7. package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/AdvancedSearch/AutoCompleteAssetSearch.js +1 -1
  8. package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/AdvancedSearch/AutoCompleteAssetSearch.js.map +1 -1
  9. package/cjs-bundle/components/OffsetWellPickerV5/effects/useAssetsData.js +1 -1
  10. package/cjs-bundle/components/OffsetWellPickerV5/effects/useAssetsData.js.map +1 -1
  11. package/components/OffsetWellPickerV5/OffsetWellPickerV5.d.ts.map +1 -1
  12. package/components/OffsetWellPickerV5/OffsetWellPickerV5.js +1 -1
  13. package/components/OffsetWellPickerV5/OffsetWellPickerV5.js.map +1 -1
  14. package/components/OffsetWellPickerV5/components/OffsetWellsTable/AdvancedSearch/AdvancedSearch.d.ts +5 -1
  15. package/components/OffsetWellPickerV5/components/OffsetWellsTable/AdvancedSearch/AdvancedSearch.d.ts.map +1 -1
  16. package/components/OffsetWellPickerV5/components/OffsetWellsTable/AdvancedSearch/AdvancedSearch.js +1 -1
  17. package/components/OffsetWellPickerV5/components/OffsetWellsTable/AdvancedSearch/AdvancedSearch.js.map +1 -1
  18. package/components/OffsetWellPickerV5/components/OffsetWellsTable/AdvancedSearch/AssetResultSection.d.ts +7 -3
  19. package/components/OffsetWellPickerV5/components/OffsetWellsTable/AdvancedSearch/AssetResultSection.d.ts.map +1 -1
  20. package/components/OffsetWellPickerV5/components/OffsetWellsTable/AdvancedSearch/AssetResultSection.js +1 -1
  21. package/components/OffsetWellPickerV5/components/OffsetWellsTable/AdvancedSearch/AssetResultSection.js.map +1 -1
  22. package/components/OffsetWellPickerV5/components/OffsetWellsTable/AdvancedSearch/AutoCompleteAssetSearch.d.ts +5 -1
  23. package/components/OffsetWellPickerV5/components/OffsetWellsTable/AdvancedSearch/AutoCompleteAssetSearch.d.ts.map +1 -1
  24. package/components/OffsetWellPickerV5/components/OffsetWellsTable/AdvancedSearch/AutoCompleteAssetSearch.js +1 -1
  25. package/components/OffsetWellPickerV5/components/OffsetWellsTable/AdvancedSearch/AutoCompleteAssetSearch.js.map +1 -1
  26. package/components/OffsetWellPickerV5/effects/useAssetsData.d.ts +1 -1
  27. package/components/OffsetWellPickerV5/effects/useAssetsData.d.ts.map +1 -1
  28. package/components/OffsetWellPickerV5/effects/useAssetsData.js +1 -1
  29. package/components/OffsetWellPickerV5/effects/useAssetsData.js.map +1 -1
  30. package/mcp-server/server.mjs +723 -34
  31. package/mcp-server/server.mjs.map +1 -1
  32. package/package.json +9 -1
  33. package/tsconfig.tsbuildinfo +1 -1
@@ -1,2 +1,2 @@
1
- import o from"@babel/runtime/helpers/slicedToArray";import{useRef as s,useMemo as t}from"react";import e from"classnames";import n from"prop-types";import{startCase as i,isEmpty as r}from"lodash";import{makeStyles as p,List as c,ListSubheader as m,Chip as a,ListItem as l,Checkbox as d,Typography as u}from"@material-ui/core";import{StatusOptions as j}from"../../../constants.js";import{SEARCH_CATEGORIES as A}from"./constants.js";import"../../../../../componentsV2/Text/Text.js";import"../../../../../componentsV2/Grid/Grid.js";import"../../../../../componentsV2/Grid/Cell.js";import"@babel/runtime/helpers/defineProperty";import{jsxs as V,jsx as h}from"react/jsx-runtime";import"../../../../../componentsV2/Header/Header.scss.js";import"../../../../../componentsV2/Button/Button.js";import"../../../../../componentsV2/ButtonIcon/ButtonIcon.js";import{Tooltip as C}from"../../../../../componentsV2/Tooltip/Tooltip.js";import"../../../../../componentsV2/Popover/Popover.js";import"../../../../../componentsV2/Radio/Radio.js";import"@babel/runtime/helpers/objectWithoutProperties";import"../../../../../componentsV2/RadioAndCheckboxGroup/RadioAndCheckboxGroup.scss.js";import"../../../../../componentsV2/Checkbox/Checkbox.js";import"@babel/runtime/helpers/toConsumableArray";import"../../../../../componentsV2/TextInput/TextInput.js";import"../../../../../componentsV2/Label/Label.js";import"../../../../../componentsV2/TextEndTruncated/TextEndTruncated.scss.js";import{TextMiddleTruncated as g}from"../../../../../componentsV2/TextMiddleTruncated/TextMiddleTruncated.js";import"../../../../../componentsV2/TextMiddleTruncated/TextMiddleTruncated.constants.js";import"../../../../../componentsV2/TextLink/TextLink.js";import{LoaderCircular as I}from"../../../../../componentsV2/LoaderCircular/LoaderCircular.js";import"../../../../../componentsV2/Chip/Chip.js";import"../../../../../componentsV2/ChipAlert/ChipAlert.js";import"../../../../../componentsV2/ChipIndicator/ChipIndicator.js";import"../../../../../componentsV2/Avatar/Avatar.js";import"../../../../../componentsV2/AvatarGroup/AvatarGroup.js";import"@material-ui/lab";import"../../../../../componentsV2/ToggleButtons/ToggleButtons.scss.js";import"../../../../../componentsV2/Paper/Paper.js";import"../../../../../componentsV2/ModalWindow/ModalWindow.js";import"uuid";import"../../../../DevCenter/DevCenterAppContainer/components/DcFullscreenElemsCoordinatorProvider/DcFullscreenElemsCoordinatorProvider.js";import"../../../../DevCenter/DevCenterAppContainer/components/DcFullscreenElemsCoordinatorProvider/IsInsideDcFullscreenElemProvider.js";import"../../../../DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider/IsInsideIsolatedDcAppProvider.js";import"../../../../../componentsV2/Modal/Modal.scss.js";import"../../../../../componentsV2/Menu/Menu.js";import"@icon-park/react/es/all";import"../../../../../icons/IconParkProvider.js";import"../../../../../icons/customIcons/icons/AddMessage.js";import"../../../../../icons/customIcons/icons/Attention.js";import"../../../../../icons/customIcons/icons/Collapse.js";import"../../../../../icons/customIcons/icons/Dashboard.js";import"../../../../../icons/customIcons/icons/Expand.js";import"../../../../../icons/customIcons/icons/FolderClosed.js";import"../../../../../icons/customIcons/icons/FolderClosedFilled.js";import"../../../../../icons/customIcons/icons/FolderOpened.js";import"../../../../../icons/customIcons/icons/GreaterOrEqual.js";import"../../../../../icons/customIcons/icons/LessOrEqual.js";import"../../../../../icons/customIcons/icons/Search.js";import"../../../../../icons/customIcons/icons/SearchOne.js";import"../../../../../icons/customIcons/icons/Wellhub.js";import"../../../../../icons/customIcons/icons/MultiRuler.js";import"../../../../../icons/customIcons/icons/Checkbox.js";import"../../../../../icons/customIcons/icons/CheckboxChecked.js";import"../../../../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../../../../icons/customIcons/icons/Radio.js";import"../../../../../icons/customIcons/icons/RadioChecked.js";import"../../../../../icons/customIcons/icons/SimulFrac.js";import"../../../../../icons/customIcons/icons/ZipperFrac.js";import"../../../../../icons/customIcons/icons/CautionFilled.js";import"../../../../../icons/customIcons/icons/MoreApp.js";import"../../../../../icons/customIcons/icons/Pad.js";import"../../../../../icons/customIcons/icons/DrilloutUnit.js";import"../../../../../icons/customIcons/icons/FracFleet.js";import"../../../../../icons/customIcons/icons/Global.js";import"../../../../../icons/customIcons/icons/Program.js";import"../../../../../icons/customIcons/icons/Rig.js";import"../../../../../icons/customIcons/icons/Well.js";import"../../../../../icons/customIcons/icons/Gap.js";import"../../../../../icons/customIcons/icons/Pin.js";import"../../../../../icons/customIcons/icons/CloseOneFilled.js";import"../../../../../icons/customIcons/icons/AttentionFilled.js";import"../../../../../icons/customIcons/icons/CheckOneFilled.js";import"../../../../../icons/customIcons/icons/Archive.js";import"../../../../../icons/customIcons/icons/ArchiveCancel.js";import"../../../../../icons/customIcons/icons/Unarchive.js";import"../../../../../icons/customIcons/icons/Archived.js";import"../../../../../icons/customIcons/icons/InterventionUnit.js";import"../../../../../icons/customIcons/icons/CloudDelete.js";import"../../../../../icons/customIcons/icons/Lasso.js";import"../../../../../icons/customIcons/icons/Radius.js";import"../../../../../componentsV2/utils.js";import"../../../../../componentsV2/Hint/Hint.scss.js";import"../../../../../componentsV2/Counter/Counter.js";import"../../../../../componentsV2/BadgeBase/BadgeBase.scss.js";import"../../../../../componentsV2/TemplatesControl/TemplatesControl.js";import"zustand";import"../../../../../componentsV2/TemplatesControl/utils.js";import"../../../../../componentsV2/TemplatesControl/icons/folder/index.js";import"../../../../../componentsV2/TemplatesControl/Store/utils.js";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/regenerator";import"../../../../../componentsV2/TemplatesControl/types.js";import"../../../../../utils/index.js";import"../../../../../clients/jsonApi/index.js";import"../../../../../permissions/PermissionsContext.js";import"../../../../../permissions/constants/index.js";import"../../../../../permissions/withPermissionsHOC.js";import"../../../../../permissions/ProvidePermissions.js";import"../../../../../componentsV2/BadgeDot/BadgeDot.scss.js";import"../../../../../componentsV2/LoaderLinear/LoaderLinear.scss.js";import"../../../../../componentsV2/LoaderLogo/LoaderLogo.constants.js";import"../../../../../componentsV2/LoaderLogo/LoaderLogo.scss.js";import"../../../../../componentsV2/Switch/Switch.js";import"../../../../../componentsV2/Tabs/Tabs.js";import"../../../../../componentsV2/EmptyState/EmptyState.scss.js";import"../../../../../componentsV2/FileIcon/FileIcon.js";import"../../../../../componentsV2/Tag/Tag.js";import"react-dropzone";import"../../../../../componentsV2/FilesDropzone/FilesDropzone.scss.js";import"../../../../../componentsV2/FilesLoader/FilesLoader.scss.js";import"../../../../../componentsV2/FilesProcessor/FilesProcessor.scss.js";import"../../../../../componentsV2/Skeleton/Skeleton.scss.js";import"../../../../../utils/main.js";import"../../../../../componentsV2/CopyToClipboard/CopyToClipboard.scss.js";import"../../../../../componentsV2/Stepper/Step/Step.scss.js";import"../../../../../componentsV2/Stepper/Stepper.scss.js";import"../../../../../componentsV2/ButtonLive/ButtonLive.js";import"../../../../../componentsV2/ButtonText/ButtonText.js";import"../../../../../componentsV2/IndicatorLive/IndicatorLive.js";import"../../../../../componentsV2/Accordion/Accordion.scss.js";import"../../../../../componentsV2/Breadcrumbs/Breadcrumbs.scss.js";import"../../../../../componentsV2/BadgeComment/BadgeComment.js";import"../../../../../componentsV2/AppContainer/AppContainer.js";import"../../../../../componentsV2/AppContainer/AppContainer.constants.js";import"../../../../../componentsV2/AppFooter/AppFooter.js";import"immutable";import"../../../../../constants/goals.js";import"../../../../../constants/segment.js";import"../../../../../constants/alerts.js";import"../../../../../constants/apps.js";import"../../../../../constants/drillstring.js";import"../../../../../constants/completion.js";import"../../../../../constants/appPackages.js";import"../../../../../constants/notifications.js";import"../../../../../constants/feed.js";import"../../../../../constants/bha.js";import"../../../../../constants/corvaCompanyId.js";import"../../../../GradientManager/configuration/constants.js";import"../../../../../componentsV2/AppCommonsProvider/AppCommonsContext.js";import"../../../../../componentsV2/AppHeader/AppHeader.constants.js";import"../../../../../componentsV2/AppHeader/AppBadge/AppBadge.scss.js";import"../../../../DevCenter/DevCenterRouterContext/DevCenterRouterContext.js";import"../../../../DevCenter/DevCenterRouterContext/UniversalLink/UniversalLink.js";import"react-router";import"../../../../../componentsV2/AppHeader/AppAssets/utils.js";import"../../../../../componentsV2/AppHeader/AppAssets/AppAssets.scss.js";import"../../../../PadModeSelect/PadModeSelect.js";import"../../../../../componentsV2/AppHeader/PadMode/PadMode.scss.js";import"../../../../../constants/streamSourceType.js";import"../../../../../componentsV2/PadModeSelect/PadModeSelect.js";import"../../../../../componentsV2/PadModeSelect/PadModeSelect.constants.js";import"../../../../../componentsV2/AppCommonsProvider/AppCommonsProvider.js";import"../../../../../componentsV2/AppHeader/V3/VersionSelect/VersionSelect.js";import"../../../../../componentsV2/UniversalLink/UniversalLink.scss.js";import"../../../../../componentsV2/AppHeader/V3/AssetChips/AssetChips.scss.js";import"moment";import"../../../../../componentsV2/AppHeader/V3/DqStatusIcon/DqStatusIcon.js";import"../../../../../componentsV2/AppHeader/V3/DqStatusIcon/DqStatusIcon.constants.js";import"../../../../../componentsV2/AppFooter/DqPopover/DqStatusIcon/DqStatusIcon.js";import"../../../../../componentsV2/AppDqPopover/DqAlertTooltip/DqAlertTooltip.scss.js";import"../../../../../componentsV2/AppDqPopover/DqAlert/DqAlert.scss.js";import"../../../../../componentsV2/AppDqPopover/DqAsset/DqAsset.scss.js";import"../../../../../componentsV2/AppDqPopover/AppDqPopover.scss.js";import"../../../../AppIcon/AppIcon.js";import"../../../../../utils/getSingleAsset.js";import"../../../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorChip/AssetSelectorChip.js";import"../../../../../componentsV2/AppHeader/V3/AssetSelector/constants.js";import"../../../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorSelect/AssetSelectorSelect.scss.js";import"../../../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorSelect/loadAssets.js";import"../../../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelector.scss.js";import"../../../../../clients/subscriptions/constants.js";import"querystring";import"uuid/v1";import"../../../../../clients/subscriptions.v1.js";import"../../../../../clients/subscriptions/subscriptions-client.factory.js";import"jsona";import"../../../../../utils/env.js";import"../../../../StatusBadge/constants.js";import"lodash/set";import"lodash/get";import"lodash/unset";import"../../../../../clients/api/apiCore.js";import"../../../../../clients/constants.js";import"../../../../../clients/sso/auth0.js";import"../../../../../clients/sso/oauth2.js";import"lodash/isEmpty";import"lodash/sortBy";import"../../../../DevCenter/DevCenterAppContainer/components/CommentsSwitch/CommentsSwitchContext.js";import"../../../../../componentsV2/AppHeader/V3/AppTitle/AppTitle.constants.js";import"../../../../../componentsV2/AppContainer/headerCommon.scss.js";import"../../../../../componentsV2/AppHeader/V3/AppTitle/AppTitle.scss.js";import"../../../../../componentsV2/AppHeader/V3/constants.scss.js";import"@babel/runtime/helpers/typeof";import"../../../../../componentsV2/AppHeader/V3/SettingsButton/SettingsButton.js";import"../../../../../componentsV2/AppHeader/V3/SettingsButton/SettingsButton.constants.js";import"../../../../../componentsV2/AppSettings/AppSettings.js";import"../../../../../componentsV2/AppSettings/AppSettings.constants.js";import"../../../../../componentsV2/AppSettings/AppSettingsPinningContext.js";import"../../../../../componentsV2/AppSizeProvider/AppSizeProvider.js";import"../../../../../componentsV2/AppHeader/V3/Actions/Actions.constants.js";import"../../../../../componentsV2/AppHeader/V3/Actions/Actions.scss.js";import"../../../../../componentsV2/AppHeader/V3/AppHeaderV3.scss.js";import"../../../../../componentsV2/AppHeader/AppHeader.scss.js";import"../../../../../componentsV2/OffsetWellsButton/OffsetWellsButton.js";import"../../../../../componentsV2/Autocomplete/Autocomplete.scss.js";import"../../../../../componentsV2/Menu/MenuItem/MenuItem.js";import"../../../../../componentsV2/Autocomplete/AutocompleteListBox.js";import"../../../../../componentsV2/AppSettingsDivider/AppSettingsDivider.scss.js";import"../../../../../componentsV2/WellArchivedMessage/WellArchivedMessage.js";import"../../../../../componentsV2/DatePicker/DatePicker.js";import"../../../../../componentsV2/DragHandle/DragHandle.js";import"../../../../../componentsV2/CompletionsOffsetWellPicker/CompletionsOffsetWellPicker.js";import"../../../../../componentsV2/Slider/constants.js";import"../../../../../componentsV2/Slider/components/SliderThumb.js";import"../../../../../componentsV2/Slider/Slider.scss.js";var v=p((function(o){return{assetListWrapper:{margin:"8px 0",flex:1},assetListContainer:{maxHeight:"350px",backgroundColor:o.palette.background.paper,position:"relative",overflow:"auto"},listSection:{backgroundColor:"inherit"},ul:{backgroundColor:"inherit",padding:0},listGutters:{padding:"2px 8px"},assetTypeSubheaderChip:{height:"24px",color:o.palette.primary.text6},assetItemTextRoot:{minWidth:"300px"},assetItemTextPrimary:{overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},loadingInfo:{textAlign:"center",fontSize:"12px",lineHeight:"17px",color:o.palette.primary.text8},empty:{color:o.palette.primary.text6,fontSize:"12px",fontStyle:"italic",marginLeft:"8px"},menuItem:{display:"flex",alignItems:"center",justifyContent:"flex-start",width:"100%",gap:"8px"},allMenuItem:{boxShadow:"inset 0px -1px 0px rgba(255, 255, 255, 0.25)"},statusWrapper:{display:"flex",alignItems:"center",width:"102px",flexShrink:0},status:{width:"8px",height:"8px",marginRight:"8px",borderRadius:"50%",cursor:"default"},controlWrapper:{width:40,height:40,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},assetNameWrapper:{flexGrow:1,overflow:"hidden"}}})),S=function(n){var p=n.subjectWellId,S=n.assetType,b=n.loading,f=n.groupedAssets,x=n.hasMore,T=n.onClickAsset,P=n.onClickAllAsset,D=n.onScrollReached,k=n.loadingAssetIds,y=v(),H=s(null),L=t((function(){if(1===f.length){var o=f[0][1].filter((function(o){return!o.disabledReason})),s=o.filter((function(o){return o.checked})).length;return[s>0&&o.length!==s,o.length>0&&s===o.length]}return[!1,!1]}),[f]),M=o(L,2),R=M[0],B=M[1];return V("div",{className:y.assetListWrapper,children:[V(c,{className:y.assetListContainer,subheader:h("li",{}),onScroll:function(o){var s=o.target,t=s.scrollHeight,e=s.scrollTop,n=s.offsetHeight;t!==n&&(Math.abs(t-(e+n))<1&&x&&D("bottom"))},ref:H,children:[f.map((function(s){var t=o(s,2),n=t[0],r=t[1];return h("li",{className:y.listSection,children:V("ul",{className:y.ul,children:[!S&&h(m,{classes:{gutters:y.listGutters},children:h(a,{className:y.assetTypeSubheaderChip,variant:"outlined",label:A[n].labelPlural},n)}),S&&h(l,{button:!0,classes:{gutters:y.listGutters},onClick:function(){return P(!B,n)},children:h("div",{className:e(y.menuItem,y.allMenuItem),children:V("div",{children:[h(d,{checked:B,indeterminate:R,style:{marginRight:8}}),"All"]})})}),r.map((function(o){var s,t=o.type===A.well.name?!o.visibility.includes("visible")||!o.redirectAssetId||o.redirectAssetId===p:!!o.disabledReason,e="item-".concat(n,"-").concat(o.asset_id||o.id),r=h(l,{"data-testid":"".concat("AssetResultSection","_item_").concat(o.name,"MenuItem"),button:!0,classes:{gutters:y.listGutters},disabled:t,onClick:function(){return T(o,n)},children:V("div",{className:y.menuItem,children:[h("div",{className:y.controlWrapper,children:null!=k&&k.includes(o.redirectAssetId)?h(I,{size:"small"}):h(d,{checked:o.checked,indeterminate:o.indeterminate})}),h("div",{className:y.assetNameWrapper,children:h(g,{children:o.name})}),V("div",{className:y.statusWrapper,children:[h("div",{className:y.status,style:{background:null===(s=j.find((function(s){return s.value===o.status})))||void 0===s?void 0:s.color}}),i(o.status)]})]})},e);return o.disabledReason?h(C,{title:o.disabledReason,children:h("span",{children:r})},e):r}))]})},"section-".concat(n))})),!b&&r(f)&&h("div",{className:y.empty,children:"Your search did not match any Asset Name"})]}),b&&h(u,{"data-testid":"".concat("AssetResultSection","_loading"),className:y.loadingInfo,children:"Loading..."})]})};S.propTypes={subjectWellId:n.number.isRequired,assetType:n.string.isRequired,loading:n.bool.isRequired,groupedAssets:n.arrayOf(n.shape({})).isRequired,hasMore:n.bool.isRequired,onClickAsset:n.func.isRequired,onClickAllAsset:n.func.isRequired,onScrollReached:n.func.isRequired,loadingAssetIds:n.arrayOf(n.number)},S.defaultProps={loadingAssetIds:[]};export{S as AssetResultSection};
1
+ import o from"@babel/runtime/helpers/slicedToArray";import{useRef as s,useMemo as t}from"react";import e from"classnames";import n from"prop-types";import{startCase as i,isEmpty as r}from"lodash";import{makeStyles as p,List as c,ListSubheader as m,Chip as a,ListItem as l,Checkbox as d,Typography as u}from"@material-ui/core";import{StatusOptions as j}from"../../../constants.js";import{SEARCH_CATEGORIES as A}from"./constants.js";import"../../../../../componentsV2/Text/Text.js";import"../../../../../componentsV2/Grid/Grid.js";import"../../../../../componentsV2/Grid/Cell.js";import"@babel/runtime/helpers/defineProperty";import{jsxs as V,jsx as h}from"react/jsx-runtime";import"../../../../../componentsV2/Header/Header.scss.js";import"../../../../../componentsV2/Button/Button.js";import"../../../../../componentsV2/ButtonIcon/ButtonIcon.js";import{Tooltip as C}from"../../../../../componentsV2/Tooltip/Tooltip.js";import"../../../../../componentsV2/Popover/Popover.js";import"../../../../../componentsV2/Radio/Radio.js";import"@babel/runtime/helpers/objectWithoutProperties";import"../../../../../componentsV2/RadioAndCheckboxGroup/RadioAndCheckboxGroup.scss.js";import"../../../../../componentsV2/Checkbox/Checkbox.js";import"@babel/runtime/helpers/toConsumableArray";import"../../../../../componentsV2/TextInput/TextInput.js";import"../../../../../componentsV2/Label/Label.js";import"../../../../../componentsV2/TextEndTruncated/TextEndTruncated.scss.js";import{TextMiddleTruncated as g}from"../../../../../componentsV2/TextMiddleTruncated/TextMiddleTruncated.js";import"../../../../../componentsV2/TextMiddleTruncated/TextMiddleTruncated.constants.js";import"../../../../../componentsV2/TextLink/TextLink.js";import{LoaderCircular as I}from"../../../../../componentsV2/LoaderCircular/LoaderCircular.js";import"../../../../../componentsV2/Chip/Chip.js";import"../../../../../componentsV2/ChipAlert/ChipAlert.js";import"../../../../../componentsV2/ChipIndicator/ChipIndicator.js";import"../../../../../componentsV2/Avatar/Avatar.js";import"../../../../../componentsV2/AvatarGroup/AvatarGroup.js";import"@material-ui/lab";import"../../../../../componentsV2/ToggleButtons/ToggleButtons.scss.js";import"../../../../../componentsV2/Paper/Paper.js";import"../../../../../componentsV2/ModalWindow/ModalWindow.js";import"uuid";import"../../../../DevCenter/DevCenterAppContainer/components/DcFullscreenElemsCoordinatorProvider/DcFullscreenElemsCoordinatorProvider.js";import"../../../../DevCenter/DevCenterAppContainer/components/DcFullscreenElemsCoordinatorProvider/IsInsideDcFullscreenElemProvider.js";import"../../../../DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider/IsInsideIsolatedDcAppProvider.js";import"../../../../../componentsV2/Modal/Modal.scss.js";import"../../../../../componentsV2/Menu/Menu.js";import"@icon-park/react/es/all";import"../../../../../icons/IconParkProvider.js";import"../../../../../icons/customIcons/icons/AddMessage.js";import"../../../../../icons/customIcons/icons/Attention.js";import"../../../../../icons/customIcons/icons/Collapse.js";import"../../../../../icons/customIcons/icons/Dashboard.js";import"../../../../../icons/customIcons/icons/Expand.js";import"../../../../../icons/customIcons/icons/FolderClosed.js";import"../../../../../icons/customIcons/icons/FolderClosedFilled.js";import"../../../../../icons/customIcons/icons/FolderOpened.js";import"../../../../../icons/customIcons/icons/GreaterOrEqual.js";import"../../../../../icons/customIcons/icons/LessOrEqual.js";import"../../../../../icons/customIcons/icons/Search.js";import"../../../../../icons/customIcons/icons/SearchOne.js";import"../../../../../icons/customIcons/icons/Wellhub.js";import"../../../../../icons/customIcons/icons/MultiRuler.js";import"../../../../../icons/customIcons/icons/Checkbox.js";import"../../../../../icons/customIcons/icons/CheckboxChecked.js";import"../../../../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../../../../icons/customIcons/icons/Radio.js";import"../../../../../icons/customIcons/icons/RadioChecked.js";import"../../../../../icons/customIcons/icons/SimulFrac.js";import"../../../../../icons/customIcons/icons/ZipperFrac.js";import"../../../../../icons/customIcons/icons/CautionFilled.js";import"../../../../../icons/customIcons/icons/MoreApp.js";import"../../../../../icons/customIcons/icons/Pad.js";import"../../../../../icons/customIcons/icons/DrilloutUnit.js";import"../../../../../icons/customIcons/icons/FracFleet.js";import"../../../../../icons/customIcons/icons/Global.js";import"../../../../../icons/customIcons/icons/Program.js";import"../../../../../icons/customIcons/icons/Rig.js";import"../../../../../icons/customIcons/icons/Well.js";import"../../../../../icons/customIcons/icons/Gap.js";import"../../../../../icons/customIcons/icons/Pin.js";import"../../../../../icons/customIcons/icons/CloseOneFilled.js";import"../../../../../icons/customIcons/icons/AttentionFilled.js";import"../../../../../icons/customIcons/icons/CheckOneFilled.js";import"../../../../../icons/customIcons/icons/Archive.js";import"../../../../../icons/customIcons/icons/ArchiveCancel.js";import"../../../../../icons/customIcons/icons/Unarchive.js";import"../../../../../icons/customIcons/icons/Archived.js";import"../../../../../icons/customIcons/icons/InterventionUnit.js";import"../../../../../icons/customIcons/icons/CloudDelete.js";import"../../../../../icons/customIcons/icons/Lasso.js";import"../../../../../icons/customIcons/icons/Radius.js";import"../../../../../componentsV2/utils.js";import"../../../../../componentsV2/Hint/Hint.scss.js";import"../../../../../componentsV2/Counter/Counter.js";import"../../../../../componentsV2/BadgeBase/BadgeBase.scss.js";import"../../../../../componentsV2/TemplatesControl/TemplatesControl.js";import"zustand";import"../../../../../componentsV2/TemplatesControl/utils.js";import"../../../../../componentsV2/TemplatesControl/icons/folder/index.js";import"../../../../../componentsV2/TemplatesControl/Store/utils.js";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/regenerator";import"../../../../../componentsV2/TemplatesControl/types.js";import"../../../../../utils/index.js";import"../../../../../clients/jsonApi/index.js";import"../../../../../permissions/PermissionsContext.js";import"../../../../../permissions/constants/index.js";import"../../../../../permissions/withPermissionsHOC.js";import"../../../../../permissions/ProvidePermissions.js";import"../../../../../componentsV2/BadgeDot/BadgeDot.scss.js";import"../../../../../componentsV2/LoaderLinear/LoaderLinear.scss.js";import"../../../../../componentsV2/LoaderLogo/LoaderLogo.constants.js";import"../../../../../componentsV2/LoaderLogo/LoaderLogo.scss.js";import"../../../../../componentsV2/Switch/Switch.js";import"../../../../../componentsV2/Tabs/Tabs.js";import"../../../../../componentsV2/EmptyState/EmptyState.scss.js";import"../../../../../componentsV2/FileIcon/FileIcon.js";import"../../../../../componentsV2/Tag/Tag.js";import"react-dropzone";import"../../../../../componentsV2/FilesDropzone/FilesDropzone.scss.js";import"../../../../../componentsV2/FilesLoader/FilesLoader.scss.js";import"../../../../../componentsV2/FilesProcessor/FilesProcessor.scss.js";import"../../../../../componentsV2/Skeleton/Skeleton.scss.js";import"../../../../../utils/main.js";import"../../../../../componentsV2/CopyToClipboard/CopyToClipboard.scss.js";import"../../../../../componentsV2/Stepper/Step/Step.scss.js";import"../../../../../componentsV2/Stepper/Stepper.scss.js";import"../../../../../componentsV2/ButtonLive/ButtonLive.js";import"../../../../../componentsV2/ButtonText/ButtonText.js";import"../../../../../componentsV2/IndicatorLive/IndicatorLive.js";import"../../../../../componentsV2/Accordion/Accordion.scss.js";import"../../../../../componentsV2/Breadcrumbs/Breadcrumbs.scss.js";import"../../../../../componentsV2/BadgeComment/BadgeComment.js";import"../../../../../componentsV2/AppContainer/AppContainer.js";import"../../../../../componentsV2/AppContainer/AppContainer.constants.js";import"../../../../../componentsV2/AppFooter/AppFooter.js";import"immutable";import"../../../../../constants/goals.js";import"../../../../../constants/segment.js";import"../../../../../constants/alerts.js";import"../../../../../constants/apps.js";import"../../../../../constants/drillstring.js";import"../../../../../constants/completion.js";import"../../../../../constants/appPackages.js";import"../../../../../constants/notifications.js";import"../../../../../constants/feed.js";import"../../../../../constants/bha.js";import"../../../../../constants/corvaCompanyId.js";import"../../../../GradientManager/configuration/constants.js";import"../../../../../componentsV2/AppCommonsProvider/AppCommonsContext.js";import"../../../../../componentsV2/AppHeader/AppHeader.constants.js";import"../../../../../componentsV2/AppHeader/AppBadge/AppBadge.scss.js";import"../../../../DevCenter/DevCenterRouterContext/DevCenterRouterContext.js";import"../../../../DevCenter/DevCenterRouterContext/UniversalLink/UniversalLink.js";import"react-router";import"../../../../../componentsV2/AppHeader/AppAssets/utils.js";import"../../../../../componentsV2/AppHeader/AppAssets/AppAssets.scss.js";import"../../../../PadModeSelect/PadModeSelect.js";import"../../../../../componentsV2/AppHeader/PadMode/PadMode.scss.js";import"../../../../../constants/streamSourceType.js";import"../../../../../componentsV2/PadModeSelect/PadModeSelect.js";import"../../../../../componentsV2/PadModeSelect/PadModeSelect.constants.js";import"../../../../../componentsV2/AppCommonsProvider/AppCommonsProvider.js";import"../../../../../componentsV2/AppHeader/V3/VersionSelect/VersionSelect.js";import"../../../../../componentsV2/UniversalLink/UniversalLink.scss.js";import"../../../../../componentsV2/AppHeader/V3/AssetChips/AssetChips.scss.js";import"moment";import"../../../../../componentsV2/AppHeader/V3/DqStatusIcon/DqStatusIcon.js";import"../../../../../componentsV2/AppHeader/V3/DqStatusIcon/DqStatusIcon.constants.js";import"../../../../../componentsV2/AppFooter/DqPopover/DqStatusIcon/DqStatusIcon.js";import"../../../../../componentsV2/AppDqPopover/DqAlertTooltip/DqAlertTooltip.scss.js";import"../../../../../componentsV2/AppDqPopover/DqAlert/DqAlert.scss.js";import"../../../../../componentsV2/AppDqPopover/DqAsset/DqAsset.scss.js";import"../../../../../componentsV2/AppDqPopover/AppDqPopover.scss.js";import"../../../../AppIcon/AppIcon.js";import"../../../../../utils/getSingleAsset.js";import"../../../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorChip/AssetSelectorChip.js";import"../../../../../componentsV2/AppHeader/V3/AssetSelector/constants.js";import"../../../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorSelect/AssetSelectorSelect.scss.js";import"../../../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelectorSelect/loadAssets.js";import"../../../../../componentsV2/AppHeader/V3/AssetSelector/AssetSelector.scss.js";import"../../../../../clients/subscriptions/constants.js";import"querystring";import"uuid/v1";import"../../../../../clients/subscriptions.v1.js";import"../../../../../clients/subscriptions/subscriptions-client.factory.js";import"jsona";import"../../../../../utils/env.js";import"../../../../StatusBadge/constants.js";import"lodash/set";import"lodash/get";import"lodash/unset";import"../../../../../clients/api/apiCore.js";import"../../../../../clients/constants.js";import"../../../../../clients/sso/auth0.js";import"../../../../../clients/sso/oauth2.js";import"lodash/isEmpty";import"lodash/sortBy";import"../../../../DevCenter/DevCenterAppContainer/components/CommentsSwitch/CommentsSwitchContext.js";import"../../../../../componentsV2/AppHeader/V3/AppTitle/AppTitle.constants.js";import"../../../../../componentsV2/AppContainer/headerCommon.scss.js";import"../../../../../componentsV2/AppHeader/V3/AppTitle/AppTitle.scss.js";import"../../../../../componentsV2/AppHeader/V3/constants.scss.js";import"@babel/runtime/helpers/typeof";import"../../../../../componentsV2/AppHeader/V3/SettingsButton/SettingsButton.js";import"../../../../../componentsV2/AppHeader/V3/SettingsButton/SettingsButton.constants.js";import"../../../../../componentsV2/AppSettings/AppSettings.js";import"../../../../../componentsV2/AppSettings/AppSettings.constants.js";import"../../../../../componentsV2/AppSettings/AppSettingsPinningContext.js";import"../../../../../componentsV2/AppSizeProvider/AppSizeProvider.js";import"../../../../../componentsV2/AppHeader/V3/Actions/Actions.constants.js";import"../../../../../componentsV2/AppHeader/V3/Actions/Actions.scss.js";import"../../../../../componentsV2/AppHeader/V3/AppHeaderV3.scss.js";import"../../../../../componentsV2/AppHeader/AppHeader.scss.js";import"../../../../../componentsV2/OffsetWellsButton/OffsetWellsButton.js";import"../../../../../componentsV2/Autocomplete/Autocomplete.scss.js";import"../../../../../componentsV2/Menu/MenuItem/MenuItem.js";import"../../../../../componentsV2/Autocomplete/AutocompleteListBox.js";import"../../../../../componentsV2/AppSettingsDivider/AppSettingsDivider.scss.js";import"../../../../../componentsV2/WellArchivedMessage/WellArchivedMessage.js";import"../../../../../componentsV2/DatePicker/DatePicker.js";import"../../../../../componentsV2/DragHandle/DragHandle.js";import"../../../../../componentsV2/CompletionsOffsetWellPicker/CompletionsOffsetWellPicker.js";import"../../../../../componentsV2/Slider/constants.js";import"../../../../../componentsV2/Slider/components/SliderThumb.js";import"../../../../../componentsV2/Slider/Slider.scss.js";var v=p((function(o){return{assetListWrapper:{margin:"8px 0",flex:1},assetListContainer:{maxHeight:"350px",backgroundColor:o.palette.background.paper,position:"relative",overflow:"auto"},listSection:{backgroundColor:"inherit"},ul:{backgroundColor:"inherit",padding:0},listGutters:{padding:"2px 8px"},assetTypeSubheaderChip:{height:"24px",color:o.palette.primary.text6},assetItemTextRoot:{minWidth:"300px"},assetItemTextPrimary:{overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},loadingInfo:{textAlign:"center",fontSize:"12px",lineHeight:"17px",color:o.palette.primary.text8},empty:{color:o.palette.primary.text6,fontSize:"12px",fontStyle:"italic",marginLeft:"8px"},menuItem:{display:"flex",alignItems:"center",justifyContent:"flex-start",width:"100%",gap:"8px"},allMenuItem:{boxShadow:"inset 0px -1px 0px rgba(255, 255, 255, 0.25)"},statusWrapper:{display:"flex",alignItems:"center",width:"102px",flexShrink:0},status:{width:"8px",height:"8px",marginRight:"8px",borderRadius:"50%",cursor:"default"},controlWrapper:{width:40,height:40,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},assetNameWrapper:{flexGrow:1,overflow:"hidden"}}})),S=function(n){var p=n.subjectWellId,S=n.assetType,f=n.loading,b=n.groupedAssets,x=n.hasMore,T=n.onClickAsset,P=n.onClickAllAsset,D=n.onLoadMore,k=n.loadingAssetIds,L=n.isLimitedOffsetWells,y=v(),H=s(null),M=t((function(){if(1===b.length){var o=b[0][1].filter((function(o){return!o.disabledReason})),s=o.filter((function(o){return o.checked})).length,t=o.length>0&&s===o.length,e=L&&s>0;return[s>0&&s<o.length&&!e,t||e]}return[!1,!1]}),[b,L]),B=o(M,2),R=B[0],q=B[1];return V("div",{className:y.assetListWrapper,children:[V(c,{className:y.assetListContainer,subheader:h("li",{}),onScroll:function(o){var s=o.target,t=s.scrollHeight,e=s.scrollTop,n=s.offsetHeight;t!==n&&(Math.abs(t-(e+n))<1&&x&&!f&&D())},ref:H,children:[b.map((function(s){var t=o(s,2),n=t[0],r=t[1];return h("li",{className:y.listSection,children:V("ul",{className:y.ul,children:[!S&&h(m,{classes:{gutters:y.listGutters},children:h(a,{className:y.assetTypeSubheaderChip,variant:"outlined",label:A[n].labelPlural},n)}),S&&h(l,{button:!0,classes:{gutters:y.listGutters},onClick:function(){return P(!q,n)},children:h("div",{className:e(y.menuItem,y.allMenuItem),children:V("div",{children:[h(d,{checked:q,indeterminate:R,style:{marginRight:8}}),"All"]})})}),r.map((function(o){var s,t=o.type===A.well.name?!o.visibility.includes("visible")||!o.redirectAssetId||o.redirectAssetId===p:!!o.disabledReason,e="item-".concat(n,"-").concat(o.asset_id||o.id),r=h(l,{"data-testid":"".concat("AssetResultSection","_item_").concat(o.name,"MenuItem"),button:!0,classes:{gutters:y.listGutters},disabled:t,onClick:function(){return T(o,n)},children:V("div",{className:y.menuItem,children:[h("div",{className:y.controlWrapper,children:null!=k&&k.includes(o.redirectAssetId)?h(I,{size:"small"}):h(d,{checked:o.checked,indeterminate:o.indeterminate})}),h("div",{className:y.assetNameWrapper,children:h(g,{children:o.name})}),V("div",{className:y.statusWrapper,children:[h("div",{className:y.status,style:{background:null===(s=j.find((function(s){return s.value===o.status})))||void 0===s?void 0:s.color}}),i(o.status)]})]})},e);return o.disabledReason?h(C,{title:o.disabledReason,children:h("span",{children:r})},e):r}))]})},"section-".concat(n))})),!f&&r(b)&&h("div",{className:y.empty,children:"Your search did not match any Asset Name"})]}),f&&h(u,{"data-testid":"".concat("AssetResultSection","_loading"),className:y.loadingInfo,children:"Loading..."})]})};S.propTypes={subjectWellId:n.number.isRequired,assetType:n.string.isRequired,loading:n.bool.isRequired,groupedAssets:n.arrayOf(n.shape({})).isRequired,hasMore:n.bool.isRequired,onClickAsset:n.func.isRequired,onClickAllAsset:n.func.isRequired,onLoadMore:n.func.isRequired,loadingAssetIds:n.arrayOf(n.number),isLimitedOffsetWells:n.bool},S.defaultProps={loadingAssetIds:[],isLimitedOffsetWells:!1};export{S as AssetResultSection};
2
2
  //# sourceMappingURL=AssetResultSection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssetResultSection.js","sources":["../../../../../../src/components/OffsetWellPickerV5/components/OffsetWellsTable/AdvancedSearch/AssetResultSection.js"],"sourcesContent":["import { useMemo, useRef } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { isEmpty, startCase } from 'lodash';\nimport {\n makeStyles,\n List,\n ListSubheader,\n Chip,\n ListItem,\n Checkbox,\n Typography,\n} from '@material-ui/core';\n\nimport { StatusOptions } from '../../../constants';\n\nimport { SEARCH_CATEGORIES } from './constants';\n\nimport { LoaderCircular, TextMiddleTruncated, Tooltip } from '~/componentsV2';\n\nconst PAGE_NAME = 'AssetResultSection';\nconst useStyles = makeStyles(theme => ({\n assetListWrapper: {\n margin: '8px 0',\n flex: 1,\n },\n assetListContainer: {\n maxHeight: '350px',\n backgroundColor: theme.palette.background.paper,\n position: 'relative',\n overflow: 'auto',\n },\n listSection: {\n backgroundColor: 'inherit',\n },\n ul: {\n backgroundColor: 'inherit',\n padding: 0,\n },\n listGutters: {\n padding: '2px 8px',\n },\n assetTypeSubheaderChip: {\n height: '24px',\n color: theme.palette.primary.text6,\n },\n assetItemTextRoot: {\n minWidth: '300px',\n },\n assetItemTextPrimary: {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n },\n loadingInfo: {\n textAlign: 'center',\n fontSize: '12px',\n lineHeight: '17px',\n color: theme.palette.primary.text8,\n },\n empty: {\n color: theme.palette.primary.text6,\n fontSize: '12px',\n fontStyle: 'italic',\n marginLeft: '8px',\n },\n menuItem: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n width: '100%',\n gap: '8px',\n },\n allMenuItem: {\n boxShadow: 'inset 0px -1px 0px rgba(255, 255, 255, 0.25)',\n },\n statusWrapper: {\n display: 'flex',\n alignItems: 'center',\n width: '102px',\n flexShrink: 0,\n },\n status: {\n width: '8px',\n height: '8px',\n marginRight: '8px',\n borderRadius: '50%',\n cursor: 'default',\n },\n controlWrapper: {\n width: 40,\n height: 40,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n },\n assetNameWrapper: {\n flexGrow: 1,\n overflow: 'hidden',\n },\n}));\n\nexport const AssetResultSection = ({\n subjectWellId,\n assetType,\n loading,\n groupedAssets,\n hasMore,\n onClickAsset,\n onClickAllAsset,\n onScrollReached,\n loadingAssetIds,\n}) => {\n const classes = useStyles();\n const listRef = useRef(null);\n\n const [indeterminate, isAllWellsSelected] = useMemo(() => {\n if (groupedAssets.length === 1) {\n const assets = groupedAssets[0][1];\n const selectableAssets = assets.filter(asset => !asset.disabledReason);\n const selectedCount = selectableAssets.filter(asset => asset.checked).length;\n const indeterminate = selectedCount > 0 && selectableAssets.length !== selectedCount;\n const isAllWellsSelected =\n selectableAssets.length > 0 && selectedCount === selectableAssets.length;\n return [indeterminate, isAllWellsSelected];\n }\n return [false, false];\n }, [groupedAssets]);\n\n const handleScrollList = e => {\n const { scrollHeight, scrollTop, offsetHeight } = e.target;\n\n if (scrollHeight === offsetHeight) return;\n\n const isAtBottom = Math.abs(scrollHeight - (scrollTop + offsetHeight)) < 1;\n\n if (isAtBottom && hasMore) {\n onScrollReached('bottom');\n }\n };\n\n return (\n <div className={classes.assetListWrapper}>\n <List\n className={classes.assetListContainer}\n subheader={<li />}\n onScroll={handleScrollList}\n ref={listRef}\n >\n {groupedAssets.map(([assetTypeKey, assets]) => (\n <li key={`section-${assetTypeKey}`} className={classes.listSection}>\n <ul className={classes.ul}>\n {!assetType && (\n <ListSubheader classes={{ gutters: classes.listGutters }}>\n <Chip\n key={assetTypeKey}\n className={classes.assetTypeSubheaderChip}\n variant=\"outlined\"\n label={SEARCH_CATEGORIES[assetTypeKey].labelPlural}\n />\n </ListSubheader>\n )}\n {assetType && (\n <ListItem\n button\n classes={{ gutters: classes.listGutters }}\n onClick={() => onClickAllAsset(!isAllWellsSelected, assetTypeKey)}\n >\n <div className={classNames(classes.menuItem, classes.allMenuItem)}>\n <div>\n <Checkbox\n checked={isAllWellsSelected}\n indeterminate={indeterminate}\n style={{ marginRight: 8 }}\n />\n All\n </div>\n </div>\n </ListItem>\n )}\n {assets.map(asset => {\n const isWell = asset.type === SEARCH_CATEGORIES.well.name;\n const isDisabled = isWell\n ? !asset.visibility.includes('visible') ||\n !asset.redirectAssetId ||\n asset.redirectAssetId === subjectWellId\n : !!asset.disabledReason;\n\n const assetKey = `item-${assetTypeKey}-${asset.asset_id || asset.id}`;\n\n const listItem = (\n <ListItem\n data-testid={`${PAGE_NAME}_item_${asset.name}MenuItem`}\n button\n classes={{ gutters: classes.listGutters }}\n key={assetKey}\n disabled={isDisabled}\n onClick={() => onClickAsset(asset, assetTypeKey)}\n >\n <div className={classes.menuItem}>\n <div className={classes.controlWrapper}>\n {loadingAssetIds?.includes(asset.redirectAssetId) ? (\n <LoaderCircular size=\"small\" />\n ) : (\n <Checkbox checked={asset.checked} indeterminate={asset.indeterminate} />\n )}\n </div>\n <div className={classes.assetNameWrapper}>\n <TextMiddleTruncated>{asset.name}</TextMiddleTruncated>\n </div>\n <div className={classes.statusWrapper}>\n <div\n className={classes.status}\n style={{\n background: StatusOptions.find(item => item.value === asset.status)\n ?.color,\n }}\n />\n {startCase(asset.status)}\n </div>\n </div>\n </ListItem>\n );\n\n if (asset.disabledReason) {\n return (\n <Tooltip title={asset.disabledReason} key={assetKey}>\n <span>{listItem}</span>\n </Tooltip>\n );\n }\n\n return listItem;\n })}\n </ul>\n </li>\n ))}\n {!loading && isEmpty(groupedAssets) && (\n <div className={classes.empty}>Your search did not match any Asset Name</div>\n )}\n </List>\n {loading && (\n <Typography data-testid={`${PAGE_NAME}_loading`} className={classes.loadingInfo}>\n Loading...\n </Typography>\n )}\n </div>\n );\n};\n\nAssetResultSection.propTypes = {\n subjectWellId: PropTypes.number.isRequired,\n assetType: PropTypes.string.isRequired,\n loading: PropTypes.bool.isRequired,\n groupedAssets: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n hasMore: PropTypes.bool.isRequired,\n onClickAsset: PropTypes.func.isRequired,\n onClickAllAsset: PropTypes.func.isRequired,\n onScrollReached: PropTypes.func.isRequired,\n loadingAssetIds: PropTypes.arrayOf(PropTypes.number),\n};\n\nAssetResultSection.defaultProps = {\n loadingAssetIds: [],\n};\n"],"names":["useStyles","makeStyles","theme","assetListWrapper","margin","flex","assetListContainer","maxHeight","backgroundColor","palette","background","paper","position","overflow","listSection","ul","padding","listGutters","assetTypeSubheaderChip","height","color","primary","text6","assetItemTextRoot","minWidth","assetItemTextPrimary","whiteSpace","textOverflow","loadingInfo","textAlign","fontSize","lineHeight","text8","empty","fontStyle","marginLeft","menuItem","display","alignItems","justifyContent","width","gap","allMenuItem","boxShadow","statusWrapper","flexShrink","status","marginRight","borderRadius","cursor","controlWrapper","assetNameWrapper","flexGrow","AssetResultSection","_ref","subjectWellId","assetType","loading","groupedAssets","hasMore","onClickAsset","onClickAllAsset","onScrollReached","loadingAssetIds","classes","listRef","useRef","useMemo","length","selectableAssets","filter","asset","disabledReason","selectedCount","checked","_useMemo2","_slicedToArray","_useMemo","indeterminate","isAllWellsSelected","_jsxs","className","children","List","subheader","_jsx","onScroll","e","target","scrollHeight","scrollTop","offsetHeight","Math","abs","ref","map","_ref2","_ref3","assetTypeKey","assets","ListSubheader","gutters","Chip","variant","label","SEARCH_CATEGORIES","labelPlural","ListItem","button","onClick","classNames","Checkbox","style","_StatusOptions$find","isDisabled","type","well","name","visibility","includes","redirectAssetId","assetKey","asset_id","id","listItem","concat","disabled","LoaderCircular","size","TextMiddleTruncated","StatusOptions","find","item","value","startCase","Tooltip","title","isEmpty","Typography","propTypes","PropTypes","number","isRequired","string","bool","arrayOf","shape","func","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"AssetResultSection.js","sources":["../../../../../../src/components/OffsetWellPickerV5/components/OffsetWellsTable/AdvancedSearch/AssetResultSection.js"],"sourcesContent":["import { useMemo, useRef } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { isEmpty, startCase } from 'lodash';\nimport {\n makeStyles,\n List,\n ListSubheader,\n Chip,\n ListItem,\n Checkbox,\n Typography,\n} from '@material-ui/core';\n\nimport { StatusOptions } from '../../../constants';\n\nimport { SEARCH_CATEGORIES } from './constants';\n\nimport { LoaderCircular, TextMiddleTruncated, Tooltip } from '~/componentsV2';\n\nconst PAGE_NAME = 'AssetResultSection';\nconst useStyles = makeStyles(theme => ({\n assetListWrapper: {\n margin: '8px 0',\n flex: 1,\n },\n assetListContainer: {\n maxHeight: '350px',\n backgroundColor: theme.palette.background.paper,\n position: 'relative',\n overflow: 'auto',\n },\n listSection: {\n backgroundColor: 'inherit',\n },\n ul: {\n backgroundColor: 'inherit',\n padding: 0,\n },\n listGutters: {\n padding: '2px 8px',\n },\n assetTypeSubheaderChip: {\n height: '24px',\n color: theme.palette.primary.text6,\n },\n assetItemTextRoot: {\n minWidth: '300px',\n },\n assetItemTextPrimary: {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n },\n loadingInfo: {\n textAlign: 'center',\n fontSize: '12px',\n lineHeight: '17px',\n color: theme.palette.primary.text8,\n },\n empty: {\n color: theme.palette.primary.text6,\n fontSize: '12px',\n fontStyle: 'italic',\n marginLeft: '8px',\n },\n menuItem: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n width: '100%',\n gap: '8px',\n },\n allMenuItem: {\n boxShadow: 'inset 0px -1px 0px rgba(255, 255, 255, 0.25)',\n },\n statusWrapper: {\n display: 'flex',\n alignItems: 'center',\n width: '102px',\n flexShrink: 0,\n },\n status: {\n width: '8px',\n height: '8px',\n marginRight: '8px',\n borderRadius: '50%',\n cursor: 'default',\n },\n controlWrapper: {\n width: 40,\n height: 40,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n },\n assetNameWrapper: {\n flexGrow: 1,\n overflow: 'hidden',\n },\n}));\n\nexport const AssetResultSection = ({\n subjectWellId,\n assetType,\n loading,\n groupedAssets,\n hasMore,\n onClickAsset,\n onClickAllAsset,\n onLoadMore,\n loadingAssetIds,\n isLimitedOffsetWells,\n}) => {\n const classes = useStyles();\n const listRef = useRef(null);\n\n const [indeterminate, isAllWellsSelected] = useMemo(() => {\n if (groupedAssets.length === 1) {\n const assets = groupedAssets[0][1];\n const selectableAssets = assets.filter(asset => !asset.disabledReason);\n const selectedCount = selectableAssets.filter(asset => asset.checked).length;\n const allSelected = selectableAssets.length > 0 && selectedCount === selectableAssets.length;\n const limitReached = isLimitedOffsetWells && selectedCount > 0;\n return [\n selectedCount > 0 && selectedCount < selectableAssets.length && !limitReached,\n allSelected || limitReached,\n ];\n }\n return [false, false];\n }, [groupedAssets, isLimitedOffsetWells]);\n\n const handleScrollList = e => {\n const { scrollHeight, scrollTop, offsetHeight } = e.target;\n\n if (scrollHeight === offsetHeight) return;\n\n const isAtBottom = Math.abs(scrollHeight - (scrollTop + offsetHeight)) < 1;\n\n if (isAtBottom && hasMore && !loading) {\n onLoadMore();\n }\n };\n\n return (\n <div className={classes.assetListWrapper}>\n <List\n className={classes.assetListContainer}\n subheader={<li />}\n onScroll={handleScrollList}\n ref={listRef}\n >\n {groupedAssets.map(([assetTypeKey, assets]) => (\n <li key={`section-${assetTypeKey}`} className={classes.listSection}>\n <ul className={classes.ul}>\n {!assetType && (\n <ListSubheader classes={{ gutters: classes.listGutters }}>\n <Chip\n key={assetTypeKey}\n className={classes.assetTypeSubheaderChip}\n variant=\"outlined\"\n label={SEARCH_CATEGORIES[assetTypeKey].labelPlural}\n />\n </ListSubheader>\n )}\n {assetType && (\n <ListItem\n button\n classes={{ gutters: classes.listGutters }}\n onClick={() => onClickAllAsset(!isAllWellsSelected, assetTypeKey)}\n >\n <div className={classNames(classes.menuItem, classes.allMenuItem)}>\n <div>\n <Checkbox\n checked={isAllWellsSelected}\n indeterminate={indeterminate}\n style={{ marginRight: 8 }}\n />\n All\n </div>\n </div>\n </ListItem>\n )}\n {assets.map(asset => {\n const isWell = asset.type === SEARCH_CATEGORIES.well.name;\n const isDisabled = isWell\n ? !asset.visibility.includes('visible') ||\n !asset.redirectAssetId ||\n asset.redirectAssetId === subjectWellId\n : !!asset.disabledReason;\n\n const assetKey = `item-${assetTypeKey}-${asset.asset_id || asset.id}`;\n\n const listItem = (\n <ListItem\n data-testid={`${PAGE_NAME}_item_${asset.name}MenuItem`}\n button\n classes={{ gutters: classes.listGutters }}\n key={assetKey}\n disabled={isDisabled}\n onClick={() => onClickAsset(asset, assetTypeKey)}\n >\n <div className={classes.menuItem}>\n <div className={classes.controlWrapper}>\n {loadingAssetIds?.includes(asset.redirectAssetId) ? (\n <LoaderCircular size=\"small\" />\n ) : (\n <Checkbox checked={asset.checked} indeterminate={asset.indeterminate} />\n )}\n </div>\n <div className={classes.assetNameWrapper}>\n <TextMiddleTruncated>{asset.name}</TextMiddleTruncated>\n </div>\n <div className={classes.statusWrapper}>\n <div\n className={classes.status}\n style={{\n background: StatusOptions.find(item => item.value === asset.status)\n ?.color,\n }}\n />\n {startCase(asset.status)}\n </div>\n </div>\n </ListItem>\n );\n\n if (asset.disabledReason) {\n return (\n <Tooltip title={asset.disabledReason} key={assetKey}>\n <span>{listItem}</span>\n </Tooltip>\n );\n }\n\n return listItem;\n })}\n </ul>\n </li>\n ))}\n {!loading && isEmpty(groupedAssets) && (\n <div className={classes.empty}>Your search did not match any Asset Name</div>\n )}\n </List>\n {loading && (\n <Typography data-testid={`${PAGE_NAME}_loading`} className={classes.loadingInfo}>\n Loading...\n </Typography>\n )}\n </div>\n );\n};\n\nAssetResultSection.propTypes = {\n subjectWellId: PropTypes.number.isRequired,\n assetType: PropTypes.string.isRequired,\n loading: PropTypes.bool.isRequired,\n groupedAssets: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n hasMore: PropTypes.bool.isRequired,\n onClickAsset: PropTypes.func.isRequired,\n onClickAllAsset: PropTypes.func.isRequired,\n onLoadMore: PropTypes.func.isRequired,\n loadingAssetIds: PropTypes.arrayOf(PropTypes.number),\n isLimitedOffsetWells: PropTypes.bool,\n};\n\nAssetResultSection.defaultProps = {\n loadingAssetIds: [],\n isLimitedOffsetWells: false,\n};\n"],"names":["useStyles","makeStyles","theme","assetListWrapper","margin","flex","assetListContainer","maxHeight","backgroundColor","palette","background","paper","position","overflow","listSection","ul","padding","listGutters","assetTypeSubheaderChip","height","color","primary","text6","assetItemTextRoot","minWidth","assetItemTextPrimary","whiteSpace","textOverflow","loadingInfo","textAlign","fontSize","lineHeight","text8","empty","fontStyle","marginLeft","menuItem","display","alignItems","justifyContent","width","gap","allMenuItem","boxShadow","statusWrapper","flexShrink","status","marginRight","borderRadius","cursor","controlWrapper","assetNameWrapper","flexGrow","AssetResultSection","_ref","subjectWellId","assetType","loading","groupedAssets","hasMore","onClickAsset","onClickAllAsset","onLoadMore","loadingAssetIds","isLimitedOffsetWells","classes","listRef","useRef","useMemo","length","selectableAssets","filter","asset","disabledReason","selectedCount","checked","allSelected","limitReached","_useMemo2","_slicedToArray","_useMemo","indeterminate","isAllWellsSelected","_jsxs","className","children","List","subheader","_jsx","onScroll","e","target","scrollHeight","scrollTop","offsetHeight","Math","abs","ref","map","_ref2","_ref3","assetTypeKey","assets","ListSubheader","gutters","Chip","variant","label","SEARCH_CATEGORIES","labelPlural","ListItem","button","onClick","classNames","Checkbox","style","_StatusOptions$find","isDisabled","type","well","name","visibility","includes","redirectAssetId","assetKey","asset_id","id","listItem","concat","disabled","LoaderCircular","size","TextMiddleTruncated","StatusOptions","find","item","value","startCase","Tooltip","title","isEmpty","Typography","propTypes","PropTypes","number","isRequired","string","bool","arrayOf","shape","func","defaultProps"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export function AutoCompleteAssetSearch({ companyIds, subjectWellId, value, selectedWellIds, onChange, searchWidth, onClose, loadingAssetIds, filters, }: {
1
+ export function AutoCompleteAssetSearch({ companyIds, subjectWellId, value, selectedWellIds, onChange, searchWidth, onClose, loadingAssetIds, filters, isLimitedOffsetWells, }: {
2
2
  companyIds: any;
3
3
  subjectWellId: any;
4
4
  value: any;
@@ -8,6 +8,7 @@ export function AutoCompleteAssetSearch({ companyIds, subjectWellId, value, sele
8
8
  onClose: any;
9
9
  loadingAssetIds: any;
10
10
  filters: any;
11
+ isLimitedOffsetWells: any;
11
12
  }): JSX.Element;
12
13
  export namespace AutoCompleteAssetSearch {
13
14
  namespace propTypes {
@@ -20,6 +21,7 @@ export namespace AutoCompleteAssetSearch {
20
21
  let onClose: PropTypes.Validator<(...args: any[]) => any>;
21
22
  let loadingAssetIds: PropTypes.Requireable<number[]>;
22
23
  let filters: PropTypes.Requireable<object>;
24
+ let isLimitedOffsetWells: PropTypes.Requireable<boolean>;
23
25
  }
24
26
  namespace defaultProps {
25
27
  let companyIds_1: any;
@@ -30,6 +32,8 @@ export namespace AutoCompleteAssetSearch {
30
32
  export { loadingAssetIds_1 as loadingAssetIds };
31
33
  let filters_1: any;
32
34
  export { filters_1 as filters };
35
+ let isLimitedOffsetWells_1: boolean;
36
+ export { isLimitedOffsetWells_1 as isLimitedOffsetWells };
33
37
  }
34
38
  }
35
39
  import PropTypes from 'prop-types';
@@ -1 +1 @@
1
- {"version":3,"file":"AutoCompleteAssetSearch.d.ts","sourceRoot":"","sources":["../../../../../../src/components/OffsetWellPickerV5/components/OffsetWellsTable/AdvancedSearch/AutoCompleteAssetSearch.js"],"names":[],"mappings":"AAuFO;;;;;;;;;;gBA4KN;;;;;;;;;;;;;;;;;;;;;;;;sBAlQqB,YAAY"}
1
+ {"version":3,"file":"AutoCompleteAssetSearch.d.ts","sourceRoot":"","sources":["../../../../../../src/components/OffsetWellPickerV5/components/OffsetWellsTable/AdvancedSearch/AutoCompleteAssetSearch.js"],"names":[],"mappings":"AAuFO;;;;;;;;;;;gBA8JN;;;;;;;;;;;;;;;;;;;;;;;;;;;sBApPqB,YAAY"}
@@ -1,2 +1,2 @@
1
- import e from"@babel/runtime/helpers/slicedToArray";import{useState as t,useRef as r,useEffect as o,useMemo as s}from"react";import i from"prop-types";import{withStyles as n,Tooltip as a,makeStyles as p,Chip as l,Input as c}from"@material-ui/core";import m from"@material-ui/icons/Close";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/helpers/defineProperty";import"@babel/runtime/regenerator";import"lodash";import"@babel/runtime/helpers/toConsumableArray";import"uuid";import"lodash/set";import"lodash/get";import"lodash/unset";import"moment";import"../../../../../clients/jsonApi/index.js";import"../../../../../clients/subscriptions/constants.js";import"../../../../../clients/subscriptions.v1.js";import"../../../../../clients/subscriptions/subscriptions-client.factory.js";import"../../../../../clients/api/apiCore.js";import"../../../../../clients/constants.js";import"../../../../../clients/sso/auth0.js";import"../../../../../clients/sso/oauth2.js";import"../../../constants.js";import"../../../api/shared/dataFormatter.js";import"../../../utils/wellTransformations.js";import"zustand";import"../../../stores/picker-props-store/PickerPropsStoreContext.js";import"@babel/runtime/helpers/objectWithoutProperties";import{jsxs as d,jsx as u,Fragment as f}from"react/jsx-runtime";import"../../../viewport/ViewportProvider.js";import"../../../viewport/ViewportContext.js";import"../../../../../utils/index.js";import"../../../../../constants/goals.js";import"../../../../../constants/segment.js";import"../../../../../constants/alerts.js";import"../../../../../constants/apps.js";import"../../../../../constants/drillstring.js";import"../../../../../constants/completion.js";import"../../../../../constants/appPackages.js";import"../../../../../constants/notifications.js";import"../../../../../constants/feed.js";import"../../../../../constants/bha.js";import"../../../../../constants/corvaCompanyId.js";import"../../../../GradientManager/configuration/constants.js";import"react-virtualized";import{useAssetsData as h}from"../../../effects/useAssetsData.js";import"../../../../../permissions/PermissionsContext.js";import"../../../../../permissions/constants/index.js";import"../../../../../permissions/withPermissionsHOC.js";import"../../../../../permissions/ProvidePermissions.js";import"lodash/debounce";import"lodash/isEqual";import"@mapbox/tilebelt";import"../../Map/OffsetWellMap/constants.js";import"../../../stores/viewport-store/ViewportStoreContext.js";import"../../../stores/filter-store/FilterStoreContext.js";import"../../../stores/company-safeguard/CompanySafeguardContext.js";import"lz-string";import"../../../stores/viewport-store/ViewportStoreProvider.js";import"@turf/bbox";import"@turf/circle";import{AssetTypesSection as b}from"./AssetTypesSection.js";import{AssetResultSection as j}from"./AssetResultSection.js";import{SEARCH_CATEGORIES as g,CATEGORY_KEY_VALUES as x}from"./constants.js";var C=n((function(){return{tooltip:{backgroundColor:"#414141",color:"#ffffff",fontSize:"11px",lineHeight:"16px",borderRadius:"4px",boxShadow:"0px 4px 4px rgba(0, 0, 0, 0.12)",padding:"4px"}}}))(a),y=p((function(e){return{wrapper:{width:function(e){return e.searchWidth||"auto"},display:"flex",flexDirection:"column",padding:16},inputWrapper:{display:"flex",width:"auto",margin:"0 8px 8px",alignItems:"center",flexWrap:"nowrap",justifyContent:"space-between"},selectedChip:{height:"24px",margin:"4px"},selectedChipDeleteIcon:{width:"16px",height:"16px",color:e.palette.primary.text6,"&:hover":{color:e.palette.primary.text1}},selectedLabel:{fontWeight:400,fontSize:"16px",lineHeight:"22px",color:e.palette.primary.text1,whiteSpace:"nowrap",paddingLeft:"4px",paddingRight:"8px"},disabledIcon:{width:"16px",height:"16px",color:e.palette.primary.text6,opacity:.4},closeIconButton:{padding:0,"&:hover $closeIcon":{color:e.palette.primary.text1}},searchInput:{width:"100%",display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",borderBottom:"2px solid #03BCD4"},closeIcon:{color:e.palette.primary.text6,fontSize:"18px"}}})),v=function(i){var n,a,p=i.companyIds,v=i.subjectWellId,I=i.value,w=i.selectedWellIds,A=i.onChange,W=i.searchWidth,S=i.onClose,P=i.loadingAssetIds,k=i.filters,R=t(null),D=e(R,2),z=D[0],T=D[1],q=t(null),N=e(q,2),O=N[0],L=N[1],M=t(1),V=e(M,2),B=V[0],F=V[1],H=y({searchWidth:W}),_=r();o((function(){L(I)}),[I]);var G=h(O,z,B,p,w,k),K=e(G,3),U=K[0],E=K[1],$=K[2],J=s((function(){return z&&E&&0!==E.length?E[0][1].filter((function(e){return e.checked})).length:0}),[z,E]);return d("div",{className:H.wrapper,children:[u("div",{className:H.inputWrapper,children:d("div",{className:H.searchInput,children:[z&&d(f,{children:[u(l,{"data-not-migrated-muichip":!0,classes:{root:H.selectedChip,deleteIcon:H.selectedChipDeleteIcon},label:null!==(n=null===(a=g[z])||void 0===a?void 0:a.labelPlural)&&void 0!==n?n:"Assets",deleteIcon:u(m,{}),onDelete:function(){T(null)}}),J>0&&d("span",{className:H.selectedLabel,children:[J," Selected"]})]}),u(c,{"data-testid":"".concat("AutoCompleteAssetSearch","_searchInput"),inputRef:_,autoFocus:!0,disableUnderline:!0,fullWidth:!0,value:O||"",placeholder:"Search for Wells ...",onChange:function(e){var t=e.target.value;_.current.focus(),L(t),F(1)},onKeyUp:function(t){var r=t.target.value,o=t.keyCode,s=x.find((function(t){var o=e(t,2);return o[0],o[1].autoCategorizedKey===r.trim().toLowerCase()}));if(s&&(13===o||32===o))return L(""),T(s[0]),void F(1);""===r&&8===o&&(T(null),F(1))}}),u(C,{title:"Clear",children:u(m,{className:z||O?H.selectedChipDeleteIcon:H.disabledIcon,onClick:function(){L(""),T(null),F(1),S()}})})]})}),!z&&!O&&u(b,{onClickAssetType:function(e){_.current.focus(),T(e),F(1)}}),(z||O)&&u(j,{subjectWellId:v,assetType:z,loading:U,groupedAssets:E,hasMore:$,onClickAsset:function(e,t){t===g.rig.name?A(!e.checked,[],t,[e.asset_id]):A(!e.checked,[e.redirectAssetId],t)},onClickAllAsset:function(e,t){var r=E[0][1].filter((function(e){return!e.disabledReason}));t===g.rig.name?A(e,[],t,r.map((function(e){return e.asset_id}))):A(e,r.map((function(e){return e.redirectAssetId})),t)},onScrollReached:function(e){"top"===e&&B>1&&F((function(e){return e-1})),"bottom"===e&&F((function(e){return e+1}))},loadingAssetIds:P})]})};v.propTypes={subjectWellId:i.number.isRequired,companyIds:i.arrayOf(i.number),value:i.string.isRequired,selectedWellIds:i.arrayOf(i.number).isRequired,onChange:i.func.isRequired,searchWidth:i.number,onClose:i.func.isRequired,loadingAssetIds:i.arrayOf(i.number),filters:i.object},v.defaultProps={companyIds:null,searchWidth:null,loadingAssetIds:[],filters:null};export{v as AutoCompleteAssetSearch};
1
+ import e from"@babel/runtime/helpers/slicedToArray";import{useState as t,useRef as s,useEffect as r,useMemo as o}from"react";import i from"prop-types";import{withStyles as n,Tooltip as a,makeStyles as l,Chip as p,Input as c}from"@material-ui/core";import m from"@material-ui/icons/Close";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/helpers/defineProperty";import"@babel/runtime/regenerator";import"lodash";import"@babel/runtime/helpers/toConsumableArray";import"uuid";import"lodash/set";import"lodash/get";import"lodash/unset";import"moment";import"../../../../../clients/jsonApi/index.js";import"../../../../../clients/subscriptions/constants.js";import"../../../../../clients/subscriptions.v1.js";import"../../../../../clients/subscriptions/subscriptions-client.factory.js";import"../../../../../clients/api/apiCore.js";import"../../../../../clients/constants.js";import"../../../../../clients/sso/auth0.js";import"../../../../../clients/sso/oauth2.js";import"../../../constants.js";import"../../../api/shared/dataFormatter.js";import"../../../utils/wellTransformations.js";import"zustand";import"../../../stores/picker-props-store/PickerPropsStoreContext.js";import"@babel/runtime/helpers/objectWithoutProperties";import{jsxs as d,jsx as u,Fragment as f}from"react/jsx-runtime";import"../../../viewport/ViewportProvider.js";import"../../../viewport/ViewportContext.js";import"../../../../../utils/index.js";import"../../../../../constants/goals.js";import"../../../../../constants/segment.js";import"../../../../../constants/alerts.js";import"../../../../../constants/apps.js";import"../../../../../constants/drillstring.js";import"../../../../../constants/completion.js";import"../../../../../constants/appPackages.js";import"../../../../../constants/notifications.js";import"../../../../../constants/feed.js";import"../../../../../constants/bha.js";import"../../../../../constants/corvaCompanyId.js";import"../../../../GradientManager/configuration/constants.js";import"react-virtualized";import{useAssetsData as h}from"../../../effects/useAssetsData.js";import"../../../../../permissions/PermissionsContext.js";import"../../../../../permissions/constants/index.js";import"../../../../../permissions/withPermissionsHOC.js";import"../../../../../permissions/ProvidePermissions.js";import"lodash/debounce";import"lodash/isEqual";import"@mapbox/tilebelt";import"../../Map/OffsetWellMap/constants.js";import"../../../stores/viewport-store/ViewportStoreContext.js";import"../../../stores/filter-store/FilterStoreContext.js";import"../../../stores/company-safeguard/CompanySafeguardContext.js";import"lz-string";import"../../../stores/viewport-store/ViewportStoreProvider.js";import"@turf/bbox";import"@turf/circle";import{AssetTypesSection as b}from"./AssetTypesSection.js";import{AssetResultSection as j}from"./AssetResultSection.js";import{SEARCH_CATEGORIES as g,CATEGORY_KEY_VALUES as x}from"./constants.js";var C=n((function(){return{tooltip:{backgroundColor:"#414141",color:"#ffffff",fontSize:"11px",lineHeight:"16px",borderRadius:"4px",boxShadow:"0px 4px 4px rgba(0, 0, 0, 0.12)",padding:"4px"}}}))(a),y=l((function(e){return{wrapper:{width:function(e){return e.searchWidth||"auto"},display:"flex",flexDirection:"column",padding:16},inputWrapper:{display:"flex",width:"auto",margin:"0 8px 8px",alignItems:"center",flexWrap:"nowrap",justifyContent:"space-between"},selectedChip:{height:"24px",margin:"4px"},selectedChipDeleteIcon:{width:"16px",height:"16px",color:e.palette.primary.text6,"&:hover":{color:e.palette.primary.text1}},selectedLabel:{fontWeight:400,fontSize:"16px",lineHeight:"22px",color:e.palette.primary.text1,whiteSpace:"nowrap",paddingLeft:"4px",paddingRight:"8px"},disabledIcon:{width:"16px",height:"16px",color:e.palette.primary.text6,opacity:.4},closeIconButton:{padding:0,"&:hover $closeIcon":{color:e.palette.primary.text1}},searchInput:{width:"100%",display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",borderBottom:"2px solid #03BCD4"},closeIcon:{color:e.palette.primary.text6,fontSize:"18px"}}})),v=function(i){var n,a,l=i.companyIds,v=i.subjectWellId,I=i.value,w=i.selectedWellIds,W=i.onChange,A=i.searchWidth,S=i.onClose,P=i.loadingAssetIds,k=i.filters,R=i.isLimitedOffsetWells,L=t(null),O=e(L,2),D=O[0],z=O[1],T=t(null),q=e(T,2),M=q[0],N=q[1],V=y({searchWidth:A}),B=s();r((function(){N(I)}),[I]);var F=h(M,D,l,w,k),H=e(F,4),_=H[0],G=H[1],K=H[2],U=H[3],E=o((function(){return D&&G&&0!==G.length?G[0][1].filter((function(e){return e.checked})).length:0}),[D,G]);return d("div",{className:V.wrapper,children:[u("div",{className:V.inputWrapper,children:d("div",{className:V.searchInput,children:[D&&d(f,{children:[u(p,{"data-not-migrated-muichip":!0,classes:{root:V.selectedChip,deleteIcon:V.selectedChipDeleteIcon},label:null!==(n=null===(a=g[D])||void 0===a?void 0:a.labelPlural)&&void 0!==n?n:"Assets",deleteIcon:u(m,{}),onDelete:function(){z(null)}}),E>0&&d("span",{className:V.selectedLabel,children:[E," Selected"]})]}),u(c,{"data-testid":"".concat("AutoCompleteAssetSearch","_searchInput"),inputRef:B,autoFocus:!0,disableUnderline:!0,fullWidth:!0,value:M||"",placeholder:"Search for Wells ...",onChange:function(e){var t=e.target.value;B.current.focus(),N(t)},onKeyUp:function(t){var s=t.target.value,r=t.keyCode,o=x.find((function(t){var r=e(t,2);return r[0],r[1].autoCategorizedKey===s.trim().toLowerCase()}));if(o&&(13===r||32===r))return N(""),void z(o[0]);""===s&&8===r&&z(null)}}),u(C,{title:"Clear",children:u(m,{className:D||M?V.selectedChipDeleteIcon:V.disabledIcon,onClick:function(){N(""),z(null),S()}})})]})}),!D&&!M&&u(b,{onClickAssetType:function(e){B.current.focus(),z(e)}}),(D||M)&&u(j,{subjectWellId:v,assetType:D,loading:_,groupedAssets:G,hasMore:K,onClickAsset:function(e,t){t===g.rig.name?W(!e.checked,[],t,[e.asset_id]):W(!e.checked,[e.redirectAssetId],t)},onClickAllAsset:function(e,t){var s=G[0][1].filter((function(e){return!e.disabledReason}));t===g.rig.name?W(e,[],t,s.map((function(e){return e.asset_id}))):W(e,s.map((function(e){return e.redirectAssetId})),t)},onLoadMore:U,loadingAssetIds:P,isLimitedOffsetWells:R})]})};v.propTypes={subjectWellId:i.number.isRequired,companyIds:i.arrayOf(i.number),value:i.string.isRequired,selectedWellIds:i.arrayOf(i.number).isRequired,onChange:i.func.isRequired,searchWidth:i.number,onClose:i.func.isRequired,loadingAssetIds:i.arrayOf(i.number),filters:i.object,isLimitedOffsetWells:i.bool},v.defaultProps={companyIds:null,searchWidth:null,loadingAssetIds:[],filters:null,isLimitedOffsetWells:!1};export{v as AutoCompleteAssetSearch};
2
2
  //# sourceMappingURL=AutoCompleteAssetSearch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AutoCompleteAssetSearch.js","sources":["../../../../../../src/components/OffsetWellPickerV5/components/OffsetWellsTable/AdvancedSearch/AutoCompleteAssetSearch.js"],"sourcesContent":["import { useState, useRef, useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles, Chip, Input, Tooltip, withStyles } from '@material-ui/core';\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport { useAssetsData } from '../../../effects';\n\nimport { AssetTypesSection } from './AssetTypesSection';\nimport { AssetResultSection } from './AssetResultSection';\nimport { SEARCH_CATEGORIES, CATEGORY_KEY_VALUES } from './constants';\n\nconst PAGE_NAME = 'AutoCompleteAssetSearch';\n\nconst StyledTooltip = withStyles(() => ({\n tooltip: {\n backgroundColor: '#414141',\n color: '#ffffff',\n fontSize: '11px',\n lineHeight: '16px',\n borderRadius: '4px',\n boxShadow: '0px 4px 4px rgba(0, 0, 0, 0.12)',\n padding: '4px',\n },\n}))(Tooltip);\n\nconst useStyles = makeStyles(theme => ({\n wrapper: {\n width: ({ searchWidth }) => searchWidth || 'auto',\n display: 'flex',\n flexDirection: 'column',\n padding: 16,\n },\n inputWrapper: {\n display: 'flex',\n width: 'auto',\n margin: '0 8px 8px',\n alignItems: 'center',\n flexWrap: 'nowrap',\n justifyContent: 'space-between',\n },\n selectedChip: {\n height: '24px',\n margin: '4px',\n },\n selectedChipDeleteIcon: {\n width: '16px',\n height: '16px',\n color: theme.palette.primary.text6,\n '&:hover': {\n color: theme.palette.primary.text1,\n },\n },\n selectedLabel: {\n fontWeight: 400,\n fontSize: '16px',\n lineHeight: '22px',\n color: theme.palette.primary.text1,\n whiteSpace: 'nowrap',\n paddingLeft: '4px',\n paddingRight: '8px',\n },\n disabledIcon: {\n width: '16px',\n height: '16px',\n color: theme.palette.primary.text6,\n opacity: 0.4,\n },\n closeIconButton: {\n padding: 0,\n '&:hover $closeIcon': {\n color: theme.palette.primary.text1,\n },\n },\n searchInput: {\n width: '100%',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n borderBottom: '2px solid #03BCD4',\n },\n closeIcon: {\n color: theme.palette.primary.text6,\n fontSize: '18px',\n },\n}));\n\nexport const AutoCompleteAssetSearch = ({\n companyIds,\n subjectWellId,\n value,\n selectedWellIds,\n onChange,\n searchWidth,\n onClose,\n loadingAssetIds,\n filters,\n}) => {\n const [assetType, setAssetType] = useState(null);\n const [searchKey, setSearchKey] = useState(null);\n const [page, setPage] = useState(1);\n const classes = useStyles({ searchWidth });\n const searchInputRef = useRef();\n\n useEffect(() => {\n setSearchKey(value);\n }, [value]);\n\n const [loading, groupedAssets, hasMore] = useAssetsData(\n searchKey,\n assetType,\n page,\n companyIds,\n selectedWellIds,\n filters\n );\n\n const selectedCount = useMemo(() => {\n if (!assetType || !groupedAssets || groupedAssets.length === 0) return 0;\n return groupedAssets[0][1].filter(asset => asset.checked).length;\n }, [assetType, groupedAssets]);\n\n const handleDeleteAssetType = () => {\n setAssetType(null);\n };\n\n const handleChangeAssetType = key => {\n searchInputRef.current.focus();\n setAssetType(key);\n setPage(1);\n };\n\n const handleChangeSearchKey = ({ target: { value } }) => {\n searchInputRef.current.focus();\n setSearchKey(value);\n setPage(1);\n };\n\n const handleKeyPress = e => {\n const { value } = e.target;\n const { keyCode } = e;\n\n const availableCategory = CATEGORY_KEY_VALUES.find(\n ([_, item]) => item.autoCategorizedKey === value.trim().toLowerCase()\n );\n\n // Auto-select asset type on Enter or Space when input matches a category\n if (availableCategory && (keyCode === 13 || keyCode === 32)) {\n setSearchKey('');\n setAssetType(availableCategory[0]);\n setPage(1);\n return;\n }\n\n // Backspace on empty input clears the asset type\n if (value === '' && keyCode === 8) {\n setAssetType(null);\n setPage(1);\n }\n };\n\n const handleSearchClear = () => {\n setSearchKey('');\n setAssetType(null);\n setPage(1);\n onClose();\n };\n\n const handleScrollReached = position => {\n if (position === 'top' && page > 1) {\n setPage(prev => prev - 1);\n }\n if (position === 'bottom') {\n setPage(prev => prev + 1);\n }\n };\n\n const handleChangeAsset = (asset, assetType) => {\n if (assetType === SEARCH_CATEGORIES.rig.name) {\n onChange(!asset.checked, [], assetType, [asset.asset_id]);\n } else {\n onChange(!asset.checked, [asset.redirectAssetId], assetType);\n }\n };\n\n const handleChangeAllAssets = (isAllAdding, assetType) => {\n const assets = groupedAssets[0][1].filter(asset => !asset.disabledReason);\n if (assetType === SEARCH_CATEGORIES.rig.name) {\n onChange(\n isAllAdding,\n [],\n assetType,\n assets.map(asset => asset.asset_id)\n );\n } else {\n onChange(\n isAllAdding,\n assets.map(asset => asset.redirectAssetId),\n assetType\n );\n }\n };\n\n return (\n <div className={classes.wrapper}>\n <div className={classes.inputWrapper}>\n <div className={classes.searchInput}>\n {assetType && (\n <>\n <Chip\n data-not-migrated-muichip\n classes={{ root: classes.selectedChip, deleteIcon: classes.selectedChipDeleteIcon }}\n label={SEARCH_CATEGORIES[assetType]?.labelPlural ?? 'Assets'}\n deleteIcon={<CloseIcon />}\n onDelete={handleDeleteAssetType}\n />\n {selectedCount > 0 && (\n <span className={classes.selectedLabel}>{selectedCount} Selected</span>\n )}\n </>\n )}\n <Input\n data-testid={`${PAGE_NAME}_searchInput`}\n inputRef={searchInputRef}\n autoFocus\n disableUnderline\n fullWidth\n value={searchKey || ''}\n placeholder=\"Search for Wells ...\"\n onChange={handleChangeSearchKey}\n onKeyUp={handleKeyPress}\n />\n <StyledTooltip title=\"Clear\">\n <CloseIcon\n className={\n assetType || searchKey ? classes.selectedChipDeleteIcon : classes.disabledIcon\n }\n onClick={handleSearchClear}\n />\n </StyledTooltip>\n </div>\n </div>\n\n {!assetType && !searchKey && <AssetTypesSection onClickAssetType={handleChangeAssetType} />}\n {(assetType || searchKey) && (\n <AssetResultSection\n subjectWellId={subjectWellId}\n assetType={assetType}\n loading={loading}\n groupedAssets={groupedAssets}\n hasMore={hasMore}\n onClickAsset={handleChangeAsset}\n onClickAllAsset={handleChangeAllAssets}\n onScrollReached={handleScrollReached}\n loadingAssetIds={loadingAssetIds}\n />\n )}\n </div>\n );\n};\n\nAutoCompleteAssetSearch.propTypes = {\n subjectWellId: PropTypes.number.isRequired,\n companyIds: PropTypes.arrayOf(PropTypes.number),\n value: PropTypes.string.isRequired,\n selectedWellIds: PropTypes.arrayOf(PropTypes.number).isRequired,\n onChange: PropTypes.func.isRequired,\n searchWidth: PropTypes.number,\n onClose: PropTypes.func.isRequired,\n loadingAssetIds: PropTypes.arrayOf(PropTypes.number),\n filters: PropTypes.object,\n};\n\nAutoCompleteAssetSearch.defaultProps = {\n companyIds: null,\n searchWidth: null,\n loadingAssetIds: [],\n filters: null,\n};\n"],"names":["StyledTooltip","withStyles","tooltip","backgroundColor","color","fontSize","lineHeight","borderRadius","boxShadow","padding","Tooltip","useStyles","makeStyles","theme","wrapper","width","_ref","searchWidth","display","flexDirection","inputWrapper","margin","alignItems","flexWrap","justifyContent","selectedChip","height","selectedChipDeleteIcon","palette","primary","text6","text1","selectedLabel","fontWeight","whiteSpace","paddingLeft","paddingRight","disabledIcon","opacity","closeIconButton","searchInput","borderBottom","closeIcon","AutoCompleteAssetSearch","_ref2","_SEARCH_CATEGORIES$as","_SEARCH_CATEGORIES$as2","companyIds","subjectWellId","value","selectedWellIds","onChange","onClose","loadingAssetIds","filters","useState","_useState2","_slicedToArray","_useState","assetType","setAssetType","_useState4","_useState3","searchKey","setSearchKey","_useState6","_useState5","page","setPage","classes","searchInputRef","useRef","useEffect","_useAssetsData","useAssetsData","_useAssetsData2","loading","groupedAssets","hasMore","selectedCount","useMemo","length","filter","asset","checked","_jsxs","className","children","_jsx","_Fragment","Chip","root","deleteIcon","label","SEARCH_CATEGORIES","labelPlural","CloseIcon","onDelete","Input","concat","inputRef","autoFocus","disableUnderline","fullWidth","placeholder","_ref3","target","current","focus","onKeyUp","e","keyCode","availableCategory","CATEGORY_KEY_VALUES","find","_ref4","_ref5","autoCategorizedKey","trim","toLowerCase","title","onClick","AssetTypesSection","onClickAssetType","key","AssetResultSection","onClickAsset","rig","name","asset_id","redirectAssetId","onClickAllAsset","isAllAdding","assets","disabledReason","map","onScrollReached","position","prev","propTypes","PropTypes","number","isRequired","arrayOf","string","func","object","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"AutoCompleteAssetSearch.js","sources":["../../../../../../src/components/OffsetWellPickerV5/components/OffsetWellsTable/AdvancedSearch/AutoCompleteAssetSearch.js"],"sourcesContent":["import { useState, useRef, useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles, Chip, Input, Tooltip, withStyles } from '@material-ui/core';\nimport CloseIcon from '@material-ui/icons/Close';\n\nimport { useAssetsData } from '../../../effects';\n\nimport { AssetTypesSection } from './AssetTypesSection';\nimport { AssetResultSection } from './AssetResultSection';\nimport { SEARCH_CATEGORIES, CATEGORY_KEY_VALUES } from './constants';\n\nconst PAGE_NAME = 'AutoCompleteAssetSearch';\n\nconst StyledTooltip = withStyles(() => ({\n tooltip: {\n backgroundColor: '#414141',\n color: '#ffffff',\n fontSize: '11px',\n lineHeight: '16px',\n borderRadius: '4px',\n boxShadow: '0px 4px 4px rgba(0, 0, 0, 0.12)',\n padding: '4px',\n },\n}))(Tooltip);\n\nconst useStyles = makeStyles(theme => ({\n wrapper: {\n width: ({ searchWidth }) => searchWidth || 'auto',\n display: 'flex',\n flexDirection: 'column',\n padding: 16,\n },\n inputWrapper: {\n display: 'flex',\n width: 'auto',\n margin: '0 8px 8px',\n alignItems: 'center',\n flexWrap: 'nowrap',\n justifyContent: 'space-between',\n },\n selectedChip: {\n height: '24px',\n margin: '4px',\n },\n selectedChipDeleteIcon: {\n width: '16px',\n height: '16px',\n color: theme.palette.primary.text6,\n '&:hover': {\n color: theme.palette.primary.text1,\n },\n },\n selectedLabel: {\n fontWeight: 400,\n fontSize: '16px',\n lineHeight: '22px',\n color: theme.palette.primary.text1,\n whiteSpace: 'nowrap',\n paddingLeft: '4px',\n paddingRight: '8px',\n },\n disabledIcon: {\n width: '16px',\n height: '16px',\n color: theme.palette.primary.text6,\n opacity: 0.4,\n },\n closeIconButton: {\n padding: 0,\n '&:hover $closeIcon': {\n color: theme.palette.primary.text1,\n },\n },\n searchInput: {\n width: '100%',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n borderBottom: '2px solid #03BCD4',\n },\n closeIcon: {\n color: theme.palette.primary.text6,\n fontSize: '18px',\n },\n}));\n\nexport const AutoCompleteAssetSearch = ({\n companyIds,\n subjectWellId,\n value,\n selectedWellIds,\n onChange,\n searchWidth,\n onClose,\n loadingAssetIds,\n filters,\n isLimitedOffsetWells,\n}) => {\n const [assetType, setAssetType] = useState(null);\n const [searchKey, setSearchKey] = useState(null);\n const classes = useStyles({ searchWidth });\n const searchInputRef = useRef();\n\n useEffect(() => {\n setSearchKey(value);\n }, [value]);\n\n const [loading, groupedAssets, hasMore, loadMore] = useAssetsData(\n searchKey,\n assetType,\n companyIds,\n selectedWellIds,\n filters\n );\n\n const selectedCount = useMemo(() => {\n if (!assetType || !groupedAssets || groupedAssets.length === 0) return 0;\n return groupedAssets[0][1].filter(asset => asset.checked).length;\n }, [assetType, groupedAssets]);\n\n const handleDeleteAssetType = () => {\n setAssetType(null);\n };\n\n const handleChangeAssetType = key => {\n searchInputRef.current.focus();\n setAssetType(key);\n };\n\n const handleChangeSearchKey = ({ target: { value } }) => {\n searchInputRef.current.focus();\n setSearchKey(value);\n };\n\n const handleKeyPress = e => {\n const { value } = e.target;\n const { keyCode } = e;\n\n const availableCategory = CATEGORY_KEY_VALUES.find(\n ([_, item]) => item.autoCategorizedKey === value.trim().toLowerCase()\n );\n\n // Auto-select asset type on Enter or Space when input matches a category\n if (availableCategory && (keyCode === 13 || keyCode === 32)) {\n setSearchKey('');\n setAssetType(availableCategory[0]);\n return;\n }\n\n // Backspace on empty input clears the asset type\n if (value === '' && keyCode === 8) {\n setAssetType(null);\n }\n };\n\n const handleSearchClear = () => {\n setSearchKey('');\n setAssetType(null);\n onClose();\n };\n\n const handleChangeAsset = (asset, assetType) => {\n if (assetType === SEARCH_CATEGORIES.rig.name) {\n onChange(!asset.checked, [], assetType, [asset.asset_id]);\n } else {\n onChange(!asset.checked, [asset.redirectAssetId], assetType);\n }\n };\n\n const handleChangeAllAssets = (isAllAdding, assetType) => {\n const assets = groupedAssets[0][1].filter(asset => !asset.disabledReason);\n if (assetType === SEARCH_CATEGORIES.rig.name) {\n onChange(\n isAllAdding,\n [],\n assetType,\n assets.map(asset => asset.asset_id)\n );\n } else {\n onChange(\n isAllAdding,\n assets.map(asset => asset.redirectAssetId),\n assetType\n );\n }\n };\n\n return (\n <div className={classes.wrapper}>\n <div className={classes.inputWrapper}>\n <div className={classes.searchInput}>\n {assetType && (\n <>\n <Chip\n data-not-migrated-muichip\n classes={{ root: classes.selectedChip, deleteIcon: classes.selectedChipDeleteIcon }}\n label={SEARCH_CATEGORIES[assetType]?.labelPlural ?? 'Assets'}\n deleteIcon={<CloseIcon />}\n onDelete={handleDeleteAssetType}\n />\n {selectedCount > 0 && (\n <span className={classes.selectedLabel}>{selectedCount} Selected</span>\n )}\n </>\n )}\n <Input\n data-testid={`${PAGE_NAME}_searchInput`}\n inputRef={searchInputRef}\n autoFocus\n disableUnderline\n fullWidth\n value={searchKey || ''}\n placeholder=\"Search for Wells ...\"\n onChange={handleChangeSearchKey}\n onKeyUp={handleKeyPress}\n />\n <StyledTooltip title=\"Clear\">\n <CloseIcon\n className={\n assetType || searchKey ? classes.selectedChipDeleteIcon : classes.disabledIcon\n }\n onClick={handleSearchClear}\n />\n </StyledTooltip>\n </div>\n </div>\n\n {!assetType && !searchKey && <AssetTypesSection onClickAssetType={handleChangeAssetType} />}\n {(assetType || searchKey) && (\n <AssetResultSection\n subjectWellId={subjectWellId}\n assetType={assetType}\n loading={loading}\n groupedAssets={groupedAssets}\n hasMore={hasMore}\n onClickAsset={handleChangeAsset}\n onClickAllAsset={handleChangeAllAssets}\n onLoadMore={loadMore}\n loadingAssetIds={loadingAssetIds}\n isLimitedOffsetWells={isLimitedOffsetWells}\n />\n )}\n </div>\n );\n};\n\nAutoCompleteAssetSearch.propTypes = {\n subjectWellId: PropTypes.number.isRequired,\n companyIds: PropTypes.arrayOf(PropTypes.number),\n value: PropTypes.string.isRequired,\n selectedWellIds: PropTypes.arrayOf(PropTypes.number).isRequired,\n onChange: PropTypes.func.isRequired,\n searchWidth: PropTypes.number,\n onClose: PropTypes.func.isRequired,\n loadingAssetIds: PropTypes.arrayOf(PropTypes.number),\n filters: PropTypes.object,\n isLimitedOffsetWells: PropTypes.bool,\n};\n\nAutoCompleteAssetSearch.defaultProps = {\n companyIds: null,\n searchWidth: null,\n loadingAssetIds: [],\n filters: null,\n isLimitedOffsetWells: false,\n};\n"],"names":["StyledTooltip","withStyles","tooltip","backgroundColor","color","fontSize","lineHeight","borderRadius","boxShadow","padding","Tooltip","useStyles","makeStyles","theme","wrapper","width","_ref","searchWidth","display","flexDirection","inputWrapper","margin","alignItems","flexWrap","justifyContent","selectedChip","height","selectedChipDeleteIcon","palette","primary","text6","text1","selectedLabel","fontWeight","whiteSpace","paddingLeft","paddingRight","disabledIcon","opacity","closeIconButton","searchInput","borderBottom","closeIcon","AutoCompleteAssetSearch","_ref2","_SEARCH_CATEGORIES$as","_SEARCH_CATEGORIES$as2","companyIds","subjectWellId","value","selectedWellIds","onChange","onClose","loadingAssetIds","filters","isLimitedOffsetWells","useState","_useState2","_slicedToArray","_useState","assetType","setAssetType","_useState4","_useState3","searchKey","setSearchKey","classes","searchInputRef","useRef","useEffect","useAssetsData","_useAssetsData2","_useAssetsData","loading","groupedAssets","hasMore","loadMore","selectedCount","useMemo","length","filter","asset","checked","_jsxs","className","children","_jsx","_Fragment","Chip","root","deleteIcon","label","SEARCH_CATEGORIES","labelPlural","CloseIcon","onDelete","Input","concat","inputRef","autoFocus","disableUnderline","fullWidth","placeholder","_ref3","target","current","focus","onKeyUp","e","keyCode","availableCategory","CATEGORY_KEY_VALUES","find","_ref4","_ref5","autoCategorizedKey","trim","toLowerCase","title","onClick","AssetTypesSection","onClickAssetType","key","AssetResultSection","onClickAsset","rig","name","asset_id","redirectAssetId","onClickAllAsset","isAllAdding","assets","disabledReason","map","onLoadMore","propTypes","PropTypes","number","isRequired","arrayOf","string","func","object","bool","defaultProps"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export function useAssetsData(searchKey: any, assetType: any, page: any, companyIds: any, selectedWellIds: any, filters: any): (boolean | any[])[];
1
+ export function useAssetsData(searchKey: any, assetType: any, companyIds: any, selectedWellIds: any, filters: any): (boolean | any[] | (() => void))[];
2
2
  //# sourceMappingURL=useAssetsData.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAssetsData.d.ts","sourceRoot":"","sources":["../../../../src/components/OffsetWellPickerV5/effects/useAssetsData.js"],"names":[],"mappings":"AA0EO,mJAgMN"}
1
+ {"version":3,"file":"useAssetsData.d.ts","sourceRoot":"","sources":["../../../../src/components/OffsetWellPickerV5/effects/useAssetsData.js"],"names":[],"mappings":"AA8EO,uJAoQN"}
@@ -1,2 +1,2 @@
1
- import r from"@babel/runtime/helpers/toConsumableArray";import e from"@babel/runtime/helpers/slicedToArray";import t from"@babel/runtime/helpers/defineProperty";import n from"@babel/runtime/helpers/asyncToGenerator";import i from"@babel/runtime/regenerator";import{useState as u,useRef as s,useEffect as o}from"react";import{groupBy as a,debounce as c,uniq as p}from"lodash";import{fetchWellsByIds as l}from"../api/wells/fetchWellsByIds.js";import"uuid";import"lodash/set";import"lodash/get";import"lodash/unset";import"moment";import"../../../clients/jsonApi/index.js";import"../../../clients/subscriptions/constants.js";import"../../../clients/subscriptions.v1.js";import"../../../clients/subscriptions/subscriptions-client.factory.js";import"../../../clients/api/apiCore.js";import"../../../clients/constants.js";import"../../../clients/sso/auth0.js";import"../../../clients/sso/oauth2.js";import{fetchWellsByRigIds as f}from"../api/wells/fetchWellsByRigIds.js";import{fetchAllAssets as m}from"../api/assets/fetchAllAssets.js";import{ROWS_PER_PAGE as b}from"../constants.js";import{doesWellPassFilters as d,EXCLUDE_RIG_NAME_FILTER as h}from"../utils/doesWellPassFilters.js";function g(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),t.push.apply(t,n)}return t}function y(r){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?g(Object(n),!0).forEach((function(e){t(r,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):g(Object(n)).forEach((function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}))}return r}var v,j,w=["status","companyId","rigName","programName","basin","county","area","formation","stringDesign"],x=function(r){return Number.isFinite(Number(r))},k=function(r){return Object.entries(a(r,"type"))},O=function(r){return!!r&&(!!w.some((function(e){return Array.isArray(r[e])&&r[e].length>0}))||(!!r.sideTracks||(!(!r.period||"all"===r.period)||(Number.isFinite(r.timeRangeFrom)||Number.isFinite(r.timeRangeTo)))))},N=(v=n(i.mark((function r(e,t){var n,u;return i.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(0!==e.length){r.next=2;break}return r.abrupt("return",new Map);case 2:return r.next=4,f(e,t);case 4:return n=r.sent,u=a(n.filter((function(r){return x(null==r?void 0:r.rigId)})),(function(r){return Number(r.rigId)})),r.abrupt("return",new Map(e.map((function(r){return[r,u[r]||[]]}))));case 7:case"end":return r.stop()}}),r)}))),function(r,e){return v.apply(this,arguments)}),A=(j=n(i.mark((function r(e){var t;return i.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(0!==e.length){r.next=2;break}return r.abrupt("return",new Map);case 2:return r.next=4,l(e);case 4:return t=r.sent,r.abrupt("return",new Map(t.filter((function(r){return x(null==r?void 0:r.id)})).map((function(r){return[Number(r.id),r]}))));case 6:case"end":return r.stop()}}),r)}))),function(r){return j.apply(this,arguments)}),I=function(r,e,t){if(0===e.length)return y(y({},r),{},{checked:!1,disabledReason:"This rig has no wells"});var n=e.filter((function(r){return t.includes(r.id)})).length,i=n===e.length,u=n>0;return y(y({},r),{},{checked:u,indeterminate:u&&!i})},P=function(t,l,f,g,v,j){var w,P=u([]),T=e(P,2),D=T[0],F=T[1],R=u([]),M=e(R,2),S=M[0],_=M[1],W=u(!1),B=e(W,2),C=B[0],E=B[1],G=u(!1),q=e(G,2),z=q[0],H=q[1],J=u(!1),K=e(J,2),L=K[0],Q=K[1],U=s(c((function(r){return r()}),500)),V=(null==j||null===(w=j.companyId)||void 0===w?void 0:w.length)>0?j.companyId:g;return o((function(){var r=U.current;return function(){return r.cancel()}}),[]),o((function(){F([]),_([]),Q(!1)}),[t,l]),o((function(){var e,u=!1,s=(e=n(i.mark((function e(){var n,s;return i.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,m(t,l,f,V);case 3:if(n=e.sent,!u){e.next=6;break}return e.abrupt("return");case 6:s=l?n.length>=b:Object.values(a(n,"type")).some((function(r){return r.length>=b})),Q(s),F((function(e){return 1===f?n:[].concat(r(e),r(n))})),E(!1),e.next=16;break;case 12:e.prev=12,e.t0=e.catch(0),console.error(e.t0),u||E(!1);case 16:case"end":return e.stop()}}),e,null,[[0,12]])}))),function(){return e.apply(this,arguments)});return E(!0),U.current(s),function(){u=!0}}),[t,l,f,V]),o((function(){var r,e=!1,t=(r=n(i.mark((function r(){var t,n,u,s,o,a,c,f,m,b,g,w,P,T;return i.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(t=D.map((function(r){return y(y({},r),{},{checked:"rig"!==r.type&&v.includes(r.redirectAssetId)})})),n=null==j?void 0:j.rigName,u=Array.isArray(n)&&n.length>0,0!==(s=t.filter((function(r){return!(l&&r.type!==l||"rig"===r.type&&u&&!n.includes(r.name))}))).length){r.next=7;break}return e||(_([]),H(!1)),r.abrupt("return");case 7:if(0!==(o=s.filter((function(r){return"rig"===r.type&&x(r.asset_id)}))).length||O(j)){r.next=11;break}return e||(_(k(s)),H(!1)),r.abrupt("return");case 11:return H(!0),r.prev=12,a=s.filter((function(r){return"well"===r.type&&x(r.redirectAssetId)})),c=p(o.map((function(r){return Number(r.asset_id)}))),r.next=17,N(c,V);case 17:if(f=r.sent,!e){r.next=20;break}return r.abrupt("return");case 20:if(m=s.map((function(r){if("rig"!==r.type)return r;var e=f.get(Number(r.asset_id))||[];return I(r,e,v)})),O(j)){r.next=24;break}return e||_(k(m)),r.abrupt("return");case 24:return b=p(a.map((function(r){return Number(r.redirectAssetId)}))),r.next=27,A(b);case 27:if(g=r.sent,!e){r.next=30;break}return r.abrupt("return");case 30:w=new Set(b.filter((function(r){var e=g.get(r);return e&&d(e,j)}))),P=new Set(c.filter((function(r){return(f.get(r)||[]).some((function(r){return d(r,j,h)}))}))),T=s.filter((function(r){return"well"!==r.type||w.has(Number(r.redirectAssetId))})).map((function(r){if("rig"!==r.type)return r;var e=Number(r.asset_id),t=f.get(e)||[];if(!P.has(e)){var n=0===t.length?"This rig has no wells":"No wells match current filters";return y(y({},r),{},{checked:!1,disabledReason:n})}var i=t.filter((function(r){return d(r,j,h)}));return I(r,i,v)})),e||_(k(T)),r.next=40;break;case 36:r.prev=36,r.t0=r.catch(12),console.error(r.t0),e||_([]);case 40:return r.prev=40,e||H(!1),r.finish(40);case 43:case"end":return r.stop()}}),r,null,[[12,36,40,43]])}))),function(){return r.apply(this,arguments)});return t(),function(){e=!0}}),[D,l,v,j,V]),[C||z,S,L]};export{P as useAssetsData};
1
+ import r from"@babel/runtime/helpers/toConsumableArray";import e from"@babel/runtime/helpers/slicedToArray";import t from"@babel/runtime/helpers/defineProperty";import n from"@babel/runtime/helpers/asyncToGenerator";import i from"@babel/runtime/regenerator";import{useState as u,useRef as c,useEffect as s,useCallback as o}from"react";import{groupBy as a,debounce as p,uniq as f}from"lodash";import{fetchWellsByIds as l}from"../api/wells/fetchWellsByIds.js";import"uuid";import"lodash/set";import"lodash/get";import"lodash/unset";import"moment";import"../../../clients/jsonApi/index.js";import"../../../clients/subscriptions/constants.js";import"../../../clients/subscriptions.v1.js";import"../../../clients/subscriptions/subscriptions-client.factory.js";import"../../../clients/api/apiCore.js";import"../../../clients/constants.js";import"../../../clients/sso/auth0.js";import"../../../clients/sso/oauth2.js";import{fetchWellsByRigIds as m}from"../api/wells/fetchWellsByRigIds.js";import{fetchAllAssets as b}from"../api/assets/fetchAllAssets.js";import{ROWS_PER_PAGE as d}from"../constants.js";import{doesWellPassFilters as h,EXCLUDE_RIG_NAME_FILTER as g}from"../utils/doesWellPassFilters.js";function y(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),t.push.apply(t,n)}return t}function v(r){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?y(Object(n),!0).forEach((function(e){t(r,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):y(Object(n)).forEach((function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}))}return r}var j,w,x=["status","companyId","rigName","programName","basin","county","area","formation","stringDesign"],k=function(r){return Number.isFinite(Number(r))},O=function(r){return Object.entries(a(r,"type"))},N=function(r){return!!r&&(!!x.some((function(e){return Array.isArray(r[e])&&r[e].length>0}))||(!!r.sideTracks||(!(!r.period||"all"===r.period)||(Number.isFinite(r.timeRangeFrom)||Number.isFinite(r.timeRangeTo)))))},A=(j=n(i.mark((function r(e,t){var n,u;return i.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(0!==e.length){r.next=2;break}return r.abrupt("return",new Map);case 2:return r.next=4,m(e,t);case 4:return n=r.sent,u=a(n.filter((function(r){return k(null==r?void 0:r.rigId)})),(function(r){return Number(r.rigId)})),r.abrupt("return",new Map(e.map((function(r){return[r,u[r]||[]]}))));case 7:case"end":return r.stop()}}),r)}))),function(r,e){return j.apply(this,arguments)}),I=(w=n(i.mark((function r(e){var t;return i.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(0!==e.length){r.next=2;break}return r.abrupt("return",new Map);case 2:return r.next=4,l(e);case 4:return t=r.sent,r.abrupt("return",new Map(t.filter((function(r){return k(null==r?void 0:r.id)})).map((function(r){return[Number(r.id),r]}))));case 6:case"end":return r.stop()}}),r)}))),function(r){return w.apply(this,arguments)}),P=function(r,e,t){if(0===e.length)return v(v({},r),{},{checked:!1,disabledReason:"This rig has no wells"});var n=e.filter((function(r){return t.includes(r.id)})).length,i=n===e.length,u=n>0;return v(v({},r),{},{checked:u,indeterminate:u&&!i})},T=function(r){return r.reduce((function(r,t){return r+e(t,2)[1].length}),0)},D=function(t,l,m,y,j){var w,x=u(1),D=e(x,2),F=D[0],R=D[1],M=u([]),S=e(M,2),_=S[0],W=S[1],B=u([]),C=e(B,2),E=C[0],G=C[1],q=u(!1),z=e(q,2),H=z[0],J=z[1],K=u(!1),L=e(K,2),Q=L[0],U=L[1],V=u(!1),X=e(V,2),Y=X[0],Z=X[1],$=c(p((function(r){return r()}),500)),rr=c(!1),er=c(0),tr=c(0),nr=c(0),ir=c(!1),ur=function(r){Z(r),rr.current=r},cr=function(){ir.current=!0,R((function(r){return r+1}))},sr=(null==j||null===(w=j.companyId)||void 0===w?void 0:w.length)>0?j.companyId:m;s((function(){var r=$.current;return function(){return r.cancel()}}),[]),s((function(){W([]),G([]),ur(!1),R(1),er.current=0,tr.current=0,nr.current=0,ir.current=!1}),[t,l]),s((function(){var e,u=!1,c=(e=n(i.mark((function e(){var n,c;return i.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,b(t,l,F,sr);case 3:if(n=e.sent,!u){e.next=6;break}return e.abrupt("return");case 6:c=l?n.length>=d:Object.values(a(n,"type")).some((function(r){return r.length>=d})),ur(c),W((function(e){return 1===F?n:[].concat(r(e),r(n))})),J(!1),e.next=16;break;case 12:e.prev=12,e.t0=e.catch(0),console.error(e.t0),u||J(!1);case 16:case"end":return e.stop()}}),e,null,[[0,12]])}))),function(){return e.apply(this,arguments)});return J(!0),ir.current?(ir.current=!1,$.current.cancel(),c()):$.current(c),function(){u=!0}}),[t,l,F,sr]);var or=o((function(r){var e=_.length!==er.current;if(er.current=_.length,e){if(r>tr.current)return tr.current=r,void(nr.current=0);tr.current=r,nr.current>=5||rr.current&&(nr.current+=1,cr())}}),[_.length]);s((function(){var r,e=!1,t=(r=n(i.mark((function r(){var t,n,u,c,s,o,a,p,m,b,d,w,x,D,F,R,M;return i.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(t=_.map((function(r){return v(v({},r),{},{checked:"rig"!==r.type&&y.includes(r.redirectAssetId)})})),n=null==j?void 0:j.rigName,u=Array.isArray(n)&&n.length>0,0!==(c=t.filter((function(r){return!(l&&r.type!==l||"rig"===r.type&&u&&!n.includes(r.name))}))).length){r.next=7;break}return e||(G([]),U(!1),or(0)),r.abrupt("return");case 7:if(0!==(s=c.filter((function(r){return"rig"===r.type&&k(r.asset_id)}))).length||N(j)){r.next=11;break}return e||(o=O(c),G(o),U(!1),or(T(o))),r.abrupt("return");case 11:return U(!0),r.prev=12,a=c.filter((function(r){return"well"===r.type&&k(r.redirectAssetId)})),p=f(s.map((function(r){return Number(r.asset_id)}))),r.next=17,A(p,sr);case 17:if(m=r.sent,!e){r.next=20;break}return r.abrupt("return");case 20:if(b=c.map((function(r){if("rig"!==r.type)return r;var e=m.get(Number(r.asset_id))||[];return P(r,e,y)})),N(j)){r.next=24;break}return e||(d=O(b),G(d),or(T(d))),r.abrupt("return");case 24:return w=f(a.map((function(r){return Number(r.redirectAssetId)}))),r.next=27,I(w);case 27:if(x=r.sent,!e){r.next=30;break}return r.abrupt("return");case 30:D=new Set(w.filter((function(r){var e=x.get(r);return e&&h(e,j)}))),F=new Set(p.filter((function(r){return(m.get(r)||[]).some((function(r){return h(r,j,g)}))}))),R=c.filter((function(r){return"well"!==r.type||D.has(Number(r.redirectAssetId))})).map((function(r){if("rig"!==r.type)return r;var e=Number(r.asset_id),t=m.get(e)||[];if(!F.has(e)){var n=0===t.length?"This rig has no wells":"No wells match current filters";return v(v({},r),{},{checked:!1,disabledReason:n})}var i=t.filter((function(r){return h(r,j,g)}));return P(r,i,y)})),e||(M=O(R),G(M),or(T(M))),r.next=40;break;case 36:r.prev=36,r.t0=r.catch(12),console.error(r.t0),e||G([]);case 40:return r.prev=40,e||U(!1),r.finish(40);case 43:case"end":return r.stop()}}),r,null,[[12,36,40,43]])}))),function(){return r.apply(this,arguments)});return t(),function(){e=!0}}),[_,l,y,j,sr,or]);var ar=o((function(){!Y||H||Q||(nr.current=0,cr())}),[Y,H,Q]);return[H||Q,E,Y,ar]};export{D as useAssetsData};
2
2
  //# sourceMappingURL=useAssetsData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAssetsData.js","sources":["../../../../src/components/OffsetWellPickerV5/effects/useAssetsData.js"],"sourcesContent":["import { useState, useEffect, useRef } from 'react';\nimport { debounce, groupBy, uniq } from 'lodash';\n\nimport { fetchAllAssets, fetchWellsByIds, fetchWellsByRigIds } from '../api';\nimport { ROWS_PER_PAGE } from '../constants';\nimport { doesWellPassFilters, EXCLUDE_RIG_NAME_FILTER } from '../utils/doesWellPassFilters';\n\n// Mirrors WELL_PROPERTY_FILTER_KEYS in doesWellPassFilters.ts.\n// Used here to detect whether any well-level filters are active.\nconst WELL_FILTER_KEYS = [\n 'status',\n 'companyId',\n 'rigName',\n 'programName',\n 'basin',\n 'county',\n 'area',\n 'formation',\n 'stringDesign',\n];\n\nconst isFiniteNumber = value => Number.isFinite(Number(value));\n\nconst groupByType = assets => Object.entries(groupBy(assets, 'type'));\n\nconst hasActiveWellFilters = filters => {\n if (!filters) return false;\n\n if (WELL_FILTER_KEYS.some(key => Array.isArray(filters[key]) && filters[key].length > 0)) {\n return true;\n }\n\n if (filters.sideTracks) return true;\n if (filters.period && filters.period !== 'all') return true;\n\n return Number.isFinite(filters.timeRangeFrom) || Number.isFinite(filters.timeRangeTo);\n};\n\nconst fetchRigWellsMap = async (rigIds, companyIds) => {\n if (rigIds.length === 0) return new Map();\n\n const fetchedRigWells = await fetchWellsByRigIds(rigIds, companyIds);\n const grouped = groupBy(\n fetchedRigWells.filter(well => isFiniteNumber(well?.rigId)),\n well => Number(well.rigId)\n );\n\n return new Map(rigIds.map(rigId => [rigId, grouped[rigId] || []]));\n};\n\nconst fetchWellDataMap = async wellIds => {\n if (wellIds.length === 0) return new Map();\n\n const fetchedWells = await fetchWellsByIds(wellIds);\n\n return new Map(\n fetchedWells.filter(well => isFiniteNumber(well?.id)).map(well => [Number(well.id), well])\n );\n};\n\n// Compute rig checked/indeterminate state based on how many of its wells are selected.\n// Rigs with zero wells are marked as disabled.\nconst computeRigCheckedState = (asset, wells, selectedWellIds) => {\n if (wells.length === 0) {\n return { ...asset, checked: false, disabledReason: 'This rig has no wells' };\n }\n\n const selectedCount = wells.filter(well => selectedWellIds.includes(well.id)).length;\n const allSelected = selectedCount === wells.length;\n const someSelected = selectedCount > 0;\n\n return { ...asset, checked: someSelected, indeterminate: someSelected && !allSelected };\n};\n\nexport const useAssetsData = (searchKey, assetType, page, companyIds, selectedWellIds, filters) => {\n const [assetsData, setAssetsData] = useState([]);\n const [searchResult, setSearchResult] = useState([]);\n const [isFetching, setIsFetching] = useState(false);\n const [isFiltering, setIsFiltering] = useState(false);\n const [hasMore, setHasMore] = useState(false);\n const debouncedFetchRef = useRef(debounce(cb => cb(), 500));\n\n const activeCompanyIds = filters?.companyId?.length > 0 ? filters.companyId : companyIds;\n\n useEffect(() => {\n const debouncedFetch = debouncedFetchRef.current;\n return () => debouncedFetch.cancel();\n }, []);\n\n // Reset accumulated data when search key or asset type changes\n useEffect(() => {\n setAssetsData([]);\n setSearchResult([]);\n setHasMore(false);\n }, [searchKey, assetType]);\n\n useEffect(() => {\n let isCancelled = false;\n\n const fetchAssets = async () => {\n try {\n const assets = await fetchAllAssets(searchKey, assetType, page, activeCompanyIds);\n\n if (isCancelled) return;\n\n const hasMorePages = assetType\n ? assets.length >= ROWS_PER_PAGE\n : Object.values(groupBy(assets, 'type')).some(group => group.length >= ROWS_PER_PAGE);\n\n setHasMore(hasMorePages);\n setAssetsData(prev => (page === 1 ? assets : [...prev, ...assets]));\n setIsFetching(false);\n } catch (e) {\n console.error(e);\n if (!isCancelled) {\n setIsFetching(false);\n }\n }\n };\n\n setIsFetching(true);\n debouncedFetchRef.current(fetchAssets);\n\n return () => {\n isCancelled = true;\n };\n }, [searchKey, assetType, page, activeCompanyIds]);\n\n useEffect(() => {\n let isCancelled = false;\n\n const filterAssets = async () => {\n // Wells: checked directly against selectedWellIds.\n // Rigs: placeholder false, resolved after rig-wells are fetched.\n const checkedAssets = assetsData.map(asset => ({\n ...asset,\n checked: asset.type === 'rig' ? false : selectedWellIds.includes(asset.redirectAssetId),\n }));\n\n const rigNameFilter = filters?.rigName;\n const hasRigNameFilter = Array.isArray(rigNameFilter) && rigNameFilter.length > 0;\n\n const matchedAssets = checkedAssets.filter(asset => {\n if (assetType && asset.type !== assetType) return false;\n if (asset.type === 'rig' && hasRigNameFilter && !rigNameFilter.includes(asset.name)) {\n return false;\n }\n return true;\n });\n\n if (matchedAssets.length === 0) {\n if (!isCancelled) {\n setSearchResult([]);\n setIsFiltering(false);\n }\n return;\n }\n\n const rigAssets = matchedAssets.filter(\n asset => asset.type === 'rig' && isFiniteNumber(asset.asset_id)\n );\n\n // Fast path: no rigs and no active filters -- no async work needed\n if (rigAssets.length === 0 && !hasActiveWellFilters(filters)) {\n if (!isCancelled) {\n setSearchResult(groupByType(matchedAssets));\n setIsFiltering(false);\n }\n return;\n }\n\n setIsFiltering(true);\n\n try {\n const wellAssets = matchedAssets.filter(\n asset => asset.type === 'well' && isFiniteNumber(asset.redirectAssetId)\n );\n\n const uniqueRigIds = uniq(rigAssets.map(asset => Number(asset.asset_id)));\n const rigWellsMap = await fetchRigWellsMap(uniqueRigIds, activeCompanyIds);\n\n if (isCancelled) return;\n\n const assetsWithRigChecked = matchedAssets.map(asset => {\n if (asset.type !== 'rig') return asset;\n\n const rigWells = rigWellsMap.get(Number(asset.asset_id)) || [];\n return computeRigCheckedState(asset, rigWells, selectedWellIds);\n });\n\n // No active well filters -- return with correct checked state only\n if (!hasActiveWellFilters(filters)) {\n if (!isCancelled) {\n setSearchResult(groupByType(assetsWithRigChecked));\n }\n return;\n }\n\n const uniqueWellIds = uniq(wellAssets.map(asset => Number(asset.redirectAssetId)));\n const wellDataMap = await fetchWellDataMap(uniqueWellIds);\n\n if (isCancelled) return;\n\n const passingWellIds = new Set(\n uniqueWellIds.filter(id => {\n const well = wellDataMap.get(id);\n return well && doesWellPassFilters(well, filters);\n })\n );\n\n const passingRigIds = new Set(\n uniqueRigIds.filter(rigId => {\n const rigWells = rigWellsMap.get(rigId) || [];\n return rigWells.some(well =>\n doesWellPassFilters(well, filters, EXCLUDE_RIG_NAME_FILTER)\n );\n })\n );\n\n const filteredAssets = matchedAssets\n .filter(asset => {\n if (asset.type === 'well') return passingWellIds.has(Number(asset.redirectAssetId));\n return true;\n })\n .map(asset => {\n if (asset.type !== 'rig') return asset;\n\n const rigId = Number(asset.asset_id);\n const rigWells = rigWellsMap.get(rigId) || [];\n\n if (!passingRigIds.has(rigId)) {\n const reason =\n rigWells.length === 0 ? 'This rig has no wells' : 'No wells match current filters';\n return { ...asset, checked: false, disabledReason: reason };\n }\n\n const passingWells = rigWells.filter(well =>\n doesWellPassFilters(well, filters, EXCLUDE_RIG_NAME_FILTER)\n );\n\n return computeRigCheckedState(asset, passingWells, selectedWellIds);\n });\n\n if (!isCancelled) {\n setSearchResult(groupByType(filteredAssets));\n }\n } catch (e) {\n console.error(e);\n if (!isCancelled) {\n setSearchResult([]);\n }\n } finally {\n if (!isCancelled) {\n setIsFiltering(false);\n }\n }\n };\n\n filterAssets();\n\n return () => {\n isCancelled = true;\n };\n }, [assetsData, assetType, selectedWellIds, filters, activeCompanyIds]);\n\n return [isFetching || isFiltering, searchResult, hasMore];\n};\n"],"names":["_ref","_ref2","WELL_FILTER_KEYS","isFiniteNumber","value","Number","isFinite","groupByType","assets","Object","entries","groupBy","hasActiveWellFilters","filters","some","key","Array","isArray","length","sideTracks","period","timeRangeFrom","timeRangeTo","fetchRigWellsMap","_asyncToGenerator","_regeneratorRuntime","mark","_callee","rigIds","companyIds","fetchedRigWells","grouped","wrap","_context","prev","next","abrupt","Map","fetchWellsByRigIds","sent","filter","well","rigId","map","stop","_x","_x2","apply","this","arguments","fetchWellDataMap","wellIds","fetchedWells","_context2","fetchWellsByIds","id","_callee2","_x3","computeRigCheckedState","asset","wells","selectedWellIds","_objectSpread","checked","disabledReason","selectedCount","includes","allSelected","someSelected","indeterminate","useAssetsData","searchKey","assetType","page","_filters$companyId","useState","_useState2","_slicedToArray","_useState","assetsData","setAssetsData","_useState4","_useState3","searchResult","setSearchResult","_useState6","_useState5","isFetching","setIsFetching","_useState8","_useState7","isFiltering","setIsFiltering","_useState10","_useState9","hasMore","setHasMore","debouncedFetchRef","useRef","debounce","cb","activeCompanyIds","companyId","useEffect","debouncedFetch","current","cancel","_ref3","isCancelled","fetchAssets","_callee3","hasMorePages","_context3","fetchAllAssets","ROWS_PER_PAGE","values","group","t0","console","error","_ref4","filterAssets","_callee4","checkedAssets","rigNameFilter","hasRigNameFilter","matchedAssets","rigAssets","wellAssets","uniqueRigIds","rigWellsMap","assetsWithRigChecked","uniqueWellIds","wellDataMap","passingWellIds","passingRigIds","filteredAssets","_context4","type","redirectAssetId","rigName","name","asset_id","uniq","rigWells","get","Set","doesWellPassFilters","EXCLUDE_RIG_NAME_FILTER","has","reason","passingWells","finish"],"mappings":"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"}
1
+ {"version":3,"file":"useAssetsData.js","sources":["../../../../src/components/OffsetWellPickerV5/effects/useAssetsData.js"],"sourcesContent":["import { useState, useEffect, useRef, useCallback } from 'react';\nimport { debounce, groupBy, uniq } from 'lodash';\n\nimport { fetchAllAssets, fetchWellsByIds, fetchWellsByRigIds } from '../api';\nimport { ROWS_PER_PAGE } from '../constants';\nimport { doesWellPassFilters, EXCLUDE_RIG_NAME_FILTER } from '../utils/doesWellPassFilters';\n\n// Mirrors WELL_PROPERTY_FILTER_KEYS in doesWellPassFilters.ts.\n// Used here to detect whether any well-level filters are active.\nconst WELL_FILTER_KEYS = [\n 'status',\n 'companyId',\n 'rigName',\n 'programName',\n 'basin',\n 'county',\n 'area',\n 'formation',\n 'stringDesign',\n];\n\nconst MAX_EMPTY_PAGES = 5;\n\nconst isFiniteNumber = value => Number.isFinite(Number(value));\n\nconst groupByType = assets => Object.entries(groupBy(assets, 'type'));\n\nconst hasActiveWellFilters = filters => {\n if (!filters) return false;\n\n if (WELL_FILTER_KEYS.some(key => Array.isArray(filters[key]) && filters[key].length > 0)) {\n return true;\n }\n\n if (filters.sideTracks) return true;\n if (filters.period && filters.period !== 'all') return true;\n\n return Number.isFinite(filters.timeRangeFrom) || Number.isFinite(filters.timeRangeTo);\n};\n\nconst fetchRigWellsMap = async (rigIds, companyIds) => {\n if (rigIds.length === 0) return new Map();\n\n const fetchedRigWells = await fetchWellsByRigIds(rigIds, companyIds);\n const grouped = groupBy(\n fetchedRigWells.filter(well => isFiniteNumber(well?.rigId)),\n well => Number(well.rigId)\n );\n\n return new Map(rigIds.map(rigId => [rigId, grouped[rigId] || []]));\n};\n\nconst fetchWellDataMap = async wellIds => {\n if (wellIds.length === 0) return new Map();\n\n const fetchedWells = await fetchWellsByIds(wellIds);\n\n return new Map(\n fetchedWells.filter(well => isFiniteNumber(well?.id)).map(well => [Number(well.id), well])\n );\n};\n\n// Compute rig checked/indeterminate state based on how many of its wells are selected.\n// Rigs with zero wells are marked as disabled.\nconst computeRigCheckedState = (asset, wells, selectedWellIds) => {\n if (wells.length === 0) {\n return { ...asset, checked: false, disabledReason: 'This rig has no wells' };\n }\n\n const selectedCount = wells.filter(well => selectedWellIds.includes(well.id)).length;\n const allSelected = selectedCount === wells.length;\n const someSelected = selectedCount > 0;\n\n return { ...asset, checked: someSelected, indeterminate: someSelected && !allSelected };\n};\n\nconst countFilteredItems = grouped => grouped.reduce((sum, [, assets]) => sum + assets.length, 0);\n\nexport const useAssetsData = (searchKey, assetType, companyIds, selectedWellIds, filters) => {\n const [page, setPage] = useState(1);\n const [assetsData, setAssetsData] = useState([]);\n const [searchResult, setSearchResult] = useState([]);\n const [isFetching, setIsFetching] = useState(false);\n const [isFiltering, setIsFiltering] = useState(false);\n const [hasMore, setHasMore] = useState(false);\n const debouncedFetchRef = useRef(debounce(cb => cb(), 500));\n\n const hasMoreRef = useRef(false);\n const prevAssetsDataLengthRef = useRef(0);\n const prevFilteredCountRef = useRef(0);\n const consecutiveEmptyPagesRef = useRef(0);\n const isPageOnlyChangeRef = useRef(false);\n\n const updateHasMore = value => {\n setHasMore(value);\n hasMoreRef.current = value;\n };\n\n const advancePage = () => {\n isPageOnlyChangeRef.current = true;\n setPage(p => p + 1);\n };\n\n const activeCompanyIds = filters?.companyId?.length > 0 ? filters.companyId : companyIds;\n\n useEffect(() => {\n const debouncedFetch = debouncedFetchRef.current;\n return () => debouncedFetch.cancel();\n }, []);\n\n // Reset accumulated data when search key or asset type changes\n useEffect(() => {\n setAssetsData([]);\n setSearchResult([]);\n updateHasMore(false);\n setPage(1);\n prevAssetsDataLengthRef.current = 0;\n prevFilteredCountRef.current = 0;\n consecutiveEmptyPagesRef.current = 0;\n isPageOnlyChangeRef.current = false;\n }, [searchKey, assetType]);\n\n useEffect(() => {\n let isCancelled = false;\n\n const fetchAssets = async () => {\n try {\n const assets = await fetchAllAssets(searchKey, assetType, page, activeCompanyIds);\n\n if (isCancelled) return;\n\n const hasMorePages = assetType\n ? assets.length >= ROWS_PER_PAGE\n : Object.values(groupBy(assets, 'type')).some(group => group.length >= ROWS_PER_PAGE);\n\n updateHasMore(hasMorePages);\n setAssetsData(prev => (page === 1 ? assets : [...prev, ...assets]));\n setIsFetching(false);\n } catch (e) {\n console.error(e);\n if (!isCancelled) {\n setIsFetching(false);\n }\n }\n };\n\n setIsFetching(true);\n\n if (isPageOnlyChangeRef.current) {\n isPageOnlyChangeRef.current = false;\n debouncedFetchRef.current.cancel();\n fetchAssets();\n } else {\n debouncedFetchRef.current(fetchAssets);\n }\n\n return () => {\n isCancelled = true;\n };\n }, [searchKey, assetType, page, activeCompanyIds]);\n\n const maybeAutoFetch = useCallback(\n filteredCount => {\n const dataGrew = assetsData.length !== prevAssetsDataLengthRef.current;\n prevAssetsDataLengthRef.current = assetsData.length;\n\n // Only auto-fetch when new data arrived (not on selection/filter re-runs)\n if (!dataGrew) return;\n\n if (filteredCount > prevFilteredCountRef.current) {\n prevFilteredCountRef.current = filteredCount;\n consecutiveEmptyPagesRef.current = 0;\n return;\n }\n\n prevFilteredCountRef.current = filteredCount;\n\n if (consecutiveEmptyPagesRef.current >= MAX_EMPTY_PAGES) return;\n if (!hasMoreRef.current) return;\n\n consecutiveEmptyPagesRef.current += 1;\n advancePage();\n },\n [assetsData.length]\n );\n\n useEffect(() => {\n let isCancelled = false;\n\n const filterAssets = async () => {\n // Wells: checked directly against selectedWellIds.\n // Rigs: placeholder false, resolved after rig-wells are fetched.\n const checkedAssets = assetsData.map(asset => ({\n ...asset,\n checked: asset.type === 'rig' ? false : selectedWellIds.includes(asset.redirectAssetId),\n }));\n\n const rigNameFilter = filters?.rigName;\n const hasRigNameFilter = Array.isArray(rigNameFilter) && rigNameFilter.length > 0;\n\n const matchedAssets = checkedAssets.filter(asset => {\n if (assetType && asset.type !== assetType) return false;\n if (asset.type === 'rig' && hasRigNameFilter && !rigNameFilter.includes(asset.name)) {\n return false;\n }\n return true;\n });\n\n if (matchedAssets.length === 0) {\n if (!isCancelled) {\n const grouped = [];\n setSearchResult(grouped);\n setIsFiltering(false);\n maybeAutoFetch(0);\n }\n return;\n }\n\n const rigAssets = matchedAssets.filter(\n asset => asset.type === 'rig' && isFiniteNumber(asset.asset_id)\n );\n\n // Fast path: no rigs and no active filters -- no async work needed\n if (rigAssets.length === 0 && !hasActiveWellFilters(filters)) {\n if (!isCancelled) {\n const grouped = groupByType(matchedAssets);\n setSearchResult(grouped);\n setIsFiltering(false);\n maybeAutoFetch(countFilteredItems(grouped));\n }\n return;\n }\n\n setIsFiltering(true);\n\n try {\n const wellAssets = matchedAssets.filter(\n asset => asset.type === 'well' && isFiniteNumber(asset.redirectAssetId)\n );\n\n const uniqueRigIds = uniq(rigAssets.map(asset => Number(asset.asset_id)));\n const rigWellsMap = await fetchRigWellsMap(uniqueRigIds, activeCompanyIds);\n\n if (isCancelled) return;\n\n const assetsWithRigChecked = matchedAssets.map(asset => {\n if (asset.type !== 'rig') return asset;\n\n const rigWells = rigWellsMap.get(Number(asset.asset_id)) || [];\n return computeRigCheckedState(asset, rigWells, selectedWellIds);\n });\n\n // No active well filters -- return with correct checked state only\n if (!hasActiveWellFilters(filters)) {\n if (!isCancelled) {\n const grouped = groupByType(assetsWithRigChecked);\n setSearchResult(grouped);\n maybeAutoFetch(countFilteredItems(grouped));\n }\n return;\n }\n\n const uniqueWellIds = uniq(wellAssets.map(asset => Number(asset.redirectAssetId)));\n const wellDataMap = await fetchWellDataMap(uniqueWellIds);\n\n if (isCancelled) return;\n\n const passingWellIds = new Set(\n uniqueWellIds.filter(id => {\n const well = wellDataMap.get(id);\n return well && doesWellPassFilters(well, filters);\n })\n );\n\n const passingRigIds = new Set(\n uniqueRigIds.filter(rigId => {\n const rigWells = rigWellsMap.get(rigId) || [];\n return rigWells.some(well =>\n doesWellPassFilters(well, filters, EXCLUDE_RIG_NAME_FILTER)\n );\n })\n );\n\n const filteredAssets = matchedAssets\n .filter(asset => {\n if (asset.type === 'well') return passingWellIds.has(Number(asset.redirectAssetId));\n return true;\n })\n .map(asset => {\n if (asset.type !== 'rig') return asset;\n\n const rigId = Number(asset.asset_id);\n const rigWells = rigWellsMap.get(rigId) || [];\n\n if (!passingRigIds.has(rigId)) {\n const reason =\n rigWells.length === 0 ? 'This rig has no wells' : 'No wells match current filters';\n return { ...asset, checked: false, disabledReason: reason };\n }\n\n const passingWells = rigWells.filter(well =>\n doesWellPassFilters(well, filters, EXCLUDE_RIG_NAME_FILTER)\n );\n\n return computeRigCheckedState(asset, passingWells, selectedWellIds);\n });\n\n if (!isCancelled) {\n const grouped = groupByType(filteredAssets);\n setSearchResult(grouped);\n maybeAutoFetch(countFilteredItems(grouped));\n }\n } catch (e) {\n console.error(e);\n if (!isCancelled) {\n setSearchResult([]);\n }\n } finally {\n if (!isCancelled) {\n setIsFiltering(false);\n }\n }\n };\n\n filterAssets();\n\n return () => {\n isCancelled = true;\n };\n }, [assetsData, assetType, selectedWellIds, filters, activeCompanyIds, maybeAutoFetch]);\n\n const loadMore = useCallback(() => {\n if (!hasMore || isFetching || isFiltering) return;\n consecutiveEmptyPagesRef.current = 0;\n advancePage();\n }, [hasMore, isFetching, isFiltering]);\n\n return [isFetching || isFiltering, searchResult, hasMore, loadMore];\n};\n"],"names":["_ref","_ref2","WELL_FILTER_KEYS","isFiniteNumber","value","Number","isFinite","groupByType","assets","Object","entries","groupBy","hasActiveWellFilters","filters","some","key","Array","isArray","length","sideTracks","period","timeRangeFrom","timeRangeTo","fetchRigWellsMap","_asyncToGenerator","_regeneratorRuntime","mark","_callee","rigIds","companyIds","fetchedRigWells","grouped","wrap","_context","prev","next","abrupt","Map","fetchWellsByRigIds","sent","filter","well","rigId","map","stop","_x","_x2","apply","this","arguments","fetchWellDataMap","wellIds","fetchedWells","_context2","fetchWellsByIds","id","_callee2","_x3","computeRigCheckedState","asset","wells","selectedWellIds","_objectSpread","checked","disabledReason","selectedCount","includes","allSelected","someSelected","indeterminate","countFilteredItems","reduce","sum","_ref3","_slicedToArray","useAssetsData","searchKey","assetType","_filters$companyId","useState","_useState2","_useState","page","setPage","_useState4","_useState3","assetsData","setAssetsData","_useState6","_useState5","searchResult","setSearchResult","_useState8","_useState7","isFetching","setIsFetching","_useState10","_useState9","isFiltering","setIsFiltering","_useState12","_useState11","hasMore","setHasMore","debouncedFetchRef","useRef","debounce","cb","hasMoreRef","prevAssetsDataLengthRef","prevFilteredCountRef","consecutiveEmptyPagesRef","isPageOnlyChangeRef","updateHasMore","current","advancePage","p","activeCompanyIds","companyId","useEffect","debouncedFetch","cancel","_ref5","isCancelled","fetchAssets","_callee3","hasMorePages","_context3","fetchAllAssets","ROWS_PER_PAGE","values","group","t0","console","error","maybeAutoFetch","useCallback","filteredCount","dataGrew","_ref6","filterAssets","_callee4","checkedAssets","rigNameFilter","hasRigNameFilter","matchedAssets","rigAssets","_grouped","wellAssets","uniqueRigIds","rigWellsMap","assetsWithRigChecked","_grouped2","uniqueWellIds","wellDataMap","passingWellIds","passingRigIds","filteredAssets","_grouped3","_context4","type","redirectAssetId","rigName","name","asset_id","uniq","rigWells","get","Set","doesWellPassFilters","EXCLUDE_RIG_NAME_FILTER","has","reason","passingWells","finish","loadMore"],"mappings":"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"}