@corva/ui 3.77.0-9 → 3.78.0-0
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/MCP_README.md +9 -6
- package/README.md +6 -0
- package/cjs-bundle/components/AssetEditorV2/components/MultipleAssetsToggle.js.map +1 -1
- package/cjs-bundle/components/AssetEditorV2/components/PrimaryAssetSelect.js +1 -1
- package/cjs-bundle/components/AssetEditorV2/components/PrimaryAssetSelect.js.map +1 -1
- package/cjs-bundle/components/AssetEditorV2/components/PrimaryAssetSelectV2.js +1 -1
- package/cjs-bundle/components/AssetEditorV2/components/PrimaryAssetSelectV2.js.map +1 -1
- package/cjs-bundle/components/AssetEditorV2/components/SecondaryAssetSelect.js +1 -1
- package/cjs-bundle/components/AssetEditorV2/components/SecondaryAssetSelect.js.map +1 -1
- package/cjs-bundle/components/AssetEditorV2/components/SelectItem.js +1 -1
- package/cjs-bundle/components/AssetEditorV2/components/SelectItem.js.map +1 -1
- package/cjs-bundle/components/AssetEditorV2/constants.js.map +1 -1
- package/cjs-bundle/components/AssetEditorV2/effects/assetResponse.js +2 -0
- package/cjs-bundle/components/AssetEditorV2/effects/assetResponse.js.map +1 -0
- package/cjs-bundle/components/AssetEditorV2/effects/index.js +1 -1
- package/cjs-bundle/components/AssetEditorV2/effects/index.js.map +1 -1
- package/cjs-bundle/components/AssetEditorV2/effects/usePrimaryAssetSelectData.js +1 -1
- package/cjs-bundle/components/AssetEditorV2/effects/usePrimaryAssetSelectData.js.map +1 -1
- package/cjs-bundle/components/AssetEditorV2/index.js +1 -1
- package/cjs-bundle/components/AssetEditorV2/index.js.map +1 -1
- package/cjs-bundle/components/AssetEditorV2/utils/index.js +1 -1
- package/cjs-bundle/components/AssetEditorV2/utils/index.js.map +1 -1
- package/cjs-bundle/components/AttachmentLightbox/AttachmentDocument.js +1 -1
- package/cjs-bundle/components/AttachmentLightbox/AttachmentDocument.js.map +1 -1
- package/cjs-bundle/components/CommentComposer/useAttachmentUpload.js +1 -1
- package/cjs-bundle/components/CommentComposer/useAttachmentUpload.js.map +1 -1
- package/cjs-bundle/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js +1 -1
- package/cjs-bundle/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js.map +1 -1
- package/cjs-bundle/components/DevCenter/DevCenterRouterContext/UniversalLink/UniversalLink.js +1 -1
- package/cjs-bundle/components/DevCenter/DevCenterRouterContext/UniversalLink/UniversalLink.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/Filter/components/PeriodFilterSelect/PeriodFilterSelect.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/cells/MetricsCells/MetricsCells.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/cells/MetricsCells/MetricsCells.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.module.css.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/components/OffsetWellsTableRow/OffsetWellsTableRow.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/components/OffsetWellsTableRow/OffsetWellsTableRow.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/useRowInteractions.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/components/OffsetWellsTable/useRowInteractions.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/constants.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/constants.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/useAdvancedWells.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/useAdvancedWells.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/stores/filter-store/types.js.map +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/utils/getTimestampByPeriod.js +1 -1
- package/cjs-bundle/components/OffsetWellPickerV5/utils/getTimestampByPeriod.js.map +1 -1
- package/cjs-bundle/components/Search/Search.js.map +1 -1
- package/cjs-bundle/config/mapbox/index.js +1 -1
- package/cjs-bundle/config/mapbox/index.js.map +1 -1
- package/cjs-bundle/hocs/withAssetEditorLockHOC.js +1 -1
- package/cjs-bundle/hocs/withAssetEditorLockHOC.js.map +1 -1
- package/components/AssetEditorV2/__tests__/AssetEditorV2.test.d.ts +2 -0
- package/components/AssetEditorV2/__tests__/AssetEditorV2.test.d.ts.map +1 -0
- package/components/AssetEditorV2/__tests__/consumerTypes.test.d.ts +2 -0
- package/components/AssetEditorV2/__tests__/consumerTypes.test.d.ts.map +1 -0
- package/components/AssetEditorV2/components/MultipleAssetsToggle.d.ts +17 -6
- package/components/AssetEditorV2/components/MultipleAssetsToggle.d.ts.map +1 -1
- package/components/AssetEditorV2/components/MultipleAssetsToggle.js.map +1 -1
- package/components/AssetEditorV2/components/PrimaryAssetSelect.d.ts +30 -39
- package/components/AssetEditorV2/components/PrimaryAssetSelect.d.ts.map +1 -1
- package/components/AssetEditorV2/components/PrimaryAssetSelect.js +1 -1
- package/components/AssetEditorV2/components/PrimaryAssetSelect.js.map +1 -1
- package/components/AssetEditorV2/components/PrimaryAssetSelectV2.d.ts +4 -41
- package/components/AssetEditorV2/components/PrimaryAssetSelectV2.d.ts.map +1 -1
- package/components/AssetEditorV2/components/PrimaryAssetSelectV2.js +1 -1
- package/components/AssetEditorV2/components/PrimaryAssetSelectV2.js.map +1 -1
- package/components/AssetEditorV2/components/SecondaryAssetSelect.d.ts +22 -18
- package/components/AssetEditorV2/components/SecondaryAssetSelect.d.ts.map +1 -1
- package/components/AssetEditorV2/components/SecondaryAssetSelect.js +1 -1
- package/components/AssetEditorV2/components/SecondaryAssetSelect.js.map +1 -1
- package/components/AssetEditorV2/components/SelectItem.d.ts +10 -1
- package/components/AssetEditorV2/components/SelectItem.d.ts.map +1 -1
- package/components/AssetEditorV2/components/SelectItem.js +1 -1
- package/components/AssetEditorV2/components/SelectItem.js.map +1 -1
- package/components/AssetEditorV2/components/__tests__/AssetSelectors.test.d.ts +2 -0
- package/components/AssetEditorV2/components/__tests__/AssetSelectors.test.d.ts.map +1 -0
- package/components/AssetEditorV2/components/__tests__/MultipleAssetsToggle.test.d.ts.map +1 -1
- package/components/AssetEditorV2/components/__tests__/SelectItem.test.d.ts.map +1 -1
- package/components/AssetEditorV2/components/index.d.ts.map +1 -1
- package/components/AssetEditorV2/constants.d.ts +2 -9
- package/components/AssetEditorV2/constants.d.ts.map +1 -1
- package/components/AssetEditorV2/constants.js.map +1 -1
- package/components/AssetEditorV2/effects/__tests__/assetResponse.test.d.ts +2 -0
- package/components/AssetEditorV2/effects/__tests__/assetResponse.test.d.ts.map +1 -0
- package/components/AssetEditorV2/effects/__tests__/useLegacyPrimaryAssetSelectData.test.d.ts +2 -0
- package/components/AssetEditorV2/effects/__tests__/useLegacyPrimaryAssetSelectData.test.d.ts.map +1 -0
- package/components/AssetEditorV2/effects/__tests__/usePrimaryAssetSelectData.test.d.ts +2 -0
- package/components/AssetEditorV2/effects/__tests__/usePrimaryAssetSelectData.test.d.ts.map +1 -0
- package/components/AssetEditorV2/effects/assetResponse.d.ts +4 -0
- package/components/AssetEditorV2/effects/assetResponse.d.ts.map +1 -0
- package/components/AssetEditorV2/effects/assetResponse.js +2 -0
- package/components/AssetEditorV2/effects/assetResponse.js.map +1 -0
- package/components/AssetEditorV2/effects/index.d.ts +34 -28
- package/components/AssetEditorV2/effects/index.d.ts.map +1 -1
- package/components/AssetEditorV2/effects/index.js +1 -1
- package/components/AssetEditorV2/effects/index.js.map +1 -1
- package/components/AssetEditorV2/effects/usePrimaryAssetSelectData.d.ts +21 -17
- package/components/AssetEditorV2/effects/usePrimaryAssetSelectData.d.ts.map +1 -1
- package/components/AssetEditorV2/effects/usePrimaryAssetSelectData.js +1 -1
- package/components/AssetEditorV2/effects/usePrimaryAssetSelectData.js.map +1 -1
- package/components/AssetEditorV2/index.d.ts +36 -67
- package/components/AssetEditorV2/index.d.ts.map +1 -1
- package/components/AssetEditorV2/index.js +1 -1
- package/components/AssetEditorV2/index.js.map +1 -1
- package/components/AssetEditorV2/types.d.ts +82 -0
- package/components/AssetEditorV2/types.d.ts.map +1 -0
- package/components/AssetEditorV2/utils/__tests__/utils.test.d.ts.map +1 -1
- package/components/AssetEditorV2/utils/index.d.ts +23 -19
- package/components/AssetEditorV2/utils/index.d.ts.map +1 -1
- package/components/AssetEditorV2/utils/index.js +1 -1
- package/components/AssetEditorV2/utils/index.js.map +1 -1
- package/components/AttachmentLightbox/AttachmentDocument.d.ts.map +1 -1
- package/components/AttachmentLightbox/AttachmentDocument.js +1 -1
- package/components/AttachmentLightbox/AttachmentDocument.js.map +1 -1
- package/components/CommentComposer/__tests__/useAttachmentUpload.local.test.d.ts +2 -0
- package/components/CommentComposer/__tests__/useAttachmentUpload.local.test.d.ts.map +1 -0
- package/components/CommentComposer/useAttachmentUpload.d.ts.map +1 -1
- package/components/CommentComposer/useAttachmentUpload.js +1 -1
- package/components/CommentComposer/useAttachmentUpload.js.map +1 -1
- package/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.d.ts.map +1 -1
- package/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js +1 -1
- package/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js.map +1 -1
- package/components/DevCenter/DevCenterRouterContext/UniversalLink/UniversalLink.d.ts.map +1 -1
- package/components/DevCenter/DevCenterRouterContext/UniversalLink/UniversalLink.js +1 -1
- package/components/DevCenter/DevCenterRouterContext/UniversalLink/UniversalLink.js.map +1 -1
- package/components/Drillstring/BHAComponentDetail/constants.d.ts +2 -2
- package/components/OffsetWellPickerV4/effects/__tests__/useCompanyMetricKey.test.d.ts +2 -0
- package/components/OffsetWellPickerV4/effects/__tests__/useCompanyMetricKey.test.d.ts.map +1 -0
- package/components/OffsetWellPickerV4/effects/useCompanyMetricKey.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/__tests__/constants.test.d.ts +2 -0
- package/components/OffsetWellPickerV5/__tests__/constants.test.d.ts.map +1 -0
- package/components/OffsetWellPickerV5/components/Filter/components/PeriodFilterSelect/PeriodFilterSelect.js.map +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/cells/MetricsCells/MetricsCells.d.ts +2 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/cells/MetricsCells/MetricsCells.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/cells/MetricsCells/MetricsCells.js +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/cells/MetricsCells/MetricsCells.js.map +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.d.ts +3 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.js +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.js.map +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/MetricCell.module.css.js +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/__tests__/MetricCell.test.d.ts +2 -0
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/MetricCell/__tests__/MetricCell.test.d.ts.map +1 -0
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/OffsetWellsTableRow/OffsetWellsTableRow.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/OffsetWellsTableRow/OffsetWellsTableRow.js +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/components/OffsetWellsTableRow/OffsetWellsTableRow.js.map +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/useRowInteractions.d.ts +0 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/useRowInteractions.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/useRowInteractions.js +1 -1
- package/components/OffsetWellPickerV5/components/OffsetWellsTable/useRowInteractions.js.map +1 -1
- package/components/OffsetWellPickerV5/constants.d.ts +26 -3
- package/components/OffsetWellPickerV5/constants.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/constants.js +1 -1
- package/components/OffsetWellPickerV5/constants.js.map +1 -1
- package/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/__tests__/useAdvancedWells.test.d.ts +2 -0
- package/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/__tests__/useAdvancedWells.test.d.ts.map +1 -0
- package/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/__tests__/useCompanyMetricKey.test.d.ts +2 -0
- package/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/__tests__/useCompanyMetricKey.test.d.ts.map +1 -0
- package/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/useAdvancedWells.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/useAdvancedWells.js +1 -1
- package/components/OffsetWellPickerV5/hooks/use-well-data-pipeline/useAdvancedWells.js.map +1 -1
- package/components/OffsetWellPickerV5/stores/filter-store/types.d.ts +2 -1
- package/components/OffsetWellPickerV5/stores/filter-store/types.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/stores/filter-store/types.js.map +1 -1
- package/components/OffsetWellPickerV5/utils/__tests__/getTimestampByPeriod.test.d.ts +2 -0
- package/components/OffsetWellPickerV5/utils/__tests__/getTimestampByPeriod.test.d.ts.map +1 -0
- package/components/OffsetWellPickerV5/utils/getTimestampByPeriod.d.ts +4 -0
- package/components/OffsetWellPickerV5/utils/getTimestampByPeriod.d.ts.map +1 -1
- package/components/OffsetWellPickerV5/utils/getTimestampByPeriod.js +1 -1
- package/components/OffsetWellPickerV5/utils/getTimestampByPeriod.js.map +1 -1
- package/components/Search/Search.d.ts +6 -3
- package/components/Search/Search.d.ts.map +1 -1
- package/components/Search/Search.js.map +1 -1
- package/components/index.d.ts +1 -0
- package/components/index.d.ts.map +1 -1
- package/config/mapbox/index.d.ts.map +1 -1
- package/config/mapbox/index.js +1 -1
- package/config/mapbox/index.js.map +1 -1
- package/hocs/__tests__/withAssetEditorLockHOC.test.d.ts +2 -0
- package/hocs/__tests__/withAssetEditorLockHOC.test.d.ts.map +1 -0
- package/hocs/withAssetEditorLockHOC.d.ts +11 -1
- package/hocs/withAssetEditorLockHOC.d.ts.map +1 -1
- package/hocs/withAssetEditorLockHOC.js +1 -1
- package/hocs/withAssetEditorLockHOC.js.map +1 -1
- package/mcp-server/server.mjs +312 -73
- package/mcp-server/setup.mjs +129 -44
- package/package.json +3 -2
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Search.js","sources":["../../../../src/components/Search/Search.tsx"],"sourcesContent":["import {\n ChangeEvent,\n cloneElement,\n ComponentType,\n KeyboardEvent,\n MouseEventHandler,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport { debounce, isEmpty, noop, omit } from 'lodash';\nimport { Autocomplete, AutocompleteProps, AutocompleteRenderGroupParams } from '@material-ui/lab';\nimport {\n Checkbox,\n Chip,\n CircularProgress,\n Fade,\n InputAdornment,\n MenuItem,\n Popper,\n TextField,\n InputProps as MuiInputProps,\n Tooltip,\n} from '@material-ui/core';\nimport { AccessTime as TimeIcon } from '@material-ui/icons';\n\nimport { Groups, ListboxComponent as Listbox, Paper, SelectAllListItem } from './components';\nimport { PaperContext } from './context';\nimport { useAutocompletOptions } from './effects';\nimport useStyles from './styles';\n\nimport { CloseSmallIcon, DownOneIcon } from '~/icons';\nimport { MiddleTruncatedText } from '~/components/MiddleTruncatedText';\nimport IconButton from '~/components/IconButton';\n\nconst PAGE_NAME = 'AutocompleteSearch';\n\nconst initialPopperProps = {};\n\nconst ARROW_LEFT_KEY_CODE = 'ArrowLeft';\n\ntype SearchProps = {\n onChange: (event: ChangeEvent<{}>, selected: any | any[] | null) => void;\n value?: object | object[];\n options?: { label?: string; id: string; group?: string }[];\n AutocompleteProps?: {\n getOptionDisabled?: (option: any) => boolean;\n forcePopupIcon?: boolean;\n };\n allChecked?: boolean;\n TextFieldProps?: {\n label?: string;\n endAdornment?: ReactNode;\n };\n selectedGroup?: {\n name?: string;\n id?: string;\n };\n onGroupReset?: MouseEventHandler<HTMLSpanElement>;\n onClose?: () => void;\n disableClearable?: boolean;\n\n /**\n * MUI Autocomplete triggers onInputChange when startAdornment is changed (via selectedGroup update).\n * If disableResetOnGroupChange is true, we won't store a new value in onInputChange when the 'reason' is \"reset\".\n * Additionally, handleSelectedGroupChange won't trigger handleInputReset if disableResetOnGroupChange is true.\n */\n disableResetOnGroupChange?: boolean;\n onInputChange?: (value: string) => void;\n getOptionLabel?: (option: any) => string;\n onGroupChange?: (group?: { name?: string; id?: string }) => void;\n loading?: boolean;\n disabled?: boolean;\n multiple?: boolean;\n optionSize?: 'large';\n popupIcon?: ReactNode;\n InputProps?: Partial<MuiInputProps>;\n ListboxProps?: object;\n classes?: Partial<\n {\n popper: string;\n listbox: string;\n popupIndicator: string;\n popupIndicatorOpen: string;\n groupChip: string;\n } & Record<string, string>\n >;\n onInputChangeCallback?: (newInputValue: string, reason: string) => void;\n placeholder?: string;\n RecentSearchesComponent?: ComponentType<any>;\n ListboxComponent?: any;\n recentSearchesMaxCount?: number;\n dataStorageKey?: string;\n dataStorage?: object;\n\n groups?: { id: string; name: string }[];\n GroupsComponent?: ComponentType<{\n onGroupClick: (id: string) => void;\n groups: { id: string; name: string }[];\n }>;\n onOpen?: (e?: any) => void;\n renderCustomOption?: (option: any, state: any) => ReactNode;\n onInputReset?: () => void;\n isHiddenAllOption?: boolean;\n isHiddenAllLabel?: boolean;\n paperFooter?: ReactNode;\n isOpenedFromParent?: boolean;\n popperProps?: Partial<{ style: object }>;\n onFocus?: () => void;\n inputProps?: object;\n noOptionsText?: string;\n isPrioritizedSelectedOptions?: boolean;\n /**\n * There is a check if it is multiple search then we should keep input value on autocomplete change\n * But now there is another case, when we should reset input value on autocomplete change\n * This new prop allows to have both options\n */\n shouldResetInputOnAutocompleteChange?: boolean;\n} & Omit<\n AutocompleteProps<any, false, false, false>,\n | 'value'\n | 'onChange'\n | 'options'\n | 'onClose'\n | 'disableClearable'\n | 'onInputChange'\n | 'getOptionLabel'\n | 'loading'\n | 'disabled'\n | 'multiple'\n | 'popupIcon'\n | 'ListboxProps'\n | 'classes'\n | 'placeholder'\n | 'ListboxComponent'\n | 'onOpen'\n | 'onFocus'\n | 'inp'\n | 'noOptionsText'\n | 'renderInput'\n | 'PopperComponent'\n | 'open'\n | 'forcePopupIcon'\n | 'fullWidth'\n | 'renderGroup'\n | 'disableCloseOnSelect'\n | 'renderOption'\n | 'groupBy'\n | 'PaperComponent'\n | 'inputValue'\n | 'getOptionDisabled'\n | 'loadingText'\n | 'InputProps'\n | 'isNullable'\n>;\n\nexport const Search = ({\n AutocompleteProps = {},\n value,\n disableClearable = false,\n onChange,\n onInputChange,\n loading = false,\n options = [],\n optionSize,\n placeholder = 'Search...',\n onGroupChange = () => {},\n disabled = false,\n disableResetOnGroupChange,\n multiple = false,\n groups = [],\n GroupsComponent,\n recentSearchesMaxCount = 3,\n dataStorageKey = 'Search:recentSearches',\n RecentSearchesComponent,\n dataStorage = sessionStorage,\n onInputReset,\n getOptionLabel = (option: any) => option.label || '',\n TextFieldProps = { endAdornment: null },\n ListboxProps,\n onInputChangeCallback = () => {},\n renderCustomOption,\n isHiddenAllOption = false,\n isHiddenAllLabel = false,\n onOpen = noop,\n selectedGroup,\n onGroupReset = () => {},\n onClose = () => {},\n popperProps = initialPopperProps,\n paperFooter,\n noOptionsText = 'No Options',\n ListboxComponent = Listbox,\n isPrioritizedSelectedOptions = false,\n\n isOpenedFromParent = undefined,\n onFocus,\n InputProps,\n classes = {},\n popupIcon = <DownOneIcon theme=\"filled\" fill=\"#BDBDBD\" size={16} />,\n shouldResetInputOnAutocompleteChange,\n ...props\n}: SearchProps) => {\n const [inputValue, setInputValue] = useState('');\n const [debouncedInputValue, setDebouncedInputValue] = useState('');\n const [isOpened, setIsOpened] = useState(false);\n const [isSelectedLabelExpanded, setIsSelectedLabelExpanded] = useState(false);\n const inputRef = useRef<HTMLInputElement>(null);\n const paperRef = useRef<HTMLDivElement>(null);\n\n const { autocompleteOptions, isGrouped, handleAutocompleOptionsUpdate } = useAutocompletOptions({\n options,\n value,\n groups,\n selectedGroup,\n isPrioritizedSelectedOptions,\n });\n\n const styles = useStyles();\n\n const {\n popper,\n listbox,\n popupIndicator,\n popupIndicatorOpen,\n groupChip: groupChipClassName,\n ...restClasses\n } = classes;\n const autocompleteClasses = {\n popper: classNames(styles.popper, popper),\n listbox: classNames(styles.listbox, listbox),\n popupIndicator: classNames(styles.popupIndicator, popupIndicator),\n popupIndicatorOpen: classNames(styles.popupIndicatorOpen, popupIndicatorOpen),\n ...restClasses,\n };\n\n const groupBy = ({ group }: any) => group;\n\n const handleInputChange = (_event: ChangeEvent<{}>, newInputValue: string, reason: string) => {\n if (disableResetOnGroupChange)\n setInputValue(prevValue => (reason === 'reset' ? prevValue : newInputValue));\n else setInputValue(newInputValue);\n\n onInputChangeCallback(newInputValue, reason);\n };\n\n const handleInputReset = () => {\n setInputValue('');\n onInputReset?.();\n };\n\n const handleDebouncedInputChange = (inputValue: string) => setDebouncedInputValue(inputValue);\n\n const onDebouncedInputChange = useCallback(debounce(handleDebouncedInputChange, 500), []);\n\n const handleSelectedGroupChange = (selectedGroupId: string) => {\n const selectedGroup = groups.find(({ id }) => id === selectedGroupId);\n if (!disableResetOnGroupChange) handleInputReset();\n onGroupChange(selectedGroup);\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (inputValue.length) return;\n\n // NOTE: MUI try to focus tags for multiple Autocomplete\n // need to stop event to prevent crash, as we render custom content in TextField\n if (multiple && event.code === ARROW_LEFT_KEY_CODE) {\n event.stopPropagation();\n }\n };\n\n useEffect(() => {\n if (isOpened) {\n inputRef.current?.focus();\n inputRef.current?.setSelectionRange(inputValue.length, inputValue.length);\n }\n });\n\n const valueLength = multiple && Array.isArray(value) ? value.length : null;\n\n const allSelected = multiple && autocompleteOptions?.length === valueLength;\n const someSelected = multiple && !!valueLength && !allSelected;\n\n const onAllSelectClick = () => {\n handleInputReset();\n if (AutocompleteProps.getOptionDisabled && allSelected)\n return onChange(null as unknown as ChangeEvent<{}>, [options[options.length - 1]]);\n\n return onChange(\n null as unknown as ChangeEvent<{}>,\n allSelected || someSelected ? [] : autocompleteOptions\n );\n };\n\n useEffect(() => {\n onDebouncedInputChange(inputValue);\n\n if (!onInputChange) return;\n\n onInputChange(inputValue);\n }, [inputValue]);\n\n const handleAutocompleteChange = (event: ChangeEvent<{}>, selected: any | any[]) => {\n if (!multiple || shouldResetInputOnAutocompleteChange) {\n setInputValue('');\n }\n onChange(event, selected);\n };\n\n const handleSearchOpen = (e: ChangeEvent<{}>) => {\n handleAutocompleOptionsUpdate();\n setIsOpened(true);\n onOpen(e);\n };\n\n const handleSearchClose = (evt: ChangeEvent<{}>, reason: string) => {\n const focusEvt = evt as unknown as React.FocusEvent<HTMLElement>;\n const focusingDropdownElement =\n reason === 'blur' &&\n (!focusEvt.relatedTarget || paperRef.current?.contains(focusEvt.relatedTarget));\n\n if (!focusingDropdownElement) {\n onClose();\n setIsOpened(false);\n }\n };\n\n const handleSelectedOptionClick = () => {\n if (isOpenedFromParent ?? isOpened) {\n setIsOpened(false);\n\n onClose();\n } else {\n setIsOpened(true);\n\n onOpen();\n }\n };\n\n const renderGroup = ({ key, group, children }: AutocompleteRenderGroupParams) => {\n if (!group || (!isEmpty(selectedGroup) && multiple)) {\n return children;\n }\n\n return (\n <div className={styles.group} key={key}>\n <Tooltip\n title={group}\n placement=\"right\"\n TransitionComponent={Fade}\n TransitionProps={{ timeout: 500 }}\n enterDelay={500}\n >\n <Chip\n data-not-migrated-muichip\n className={classNames(styles.groupChip, groupChipClassName)}\n variant=\"outlined\"\n label={group}\n />\n </Tooltip>\n\n {children}\n </div>\n );\n };\n\n const getSelectedLabel = (value: any) => {\n if (allSelected && !isHiddenAllOption && !isHiddenAllLabel) return 'All';\n const label = value[0].label || value[0].name || '';\n\n return value?.length === 1 ? (\n <div>\n <MiddleTruncatedText>{label}</MiddleTruncatedText>\n </div>\n ) : (\n `${value?.length} Selected`\n );\n };\n\n const renderInput = (muiProps: any) => {\n // MUI Autocomplete invokes renderInput during its OWN render, so this state belongs to the\n // Autocomplete fiber. Hoisting it into Search re-targets the re-render and breaks the\n // ArrowUp/ArrowDown focus handoff between the input and the chips.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const [isFocused, setIsFocused] = useState(false);\n const { InputProps: mUIInputProps, inputProps: mUIinputProps, ...restMuiProps } = muiProps;\n const defaultEndAdornment =\n mUIInputProps.endAdornment?.props?.children?.length > 1\n ? cloneElement(mUIInputProps.endAdornment, {\n // remove clear button, popupIcon is left\n children: mUIInputProps.endAdornment.props.children.slice(1),\n onMouseDown: e => e.stopPropagation(),\n onMouseUp: e => e.stopPropagation(),\n })\n : mUIInputProps.endAdornment;\n\n const isNeedExpandInput = valueLength === 1;\n\n const isInputLabelShrink =\n isFocused ||\n isOpened ||\n inputValue.length > 0 ||\n !isEmpty(value) ||\n !isEmpty(InputProps?.startAdornment);\n\n const onInputBlur = () => {\n setIsFocused(false);\n if (isNeedExpandInput) {\n setIsSelectedLabelExpanded(true);\n }\n };\n\n const {\n classes: { input: inputClasses = '', ...restInputClasses } = {},\n style,\n ...restInputProps\n } = InputProps || {};\n\n return (\n <TextField\n {...restMuiProps}\n {...omit(TextFieldProps, ['endAdornment'])}\n onBlur={onInputBlur}\n onFocus={() => {\n setIsFocused(true);\n }}\n onKeyDown={handleKeyDown}\n inputRef={inputRef}\n placeholder={placeholder}\n classes={{ root: styles.searchInput }}\n inputProps={{ style: { padding: 5 }, ...mUIinputProps, ...props.inputProps }}\n InputLabelProps={{\n shrink: isInputLabelShrink,\n }}\n InputProps={{\n classes: {\n input: classNames(\n isSelectedLabelExpanded\n ? styles.inputShrinked\n : isNeedExpandInput && styles.inputExpanded,\n inputClasses\n ),\n ...restInputClasses,\n },\n style: { paddingRight: 0, paddingBottom: 0, ...style },\n ...mUIInputProps,\n ...restInputProps,\n startAdornment: (\n <>\n {InputProps?.startAdornment}\n {selectedGroup && (\n <Chip\n key={selectedGroup.id}\n className={styles.selectedGroup}\n data-not-migrated-muichip\n variant=\"outlined\"\n label={\n <div className={styles.selectedGroupLabel}>\n {selectedGroup.name}\n <CloseSmallIcon\n size={16}\n id=\"removeGroupIcon\"\n className={styles.removeIcon}\n onClick={onGroupReset}\n />\n </div>\n }\n />\n )}\n {multiple && !isEmpty(value) && (\n <div\n onClick={handleSelectedOptionClick}\n id=\"selectedOptions\"\n className={classNames(\n styles.selectedLabel,\n isSelectedLabelExpanded && styles.selectedLabelExpanded\n )}\n >\n {getSelectedLabel(value)}\n </div>\n )}\n </>\n ),\n endAdornment: (\n <>\n <InputAdornment\n className={classNames(styles.endAdornment, {\n [styles.removeIconWithDropdown]: AutocompleteProps.forcePopupIcon,\n })}\n position=\"end\"\n >\n {TextFieldProps.endAdornment}\n {loading && <CircularProgress color=\"primary\" size={20} />}\n {isFocused && inputValue && !disableClearable && (\n <IconButton\n data-testid={`${PAGE_NAME}_clear_icon`}\n size=\"small\"\n className={styles.iconButton}\n onClick={() => {\n setInputValue('');\n if (onInputReset) {\n onInputReset();\n }\n }}\n tooltipProps={{ title: 'Clear' }}\n >\n <CloseSmallIcon size={20} className={styles.closeIcon} />\n </IconButton>\n )}\n </InputAdornment>\n {AutocompleteProps.forcePopupIcon && defaultEndAdornment}\n </>\n ),\n }}\n />\n );\n };\n\n const renderOption = (option: any, state: any) => {\n const { label = '', id } = option;\n if (!multiple)\n return (\n <MenuItem\n className={styles.menuItem}\n key={id}\n value={id}\n data-testid={`autocompleteOption_${label}MenuItem`}\n >\n <MiddleTruncatedText className={styles.optionLabelContainer}>{label}</MiddleTruncatedText>\n </MenuItem>\n );\n return (\n <div\n className={classNames(styles.option, optionSize)}\n key={id}\n data-testid={`autocompleteOption_${label}MenuItem`}\n >\n <Checkbox size=\"small\" disableRipple className={styles.checkbox} checked={state.selected} />\n <MiddleTruncatedText className={styles.optionLabelContainer}>{label}</MiddleTruncatedText>\n </div>\n );\n };\n\n const isEmptyOptions = isEmpty(autocompleteOptions);\n const paperContext = useMemo(\n () => ({\n onOutsideClick: handleSearchClose,\n isEmptyOptions,\n loading,\n AllSelectComponent: !isHiddenAllOption && multiple && !isEmptyOptions && (\n <SelectAllListItem\n className={styles.selectAllCheckbox}\n onClick={onAllSelectClick}\n someSelected={someSelected}\n allSelected={allSelected}\n />\n ),\n RecentSearchesComponent: RecentSearchesComponent && (\n <RecentSearchesComponent\n title=\"Recent Searches\"\n Icon={TimeIcon}\n dataStorage={dataStorage}\n dataStorageKey={dataStorageKey}\n maxCount={recentSearchesMaxCount}\n isHidden={!isEmpty(inputValue)}\n onInputChange={(value: any) => setInputValue(value)}\n inputValue={debouncedInputValue}\n />\n ),\n GroupsComponent: !selectedGroup && isGrouped && GroupsComponent && (\n <GroupsComponent onGroupClick={handleSelectedGroupChange} groups={groups} />\n ),\n }),\n [\n selectedGroup,\n loading,\n isGrouped,\n isEmptyOptions,\n inputValue,\n isHiddenAllOption,\n multiple,\n isEmptyOptions,\n debouncedInputValue,\n onClose,\n handleSearchClose,\n ]\n );\n\n const PaperComponent = useMemo(\n () =>\n ({ children, className, ...paperProps }: any) =>\n (\n <Paper {...paperProps} className={className} inputRef={inputRef} ref={paperRef}>\n {children}\n {paperFooter}\n </Paper>\n ),\n [paperFooter]\n );\n\n const PopperComponent = useMemo(\n () => (props: any) => {\n const { style, ...restPopperProps } = popperProps;\n return (\n <Popper\n {...props}\n style={{ ...props.style, ...style }}\n placement=\"bottom-start\"\n {...restPopperProps}\n />\n );\n },\n [popperProps]\n );\n\n const handleRootFocus = () => {\n setIsSelectedLabelExpanded(false);\n onFocus?.();\n };\n\n return (\n <PaperContext.Provider value={paperContext}>\n <Autocomplete\n {...omit(props, ['InputProps', 'isNullable', 'isOpenedFromParent'])}\n PopperComponent={PopperComponent}\n disableClearable={disableClearable}\n onOpen={handleSearchOpen}\n onClose={handleSearchClose}\n open={isOpenedFromParent ?? isOpened}\n onChange={handleAutocompleteChange}\n forcePopupIcon={AutocompleteProps.forcePopupIcon}\n fullWidth\n disabled={disabled}\n value={value}\n classes={autocompleteClasses}\n renderInput={renderInput}\n loading={loading}\n options={autocompleteOptions}\n renderGroup={renderGroup}\n disableCloseOnSelect={multiple}\n multiple={multiple}\n renderOption={renderCustomOption || renderOption}\n groupBy={isGrouped ? groupBy : undefined}\n PaperComponent={PaperComponent}\n ListboxComponent={ListboxComponent}\n inputValue={inputValue}\n getOptionLabel={getOptionLabel}\n getOptionDisabled={AutocompleteProps?.getOptionDisabled}\n onInputChange={handleInputChange}\n loadingText={<div className={styles.label}>Loading ...</div>}\n noOptionsText={<div className={styles.label}>{noOptionsText}</div>}\n ListboxProps={ListboxProps}\n onFocus={handleRootFocus}\n />\n </PaperContext.Provider>\n );\n};\n\nSearch.Groups = Groups;\n\nexport default Search;\n"],"names":["initialPopperProps","Search","_ref","_ref$AutocompleteProp","AutocompleteProps","value","_ref$disableClearable","disableClearable","onChange","onInputChange","_ref$loading","loading","_ref$options","options","optionSize","_ref$placeholder","placeholder","_ref$onGroupChange","onGroupChange","_ref$disabled","disabled","disableResetOnGroupChange","_ref$multiple","multiple","_ref$groups","groups","GroupsComponent","_ref$recentSearchesMa","recentSearchesMaxCount","_ref$dataStorageKey","dataStorageKey","RecentSearchesComponent","_ref$dataStorage","dataStorage","sessionStorage","onInputReset","_ref$getOptionLabel","getOptionLabel","option","label","_ref$TextFieldProps","TextFieldProps","endAdornment","ListboxProps","_ref$onInputChangeCal","onInputChangeCallback","renderCustomOption","_ref$isHiddenAllOptio","isHiddenAllOption","_ref$isHiddenAllLabel","isHiddenAllLabel","_ref$onOpen","onOpen","noop","selectedGroup","_ref$onGroupReset","onGroupReset","_ref$onClose","onClose","_ref$popperProps","popperProps","paperFooter","_ref$noOptionsText","noOptionsText","_ref$ListboxComponent","ListboxComponent","Listbox","_ref$isPrioritizedSel","isPrioritizedSelectedOptions","_ref$isOpenedFromPare","isOpenedFromParent","undefined","onFocus","InputProps","_ref$classes","classes","popupIcon","shouldResetInputOnAutocompleteChange","props","_objectWithoutProperties","_excluded","useState","_useState2","_slicedToArray","_useState","inputValue","setInputValue","_useState4","_useState3","debouncedInputValue","setDebouncedInputValue","_useState6","_useState5","isOpened","setIsOpened","_useState8","_useState7","isSelectedLabelExpanded","setIsSelectedLabelExpanded","inputRef","useRef","paperRef","_useAutocompletOption","useAutocompletOptions","autocompleteOptions","isGrouped","handleAutocompleOptionsUpdate","styles","useStyles","popper","listbox","popupIndicator","popupIndicatorOpen","groupChipClassName","groupChip","restClasses","_excluded2","autocompleteClasses","_objectSpread","classNames","handleInputReset","onDebouncedInputChange","useCallback","debounce","handleSelectedGroupChange","selectedGroupId","find","_ref3","id","handleKeyDown","event","length","code","stopPropagation","useEffect","_inputRef$current","_inputRef$current2","current","focus","setSelectionRange","valueLength","Array","isArray","allSelected","someSelected","onAllSelectClick","getOptionDisabled","handleSearchClose","evt","reason","_paperRef$current","focusEvt","relatedTarget","contains","handleSelectedOptionClick","getSelectedLabel","name","_jsx","children","MiddleTruncatedText","concat","isEmptyOptions","isEmpty","paperContext","useMemo","onOutsideClick","AllSelectComponent","jsx","SelectAllListItem","className","selectAllCheckbox","onClick","title","Icon","TimeIcon","AccessTime","maxCount","isHidden","onGroupClick","PaperComponent","_ref6","paperProps","_excluded6","_jsxs","Paper","ref","PopperComponent","style","restPopperProps","_excluded7","Popper","placement","PaperContext","Provider","Autocomplete","omit","e","open","selected","forcePopupIcon","fullWidth","renderInput","muiProps","_mUIInputProps$endAdo","_mUIInputProps$endAdo2","_mUIInputProps$endAdo3","_useState10","_useState9","isFocused","setIsFocused","mUIInputProps","mUIinputProps","inputProps","restMuiProps","_excluded3","defaultEndAdornment","cloneElement","slice","onMouseDown","onMouseUp","isNeedExpandInput","isInputLabelShrink","startAdornment","_ref5$classes","_ref5","_ref5$classes$input","input","inputClasses","restInputClasses","_excluded4","restInputProps","_excluded5","TextField","onBlur","onKeyDown","root","searchInput","padding","InputLabelProps","shrink","inputShrinked","inputExpanded","paddingRight","paddingBottom","jsxs","_Fragment","Chip","variant","selectedGroupLabel","CloseSmallIcon","size","removeIcon","selectedLabel","selectedLabelExpanded","InputAdornment","_defineProperty","removeIconWithDropdown","position","CircularProgress","color","IconButton","iconButton","tooltipProps","closeIcon","renderGroup","_ref4","key","group","Tooltip","TransitionComponent","Fade","TransitionProps","timeout","enterDelay","disableCloseOnSelect","renderOption","state","_option$label","Checkbox","disableRipple","checkbox","checked","optionLabelContainer","MenuItem","menuItem","groupBy","_ref2","_event","newInputValue","prevValue","loadingText","Groups"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Search.js","sources":["../../../../src/components/Search/Search.tsx"],"sourcesContent":["import {\n ChangeEvent,\n cloneElement,\n ComponentType,\n KeyboardEvent,\n MouseEventHandler,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport { debounce, isEmpty, noop, omit } from 'lodash';\nimport { Autocomplete, AutocompleteProps, AutocompleteRenderGroupParams } from '@material-ui/lab';\nimport {\n Checkbox,\n Chip,\n CircularProgress,\n Fade,\n InputAdornment,\n MenuItem,\n Popper,\n TextField,\n InputProps as MuiInputProps,\n Tooltip,\n} from '@material-ui/core';\nimport { AccessTime as TimeIcon } from '@material-ui/icons';\n\nimport { Groups, ListboxComponent as Listbox, Paper, SelectAllListItem } from './components';\nimport { PaperContext } from './context';\nimport { useAutocompletOptions } from './effects';\nimport useStyles from './styles';\n\nimport { CloseSmallIcon, DownOneIcon } from '~/icons';\nimport { MiddleTruncatedText } from '~/components/MiddleTruncatedText';\nimport IconButton from '~/components/IconButton';\n\nconst PAGE_NAME = 'AutocompleteSearch';\n\nconst initialPopperProps = {};\n\nconst ARROW_LEFT_KEY_CODE = 'ArrowLeft';\n\ntype SearchProps = {\n onChange: (event: ChangeEvent<{}>, selected: any | any[] | null) => void;\n value?: object | object[] | null;\n options?: { label?: string; name?: string; id: string | number; group?: string }[];\n AutocompleteProps?: {\n getOptionDisabled?: (option: any) => boolean;\n forcePopupIcon?: boolean;\n };\n allChecked?: boolean;\n TextFieldProps?: {\n label?: string;\n endAdornment?: ReactNode;\n value?: string;\n };\n selectedGroup?: {\n name?: string;\n id?: string;\n } | null;\n onGroupReset?: MouseEventHandler<HTMLSpanElement>;\n onClose?: () => void;\n disableClearable?: boolean;\n\n /**\n * MUI Autocomplete triggers onInputChange when startAdornment is changed (via selectedGroup update).\n * If disableResetOnGroupChange is true, we won't store a new value in onInputChange when the 'reason' is \"reset\".\n * Additionally, handleSelectedGroupChange won't trigger handleInputReset if disableResetOnGroupChange is true.\n */\n disableResetOnGroupChange?: boolean;\n onInputChange?: (value: string) => void;\n getOptionLabel?: (option: any) => string;\n onGroupChange?: (group?: { name?: string; id?: string }) => void;\n loading?: boolean;\n disabled?: boolean;\n isNullable?: boolean;\n multiple?: boolean;\n optionSize?: 'large';\n popupIcon?: ReactNode;\n InputProps?: Partial<MuiInputProps>;\n ListboxProps?: object;\n classes?: Partial<\n {\n popper: string;\n listbox: string;\n popupIndicator: string;\n popupIndicatorOpen: string;\n groupChip: string;\n } & Record<string, string>\n >;\n onInputChangeCallback?: (newInputValue: string, reason: string) => void;\n placeholder?: string;\n RecentSearchesComponent?: ComponentType<any>;\n ListboxComponent?: any;\n recentSearchesMaxCount?: number;\n dataStorageKey?: string;\n dataStorage?: object;\n\n groups?: { id: string; name: string }[];\n GroupsComponent?: ComponentType<{\n onGroupClick: (id: string) => void;\n groups: { id: string; name: string }[];\n }>;\n onOpen?: (e?: any) => void;\n renderCustomOption?: (option: any, state: any) => ReactNode;\n onInputReset?: () => void;\n isHiddenAllOption?: boolean;\n isHiddenAllLabel?: boolean;\n paperFooter?: ReactNode;\n isOpenedFromParent?: boolean;\n popperProps?: Partial<{ style: object }>;\n onFocus?: () => void;\n inputProps?: object;\n noOptionsText?: string;\n isPrioritizedSelectedOptions?: boolean;\n /**\n * There is a check if it is multiple search then we should keep input value on autocomplete change\n * But now there is another case, when we should reset input value on autocomplete change\n * This new prop allows to have both options\n */\n shouldResetInputOnAutocompleteChange?: boolean;\n} & Omit<\n AutocompleteProps<any, false, false, false>,\n | 'value'\n | 'onChange'\n | 'options'\n | 'onClose'\n | 'disableClearable'\n | 'onInputChange'\n | 'getOptionLabel'\n | 'loading'\n | 'disabled'\n | 'multiple'\n | 'popupIcon'\n | 'ListboxProps'\n | 'classes'\n | 'placeholder'\n | 'ListboxComponent'\n | 'onOpen'\n | 'onFocus'\n | 'inp'\n | 'noOptionsText'\n | 'renderInput'\n | 'PopperComponent'\n | 'open'\n | 'forcePopupIcon'\n | 'fullWidth'\n | 'renderGroup'\n | 'disableCloseOnSelect'\n | 'renderOption'\n | 'groupBy'\n | 'PaperComponent'\n | 'inputValue'\n | 'getOptionDisabled'\n | 'loadingText'\n | 'InputProps'\n | 'isNullable'\n>;\n\nexport const Search = ({\n AutocompleteProps = {},\n value,\n disableClearable = false,\n onChange,\n onInputChange,\n loading = false,\n options = [],\n optionSize,\n placeholder = 'Search...',\n onGroupChange = () => {},\n disabled = false,\n disableResetOnGroupChange,\n multiple = false,\n groups = [],\n GroupsComponent,\n recentSearchesMaxCount = 3,\n dataStorageKey = 'Search:recentSearches',\n RecentSearchesComponent,\n dataStorage = sessionStorage,\n onInputReset,\n getOptionLabel = (option: any) => option.label || '',\n TextFieldProps = { endAdornment: null },\n ListboxProps,\n onInputChangeCallback = () => {},\n renderCustomOption,\n isHiddenAllOption = false,\n isHiddenAllLabel = false,\n onOpen = noop,\n selectedGroup,\n onGroupReset = () => {},\n onClose = () => {},\n popperProps = initialPopperProps,\n paperFooter,\n noOptionsText = 'No Options',\n ListboxComponent = Listbox,\n isPrioritizedSelectedOptions = false,\n\n isOpenedFromParent = undefined,\n onFocus,\n InputProps,\n classes = {},\n popupIcon = <DownOneIcon theme=\"filled\" fill=\"#BDBDBD\" size={16} />,\n shouldResetInputOnAutocompleteChange,\n ...props\n}: SearchProps) => {\n const [inputValue, setInputValue] = useState('');\n const [debouncedInputValue, setDebouncedInputValue] = useState('');\n const [isOpened, setIsOpened] = useState(false);\n const [isSelectedLabelExpanded, setIsSelectedLabelExpanded] = useState(false);\n const inputRef = useRef<HTMLInputElement>(null);\n const paperRef = useRef<HTMLDivElement>(null);\n\n const { autocompleteOptions, isGrouped, handleAutocompleOptionsUpdate } = useAutocompletOptions({\n options,\n value,\n groups,\n selectedGroup,\n isPrioritizedSelectedOptions,\n });\n\n const styles = useStyles();\n\n const {\n popper,\n listbox,\n popupIndicator,\n popupIndicatorOpen,\n groupChip: groupChipClassName,\n ...restClasses\n } = classes;\n const autocompleteClasses = {\n popper: classNames(styles.popper, popper),\n listbox: classNames(styles.listbox, listbox),\n popupIndicator: classNames(styles.popupIndicator, popupIndicator),\n popupIndicatorOpen: classNames(styles.popupIndicatorOpen, popupIndicatorOpen),\n ...restClasses,\n };\n\n const groupBy = ({ group }: any) => group;\n\n const handleInputChange = (_event: ChangeEvent<{}>, newInputValue: string, reason: string) => {\n if (disableResetOnGroupChange)\n setInputValue(prevValue => (reason === 'reset' ? prevValue : newInputValue));\n else setInputValue(newInputValue);\n\n onInputChangeCallback(newInputValue, reason);\n };\n\n const handleInputReset = () => {\n setInputValue('');\n onInputReset?.();\n };\n\n const handleDebouncedInputChange = (inputValue: string) => setDebouncedInputValue(inputValue);\n\n const onDebouncedInputChange = useCallback(debounce(handleDebouncedInputChange, 500), []);\n\n const handleSelectedGroupChange = (selectedGroupId: string) => {\n const selectedGroup = groups.find(({ id }) => id === selectedGroupId);\n if (!disableResetOnGroupChange) handleInputReset();\n onGroupChange(selectedGroup);\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (inputValue.length) return;\n\n // NOTE: MUI try to focus tags for multiple Autocomplete\n // need to stop event to prevent crash, as we render custom content in TextField\n if (multiple && event.code === ARROW_LEFT_KEY_CODE) {\n event.stopPropagation();\n }\n };\n\n useEffect(() => {\n if (isOpened) {\n inputRef.current?.focus();\n inputRef.current?.setSelectionRange(inputValue.length, inputValue.length);\n }\n });\n\n const valueLength = multiple && Array.isArray(value) ? value.length : null;\n\n const allSelected = multiple && autocompleteOptions?.length === valueLength;\n const someSelected = multiple && !!valueLength && !allSelected;\n\n const onAllSelectClick = () => {\n handleInputReset();\n if (AutocompleteProps.getOptionDisabled && allSelected)\n return onChange(null as unknown as ChangeEvent<{}>, [options[options.length - 1]]);\n\n return onChange(\n null as unknown as ChangeEvent<{}>,\n allSelected || someSelected ? [] : autocompleteOptions\n );\n };\n\n useEffect(() => {\n onDebouncedInputChange(inputValue);\n\n if (!onInputChange) return;\n\n onInputChange(inputValue);\n }, [inputValue]);\n\n const handleAutocompleteChange = (event: ChangeEvent<{}>, selected: any | any[]) => {\n if (!multiple || shouldResetInputOnAutocompleteChange) {\n setInputValue('');\n }\n onChange(event, selected);\n };\n\n const handleSearchOpen = (e: ChangeEvent<{}>) => {\n handleAutocompleOptionsUpdate();\n setIsOpened(true);\n onOpen(e);\n };\n\n const handleSearchClose = (evt: ChangeEvent<{}>, reason: string) => {\n const focusEvt = evt as unknown as React.FocusEvent<HTMLElement>;\n const focusingDropdownElement =\n reason === 'blur' &&\n (!focusEvt.relatedTarget || paperRef.current?.contains(focusEvt.relatedTarget));\n\n if (!focusingDropdownElement) {\n onClose();\n setIsOpened(false);\n }\n };\n\n const handleSelectedOptionClick = () => {\n if (isOpenedFromParent ?? isOpened) {\n setIsOpened(false);\n\n onClose();\n } else {\n setIsOpened(true);\n\n onOpen();\n }\n };\n\n const renderGroup = ({ key, group, children }: AutocompleteRenderGroupParams) => {\n if (!group || (!isEmpty(selectedGroup) && multiple)) {\n return children;\n }\n\n return (\n <div className={styles.group} key={key}>\n <Tooltip\n title={group}\n placement=\"right\"\n TransitionComponent={Fade}\n TransitionProps={{ timeout: 500 }}\n enterDelay={500}\n >\n <Chip\n data-not-migrated-muichip\n className={classNames(styles.groupChip, groupChipClassName)}\n variant=\"outlined\"\n label={group}\n />\n </Tooltip>\n\n {children}\n </div>\n );\n };\n\n const getSelectedLabel = (value: any) => {\n if (allSelected && !isHiddenAllOption && !isHiddenAllLabel) return 'All';\n const label = value[0].label || value[0].name || '';\n\n return value?.length === 1 ? (\n <div>\n <MiddleTruncatedText>{label}</MiddleTruncatedText>\n </div>\n ) : (\n `${value?.length} Selected`\n );\n };\n\n const renderInput = (muiProps: any) => {\n // MUI Autocomplete invokes renderInput during its OWN render, so this state belongs to the\n // Autocomplete fiber. Hoisting it into Search re-targets the re-render and breaks the\n // ArrowUp/ArrowDown focus handoff between the input and the chips.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const [isFocused, setIsFocused] = useState(false);\n const { InputProps: mUIInputProps, inputProps: mUIinputProps, ...restMuiProps } = muiProps;\n const defaultEndAdornment =\n mUIInputProps.endAdornment?.props?.children?.length > 1\n ? cloneElement(mUIInputProps.endAdornment, {\n // remove clear button, popupIcon is left\n children: mUIInputProps.endAdornment.props.children.slice(1),\n onMouseDown: e => e.stopPropagation(),\n onMouseUp: e => e.stopPropagation(),\n })\n : mUIInputProps.endAdornment;\n\n const isNeedExpandInput = valueLength === 1;\n\n const isInputLabelShrink =\n isFocused ||\n isOpened ||\n inputValue.length > 0 ||\n !isEmpty(value) ||\n !isEmpty(InputProps?.startAdornment);\n\n const onInputBlur = () => {\n setIsFocused(false);\n if (isNeedExpandInput) {\n setIsSelectedLabelExpanded(true);\n }\n };\n\n const {\n classes: { input: inputClasses = '', ...restInputClasses } = {},\n style,\n ...restInputProps\n } = InputProps || {};\n\n return (\n <TextField\n {...restMuiProps}\n {...omit(TextFieldProps, ['endAdornment'])}\n onBlur={onInputBlur}\n onFocus={() => {\n setIsFocused(true);\n }}\n onKeyDown={handleKeyDown}\n inputRef={inputRef}\n placeholder={placeholder}\n classes={{ root: styles.searchInput }}\n inputProps={{ style: { padding: 5 }, ...mUIinputProps, ...props.inputProps }}\n InputLabelProps={{\n shrink: isInputLabelShrink,\n }}\n InputProps={{\n classes: {\n input: classNames(\n isSelectedLabelExpanded\n ? styles.inputShrinked\n : isNeedExpandInput && styles.inputExpanded,\n inputClasses\n ),\n ...restInputClasses,\n },\n style: { paddingRight: 0, paddingBottom: 0, ...style },\n ...mUIInputProps,\n ...restInputProps,\n startAdornment: (\n <>\n {InputProps?.startAdornment}\n {selectedGroup && (\n <Chip\n key={selectedGroup.id}\n className={styles.selectedGroup}\n data-not-migrated-muichip\n variant=\"outlined\"\n label={\n <div className={styles.selectedGroupLabel}>\n {selectedGroup.name}\n <CloseSmallIcon\n size={16}\n id=\"removeGroupIcon\"\n className={styles.removeIcon}\n onClick={onGroupReset}\n />\n </div>\n }\n />\n )}\n {multiple && !isEmpty(value) && (\n <div\n onClick={handleSelectedOptionClick}\n id=\"selectedOptions\"\n className={classNames(\n styles.selectedLabel,\n isSelectedLabelExpanded && styles.selectedLabelExpanded\n )}\n >\n {getSelectedLabel(value)}\n </div>\n )}\n </>\n ),\n endAdornment: (\n <>\n <InputAdornment\n className={classNames(styles.endAdornment, {\n [styles.removeIconWithDropdown]: AutocompleteProps.forcePopupIcon,\n })}\n position=\"end\"\n >\n {TextFieldProps.endAdornment}\n {loading && <CircularProgress color=\"primary\" size={20} />}\n {isFocused && inputValue && !disableClearable && (\n <IconButton\n data-testid={`${PAGE_NAME}_clear_icon`}\n size=\"small\"\n className={styles.iconButton}\n onClick={() => {\n setInputValue('');\n if (onInputReset) {\n onInputReset();\n }\n }}\n tooltipProps={{ title: 'Clear' }}\n >\n <CloseSmallIcon size={20} className={styles.closeIcon} />\n </IconButton>\n )}\n </InputAdornment>\n {AutocompleteProps.forcePopupIcon && defaultEndAdornment}\n </>\n ),\n }}\n />\n );\n };\n\n const renderOption = (option: any, state: any) => {\n const { label = '', id } = option;\n if (!multiple)\n return (\n <MenuItem\n className={styles.menuItem}\n key={id}\n value={id}\n data-testid={`autocompleteOption_${label}MenuItem`}\n >\n <MiddleTruncatedText className={styles.optionLabelContainer}>{label}</MiddleTruncatedText>\n </MenuItem>\n );\n return (\n <div\n className={classNames(styles.option, optionSize)}\n key={id}\n data-testid={`autocompleteOption_${label}MenuItem`}\n >\n <Checkbox size=\"small\" disableRipple className={styles.checkbox} checked={state.selected} />\n <MiddleTruncatedText className={styles.optionLabelContainer}>{label}</MiddleTruncatedText>\n </div>\n );\n };\n\n const isEmptyOptions = isEmpty(autocompleteOptions);\n const paperContext = useMemo(\n () => ({\n onOutsideClick: handleSearchClose,\n isEmptyOptions,\n loading,\n AllSelectComponent: !isHiddenAllOption && multiple && !isEmptyOptions && (\n <SelectAllListItem\n className={styles.selectAllCheckbox}\n onClick={onAllSelectClick}\n someSelected={someSelected}\n allSelected={allSelected}\n />\n ),\n RecentSearchesComponent: RecentSearchesComponent && (\n <RecentSearchesComponent\n title=\"Recent Searches\"\n Icon={TimeIcon}\n dataStorage={dataStorage}\n dataStorageKey={dataStorageKey}\n maxCount={recentSearchesMaxCount}\n isHidden={!isEmpty(inputValue)}\n onInputChange={(value: any) => setInputValue(value)}\n inputValue={debouncedInputValue}\n />\n ),\n GroupsComponent: !selectedGroup && isGrouped && GroupsComponent && (\n <GroupsComponent onGroupClick={handleSelectedGroupChange} groups={groups} />\n ),\n }),\n [\n selectedGroup,\n loading,\n isGrouped,\n isEmptyOptions,\n inputValue,\n isHiddenAllOption,\n multiple,\n isEmptyOptions,\n debouncedInputValue,\n onClose,\n handleSearchClose,\n ]\n );\n\n const PaperComponent = useMemo(\n () =>\n ({ children, className, ...paperProps }: any) =>\n (\n <Paper {...paperProps} className={className} inputRef={inputRef} ref={paperRef}>\n {children}\n {paperFooter}\n </Paper>\n ),\n [paperFooter]\n );\n\n const PopperComponent = useMemo(\n () => (props: any) => {\n const { style, ...restPopperProps } = popperProps;\n return (\n <Popper\n {...props}\n style={{ ...props.style, ...style }}\n placement=\"bottom-start\"\n {...restPopperProps}\n />\n );\n },\n [popperProps]\n );\n\n const handleRootFocus = () => {\n setIsSelectedLabelExpanded(false);\n onFocus?.();\n };\n\n return (\n <PaperContext.Provider value={paperContext}>\n <Autocomplete\n {...omit(props, ['InputProps', 'isNullable', 'isOpenedFromParent'])}\n PopperComponent={PopperComponent}\n disableClearable={disableClearable}\n onOpen={handleSearchOpen}\n onClose={handleSearchClose}\n open={isOpenedFromParent ?? isOpened}\n onChange={handleAutocompleteChange}\n forcePopupIcon={AutocompleteProps.forcePopupIcon}\n fullWidth\n disabled={disabled}\n value={value}\n classes={autocompleteClasses}\n renderInput={renderInput}\n loading={loading}\n options={autocompleteOptions}\n renderGroup={renderGroup}\n disableCloseOnSelect={multiple}\n multiple={multiple}\n renderOption={renderCustomOption || renderOption}\n groupBy={isGrouped ? groupBy : undefined}\n PaperComponent={PaperComponent}\n ListboxComponent={ListboxComponent}\n inputValue={inputValue}\n getOptionLabel={getOptionLabel}\n getOptionDisabled={AutocompleteProps?.getOptionDisabled}\n onInputChange={handleInputChange}\n loadingText={<div className={styles.label}>Loading ...</div>}\n noOptionsText={<div className={styles.label}>{noOptionsText}</div>}\n ListboxProps={ListboxProps}\n onFocus={handleRootFocus}\n />\n </PaperContext.Provider>\n );\n};\n\nSearch.Groups = Groups;\n\nexport default Search;\n"],"names":["initialPopperProps","Search","_ref","_ref$AutocompleteProp","AutocompleteProps","value","_ref$disableClearable","disableClearable","onChange","onInputChange","_ref$loading","loading","_ref$options","options","optionSize","_ref$placeholder","placeholder","_ref$onGroupChange","onGroupChange","_ref$disabled","disabled","disableResetOnGroupChange","_ref$multiple","multiple","_ref$groups","groups","GroupsComponent","_ref$recentSearchesMa","recentSearchesMaxCount","_ref$dataStorageKey","dataStorageKey","RecentSearchesComponent","_ref$dataStorage","dataStorage","sessionStorage","onInputReset","_ref$getOptionLabel","getOptionLabel","option","label","_ref$TextFieldProps","TextFieldProps","endAdornment","ListboxProps","_ref$onInputChangeCal","onInputChangeCallback","renderCustomOption","_ref$isHiddenAllOptio","isHiddenAllOption","_ref$isHiddenAllLabel","isHiddenAllLabel","_ref$onOpen","onOpen","noop","selectedGroup","_ref$onGroupReset","onGroupReset","_ref$onClose","onClose","_ref$popperProps","popperProps","paperFooter","_ref$noOptionsText","noOptionsText","_ref$ListboxComponent","ListboxComponent","Listbox","_ref$isPrioritizedSel","isPrioritizedSelectedOptions","_ref$isOpenedFromPare","isOpenedFromParent","undefined","onFocus","InputProps","_ref$classes","classes","popupIcon","shouldResetInputOnAutocompleteChange","props","_objectWithoutProperties","_excluded","useState","_useState2","_slicedToArray","_useState","inputValue","setInputValue","_useState4","_useState3","debouncedInputValue","setDebouncedInputValue","_useState6","_useState5","isOpened","setIsOpened","_useState8","_useState7","isSelectedLabelExpanded","setIsSelectedLabelExpanded","inputRef","useRef","paperRef","_useAutocompletOption","useAutocompletOptions","autocompleteOptions","isGrouped","handleAutocompleOptionsUpdate","styles","useStyles","popper","listbox","popupIndicator","popupIndicatorOpen","groupChipClassName","groupChip","restClasses","_excluded2","autocompleteClasses","_objectSpread","classNames","handleInputReset","onDebouncedInputChange","useCallback","debounce","handleSelectedGroupChange","selectedGroupId","find","_ref3","id","handleKeyDown","event","length","code","stopPropagation","useEffect","_inputRef$current","_inputRef$current2","current","focus","setSelectionRange","valueLength","Array","isArray","allSelected","someSelected","onAllSelectClick","getOptionDisabled","handleSearchClose","evt","reason","_paperRef$current","focusEvt","relatedTarget","contains","handleSelectedOptionClick","getSelectedLabel","name","_jsx","children","MiddleTruncatedText","concat","isEmptyOptions","isEmpty","paperContext","useMemo","onOutsideClick","AllSelectComponent","jsx","SelectAllListItem","className","selectAllCheckbox","onClick","title","Icon","TimeIcon","AccessTime","maxCount","isHidden","onGroupClick","PaperComponent","_ref6","paperProps","_excluded6","_jsxs","Paper","ref","PopperComponent","style","restPopperProps","_excluded7","Popper","placement","PaperContext","Provider","Autocomplete","omit","e","open","selected","forcePopupIcon","fullWidth","renderInput","muiProps","_mUIInputProps$endAdo","_mUIInputProps$endAdo2","_mUIInputProps$endAdo3","_useState10","_useState9","isFocused","setIsFocused","mUIInputProps","mUIinputProps","inputProps","restMuiProps","_excluded3","defaultEndAdornment","cloneElement","slice","onMouseDown","onMouseUp","isNeedExpandInput","isInputLabelShrink","startAdornment","_ref5$classes","_ref5","_ref5$classes$input","input","inputClasses","restInputClasses","_excluded4","restInputProps","_excluded5","TextField","onBlur","onKeyDown","root","searchInput","padding","InputLabelProps","shrink","inputShrinked","inputExpanded","paddingRight","paddingBottom","jsxs","_Fragment","Chip","variant","selectedGroupLabel","CloseSmallIcon","size","removeIcon","selectedLabel","selectedLabelExpanded","InputAdornment","_defineProperty","removeIconWithDropdown","position","CircularProgress","color","IconButton","iconButton","tooltipProps","closeIcon","renderGroup","_ref4","key","group","Tooltip","TransitionComponent","Fade","TransitionProps","timeout","enterDelay","disableCloseOnSelect","renderOption","state","_option$label","Checkbox","disableRipple","checkbox","checked","optionLabelContainer","MenuItem","menuItem","groupBy","_ref2","_event","newInputValue","prevValue","loadingText","Groups"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e="true"===process.env.REACT_APP_MAPBOX_ENABLED;exports.IS_MAPBOX_ENABLED=
|
|
1
|
+
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("mapbox-gl")),o="true"===process.env.REACT_APP_MAPBOX_ENABLED&&t.default.supported();exports.IS_MAPBOX_ENABLED=o,exports.MAP_BOX_ACCESS_TOKEN="pk.eyJ1IjoiY29ydmEtYWkiLCJhIjoiY2tzeXg1Ym84Mm53NjJvbnZvZ3JxajVwayJ9.3B6ubssBj1UCqN5o25X6pw";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/config/mapbox/index.js"],"sourcesContent":["// NOTE: Access token from Jim Wang\nexport const MAP_BOX_ACCESS_TOKEN =\n 'pk.eyJ1IjoiY29ydmEtYWkiLCJhIjoiY2tzeXg1Ym84Mm53NjJvbnZvZ3JxajVwayJ9.3B6ubssBj1UCqN5o25X6pw';\n\n// Airgapped deployments cannot reach api.mapbox.com, so their maps must never mount.\n// The host app inlines this at its own build (corva-web-frontend maps VITE_ to REACT_APP_).\nexport const IS_MAPBOX_ENABLED
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/config/mapbox/index.js"],"sourcesContent":["import mapboxgl from 'mapbox-gl';\n\n// NOTE: Access token from Jim Wang\nexport const MAP_BOX_ACCESS_TOKEN =\n 'pk.eyJ1IjoiY29ydmEtYWkiLCJhIjoiY2tzeXg1Ym84Mm53NjJvbnZvZ3JxajVwayJ9.3B6ubssBj1UCqN5o25X6pw';\n\n// Airgapped deployments cannot reach api.mapbox.com, so their maps must never mount.\n// The host app inlines this at its own build (corva-web-frontend maps VITE_ to REACT_APP_).\n// Mapbox needs a WebGL2 context; where there is none its Map constructor throws and\n// takes the whole host app down. The scheduled PDF report renderer is headless with\n// no GPU, so treat that the same way as an airgapped deployment and never mount.\n// mapboxgl.supported() is the library's own check, so it tracks whatever the pinned\n// version actually requires — 3.x needs WebGL2, a shader that compiles, workers and\n// canvas readback, none of which a plain getContext probe would catch.\nexport const IS_MAPBOX_ENABLED =\n process.env.REACT_APP_MAPBOX_ENABLED === 'true' && mapboxgl.supported();\n"],"names":["IS_MAPBOX_ENABLED","process","env","REACT_APP_MAPBOX_ENABLED","mapboxgl","supported"],"mappings":"0KAcaA,EAC8B,SAAzCC,QAAQC,IAAIC,0BAAuCC,EAAQ,QAACC,qEAX5D"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("@babel/runtime/helpers/defineProperty"),t=require("@babel/runtime/helpers/slicedToArray"),r=require("react"),n=require("@material-ui/core"),o=require("@material-ui/icons"),i=require("react/jsx-runtime");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/defineProperty"),t=require("@babel/runtime/helpers/slicedToArray"),r=require("react"),n=require("@material-ui/core"),o=require("@material-ui/icons"),i=require("react/jsx-runtime");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=a(e),c=a(t);function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function u(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){l.default(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var d=n.makeStyles((function(e){return{root:{display:"flex"},assetEditorWrapper:{width:"100%"},iconButtonWrapper:{height:36,marginTop:10,marginLeft:16},iconButton:{color:e.palette.primary.text6,width:36,height:36,"&:hover":{backgroundColor:e.palette.background.b7}}}}));module.exports=function(e){return function(t){var a=d(),l=r.useState(!0),s=c.default(l,2),p=s[0],f=s[1],b=r.useState(!0),h=c.default(b,2),m=h[0],g=h[1];r.useEffect((function(){m||g(!0)}),[m]);var j=p?o.LockOutlined:o.ReplayOutlined;return i.jsxs("div",{className:a.root,children:[i.jsx(n.Tooltip,{title:p?"This app is using current dashboard asset.":"",placement:"bottom",children:i.jsx("div",{className:a.assetEditorWrapper,children:m&&i.jsx(e,u(u({},t),{},{disabled:p}))})}),i.jsx(n.Tooltip,{title:p?"Unlock Asset":"Return default",placement:"bottom",children:i.jsx("div",{className:a.iconButtonWrapper,children:i.jsx(n.IconButton,{className:a.iconButton,"data-testid":"".concat(p?"UnlockAsset":"ReturnDefault","_IconButton"),onClick:function(){var e=!p;f(e),e&&(t.onChangeEditorField?(t.onChangeEditorField("assetId",null),t.onChangeEditorField("replacedAssetId",null),t.onChangeEditorField("replacedAssetTime",null)):t.onSettingsChange({rigId:null,wellId:null}),g(!1))},children:i.jsx(j,{})})})})]})}};
|
|
2
2
|
//# sourceMappingURL=withAssetEditorLockHOC.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withAssetEditorLockHOC.js","sources":["../../../src/hocs/withAssetEditorLockHOC.
|
|
1
|
+
{"version":3,"file":"withAssetEditorLockHOC.js","sources":["../../../src/hocs/withAssetEditorLockHOC.tsx"],"sourcesContent":["import { ComponentType, FC, useState, useEffect } from 'react';\nimport { Tooltip, makeStyles, IconButton } from '@material-ui/core';\nimport { LockOutlined, ReplayOutlined } from '@material-ui/icons';\n\nimport { AssetSettingsPatch } from '../components/AssetEditorV2';\n\ntype AssetEditorLockProps =\n | {\n onChangeEditorField: (\n field: 'assetId' | 'replacedAssetId' | 'replacedAssetTime',\n value: null\n ) => void;\n }\n | {\n onChangeEditorField?: never;\n onSettingsChange: (settings: AssetSettingsPatch) => void;\n };\n\nconst useStyles = makeStyles(theme => ({\n root: { display: 'flex' },\n assetEditorWrapper: { width: '100%' },\n iconButtonWrapper: { height: 36, marginTop: 10, marginLeft: 16 },\n iconButton: {\n color: theme.palette.primary.text6,\n width: 36,\n height: 36,\n '&:hover': { backgroundColor: theme.palette.background.b7 },\n },\n}));\n\nconst withAssetEditorLockHOC = <Props extends { disabled?: boolean }>(\n WrappedComponent: ComponentType<Props>\n) => {\n const AssetEditorWithLock: FC<Props & AssetEditorLockProps> = props => {\n const styles = useStyles();\n const [locked, setLocked] = useState(true);\n const [showAssetEditor, setShowAssetEditor] = useState(true);\n\n const onToggleAssetEditorLock = () => {\n const nextValue = !locked;\n setLocked(nextValue);\n if (nextValue) {\n if (props.onChangeEditorField) {\n props.onChangeEditorField('assetId', null);\n props.onChangeEditorField('replacedAssetId', null);\n props.onChangeEditorField('replacedAssetTime', null);\n } else {\n props.onSettingsChange({ rigId: null, wellId: null });\n }\n setShowAssetEditor(false);\n }\n };\n\n useEffect(() => {\n // NOTE: Here we force AssetEditor remount to correctly reset its state\n if (!showAssetEditor) {\n setShowAssetEditor(true);\n }\n }, [showAssetEditor]);\n\n const Icon = locked ? LockOutlined : ReplayOutlined;\n return (\n <div className={styles.root}>\n <Tooltip\n title={locked ? 'This app is using current dashboard asset.' : ''}\n placement=\"bottom\"\n >\n <div className={styles.assetEditorWrapper}>\n {showAssetEditor && <WrappedComponent {...props} disabled={locked} />}\n </div>\n </Tooltip>\n <Tooltip title={locked ? 'Unlock Asset' : 'Return default'} placement=\"bottom\">\n <div className={styles.iconButtonWrapper}>\n <IconButton\n className={styles.iconButton}\n data-testid={`${locked ? 'UnlockAsset' : 'ReturnDefault'}_IconButton`}\n onClick={onToggleAssetEditorLock}\n >\n <Icon />\n </IconButton>\n </div>\n </Tooltip>\n </div>\n );\n };\n\n return AssetEditorWithLock;\n};\n\nexport default withAssetEditorLockHOC;\n"],"names":["useStyles","makeStyles","theme","root","display","assetEditorWrapper","width","iconButtonWrapper","height","marginTop","marginLeft","iconButton","color","palette","primary","text6","backgroundColor","background","b7","WrappedComponent","props","styles","useState","_useState2","_slicedToArray","_useState","locked","setLocked","_useState4","_useState3","showAssetEditor","setShowAssetEditor","useEffect","Icon","LockOutlined","ReplayOutlined","_jsxs","className","children","_jsx","Tooltip","title","placement","jsx","disabled","IconButton","concat","onClick","nextValue","onChangeEditorField","onSettingsChange","rigId","wellId"],"mappings":"w4BAkBA,IAAMA,EAAYC,EAAAA,YAAW,SAAAC,GAAK,MAAK,CACrCC,KAAM,CAAEC,QAAS,QACjBC,mBAAoB,CAAEC,MAAO,QAC7BC,kBAAmB,CAAEC,OAAQ,GAAIC,UAAW,GAAIC,WAAY,IAC5DC,WAAY,CACVC,MAAOV,EAAMW,QAAQC,QAAQC,MAC7BT,MAAO,GACPE,OAAQ,GACR,UAAW,CAAEQ,gBAAiBd,EAAMW,QAAQI,WAAWC,KAE1D,mBAE8B,SAC7BC,GAuDA,OArD8D,SAAAC,GAC5D,IAAMC,EAASrB,IACasB,EAAAA,EAAQA,UAAC,GAAKC,EAAAC,EAAAA,QAAAC,EAAA,GAAnCC,EAAMH,EAAA,GAAEI,EAASJ,EAAA,GACsBD,EAAAA,EAAQA,UAAC,GAAKM,EAAAJ,EAAAA,QAAAK,EAAA,GAArDC,EAAeF,EAAA,GAAEG,EAAkBH,EAAA,GAiB1CI,EAAAA,WAAU,WAEHF,GACHC,GAAmB,EAEvB,GAAG,CAACD,IAEJ,IAAMG,EAAOP,EAASQ,EAAYA,aAAGC,iBACrC,OACEC,EAAAA,KAAA,MAAA,CAAKC,UAAWhB,EAAOlB,KAAKmC,SAAA,CAC1BC,MAACC,UAAO,CACNC,MAAOf,EAAS,6CAA+C,GAC/DgB,UAAU,SAAQJ,SAElBC,EAAAI,IAAA,MAAA,CAAKN,UAAWhB,EAAOhB,mBAAmBiC,SACvCR,GAAmBS,EAACI,IAAAxB,SAAqBC,GAAK,GAAA,CAAEwB,SAAUlB,SAG/Da,MAACC,UAAO,CAACC,MAAOf,EAAS,eAAiB,iBAAkBgB,UAAU,SAAQJ,SAC5EC,EAAAI,IAAA,MAAA,CAAKN,UAAWhB,EAAOd,kBAAkB+B,SACvCC,MAACM,aAAU,CACTR,UAAWhB,EAAOV,WAClB,cAAA,GAAAmC,OAAgBpB,EAAS,cAAgB,gBAA6B,eACtEqB,QAtCsB,WAC9B,IAAMC,GAAatB,EACnBC,EAAUqB,GACNA,IACE5B,EAAM6B,qBACR7B,EAAM6B,oBAAoB,UAAW,MACrC7B,EAAM6B,oBAAoB,kBAAmB,MAC7C7B,EAAM6B,oBAAoB,oBAAqB,OAE/C7B,EAAM8B,iBAAiB,CAAEC,MAAO,KAAMC,OAAQ,OAEhDrB,GAAmB,KA2BoBO,SAEjCC,EAAAA,IAACN,EAAI,aASnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssetEditorV2.test.d.ts","sourceRoot":"","sources":["../../../../src/components/AssetEditorV2/__tests__/AssetEditorV2.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consumerTypes.test.d.ts","sourceRoot":"","sources":["../../../../src/components/AssetEditorV2/__tests__/consumerTypes.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1,8 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { FC, ReactNode } from 'react';
|
|
2
|
+
import { SwitchProps } from '../../../componentsV2/Switch';
|
|
3
|
+
type MultipleAssetsToggleProps = {
|
|
4
|
+
onLabel?: SwitchProps['onLabel'];
|
|
5
|
+
offLabel?: SwitchProps['offLabel'];
|
|
6
|
+
checked?: SwitchProps['checked'];
|
|
7
|
+
disabled?: SwitchProps['disabled'];
|
|
8
|
+
onChange?: SwitchProps['onChange'];
|
|
9
|
+
size?: SwitchProps['size'];
|
|
10
|
+
disableOffState?: SwitchProps['disableOffState'];
|
|
11
|
+
inputRef?: SwitchProps['inputRef'];
|
|
12
|
+
className?: SwitchProps['className'];
|
|
13
|
+
testId?: SwitchProps['testId'];
|
|
14
|
+
isChecked?: boolean;
|
|
15
|
+
title?: ReactNode;
|
|
16
|
+
};
|
|
17
|
+
declare const MultipleAssetsToggle: FC<MultipleAssetsToggleProps>;
|
|
7
18
|
export default MultipleAssetsToggle;
|
|
8
19
|
//# sourceMappingURL=MultipleAssetsToggle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultipleAssetsToggle.d.ts","sourceRoot":"","sources":["../../../../src/components/AssetEditorV2/components/MultipleAssetsToggle.
|
|
1
|
+
{"version":3,"file":"MultipleAssetsToggle.d.ts","sourceRoot":"","sources":["../../../../src/components/AssetEditorV2/components/MultipleAssetsToggle.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKtC,OAAO,EAAU,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAenE,KAAK,yBAAyB,GAAG;IAC/B,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,eAAe,CAAC,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC;IACjD,QAAQ,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,QAAA,MAAM,oBAAoB,EAAE,EAAE,CAAC,yBAAyB,CA2BvD,CAAC;eAEa,oBAAoB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultipleAssetsToggle.js","sources":["../../../../src/components/AssetEditorV2/components/MultipleAssetsToggle.
|
|
1
|
+
{"version":3,"file":"MultipleAssetsToggle.js","sources":["../../../../src/components/AssetEditorV2/components/MultipleAssetsToggle.tsx"],"sourcesContent":["import { FC, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport { makeStyles, Tooltip } from '@material-ui/core';\nimport { InfoOutlined as InfoIcon } from '@material-ui/icons';\n\nimport { Switch, SwitchProps } from '../../../componentsV2/Switch';\n\nconst useStyles = makeStyles(({ palette, spacing }) => ({\n root: { marginBottom: spacing(0.75), width: 'fit-content' },\n title: { display: 'flex', alignItems: 'center' },\n infoIcon: {\n marginLeft: 4,\n color: palette.primary.text6,\n\n '&:hover': {\n color: palette.primary.contrastText,\n },\n },\n}));\n\ntype MultipleAssetsToggleProps = {\n onLabel?: SwitchProps['onLabel'];\n offLabel?: SwitchProps['offLabel'];\n checked?: SwitchProps['checked'];\n disabled?: SwitchProps['disabled'];\n onChange?: SwitchProps['onChange'];\n size?: SwitchProps['size'];\n disableOffState?: SwitchProps['disableOffState'];\n inputRef?: SwitchProps['inputRef'];\n className?: SwitchProps['className'];\n testId?: SwitchProps['testId'];\n isChecked?: boolean;\n title?: ReactNode;\n};\n\nconst MultipleAssetsToggle: FC<MultipleAssetsToggleProps> = ({\n isChecked,\n title = 'Multiple Assets',\n className,\n ...props\n}) => {\n const styles = useStyles();\n\n return (\n <Switch\n className={classNames(styles.root, className)}\n size=\"small\"\n onLabel={\n <span className={styles.title}>\n {title}\n <Tooltip\n title=\"A separate app will be placed on the dashboard for each asset chosen\"\n placement=\"bottom-start\"\n >\n <InfoIcon fontSize=\"small\" className={styles.infoIcon} />\n </Tooltip>\n </span>\n }\n checked={isChecked}\n {...props}\n />\n );\n};\n\nexport default MultipleAssetsToggle;\n"],"names":["useStyles","makeStyles","_ref","palette","root","marginBottom","spacing","width","title","display","alignItems","infoIcon","marginLeft","color","primary","text6","contrastText","MultipleAssetsToggle","_ref2","isChecked","_ref2$title","className","props","_objectWithoutProperties","_excluded","styles","_jsx","Switch","_objectSpread","classNames","size","onLabel","_jsxs","children","Tooltip","placement","InfoIcon","fontSize","checked"],"mappings":"mnBAOA,IAAMA,EAAYC,GAAW,SAAAC,GAAA,IAAGC,IAAAA,QAAgB,MAAQ,CACtDC,KAAM,CAAEC,cAAcC,IADiBA,SACT,KAAOC,MAAO,eAC5CC,MAAO,CAAEC,QAAS,OAAQC,WAAY,UACtCC,SAAU,CACRC,WAAY,EACZC,MAAOV,EAAQW,QAAQC,MAEvB,UAAW,CACTF,MAAOV,EAAQW,QAAQE,eAG5B,IAiBKC,EAAsD,SAKtDC,GAAA,IAJJC,IAAAA,UAASC,EAAAF,EACTV,MAAAA,aAAQ,kBAAiBY,EACzBC,IAAAA,UACGC,EAAKC,EAAAL,EAAAM,GAEFC,EAASzB,IAEf,OACE0B,EAACC,iWAAMC,CAAA,CACLP,UAAWQ,EAAWJ,EAAOrB,KAAMiB,GACnCS,KAAK,QACLC,QACEC,EAAA,OAAA,CAAMX,UAAWI,EAAOjB,MAAMyB,SAC3BzB,CAAAA,EACDkB,EAACQ,EAAO,CACN1B,MAAM,uEACN2B,UAAU,eAAcF,SAExBP,EAACU,EAAQ,CAACC,SAAS,QAAQhB,UAAWI,EAAOd,gBAInD2B,QAASnB,GACLG,GAGV"}
|
|
@@ -1,41 +1,32 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
isSecondaryAssetPresent: PropTypes.Requireable<boolean>;
|
|
32
|
-
'data-testid': PropTypes.Requireable<string>;
|
|
33
|
-
onInputReset: PropTypes.Requireable<(...args: any[]) => any>;
|
|
34
|
-
onActiveAssetIdChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
35
|
-
placeholder: PropTypes.Requireable<string>;
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
declare const DEFAULT_PRIMARY_ASSET_SELECT_ON_INPUT_RESET: () => void;
|
|
39
|
-
declare const DEFAULT_PRIMARY_ASSET_SELECT_ON_ACTIVE_ASSET_ID_CHANGE: () => void;
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { AssetGroup, AssetId, AssetSelection, PrimaryAssetChange } from '../types';
|
|
3
|
+
export type PrimaryAssetSelectProps = {
|
|
4
|
+
'data-testid'?: string;
|
|
5
|
+
appKey?: string | null;
|
|
6
|
+
assetFields?: string[];
|
|
7
|
+
assetType?: string | null;
|
|
8
|
+
company?: AssetId | null;
|
|
9
|
+
currentOption?: AssetSelection;
|
|
10
|
+
currentValue?: AssetId | null;
|
|
11
|
+
defaultValue?: AssetId | null;
|
|
12
|
+
disableClearable?: boolean;
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
groups?: AssetGroup[];
|
|
15
|
+
isDrillingPlatformApp?: boolean;
|
|
16
|
+
isNullable?: boolean;
|
|
17
|
+
isRequiredAssetId?: boolean;
|
|
18
|
+
isSecondaryAssetPresent?: boolean;
|
|
19
|
+
label?: string;
|
|
20
|
+
multiple?: boolean;
|
|
21
|
+
onActiveAssetIdChange?: (id: number | null) => void;
|
|
22
|
+
onChange: (selected: PrimaryAssetChange) => void;
|
|
23
|
+
onGroupChange?: (group: AssetGroup | null) => void;
|
|
24
|
+
onGroupReset?: () => void;
|
|
25
|
+
onInputReset?: () => void;
|
|
26
|
+
placeholder?: string | null;
|
|
27
|
+
selectedGroup?: AssetGroup | null;
|
|
28
|
+
setCurrentOption: (selection: AssetSelection) => void;
|
|
29
|
+
};
|
|
30
|
+
declare const PrimaryAssetSelect: FC<PrimaryAssetSelectProps>;
|
|
40
31
|
export default PrimaryAssetSelect;
|
|
41
32
|
//# sourceMappingURL=PrimaryAssetSelect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrimaryAssetSelect.d.ts","sourceRoot":"","sources":["../../../../src/components/AssetEditorV2/components/PrimaryAssetSelect.
|
|
1
|
+
{"version":3,"file":"PrimaryAssetSelect.d.ts","sourceRoot":"","sources":["../../../../src/components/AssetEditorV2/components/PrimaryAssetSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAY,MAAM,OAAO,CAAC;AAQrC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAe,cAAc,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAKhG,MAAM,MAAM,uBAAuB,GAAG;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACpD,QAAQ,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACjD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,KAAK,IAAI,CAAC;IACnD,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAClC,gBAAgB,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,IAAI,CAAC;CACvD,CAAC;AAmDF,QAAA,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CA+HnD,CAAC;eAEa,kBAAkB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"@babel/runtime/helpers/slicedToArray";import t from"
|
|
1
|
+
import e from"@babel/runtime/helpers/slicedToArray";import t from"@babel/runtime/helpers/typeof";import{useState as o}from"react";import{debounce as r,noop as n}from"lodash";import{makeStyles as i,Chip as a}from"@material-ui/core";import{Search as s}from"../../Search/Search.js";import"../../Search/components/Listbox.js";import"../../Search/components/Paper.js";import"../../Search/components/RecentSearches.js";import l from"../../Search/components/InputAdornmentLeft.js";import p from"../../Search/components/Groups.js";import"../../Search/components/SelectAllListItem.js";import{usePrimaryAssetSelectData as u}from"../effects/index.js";import{ACTIVE_STATUS as d,DEFAULT_ASSET_TYPE as c}from"../constants.js";import{getSearchPlaceholder as m}from"../utils/index.js";import f from"./SelectItem.js";import{jsx as h}from"react/jsx-runtime";var g=i({paper:{boxShadow:"0px 3px 10px 0px #00000066"},listbox:{maxHeight:210,"& .MuiAutocomplete-option":{padding:"0px 0px 0px 16px"}},option:{padding:"6px 0","&:hover":{backgroundColor:"initial"}},groupChip:{height:32,padding:0},activeChip:{fontWeight:500,backgroundColor:"#75DB29",color:"#212121",fontSize:10,cursor:"pointer",height:12,textTransform:"uppercase",marginRight:12,letterSpacing:1}}),b=[],v=n,x=n,A=function(e){return!!e&&"object"===t(e)&&"id"in e&&"number"==typeof e.id},C=function(t){var n=t["data-testid"],i=void 0===n?"PrimaryAssetEditorAutocomplete":n,C=t.appKey,y=t.assetFields,S=void 0===y?b:y,j=t.assetType,I=t.company,G=t.currentOption,R=t.currentValue,N=t.defaultValue,O=t.disableClearable,P=t.disabled,T=t.groups,L=t.isNullable,V=t.isRequiredAssetId,F=t.isSecondaryAssetPresent,k=void 0===F||F,q=t.label,H=t.multiple,K=t.onActiveAssetIdChange,M=void 0===K?x:K,_=t.onChange,w=t.onGroupChange,z=t.onGroupReset,B=t.onInputReset,D=void 0===B?v:B,E=t.placeholder,W=void 0===E?null:E,J=t.selectedGroup,Q=t.setCurrentOption,U=o(""),X=e(U,2),Y=X[0],Z=X[1],$=m(j,k),ee=j||c,te=g(),oe=u({appKey:C,assetType:ee,company:I,groups:T,isRequiredAssetId:V,assetFields:S,selectedGroup:J,currentValue:R,setCurrentOption:Q,onActiveAssetIdChange:M}),re=oe.assets,ne=oe.loading,ie=o((function(){return r((function(e){Z(e)}),200)})),ae=e(ie,1)[0],se=!Array.isArray(G)&&(null==G?void 0:G.status)===d;return h(s,{classes:{paper:te.paper,listbox:te.listbox,groupChip:te.groupChip},defaultValue:N,disableClearable:O,disabled:P,isNullable:L,loading:ne,onGroupChange:function(e){var t,o=null!==(t=null==T?void 0:T.find((function(t){return t.id===(null==e?void 0:e.id)})))&&void 0!==t?t:null;null==w||w(o)},onGroupReset:z,placeholder:W||$,selectedGroup:J,onChange:function(e,t){_(function(e){return e?Array.isArray(e)?e.filter(A):A(e)?e:null:null}(t))},"data-testid":i,multiple:H,onInputChange:ae,onInputReset:function(){D(),Q(null)},TextFieldProps:{label:q,value:Y,endAdornment:se&&h(a,{"data-not-migrated-muichip":!0,className:te.activeChip,label:"Active"})},isHiddenAllOption:!0,value:G,options:re,renderCustomOption:function(e,t){if(!A(e))return null;var o=e.status,r=e.name,n=void 0===r?"":r,a=e.id;return h(f,{className:te.option,assetName:n,multiple:H,selected:t.selected,value:a,status:o===d?d:null,"data-testid":"".concat(i,"_option_").concat(n,"MenuItem")},a)},getOptionLabel:function(e){return A(e)&&e.name||""},GroupsComponent:p,groups:T,InputProps:{startAdornment:h(l,{className:"",children:null})}})};export{C as default};
|
|
2
2
|
//# sourceMappingURL=PrimaryAssetSelect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrimaryAssetSelect.js","sources":["../../../../src/components/AssetEditorV2/components/PrimaryAssetSelect.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { useCallback, useState } from 'react';\nimport { debounce } from 'lodash';\nimport { Chip, makeStyles } from '@material-ui/core';\n\nimport Search from '../../Search/Search';\nimport { Groups, InputAdornmentLeft } from '../../Search/components';\nimport { usePrimaryAssetSelectData } from '../effects';\nimport { ACTIVE_STATUS } from '../constants';\nimport { getSearchPlaceholder } from '../utils';\n\nimport SelectItem from './SelectItem';\n\nconst useStyles = makeStyles({\n paper: {\n boxShadow: '0px 3px 10px 0px #00000066',\n },\n listbox: {\n maxHeight: 210,\n '& .MuiAutocomplete-option': {\n padding: '0px 0px 0px 16px',\n },\n },\n option: {\n padding: '6px 0',\n '&:hover': {\n backgroundColor: 'initial',\n },\n },\n groupChip: {\n height: 32,\n padding: 0,\n },\n activeChip: {\n fontWeight: 500,\n backgroundColor: '#75DB29',\n color: '#212121',\n fontSize: 10,\n cursor: 'pointer',\n height: 12,\n textTransform: 'uppercase',\n marginRight: 12,\n letterSpacing: 1,\n },\n});\n\nconst PrimaryAssetSelect = ({\n 'data-testid': PAGE_NAME = 'PrimaryAssetEditorAutocomplete',\n appKey,\n assetFields = DEFAULT_PRIMARY_ASSET_SELECT_ASSET_FIELDS,\n assetType,\n company,\n currentOption,\n currentValue,\n defaultValue,\n disableClearable,\n disabled,\n groups,\n isNullable,\n isRequiredAssetId,\n isSecondaryAssetPresent = true,\n label,\n multiple,\n onActiveAssetIdChange = DEFAULT_PRIMARY_ASSET_SELECT_ON_ACTIVE_ASSET_ID_CHANGE,\n onChange,\n onGroupChange,\n onGroupReset,\n onInputReset = DEFAULT_PRIMARY_ASSET_SELECT_ON_INPUT_RESET,\n placeholder = null,\n selectedGroup,\n setCurrentOption,\n}) => {\n const [searchValue, setSearchValue] = useState('');\n\n const searchPlaceholder = getSearchPlaceholder(assetType, isSecondaryAssetPresent);\n const styles = useStyles();\n\n const { assets, loading: isLoading } = usePrimaryAssetSelectData({\n appKey,\n assetType,\n company,\n groups,\n isRequiredAssetId,\n assetFields,\n selectedGroup,\n currentValue,\n setCurrentOption,\n onActiveAssetIdChange,\n });\n\n const onInputChange = useCallback(\n debounce(value => {\n setSearchValue(value);\n }, 200),\n []\n );\n\n const renderOption = ({ status, name, id }, { selected }) => {\n return (\n <SelectItem\n className={styles.option}\n assetName={name}\n key={id}\n multiple={multiple}\n selected={selected}\n value={id}\n status={status && ACTIVE_STATUS}\n data-testid={`${PAGE_NAME}_option_${name}MenuItem`}\n />\n );\n };\n\n return (\n <Search\n classes={{\n paper: styles.paper,\n listbox: styles.listbox,\n groupChip: styles.groupChip,\n }}\n defaultValue={defaultValue}\n disableClearable={disableClearable}\n disabled={disabled}\n isNullable={isNullable}\n loading={isLoading}\n onGroupChange={onGroupChange}\n onGroupReset={onGroupReset}\n placeholder={placeholder || searchPlaceholder}\n selectedGroup={selectedGroup}\n onChange={(event, selected) => {\n onChange(selected);\n }}\n data-testid={PAGE_NAME}\n multiple={multiple}\n onInputChange={onInputChange}\n onInputReset={() => {\n onInputReset();\n setCurrentOption(null);\n }}\n TextFieldProps={{\n label,\n value: searchValue,\n endAdornment: currentOption?.status === ACTIVE_STATUS && (\n <Chip data-not-migrated-muichip className={styles.activeChip} label=\"Active\" />\n ),\n }}\n isHiddenAllOption\n value={currentOption}\n options={assets}\n renderCustomOption={renderOption}\n getOptionLabel={option => option.name || ''}\n GroupsComponent={Groups}\n groups={groups}\n InputProps={{\n startAdornment: <InputAdornmentLeft />,\n }}\n />\n );\n};\n\nPrimaryAssetSelect.propTypes = {\n assetFields: PropTypes.array,\n isSecondaryAssetPresent: PropTypes.bool,\n 'data-testid': PropTypes.string,\n onInputReset: PropTypes.func,\n onActiveAssetIdChange: PropTypes.func,\n placeholder: PropTypes.string,\n};\n\nconst DEFAULT_PRIMARY_ASSET_SELECT_ASSET_FIELDS = [];\nconst DEFAULT_PRIMARY_ASSET_SELECT_ON_INPUT_RESET = () => {};\nconst DEFAULT_PRIMARY_ASSET_SELECT_ON_ACTIVE_ASSET_ID_CHANGE = () => {};\n\nexport default PrimaryAssetSelect;\n"],"names":["useStyles","makeStyles","paper","boxShadow","listbox","maxHeight","padding","option","backgroundColor","groupChip","height","activeChip","fontWeight","color","fontSize","cursor","textTransform","marginRight","letterSpacing","PrimaryAssetSelect","_ref","_ref$dataTestid","PAGE_NAME","appKey","_ref$assetFields","assetFields","DEFAULT_PRIMARY_ASSET_SELECT_ASSET_FIELDS","assetType","company","currentOption","currentValue","defaultValue","disableClearable","disabled","groups","isNullable","isRequiredAssetId","_ref$isSecondaryAsset","isSecondaryAssetPresent","label","multiple","_ref$onActiveAssetIdC","onActiveAssetIdChange","DEFAULT_PRIMARY_ASSET_SELECT_ON_ACTIVE_ASSET_ID_CHANGE","onChange","onGroupChange","onGroupReset","_ref$onInputReset","onInputReset","DEFAULT_PRIMARY_ASSET_SELECT_ON_INPUT_RESET","_ref$placeholder","placeholder","selectedGroup","setCurrentOption","useState","_useState2","_slicedToArray","_useState","searchValue","setSearchValue","searchPlaceholder","getSearchPlaceholder","styles","_usePrimaryAssetSelec","usePrimaryAssetSelectData","assets","isLoading","loading","onInputChange","useCallback","debounce","value","_jsx","Search","classes","event","selected","TextFieldProps","endAdornment","status","ACTIVE_STATUS","Chip","className","isHiddenAllOption","options","renderCustomOption","_ref2","_ref3","name","id","SelectItem","assetName","getOptionLabel","GroupsComponent","Groups","InputProps","startAdornment","InputAdornmentLeft","propTypes","PropTypes","array","bool","string","func"],"mappings":"oyBAaA,IAAMA,EAAYC,EAAW,CAC3BC,MAAO,CACLC,UAAW,8BAEbC,QAAS,CACPC,UAAW,IACX,4BAA6B,CAC3BC,QAAS,qBAGbC,OAAQ,CACND,QAAS,QACT,UAAW,CACTE,gBAAiB,YAGrBC,UAAW,CACTC,OAAQ,GACRJ,QAAS,GAEXK,WAAY,CACVC,WAAY,IACZJ,gBAAiB,UACjBK,MAAO,UACPC,SAAU,GACVC,OAAQ,UACRL,OAAQ,GACRM,cAAe,YACfC,YAAa,GACbC,cAAe,KAIbC,EAAqB,SAyBrBC,GAAA,IAAAC,EAAAD,EAxBJ,eAAeE,aAAY,iCAAgCD,EAC3DE,IAAAA,OAAMC,EAAAJ,EACNK,YAAAA,aAAcC,EAAyCF,EACvDG,IAAAA,UACAC,IAAAA,QACAC,IAAAA,cACAC,IAAAA,aACAC,IAAAA,aACAC,IAAAA,iBACAC,IAAAA,SACAC,IAAAA,OACAC,IAAAA,WACAC,IAAAA,kBAAiBC,EAAAjB,EACjBkB,wBAAAA,cAA8BD,EAC9BE,IAAAA,MACAC,IAAAA,SAAQC,EAAArB,EACRsB,sBAAAA,aAAwBC,EAAsDF,EAC9EG,IAAAA,SACAC,IAAAA,cACAC,IAAAA,aAAYC,EAAA3B,EACZ4B,aAAAA,aAAeC,EAA2CF,EAAAG,EAAA9B,EAC1D+B,YAAAA,aAAc,KAAID,EAClBE,IAAAA,cACAC,IAAAA,iBAEsCC,EAAAA,EAAS,IAAGC,EAAAC,EAAAC,EAAA,GAA3CC,EAAWH,EAAA,GAAEI,EAAcJ,EAAA,GAE5BK,EAAoBC,EAAqBlC,EAAWW,GACpDwB,EAAS9D,IAEf+D,GAAuCC,EAA0B,CAC/DzC,OAAAA,EACAI,UAAAA,EACAC,QAAAA,EACAM,OAAAA,EACAE,kBAAAA,EACAX,YAAAA,EACA2B,cAAAA,EACAtB,aAAAA,EACAuB,iBAAAA,EACAX,sBAAAA,IAVMuB,MAAAA,OAAiBC,MAATC,QAaVC,GAAgBC,EACpBC,GAAS,SAAAC,GACPZ,EAAeY,EACjB,GAAG,KACH,IAkBF,OACEC,EAACC,EAAM,CACLC,QAAS,CACPxE,MAAO4D,EAAO5D,MACdE,QAAS0D,EAAO1D,QAChBK,UAAWqD,EAAOrD,WAEpBsB,aAAcA,EACdC,iBAAkBA,EAClBC,SAAUA,EACVE,WAAYA,EACZgC,QAASD,GACTrB,cAAeA,EACfC,aAAcA,EACdK,YAAaA,GAAeS,EAC5BR,cAAeA,EACfR,SAAU,SAAC+B,EAAOC,GAChBhC,EAASgC,EACT,EACF,cAAatD,EACbkB,SAAUA,EACV4B,cAAeA,GACfpB,aAAc,WACZA,IACAK,EAAiB,KACjB,EACFwB,eAAgB,CACdtC,MAAAA,EACAgC,MAAOb,EACPoB,cAAcjD,aAAa,EAAbA,EAAekD,UAAWC,GACtCR,EAACS,EAAI,CAAC,6BAAyB,EAACC,UAAWpB,EAAOnD,WAAY4B,MAAM,YAGxE4C,mBAAiB,EACjBZ,MAAO1C,EACPuD,QAASnB,GACToB,mBAnDiB,SAAwCC,EAAAC,GAAA,IAArCR,IAAAA,OAAQS,IAAAA,KAAMC,IAAAA,GAAQb,IAAAA,SAC5C,OACEJ,EAACkB,EAAU,CACTR,UAAWpB,EAAOvD,OAClBoF,UAAWH,EAEXhD,SAAUA,EACVoC,SAAUA,EACVL,MAAOkB,EACPV,OAAQA,GAAUC,EAClB,cAAgB1D,GAAAA,OAAAA,qBAAoBkE,EAAI,aALnCC,IA+CPG,eAAgB,SAAArF,GAAM,OAAIA,EAAOiF,MAAQ,EAAG,EAC5CK,gBAAiBC,EACjB5D,OAAQA,EACR6D,WAAY,CACVC,eAAgBxB,EAACyB,EAAkB,MAI3C,EAEA9E,EAAmB+E,UAAY,CAC7BzE,YAAa0E,EAAUC,MACvB9D,wBAAyB6D,EAAUE,KACnC,cAAeF,EAAUG,OACzBtD,aAAcmD,EAAUI,KACxB7D,sBAAuByD,EAAUI,KACjCpD,YAAagD,EAAUG,QAGzB,IAAM5E,EAA4C,GAC5CuB,EAA8C,aAC9CN,EAAyD,WAAQ"}
|
|
1
|
+
{"version":3,"file":"PrimaryAssetSelect.js","sources":["../../../../src/components/AssetEditorV2/components/PrimaryAssetSelect.tsx"],"sourcesContent":["import { FC, useState } from 'react';\nimport { debounce, noop } from 'lodash';\nimport { Chip, makeStyles } from '@material-ui/core';\n\nimport Search from '../../Search/Search';\nimport { Groups, InputAdornmentLeft } from '../../Search/components';\nimport { usePrimaryAssetSelectData } from '../effects';\nimport { ACTIVE_STATUS, DEFAULT_ASSET_TYPE } from '../constants';\nimport { AssetGroup, AssetId, AssetOption, AssetSelection, PrimaryAssetChange } from '../types';\nimport { getSearchPlaceholder } from '../utils';\n\nimport SelectItem from './SelectItem';\n\nexport type PrimaryAssetSelectProps = {\n 'data-testid'?: string;\n appKey?: string | null;\n assetFields?: string[];\n assetType?: string | null;\n company?: AssetId | null;\n currentOption?: AssetSelection;\n currentValue?: AssetId | null;\n defaultValue?: AssetId | null;\n disableClearable?: boolean;\n disabled?: boolean;\n groups?: AssetGroup[];\n isDrillingPlatformApp?: boolean;\n isNullable?: boolean;\n isRequiredAssetId?: boolean;\n isSecondaryAssetPresent?: boolean;\n label?: string;\n multiple?: boolean;\n onActiveAssetIdChange?: (id: number | null) => void;\n onChange: (selected: PrimaryAssetChange) => void;\n onGroupChange?: (group: AssetGroup | null) => void;\n onGroupReset?: () => void;\n onInputReset?: () => void;\n placeholder?: string | null;\n selectedGroup?: AssetGroup | null;\n setCurrentOption: (selection: AssetSelection) => void;\n};\n\nconst useStyles = makeStyles({\n paper: {\n boxShadow: '0px 3px 10px 0px #00000066',\n },\n listbox: {\n maxHeight: 210,\n '& .MuiAutocomplete-option': {\n padding: '0px 0px 0px 16px',\n },\n },\n option: {\n padding: '6px 0',\n '&:hover': {\n backgroundColor: 'initial',\n },\n },\n groupChip: {\n height: 32,\n padding: 0,\n },\n activeChip: {\n fontWeight: 500,\n backgroundColor: '#75DB29',\n color: '#212121',\n fontSize: 10,\n cursor: 'pointer',\n height: 12,\n textTransform: 'uppercase',\n marginRight: 12,\n letterSpacing: 1,\n },\n});\n\nconst DEFAULT_ASSET_FIELDS: string[] = [];\nconst DEFAULT_ON_INPUT_RESET = noop;\nconst DEFAULT_ON_ACTIVE_ASSET_ID_CHANGE = noop;\n\nconst isAssetOption = (option: unknown): option is AssetOption => {\n return !!option && typeof option === 'object' && 'id' in option && typeof option.id === 'number';\n};\n\nconst getSelectedAssets = (selected: unknown): PrimaryAssetChange => {\n if (!selected) return null;\n\n if (Array.isArray(selected)) return selected.filter(isAssetOption);\n\n return isAssetOption(selected) ? selected : null;\n};\n\nconst PrimaryAssetSelect: FC<PrimaryAssetSelectProps> = ({\n 'data-testid': pageName = 'PrimaryAssetEditorAutocomplete',\n appKey,\n assetFields = DEFAULT_ASSET_FIELDS,\n assetType,\n company,\n currentOption,\n currentValue,\n defaultValue,\n disableClearable,\n disabled,\n groups,\n isNullable,\n isRequiredAssetId,\n isSecondaryAssetPresent = true,\n label,\n multiple,\n onActiveAssetIdChange = DEFAULT_ON_ACTIVE_ASSET_ID_CHANGE,\n onChange,\n onGroupChange,\n onGroupReset,\n onInputReset = DEFAULT_ON_INPUT_RESET,\n placeholder = null,\n selectedGroup,\n setCurrentOption,\n}) => {\n const [searchValue, setSearchValue] = useState('');\n\n const searchPlaceholder = getSearchPlaceholder(assetType, isSecondaryAssetPresent);\n const resolvedAssetType = assetType || DEFAULT_ASSET_TYPE;\n const styles = useStyles();\n\n const { assets, loading: isLoading } = usePrimaryAssetSelectData({\n appKey,\n assetType: resolvedAssetType,\n company,\n groups,\n isRequiredAssetId,\n assetFields,\n selectedGroup,\n currentValue,\n setCurrentOption,\n onActiveAssetIdChange,\n });\n\n const [handleInputChange] = useState(() =>\n debounce((value: string) => {\n setSearchValue(value);\n }, 200)\n );\n\n const handleGroupChange = (group?: { id?: string }): void => {\n const nextGroup: AssetGroup | null = groups?.find(({ id }) => id === group?.id) ?? null;\n onGroupChange?.(nextGroup);\n };\n\n const renderOption = (option: unknown, state: { selected: boolean }) => {\n if (!isAssetOption(option)) return null;\n\n const { status, name = '', id } = option;\n\n return (\n <SelectItem\n className={styles.option}\n assetName={name}\n key={id}\n multiple={multiple}\n selected={state.selected}\n value={id}\n status={status === ACTIVE_STATUS ? ACTIVE_STATUS : null}\n data-testid={`${pageName}_option_${name}MenuItem`}\n />\n );\n };\n\n const getOptionLabel = (option: unknown): string => {\n return isAssetOption(option) ? option.name || '' : '';\n };\n\n const isCurrentOptionActive =\n !Array.isArray(currentOption) && currentOption?.status === ACTIVE_STATUS;\n\n return (\n <Search\n classes={{\n paper: styles.paper,\n listbox: styles.listbox,\n groupChip: styles.groupChip,\n }}\n defaultValue={defaultValue}\n disableClearable={disableClearable}\n disabled={disabled}\n isNullable={isNullable}\n loading={isLoading}\n onGroupChange={handleGroupChange}\n onGroupReset={onGroupReset}\n placeholder={placeholder || searchPlaceholder}\n selectedGroup={selectedGroup}\n onChange={(_event, selected: unknown) => {\n onChange(getSelectedAssets(selected));\n }}\n data-testid={pageName}\n multiple={multiple}\n onInputChange={handleInputChange}\n onInputReset={() => {\n onInputReset();\n setCurrentOption(null);\n }}\n TextFieldProps={{\n label,\n value: searchValue,\n endAdornment: isCurrentOptionActive && (\n <Chip data-not-migrated-muichip className={styles.activeChip} label=\"Active\" />\n ),\n }}\n isHiddenAllOption\n value={currentOption}\n options={assets}\n renderCustomOption={renderOption}\n getOptionLabel={getOptionLabel}\n GroupsComponent={Groups}\n groups={groups}\n InputProps={{\n startAdornment: <InputAdornmentLeft className=\"\">{null}</InputAdornmentLeft>,\n }}\n />\n );\n};\n\nexport default PrimaryAssetSelect;\n"],"names":["useStyles","makeStyles","paper","boxShadow","listbox","maxHeight","padding","option","backgroundColor","groupChip","height","activeChip","fontWeight","color","fontSize","cursor","textTransform","marginRight","letterSpacing","DEFAULT_ASSET_FIELDS","DEFAULT_ON_INPUT_RESET","noop","DEFAULT_ON_ACTIVE_ASSET_ID_CHANGE","isAssetOption","_typeof","id","PrimaryAssetSelect","_ref","_ref$dataTestid","pageName","appKey","_ref$assetFields","assetFields","assetType","company","currentOption","currentValue","defaultValue","disableClearable","disabled","groups","isNullable","isRequiredAssetId","_ref$isSecondaryAsset","isSecondaryAssetPresent","label","multiple","_ref$onActiveAssetIdC","onActiveAssetIdChange","onChange","onGroupChange","onGroupReset","_ref$onInputReset","onInputReset","_ref$placeholder","placeholder","selectedGroup","setCurrentOption","useState","_useState2","_slicedToArray","_useState","searchValue","setSearchValue","searchPlaceholder","getSearchPlaceholder","resolvedAssetType","DEFAULT_ASSET_TYPE","styles","_usePrimaryAssetSelec","usePrimaryAssetSelectData","assets","isLoading","loading","_useState3","debounce","value","handleInputChange","isCurrentOptionActive","Array","isArray","status","ACTIVE_STATUS","_jsx","Search","classes","group","_groups$find","nextGroup","find","_ref2","_event","selected","filter","getSelectedAssets","onInputChange","TextFieldProps","endAdornment","Chip","className","isHiddenAllOption","options","renderCustomOption","state","_option$name","name","SelectItem","assetName","getOptionLabel","GroupsComponent","Groups","InputProps","startAdornment","InputAdornmentLeft","children"],"mappings":"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"}
|
|
@@ -1,42 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
assetType: any;
|
|
6
|
-
company: any;
|
|
7
|
-
currentOption: any;
|
|
8
|
-
currentValue: any;
|
|
9
|
-
"data-testid"?: string | undefined;
|
|
10
|
-
defaultValue: any;
|
|
11
|
-
disableClearable: any;
|
|
12
|
-
disabled: any;
|
|
13
|
-
groups: any;
|
|
14
|
-
isDrillingPlatformApp: any;
|
|
15
|
-
isNullable: any;
|
|
16
|
-
isRequiredAssetId: any;
|
|
17
|
-
isSecondaryAssetPresent?: boolean | undefined;
|
|
18
|
-
label: any;
|
|
19
|
-
multiple: any;
|
|
20
|
-
onActiveAssetIdChange?: typeof DEFAULT_PRIMARY_ASSET_SELECT_ON_ACTIVE_ASSET_ID_CHANGE | undefined;
|
|
21
|
-
onChange: any;
|
|
22
|
-
onGroupChange: any;
|
|
23
|
-
onGroupReset: any;
|
|
24
|
-
onInputReset?: typeof DEFAULT_PRIMARY_ASSET_SELECT_ON_INPUT_RESET | undefined;
|
|
25
|
-
placeholder?: null | undefined;
|
|
26
|
-
selectedGroup: any;
|
|
27
|
-
setCurrentOption: any;
|
|
28
|
-
}): import("react").JSX.Element;
|
|
29
|
-
declare namespace PrimaryAssetSelect {
|
|
30
|
-
var propTypes: {
|
|
31
|
-
isSecondaryAssetPresent: PropTypes.Requireable<boolean>;
|
|
32
|
-
assetFields: PropTypes.Requireable<any[]>;
|
|
33
|
-
'data-testid': PropTypes.Requireable<string>;
|
|
34
|
-
onInputReset: PropTypes.Requireable<(...args: any[]) => any>;
|
|
35
|
-
onActiveAssetIdChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
36
|
-
placeholder: PropTypes.Requireable<string>;
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
declare const DEFAULT_PRIMARY_ASSET_SELECT_ON_INPUT_RESET: () => void;
|
|
40
|
-
declare const DEFAULT_PRIMARY_ASSET_SELECT_ON_ACTIVE_ASSET_ID_CHANGE: () => void;
|
|
41
|
-
export default PrimaryAssetSelect;
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import type { PrimaryAssetSelectProps } from './PrimaryAssetSelect';
|
|
3
|
+
declare const PrimaryAssetSelectV2: FC<PrimaryAssetSelectProps>;
|
|
4
|
+
export default PrimaryAssetSelectV2;
|
|
42
5
|
//# sourceMappingURL=PrimaryAssetSelectV2.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrimaryAssetSelectV2.d.ts","sourceRoot":"","sources":["../../../../src/components/AssetEditorV2/components/PrimaryAssetSelectV2.
|
|
1
|
+
{"version":3,"file":"PrimaryAssetSelectV2.d.ts","sourceRoot":"","sources":["../../../../src/components/AssetEditorV2/components/PrimaryAssetSelectV2.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAyC,MAAM,OAAO,CAAC;AAYlE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAqDpE,QAAA,MAAM,oBAAoB,EAAE,EAAE,CAAC,uBAAuB,CA+KrD,CAAC;eAEa,oBAAoB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"@babel/runtime/helpers/slicedToArray";import t from"
|
|
1
|
+
import e from"@babel/runtime/helpers/slicedToArray";import t from"@babel/runtime/helpers/typeof";import{useState as o,useEffect as r,useMemo as n}from"react";import{debounce as i,noop as a}from"lodash";import{makeStyles as s,Chip as l}from"@material-ui/core";import{Search as p}from"../../Search/Search.js";import"../../Search/components/Listbox.js";import"../../Search/components/Paper.js";import"../../Search/components/RecentSearches.js";import u from"../../Search/components/InputAdornmentLeft.js";import c from"../../Search/components/Groups.js";import"../../Search/components/SelectAllListItem.js";import{usePrimaryAssetSelectData as d}from"../effects/usePrimaryAssetSelectData.js";import{ACTIVE_STATUS as m,DEFAULT_ASSET_TYPE as f}from"../constants.js";import{getSearchPlaceholder as h}from"../utils/index.js";import g from"./SelectItem.js";import{PER_PAGE as b}from"../../AssetEditor/constants.js";import{jsx as v}from"react/jsx-runtime";var A=s({paper:{boxShadow:"0px 3px 10px 0px #00000066"},listbox:{maxHeight:210,"& .MuiAutocomplete-option":{padding:"0px 0px 0px 16px"}},option:{padding:"6px 0","&:hover":{backgroundColor:"initial"}},groupChip:{height:32,padding:0},activeChip:{fontWeight:500,backgroundColor:"#75DB29",color:"#212121",fontSize:10,cursor:"pointer",height:12,textTransform:"uppercase",marginRight:12,letterSpacing:1}}),C=[],x=a,S=a,y=function(e){return!!e&&"object"===t(e)&&"id"in e&&"number"==typeof e.id},j=function(t){var a=t.placeholder,s=void 0===a?null:a,j=t.label,I=t["data-testid"],P=void 0===I?"PrimaryAssetEditorAutocomplete":I,G=t.appKey,R=t.assetFields,O=void 0===R?C:R,T=t.assetType,N=t.company,L=t.currentOption,V=t.currentValue,D=t.defaultValue,H=t.disableClearable,k=t.disabled,F=t.groups,q=t.isDrillingPlatformApp,E=t.isNullable,K=t.isRequiredAssetId,M=t.isSecondaryAssetPresent,_=void 0===M||M,w=t.multiple,z=t.onActiveAssetIdChange,B=void 0===z?S:z,W=t.onChange,J=t.onGroupChange,Q=t.onGroupReset,U=t.onInputReset,X=void 0===U?x:U,Y=t.selectedGroup,Z=t.setCurrentOption,$=o(""),ee=e($,2),te=ee[0],oe=ee[1],re=o(1),ne=e(re,2),ie=ne[0],ae=ne[1],se=o(!0),le=e(se,2),pe=le[0],ue=le[1],ce=o(!1),de=e(ce,2),me=de[0],fe=de[1],he=h(T,_),ge=T||f,be=A(),ve=d({isDrillingPlatformApp:q,searchValue:me&&te?te:"",scrollPage:ie,appKey:G,assetType:ge,company:N,groups:F,isRequiredAssetId:K,assetFields:O,selectedGroup:Y,currentValue:V,setCurrentOption:Z,onActiveAssetIdChange:B}),Ae=ve.assets,Ce=ve.loading;r((function(){var e=Ae.length>=b*ie;ue(e)}),[Ae,ie]);var xe=n((function(){return i((function(e,t){"input"===t?(ae(1),oe(e),fe(!0)):"reset"!==t&&"clear"!==t||(fe(!1),oe(""))}),200)}),[]),Se=n((function(){return i((function(){return ae((function(e){return e+1}))}),250)}),[]),ye=!Array.isArray(L)&&(null==L?void 0:L.status)===m;return v(p,{classes:{paper:be.paper,listbox:be.listbox,groupChip:be.groupChip},defaultValue:D,disableClearable:H||k,disabled:k,isNullable:E,loading:Ce,onGroupChange:function(e){var t,o=null!==(t=null==F?void 0:F.find((function(t){return t.id===(null==e?void 0:e.id)})))&&void 0!==t?t:null;null==J||J(o)},placeholder:s||he,selectedGroup:Y,onGroupReset:Q,onChange:function(e,t){W(function(e){return e?Array.isArray(e)?e.filter(y):y(e)?e:null:null}(t)),fe(!1),oe("")},onClose:function(){fe(!1),oe("")},onOpen:function(){te||fe(!1)},"data-testid":P,multiple:w,onInputChangeCallback:xe,onInputReset:function(){X(),Z(null),fe(!1),oe("")},TextFieldProps:{label:j,value:te,endAdornment:ye&&v(l,{"data-not-migrated-muichip":!0,className:be.activeChip,label:"Active"})},ListboxProps:{onScroll:function(e){if(pe&&!Ce){var t=e.currentTarget;t.scrollTop+t.clientHeight>t.scrollHeight-800&&Se()}}},isHiddenAllOption:!0,value:L,options:Ae,renderCustomOption:function(e,t){if(!y(e))return null;var o=e.status,r=e.name,n=void 0===r?"":r,i=e.id;return v(g,{className:be.option,assetName:n,multiple:w,selected:t.selected,value:i,status:o===m?m:null,"data-testid":"".concat(P,"_option_").concat(n,"MenuItem")},i)},getOptionLabel:function(e){return y(e)&&e.name||""},GroupsComponent:c,groups:F,InputProps:{startAdornment:v(u,{className:"",children:null})}})};export{j as default};
|
|
2
2
|
//# sourceMappingURL=PrimaryAssetSelectV2.js.map
|