@corva/ui 3.46.0-0 → 3.46.0-2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js +1 -1
- package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/OffsetWellPickerV5.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/OffsetWellPickerV5.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/api/shared/fetchers/getAllAssets.js +2 -0
- package/cjs-bundle/components/OffsetWellPickerV5/api/shared/fetchers/getAllAssets.js.map +1 -0
- package/cjs-bundle/components/OffsetWellPickerV5/components/AppHeader/AppHeader.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/AppHeader/AppHeader.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/AppHeader/AppHeader.module.css.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/AppHeader/LoadAllWellsToggle.js +2 -0
- package/cjs-bundle/components/OffsetWellPickerV5/components/AppHeader/LoadAllWellsToggle.js.map +1 -0
- package/cjs-bundle/components/OffsetWellPickerV5/components/Filter/Filter.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/Filter/Filter.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/OffsetWellMap.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/MapHints.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/constants.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useBoxSelection.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useWellMarkers.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/utils/getClusterColorExpression.js +2 -0
- package/cjs-bundle/components/OffsetWellPickerV5/components/Map/OffsetWellMap/utils/getClusterColorExpression.js.map +1 -0
- package/cjs-bundle/components/OffsetWellPickerV5/components/Map/WellsMap.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/AdvancedSearch/AutoCompleteAssetSearch.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/OffsetWellsTable.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/OffsetWellsTable.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/effects/useAllWells/useAllWells.js +2 -0
- package/cjs-bundle/components/OffsetWellPickerV5/effects/useAllWells/useAllWells.js.map +1 -0
- package/cjs-bundle/components/OffsetWellPickerV5/effects/useAllWellsCache/constants.js +2 -0
- package/cjs-bundle/components/OffsetWellPickerV5/effects/useAllWellsCache/constants.js.map +1 -0
- package/cjs-bundle/components/OffsetWellPickerV5/effects/useAllWellsCache/useAllWellsCache.js +2 -0
- package/cjs-bundle/components/OffsetWellPickerV5/effects/useAllWellsCache/useAllWellsCache.js.map +1 -0
- package/cjs-bundle/components/OffsetWellPickerV5/effects/useCompanies.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/effects/useCompanies.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/effects/useLoadAllWellsCompanySafeguard.js +2 -0
- package/cjs-bundle/components/OffsetWellPickerV5/effects/useLoadAllWellsCompanySafeguard.js.map +1 -0
- package/cjs-bundle/components/OffsetWellPickerV5/effects/useViewportWells/fetchTile.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/effects/useViewportWells/processQueue.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/effects/useViewportWells/processQueue.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/effects/useViewportWells/useViewportWells.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/stores/filter-store/utils/normalizeFilters.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/stores/picker-props-store/PickerPropsStoreProvider.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/stores/picker-props-store/createPickerPropsStore.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/stores/picker-props-store/utils/getEffectiveIsLoadAllWells.js +2 -0
- package/cjs-bundle/components/OffsetWellPickerV5/stores/picker-props-store/utils/getEffectiveIsLoadAllWells.js.map +1 -0
- package/cjs-bundle/componentsV2/AppHeader/V3/AppTitle/AppTitle.js +1 -1
- package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js +1 -1
- package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js.map +1 -1
- package/components/OffsetWellPickerV5/OffsetWellPickerV5.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/OffsetWellPickerV5.js +1 -1
- package/components/OffsetWellPickerV5/OffsetWellPickerV5.js.map +1 -1
- package/components/OffsetWellPickerV5/OffsetWellPickerV5.types.d.ts +3 -0
- package/components/OffsetWellPickerV5/OffsetWellPickerV5.types.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/api/index.d.ts +2 -0
- package/components/OffsetWellPickerV5/api/index.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/api/shared/fetchers/getAllAssets.d.ts +16 -0
- package/components/OffsetWellPickerV5/api/shared/fetchers/getAllAssets.d.ts.map +1 -0
- package/components/OffsetWellPickerV5/api/shared/fetchers/getAllAssets.js +2 -0
- package/components/OffsetWellPickerV5/api/shared/fetchers/getAllAssets.js.map +1 -0
- package/components/OffsetWellPickerV5/components/AppHeader/AppHeader.d.ts +15 -23
- package/components/OffsetWellPickerV5/components/AppHeader/AppHeader.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/components/AppHeader/AppHeader.js +1 -1
- package/components/OffsetWellPickerV5/components/AppHeader/AppHeader.js.map +1 -1
- package/components/OffsetWellPickerV5/components/AppHeader/AppHeader.module.css.js +1 -1
- package/components/OffsetWellPickerV5/components/AppHeader/LoadAllWellsToggle.d.ts +6 -0
- package/components/OffsetWellPickerV5/components/AppHeader/LoadAllWellsToggle.d.ts.map +1 -0
- package/components/OffsetWellPickerV5/components/AppHeader/LoadAllWellsToggle.js +2 -0
- package/components/OffsetWellPickerV5/components/AppHeader/LoadAllWellsToggle.js.map +1 -0
- package/components/OffsetWellPickerV5/components/AppHeader/index.d.ts +1 -1
- package/components/OffsetWellPickerV5/components/AppHeader/index.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/components/Filter/Filter.d.ts +2 -1
- package/components/OffsetWellPickerV5/components/Filter/Filter.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/components/Filter/Filter.js +1 -1
- package/components/OffsetWellPickerV5/components/Filter/Filter.js.map +1 -1
- package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/OffsetWellMap.d.ts +2 -0
- package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/OffsetWellMap.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/OffsetWellMap.js +1 -1
- package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/MapHints.d.ts +1 -0
- package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/MapHints.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/components/MapHints/MapHints.js +1 -1
- package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/constants.d.ts +43 -2
- package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/constants.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/constants.js +1 -1
- package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useBoxSelection.d.ts +3 -1
- package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useBoxSelection.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useBoxSelection.js +1 -1
- package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useWellMarkers.d.ts +5 -0
- package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useWellMarkers.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/hooks/useWellMarkers.js +1 -1
- package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/utils/getClusterColorExpression.d.ts +12 -0
- package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/utils/getClusterColorExpression.d.ts.map +1 -0
- package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/utils/getClusterColorExpression.js +2 -0
- package/components/OffsetWellPickerV5/components/Map/OffsetWellMap/utils/getClusterColorExpression.js.map +1 -0
- package/components/OffsetWellPickerV5/components/Map/WellsMap.d.ts +2 -0
- package/components/OffsetWellPickerV5/components/Map/WellsMap.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/components/Map/WellsMap.js +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/AdvancedSearch/AutoCompleteAssetSearch.js +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/OffsetWellsTable.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/OffsetWellsTable.js +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/OffsetWellsTable.js.map +1 -1
- package/components/OffsetWellPickerV5/effects/index.d.ts +1 -0
- package/components/OffsetWellPickerV5/effects/index.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/effects/useAllWells/index.d.ts +2 -0
- package/components/OffsetWellPickerV5/effects/useAllWells/index.d.ts.map +1 -0
- package/components/OffsetWellPickerV5/effects/useAllWells/useAllWells.d.ts +2 -0
- package/components/OffsetWellPickerV5/effects/useAllWells/useAllWells.d.ts.map +1 -0
- package/components/OffsetWellPickerV5/effects/useAllWells/useAllWells.js +2 -0
- package/components/OffsetWellPickerV5/effects/useAllWells/useAllWells.js.map +1 -0
- package/components/OffsetWellPickerV5/effects/useAllWellsCache/constants.d.ts +7 -0
- package/components/OffsetWellPickerV5/effects/useAllWellsCache/constants.d.ts.map +1 -0
- package/components/OffsetWellPickerV5/effects/useAllWellsCache/constants.js +2 -0
- package/components/OffsetWellPickerV5/effects/useAllWellsCache/constants.js.map +1 -0
- package/components/OffsetWellPickerV5/effects/useAllWellsCache/index.d.ts +2 -0
- package/components/OffsetWellPickerV5/effects/useAllWellsCache/index.d.ts.map +1 -0
- package/components/OffsetWellPickerV5/effects/useAllWellsCache/types.d.ts +13 -0
- package/components/OffsetWellPickerV5/effects/useAllWellsCache/types.d.ts.map +1 -0
- package/components/OffsetWellPickerV5/effects/useAllWellsCache/useAllWellsCache.d.ts +33 -0
- package/components/OffsetWellPickerV5/effects/useAllWellsCache/useAllWellsCache.d.ts.map +1 -0
- package/components/OffsetWellPickerV5/effects/useAllWellsCache/useAllWellsCache.js +2 -0
- package/components/OffsetWellPickerV5/effects/useAllWellsCache/useAllWellsCache.js.map +1 -0
- package/components/OffsetWellPickerV5/effects/useCompanies.d.ts +1 -0
- package/components/OffsetWellPickerV5/effects/useCompanies.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/effects/useCompanies.js +1 -1
- package/components/OffsetWellPickerV5/effects/useCompanies.js.map +1 -1
- package/components/OffsetWellPickerV5/effects/useLoadAllWellsCompanySafeguard.d.ts +25 -0
- package/components/OffsetWellPickerV5/effects/useLoadAllWellsCompanySafeguard.d.ts.map +1 -0
- package/components/OffsetWellPickerV5/effects/useLoadAllWellsCompanySafeguard.js +2 -0
- package/components/OffsetWellPickerV5/effects/useLoadAllWellsCompanySafeguard.js.map +1 -0
- package/components/OffsetWellPickerV5/effects/useViewportWells/fetchTile.d.ts +1 -11
- package/components/OffsetWellPickerV5/effects/useViewportWells/fetchTile.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/effects/useViewportWells/fetchTile.js +1 -1
- package/components/OffsetWellPickerV5/effects/useViewportWells/processQueue.d.ts +3 -13
- package/components/OffsetWellPickerV5/effects/useViewportWells/processQueue.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/effects/useViewportWells/processQueue.js +1 -1
- package/components/OffsetWellPickerV5/effects/useViewportWells/processQueue.js.map +1 -1
- package/components/OffsetWellPickerV5/effects/useViewportWells/types.d.ts +1 -4
- package/components/OffsetWellPickerV5/effects/useViewportWells/types.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/effects/useViewportWells/useViewportWells.d.ts +1 -5
- package/components/OffsetWellPickerV5/effects/useViewportWells/useViewportWells.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/effects/useViewportWells/useViewportWells.js +1 -1
- package/components/OffsetWellPickerV5/stores/filter-store/types.d.ts +1 -0
- package/components/OffsetWellPickerV5/stores/filter-store/types.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/stores/filter-store/utils/normalizeFilters.d.ts +1 -1
- package/components/OffsetWellPickerV5/stores/filter-store/utils/normalizeFilters.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/stores/filter-store/utils/normalizeFilters.js +1 -1
- package/components/OffsetWellPickerV5/stores/picker-props-store/PickerPropsStoreProvider.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/stores/picker-props-store/PickerPropsStoreProvider.js +1 -1
- package/components/OffsetWellPickerV5/stores/picker-props-store/createPickerPropsStore.d.ts +14 -0
- package/components/OffsetWellPickerV5/stores/picker-props-store/createPickerPropsStore.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/stores/picker-props-store/createPickerPropsStore.js +1 -1
- package/components/OffsetWellPickerV5/stores/picker-props-store/utils/getEffectiveIsLoadAllWells.d.ts +8 -0
- package/components/OffsetWellPickerV5/stores/picker-props-store/utils/getEffectiveIsLoadAllWells.d.ts.map +1 -0
- package/components/OffsetWellPickerV5/stores/picker-props-store/utils/getEffectiveIsLoadAllWells.js +2 -0
- package/components/OffsetWellPickerV5/stores/picker-props-store/utils/getEffectiveIsLoadAllWells.js.map +1 -0
- package/componentsV2/AppHeader/V3/AppTitle/AppTitle.d.ts.map +1 -1
- package/componentsV2/AppHeader/V3/AppTitle/AppTitle.js +1 -1
- package/package.json +1 -1
package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/OffsetWellsTable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OffsetWellsTable.js","sources":["../../../../../../src/components/OffsetWellPickerV5/components/OffsetWellsTable/OffsetWellsTable.js"],"sourcesContent":["import { memo, useCallback, useLayoutEffect, useMemo, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { uniqBy } from 'lodash';\nimport { Table, TableBody, TableCell, TableRow } from '@material-ui/core';\n\nimport { ColumnType, EXPANDED_WELL_NAME_WIDTH, METRICS_LIST, TableColumns } from '../../constants';\nimport { useDeferredLoading } from '../../effects/useDeferredLoading';\nimport { useRowReorderAnimation } from '../../effects/useRowReorderAnimation';\nimport { getIsImperial } from '../../utils/getIsImperial';\nimport { useViewStore } from '../../stores/view-store/useViewStore';\nimport { useViewportStore } from '../../stores/viewport-store/useViewportStore';\n\nimport { OffsetWellsTableRow } from './OffsetWellsTableRow';\nimport { SkeletonTableRow } from './SkeletonTableRow';\n\nimport styles from './OffsetWellsTable.module.css';\n\nconst SKELETON_ROW_COUNT = 10;\n\nconst DIFF_WELL_NAME_WIDTH = 58;\n\nconst OffsetWellsTableComponent = ({\n isTableLoading,\n subjectWellId,\n columnsWithDict,\n wells: updatedWells,\n metricsKeys,\n handleChangeOffsetWell,\n isLimitedOffsetWells,\n maxOffsetWellNumber,\n wellSections,\n setActiveWellId,\n onRowClick,\n taScores,\n isWellSectionColumnVisible,\n isLastWell,\n loadingWellIds,\n scrollContainerRef,\n isAnimatingRef,\n}) => {\n const isHScrollMoved = useViewStore(state => state.isHScrollMoved);\n const isWellNameExpand = useViewStore(state => state.isWellNameExpand);\n const isAnyTileLoading = useViewportStore(state => state.isAnyTileLoading());\n const { isLoading: isDeferredTileLoading } = useDeferredLoading(isAnyTileLoading);\n /** @type {ReturnType<typeof useRef<HTMLElement>>} */\n const bodyTableRef = useRef();\n\n const uniqWells = useMemo(() => uniqBy(updatedWells, 'id'), [updatedWells]);\n\n const wellIds = useMemo(() => uniqWells.map(well => well.id), [uniqWells]);\n\n const { tableBodyRef, registerRow, capturePositions } = useRowReorderAnimation(\n wellIds,\n scrollContainerRef,\n isAnimatingRef\n );\n\n const isImperial = useMemo(() => getIsImperial(), []);\n\n const hasCompanyColumn = columnsWithDict?.some(col => col.key === ColumnType.company);\n const hasTaColumn = taScores?.length > 0;\n\n // Show skeleton rows when loading (fills remaining space below existing wells)\n // Use deferred tile loading to catch loading state even during debounce window\n const showSkeletonRows = isTableLoading || isDeferredTileLoading;\n\n const metricsColumns = useMemo(() => {\n // NOTE: Pay attention to the order of metrics and duplication\n const metricsMap = new Map(METRICS_LIST.map(item => [item.key, item]));\n return (metricsKeys || []).map(key => metricsMap.get(key)).filter(Boolean);\n }, [metricsKeys]);\n\n const wellNameWidth = useMemo(() => {\n if (isWellNameExpand) return EXPANDED_WELL_NAME_WIDTH - DIFF_WELL_NAME_WIDTH;\n return TableColumns[0].minWidth[metricsKeys.length] - DIFF_WELL_NAME_WIDTH;\n }, [isWellNameExpand, metricsKeys?.length]);\n\n // NOTE: Remove shadow from column - Body table only now\n useLayoutEffect(() => {\n if (!bodyTableRef.current) return;\n\n // Body table\n const bodyColumns = bodyTableRef.current.querySelectorAll(`.${styles.wellNameFixed}`);\n\n if (!isHScrollMoved) {\n bodyColumns.forEach(th => th.classList.add(styles.noShadow));\n } else {\n bodyColumns.forEach(th => th.classList.remove(styles.noShadow));\n }\n // TODO: Check reference stability. Initially had bodyTableRef.current\n }, [isHScrollMoved, uniqWells]);\n\n const handleChangeOffsetWellWithAnimation = useCallback(\n (well, checked) => {\n if (checked) {\n capturePositions();\n }\n handleChangeOffsetWell(well, checked);\n },\n [capturePositions, handleChangeOffsetWell]\n );\n\n const combinedTableRef = useCallback(\n node => {\n bodyTableRef.current = node;\n tableBodyRef(node);\n },\n [tableBodyRef]\n );\n\n if (!columnsWithDict) return null;\n\n return (\n <div className={styles.offsetWellsTable}>\n <div className={styles.bodyTableWrapper}>\n <Table aria-label=\"ows table body\" innerRef={combinedTableRef} className={styles.bodyTable}>\n <TableBody>\n {uniqWells.map(well => (\n <OffsetWellsTableRow\n key={well.id}\n columnsWithDict={columnsWithDict}\n subjectWellId={subjectWellId}\n data={well}\n metricsKeys={metricsKeys}\n metricsColumns={metricsColumns}\n handleChangeOffsetWell={handleChangeOffsetWellWithAnimation}\n wellNameStyle={styles.wellNameFixed}\n wellNameWidth={wellNameWidth}\n isImperial={isImperial}\n isLimitedOffsetWells={isLimitedOffsetWells}\n maxOffsetWellNumber={maxOffsetWellNumber}\n wellSections={wellSections}\n setActiveWellId={setActiveWellId}\n onRowClick={onRowClick}\n taScores={taScores}\n isWellSectionColumnVisible={isWellSectionColumnVisible}\n loadingWellIds={loadingWellIds}\n registerRow={registerRow}\n />\n ))}\n {/* Show 1 skeleton row when more wells are pending render */}\n {!isLastWell && (\n <SkeletonTableRow\n columnsWithDict={columnsWithDict}\n metricsKeys={metricsKeys}\n hasCompanyColumn={hasCompanyColumn}\n hasTaColumn={hasTaColumn}\n isWellSectionColumnVisible={isWellSectionColumnVisible}\n wellNameStyle={styles.wellNameFixed}\n />\n )}\n {/* Skeleton rows to fill remaining space when loading */}\n {showSkeletonRows &&\n Array.from({ length: SKELETON_ROW_COUNT }).map((_, index) => (\n <SkeletonTableRow\n key={`skeleton-${index}`}\n columnsWithDict={columnsWithDict}\n metricsKeys={metricsKeys}\n hasCompanyColumn={hasCompanyColumn}\n hasTaColumn={hasTaColumn}\n isWellSectionColumnVisible={isWellSectionColumnVisible}\n wellNameStyle={styles.wellNameFixed}\n />\n ))}\n <TableRow>\n <TableCell className={styles.bottomShadow} />\n </TableRow>\n </TableBody>\n </Table>\n </div>\n </div>\n );\n};\n\nOffsetWellsTableComponent.propTypes = {\n isTableLoading: PropTypes.bool.isRequired,\n subjectWellId: PropTypes.number.isRequired,\n columnsWithDict: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n wells: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n metricsKeys: PropTypes.arrayOf(PropTypes.string).isRequired,\n handleChangeOffsetWell: PropTypes.func.isRequired,\n isLimitedOffsetWells: PropTypes.bool.isRequired,\n maxOffsetWellNumber: PropTypes.number.isRequired,\n wellSections: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n setActiveWellId: PropTypes.func.isRequired,\n onRowClick: PropTypes.func.isRequired,\n taScores: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n isWellSectionColumnVisible: PropTypes.bool.isRequired,\n isLastWell: PropTypes.bool.isRequired,\n loadingWellIds: PropTypes.instanceOf(Set).isRequired,\n scrollContainerRef: PropTypes.shape({ current: PropTypes.instanceOf(Element) }).isRequired,\n isAnimatingRef: PropTypes.shape({ current: PropTypes.bool }).isRequired,\n};\n\nexport const OffsetWellsTable = memo(OffsetWellsTableComponent);\n"],"names":["OffsetWellsTableComponent","_ref","isTableLoading","subjectWellId","columnsWithDict","updatedWells","wells","metricsKeys","handleChangeOffsetWell","isLimitedOffsetWells","maxOffsetWellNumber","wellSections","setActiveWellId","onRowClick","taScores","isWellSectionColumnVisible","isLastWell","loadingWellIds","scrollContainerRef","isAnimatingRef","isHScrollMoved","useViewStore","state","isWellNameExpand","isAnyTileLoading","useViewportStore","isDeferredTileLoading","useDeferredLoading","isLoading","bodyTableRef","useRef","uniqWells","useMemo","uniqBy","wellIds","map","well","id","_useRowReorderAnimati","useRowReorderAnimation","tableBodyRef","registerRow","capturePositions","isImperial","getIsImperial","hasCompanyColumn","some","col","key","ColumnType","company","hasTaColumn","length","showSkeletonRows","metricsColumns","metricsMap","Map","METRICS_LIST","item","get","filter","Boolean","wellNameWidth","EXPANDED_WELL_NAME_WIDTH","TableColumns","minWidth","useLayoutEffect","current","bodyColumns","querySelectorAll","styles","wellNameFixed","forEach","th","classList","remove","noShadow","add","handleChangeOffsetWellWithAnimation","useCallback","checked","combinedTableRef","node","_jsx","className","offsetWellsTable","children","jsx","bodyTableWrapper","Table","innerRef","bodyTable","_jsxs","TableBody","OffsetWellsTableRow","data","wellNameStyle","SkeletonTableRow","Array","from","_","index","concat","TableRow","TableCell","bottomShadow","propTypes","PropTypes","bool","isRequired","number","arrayOf","shape","string","func","instanceOf","Set","Element","OffsetWellsTable","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OffsetWellsTable.js","sources":["../../../../../../src/components/OffsetWellPickerV5/components/OffsetWellsTable/OffsetWellsTable.js"],"sourcesContent":["import { memo, useCallback, useLayoutEffect, useMemo, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { uniqBy } from 'lodash';\nimport { Table, TableBody, TableCell, TableRow } from '@material-ui/core';\n\nimport { ColumnType, EXPANDED_WELL_NAME_WIDTH, METRICS_LIST, TableColumns } from '../../constants';\nimport { useDeferredLoading } from '../../effects/useDeferredLoading';\nimport { useRowReorderAnimation } from '../../effects/useRowReorderAnimation';\nimport { getIsImperial } from '../../utils/getIsImperial';\nimport { usePickerPropsStore } from '../../stores/picker-props-store/usePickerPropsStore';\nimport { useViewStore } from '../../stores/view-store/useViewStore';\nimport { useViewportStore } from '../../stores/viewport-store/useViewportStore';\n\nimport { OffsetWellsTableRow } from './OffsetWellsTableRow';\nimport { SkeletonTableRow } from './SkeletonTableRow';\n\nimport styles from './OffsetWellsTable.module.css';\n\nconst SKELETON_ROW_COUNT = 10;\n\nconst DIFF_WELL_NAME_WIDTH = 58;\n\nconst OffsetWellsTableComponent = ({\n isTableLoading,\n subjectWellId,\n columnsWithDict,\n wells: updatedWells,\n metricsKeys,\n handleChangeOffsetWell,\n isLimitedOffsetWells,\n maxOffsetWellNumber,\n wellSections,\n setActiveWellId,\n onRowClick,\n taScores,\n isWellSectionColumnVisible,\n isLastWell,\n loadingWellIds,\n scrollContainerRef,\n isAnimatingRef,\n}) => {\n const isLoadAllWells = usePickerPropsStore(state => state.isLoadAllWells);\n const allWellsLoadProgress = usePickerPropsStore(state => state.allWellsLoadProgress);\n const isAllWellsLoading =\n isLoadAllWells && allWellsLoadProgress && !allWellsLoadProgress.isComplete;\n const isHScrollMoved = useViewStore(state => state.isHScrollMoved);\n const isWellNameExpand = useViewStore(state => state.isWellNameExpand);\n const isAnyTileLoading = useViewportStore(state => state.isAnyTileLoading());\n const { isLoading: isDeferredTileLoading } = useDeferredLoading(isAnyTileLoading);\n /** @type {ReturnType<typeof useRef<HTMLElement>>} */\n const bodyTableRef = useRef();\n\n const uniqWells = useMemo(() => uniqBy(updatedWells, 'id'), [updatedWells]);\n\n const wellIds = useMemo(() => uniqWells.map(well => well.id), [uniqWells]);\n\n const { tableBodyRef, registerRow, capturePositions } = useRowReorderAnimation(\n wellIds,\n scrollContainerRef,\n isAnimatingRef\n );\n\n const isImperial = useMemo(() => getIsImperial(), []);\n\n const hasCompanyColumn = columnsWithDict?.some(col => col.key === ColumnType.company);\n const hasTaColumn = taScores?.length > 0;\n\n // Show skeleton rows when loading (fills remaining space below existing wells)\n // Use deferred tile loading to catch loading state even during debounce window\n // Also show skeletons during all-wells mode loading (when tiles are cleared)\n const showSkeletonRows = isTableLoading || isDeferredTileLoading || isAllWellsLoading;\n\n const metricsColumns = useMemo(() => {\n // NOTE: Pay attention to the order of metrics and duplication\n const metricsMap = new Map(METRICS_LIST.map(item => [item.key, item]));\n return (metricsKeys || []).map(key => metricsMap.get(key)).filter(Boolean);\n }, [metricsKeys]);\n\n const wellNameWidth = useMemo(() => {\n if (isWellNameExpand) return EXPANDED_WELL_NAME_WIDTH - DIFF_WELL_NAME_WIDTH;\n return TableColumns[0].minWidth[metricsKeys.length] - DIFF_WELL_NAME_WIDTH;\n }, [isWellNameExpand, metricsKeys?.length]);\n\n // NOTE: Remove shadow from column - Body table only now\n useLayoutEffect(() => {\n if (!bodyTableRef.current) return;\n\n // Body table\n const bodyColumns = bodyTableRef.current.querySelectorAll(`.${styles.wellNameFixed}`);\n\n if (!isHScrollMoved) {\n bodyColumns.forEach(th => th.classList.add(styles.noShadow));\n } else {\n bodyColumns.forEach(th => th.classList.remove(styles.noShadow));\n }\n // TODO: Check reference stability. Initially had bodyTableRef.current\n }, [isHScrollMoved, uniqWells]);\n\n const handleChangeOffsetWellWithAnimation = useCallback(\n (well, checked) => {\n if (checked) {\n capturePositions();\n }\n handleChangeOffsetWell(well, checked);\n },\n [capturePositions, handleChangeOffsetWell]\n );\n\n const combinedTableRef = useCallback(\n node => {\n bodyTableRef.current = node;\n tableBodyRef(node);\n },\n [tableBodyRef]\n );\n\n if (!columnsWithDict) return null;\n\n return (\n <div className={styles.offsetWellsTable}>\n <div className={styles.bodyTableWrapper}>\n <Table aria-label=\"ows table body\" innerRef={combinedTableRef} className={styles.bodyTable}>\n <TableBody>\n {uniqWells.map(well => (\n <OffsetWellsTableRow\n key={well.id}\n columnsWithDict={columnsWithDict}\n subjectWellId={subjectWellId}\n data={well}\n metricsKeys={metricsKeys}\n metricsColumns={metricsColumns}\n handleChangeOffsetWell={handleChangeOffsetWellWithAnimation}\n wellNameStyle={styles.wellNameFixed}\n wellNameWidth={wellNameWidth}\n isImperial={isImperial}\n isLimitedOffsetWells={isLimitedOffsetWells}\n maxOffsetWellNumber={maxOffsetWellNumber}\n wellSections={wellSections}\n setActiveWellId={setActiveWellId}\n onRowClick={onRowClick}\n taScores={taScores}\n isWellSectionColumnVisible={isWellSectionColumnVisible}\n loadingWellIds={loadingWellIds}\n registerRow={registerRow}\n />\n ))}\n {/* Show 1 skeleton row when more wells are pending render */}\n {!isLastWell && (\n <SkeletonTableRow\n columnsWithDict={columnsWithDict}\n metricsKeys={metricsKeys}\n hasCompanyColumn={hasCompanyColumn}\n hasTaColumn={hasTaColumn}\n isWellSectionColumnVisible={isWellSectionColumnVisible}\n wellNameStyle={styles.wellNameFixed}\n />\n )}\n {/* Skeleton rows to fill remaining space when loading */}\n {showSkeletonRows &&\n Array.from({ length: SKELETON_ROW_COUNT }).map((_, index) => (\n <SkeletonTableRow\n key={`skeleton-${index}`}\n columnsWithDict={columnsWithDict}\n metricsKeys={metricsKeys}\n hasCompanyColumn={hasCompanyColumn}\n hasTaColumn={hasTaColumn}\n isWellSectionColumnVisible={isWellSectionColumnVisible}\n wellNameStyle={styles.wellNameFixed}\n />\n ))}\n <TableRow>\n <TableCell className={styles.bottomShadow} />\n </TableRow>\n </TableBody>\n </Table>\n </div>\n </div>\n );\n};\n\nOffsetWellsTableComponent.propTypes = {\n isTableLoading: PropTypes.bool.isRequired,\n subjectWellId: PropTypes.number.isRequired,\n columnsWithDict: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n wells: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n metricsKeys: PropTypes.arrayOf(PropTypes.string).isRequired,\n handleChangeOffsetWell: PropTypes.func.isRequired,\n isLimitedOffsetWells: PropTypes.bool.isRequired,\n maxOffsetWellNumber: PropTypes.number.isRequired,\n wellSections: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n setActiveWellId: PropTypes.func.isRequired,\n onRowClick: PropTypes.func.isRequired,\n taScores: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n isWellSectionColumnVisible: PropTypes.bool.isRequired,\n isLastWell: PropTypes.bool.isRequired,\n loadingWellIds: PropTypes.instanceOf(Set).isRequired,\n scrollContainerRef: PropTypes.shape({ current: PropTypes.instanceOf(Element) }).isRequired,\n isAnimatingRef: PropTypes.shape({ current: PropTypes.bool }).isRequired,\n};\n\nexport const OffsetWellsTable = memo(OffsetWellsTableComponent);\n"],"names":["OffsetWellsTableComponent","_ref","isTableLoading","subjectWellId","columnsWithDict","updatedWells","wells","metricsKeys","handleChangeOffsetWell","isLimitedOffsetWells","maxOffsetWellNumber","wellSections","setActiveWellId","onRowClick","taScores","isWellSectionColumnVisible","isLastWell","loadingWellIds","scrollContainerRef","isAnimatingRef","isLoadAllWells","usePickerPropsStore","state","allWellsLoadProgress","isAllWellsLoading","isComplete","isHScrollMoved","useViewStore","isWellNameExpand","isAnyTileLoading","useViewportStore","isDeferredTileLoading","useDeferredLoading","isLoading","bodyTableRef","useRef","uniqWells","useMemo","uniqBy","wellIds","map","well","id","_useRowReorderAnimati","useRowReorderAnimation","tableBodyRef","registerRow","capturePositions","isImperial","getIsImperial","hasCompanyColumn","some","col","key","ColumnType","company","hasTaColumn","length","showSkeletonRows","metricsColumns","metricsMap","Map","METRICS_LIST","item","get","filter","Boolean","wellNameWidth","EXPANDED_WELL_NAME_WIDTH","TableColumns","minWidth","useLayoutEffect","current","bodyColumns","querySelectorAll","styles","wellNameFixed","forEach","th","classList","remove","noShadow","add","handleChangeOffsetWellWithAnimation","useCallback","checked","combinedTableRef","node","_jsx","className","offsetWellsTable","children","jsx","bodyTableWrapper","Table","innerRef","bodyTable","_jsxs","TableBody","OffsetWellsTableRow","data","wellNameStyle","SkeletonTableRow","Array","from","_","index","concat","TableRow","TableCell","bottomShadow","propTypes","PropTypes","bool","isRequired","number","arrayOf","shape","string","func","instanceOf","Set","Element","OffsetWellsTable","memo"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require('./../../../../ext-esm/tslib/tslib.es6.js'),r=require("react"),t=require("lodash/isEqual"),s=require("zustand"),u=require("../../stores/viewport-store/ViewportStoreContext.js");require("lodash"),require("../../stores/picker-props-store/PickerPropsStoreContext.js"),require("react/jsx-runtime");var n=require("../../stores/picker-props-store/usePickerPropsStore.js"),o=require("../../stores/filter-store/useFilterStore.js"),i=require("../../stores/utils/useContextOrThrow.js");require("@babel/runtime/helpers/defineProperty"),require("uuid"),require("@babel/runtime/helpers/toConsumableArray"),require("lodash/set"),require("lodash/get"),require("lodash/unset"),require("moment"),require("../../../../clients/jsonApi/index.js"),require("../../../../clients/subscriptions/constants.js"),require("../../../../clients/subscriptions.v1.js"),require("../../../../clients/subscriptions/subscriptions-client.factory.js"),require("../../../../clients/api/apiCore.js"),require("../../../../clients/constants.js"),require("../../../../clients/sso/auth0.js"),require("../../../../clients/sso/oauth2.js");var l=require("../../api/shared/fetchers/getAllAssets.js");require("../../constants.js"),require("../../api/shared/dataFormatter.js");var c=require("../useAllWellsCache/useAllWellsCache.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var d=a(t);exports.useAllWells=function(t,a){var f=i.useContextOrThrow(u.ViewportStoreContext),p=s.useStore(f,(function(e){return e.addWellsToTile})),q=s.useStore(f,(function(e){return e.clearTiles})),v=n.usePickerPropsStore((function(e){return e.open})),h=n.usePickerPropsStore((function(e){return e.addWellsUsabilityInfo})),b=n.usePickerPropsStore((function(e){return e.setAllWellsLoadProgress})),j=n.usePickerPropsStore((function(e){return e.setShouldRecenter})),C=o.useFilterStore((function(e){var r;return null!==(r=e.filters.companyId)&&void 0!==r?r:null})),P=c.useAllWellsCache(),g=P.getCachedWellIds,m=P.setCachedWellIds,S=P.clearCache,A=r.useRef(null),w=r.useRef(!1),k=r.useRef(t),x=r.useRef(void 0),W=r.useCallback((function(){return e.__awaiter(void 0,void 0,void 0,(function(){var r,t,s,u,n,o,i,c;return e.__generator(this,(function(e){switch(e.label){case 0:null===(c=A.current)||void 0===c||c.abort(),A.current=new AbortController,r=A.current.signal,e.label=1;case 1:return e.trys.push([1,4,,5]),null!==(t=g())&&(s=f.getState(),(u=t.map((function(e){return s.wells.get(e)})).filter((function(e){return void 0!==e}))).length===t.length)?(b({loaded:u.length,isComplete:!0}),w.current=!0,[2]):(b({loaded:0,isComplete:!1}),[4,l.getAllAssets(C,{signal:r,onProgress:b})]);case 2:return n=e.sent(),r.aborted?[2]:[4,h(n)];case 3:return o=e.sent(),r.aborted?[2]:(p("all-wells",o),m(o.map((function(e){return e.id}))),b({loaded:o.length,isComplete:!0}),w.current=!0,[3,5]);case 4:return"AbortError"===(null==(i=e.sent())?void 0:i.name)?[2]:(console.error("Failed to load all wells:",i),b(null),[3,5]);case 5:return[2]}}))}))}),[f,p,h,C,g,m,b]),y=r.useCallback((function(){var e;null===(e=A.current)||void 0===e||e.abort(),q(),S(),b(null),w.current=!1}),[q,S,b]);r.useEffect((function(){var e=k.current;return k.current=t,t&&!e?(y(),void(a&&W())):!t&&e?(y(),void j(!0)):void(t&&a&&!w.current&&W())}),[t,a,W,y,j]),r.useEffect((function(){void 0!==x.current&&t?d.default(x.current,C)||(S(),q(),w.current=!1,x.current=C,a&&W()):x.current=C}),[t,a,C,S,q,W]),r.useEffect((function(){return function(){var e;null===(e=A.current)||void 0===e||e.abort()}}),[]),r.useEffect((function(){if(!v)return w.current=!1,void(k.current=!1);t&&a&&!w.current&&W()}),[v,t,a,W])};
|
|
2
|
+
//# sourceMappingURL=useAllWells.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,kFAAkF,0CAA6C;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("lz-string"),t=require("lodash/debounce"),n=require("../useTileCache/idle-callback.js"),u=require("./constants.js");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=c(r),a=c(t);exports.useAllWellsCache=function(){var r=e.useRef(null),t=e.useRef(null),c=e.useRef(new Set);e.useEffect((function(){var e=c.current,t=n.scheduleIdleWork((function(){e.delete(t);try{var n=sessionStorage.getItem(u.STORAGE_KEY);if(!n)return;var c=l.default.decompressFromUTF16(n);if(!c)return;var a=JSON.parse(c);Date.now()-a.timestamp>=u.CACHE_TTL||(r.current=a)}catch(e){sessionStorage.removeItem(u.STORAGE_KEY)}}),{timeout:2e3});return e.add(t),function(){n.cancelIdleWork(t),e.delete(t)}}),[]);var s=e.useRef(a.default((function(){var e=t.current;if(e){var r=e,a=n.scheduleIdleWork((function(){c.current.delete(a);try{var e=JSON.stringify(r),n=l.default.compressToUTF16(e);sessionStorage.setItem(u.STORAGE_KEY,n),t.current===r&&(t.current=null)}catch(e){t.current=null}}),{timeout:5e3});c.current.add(a)}}),u.DEBOUNCE_DELAY));return e.useEffect((function(){var e=s.current,r=c.current;return function(){e.cancel(),r.forEach(n.cancelIdleWork),r.clear()}}),[]),{getCachedWellIds:e.useCallback((function(){var e=Date.now(),n=r.current,c=t.current;return n&&e-n.timestamp<u.CACHE_TTL?n.wellIds:c&&e-c.timestamp<u.CACHE_TTL?c.wellIds:(n&&(r.current=null),null)}),[]),setCachedWellIds:e.useCallback((function(e){var n={wellIds:e,timestamp:Date.now()};r.current=n,t.current=n,s.current()}),[]),clearCache:e.useCallback((function(){r.current=null,t.current=null,s.current.cancel(),c.current.forEach(n.cancelIdleWork),c.current.clear(),sessionStorage.removeItem(u.STORAGE_KEY)}),[])}};
|
|
2
|
+
//# sourceMappingURL=useAllWellsCache.js.map
|
package/cjs-bundle/components/OffsetWellPickerV5/effects/useAllWellsCache/useAllWellsCache.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAllWellsCache.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/asyncToGenerator"),r=require("@babel/runtime/helpers/slicedToArray"),s=require("@babel/runtime/regenerator"),i=require("react");require("@babel/runtime/helpers/defineProperty"),require("uuid"),require("lodash"),require("@babel/runtime/helpers/toConsumableArray"),require("lodash/set"),require("lodash/get"),require("lodash/unset"),require("moment"),require("../../../clients/jsonApi/index.js"),require("../../../clients/subscriptions/constants.js"),require("../../../clients/subscriptions.v1.js"),require("../../../clients/subscriptions/subscriptions-client.factory.js"),require("../../../clients/api/apiCore.js"),require("../../../clients/constants.js"),require("../../../clients/sso/auth0.js"),require("../../../clients/sso/oauth2.js");var t=require("../api/companies/fetchCompanies.js");require("../constants.js"),require("../api/shared/dataFormatter.js");var n=require("../../../permissions/usePermissions.js"),u=require("../../../permissions/constants/index.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("../../../permissions/withPermissionsHOC.js"),require("../../../permissions/ProvidePermissions.js"),require("../../../permissions/PermissionsContext.js");var o=a(e),c=a(r),l=a(s);exports.useCompanies=function(e){var r=e.open,s=i.useState([]),a=c.default(s,2),p=a[0],q=a[1],m=n([u.PERMISSIONS.companySelectorView]),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/asyncToGenerator"),r=require("@babel/runtime/helpers/slicedToArray"),s=require("@babel/runtime/regenerator"),i=require("react");require("@babel/runtime/helpers/defineProperty"),require("uuid"),require("lodash"),require("@babel/runtime/helpers/toConsumableArray"),require("lodash/set"),require("lodash/get"),require("lodash/unset"),require("moment"),require("../../../clients/jsonApi/index.js"),require("../../../clients/subscriptions/constants.js"),require("../../../clients/subscriptions.v1.js"),require("../../../clients/subscriptions/subscriptions-client.factory.js"),require("../../../clients/api/apiCore.js"),require("../../../clients/constants.js"),require("../../../clients/sso/auth0.js"),require("../../../clients/sso/oauth2.js");var t=require("../api/companies/fetchCompanies.js");require("../constants.js"),require("../api/shared/dataFormatter.js");var n=require("../../../permissions/usePermissions.js"),u=require("../../../permissions/constants/index.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("../../../permissions/withPermissionsHOC.js"),require("../../../permissions/ProvidePermissions.js"),require("../../../permissions/PermissionsContext.js");var o=a(e),c=a(r),l=a(s);exports.useCompanies=function(e){var r=e.open,s=i.useState([]),a=c.default(s,2),p=a[0],q=a[1],m=n([u.PERMISSIONS.companySelectorView]),d=c.default(m,1)[0],f=d.active,h=d.loading;return i.useEffect((function(){function e(){return(e=o.default(l.default.mark((function e(){var r;return l.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.fetchCompanies();case 2:r=e.sent,q(r);case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}f&&r&&0===p.length&&function(){e.apply(this,arguments)}()}),[f,p.length,r]),{canViewCompanies:f,canViewCompaniesLoading:h,companies:p}};
|
|
2
2
|
//# sourceMappingURL=useCompanies.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCompanies.js","sources":["../../../../../src/components/OffsetWellPickerV5/effects/useCompanies.js"],"sourcesContent":["import { useState, useEffect } from 'react';\n\nimport { fetchCompanies } from '../api';\n\nimport { PERMISSIONS, usePermissions } from '~/permissions';\n\nexport const useCompanies = ({ open }) => {\n const [companies, setCompanies] = useState([]);\n const [{ active: canViewCompanies }] = usePermissions([PERMISSIONS.companySelectorView]);\n\n useEffect(() => {\n async function handleFetchCompanies() {\n const data = await fetchCompanies();\n setCompanies(data);\n }\n\n if (canViewCompanies && open && companies.length === 0) {\n handleFetchCompanies();\n }\n // TODO: Check reference stability\n }, [canViewCompanies, companies.length, open]);\n\n return { canViewCompanies, companies };\n};\n"],"names":["_ref","open","useState","_useState2","_slicedToArray","_useState","companies","setCompanies","_usePermissions","usePermissions","PERMISSIONS","companySelectorView","canViewCompanies","active","useEffect","_handleFetchCompanies","_asyncToGenerator","_regeneratorRuntime","mark","_callee","data","wrap","_context","prev","next","fetchCompanies","sent","stop","apply","this","arguments","length","handleFetchCompanies"],"mappings":"00CAM4B,SAAcA,GAAA,IAAXC,IAAAA,KACKC,EAAAA,EAAQA,SAAC,IAAGC,EAAAC,EAAAA,QAAAC,EAAA,GAAvCC,EAASH,EAAA,GAAEI,EAAYJ,EAAA,GAC9BK,
|
|
1
|
+
{"version":3,"file":"useCompanies.js","sources":["../../../../../src/components/OffsetWellPickerV5/effects/useCompanies.js"],"sourcesContent":["import { useState, useEffect } from 'react';\n\nimport { fetchCompanies } from '../api';\n\nimport { PERMISSIONS, usePermissions } from '~/permissions';\n\nexport const useCompanies = ({ open }) => {\n const [companies, setCompanies] = useState([]);\n const [{ active: canViewCompanies, loading: canViewCompaniesLoading }] = usePermissions([\n PERMISSIONS.companySelectorView,\n ]);\n\n useEffect(() => {\n async function handleFetchCompanies() {\n const data = await fetchCompanies();\n setCompanies(data);\n }\n\n if (canViewCompanies && open && companies.length === 0) {\n handleFetchCompanies();\n }\n // TODO: Check reference stability\n }, [canViewCompanies, companies.length, open]);\n\n return { canViewCompanies, canViewCompaniesLoading, companies };\n};\n"],"names":["_ref","open","useState","_useState2","_slicedToArray","_useState","companies","setCompanies","_usePermissions","usePermissions","PERMISSIONS","companySelectorView","_usePermissions2$","canViewCompanies","active","canViewCompaniesLoading","loading","useEffect","_handleFetchCompanies","_asyncToGenerator","_regeneratorRuntime","mark","_callee","data","wrap","_context","prev","next","fetchCompanies","sent","stop","apply","this","arguments","length","handleFetchCompanies"],"mappings":"00CAM4B,SAAcA,GAAA,IAAXC,IAAAA,KACKC,EAAAA,EAAQA,SAAC,IAAGC,EAAAC,EAAAA,QAAAC,EAAA,GAAvCC,EAASH,EAAA,GAAEI,EAAYJ,EAAA,GAC9BK,EAAyEC,EAAe,CACtFC,EAAWA,YAACC,sBACZC,EAAAR,EAAAA,QAAAI,EAAA,GAAA,GAFeK,IAARC,OAAmCC,IAATC,QAgBnC,OAZAC,EAAAA,WAAU,WAC2B,SAAAC,IAGlC,OAHkCA,EAAnCC,EAAAA,QAAAC,EAAAA,QAAAC,MAAA,SAAAC,IAAA,IAAAC,EAAA,OAAAH,UAAAI,MAAA,SAAAC,GAAA,OAAA,OAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAAA,OAAAF,EAAAE,KAAA,EACqBC,EAAcA,iBAAE,KAAA,EAA7BL,EAAIE,EAAAI,KACVtB,EAAagB,GAAM,KAAA,EAAA,IAAA,MAAA,OAAAE,EAAAK,OAAA,GAAAR,EACpB,MAAAS,MAAAC,KAAAC,UAAA,CAEGpB,GAAoBZ,GAA6B,IAArBK,EAAU4B,QAN5B,WACqBhB,EAAAa,MAAAC,KAAAC,UAAA,CAMjCE,EAGH,GAAE,CAACtB,EAAkBP,EAAU4B,OAAQjC,IAEjC,CAAEY,iBAAAA,EAAkBE,wBAAAA,EAAyBT,UAAAA,EACtD"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("../stores/picker-props-store/usePickerPropsStore.js"),t=require("../stores/filter-store/useFilterStore.js");exports.useLoadAllWellsCompanySafeguard=function(n){var i,u,o=n.companies,s=n.canViewCompanies,l=n.canViewCompaniesLoading,a=r.usePickerPropsStore((function(e){return e.isLoadAllWells})),c=r.usePickerPropsStore((function(e){var r;return null===(r=e.defaultSubjectWell)||void 0===r?void 0:r.companyId})),f=t.useFilterStore((function(e){return e.filters.companyId})),d=t.useFilterStore((function(e){return e.filters.hasUserConfirmedAllCompaniesLoadAll})),p=t.useFilterStore((function(e){return e.setFilter})),v=e.useRef(!1),m=e.useRef(!1),S=(i=f,u=o.length,!i||0===i.length||i.length===u);return e.useEffect((function(){if(!a)return v.current=a,m.current=S,void(d&&p("hasUserConfirmedAllCompaniesLoadAll",void 0));if(!l&&s&&0!==o.length){if(!S||d)return v.current=a,void(m.current=S);var e=v.current;v.current=a;var r=!e,t=m.current;if(m.current=S,r||!t&&S){var n=function(e,r){if(0===r.length)return null;var t=void 0!==e?Number(e):void 0;return void 0!==t&&!Number.isNaN(t)&&r.some((function(e){return e.id===t}))?t:r[0].id}(c,o);null!==n&&p("companyId",[n])}}}),[a,S,d,o,s,l,c,p]),{isSafeguardReady:!l&&(!s||!a||!S||!0===d)}};
|
|
2
|
+
//# sourceMappingURL=useLoadAllWellsCompanySafeguard.js.map
|
package/cjs-bundle/components/OffsetWellPickerV5/effects/useLoadAllWellsCompanySafeguard.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLoadAllWellsCompanySafeguard.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require('./../../../../ext-esm/tslib/tslib.es6.js'),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require('./../../../../ext-esm/tslib/tslib.es6.js'),s=require("../../utils/tile-math.js"),t=require("../../api/shared/fetchers/getAssetsByBounds.js");exports.fetchTile=function(r){return e.__awaiter(void 0,[r],void 0,(function(r){var n,i,a,o,u,l,c,d=r.tileKey,f=r.companyIds,h=r.addWellsUsabilityInfo,y=r.setCachedTile,T=r.addWellsToTile,p=r.setTileStatus;return e.__generator(this,(function(e){switch(e.label){case 0:return e.trys.push([0,5,,6]),p(d,"loading"),n=s.keyToTile(d),i=s.tileToBounds(n),[4,t.getAssetsByBounds(i,f)];case 1:return(a=e.sent()).length>0?[4,h(a)]:[3,3];case 2:return u=e.sent(),[3,4];case 3:u=[],e.label=4;case 4:return y(d,(o=u).map((function(e){return e.id}))),T(d,o),[3,6];case 5:return l=e.sent(),c=l instanceof Error?l.message:"Unknown error",p(d,"error",c),[3,6];case 6:return[2]}}))}))};
|
|
2
2
|
//# sourceMappingURL=fetchTile.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./constants.js"),s=require("./fetchTile.js");exports.processQueue=function i(
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require('./../../../../ext-esm/tslib/tslib.es6.js'),r=require("./constants.js"),s=require("./fetchTile.js");exports.processQueue=function i(n){for(var t=n.queue,u=e.__rest(n,["queue"]),o=function(){var r=t.pending.shift();if(!r)return"break";t.inProgress.add(r),s.fetchTile(e.__assign({tileKey:r},u)).finally((function(){t.inProgress.delete(r),i(n)}))};t.pending.length>0&&t.inProgress.size<r.MAX_CONCURRENT_FETCHES;){if("break"===o())break}};
|
|
2
2
|
//# sourceMappingURL=processQueue.js.map
|
package/cjs-bundle/components/OffsetWellPickerV5/effects/useViewportWells/processQueue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,kFAAkF,0CAA6C;"}
|
package/cjs-bundle/components/OffsetWellPickerV5/effects/useViewportWells/useViewportWells.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("lodash/debounce"),t=require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("lodash/debounce"),t=require("lodash/isEqual"),u=require("zustand"),n=require("../../utils/tile-math.js"),s=require("../../stores/viewport-store/ViewportStoreContext.js");require("lodash"),require("../../stores/picker-props-store/PickerPropsStoreContext.js"),require("react/jsx-runtime");var i=require("../../stores/picker-props-store/usePickerPropsStore.js"),o=require("../../stores/filter-store/useFilterStore.js"),c=require("../../stores/utils/useContextOrThrow.js"),l=require("../useTileCache/useTileCache.js"),a=require("./constants.js"),f=require("./processQueue.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p=d(r),v=d(t);exports.useViewportWells=function(r){void 0===r&&(r=!0);var t=c.useContextOrThrow(s.ViewportStoreContext),d=u.useStore(t,(function(e){return e.bounds})),h=u.useStore(t,(function(e){return e.getTileStatus})),g=u.useStore(t,(function(e){return e.setTileStatus})),S=u.useStore(t,(function(e){return e.addWellsToTile})),T=u.useStore(t,(function(e){return e.clearTiles})),q=i.usePickerPropsStore((function(e){return e.addWellsUsabilityInfo})),C=o.useFilterStore((function(e){var r;return null!==(r=e.filters.companyId)&&void 0!==r?r:null})),j=l.useTileCache(),E=j.getCachedTile,w=j.setCachedTile,P=j.clearCache,b=e.useRef({pending:[],inProgress:new Set}),x=e.useRef((function(){})),k=e.useRef(void 0),y=e.useCallback((function(e){if(r&&e){var u=n.getTilesForViewport(e);if(u.length>n.MAX_TILES_FOR_FETCH)b.current.pending=[];else{var s=u.filter((function(e){var r=h(e);if("loaded"===r||"loading"===r)return!1;var u=E(e);if(null===u)return!0;var n=t.getState(),s=u.map((function(e){return n.wells.get(e)})).filter((function(e){return void 0!==e}));return s.length!==u.length||(S(e,s),!1)}));if(0!==s.length){var i=b.current;s.forEach((function(e){i.pending.includes(e)||i.inProgress.has(e)||i.pending.push(e)})),f.processQueue({queue:i,companyIds:C,addWellsUsabilityInfo:q,setCachedTile:w,addWellsToTile:S,setTileStatus:g})}}}}),[r,S,q,C,E,h,w,g,t]);x.current=y;var _=e.useRef(p.default((function(e){x.current(e)}),a.DEBOUNCE_DELAY));e.useEffect((function(){_.current(d)}),[d]),e.useEffect((function(){if(void 0!==k.current){if(!v.default(k.current,C)&&(P(),T(),b.current.pending=[],k.current=C,r)){var e=t.getState().bounds;e&&x.current(e)}}else k.current=C}),[C,r,t,P,T]),e.useEffect((function(){var e=_.current,r=b.current;return function(){e.cancel(),r.pending=[]}}),[])};
|
|
2
2
|
//# sourceMappingURL=useViewportWells.js.map
|
package/cjs-bundle/components/OffsetWellPickerV5/stores/filter-store/utils/normalizeFilters.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require('./../../../../../ext-esm/tslib/tslib.es6.js');exports.normalizeFilters=function(s){if(
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require('./../../../../../ext-esm/tslib/tslib.es6.js');exports.normalizeFilters=function(s){if(null!=s){var o,l=s.selectionMode,r=s.polygonCoords;return"lasso"!==l||(o=r,Boolean(o&&o.length>=3))?s:e.__assign(e.__assign({},s),{selectionMode:"radius"})}};
|
|
2
2
|
//# sourceMappingURL=normalizeFilters.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require('./../../../../ext-esm/tslib/tslib.es6.js'),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require('./../../../../ext-esm/tslib/tslib.es6.js'),l=require("react/jsx-runtime"),s=require("react"),r=require("lodash"),t=require("./createPickerPropsStore.js"),a=require("./PickerPropsStoreContext.js"),i=require("./utils/getEffectiveIsLoadAllWells.js"),o=require("../utils/useSyncProps.js"),u=require("../utils/useStableCallback.js");exports.PickerPropsStoreProvider=function(n){var c=n.children,d=e.__rest(n,["children"]),f=s.useRef(null),y=u.useStableCallback(d.onSave),k=u.useStableCallback(d.onClose),b=u.useStableCallback(d.addWellsUsabilityInfo);return f.current||(f.current=t.createPickerPropsStore(e.__assign(e.__assign({},d),{onSave:y,onClose:k,addWellsUsabilityInfo:b}))),o.useSyncProps(f.current,d,[{key:"open"},{key:"isViewOnly"},{key:"isWDUser"},{key:"defaultSubjectWell",equals:r.isEqual},{key:"offsetSettings",equals:r.isEqual},{key:"currentUser",equals:r.isEqual},{key:"maxOffsetSize"},{key:"localMaxOffsetSize"},{key:"syncAutoEnabled"},{key:"isManualWellsEnabled"},{key:"isGlobalMode"},{key:"loadAllWellsByDefault"},{key:"isLoadAllWells",transform:function(e,l){var s;return i.getEffectiveIsLoadAllWells({offsetSettingsIsLoadAllWells:null===(s=l.offsetSettings)||void 0===s?void 0:s.isLoadAllWells,loadAllWellsByDefault:l.loadAllWellsByDefault,isGlobalMode:l.isGlobalMode})}}]),l.jsx(a.PickerPropsStoreContext.Provider,{value:f.current,children:c})};
|
|
2
2
|
//# sourceMappingURL=PickerPropsStoreProvider.js.map
|
package/cjs-bundle/components/OffsetWellPickerV5/stores/picker-props-store/createPickerPropsStore.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var l=require("zustand"),e=require("lodash"),s=require("./utils/getEffectiveIsLoadAllWells.js");exports.createPickerPropsStore=function(o){var t,a=s.getEffectiveIsLoadAllWells({offsetSettingsIsLoadAllWells:null===(t=o.offsetSettings)||void 0===t?void 0:t.isLoadAllWells,loadAllWellsByDefault:o.loadAllWellsByDefault,isGlobalMode:o.isGlobalMode});return l.createStore()((function(l){var s,t,n,i,d,r,u,f,W;return{open:o.open,defaultSubjectWell:o.defaultSubjectWell,offsetSettings:o.offsetSettings,currentUser:o.currentUser,addWellsUsabilityInfo:null!==(s=o.addWellsUsabilityInfo)&&void 0!==s?s:e.identity,onSave:o.onSave,onClose:o.onClose,isViewOnly:null!==(t=o.isViewOnly)&&void 0!==t&&t,isWDUser:null!==(n=o.isWDUser)&&void 0!==n&&n,maxOffsetSize:null!==(i=o.maxOffsetSize)&&void 0!==i?i:50,localMaxOffsetSize:null!==(d=o.localMaxOffsetSize)&&void 0!==d?d:50,syncAutoEnabled:null!==(r=o.syncAutoEnabled)&&void 0!==r&&r,isManualWellsEnabled:null!==(u=o.isManualWellsEnabled)&&void 0!==u&&u,isGlobalMode:null!==(f=o.isGlobalMode)&&void 0!==f&&f,loadAllWellsByDefault:null!==(W=o.loadAllWellsByDefault)&&void 0!==W&&W,isLoadAllWells:a,allWellsLoadProgress:null,shouldRecenter:!1,toggleLoadAllWells:function(){l((function(l){return{isLoadAllWells:!l.isLoadAllWells,allWellsLoadProgress:null}}))},resetIsLoadAllWells:function(){l({isLoadAllWells:a,allWellsLoadProgress:null})},setIsLoadAllWells:function(e){l({isLoadAllWells:e,allWellsLoadProgress:null})},setAllWellsLoadProgress:function(e){l({allWellsLoadProgress:e})},setShouldRecenter:function(e){l({shouldRecenter:e})}}}))};
|
|
2
2
|
//# sourceMappingURL=createPickerPropsStore.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.getEffectiveIsLoadAllWells=function(e){var l=e.offsetSettingsIsLoadAllWells,t=e.loadAllWellsByDefault,o=e.isGlobalMode;return void 0!==l?l:void 0!==t?t:!0===o};
|
|
2
|
+
//# sourceMappingURL=getEffectiveIsLoadAllWells.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getEffectiveIsLoadAllWells.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require('./../../../../ext-esm/tslib/tslib.es6.js'),s=require("react/jsx-runtime"),n=require("classnames"),i=require("react"),o=require("moment"),t=require("@material-ui/core"),r=require("../../../TextEndTruncated/TextEndTruncated.js"),c=require("../../../Button/Button.js"),u=require("../DqStatusIcon/DqStatusIcon.js");require("../DqStatusIcon/DqStatusIcon.constants.js");var l=require("../../../AppDqPopover/AppDqPopover.js"),a=require("../../../Menu/Menu.js"),d=require("../../../../components/AppIcon/AppIcon.js"),p=require("../../../../utils/devcenter.js"),m=require("../../../Text/Text.js"),j=require("../../../Accordion/Accordion.js"),I=require("../AppRemoveConfirmationModal/AppRemoveConfirmationModal.js"),q=require("../AssetSelector/AssetSelector.js");require("../AssetSelector/constants.js");var v=require("../../../../constants/segment.js"),x=require("../../../AppCommonsProvider/AppCommonsContext.js"),A=require("../../../UniversalLink/UniversalLink.js"),f=require("./AppTitle.constants.js"),T=require("../../../AppContainer/headerCommon.scss.js"),h=require("./AppTitle.scss.js"),C=require("../../../../icons/iconParkIcons.js"),g=require("../../../../icons/customIcons/icons/AddMessage.js");require("../../../../icons/customIcons/icons/Attention.js"),require("../../../../icons/customIcons/icons/Collapse.js"),require("../../../../icons/customIcons/icons/Dashboard.js"),require("../../../../icons/customIcons/icons/Expand.js"),require("../../../../icons/customIcons/icons/FolderClosed.js"),require("../../../../icons/customIcons/icons/FolderClosedFilled.js"),require("../../../../icons/customIcons/icons/FolderOpened.js"),require("../../../../icons/customIcons/icons/GreaterOrEqual.js"),require("../../../../icons/customIcons/icons/LessOrEqual.js"),require("../../../../icons/customIcons/icons/Search.js"),require("../../../../icons/customIcons/icons/SearchOne.js"),require("../../../../icons/customIcons/icons/Wellhub.js"),require("../../../../icons/customIcons/icons/MultiRuler.js"),require("../../../../icons/customIcons/icons/Checkbox.js"),require("../../../../icons/customIcons/icons/CheckboxChecked.js"),require("../../../../icons/customIcons/icons/CheckboxIndeterminate.js"),require("../../../../icons/customIcons/icons/Radio.js"),require("../../../../icons/customIcons/icons/RadioChecked.js"),require("../../../../icons/customIcons/icons/SimulFrac.js"),require("../../../../icons/customIcons/icons/ZipperFrac.js"),require("../../../../icons/customIcons/icons/CautionFilled.js"),require("../../../../icons/customIcons/icons/MoreApp.js"),require("../../../../icons/customIcons/icons/Pad.js"),require("../../../../icons/customIcons/icons/DrilloutUnit.js"),require("../../../../icons/customIcons/icons/FracFleet.js"),require("../../../../icons/customIcons/icons/Global.js"),require("../../../../icons/customIcons/icons/Program.js"),require("../../../../icons/customIcons/icons/Rig.js"),require("../../../../icons/customIcons/icons/Well.js"),require("../../../../icons/customIcons/icons/Gap.js"),require("../../../../icons/customIcons/icons/Pin.js"),require("../../../../icons/customIcons/icons/CloseOneFilled.js"),require("../../../../icons/customIcons/icons/AttentionFilled.js"),require("../../../../icons/customIcons/icons/CheckOneFilled.js"),require("../../../../icons/customIcons/icons/Archive.js"),require("../../../../icons/customIcons/icons/ArchiveCancel.js"),require("../../../../icons/customIcons/icons/Unarchive.js"),require("../../../../icons/customIcons/icons/Archived.js"),require("../../../../icons/customIcons/icons/InterventionUnit.js"),require("../../../../icons/customIcons/icons/CloudDelete.js"),require("../../../../icons/customIcons/icons/Lasso.js"),require("../../../../icons/customIcons/icons/Radius.js"),require("../../../../clients/subscriptions/constants.js"),require("@babel/runtime/helpers/slicedToArray"),require("@babel/runtime/helpers/asyncToGenerator"),require("@babel/runtime/helpers/defineProperty"),require("@babel/runtime/regenerator"),require("querystring"),require("uuid/v1"),require("lodash"),require("../../../../clients/subscriptions.v1.js"),require("../../../../clients/jsonApi/index.js"),require("../../../../clients/subscriptions/subscriptions-client.factory.js");var b=require("../../../../effects/useOutsideClick.js");require("../../../../utils/index.js");var k=require("../../../../effects/useWellnessAlerts.js");function M(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("lodash/get"),require("lodash/isEmpty"),require("lodash/sortBy"),require("../../../../constants/completion.js"),require("../../../../constants/streamSourceType.js"),require("../../../../components/DevCenter/DevCenterAppContainer/components/CommentsSwitch/CommentsSwitchContext.js");var N=M(n),S=M(o),y=function(e){return e&&"asset_id"in e?{name:e.name,id:e.asset_id}:e};exports.AppTitle=function(n){var o,M,D,E,R,F,O,z,L=n.asset,P=n.className,B=n.dqData,_=n.lastUpdate,U=n.title,w=n.disableAssetSelector,H=n.titleMenuActions,G=n.style,W=x.useAppCommonsInternal(),Y=W.app,V=W.appId,Z=W.maximized,J=W.toggleAnnotationsList,K=W.onHelpCenterClick,Q=W.secondaryMenuItems,X=W.appName,$=W.layoutEnvironment,ee=W.isInsideNewMobileApp,se=i.useState(!1),ne=se[0],ie=se[1],oe=i.useRef(),te=i.useRef(),re=i.useRef(null),ce=i.useRef(null),ue=i.useState(!1),le=ue[0],ae=ue[1],de=i.useRef(null),pe=i.useCallback((function(){return ie((function(e){return!e}))}),[]),me=i.useCallback((function(){return ae((function(e){return!e}))}),[]),je=i.useCallback((function(){clearTimeout(oe.current),clearTimeout(te.current),oe.current=setTimeout((function(){ie(!0)}),300)}),[]),Ie=i.useCallback((function(){clearTimeout(oe.current),clearTimeout(te.current),oe.current=setTimeout((function(){ie(!1)}),700)}),[]);b(ce,pe,[re.current]);var qe=(L instanceof Array&&L.length>0||!!L)&&!B&&!ee,ve=k.useWellnessAlerts({isDCApp:qe,appId:V,multiRigAssets:L instanceof Array?L:void 0,asset:L instanceof Array?void 0:y(L),maximized:Z,dashboards:[]}),xe=B||ve,Ae=(qe||!!B)&&!ee,fe=(null===(o=null==xe?void 0:xe.wellnessAlerts)||void 0===o?void 0:o.alertsData)||{},Te=function(e){if(e){if("number"==typeof e){var s=Date.now();return Math.abs(s-e)>Math.abs(s-1e3*e)?S.default.unix(e):S.default(e)}return S.default(e)}return null}(_),he=i.useCallback((function(){me(),null==J||J()}),[J,me]),Ce=i.useCallback((function(){me(),null==K||K()}),[K,me]),ge=i.useState(!1),be=ge[0],ke=ge[1],Me=i.useCallback((function(){me(),ke(!0)}),[me]),Ne=i.useCallback((function(){ke(!1)}),[]),Se=i.useMemo((function(){return[].concat(Q||[]).concat(H||[]).map((function(s){return e.__assign(e.__assign({},s),{onClick:function(){var e;me(),null===(e=s.onClick)||void 0===e||e.call(s)}})}))}),[Q,H,me]),ye=!!(null===(R=null===(E=null===(D=null===(M=Y.package)||void 0===M?void 0:M.manifest)||void 0===D?void 0:D.application)||void 0===E?void 0:E.ui)||void 0===R?void 0:R.multi_rig),De="asset"===(null==$?void 0:$.type),Ee=p.getAppSegment(Y)===v.SEGMENTS.COMPLETION,Re=!(ye||De&&Ee||w),Fe=(null==Te?void 0:Te.isValid())?"Last Update: ".concat(Te.format("MMM D YYYY, hh:mm A")):void 0,Oe=U||X;return ee?s.jsx("div",{className:N.default(h.root,P),children:s.jsx("div",{className:h.title,children:s.jsx(r.TextEndTruncated,{className:N.default(h.titleText),testId:f.AppTitleTestIds.AppNameTestId,children:Oe})})}):s.jsxs("div",{className:N.default(h.root,P),style:G,children:[Ae&&s.jsx(u.DqStatusIcon,{statusBadgeIconType:xe.statusBadgeIconType,className:h.dqBadge,onClick:pe,onMouseEnter:je,onMouseLeave:Ie,ref:re}),s.jsx(c.Button,{type:"tertiary",size:"small",className:h.title,suffix:s.jsx("div",{className:N.default(h.titleChevron,T.titleChevron,le&&h.titleChevronOpen),children:s.jsx(C.DownIcon,{size:16})}),ref:de,onClick:me,children:s.jsx(r.TextEndTruncated,{className:N.default(h.titleText,Ae&&h.withDq),testId:f.AppTitleTestIds.AppNameTestId,children:Oe})}),s.jsx(l.AppDqPopover,{open:ne,anchorEl:re.current,placement:"bottom-start",alertsData:fe,onClose:pe,contentRef:ce,onMouseEnter:je,onMouseLeave:Ie}),s.jsxs(a.Menu,{anchorEl:de.current,open:le,className:h.menuRoot,onClose:me,children:[s.jsxs(A.UniversalLink,{href:"/app-store/app/".concat(null===(F=null==Y?void 0:Y.app)||void 0===F?void 0:F.id),className:h.menuHeader,"data-testid":f.AppTitleTestIds.AppStoreLinkTestId,children:[s.jsx(d.AppIcon,{"data-testid":f.AppTitleTestIds.AppIconTestId,className:h.appIcon,segment:[p.getAppSegment(Y)],iconUrl:null===(z=null===(O=null==Y?void 0:Y.app)||void 0===O?void 0:O.icon)||void 0===z?void 0:z.url,height:40,width:40}),s.jsxs("div",{className:h.menuHeaderText,children:[s.jsx(m.Text,{children:s.jsx(r.TextEndTruncated,{testId:f.AppTitleTestIds.MenuAppNameTestId,children:X})}),s.jsx(m.Text,{size:12,color:"T6",children:"Open in Appstore"})]})]}),s.jsx("div",{className:h.divider}),Re&&s.jsx(a.Menu.Item,{size:"large",disableClickEffect:!0,className:h.assetMenuItem,children:s.jsx(j.Accordion,{title:s.jsxs("div",{className:h.accordionTitle,children:[s.jsx(C.SettingOneIcon,{size:24,className:h.accordionIcon}),"Change Asset"]}),iconPosition:"end",titleHover:!1,testId:f.AppTitleTestIds.AssetSelectorAccordionTestId,children:s.jsx(q.AssetSelector,{})})}),null==Se?void 0:Se.map((function(e,n){return s.jsxs(i.Fragment,{children:[s.jsx("div",{className:h.divider}),s.jsx(a.Menu.Item,{size:"large",onClick:e.onClick,prefix:"string"==typeof e.icon?s.jsx(t.Icon,{children:e.icon}):e.icon,testId:f.AppTitleTestIds.AdditionalSelectionTestId,children:e.title})]},n)})),K&&s.jsxs(s.Fragment,{children:[s.jsx("div",{className:h.divider}),s.jsx(a.Menu.Item,{size:"large",prefix:s.jsx(C.HelpIcon,{}),onClick:Ce,testId:f.AppTitleTestIds.HelpCenterLinkTestId,children:"Help Center"})]}),J&&s.jsxs(s.Fragment,{children:[s.jsx("div",{className:h.divider}),s.jsx(a.Menu.Item,{size:"large",prefix:s.jsx(g.AddMessageCustomIcon,{fill:"currentColor"}),onClick:he,testId:f.AppTitleTestIds.AnnotationsTestId,children:"Add Annotation"})]}),s.jsx("div",{className:h.divider}),s.jsx(a.Menu.Item,{size:"large",prefix:s.jsx(C.DeleteFourIcon,{}),type:"destructive",onClick:Me,testId:f.AppTitleTestIds.RemoveAppTestId,children:"Remove App"}),(null==Te?void 0:Te.isValid())&&s.jsxs(s.Fragment,{children:[s.jsx("div",{className:h.divider}),s.jsxs("div",{className:h.footer,children:[s.jsx(u.DqStatusIcon,{statusBadgeIconType:xe.statusBadgeIconType,className:h.footerDqBadge,ref:re}),Fe&&s.jsx(m.Text,{size:12,color:"T6",children:Fe})]})]})]}),s.jsx(I.AppRemoveConfirmationModal,{open:be,onClose:Ne})]})};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require('./../../../../ext-esm/tslib/tslib.es6.js'),s=require("react/jsx-runtime"),n=require("classnames"),i=require("react"),o=require("moment"),t=require("@material-ui/core"),r=require("../../../TextEndTruncated/TextEndTruncated.js"),c=require("../../../Button/Button.js"),u=require("../DqStatusIcon/DqStatusIcon.js");require("../DqStatusIcon/DqStatusIcon.constants.js");var l=require("../../../AppDqPopover/AppDqPopover.js"),a=require("../../../Menu/Menu.js"),d=require("../../../../components/AppIcon/AppIcon.js"),p=require("../../../../utils/devcenter.js"),m=require("../../../Text/Text.js"),j=require("../../../Accordion/Accordion.js"),I=require("../AppRemoveConfirmationModal/AppRemoveConfirmationModal.js"),q=require("../AssetSelector/AssetSelector.js");require("../AssetSelector/constants.js");var v=require("../../../../constants/segment.js"),x=require("../../../AppCommonsProvider/AppCommonsContext.js"),A=require("../../../UniversalLink/UniversalLink.js"),f=require("./AppTitle.constants.js"),h=require("../../../AppContainer/headerCommon.scss.js"),T=require("./AppTitle.scss.js"),C=require("../../../../icons/iconParkIcons.js"),g=require("../../../../icons/customIcons/icons/AddMessage.js");require("../../../../icons/customIcons/icons/Attention.js"),require("../../../../icons/customIcons/icons/Collapse.js"),require("../../../../icons/customIcons/icons/Dashboard.js"),require("../../../../icons/customIcons/icons/Expand.js"),require("../../../../icons/customIcons/icons/FolderClosed.js"),require("../../../../icons/customIcons/icons/FolderClosedFilled.js"),require("../../../../icons/customIcons/icons/FolderOpened.js"),require("../../../../icons/customIcons/icons/GreaterOrEqual.js"),require("../../../../icons/customIcons/icons/LessOrEqual.js"),require("../../../../icons/customIcons/icons/Search.js"),require("../../../../icons/customIcons/icons/SearchOne.js"),require("../../../../icons/customIcons/icons/Wellhub.js"),require("../../../../icons/customIcons/icons/MultiRuler.js"),require("../../../../icons/customIcons/icons/Checkbox.js"),require("../../../../icons/customIcons/icons/CheckboxChecked.js"),require("../../../../icons/customIcons/icons/CheckboxIndeterminate.js"),require("../../../../icons/customIcons/icons/Radio.js"),require("../../../../icons/customIcons/icons/RadioChecked.js"),require("../../../../icons/customIcons/icons/SimulFrac.js"),require("../../../../icons/customIcons/icons/ZipperFrac.js"),require("../../../../icons/customIcons/icons/CautionFilled.js"),require("../../../../icons/customIcons/icons/MoreApp.js"),require("../../../../icons/customIcons/icons/Pad.js"),require("../../../../icons/customIcons/icons/DrilloutUnit.js"),require("../../../../icons/customIcons/icons/FracFleet.js"),require("../../../../icons/customIcons/icons/Global.js"),require("../../../../icons/customIcons/icons/Program.js"),require("../../../../icons/customIcons/icons/Rig.js"),require("../../../../icons/customIcons/icons/Well.js"),require("../../../../icons/customIcons/icons/Gap.js"),require("../../../../icons/customIcons/icons/Pin.js"),require("../../../../icons/customIcons/icons/CloseOneFilled.js"),require("../../../../icons/customIcons/icons/AttentionFilled.js"),require("../../../../icons/customIcons/icons/CheckOneFilled.js"),require("../../../../icons/customIcons/icons/Archive.js"),require("../../../../icons/customIcons/icons/ArchiveCancel.js"),require("../../../../icons/customIcons/icons/Unarchive.js"),require("../../../../icons/customIcons/icons/Archived.js"),require("../../../../icons/customIcons/icons/InterventionUnit.js"),require("../../../../icons/customIcons/icons/CloudDelete.js"),require("../../../../icons/customIcons/icons/Lasso.js"),require("../../../../icons/customIcons/icons/Radius.js"),require("../../../../clients/subscriptions/constants.js"),require("@babel/runtime/helpers/slicedToArray"),require("@babel/runtime/helpers/asyncToGenerator"),require("@babel/runtime/helpers/defineProperty"),require("@babel/runtime/regenerator"),require("querystring"),require("uuid/v1"),require("lodash"),require("../../../../clients/subscriptions.v1.js"),require("../../../../clients/jsonApi/index.js"),require("../../../../clients/subscriptions/subscriptions-client.factory.js");var b=require("../../../../effects/useOutsideClick.js");require("../../../../utils/index.js");var k=require("../../../../effects/useWellnessAlerts.js");function M(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("lodash/get"),require("lodash/isEmpty"),require("lodash/sortBy"),require("../../../../constants/completion.js"),require("../../../../constants/streamSourceType.js"),require("../../../../components/DevCenter/DevCenterAppContainer/components/CommentsSwitch/CommentsSwitchContext.js");var N=M(n),S=M(o),y=function(e){return e&&"asset_id"in e?{name:e.name,id:e.asset_id}:e};exports.AppTitle=function(n){var o,M,D,R,E,F,O,z,L=n.asset,P=n.className,B=n.dqData,_=n.lastUpdate,U=n.title,w=n.disableAssetSelector,H=n.titleMenuActions,G=n.style,W=x.useAppCommonsInternal(),Y=W.app,V=W.appId,Z=W.maximized,J=W.toggleAnnotationsList,K=W.onHelpCenterClick,Q=W.secondaryMenuItems,X=W.appName,$=W.layoutEnvironment,ee=W.isInsideNewMobileApp,se=W.onAppRemove,ne=i.useState(!1),ie=ne[0],oe=ne[1],te=i.useRef(),re=i.useRef(),ce=i.useRef(null),ue=i.useRef(null),le=i.useState(!1),ae=le[0],de=le[1],pe=i.useRef(null),me=i.useCallback((function(){return oe((function(e){return!e}))}),[]),je=i.useCallback((function(){return de((function(e){return!e}))}),[]),Ie=i.useCallback((function(){clearTimeout(te.current),clearTimeout(re.current),te.current=setTimeout((function(){oe(!0)}),300)}),[]),qe=i.useCallback((function(){clearTimeout(te.current),clearTimeout(re.current),te.current=setTimeout((function(){oe(!1)}),700)}),[]);b(ue,me,[ce.current]);var ve=(L instanceof Array&&L.length>0||!!L)&&!B&&!ee,xe=k.useWellnessAlerts({isDCApp:ve,appId:V,multiRigAssets:L instanceof Array?L:void 0,asset:L instanceof Array?void 0:y(L),maximized:Z,dashboards:[]}),Ae=B||xe,fe=(ve||!!B)&&!ee,he=(null===(o=null==Ae?void 0:Ae.wellnessAlerts)||void 0===o?void 0:o.alertsData)||{},Te=function(e){if(e){if("number"==typeof e){var s=Date.now();return Math.abs(s-e)>Math.abs(s-1e3*e)?S.default.unix(e):S.default(e)}return S.default(e)}return null}(_),Ce=i.useCallback((function(){je(),null==J||J()}),[J,je]),ge=i.useCallback((function(){je(),null==K||K()}),[K,je]),be=i.useState(!1),ke=be[0],Me=be[1],Ne=i.useCallback((function(){je(),Me(!0)}),[je]),Se=i.useCallback((function(){Me(!1)}),[]),ye=i.useMemo((function(){return[].concat(Q||[]).concat(H||[]).map((function(s){return e.__assign(e.__assign({},s),{onClick:function(){var e;je(),null===(e=s.onClick)||void 0===e||e.call(s)}})}))}),[Q,H,je]),De=!!(null===(E=null===(R=null===(D=null===(M=Y.package)||void 0===M?void 0:M.manifest)||void 0===D?void 0:D.application)||void 0===R?void 0:R.ui)||void 0===E?void 0:E.multi_rig),Re="asset"===(null==$?void 0:$.type),Ee=p.getAppSegment(Y)===v.SEGMENTS.COMPLETION,Fe=!(De||Re&&Ee||w),Oe=(null==Te?void 0:Te.isValid())?"Last Update: ".concat(Te.format("MMM D YYYY, hh:mm A")):void 0,ze=U||X;return ee?s.jsx("div",{className:N.default(T.root,P),children:s.jsx("div",{className:T.title,children:s.jsx(r.TextEndTruncated,{className:N.default(T.titleText),testId:f.AppTitleTestIds.AppNameTestId,children:ze})})}):s.jsxs("div",{className:N.default(T.root,P),style:G,children:[fe&&s.jsx(u.DqStatusIcon,{statusBadgeIconType:Ae.statusBadgeIconType,className:T.dqBadge,onClick:me,onMouseEnter:Ie,onMouseLeave:qe,ref:ce}),s.jsx(c.Button,{type:"tertiary",size:"small",className:T.title,suffix:s.jsx("div",{className:N.default(T.titleChevron,h.titleChevron,ae&&T.titleChevronOpen),children:s.jsx(C.DownIcon,{size:16})}),ref:pe,onClick:je,children:s.jsx(r.TextEndTruncated,{className:N.default(T.titleText,fe&&T.withDq),testId:f.AppTitleTestIds.AppNameTestId,children:ze})}),s.jsx(l.AppDqPopover,{open:ie,anchorEl:ce.current,placement:"bottom-start",alertsData:he,onClose:me,contentRef:ue,onMouseEnter:Ie,onMouseLeave:qe}),s.jsxs(a.Menu,{anchorEl:pe.current,open:ae,className:T.menuRoot,onClose:je,children:[s.jsxs(A.UniversalLink,{href:"/app-store/app/".concat(null===(F=null==Y?void 0:Y.app)||void 0===F?void 0:F.id),className:T.menuHeader,"data-testid":f.AppTitleTestIds.AppStoreLinkTestId,children:[s.jsx(d.AppIcon,{"data-testid":f.AppTitleTestIds.AppIconTestId,className:T.appIcon,segment:[p.getAppSegment(Y)],iconUrl:null===(z=null===(O=null==Y?void 0:Y.app)||void 0===O?void 0:O.icon)||void 0===z?void 0:z.url,height:40,width:40}),s.jsxs("div",{className:T.menuHeaderText,children:[s.jsx(m.Text,{children:s.jsx(r.TextEndTruncated,{testId:f.AppTitleTestIds.MenuAppNameTestId,children:X})}),s.jsx(m.Text,{size:12,color:"T6",children:"Open in Appstore"})]})]}),s.jsx("div",{className:T.divider}),Fe&&s.jsx(a.Menu.Item,{size:"large",disableClickEffect:!0,className:T.assetMenuItem,children:s.jsx(j.Accordion,{title:s.jsxs("div",{className:T.accordionTitle,children:[s.jsx(C.SettingOneIcon,{size:24,className:T.accordionIcon}),"Change Asset"]}),iconPosition:"end",titleHover:!1,testId:f.AppTitleTestIds.AssetSelectorAccordionTestId,children:s.jsx(q.AssetSelector,{})})}),null==ye?void 0:ye.map((function(e,n){return s.jsxs(i.Fragment,{children:[s.jsx("div",{className:T.divider}),s.jsx(a.Menu.Item,{size:"large",onClick:e.onClick,prefix:"string"==typeof e.icon?s.jsx(t.Icon,{children:e.icon}):e.icon,testId:f.AppTitleTestIds.AdditionalSelectionTestId,children:e.title})]},n)})),K&&s.jsxs(s.Fragment,{children:[s.jsx("div",{className:T.divider}),s.jsx(a.Menu.Item,{size:"large",prefix:s.jsx(C.HelpIcon,{}),onClick:ge,testId:f.AppTitleTestIds.HelpCenterLinkTestId,children:"Help Center"})]}),J&&s.jsxs(s.Fragment,{children:[s.jsx("div",{className:T.divider}),s.jsx(a.Menu.Item,{size:"large",prefix:s.jsx(g.AddMessageCustomIcon,{fill:"currentColor"}),onClick:Ce,testId:f.AppTitleTestIds.AnnotationsTestId,children:"Add Annotation"})]}),se&&s.jsxs(s.Fragment,{children:[s.jsx("div",{className:T.divider}),s.jsx(a.Menu.Item,{size:"large",prefix:s.jsx(C.DeleteFourIcon,{}),type:"destructive",onClick:Ne,testId:f.AppTitleTestIds.RemoveAppTestId,children:"Remove App"})]}),(null==Te?void 0:Te.isValid())&&s.jsxs(s.Fragment,{children:[s.jsx("div",{className:T.divider}),s.jsxs("div",{className:T.footer,children:[s.jsx(u.DqStatusIcon,{statusBadgeIconType:Ae.statusBadgeIconType,className:T.footerDqBadge,ref:ce}),Oe&&s.jsx(m.Text,{size:12,color:"T6",children:Oe})]})]})]}),s.jsx(I.AppRemoveConfirmationModal,{open:ke,onClose:Se})]})};
|
|
2
2
|
//# sourceMappingURL=AppTitle.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"@babel/runtime/helpers/defineProperty";import n from"@babel/runtime/helpers/slicedToArray";import r from"@babel/runtime/helpers/objectWithoutProperties";import{useMemo as t,useRef as o,useState as i,useEffect as a,useContext as p,useCallback as s}from"react";import l from"classnames";import{withRouter as c}from"react-router";import{noop as u}from"lodash";import d from"prop-types";import{APP_IFRAME_ATTRIBUTE as m,IsolatedPage as v}from"./IsolatedPage.js";import{ISOLATED_PAGE_APP_CONTAINER_ID as f}from"./constants.js";import C from"./DevCenterIsolatedApp.module.css.js";import b from"../AppContext.js";import g from"../../../permissions/PermissionsContext.js";import"../../../permissions/constants/index.js";import"../../../permissions/withPermissionsHOC.js";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/regenerator";import"../../../clients/jsonApi/index.js";import"../../../permissions/ProvidePermissions.js";import{getUserUnits as j,subscribeForUserUnitsUpdates as A}from"../../../utils/index.js";import"../AppHeader/AppHeader.js";import"../AppSideBar/AppSideBar.js";import"../AppsDataProvider/AppsDataProvider.js";import h from"../DevCenterAppContainer/DevCenterAppContainer.js";import"../NavigationBar/NavigationBar.js";import"../SideBar/SideBar.js";import"../AppSettingsPopover/AppSettingsPopover.js";import"../AppFilterPanelLayout/AppFilterPanelLayout.js";import"../DevCenterRouterContext/DevCenterRouterContext.js";import"../DevCenterRouterContext/UniversalLink/UniversalLink.js";import{jsx as M}from"react/jsx-runtime";import"./DevCenterIsolatedAppPage.js";import{getAppVersion as y}from"../DevCenterAppContainer/utils.js";import{isInsideNewMobileApp as I}from"../../../utils/mobileDetect.js";import{createDevCenterRouter as x,isCorvaApp as P,isIsolationEnabledInPackageManifest as w,isAppMaximized as D}from"../../../utils/devcenter.js";var O=["isIsolationFeatureEnabled","onAppFullscreenTransparentMode","onIsMaximizedChange","onInnerContainerMouseEnter","onInnerContainerMouseLeave","onAppContainerClick","setInnerContainerRefFn"];function S(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function L(n){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?S(Object(t),!0).forEach((function(r){e(n,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):S(Object(t)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}))}return n}function E(e){var c,u,d,S,E,F,T,R=e.isIsolationFeatureEnabled,k=e.onAppFullscreenTransparentMode,z=e.onIsMaximizedChange,B=e.onInnerContainerMouseEnter,_=e.onInnerContainerMouseLeave,N=e.onAppContainerClick,q=e.setInnerContainerRefFn,U=r(e,O),W=t((function(){return x(U.router)}),[null===(c=U.router)||void 0===c?void 0:c.location]),H=P(null==U||null===(u=U.app)||void 0===u?void 0:u.app)&&!w(null==U||null===(d=U.app)||void 0===d?void 0:d.package)||!R,V=H?h:v,G=null===(S=U.app)||void 0===S||null===(E=S.app)||void 0===E?void 0:E.app_key,J=y(U.app),K="".concat(G,"-").concat(J),Q=o(),X=o(),Y=o(),Z=o(!1),$=o(!1),ee=D(null===(F=U.router)||void 0===F||null===(T=F.location)||void 0===T?void 0:T.query,U.app.id),ne=o(ee);ne.current=ee;var re=i(j()),te=n(re,2),oe=te[0],ie=te[1];a((function(){var e=A((function(e){return ie(e)}));return function(){return e()}}),[]);var ae=p(b),pe=g();function se(){k({appId:U.app.id,isModeEnabled:!1}),document.body.classList.remove("dc-isolated-app__body-overflow",C.compensateScroll)}var le=s((function(e){var n,r,t,o,i,a=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!R||H||ne.current&&!Z.current||Z.current===e){var p;a&&$.current!==a&&($.current=a,null===(p=X.current)||void 0===p||p.classList.add(C.containerMaximizedTransparentModal))}else{var s,l=e?"add":"remove";if(null===(n=X.current)||void 0===n||n.classList[l](C.containerMaximizedTransparent),a||"remove"===l)null===(s=X.current)||void 0===s||s.classList[l](C.containerMaximizedTransparentModal);Q.current=null===(r=X.current)||void 0===r||null===(t=r.querySelector("[".concat(m,"]")))||void 0===t||null===(o=t.contentWindow)||void 0===o?void 0:o.document;var c=null===(i=Q.current)||void 0===i?void 0:i.getElementById(f);if(c){if(e){var u=Y.current.getBoundingClientRect(),d=u.top,v=u.left,b=u.width,g=u.height;c.setAttribute("style","\n top: ".concat(d,"px;\n left: ").concat(v,"px;\n width: ").concat(b,"px;\n height: ").concat(g,"px;\n position: absolute;\n ")),k({appId:U.app.id,isModeEnabled:!0});var j=window.innerWidth!==document.body.clientWidth;document.body.classList.add("dc-isolated-app__body-overflow",j&&C.compensateScroll)}else c.setAttribute("style",""),se();Z.current=e,$.current=a}}}),[R,H,ne]);a((function(){return se}),[]),a((function(){ee&&Z.current&&le(!1)}),[ee]);var ce=s((function(e){X.current=e,q(e)}),[]);return M("div",{className:l("dc-isolated-app",C.fixedSizeContainer),ref:Y,children:M("div",{ref:ce,onMouseEnter:B,onMouseLeave:_,"data-testid":"".concat("DevCenter_AppContainer","_").concat(U.app.app.name),className:l(C.container,I&&C.newMobileAppContainer,ee&&C.containerMaximized),children:M(V,L(L({},U),{},{appContextValue:ae,devCenterRouter:W,globalNotificationToastsAPI:window[Symbol.for("notificationToasts")],globalMixpanelEventTracker:window[Symbol.for("logToMixpanel")],onAppContainerClick:N,onIsMaximizedChange:z,permissionsContextValue:pe,setIsFullscreenModalMode:le,userUnits:oe}),K)})})}E.propTypes={app:d.shape({id:d.number,app:d.shape({name:d.string})}).isRequired,currentUser:d.shape({}).isRequired,isIsolationFeatureEnabled:d.bool,onAppContainerClick:d.func,onAppFullscreenTransparentMode:d.func,onAppRemove:d.func,onInnerContainerMouseEnter:d.func,onInnerContainerMouseLeave:d.func,onIsMaximizedChange:d.func,onSettingChange:d.func,onSettingsChange:d.func,setInnerContainerRefFn:d.func,updateCurrentDashboardAppLastAnnotation:d.func},E.defaultProps={isIsolationFeatureEnabled:!1,onAppContainerClick:u,onAppFullscreenTransparentMode:u,onAppRemove:
|
|
1
|
+
import e from"@babel/runtime/helpers/defineProperty";import n from"@babel/runtime/helpers/slicedToArray";import r from"@babel/runtime/helpers/objectWithoutProperties";import{useMemo as t,useRef as o,useState as i,useEffect as a,useContext as p,useCallback as s}from"react";import l from"classnames";import{withRouter as c}from"react-router";import{noop as u}from"lodash";import d from"prop-types";import{APP_IFRAME_ATTRIBUTE as m,IsolatedPage as v}from"./IsolatedPage.js";import{ISOLATED_PAGE_APP_CONTAINER_ID as f}from"./constants.js";import C from"./DevCenterIsolatedApp.module.css.js";import b from"../AppContext.js";import g from"../../../permissions/PermissionsContext.js";import"../../../permissions/constants/index.js";import"../../../permissions/withPermissionsHOC.js";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/regenerator";import"../../../clients/jsonApi/index.js";import"../../../permissions/ProvidePermissions.js";import{getUserUnits as j,subscribeForUserUnitsUpdates as A}from"../../../utils/index.js";import"../AppHeader/AppHeader.js";import"../AppSideBar/AppSideBar.js";import"../AppsDataProvider/AppsDataProvider.js";import h from"../DevCenterAppContainer/DevCenterAppContainer.js";import"../NavigationBar/NavigationBar.js";import"../SideBar/SideBar.js";import"../AppSettingsPopover/AppSettingsPopover.js";import"../AppFilterPanelLayout/AppFilterPanelLayout.js";import"../DevCenterRouterContext/DevCenterRouterContext.js";import"../DevCenterRouterContext/UniversalLink/UniversalLink.js";import{jsx as M}from"react/jsx-runtime";import"./DevCenterIsolatedAppPage.js";import{getAppVersion as y}from"../DevCenterAppContainer/utils.js";import{isInsideNewMobileApp as I}from"../../../utils/mobileDetect.js";import{createDevCenterRouter as x,isCorvaApp as P,isIsolationEnabledInPackageManifest as w,isAppMaximized as D}from"../../../utils/devcenter.js";var O=["isIsolationFeatureEnabled","onAppFullscreenTransparentMode","onIsMaximizedChange","onInnerContainerMouseEnter","onInnerContainerMouseLeave","onAppContainerClick","setInnerContainerRefFn"];function S(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function L(n){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?S(Object(t),!0).forEach((function(r){e(n,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):S(Object(t)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}))}return n}function E(e){var c,u,d,S,E,F,T,R=e.isIsolationFeatureEnabled,k=e.onAppFullscreenTransparentMode,z=e.onIsMaximizedChange,B=e.onInnerContainerMouseEnter,_=e.onInnerContainerMouseLeave,N=e.onAppContainerClick,q=e.setInnerContainerRefFn,U=r(e,O),W=t((function(){return x(U.router)}),[null===(c=U.router)||void 0===c?void 0:c.location]),H=P(null==U||null===(u=U.app)||void 0===u?void 0:u.app)&&!w(null==U||null===(d=U.app)||void 0===d?void 0:d.package)||!R,V=H?h:v,G=null===(S=U.app)||void 0===S||null===(E=S.app)||void 0===E?void 0:E.app_key,J=y(U.app),K="".concat(G,"-").concat(J),Q=o(),X=o(),Y=o(),Z=o(!1),$=o(!1),ee=D(null===(F=U.router)||void 0===F||null===(T=F.location)||void 0===T?void 0:T.query,U.app.id),ne=o(ee);ne.current=ee;var re=i(j()),te=n(re,2),oe=te[0],ie=te[1];a((function(){var e=A((function(e){return ie(e)}));return function(){return e()}}),[]);var ae=p(b),pe=g();function se(){k({appId:U.app.id,isModeEnabled:!1}),document.body.classList.remove("dc-isolated-app__body-overflow",C.compensateScroll)}var le=s((function(e){var n,r,t,o,i,a=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!R||H||ne.current&&!Z.current||Z.current===e){var p;a&&$.current!==a&&($.current=a,null===(p=X.current)||void 0===p||p.classList.add(C.containerMaximizedTransparentModal))}else{var s,l=e?"add":"remove";if(null===(n=X.current)||void 0===n||n.classList[l](C.containerMaximizedTransparent),a||"remove"===l)null===(s=X.current)||void 0===s||s.classList[l](C.containerMaximizedTransparentModal);Q.current=null===(r=X.current)||void 0===r||null===(t=r.querySelector("[".concat(m,"]")))||void 0===t||null===(o=t.contentWindow)||void 0===o?void 0:o.document;var c=null===(i=Q.current)||void 0===i?void 0:i.getElementById(f);if(c){if(e){var u=Y.current.getBoundingClientRect(),d=u.top,v=u.left,b=u.width,g=u.height;c.setAttribute("style","\n top: ".concat(d,"px;\n left: ").concat(v,"px;\n width: ").concat(b,"px;\n height: ").concat(g,"px;\n position: absolute;\n ")),k({appId:U.app.id,isModeEnabled:!0});var j=window.innerWidth!==document.body.clientWidth;document.body.classList.add("dc-isolated-app__body-overflow",j&&C.compensateScroll)}else c.setAttribute("style",""),se();Z.current=e,$.current=a}}}),[R,H,ne]);a((function(){return se}),[]),a((function(){ee&&Z.current&&le(!1)}),[ee]);var ce=s((function(e){X.current=e,q(e)}),[]);return M("div",{className:l("dc-isolated-app",C.fixedSizeContainer),ref:Y,children:M("div",{ref:ce,onMouseEnter:B,onMouseLeave:_,"data-testid":"".concat("DevCenter_AppContainer","_").concat(U.app.app.name),className:l(C.container,I&&C.newMobileAppContainer,ee&&C.containerMaximized),children:M(V,L(L({},U),{},{appContextValue:ae,devCenterRouter:W,globalNotificationToastsAPI:window[Symbol.for("notificationToasts")],globalMixpanelEventTracker:window[Symbol.for("logToMixpanel")],onAppContainerClick:N,onIsMaximizedChange:z,permissionsContextValue:pe,setIsFullscreenModalMode:le,userUnits:oe}),K)})})}E.propTypes={app:d.shape({id:d.number,app:d.shape({name:d.string})}).isRequired,currentUser:d.shape({}).isRequired,isIsolationFeatureEnabled:d.bool,onAppContainerClick:d.func,onAppFullscreenTransparentMode:d.func,onAppRemove:d.func,onInnerContainerMouseEnter:d.func,onInnerContainerMouseLeave:d.func,onIsMaximizedChange:d.func,onSettingChange:d.func,onSettingsChange:d.func,setInnerContainerRefFn:d.func,updateCurrentDashboardAppLastAnnotation:d.func},E.defaultProps={isIsolationFeatureEnabled:!1,onAppContainerClick:u,onAppFullscreenTransparentMode:u,onAppRemove:void 0,onInnerContainerMouseEnter:u,onInnerContainerMouseLeave:u,onIsMaximizedChange:u,onSettingChange:u,onSettingsChange:u,setInnerContainerRefFn:u,updateCurrentDashboardAppLastAnnotation:u};var F=c(E);export{F as DevCenterIsolatedApp};
|
|
2
2
|
//# sourceMappingURL=DevCenterIsolatedApp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevCenterIsolatedApp.js","sources":["../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js"],"sourcesContent":["import { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { withRouter } from 'react-router';\nimport { noop } from 'lodash';\nimport PropTypes from 'prop-types';\n\nimport { IsolatedPage, APP_IFRAME_ATTRIBUTE } from './IsolatedPage';\nimport { ISOLATED_PAGE_APP_CONTAINER_ID } from './constants';\n\nimport styles from './DevCenterIsolatedApp.module.css';\n\nimport AppContext from '~/components/DevCenter/AppContext';\nimport { usePermissionsContext } from '~/permissions';\nimport { devcenter as devCenterUtils, getUserUnits, subscribeForUserUnitsUpdates } from '~/utils';\nimport { DevCenterAppContainer } from '~/components/DevCenter';\nimport { getAppVersion } from '~/components/DevCenter/DevCenterAppContainer/utils';\nimport { isInsideNewMobileApp } from '~/utils/mobileDetect';\n\nconst PAGE_NAME = 'DevCenter_AppContainer';\n\nfunction DevCenterIsolatedAppComponent({\n isIsolationFeatureEnabled,\n onAppFullscreenTransparentMode,\n onIsMaximizedChange,\n onInnerContainerMouseEnter,\n onInnerContainerMouseLeave,\n onAppContainerClick,\n setInnerContainerRefFn,\n ...props\n}) {\n const devCenterRouter = useMemo(\n () => devCenterUtils.createDevCenterRouter(props.router),\n [props.router?.location]\n );\n\n const isNonIsolatedApp =\n (devCenterUtils.isCorvaApp(props?.app?.app) &&\n !devCenterUtils.isIsolationEnabledInPackageManifest(props?.app?.package)) ||\n !isIsolationFeatureEnabled;\n\n const DCAppComponent = isNonIsolatedApp ? DevCenterAppContainer : IsolatedPage;\n\n // Key to force iframe recreation when app version changes.\n // This ensures global dependencies are re-initialized for the new version.\n const appKey = props.app?.app?.app_key;\n const appVersion = getAppVersion(props.app);\n const iframeKey = `${appKey}-${appVersion}`;\n\n const appIframeDocument = useRef();\n const containerRef = useRef();\n const fixedSizeContainerRef = useRef();\n const fullscreenModeRef = useRef(false);\n const fullscreenModalModeRef = useRef(false);\n\n const isAppMaximized = devCenterUtils.isAppMaximized(props.router?.location?.query, props.app.id);\n\n // save to ref to not re-create setIsFullscreenModalMode callback on change and reduce the amoount of DC apps re-renders\n const isAppMaximizedRef = useRef(isAppMaximized);\n isAppMaximizedRef.current = isAppMaximized;\n\n const [userUnits, setUserUnits] = useState(getUserUnits());\n\n useEffect(() => {\n const unsubscribeFn = subscribeForUserUnitsUpdates(newUserUnits => setUserUnits(newUserUnits));\n\n return () => unsubscribeFn();\n }, []);\n\n const appContextValue = useContext(AppContext);\n const permissionsContextValue = usePermissionsContext();\n\n /*\n What is fullscreen modal mode?\n\n Our apps, are shown in isolated iFrames. Because of it, when an app has some modal\n and opens it - it's opened inside of its iframe, instead of opening at the center of the screen.\n\n To make app modals & other elements be opened at the center of the screen, as if they are not inside of an iframe,\n we use some hacks.\n\n When the app wants to open a fullscreen element, we make its iframe fullscreen, but with transparent background,\n and we set width/height & position of that app iframe to inner app container that is located inside of the iframe.\n So when iframe's fullscreen element is opened, it looks like it's a part of the platform, and the app which shows the element, looks like\n usual, not in fullscreen\n\n So the platform provides this setIsFullscreenModalMode function to DC apps.\n When DC app wants to open a modal that should be opened at the center of the screen - it needs to\n call setIsFullscreenModalMode(true) first. And when it closes the modal - setIsFullscreenModalMode(false)\n\n Two things are important about this\n - all these styles that make this invisible background work should be applied at once\n - enter and exit from the mode, shouldn't trigger even a single re-render, as it may impact\n some elements inside the DC app\n\n There's a second parameter to `setIsFullscreenModalMode`: `isModal`. It should be used when a fullscreen overlay is displayed\n (Modal, for instance) that should cover everything on screen.\n\n What it does - it basically sets the stretched element's z-index to a very high value, so it covers every other UI element in CWF\n */\n\n function handleAppFullscreenTransparentModeExit() {\n onAppFullscreenTransparentMode({ appId: props.app.id, isModeEnabled: false });\n document.body.classList.remove('dc-isolated-app__body-overflow', styles.compensateScroll);\n }\n\n const setIsFullscreenModalMode = useCallback(\n function setIsFullscreenModalMode(nextIsFullscreenModalModeValue, isModal = false) {\n // When an app is already in fullscreen mode, no need to use this\n // invisible fullscreen mode to make elements take the whole screen\n\n if (\n !isIsolationFeatureEnabled ||\n isNonIsolatedApp ||\n (isAppMaximizedRef.current && !fullscreenModeRef.current) ||\n fullscreenModeRef.current === nextIsFullscreenModalModeValue\n ) {\n // Adding modal class if modal is opened when non-modal is already open\n if (isModal && fullscreenModalModeRef.current !== isModal) {\n fullscreenModalModeRef.current = isModal;\n containerRef.current?.classList.add(styles.containerMaximizedTransparentModal);\n }\n\n return;\n }\n\n const classesEditMethod = nextIsFullscreenModalModeValue ? 'add' : 'remove';\n\n containerRef.current?.classList[classesEditMethod](styles.containerMaximizedTransparent);\n\n if (isModal || classesEditMethod === 'remove') {\n containerRef.current?.classList[classesEditMethod](\n styles.containerMaximizedTransparentModal\n );\n }\n\n appIframeDocument.current = containerRef.current?.querySelector(\n `[${APP_IFRAME_ATTRIBUTE}]`\n )?.contentWindow?.document;\n\n const isolatedPageAppContainer = appIframeDocument.current?.getElementById(\n ISOLATED_PAGE_APP_CONTAINER_ID\n );\n\n if (!isolatedPageAppContainer) {\n return;\n }\n\n if (nextIsFullscreenModalModeValue) {\n const { top, left, width, height } = fixedSizeContainerRef.current.getBoundingClientRect();\n\n // We need to directly set inner iFrame container sizes together with DC platform styles\n // as passing this as props and using some effect inside of an iframe\n // results in a slight delay, which looks like a quick layout jump\n isolatedPageAppContainer.setAttribute(\n 'style',\n `\n top: ${top}px;\n left: ${left}px;\n width: ${width}px;\n height: ${height}px;\n position: absolute;\n `\n );\n onAppFullscreenTransparentMode({ appId: props.app.id, isModeEnabled: true });\n const isBodyScrollVisible = window.innerWidth !== document.body.clientWidth;\n document.body.classList.add(\n 'dc-isolated-app__body-overflow',\n isBodyScrollVisible && styles.compensateScroll\n );\n } else {\n isolatedPageAppContainer.setAttribute('style', '');\n handleAppFullscreenTransparentModeExit();\n }\n fullscreenModeRef.current = nextIsFullscreenModalModeValue;\n fullscreenModalModeRef.current = isModal;\n },\n [isIsolationFeatureEnabled, isNonIsolatedApp, isAppMaximizedRef]\n );\n\n useEffect(() => {\n return handleAppFullscreenTransparentModeExit;\n }, []);\n\n useEffect(() => {\n if (isAppMaximized && fullscreenModeRef.current) {\n setIsFullscreenModalMode(false);\n }\n }, [isAppMaximized]);\n\n /**\n * This should be the same function as calling react-intersection-observer's ref setter actually triggers re-render.\n * Which in its turn causes infinite re-render loop.\n */\n const setContainerRefs = useCallback(node => {\n containerRef.current = node;\n setInnerContainerRefFn(node);\n }, []);\n\n return (\n <div\n className={classNames('dc-isolated-app', styles.fixedSizeContainer)}\n ref={fixedSizeContainerRef}\n >\n <div\n ref={setContainerRefs}\n onMouseEnter={onInnerContainerMouseEnter}\n onMouseLeave={onInnerContainerMouseLeave}\n data-testid={`${PAGE_NAME}_${props.app.app.name}`}\n className={classNames(\n styles.container,\n isInsideNewMobileApp && styles.newMobileAppContainer,\n isAppMaximized && styles.containerMaximized\n )}\n >\n <DCAppComponent\n key={iframeKey}\n {...props}\n appContextValue={appContextValue}\n devCenterRouter={devCenterRouter}\n globalNotificationToastsAPI={window[Symbol.for('notificationToasts')]}\n globalMixpanelEventTracker={window[Symbol.for('logToMixpanel')]}\n onAppContainerClick={onAppContainerClick}\n onIsMaximizedChange={onIsMaximizedChange}\n permissionsContextValue={permissionsContextValue}\n setIsFullscreenModalMode={setIsFullscreenModalMode}\n userUnits={userUnits}\n />\n </div>\n </div>\n );\n}\n\nDevCenterIsolatedAppComponent.propTypes = {\n app: PropTypes.shape({\n id: PropTypes.number,\n app: PropTypes.shape({\n name: PropTypes.string,\n }),\n }).isRequired,\n currentUser: PropTypes.shape({}).isRequired,\n isIsolationFeatureEnabled: PropTypes.bool,\n onAppContainerClick: PropTypes.func,\n onAppFullscreenTransparentMode: PropTypes.func,\n onAppRemove: PropTypes.func,\n onInnerContainerMouseEnter: PropTypes.func,\n onInnerContainerMouseLeave: PropTypes.func,\n onIsMaximizedChange: PropTypes.func,\n onSettingChange: PropTypes.func,\n onSettingsChange: PropTypes.func,\n setInnerContainerRefFn: PropTypes.func,\n updateCurrentDashboardAppLastAnnotation: PropTypes.func,\n};\n\nDevCenterIsolatedAppComponent.defaultProps = {\n isIsolationFeatureEnabled: false,\n onAppContainerClick: noop,\n onAppFullscreenTransparentMode: noop,\n onAppRemove: noop,\n onInnerContainerMouseEnter: noop,\n onInnerContainerMouseLeave: noop,\n onIsMaximizedChange: noop,\n onSettingChange: noop,\n onSettingsChange: noop,\n setInnerContainerRefFn: noop,\n updateCurrentDashboardAppLastAnnotation: noop,\n};\n\nexport const DevCenterIsolatedApp = withRouter(DevCenterIsolatedAppComponent);\n"],"names":["DevCenterIsolatedAppComponent","_ref","_props$router","_props$app","_props$app2","_props$app3","_props$app3$app","_props$router2","_props$router2$locati","isIsolationFeatureEnabled","onAppFullscreenTransparentMode","onIsMaximizedChange","onInnerContainerMouseEnter","onInnerContainerMouseLeave","onAppContainerClick","setInnerContainerRefFn","props","_objectWithoutProperties","_excluded","devCenterRouter","useMemo","devCenterUtils","router","location","isNonIsolatedApp","app","package","DCAppComponent","DevCenterAppContainer","IsolatedPage","appKey","app_key","appVersion","getAppVersion","iframeKey","concat","appIframeDocument","useRef","containerRef","fixedSizeContainerRef","fullscreenModeRef","fullscreenModalModeRef","isAppMaximized","query","id","isAppMaximizedRef","current","_useState","useState","getUserUnits","_useState2","_slicedToArray","userUnits","setUserUnits","useEffect","unsubscribeFn","subscribeForUserUnitsUpdates","newUserUnits","appContextValue","useContext","AppContext","permissionsContextValue","usePermissionsContext","handleAppFullscreenTransparentModeExit","appId","isModeEnabled","document","body","classList","remove","styles","compensateScroll","setIsFullscreenModalMode","useCallback","nextIsFullscreenModalModeValue","_containerRef$current2","_containerRef$current4","_containerRef$current5","_containerRef$current6","_appIframeDocument$cu","isModal","_containerRef$current","add","containerMaximizedTransparentModal","_containerRef$current3","classesEditMethod","containerMaximizedTransparent","querySelector","APP_IFRAME_ATTRIBUTE","contentWindow","isolatedPageAppContainer","getElementById","ISOLATED_PAGE_APP_CONTAINER_ID","_fixedSizeContainerRe","getBoundingClientRect","top","left","width","height","setAttribute","isBodyScrollVisible","window","innerWidth","clientWidth","setContainerRefs","node","_jsx","className","classNames","fixedSizeContainer","ref","children","onMouseEnter","onMouseLeave","PAGE_NAME","name","container","isInsideNewMobileApp","newMobileAppContainer","containerMaximized","_objectSpread","globalNotificationToastsAPI","Symbol","for","globalMixpanelEventTracker","propTypes","PropTypes","shape","number","string","isRequired","currentUser","bool","func","onAppRemove","onSettingChange","onSettingsChange","updateCurrentDashboardAppLastAnnotation","defaultProps","noop","DevCenterIsolatedApp","withRouter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DevCenterIsolatedApp.js","sources":["../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js"],"sourcesContent":["import { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { withRouter } from 'react-router';\nimport { noop } from 'lodash';\nimport PropTypes from 'prop-types';\n\nimport { IsolatedPage, APP_IFRAME_ATTRIBUTE } from './IsolatedPage';\nimport { ISOLATED_PAGE_APP_CONTAINER_ID } from './constants';\n\nimport styles from './DevCenterIsolatedApp.module.css';\n\nimport AppContext from '~/components/DevCenter/AppContext';\nimport { usePermissionsContext } from '~/permissions';\nimport { devcenter as devCenterUtils, getUserUnits, subscribeForUserUnitsUpdates } from '~/utils';\nimport { DevCenterAppContainer } from '~/components/DevCenter';\nimport { getAppVersion } from '~/components/DevCenter/DevCenterAppContainer/utils';\nimport { isInsideNewMobileApp } from '~/utils/mobileDetect';\n\nconst PAGE_NAME = 'DevCenter_AppContainer';\n\nfunction DevCenterIsolatedAppComponent({\n isIsolationFeatureEnabled,\n onAppFullscreenTransparentMode,\n onIsMaximizedChange,\n onInnerContainerMouseEnter,\n onInnerContainerMouseLeave,\n onAppContainerClick,\n setInnerContainerRefFn,\n ...props\n}) {\n const devCenterRouter = useMemo(\n () => devCenterUtils.createDevCenterRouter(props.router),\n [props.router?.location]\n );\n\n const isNonIsolatedApp =\n (devCenterUtils.isCorvaApp(props?.app?.app) &&\n !devCenterUtils.isIsolationEnabledInPackageManifest(props?.app?.package)) ||\n !isIsolationFeatureEnabled;\n\n const DCAppComponent = isNonIsolatedApp ? DevCenterAppContainer : IsolatedPage;\n\n // Key to force iframe recreation when app version changes.\n // This ensures global dependencies are re-initialized for the new version.\n const appKey = props.app?.app?.app_key;\n const appVersion = getAppVersion(props.app);\n const iframeKey = `${appKey}-${appVersion}`;\n\n const appIframeDocument = useRef();\n const containerRef = useRef();\n const fixedSizeContainerRef = useRef();\n const fullscreenModeRef = useRef(false);\n const fullscreenModalModeRef = useRef(false);\n\n const isAppMaximized = devCenterUtils.isAppMaximized(props.router?.location?.query, props.app.id);\n\n // save to ref to not re-create setIsFullscreenModalMode callback on change and reduce the amoount of DC apps re-renders\n const isAppMaximizedRef = useRef(isAppMaximized);\n isAppMaximizedRef.current = isAppMaximized;\n\n const [userUnits, setUserUnits] = useState(getUserUnits());\n\n useEffect(() => {\n const unsubscribeFn = subscribeForUserUnitsUpdates(newUserUnits => setUserUnits(newUserUnits));\n\n return () => unsubscribeFn();\n }, []);\n\n const appContextValue = useContext(AppContext);\n const permissionsContextValue = usePermissionsContext();\n\n /*\n What is fullscreen modal mode?\n\n Our apps, are shown in isolated iFrames. Because of it, when an app has some modal\n and opens it - it's opened inside of its iframe, instead of opening at the center of the screen.\n\n To make app modals & other elements be opened at the center of the screen, as if they are not inside of an iframe,\n we use some hacks.\n\n When the app wants to open a fullscreen element, we make its iframe fullscreen, but with transparent background,\n and we set width/height & position of that app iframe to inner app container that is located inside of the iframe.\n So when iframe's fullscreen element is opened, it looks like it's a part of the platform, and the app which shows the element, looks like\n usual, not in fullscreen\n\n So the platform provides this setIsFullscreenModalMode function to DC apps.\n When DC app wants to open a modal that should be opened at the center of the screen - it needs to\n call setIsFullscreenModalMode(true) first. And when it closes the modal - setIsFullscreenModalMode(false)\n\n Two things are important about this\n - all these styles that make this invisible background work should be applied at once\n - enter and exit from the mode, shouldn't trigger even a single re-render, as it may impact\n some elements inside the DC app\n\n There's a second parameter to `setIsFullscreenModalMode`: `isModal`. It should be used when a fullscreen overlay is displayed\n (Modal, for instance) that should cover everything on screen.\n\n What it does - it basically sets the stretched element's z-index to a very high value, so it covers every other UI element in CWF\n */\n\n function handleAppFullscreenTransparentModeExit() {\n onAppFullscreenTransparentMode({ appId: props.app.id, isModeEnabled: false });\n document.body.classList.remove('dc-isolated-app__body-overflow', styles.compensateScroll);\n }\n\n const setIsFullscreenModalMode = useCallback(\n function setIsFullscreenModalMode(nextIsFullscreenModalModeValue, isModal = false) {\n // When an app is already in fullscreen mode, no need to use this\n // invisible fullscreen mode to make elements take the whole screen\n\n if (\n !isIsolationFeatureEnabled ||\n isNonIsolatedApp ||\n (isAppMaximizedRef.current && !fullscreenModeRef.current) ||\n fullscreenModeRef.current === nextIsFullscreenModalModeValue\n ) {\n // Adding modal class if modal is opened when non-modal is already open\n if (isModal && fullscreenModalModeRef.current !== isModal) {\n fullscreenModalModeRef.current = isModal;\n containerRef.current?.classList.add(styles.containerMaximizedTransparentModal);\n }\n\n return;\n }\n\n const classesEditMethod = nextIsFullscreenModalModeValue ? 'add' : 'remove';\n\n containerRef.current?.classList[classesEditMethod](styles.containerMaximizedTransparent);\n\n if (isModal || classesEditMethod === 'remove') {\n containerRef.current?.classList[classesEditMethod](\n styles.containerMaximizedTransparentModal\n );\n }\n\n appIframeDocument.current = containerRef.current?.querySelector(\n `[${APP_IFRAME_ATTRIBUTE}]`\n )?.contentWindow?.document;\n\n const isolatedPageAppContainer = appIframeDocument.current?.getElementById(\n ISOLATED_PAGE_APP_CONTAINER_ID\n );\n\n if (!isolatedPageAppContainer) {\n return;\n }\n\n if (nextIsFullscreenModalModeValue) {\n const { top, left, width, height } = fixedSizeContainerRef.current.getBoundingClientRect();\n\n // We need to directly set inner iFrame container sizes together with DC platform styles\n // as passing this as props and using some effect inside of an iframe\n // results in a slight delay, which looks like a quick layout jump\n isolatedPageAppContainer.setAttribute(\n 'style',\n `\n top: ${top}px;\n left: ${left}px;\n width: ${width}px;\n height: ${height}px;\n position: absolute;\n `\n );\n onAppFullscreenTransparentMode({ appId: props.app.id, isModeEnabled: true });\n const isBodyScrollVisible = window.innerWidth !== document.body.clientWidth;\n document.body.classList.add(\n 'dc-isolated-app__body-overflow',\n isBodyScrollVisible && styles.compensateScroll\n );\n } else {\n isolatedPageAppContainer.setAttribute('style', '');\n handleAppFullscreenTransparentModeExit();\n }\n fullscreenModeRef.current = nextIsFullscreenModalModeValue;\n fullscreenModalModeRef.current = isModal;\n },\n [isIsolationFeatureEnabled, isNonIsolatedApp, isAppMaximizedRef]\n );\n\n useEffect(() => {\n return handleAppFullscreenTransparentModeExit;\n }, []);\n\n useEffect(() => {\n if (isAppMaximized && fullscreenModeRef.current) {\n setIsFullscreenModalMode(false);\n }\n }, [isAppMaximized]);\n\n /**\n * This should be the same function as calling react-intersection-observer's ref setter actually triggers re-render.\n * Which in its turn causes infinite re-render loop.\n */\n const setContainerRefs = useCallback(node => {\n containerRef.current = node;\n setInnerContainerRefFn(node);\n }, []);\n\n return (\n <div\n className={classNames('dc-isolated-app', styles.fixedSizeContainer)}\n ref={fixedSizeContainerRef}\n >\n <div\n ref={setContainerRefs}\n onMouseEnter={onInnerContainerMouseEnter}\n onMouseLeave={onInnerContainerMouseLeave}\n data-testid={`${PAGE_NAME}_${props.app.app.name}`}\n className={classNames(\n styles.container,\n isInsideNewMobileApp && styles.newMobileAppContainer,\n isAppMaximized && styles.containerMaximized\n )}\n >\n <DCAppComponent\n key={iframeKey}\n {...props}\n appContextValue={appContextValue}\n devCenterRouter={devCenterRouter}\n globalNotificationToastsAPI={window[Symbol.for('notificationToasts')]}\n globalMixpanelEventTracker={window[Symbol.for('logToMixpanel')]}\n onAppContainerClick={onAppContainerClick}\n onIsMaximizedChange={onIsMaximizedChange}\n permissionsContextValue={permissionsContextValue}\n setIsFullscreenModalMode={setIsFullscreenModalMode}\n userUnits={userUnits}\n />\n </div>\n </div>\n );\n}\n\nDevCenterIsolatedAppComponent.propTypes = {\n app: PropTypes.shape({\n id: PropTypes.number,\n app: PropTypes.shape({\n name: PropTypes.string,\n }),\n }).isRequired,\n currentUser: PropTypes.shape({}).isRequired,\n isIsolationFeatureEnabled: PropTypes.bool,\n onAppContainerClick: PropTypes.func,\n onAppFullscreenTransparentMode: PropTypes.func,\n onAppRemove: PropTypes.func,\n onInnerContainerMouseEnter: PropTypes.func,\n onInnerContainerMouseLeave: PropTypes.func,\n onIsMaximizedChange: PropTypes.func,\n onSettingChange: PropTypes.func,\n onSettingsChange: PropTypes.func,\n setInnerContainerRefFn: PropTypes.func,\n updateCurrentDashboardAppLastAnnotation: PropTypes.func,\n};\n\nDevCenterIsolatedAppComponent.defaultProps = {\n isIsolationFeatureEnabled: false,\n onAppContainerClick: noop,\n onAppFullscreenTransparentMode: noop,\n onAppRemove: undefined,\n onInnerContainerMouseEnter: noop,\n onInnerContainerMouseLeave: noop,\n onIsMaximizedChange: noop,\n onSettingChange: noop,\n onSettingsChange: noop,\n setInnerContainerRefFn: noop,\n updateCurrentDashboardAppLastAnnotation: noop,\n};\n\nexport const DevCenterIsolatedApp = withRouter(DevCenterIsolatedAppComponent);\n"],"names":["DevCenterIsolatedAppComponent","_ref","_props$router","_props$app","_props$app2","_props$app3","_props$app3$app","_props$router2","_props$router2$locati","isIsolationFeatureEnabled","onAppFullscreenTransparentMode","onIsMaximizedChange","onInnerContainerMouseEnter","onInnerContainerMouseLeave","onAppContainerClick","setInnerContainerRefFn","props","_objectWithoutProperties","_excluded","devCenterRouter","useMemo","devCenterUtils","router","location","isNonIsolatedApp","app","package","DCAppComponent","DevCenterAppContainer","IsolatedPage","appKey","app_key","appVersion","getAppVersion","iframeKey","concat","appIframeDocument","useRef","containerRef","fixedSizeContainerRef","fullscreenModeRef","fullscreenModalModeRef","isAppMaximized","query","id","isAppMaximizedRef","current","_useState","useState","getUserUnits","_useState2","_slicedToArray","userUnits","setUserUnits","useEffect","unsubscribeFn","subscribeForUserUnitsUpdates","newUserUnits","appContextValue","useContext","AppContext","permissionsContextValue","usePermissionsContext","handleAppFullscreenTransparentModeExit","appId","isModeEnabled","document","body","classList","remove","styles","compensateScroll","setIsFullscreenModalMode","useCallback","nextIsFullscreenModalModeValue","_containerRef$current2","_containerRef$current4","_containerRef$current5","_containerRef$current6","_appIframeDocument$cu","isModal","_containerRef$current","add","containerMaximizedTransparentModal","_containerRef$current3","classesEditMethod","containerMaximizedTransparent","querySelector","APP_IFRAME_ATTRIBUTE","contentWindow","isolatedPageAppContainer","getElementById","ISOLATED_PAGE_APP_CONTAINER_ID","_fixedSizeContainerRe","getBoundingClientRect","top","left","width","height","setAttribute","isBodyScrollVisible","window","innerWidth","clientWidth","setContainerRefs","node","_jsx","className","classNames","fixedSizeContainer","ref","children","onMouseEnter","onMouseLeave","PAGE_NAME","name","container","isInsideNewMobileApp","newMobileAppContainer","containerMaximized","_objectSpread","globalNotificationToastsAPI","Symbol","for","globalMixpanelEventTracker","propTypes","PropTypes","shape","number","string","isRequired","currentUser","bool","func","onAppRemove","onSettingChange","onSettingsChange","updateCurrentDashboardAppLastAnnotation","defaultProps","noop","undefined","DevCenterIsolatedApp","withRouter"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OffsetWellPickerV5.d.ts","sourceRoot":"","sources":["../../../src/components/OffsetWellPickerV5/OffsetWellPickerV5.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OffsetWellPickerV5.d.ts","sourceRoot":"","sources":["../../../src/components/OffsetWellPickerV5/OffsetWellPickerV5.js"],"names":[],"mappings":"AA+DO,kDAskCN"}
|