@corva/ui 3.78.0-9 → 3.78.0-rc.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 +11 -3
- package/cjs-bundle/components/AssetsMultipleSelector/AssetsMultipleSelector.js.map +1 -1
- package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js +1 -1
- package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js.map +1 -1
- package/cjs-bundle/componentsV2/Autocomplete/Autocomplete.js +1 -1
- package/cjs-bundle/componentsV2/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs-bundle/componentsV2/Autocomplete/AutocompleteInput/AutocompleteInput.js +1 -1
- package/cjs-bundle/componentsV2/Autocomplete/AutocompleteInput/AutocompleteInput.js.map +1 -1
- package/cjs-bundle/componentsV2/ColorPicker/ColorPicker.js +1 -1
- package/cjs-bundle/componentsV2/ColorPicker/ColorPicker.js.map +1 -1
- package/cjs-bundle/componentsV2/DatePicker/Input/Input.js +1 -1
- package/cjs-bundle/componentsV2/DatePicker/Input/Input.js.map +1 -1
- package/cjs-bundle/componentsV2/DatePicker/TimePicker/TimePicker.js +1 -1
- package/cjs-bundle/componentsV2/DatePicker/TimePicker/TimePicker.js.map +1 -1
- package/cjs-bundle/componentsV2/DatePicker/TimePicker/TimePicker.scss.js +1 -1
- package/cjs-bundle/componentsV2/DatePicker/utils.js +1 -1
- package/cjs-bundle/componentsV2/DatePicker/utils.js.map +1 -1
- package/cjs-bundle/componentsV2/Hotkey/Hotkey.js +1 -1
- package/cjs-bundle/componentsV2/Hotkey/Hotkey.js.map +1 -1
- package/cjs-bundle/componentsV2/Hotkey/icons/CapsLock.js +2 -0
- package/cjs-bundle/componentsV2/Hotkey/icons/CapsLock.js.map +1 -0
- package/cjs-bundle/componentsV2/Hotkey/icons/Command.js +1 -1
- package/cjs-bundle/componentsV2/Hotkey/icons/Command.js.map +1 -1
- package/cjs-bundle/componentsV2/Hotkey/icons/LMB.js +2 -0
- package/cjs-bundle/componentsV2/Hotkey/icons/LMB.js.map +1 -0
- package/cjs-bundle/componentsV2/Hotkey/icons/MacControl.js +2 -0
- package/cjs-bundle/componentsV2/Hotkey/icons/MacControl.js.map +1 -0
- package/cjs-bundle/componentsV2/Hotkey/icons/Option.js +1 -1
- package/cjs-bundle/componentsV2/Hotkey/icons/Option.js.map +1 -1
- package/cjs-bundle/componentsV2/Hotkey/icons/RMB.js +2 -0
- package/cjs-bundle/componentsV2/Hotkey/icons/RMB.js.map +1 -0
- package/cjs-bundle/componentsV2/Hotkey/icons/Shift.js +1 -1
- package/cjs-bundle/componentsV2/Hotkey/icons/Shift.js.map +1 -1
- package/cjs-bundle/componentsV2/RadioAndCheckboxIcons/CheckboxIcon.scss.js +1 -1
- package/cjs-bundle/componentsV2/RadioAndCheckboxIcons/RadioIcon.scss.js +1 -1
- package/cjs-bundle/componentsV2/RadioAndCheckboxLabel/RadioAndCheckboxLabel.scss.js +1 -1
- package/cjs-bundle/icons/customIcons/icons/Search.js.map +1 -1
- package/components/AssetsMultipleSelector/AssetsMultipleSelector.d.ts.map +1 -1
- package/components/AssetsMultipleSelector/AssetsMultipleSelector.js.map +1 -1
- package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.d.ts.map +1 -1
- package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js +1 -1
- package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js.map +1 -1
- package/componentsV2/Autocomplete/Autocomplete.d.ts.map +1 -1
- package/componentsV2/Autocomplete/Autocomplete.js +1 -1
- package/componentsV2/Autocomplete/Autocomplete.js.map +1 -1
- package/componentsV2/Autocomplete/AutocompleteInput/AutocompleteInput.d.ts.map +1 -1
- package/componentsV2/Autocomplete/AutocompleteInput/AutocompleteInput.js +1 -1
- package/componentsV2/Autocomplete/AutocompleteInput/AutocompleteInput.js.map +1 -1
- package/componentsV2/ColorPicker/ColorPicker.d.ts +3 -0
- package/componentsV2/ColorPicker/ColorPicker.d.ts.map +1 -1
- package/componentsV2/ColorPicker/ColorPicker.js +1 -1
- package/componentsV2/ColorPicker/ColorPicker.js.map +1 -1
- package/componentsV2/DatePicker/DatePickerNext.stories.d.ts.map +1 -1
- package/componentsV2/DatePicker/Input/Input.js +1 -1
- package/componentsV2/DatePicker/Input/Input.js.map +1 -1
- package/componentsV2/DatePicker/TimePicker/TimePicker.d.ts.map +1 -1
- package/componentsV2/DatePicker/TimePicker/TimePicker.js +1 -1
- package/componentsV2/DatePicker/TimePicker/TimePicker.js.map +1 -1
- package/componentsV2/DatePicker/TimePicker/TimePicker.scss.js +1 -1
- package/componentsV2/DatePicker/utils.js +1 -1
- package/componentsV2/DatePicker/utils.js.map +1 -1
- package/componentsV2/Hotkey/Hotkey.d.ts +4 -0
- package/componentsV2/Hotkey/Hotkey.d.ts.map +1 -1
- package/componentsV2/Hotkey/Hotkey.js +1 -1
- package/componentsV2/Hotkey/Hotkey.js.map +1 -1
- package/componentsV2/Hotkey/Hotkey.stories.d.ts +1 -0
- package/componentsV2/Hotkey/Hotkey.stories.d.ts.map +1 -1
- package/componentsV2/Hotkey/icons/CapsLock.d.ts +2 -0
- package/componentsV2/Hotkey/icons/CapsLock.d.ts.map +1 -0
- package/componentsV2/Hotkey/icons/CapsLock.js +2 -0
- package/componentsV2/Hotkey/icons/CapsLock.js.map +1 -0
- package/componentsV2/Hotkey/icons/Command.d.ts +1 -1
- package/componentsV2/Hotkey/icons/Command.d.ts.map +1 -1
- package/componentsV2/Hotkey/icons/Command.js +1 -1
- package/componentsV2/Hotkey/icons/Command.js.map +1 -1
- package/componentsV2/Hotkey/icons/LMB.d.ts +2 -0
- package/componentsV2/Hotkey/icons/LMB.d.ts.map +1 -0
- package/componentsV2/Hotkey/icons/LMB.js +2 -0
- package/componentsV2/Hotkey/icons/LMB.js.map +1 -0
- package/componentsV2/Hotkey/icons/MacControl.d.ts +2 -0
- package/componentsV2/Hotkey/icons/MacControl.d.ts.map +1 -0
- package/componentsV2/Hotkey/icons/MacControl.js +2 -0
- package/componentsV2/Hotkey/icons/MacControl.js.map +1 -0
- package/componentsV2/Hotkey/icons/Option.d.ts +1 -1
- package/componentsV2/Hotkey/icons/Option.d.ts.map +1 -1
- package/componentsV2/Hotkey/icons/Option.js +1 -1
- package/componentsV2/Hotkey/icons/Option.js.map +1 -1
- package/componentsV2/Hotkey/icons/RMB.d.ts +2 -0
- package/componentsV2/Hotkey/icons/RMB.d.ts.map +1 -0
- package/componentsV2/Hotkey/icons/RMB.js +2 -0
- package/componentsV2/Hotkey/icons/RMB.js.map +1 -0
- package/componentsV2/Hotkey/icons/Shift.d.ts +1 -1
- package/componentsV2/Hotkey/icons/Shift.d.ts.map +1 -1
- package/componentsV2/Hotkey/icons/Shift.js +1 -1
- package/componentsV2/Hotkey/icons/Shift.js.map +1 -1
- package/componentsV2/Hotkey/icons/index.d.ts +4 -0
- package/componentsV2/Hotkey/icons/index.d.ts.map +1 -1
- package/componentsV2/Hotkey/index.d.ts +1 -1
- package/componentsV2/Hotkey/index.d.ts.map +1 -1
- package/componentsV2/RadioAndCheckboxIcons/CheckboxIcon.scss.js +1 -1
- package/componentsV2/RadioAndCheckboxIcons/RadioIcon.scss.js +1 -1
- package/componentsV2/RadioAndCheckboxLabel/RadioAndCheckboxLabel.scss.js +1 -1
- package/icons/customIcons/icons/Search.d.ts +1 -1
- package/icons/customIcons/icons/Search.js.map +1 -1
- package/mcp-server/server.mjs +887 -11002
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
package/MCP_README.md
CHANGED
|
@@ -711,9 +711,17 @@ To check whether telemetry is currently active for your install, run `/mcp__corv
|
|
|
711
711
|
|
|
712
712
|
To opt out entirely, set `CORVA_UI_MCP_TELEMETRY_DISABLED=1` in the server's environment (e.g. in the `env` block of
|
|
713
713
|
your MCP config file) — any non-empty value other than `0` or `false` works. The switch is honored at runtime before
|
|
714
|
-
any telemetry configuration is read.
|
|
715
|
-
|
|
716
|
-
|
|
714
|
+
any telemetry configuration is read.
|
|
715
|
+
|
|
716
|
+
Feedback travels over the same channel, so `submit_feedback` reports one of 2 delivery states:
|
|
717
|
+
|
|
718
|
+
- **queued** — telemetry is enabled and the message was handed to it for export. Delivery is not confirmed. Feedback is
|
|
719
|
+
exempt from the sampling rate, so it is never sampled out.
|
|
720
|
+
- **not sent** — nothing reaches the maintainers, and the response names the cause: the opt-out is set
|
|
721
|
+
(`CORVA_UI_MCP_TELEMETRY_DISABLED`, or `"enabled": false` in the local config), or telemetry has no valid
|
|
722
|
+
configuration in this session (or failed to start).
|
|
723
|
+
|
|
724
|
+
The `feedback` prompt relays that state to you, and `get_diagnostics` shows it as the feedback channel.
|
|
717
725
|
|
|
718
726
|
## FAQ
|
|
719
727
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetsMultipleSelector.js","sources":["../../../../src/components/AssetsMultipleSelector/AssetsMultipleSelector.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo, useState } from 'react';\nimport classnames from 'classnames';\nimport { makeStyles } from '@material-ui/core';\nimport { sortBy } from 'lodash';\n\nimport { Search } from '../Search';\n\nimport { mapAssetGetRequest } from '~/clients/jsonApi';\nimport { jsonaDataFormatter } from '~/utils';\nimport useLoadedData from '~/effects/useLoadedData';\n\nconst useStyles = makeStyles(theme => ({\n listbox: {\n maxHeight: 360,\n },\n paper: {\n width: 364,\n },\n footer: {\n fontSize: 12,\n color: theme.palette.primary.text6,\n lineHeight: '16.872px',\n padding: '8px 16px',\n },\n}));\n\nconst getDataFromResponseFn = (response: {\n data: unknown;\n headers?: { get(name: string): string | null };\n}) => {\n return {\n data: jsonaDataFormatter.deserialize(response.data as string) as Asset[],\n total: Number(response.headers?.get('total')) || 0,\n };\n};\nconst initialSelectedAssets: Asset[] = [];\nconst defaultQueryParams = {};\nconst DEFAULT_ASSETS_PER_PAGE = 50;\nconst initialData: { data: Asset[]; total: number } = { data: [], total: 0 };\n\ntype Asset = { id: string; name: string } & Record<string, unknown>;\nexport type AssetsMultipleSelectorProps = {\n /**\n array of asset objects with required id and name fields.\n */\n selectedAssets: [] | Asset[];\n /**\n callback fires on asset selection with array of all selected assets.\n */\n onChange: (assets: Asset[] | []) => void;\n /**\n label for autocomplete input.\n */\n label: string;\n /**\n type of asset.\n */\n type: 'program' | 'rig' | 'well' | 'frac_fleet' | 'drillout_unit' | 'pad' | 'assets';\n /**\n css for root component.\n */\n className?: string;\n /**\n custom query params for assets request like fields, per_page.\n */\n customRequestQueryParams?: Record<string, unknown> & {\n fields?: string[];\n per_page?: number | string;\n };\n /**\n material ui autocomplete classes.\n */\n classes?: any;\n};\n\nconst AssetsMultipleSelector = memo(\n ({\n selectedAssets = initialSelectedAssets,\n onChange,\n label,\n className,\n type,\n customRequestQueryParams,\n classes = {},\n }: AssetsMultipleSelectorProps) => {\n const styles = useStyles();\n\n const { isLoading, setIsLoading, data, loadData } = useLoadedData({\n loadFn: mapAssetGetRequest(type, true),\n initialData: initialData as any,\n getDataFromResponseFn,\n isCacheEnabled: true,\n });\n const { data: assetsData, total } = data ?? initialData;\n const [searchValue, setSearchValue] = useState('');\n\n useEffect(() => {\n loadAssets('', customRequestQueryParams);\n }, []);\n\n const selectedOptions: AssetsMultipleSelectorProps['selectedAssets'] & {} = useMemo(\n () =>\n selectedAssets.map(asset => ({\n ...asset,\n id: asset.id,\n label: asset.name,\n })),\n [selectedAssets]\n );\n\n const options: (Asset & { label: string })[] = useMemo(() => {\n const optionsMap: Record<string, Asset & { label: string }> = {};\n const allOptions = selectedOptions.length ? assetsData.concat(selectedOptions) : assetsData;\n allOptions.forEach((asset: Asset) => {\n optionsMap[asset.id] = {\n ...asset,\n id: asset.id,\n label: asset.name,\n };\n });\n\n return Object.values(sortBy(optionsMap, 'label'));\n }, [assetsData, selectedAssets, searchValue]);\n\n const loadAssets = useCallback(\n (\n search: string,\n customRequestQueryParams: AssetsMultipleSelectorProps['customRequestQueryParams'] = {}\n ) => {\n const params = {\n ...defaultQueryParams,\n per_page: DEFAULT_ASSETS_PER_PAGE,\n ...customRequestQueryParams,\n fields: [`${type}.name`].concat(customRequestQueryParams?.fields || []),\n };\n\n loadData({\n search,\n ...params,\n });\n },\n []\n );\n\n const handleChange = (_event: unknown, visibleSelectedOptions: Asset[], reason?: string) => {\n if (reason === 'reset') return;\n\n const newAssets = visibleSelectedOptions.map(option => {\n return {\n ...option,\n name: option.label as string,\n };\n });\n\n onChange(newAssets);\n };\n\n const onInputReset = () => {\n setSearchValue('');\n loadAssets('', customRequestQueryParams);\n };\n\n const handleInputChange = (value: string, reason: string) => {\n if (reason === 'reset' || value === '') {\n onInputReset();\n return;\n }\n\n if (value.trimStart() !== searchValue) {\n setSearchValue(value.trimStart());\n setIsLoading(true);\n loadAssets(value.trimStart(), customRequestQueryParams);\n }\n };\n\n const countNotShowedAssets = () => {\n const optionsCount = total - assetsData?.length;\n if (optionsCount === 0) return null;\n\n return optionsCount;\n };\n\n const paperFooter = useMemo(() => {\n const notShowedAssetsQuantity = countNotShowedAssets();\n return notShowedAssetsQuantity && !isLoading && searchValue ? (\n <div className={styles.footer}>\n {notShowedAssetsQuantity} additional items not displayed. Continue typing for more refined\n results.\n </div>\n ) : null;\n }, [assetsData, isLoading, !!searchValue, total]);\n\n const { listbox, paper, ...restClasses } = classes;\n\n return (\n <Search\n data-testid=\"offsetPadDropdown\"\n value={selectedOptions}\n onChange={handleChange}\n TextFieldProps={{ label }}\n // @ts-ignore\n className={className}\n classes={{\n listbox: classnames(styles.listbox, listbox),\n paper: classnames(styles.paper, paper),\n ...restClasses,\n }}\n loading={isLoading}\n options={options}\n placeholder=\"\"\n multiple\n filterSelectedOptions={false}\n AutocompleteProps={{ forcePopupIcon: true }}\n isHiddenAllOption\n onInputChangeCallback={handleInputChange}\n onInputReset={onInputReset}\n paperFooter={paperFooter}\n getOptionSelected={(option, value) => +option.id === +value.id}\n isPrioritizedSelectedOptions\n />\n );\n }\n);\n\nexport default AssetsMultipleSelector;\n"],"names":["useStyles","makeStyles","theme","listbox","maxHeight","paper","width","footer","fontSize","color","palette","primary","text6","lineHeight","padding","getDataFromResponseFn","response","_response$headers","data","jsonaDataFormatter","deserialize","total","Number","headers","get","initialSelectedAssets","defaultQueryParams","initialData","AssetsMultipleSelector","memo","_ref","_ref$selectedAssets","selectedAssets","onChange","label","className","type","customRequestQueryParams","_ref$classes","classes","styles","_useLoadedData","useLoadedData","loadFn","mapAssetGetRequest","isCacheEnabled","isLoading","setIsLoading","loadData","_ref2","assetsData","useState","_useState2","_slicedToArray","_useState","searchValue","setSearchValue","useEffect","loadAssets","selectedOptions","useMemo","map","asset","_objectSpread","id","name","options","optionsMap","length","concat","forEach","Object","values","sortBy","useCallback","search","arguments","undefined","params","per_page","fields","onInputReset","paperFooter","optionsCount","notShowedAssetsQuantity","_jsxs","children","restClasses","_excluded","_jsx","Search","value","_event","visibleSelectedOptions","reason","newAssets","option","TextFieldProps","classnames","loading","placeholder","multiple","filterSelectedOptions","AutocompleteProps","forcePopupIcon","isHiddenAllOption","onInputChangeCallback","trimStart","getOptionSelected","isPrioritizedSelectedOptions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AssetsMultipleSelector.js","sources":["../../../../src/components/AssetsMultipleSelector/AssetsMultipleSelector.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo, useState } from 'react';\nimport classnames from 'classnames';\nimport { makeStyles } from '@material-ui/core';\nimport { sortBy } from 'lodash';\n\nimport { Search } from '../Search';\n\nimport { mapAssetGetRequest } from '~/clients/jsonApi';\nimport { jsonaDataFormatter } from '~/utils';\nimport useLoadedData from '~/effects/useLoadedData';\n\nconst useStyles = makeStyles(theme => ({\n listbox: {\n maxHeight: 360,\n },\n paper: {\n width: 364,\n },\n footer: {\n fontSize: 12,\n color: theme.palette.primary.text6,\n lineHeight: '16.872px',\n padding: '8px 16px',\n },\n}));\n\nconst getDataFromResponseFn = (response: {\n data: unknown;\n headers?: { get(name: string): string | null };\n}) => {\n return {\n data: jsonaDataFormatter.deserialize(response.data as string) as Asset[],\n total: Number(response.headers?.get('total')) || 0,\n };\n};\nconst initialSelectedAssets: Asset[] = [];\nconst defaultQueryParams = {};\nconst DEFAULT_ASSETS_PER_PAGE = 50;\nconst initialData: { data: Asset[]; total: number } = { data: [], total: 0 };\n\ntype Asset = { id: string; name: string } & Record<string, unknown>;\nexport type AssetsMultipleSelectorProps = {\n /**\n array of asset objects with required id and name fields.\n */\n selectedAssets: [] | Asset[];\n /**\n callback fires on asset selection with array of all selected assets.\n */\n onChange: (assets: Asset[] | []) => void;\n /**\n label for autocomplete input.\n */\n label: string;\n /**\n type of asset.\n */\n type: 'program' | 'rig' | 'well' | 'frac_fleet' | 'drillout_unit' | 'pad' | 'assets';\n /**\n css for root component.\n */\n className?: string;\n /**\n custom query params for assets request like fields, per_page.\n */\n customRequestQueryParams?: Record<string, unknown> & {\n fields?: string[];\n per_page?: number | string;\n };\n /**\n material ui autocomplete classes.\n */\n classes?: any;\n};\n\nconst AssetsMultipleSelector = memo(\n ({\n selectedAssets = initialSelectedAssets,\n onChange,\n label,\n className,\n type,\n customRequestQueryParams,\n classes = {},\n }: AssetsMultipleSelectorProps) => {\n const styles = useStyles();\n\n const { isLoading, setIsLoading, data, loadData } = useLoadedData({\n loadFn: mapAssetGetRequest(type, true),\n initialData: initialData as any,\n getDataFromResponseFn,\n isCacheEnabled: true,\n });\n const { data: assetsData, total } = data ?? initialData;\n const [searchValue, setSearchValue] = useState('');\n\n useEffect(() => {\n loadAssets('', customRequestQueryParams);\n }, []);\n\n const selectedOptions: AssetsMultipleSelectorProps['selectedAssets'] & {} = useMemo(\n () =>\n selectedAssets.map(asset => ({\n ...asset,\n id: asset.id,\n label: asset.name,\n })),\n [selectedAssets]\n );\n\n const options: (Asset & { label: string })[] = useMemo(() => {\n const optionsMap: Record<string, Asset & { label: string }> = {};\n const allOptions = selectedOptions.length ? assetsData.concat(selectedOptions) : assetsData;\n allOptions.forEach((asset: Asset) => {\n optionsMap[asset.id] = {\n ...asset,\n id: asset.id,\n label: asset.name,\n };\n });\n\n return Object.values(sortBy(optionsMap, 'label'));\n }, [assetsData, selectedAssets, searchValue]);\n\n const loadAssets = useCallback(\n (\n search: string,\n customRequestQueryParams: AssetsMultipleSelectorProps['customRequestQueryParams'] = {}\n ) => {\n const params = {\n ...defaultQueryParams,\n per_page: DEFAULT_ASSETS_PER_PAGE,\n ...customRequestQueryParams,\n fields: [`${type}.name`].concat(customRequestQueryParams?.fields || []),\n };\n\n loadData({\n search,\n ...params,\n });\n },\n []\n );\n\n const handleChange = (_event: unknown, visibleSelectedOptions: Asset[], reason?: string) => {\n if (reason === 'reset') return;\n\n const newAssets = visibleSelectedOptions.map(option => {\n return {\n ...option,\n name: option.label as string,\n };\n });\n\n onChange(newAssets);\n };\n\n const onInputReset = () => {\n setSearchValue('');\n loadAssets('', customRequestQueryParams);\n };\n\n const handleInputChange = (value: string, reason: string) => {\n if (reason === 'reset' || value === '') {\n onInputReset();\n return;\n }\n\n if (value.trimStart() !== searchValue) {\n setSearchValue(value.trimStart());\n setIsLoading(true);\n loadAssets(value.trimStart(), customRequestQueryParams);\n }\n };\n\n const countNotShowedAssets = () => {\n const optionsCount = total - assetsData?.length;\n if (optionsCount === 0) return null;\n\n return optionsCount;\n };\n\n const paperFooter = useMemo(() => {\n const notShowedAssetsQuantity = countNotShowedAssets();\n return notShowedAssetsQuantity && !isLoading && searchValue ? (\n <div className={styles.footer}>\n {notShowedAssetsQuantity} additional items not displayed. Continue typing for more refined\n results.\n </div>\n ) : null;\n }, [assetsData, isLoading, !!searchValue, total]);\n\n const { listbox, paper, ...restClasses } = classes;\n\n return (\n <Search\n data-testid=\"offsetPadDropdown\"\n value={selectedOptions}\n onChange={handleChange}\n TextFieldProps={{ label }}\n className={className}\n classes={{\n listbox: classnames(styles.listbox, listbox),\n paper: classnames(styles.paper, paper),\n ...restClasses,\n }}\n loading={isLoading}\n options={options}\n placeholder=\"\"\n multiple\n filterSelectedOptions={false}\n AutocompleteProps={{ forcePopupIcon: true }}\n isHiddenAllOption\n onInputChangeCallback={handleInputChange}\n onInputReset={onInputReset}\n paperFooter={paperFooter}\n getOptionSelected={(option, value) => +option.id === +value.id}\n isPrioritizedSelectedOptions\n />\n );\n }\n);\n\nexport default AssetsMultipleSelector;\n"],"names":["useStyles","makeStyles","theme","listbox","maxHeight","paper","width","footer","fontSize","color","palette","primary","text6","lineHeight","padding","getDataFromResponseFn","response","_response$headers","data","jsonaDataFormatter","deserialize","total","Number","headers","get","initialSelectedAssets","defaultQueryParams","initialData","AssetsMultipleSelector","memo","_ref","_ref$selectedAssets","selectedAssets","onChange","label","className","type","customRequestQueryParams","_ref$classes","classes","styles","_useLoadedData","useLoadedData","loadFn","mapAssetGetRequest","isCacheEnabled","isLoading","setIsLoading","loadData","_ref2","assetsData","useState","_useState2","_slicedToArray","_useState","searchValue","setSearchValue","useEffect","loadAssets","selectedOptions","useMemo","map","asset","_objectSpread","id","name","options","optionsMap","length","concat","forEach","Object","values","sortBy","useCallback","search","arguments","undefined","params","per_page","fields","onInputReset","paperFooter","optionsCount","notShowedAssetsQuantity","_jsxs","children","restClasses","_excluded","_jsx","Search","value","_event","visibleSelectedOptions","reason","newAssets","option","TextFieldProps","classnames","loading","placeholder","multiple","filterSelectedOptions","AutocompleteProps","forcePopupIcon","isHiddenAllOption","onInputChangeCallback","trimStart","getOptionSelected","isPrioritizedSelectedOptions"],"mappings":"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"}
|
package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),s=require("@babel/runtime/helpers/objectWithoutProperties"),o=require("@material-ui/core"),i=require("classnames"),n=require("moment-timezone"),r=require("prop-types"),c=require("react"),t=require("react-router-dom"),u=require("./constants.js"),a=require("./effects/useXProps.js"),l=require("./utils/dashboardCapturing.js"),m=require("./utils/replaceUndefinedValuesWithNull.js"),p=require("../../../CLI/hocs/constants.js"),j=require("../../../CLI/hocs/utils.js");require("@babel/runtime/helpers/toConsumableArray"),require("lodash/set"),require("lodash/get"),require("lodash/unset"),require("moment"),require("../../../clients/jsonApi/index.js"),require("../../../clients/subscriptions/subscriptions-client.factory.js"),require("../../../clients/api/apiCore.js"),require("../../../clients/constants.js"),require("../../../clients/sso/auth0.js"),require("../../../clients/sso/oauth2.js");var q=require("../../../clients/api/rateLimiter.js"),d=require("../AppContext.js"),I=require("../DevCenterAppContainer/DevCenterAppContainer.js"),f=require("../DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider.js"),C=require("../../../constants/theme.js"),h=require("../../../hocs/withMUIProvidersHOC.js");require("../../../hocs/withAssetEditorLockHOC.js"),require("@icon-park/react/es/all");var b=require("react/jsx-runtime"),g=require("../../../icons/IconParkProvider.js");require("../../../icons/customIcons/icons/AddMessage.js"),require("../../../icons/customIcons/icons/DragOne.js"),require("../../../icons/customIcons/icons/Attention.js"),require("../../../icons/customIcons/icons/Collapse.js"),require("../../../icons/customIcons/icons/Dashboard.js"),require("../../../icons/customIcons/icons/Expand.js"),require("../../../icons/customIcons/icons/FolderClosed.js"),require("../../../icons/customIcons/icons/FolderClosedFilled.js"),require("../../../icons/customIcons/icons/FolderOpened.js"),require("../../../icons/customIcons/icons/GreaterOrEqual.js"),require("../../../icons/customIcons/icons/LessOrEqual.js"),require("../../../icons/customIcons/icons/Search.js"),require("../../../icons/customIcons/icons/SearchOne.js"),require("../../../icons/customIcons/icons/Wellhub.js"),require("../../../icons/customIcons/icons/MultiRuler.js"),require("../../../icons/customIcons/icons/Checkbox.js"),require("../../../icons/customIcons/icons/CheckboxChecked.js"),require("../../../icons/customIcons/icons/CheckboxIndeterminate.js"),require("../../../icons/customIcons/icons/Radio.js"),require("../../../icons/customIcons/icons/RadioChecked.js"),require("../../../icons/customIcons/icons/SimulFrac.js"),require("../../../icons/customIcons/icons/ZipperFrac.js"),require("../../../icons/customIcons/icons/CautionFilled.js"),require("../../../icons/customIcons/icons/InfoRounded.js"),require("../../../icons/customIcons/icons/FlameFilled.js"),require("../../../icons/customIcons/icons/MoreApp.js"),require("../../../icons/customIcons/icons/Pad.js"),require("../../../icons/customIcons/icons/DrilloutUnit.js"),require("../../../icons/customIcons/icons/FracFleet.js"),require("../../../icons/customIcons/icons/Global.js"),require("../../../icons/customIcons/icons/Program.js"),require("../../../icons/customIcons/icons/Rig.js"),require("../../../icons/customIcons/icons/Well.js"),require("../../../icons/customIcons/icons/Gap.js"),require("../../../icons/customIcons/icons/Pin.js"),require("../../../icons/customIcons/icons/PinOne.js"),require("../../../icons/customIcons/icons/PinOneCrossed.js"),require("../../../icons/customIcons/icons/CloseOneFilled.js"),require("../../../icons/customIcons/icons/AttentionFilled.js"),require("../../../icons/customIcons/icons/CheckOneFilled.js"),require("../../../icons/customIcons/icons/Archive.js"),require("../../../icons/customIcons/icons/ArchiveCancel.js"),require("../../../icons/customIcons/icons/Unarchive.js"),require("../../../icons/customIcons/icons/Archived.js"),require("../../../icons/customIcons/icons/InterventionUnit.js"),require("../../../icons/customIcons/icons/CloudDelete.js"),require("../../../icons/customIcons/icons/Lasso.js"),require("../../../icons/customIcons/icons/Radius.js"),require("../../../icons/customIcons/icons/ErrorOps.js"),require("../../../icons/customIcons/icons/DataTypeOps.js"),require("../../../icons/customIcons/icons/FalsePositiveOps.js"),require("../../../icons/customIcons/icons/CalibrationOps.js"),require("../../../icons/customIcons/icons/CriticalOps.js"),require("../../../icons/customIcons/icons/Company.js"),require("../../../icons/customIcons/icons/ArchiveOne.js"),require("../../../icons/customIcons/icons/ParseBotFusion.js"),require("../../../icons/customIcons/icons/Connect.js"),require("../../../icons/customIcons/icons/PuzzleOne.js"),require("../../../icons/customIcons/icons/Feed.js"),require("../../../icons/customIcons/icons/Prompt.js"),require("../../../icons/customIcons/icons/Companies.js"),require("../../../icons/customIcons/icons/ClipboardAi.js"),require("../../../icons/customIcons/icons/Key.js"),require("../../../icons/customIcons/icons/AtSignCrossed.js"),require("../../../icons/customIcons/icons/MappingManual.js"),require("../../../icons/customIcons/icons/Mapping.js"),require("../../../icons/customIcons/icons/Metrics.js"),require("../../../icons/customIcons/icons/Drops.js"),require("../../../icons/customIcons/icons/ClipboardSearch.js"),require("../../../icons/customIcons/icons/Template.js"),require("../../../icons/customIcons/icons/ClipboardMetrics.js"),require("../../../icons/customIcons/icons/ClipboardBuilder.js"),require("../../../icons/customIcons/icons/UnitConversion.js"),require("../../../icons/customIcons/icons/NPT.js"),require("../../../icons/customIcons/icons/GuidedFrac.js");var v=require("../../../permissions/PermissionsContext.js");require("../../../styles/iconPark.global.css.js"),require("../../../styles/index.global.css.js"),require("../../../styles/reactVirtualized.global.css.js"),require("../../../styles/emojiMart.global.css.js"),require("../../../styles/mapbox.global.css.js"),require("../../../styles/lightbox.global.css.js"),require("../../../styles/generatedThemesVariables.global.css.js"),require("../../../styles/customScrollbars.global.css.js");var P=require("../../../utils/index.js"),A=require("../../../utils/themeVariables.js");function O(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var y=O(e),E=O(s),x=O(i),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),s=require("@babel/runtime/helpers/objectWithoutProperties"),o=require("@material-ui/core"),i=require("classnames"),n=require("moment-timezone"),r=require("prop-types"),c=require("react"),t=require("react-router-dom"),u=require("./constants.js"),a=require("./effects/useXProps.js"),l=require("./utils/dashboardCapturing.js"),m=require("./utils/replaceUndefinedValuesWithNull.js"),p=require("../../../CLI/hocs/constants.js"),j=require("../../../CLI/hocs/utils.js");require("@babel/runtime/helpers/toConsumableArray"),require("lodash/set"),require("lodash/get"),require("lodash/unset"),require("moment"),require("../../../clients/jsonApi/index.js"),require("../../../clients/subscriptions/subscriptions-client.factory.js"),require("../../../clients/api/apiCore.js"),require("../../../clients/constants.js"),require("../../../clients/sso/auth0.js"),require("../../../clients/sso/oauth2.js");var q=require("../../../clients/api/rateLimiter.js"),d=require("../AppContext.js"),I=require("../DevCenterAppContainer/DevCenterAppContainer.js"),f=require("../DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider.js"),C=require("../../../constants/theme.js"),h=require("../../../hocs/withMUIProvidersHOC.js");require("../../../hocs/withAssetEditorLockHOC.js"),require("@icon-park/react/es/all");var b=require("react/jsx-runtime"),g=require("../../../icons/IconParkProvider.js");require("../../../icons/customIcons/icons/AddMessage.js"),require("../../../icons/customIcons/icons/DragOne.js"),require("../../../icons/customIcons/icons/Attention.js"),require("../../../icons/customIcons/icons/Collapse.js"),require("../../../icons/customIcons/icons/Dashboard.js"),require("../../../icons/customIcons/icons/Expand.js"),require("../../../icons/customIcons/icons/FolderClosed.js"),require("../../../icons/customIcons/icons/FolderClosedFilled.js"),require("../../../icons/customIcons/icons/FolderOpened.js"),require("../../../icons/customIcons/icons/GreaterOrEqual.js"),require("../../../icons/customIcons/icons/LessOrEqual.js"),require("../../../icons/customIcons/icons/Search.js"),require("../../../icons/customIcons/icons/SearchOne.js"),require("../../../icons/customIcons/icons/Wellhub.js"),require("../../../icons/customIcons/icons/MultiRuler.js"),require("../../../icons/customIcons/icons/Checkbox.js"),require("../../../icons/customIcons/icons/CheckboxChecked.js"),require("../../../icons/customIcons/icons/CheckboxIndeterminate.js"),require("../../../icons/customIcons/icons/Radio.js"),require("../../../icons/customIcons/icons/RadioChecked.js"),require("../../../icons/customIcons/icons/SimulFrac.js"),require("../../../icons/customIcons/icons/ZipperFrac.js"),require("../../../icons/customIcons/icons/CautionFilled.js"),require("../../../icons/customIcons/icons/InfoRounded.js"),require("../../../icons/customIcons/icons/FlameFilled.js"),require("../../../icons/customIcons/icons/MoreApp.js"),require("../../../icons/customIcons/icons/Pad.js"),require("../../../icons/customIcons/icons/DrilloutUnit.js"),require("../../../icons/customIcons/icons/FracFleet.js"),require("../../../icons/customIcons/icons/Global.js"),require("../../../icons/customIcons/icons/Program.js"),require("../../../icons/customIcons/icons/Rig.js"),require("../../../icons/customIcons/icons/Well.js"),require("../../../icons/customIcons/icons/Gap.js"),require("../../../icons/customIcons/icons/Pin.js"),require("../../../icons/customIcons/icons/PinOne.js"),require("../../../icons/customIcons/icons/PinOneCrossed.js"),require("../../../icons/customIcons/icons/CloseOneFilled.js"),require("../../../icons/customIcons/icons/AttentionFilled.js"),require("../../../icons/customIcons/icons/CheckOneFilled.js"),require("../../../icons/customIcons/icons/Archive.js"),require("../../../icons/customIcons/icons/ArchiveCancel.js"),require("../../../icons/customIcons/icons/Unarchive.js"),require("../../../icons/customIcons/icons/Archived.js"),require("../../../icons/customIcons/icons/InterventionUnit.js"),require("../../../icons/customIcons/icons/CloudDelete.js"),require("../../../icons/customIcons/icons/Lasso.js"),require("../../../icons/customIcons/icons/Radius.js"),require("../../../icons/customIcons/icons/ErrorOps.js"),require("../../../icons/customIcons/icons/DataTypeOps.js"),require("../../../icons/customIcons/icons/FalsePositiveOps.js"),require("../../../icons/customIcons/icons/CalibrationOps.js"),require("../../../icons/customIcons/icons/CriticalOps.js"),require("../../../icons/customIcons/icons/Company.js"),require("../../../icons/customIcons/icons/ArchiveOne.js"),require("../../../icons/customIcons/icons/ParseBotFusion.js"),require("../../../icons/customIcons/icons/Connect.js"),require("../../../icons/customIcons/icons/PuzzleOne.js"),require("../../../icons/customIcons/icons/Feed.js"),require("../../../icons/customIcons/icons/Prompt.js"),require("../../../icons/customIcons/icons/Companies.js"),require("../../../icons/customIcons/icons/ClipboardAi.js"),require("../../../icons/customIcons/icons/Key.js"),require("../../../icons/customIcons/icons/AtSignCrossed.js"),require("../../../icons/customIcons/icons/MappingManual.js"),require("../../../icons/customIcons/icons/Mapping.js"),require("../../../icons/customIcons/icons/Metrics.js"),require("../../../icons/customIcons/icons/Drops.js"),require("../../../icons/customIcons/icons/ClipboardSearch.js"),require("../../../icons/customIcons/icons/Template.js"),require("../../../icons/customIcons/icons/ClipboardMetrics.js"),require("../../../icons/customIcons/icons/ClipboardBuilder.js"),require("../../../icons/customIcons/icons/UnitConversion.js"),require("../../../icons/customIcons/icons/NPT.js"),require("../../../icons/customIcons/icons/GuidedFrac.js");var v=require("../../../permissions/PermissionsContext.js");require("../../../styles/iconPark.global.css.js"),require("../../../styles/index.global.css.js"),require("../../../styles/reactVirtualized.global.css.js"),require("../../../styles/emojiMart.global.css.js"),require("../../../styles/mapbox.global.css.js"),require("../../../styles/lightbox.global.css.js"),require("../../../styles/generatedThemesVariables.global.css.js"),require("../../../styles/customScrollbars.global.css.js");var P=require("../../../utils/index.js"),A=require("../../../utils/themeVariables.js");function O(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var y=O(e),E=O(s),x=O(i),S=O(n),L=O(r),D=["appContextValue","globalMixpanelEventTracker","globalNotificationToastsAPI","onSettingChange","onSettingsChange","permissionsContextValue","timezone","userUnits","trackApiRateLimiterException"];function R(e,s){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);s&&(i=i.filter((function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable}))),o.push.apply(o,i)}return o}function T(e){for(var s=1;s<arguments.length;s++){var o=null!=arguments[s]?arguments[s]:{};s%2?R(Object(o),!0).forEach((function(s){y.default(e,s,o[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):R(Object(o)).forEach((function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(o,s))}))}return e}var w=h(I),M=o.makeStyles((function(){return{"@global":{body:{backgroundColor:"transparent",overflow:"hidden"}}}}));function k(e){var s,o,i,n,r,I,h=e.CLIAppComponent,O=void 0===h?null:h,y=e.CLIAppSettings,L=void 0===y?null:y,R=e.containerReportClassName,k=void 0===R?null:R;M();var F=a.useXProps(),U=F.appContextValue,V=F.globalMixpanelEventTracker,H=F.globalNotificationToastsAPI,N=F.onSettingChange,_=F.onSettingsChange,z=F.permissionsContextValue,G=F.timezone,W=F.userUnits,K=F.trackApiRateLimiterException,B=E.default(F,D),X=B.location.pathname.startsWith("/reports/")||j.isPDFReportView,Y=new URLSearchParams(B.location.search).get("printTheme"),Z=null==B||null===(s=B.app)||void 0===s?void 0:s.id,J=localStorage.getItem(p.LOCAL_STORAGE_APP_THEME_KEY)||(null===(o=B.currentUser)||void 0===o||null===(i=o.settings)||void 0===i||null===(n=i.uiSettings)||void 0===n?void 0:n.theme)||C.THEMES.DARK,Q=X?Y===C.THEMES.DARK:J!==C.THEMES.LIGHT;return c.useLayoutEffect((function(){A.setThemeVariables(Q)}),[Q]),c.useLayoutEffect((function(){W&&P.updateUserUnits({userUnits:W})}),[W]),c.useLayoutEffect((function(){return G&&S.default.tz.setDefault(G),function(){return S.default.tz.setDefault(null)}}),[G]),c.useEffect((function(){window[Symbol.for("notificationToasts")]=H,window[Symbol.for("logToMixpanel")]=V,window[Symbol.for("corvaAPI.rateLimiterReport")]=K}),[H,V,K]),c.useEffect((function(){q.apiRequestsRateLimiter.updateConfig(B.apiRateLimiterConfig)}),[B.apiRateLimiterConfig]),c.useEffect((function(){var e=l.getDashboardCapturingHandler(Z);return window.addEventListener("message",e),function(){return window.removeEventListener("message",e)}}),[Z]),b.jsx(t.MemoryRouter,{initialEntries:[((null===(r=B.location)||void 0===r?void 0:r.pathname)||"/")+((null===(I=B.location)||void 0===I?void 0:I.search)||"")],children:b.jsx(v.PermissionsContext.Provider,{value:z,children:b.jsx(d.Provider,{value:U,children:b.jsx(f.IsInsideIsolatedDcAppProvider,{value:!0,children:b.jsx(g.IconParkProvider,{children:b.jsx("div",{id:u.ISOLATED_PAGE_APP_CONTAINER_ID,className:x.default(X&&k),children:b.jsx(w,T(T({},B),{},{theme:Q?C.THEMES.DARK:C.THEMES.LIGHT,onSettingsChange:function(e){return _(m.replaceUndefinedValuesWithNull(e))},onSettingChange:function(e,s){return N(e,m.replaceUndefinedValuesWithNull(s))},CLIAppComponent:O,CLIAppSettings:L,trackApiRateLimiterException:K}))})})})})})})}k.propTypes={CLIAppComponent:L.default.func,CLIAppSettings:L.default.func,containerReportClassName:L.default.string},exports.DevCenterIsolatedAppPage=k;
|
|
2
2
|
//# sourceMappingURL=DevCenterIsolatedAppPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevCenterIsolatedAppPage.js","sources":["../../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js"],"sourcesContent":["import { makeStyles } from '@material-ui/core';\nimport classNames from 'classnames';\nimport moment from 'moment-timezone';\nimport PropTypes from 'prop-types';\nimport { useEffect, useLayoutEffect } from 'react';\nimport { MemoryRouter } from 'react-router-dom';\n\nimport { ISOLATED_PAGE_APP_CONTAINER_ID } from './constants';\nimport { useXProps } from './effects/useXProps';\nimport { getDashboardCapturingHandler } from './utils/dashboardCapturing';\nimport { replaceUndefinedValuesWithNull } from './utils/replaceUndefinedValuesWithNull';\n\nimport { LOCAL_STORAGE_APP_THEME_KEY } from '~/CLI/hocs/constants';\nimport { isPDFReportView } from '~/CLI/hocs/utils';\nimport { apiRequestsRateLimiter } from '~/clients';\nimport AppContext from '~/components/DevCenter/AppContext';\nimport DevCenterAppContainer from '~/components/DevCenter/DevCenterAppContainer';\nimport { IsInsideIsolatedDcAppProvider } from '~/components/DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider';\nimport { THEMES } from '~/constants/theme';\nimport { withMUIProvidersHOC } from '~/hocs';\nimport { IconParkProvider } from '~/icons';\nimport { PermissionsContext } from '~/permissions/PermissionsContext';\nimport '~/styles/globalStyles';\nimport { updateUserUnits } from '~/utils';\nimport { setThemeVariables } from '~/utils/themeVariables';\n\nconst DevCenterAppContainerWithMUI = withMUIProvidersHOC(DevCenterAppContainer);\n\n/**\n * It's important to keep these global styles in js, to apply only\n * when the component is actually used, if moved to CSS - they'll be\n * applied to whatever somehow imports the code\n */\nconst useStyles = makeStyles(() => ({\n '@global': {\n body: {\n backgroundColor: 'transparent',\n overflow: 'hidden',\n },\n },\n}));\n\n/**\n * Root component that is rendered inside of app's iframe.\n * Receives CLIAppComponent, CLIAppSettings when used\n * in local development\n */\nexport function DevCenterIsolatedAppPage({\n CLIAppComponent = null,\n CLIAppSettings = null,\n containerReportClassName = null,\n}) {\n useStyles();\n\n const {\n appContextValue,\n globalMixpanelEventTracker,\n globalNotificationToastsAPI,\n onSettingChange,\n onSettingsChange,\n permissionsContextValue,\n timezone,\n userUnits,\n trackApiRateLimiterException,\n ...xProps\n } = useXProps();\n const isReportsPage = xProps.location.pathname.startsWith('/reports/') || isPDFReportView;\n const appId = xProps?.app?.id;\n\n // Force light theme for PDF reports view\n const selectedTheme =\n localStorage.getItem(LOCAL_STORAGE_APP_THEME_KEY) ||\n xProps.currentUser?.settings?.uiSettings?.theme ||\n THEMES.DARK;\n const isDarkTheme = !isReportsPage && selectedTheme !== THEMES.LIGHT;\n\n useLayoutEffect(() => {\n setThemeVariables(isDarkTheme);\n }, [isDarkTheme]);\n\n // Apply userUnits and/or timezone before paint so that the first render\n // (including PDF reports) uses the correct unit system.\n // useLayoutEffect runs synchronously after DOM mutations but before the browser paints,\n // and re-runs whenever userUnits changes — fixing the production race where the iframe mounts\n // before the parent has finished loading the dashboard's unit_system.\n useLayoutEffect(() => {\n if (userUnits) {\n updateUserUnits({ userUnits });\n }\n }, [userUnits]);\n\n useLayoutEffect(() => {\n if (timezone) {\n moment.tz.setDefault(timezone);\n }\n return () => moment.tz.setDefault(null);\n }, [timezone]);\n\n useEffect(() => {\n window[Symbol.for('notificationToasts')] = globalNotificationToastsAPI;\n window[Symbol.for('logToMixpanel')] = globalMixpanelEventTracker;\n window[Symbol.for('corvaAPI.rateLimiterReport')] = trackApiRateLimiterException;\n }, [globalNotificationToastsAPI, globalMixpanelEventTracker, trackApiRateLimiterException]);\n\n useEffect(() => {\n apiRequestsRateLimiter.updateConfig(xProps.apiRateLimiterConfig);\n }, [xProps.apiRateLimiterConfig]);\n\n useEffect(() => {\n const dashboardCapturingHandler = getDashboardCapturingHandler(appId);\n window.addEventListener('message', dashboardCapturingHandler);\n return () => window.removeEventListener('message', dashboardCapturingHandler);\n }, [appId]);\n\n return (\n <MemoryRouter\n initialEntries={[(xProps.location?.pathname || '/') + (xProps.location?.search || '')]}\n >\n <PermissionsContext.Provider value={permissionsContextValue}>\n <AppContext.Provider value={appContextValue}>\n <IsInsideIsolatedDcAppProvider value>\n <IconParkProvider>\n <div\n id={ISOLATED_PAGE_APP_CONTAINER_ID}\n className={classNames(isReportsPage && containerReportClassName)}\n >\n <DevCenterAppContainerWithMUI\n {...xProps}\n theme={isDarkTheme ? THEMES.DARK : THEMES.LIGHT}\n // zoid serializes passed arguments using JSON.stringify.\n // All undefined values are removed as they are not valid JSON values\n // so we replace undefined values with null to not drop them\n // Any future cb function that passes arbitrary objects as args\n // also should be wrapped in this mapper\n // ⚠️⚠️⚠️ When refactoring this to referentially stable callbacks, remove `useStableCallback` from\n // /src/componentsV2/AppCommonsProvider/AppCommonsProvider.tsx\n onSettingsChange={nextSettings =>\n onSettingsChange(replaceUndefinedValuesWithNull(nextSettings))\n }\n onSettingChange={(key, value) =>\n onSettingChange(key, replaceUndefinedValuesWithNull(value))\n }\n CLIAppComponent={CLIAppComponent}\n CLIAppSettings={CLIAppSettings}\n trackApiRateLimiterException={trackApiRateLimiterException}\n />\n </div>\n </IconParkProvider>\n </IsInsideIsolatedDcAppProvider>\n </AppContext.Provider>\n </PermissionsContext.Provider>\n </MemoryRouter>\n );\n}\n\nDevCenterIsolatedAppPage.propTypes = {\n CLIAppComponent: PropTypes.func,\n CLIAppSettings: PropTypes.func,\n containerReportClassName: PropTypes.string,\n};\n"],"names":["DevCenterAppContainerWithMUI","withMUIProvidersHOC","DevCenterAppContainer","useStyles","makeStyles","body","backgroundColor","overflow","DevCenterIsolatedAppPage","_ref","_xProps$app","_xProps$currentUser","_xProps$currentUser$s","_xProps$currentUser$s2","_xProps$location","_xProps$location2","_ref$CLIAppComponent","CLIAppComponent","_ref$CLIAppSettings","CLIAppSettings","_ref$containerReportC","containerReportClassName","_useXProps","useXProps","appContextValue","globalMixpanelEventTracker","globalNotificationToastsAPI","onSettingChange","onSettingsChange","permissionsContextValue","timezone","userUnits","trackApiRateLimiterException","xProps","_objectWithoutProperties","_excluded","isReportsPage","location","pathname","startsWith","isPDFReportView","appId","app","id","selectedTheme","localStorage","getItem","LOCAL_STORAGE_APP_THEME_KEY","currentUser","settings","uiSettings","theme","THEMES","DARK","isDarkTheme","LIGHT","useLayoutEffect","setThemeVariables","updateUserUnits","moment","tz","setDefault","useEffect","window","Symbol","for","apiRequestsRateLimiter","updateConfig","apiRateLimiterConfig","dashboardCapturingHandler","getDashboardCapturingHandler","addEventListener","removeEventListener","_jsx","MemoryRouter","initialEntries","search","children","PermissionsContext","Provider","value","AppContext","IsInsideIsolatedDcAppProvider","IconParkProvider","jsx","ISOLATED_PAGE_APP_CONTAINER_ID","className","classNames","_objectSpread","nextSettings","replaceUndefinedValuesWithNull","key","propTypes","PropTypes","func","string"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DevCenterIsolatedAppPage.js","sources":["../../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js"],"sourcesContent":["import { makeStyles } from '@material-ui/core';\nimport classNames from 'classnames';\nimport moment from 'moment-timezone';\nimport PropTypes from 'prop-types';\nimport { useEffect, useLayoutEffect } from 'react';\nimport { MemoryRouter } from 'react-router-dom';\n\nimport { ISOLATED_PAGE_APP_CONTAINER_ID } from './constants';\nimport { useXProps } from './effects/useXProps';\nimport { getDashboardCapturingHandler } from './utils/dashboardCapturing';\nimport { replaceUndefinedValuesWithNull } from './utils/replaceUndefinedValuesWithNull';\n\nimport { LOCAL_STORAGE_APP_THEME_KEY } from '~/CLI/hocs/constants';\nimport { isPDFReportView } from '~/CLI/hocs/utils';\nimport { apiRequestsRateLimiter } from '~/clients';\nimport AppContext from '~/components/DevCenter/AppContext';\nimport DevCenterAppContainer from '~/components/DevCenter/DevCenterAppContainer';\nimport { IsInsideIsolatedDcAppProvider } from '~/components/DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider';\nimport { THEMES } from '~/constants/theme';\nimport { withMUIProvidersHOC } from '~/hocs';\nimport { IconParkProvider } from '~/icons';\nimport { PermissionsContext } from '~/permissions/PermissionsContext';\nimport '~/styles/globalStyles';\nimport { updateUserUnits } from '~/utils';\nimport { setThemeVariables } from '~/utils/themeVariables';\n\nconst DevCenterAppContainerWithMUI = withMUIProvidersHOC(DevCenterAppContainer);\n\n/**\n * It's important to keep these global styles in js, to apply only\n * when the component is actually used, if moved to CSS - they'll be\n * applied to whatever somehow imports the code\n */\nconst useStyles = makeStyles(() => ({\n '@global': {\n body: {\n backgroundColor: 'transparent',\n overflow: 'hidden',\n },\n },\n}));\n\n/**\n * Root component that is rendered inside of app's iframe.\n * Receives CLIAppComponent, CLIAppSettings when used\n * in local development\n */\nexport function DevCenterIsolatedAppPage({\n CLIAppComponent = null,\n CLIAppSettings = null,\n containerReportClassName = null,\n}) {\n useStyles();\n\n const {\n appContextValue,\n globalMixpanelEventTracker,\n globalNotificationToastsAPI,\n onSettingChange,\n onSettingsChange,\n permissionsContextValue,\n timezone,\n userUnits,\n trackApiRateLimiterException,\n ...xProps\n } = useXProps();\n const isReportsPage = xProps.location.pathname.startsWith('/reports/') || isPDFReportView;\n const printTheme = new URLSearchParams(xProps.location.search).get('printTheme');\n const appId = xProps?.app?.id;\n\n // Reports use light theme by default unless dark mode is explicitly requested.\n const selectedTheme =\n localStorage.getItem(LOCAL_STORAGE_APP_THEME_KEY) ||\n xProps.currentUser?.settings?.uiSettings?.theme ||\n THEMES.DARK;\n const isDarkTheme = isReportsPage ? printTheme === THEMES.DARK : selectedTheme !== THEMES.LIGHT;\n\n useLayoutEffect(() => {\n setThemeVariables(isDarkTheme);\n }, [isDarkTheme]);\n\n // Apply userUnits and/or timezone before paint so that the first render\n // (including PDF reports) uses the correct unit system.\n // useLayoutEffect runs synchronously after DOM mutations but before the browser paints,\n // and re-runs whenever userUnits changes — fixing the production race where the iframe mounts\n // before the parent has finished loading the dashboard's unit_system.\n useLayoutEffect(() => {\n if (userUnits) {\n updateUserUnits({ userUnits });\n }\n }, [userUnits]);\n\n useLayoutEffect(() => {\n if (timezone) {\n moment.tz.setDefault(timezone);\n }\n return () => moment.tz.setDefault(null);\n }, [timezone]);\n\n useEffect(() => {\n window[Symbol.for('notificationToasts')] = globalNotificationToastsAPI;\n window[Symbol.for('logToMixpanel')] = globalMixpanelEventTracker;\n window[Symbol.for('corvaAPI.rateLimiterReport')] = trackApiRateLimiterException;\n }, [globalNotificationToastsAPI, globalMixpanelEventTracker, trackApiRateLimiterException]);\n\n useEffect(() => {\n apiRequestsRateLimiter.updateConfig(xProps.apiRateLimiterConfig);\n }, [xProps.apiRateLimiterConfig]);\n\n useEffect(() => {\n const dashboardCapturingHandler = getDashboardCapturingHandler(appId);\n window.addEventListener('message', dashboardCapturingHandler);\n return () => window.removeEventListener('message', dashboardCapturingHandler);\n }, [appId]);\n\n return (\n <MemoryRouter\n initialEntries={[(xProps.location?.pathname || '/') + (xProps.location?.search || '')]}\n >\n <PermissionsContext.Provider value={permissionsContextValue}>\n <AppContext.Provider value={appContextValue}>\n <IsInsideIsolatedDcAppProvider value>\n <IconParkProvider>\n <div\n id={ISOLATED_PAGE_APP_CONTAINER_ID}\n className={classNames(isReportsPage && containerReportClassName)}\n >\n <DevCenterAppContainerWithMUI\n {...xProps}\n theme={isDarkTheme ? THEMES.DARK : THEMES.LIGHT}\n // zoid serializes passed arguments using JSON.stringify.\n // All undefined values are removed as they are not valid JSON values\n // so we replace undefined values with null to not drop them\n // Any future cb function that passes arbitrary objects as args\n // also should be wrapped in this mapper\n // ⚠️⚠️⚠️ When refactoring this to referentially stable callbacks, remove `useStableCallback` from\n // /src/componentsV2/AppCommonsProvider/AppCommonsProvider.tsx\n onSettingsChange={nextSettings =>\n onSettingsChange(replaceUndefinedValuesWithNull(nextSettings))\n }\n onSettingChange={(key, value) =>\n onSettingChange(key, replaceUndefinedValuesWithNull(value))\n }\n CLIAppComponent={CLIAppComponent}\n CLIAppSettings={CLIAppSettings}\n trackApiRateLimiterException={trackApiRateLimiterException}\n />\n </div>\n </IconParkProvider>\n </IsInsideIsolatedDcAppProvider>\n </AppContext.Provider>\n </PermissionsContext.Provider>\n </MemoryRouter>\n );\n}\n\nDevCenterIsolatedAppPage.propTypes = {\n CLIAppComponent: PropTypes.func,\n CLIAppSettings: PropTypes.func,\n containerReportClassName: PropTypes.string,\n};\n"],"names":["DevCenterAppContainerWithMUI","withMUIProvidersHOC","DevCenterAppContainer","useStyles","makeStyles","body","backgroundColor","overflow","DevCenterIsolatedAppPage","_ref","_xProps$app","_xProps$currentUser","_xProps$currentUser$s","_xProps$currentUser$s2","_xProps$location","_xProps$location2","_ref$CLIAppComponent","CLIAppComponent","_ref$CLIAppSettings","CLIAppSettings","_ref$containerReportC","containerReportClassName","_useXProps","useXProps","appContextValue","globalMixpanelEventTracker","globalNotificationToastsAPI","onSettingChange","onSettingsChange","permissionsContextValue","timezone","userUnits","trackApiRateLimiterException","xProps","_objectWithoutProperties","_excluded","isReportsPage","location","pathname","startsWith","isPDFReportView","printTheme","URLSearchParams","search","get","appId","app","id","selectedTheme","localStorage","getItem","LOCAL_STORAGE_APP_THEME_KEY","currentUser","settings","uiSettings","theme","THEMES","DARK","isDarkTheme","LIGHT","useLayoutEffect","setThemeVariables","updateUserUnits","moment","tz","setDefault","useEffect","window","Symbol","for","apiRequestsRateLimiter","updateConfig","apiRateLimiterConfig","dashboardCapturingHandler","getDashboardCapturingHandler","addEventListener","removeEventListener","_jsx","MemoryRouter","initialEntries","children","PermissionsContext","Provider","value","AppContext","IsInsideIsolatedDcAppProvider","IconParkProvider","jsx","ISOLATED_PAGE_APP_CONTAINER_ID","className","classNames","_objectSpread","nextSettings","replaceUndefinedValuesWithNull","key","propTypes","PropTypes","func","string"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),o=require("@babel/runtime/helpers/toConsumableArray"),s=require("@babel/runtime/helpers/typeof"),n=require("@babel/runtime/helpers/slicedToArray"),i=require("@material-ui/lab"),c=require("react"),r=require("classnames"),t=require("../Popper/Popper.js"),u=require("../../icons/iconParkIcons.js");require("../../icons/customIcons/icons/AddMessage.js"),require("../../icons/customIcons/icons/DragOne.js"),require("../../icons/customIcons/icons/Attention.js"),require("../../icons/customIcons/icons/Collapse.js"),require("../../icons/customIcons/icons/Dashboard.js"),require("../../icons/customIcons/icons/Expand.js"),require("../../icons/customIcons/icons/FolderClosed.js"),require("../../icons/customIcons/icons/FolderClosedFilled.js"),require("../../icons/customIcons/icons/FolderOpened.js"),require("../../icons/customIcons/icons/GreaterOrEqual.js"),require("../../icons/customIcons/icons/LessOrEqual.js"),require("../../icons/customIcons/icons/Search.js"),require("../../icons/customIcons/icons/SearchOne.js"),require("../../icons/customIcons/icons/Wellhub.js"),require("../../icons/customIcons/icons/MultiRuler.js"),require("../../icons/customIcons/icons/Checkbox.js"),require("../../icons/customIcons/icons/CheckboxChecked.js"),require("../../icons/customIcons/icons/CheckboxIndeterminate.js"),require("../../icons/customIcons/icons/Radio.js"),require("../../icons/customIcons/icons/RadioChecked.js"),require("../../icons/customIcons/icons/SimulFrac.js"),require("../../icons/customIcons/icons/ZipperFrac.js"),require("../../icons/customIcons/icons/CautionFilled.js"),require("../../icons/customIcons/icons/InfoRounded.js"),require("../../icons/customIcons/icons/FlameFilled.js"),require("../../icons/customIcons/icons/MoreApp.js"),require("../../icons/customIcons/icons/Pad.js"),require("../../icons/customIcons/icons/DrilloutUnit.js"),require("../../icons/customIcons/icons/FracFleet.js"),require("../../icons/customIcons/icons/Global.js"),require("../../icons/customIcons/icons/Program.js"),require("../../icons/customIcons/icons/Rig.js"),require("../../icons/customIcons/icons/Well.js"),require("../../icons/customIcons/icons/Gap.js"),require("../../icons/customIcons/icons/Pin.js"),require("../../icons/customIcons/icons/PinOne.js"),require("../../icons/customIcons/icons/PinOneCrossed.js"),require("../../icons/customIcons/icons/CloseOneFilled.js"),require("../../icons/customIcons/icons/AttentionFilled.js"),require("../../icons/customIcons/icons/CheckOneFilled.js"),require("../../icons/customIcons/icons/Archive.js"),require("../../icons/customIcons/icons/ArchiveCancel.js"),require("../../icons/customIcons/icons/Unarchive.js"),require("../../icons/customIcons/icons/Archived.js"),require("../../icons/customIcons/icons/InterventionUnit.js"),require("../../icons/customIcons/icons/CloudDelete.js"),require("../../icons/customIcons/icons/Lasso.js"),require("../../icons/customIcons/icons/Radius.js"),require("../../icons/customIcons/icons/ErrorOps.js"),require("../../icons/customIcons/icons/DataTypeOps.js"),require("../../icons/customIcons/icons/FalsePositiveOps.js"),require("../../icons/customIcons/icons/CalibrationOps.js"),require("../../icons/customIcons/icons/CriticalOps.js"),require("../../icons/customIcons/icons/Company.js"),require("../../icons/customIcons/icons/ArchiveOne.js"),require("../../icons/customIcons/icons/ParseBotFusion.js"),require("../../icons/customIcons/icons/Connect.js"),require("../../icons/customIcons/icons/PuzzleOne.js"),require("../../icons/customIcons/icons/Feed.js"),require("../../icons/customIcons/icons/Prompt.js"),require("../../icons/customIcons/icons/Companies.js"),require("../../icons/customIcons/icons/ClipboardAi.js"),require("../../icons/customIcons/icons/Key.js"),require("../../icons/customIcons/icons/AtSignCrossed.js"),require("../../icons/customIcons/icons/MappingManual.js"),require("../../icons/customIcons/icons/Mapping.js"),require("../../icons/customIcons/icons/Metrics.js"),require("../../icons/customIcons/icons/Drops.js"),require("../../icons/customIcons/icons/ClipboardSearch.js"),require("../../icons/customIcons/icons/Template.js"),require("../../icons/customIcons/icons/ClipboardMetrics.js"),require("../../icons/customIcons/icons/ClipboardBuilder.js"),require("../../icons/customIcons/icons/UnitConversion.js"),require("../../icons/customIcons/icons/NPT.js"),require("../../icons/customIcons/icons/GuidedFrac.js");var l=require("./AutocompleteInput/AutocompleteInput.js"),a=require("./AutocompletePaper.js"),p=require("./utils.js"),m=require("./AutocompleteMenuItem.js"),d=require("./AutocompleteListBox.js"),j=require("./Autocomplete.scss.js"),I=require("../Menu/Menu.js"),f=require("react/jsx-runtime");function q(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var O=q(e),b=q(o),C=q(s),h=q(n),v=q(r);function A(e,o){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);o&&(n=n.filter((function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable}))),s.push.apply(s,n)}return s}function g(e){for(var o=1;o<arguments.length;o++){var s=null!=arguments[o]?arguments[o]:{};o%2?A(Object(s),!0).forEach((function(o){O.default(e,o,s[o])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):A(Object(s)).forEach((function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(s,o))}))}return e}var y=function(e){var o=e.label,s=e.options,n=void 0===s?[]:s,r=e.value,q=e.onChange,A=e.multiple,y=e.renderOption,x=void 0===y?p.renderOptionDefault:y,P=e.optionSize,k=void 0===P?"medium":P,M=e.showPopupIcon,F=void 0===M||M,D=e.clearable,S=void 0===D||D,N=e.loading,R=e.noOptionsMessage,w=e.filterOptions,z=e.prefix,B=e.disabled,T=e.getOptionDisabled,V=e.renderSelected,L=void 0===V?p.renderSelectedValue:V,E=e.onInputChange,G=e.className,U=e.testId,W=e.status,_=e.message,K=e.useAllOption,Z=void 0!==K&&K,H=e.useOnlyOptionButton,J=void 0!==H&&H,Q=e.groupBy,X=e.renderGroup,Y=e.disableFiltering,$=e.onCreate,ee=e.dropdownClassName,oe=e.popperProps,se=e.placeholder,ne=e.focusOnClear,ie=void 0===ne||ne,ce=e.listboxComponent,re=e.size,te=void 0===re?"small":re,ue=e.labelPlacement,le=void 0===ue?"top":ue,ae=e.elementsClassNames,pe=e.htmlAttributes,me=e.onOpen,de=e.onClose,je=e.type,Ie=e.spacing,fe=e.isNext,qe=c.useState(""),Oe=h.default(qe,2),be=Oe[0],Ce=Oe[1],he=c.useMemo((function(){if(void 0===r||r instanceof Array&&0===r.length)return A?[]:null;var e=r instanceof Array?r:[r];if(A){var o=e.filter((function(e){return"object"!==C.default(e)})),s=e.filter((function(e){return"object"===C.default(e)})).map((function(e){return{id:e.id,title:e.title}})),i=n.filter((function(e){return o.includes(e.id)}));return[].concat(b.default(i),b.default(s))}return"object"===C.default(e[0])?e[0]:n.find((function(o){return e[0]===o.id}))||null}),[A,r,n]),ve=he instanceof Array&&he.length>0,Ae=he instanceof Array&&he.length===n.length,ge=N?"Loading ...":"No options",ye=!S||!he||he instanceof Array&&!(null!=he&&he.length),xe=c.useCallback((function(e){return f.jsx(l.AutocompleteInput,g(g({},e),{},{label:o,loading:N,prefix:z,status:W,message:_,readOnly:Y,placeholder:se,size:te,labelPlacement:le,elementsClassNames:ae,htmlAttributes:pe,type:je,spacing:Ie,isNext:fe}))}),[o,N,z,W,_,Y,se,te,le,ae,pe,je,Ie,fe]),Pe=c.useCallback((function(e,o,s){if("clear"!==s||ie||(e.stopPropagation(),e.preventDefault()),$&&o){var i=(o instanceof Array?o:[o]).find((function(e){return!p.isRealOption(e)&&!!e[p.CreateOptionMark]}));if(i)return void $(i.newOptionTitle||"")}if(A&&o instanceof Array&&o.some((function(e){return!p.isRealOption(e)&&!!e[p.AllOptionMark]})))return void(he instanceof Array&&he.length<n.length?null==q||q(n.filter(p.isRealOption),s,e):null==q||q([],s,e));null==q||q(o||void 0,s,e)}),[ie,$,A,q,he,n]),ke=c.useCallback((function(e,o){return null==q?void 0:q([e],"select-only-option",o)}),[q]),Me=c.useCallback((function(e,o){var s=o.selected;return p.isRealOption(e)?f.jsx(m.AutocompleteMenuItem,{size:k,selected:s,prefix:e.prefix,multiple:A,useOnlyButton:J,option:e,onSelectOnly:ke,children:x(e)}):e[p.AllOptionMark]?f.jsxs("div",{className:j.allOptionContainer,children:[f.jsx(m.AutocompleteMenuItem,{size:k,selected:ve,indeterminate:ve&&!Ae,multiple:!0,children:e.title}),f.jsx(I.Menu.Divider,{className:j.allOptionDivider})]}):f.jsx(m.AutocompleteMenuItem,{size:k,selected:ve,children:e.title})}),[k,A,J,ke,x,ve,Ae]),Fe=c.useCallback((function(e,o){var s,n=w?w(e,o.inputValue):i.createFilterOptions()(e,o),c=Z&&A&&n.length&&e.length>1?[O.default({title:"All"},p.AllOptionMark,!0)].concat(b.default(n)):n;return $&&""!==o.inputValue.trim()?[].concat(b.default(c),[(s={title:'Add "'.concat(o.inputValue,'"')},O.default(s,p.CreateOptionMark,!0),O.default(s,"newOptionTitle",o.inputValue),s)]):c}),[w,$,Z,A]),De=c.useCallback((function(e){return p.isRealOption(e)&&!(null==T||!T(e))}),[T]),Se=c.useCallback((function(e){return e.title}),[]),Ne=c.useCallback((function(e,o){var s=e.filter(p.isRealOption).map((function(e,s){return{option:e,onDelete:o({index:s}).onDelete}}));return L(s,{useAllOption:Z,allOptions:n})}),[L,Z,n]),Re=c.useCallback((function(e,o,s){e&&"blur"===e.type?Ce(""):"reset"!==s&&Ce(o),"reset"!==s&&(null==E||E(o,e))}),[E]),we=c.useMemo((function(){if(Q)return function(e){return p.isRealOption(e)?Q(e):""}}),[Q]),ze=c.useMemo((function(){return{paper:ee}}),[ee]),Be=c.useCallback((function(e,o){return!(!p.isRealOption(e)||!p.isRealOption(o))&&e.id===o.id}),[]),Te=i.Autocomplete,Ve=c.useCallback((function(e){return f.jsx(t.Popper,g(g(g({},e),oe),{},{className:v.default(null==e?void 0:e.className,null==oe?void 0:oe.className)}))}),[oe]),Le=c.useCallback((function(){null==me||me()}),[me]),Ee=c.useCallback((function(e,o){null==de||de(o)}),[de]);return f.jsx("div",{className:v.default(j.root,F&&j.withArrow,!ye&&j.withClear,G),"data-testid":U,children:f.jsx(Te,{value:he,options:n,getOptionLabel:Se,renderInput:xe,PopperComponent:Ve,PaperComponent:a.AutocompletePaper,multiple:A,disableCloseOnSelect:A,blurOnSelect:!A,onChange:Pe,renderOption:Me,popupIcon:f.jsx(u.DownIcon,{size:16}),forcePopupIcon:!!F,closeIcon:f.jsx(u.CloseSmallIcon,{size:16}),disableClearable:ye,clearText:"",noOptionsText:R||ge,filterOptions:Fe,disabled:B,getOptionDisabled:De,renderTags:Ne,inputValue:A?be:void 0,onInputChange:Re,groupBy:we,renderGroup:X,clearOnBlur:!0,selectOnFocus:!Y,classes:ze,getOptionSelected:Be,ListboxComponent:null!=ce?ce:d.AutocompleteListBox,onOpen:Le,onClose:Ee})})},x=function(e){return y(g(g({},e),{},{isNext:!0}))};x.selectedValueRenderers={default:p.renderSelectedValue,chipsMultiline:p.renderSelectedValueChips},exports.Autocomplete=function(e){return y(g(g({},e),{},{isNext:!1}))},exports.AutocompleteNext=x;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),o=require("@babel/runtime/helpers/toConsumableArray"),s=require("@babel/runtime/helpers/typeof"),n=require("@babel/runtime/helpers/slicedToArray"),i=require("@material-ui/lab"),c=require("react"),t=require("classnames"),r=require("../Popper/Popper.js"),u=require("../../icons/iconParkIcons.js");require("../../icons/customIcons/icons/AddMessage.js"),require("../../icons/customIcons/icons/DragOne.js"),require("../../icons/customIcons/icons/Attention.js"),require("../../icons/customIcons/icons/Collapse.js"),require("../../icons/customIcons/icons/Dashboard.js"),require("../../icons/customIcons/icons/Expand.js"),require("../../icons/customIcons/icons/FolderClosed.js"),require("../../icons/customIcons/icons/FolderClosedFilled.js"),require("../../icons/customIcons/icons/FolderOpened.js"),require("../../icons/customIcons/icons/GreaterOrEqual.js"),require("../../icons/customIcons/icons/LessOrEqual.js"),require("../../icons/customIcons/icons/Search.js"),require("../../icons/customIcons/icons/SearchOne.js"),require("../../icons/customIcons/icons/Wellhub.js"),require("../../icons/customIcons/icons/MultiRuler.js"),require("../../icons/customIcons/icons/Checkbox.js"),require("../../icons/customIcons/icons/CheckboxChecked.js"),require("../../icons/customIcons/icons/CheckboxIndeterminate.js"),require("../../icons/customIcons/icons/Radio.js"),require("../../icons/customIcons/icons/RadioChecked.js"),require("../../icons/customIcons/icons/SimulFrac.js"),require("../../icons/customIcons/icons/ZipperFrac.js"),require("../../icons/customIcons/icons/CautionFilled.js"),require("../../icons/customIcons/icons/InfoRounded.js"),require("../../icons/customIcons/icons/FlameFilled.js"),require("../../icons/customIcons/icons/MoreApp.js"),require("../../icons/customIcons/icons/Pad.js"),require("../../icons/customIcons/icons/DrilloutUnit.js"),require("../../icons/customIcons/icons/FracFleet.js"),require("../../icons/customIcons/icons/Global.js"),require("../../icons/customIcons/icons/Program.js"),require("../../icons/customIcons/icons/Rig.js"),require("../../icons/customIcons/icons/Well.js"),require("../../icons/customIcons/icons/Gap.js"),require("../../icons/customIcons/icons/Pin.js"),require("../../icons/customIcons/icons/PinOne.js"),require("../../icons/customIcons/icons/PinOneCrossed.js"),require("../../icons/customIcons/icons/CloseOneFilled.js"),require("../../icons/customIcons/icons/AttentionFilled.js"),require("../../icons/customIcons/icons/CheckOneFilled.js"),require("../../icons/customIcons/icons/Archive.js"),require("../../icons/customIcons/icons/ArchiveCancel.js"),require("../../icons/customIcons/icons/Unarchive.js"),require("../../icons/customIcons/icons/Archived.js"),require("../../icons/customIcons/icons/InterventionUnit.js"),require("../../icons/customIcons/icons/CloudDelete.js"),require("../../icons/customIcons/icons/Lasso.js"),require("../../icons/customIcons/icons/Radius.js"),require("../../icons/customIcons/icons/ErrorOps.js"),require("../../icons/customIcons/icons/DataTypeOps.js"),require("../../icons/customIcons/icons/FalsePositiveOps.js"),require("../../icons/customIcons/icons/CalibrationOps.js"),require("../../icons/customIcons/icons/CriticalOps.js"),require("../../icons/customIcons/icons/Company.js"),require("../../icons/customIcons/icons/ArchiveOne.js"),require("../../icons/customIcons/icons/ParseBotFusion.js"),require("../../icons/customIcons/icons/Connect.js"),require("../../icons/customIcons/icons/PuzzleOne.js"),require("../../icons/customIcons/icons/Feed.js"),require("../../icons/customIcons/icons/Prompt.js"),require("../../icons/customIcons/icons/Companies.js"),require("../../icons/customIcons/icons/ClipboardAi.js"),require("../../icons/customIcons/icons/Key.js"),require("../../icons/customIcons/icons/AtSignCrossed.js"),require("../../icons/customIcons/icons/MappingManual.js"),require("../../icons/customIcons/icons/Mapping.js"),require("../../icons/customIcons/icons/Metrics.js"),require("../../icons/customIcons/icons/Drops.js"),require("../../icons/customIcons/icons/ClipboardSearch.js"),require("../../icons/customIcons/icons/Template.js"),require("../../icons/customIcons/icons/ClipboardMetrics.js"),require("../../icons/customIcons/icons/ClipboardBuilder.js"),require("../../icons/customIcons/icons/UnitConversion.js"),require("../../icons/customIcons/icons/NPT.js"),require("../../icons/customIcons/icons/GuidedFrac.js");var l=require("./AutocompleteInput/AutocompleteInput.js"),a=require("./AutocompletePaper.js"),p=require("./utils.js"),m=require("./AutocompleteMenuItem.js"),d=require("./AutocompleteListBox.js"),j=require("./Autocomplete.scss.js"),I=require("../Menu/Menu.js"),q=require("react/jsx-runtime");function f(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var O=f(e),b=f(o),C=f(s),v=f(n),h=f(t);function g(e,o){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);o&&(n=n.filter((function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable}))),s.push.apply(s,n)}return s}function A(e){for(var o=1;o<arguments.length;o++){var s=null!=arguments[o]?arguments[o]:{};o%2?g(Object(s),!0).forEach((function(o){O.default(e,o,s[o])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):g(Object(s)).forEach((function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(s,o))}))}return e}var y=function(e){var o=e.label,s=e.options,n=void 0===s?[]:s,t=e.value,f=e.onChange,g=e.multiple,y=e.renderOption,x=void 0===y?p.renderOptionDefault:y,P=e.optionSize,M=void 0===P?"medium":P,k=e.showPopupIcon,F=void 0===k||k,D=e.clearable,S=void 0===D||D,R=e.loading,N=e.noOptionsMessage,w=e.filterOptions,z=e.prefix,T=e.disabled,V=e.getOptionDisabled,B=e.renderSelected,E=void 0===B?p.renderSelectedValue:B,L=e.onInputChange,G=e.className,U=e.testId,K=e.status,W=e.message,_=e.useAllOption,Z=void 0!==_&&_,H=e.useOnlyOptionButton,J=void 0!==H&&H,Q=e.groupBy,X=e.renderGroup,Y=e.disableFiltering,$=e.onCreate,ee=e.dropdownClassName,oe=e.popperProps,se=e.placeholder,ne=e.focusOnClear,ie=void 0===ne||ne,ce=e.listboxComponent,te=e.size,re=void 0===te?"small":te,ue=e.labelPlacement,le=void 0===ue?"top":ue,ae=e.elementsClassNames,pe=e.htmlAttributes,me=e.onOpen,de=e.onClose,je=e.type,Ie=e.spacing,qe=e.isNext,fe=c.useState(""),Oe=v.default(fe,2),be=Oe[0],Ce=Oe[1],ve=c.useState(!1),he=v.default(ve,2),ge=he[0],Ae=he[1],ye=c.useRef(""),xe=c.useCallback((function(){Ae(!0),null==me||me()}),[me]),Pe=c.useCallback((function(e,o){Ae(!1),null==de||de(o)}),[de]),Me=c.useMemo((function(){return new Map(n.map((function(e){return[e.id,e]})))}),[n]),ke=c.useMemo((function(){if(void 0===t||t instanceof Array&&0===t.length)return g?[]:null;var e=t instanceof Array?t:[t];return g?e.map((function(e){return"object"===C.default(e)?{id:e.id,title:e.title}:Me.get(e)})).filter((function(e){return void 0!==e})):"object"===C.default(e[0])?e[0]:n.find((function(o){return e[0]===o.id}))||null}),[g,t,n,Me]),Fe=ke instanceof Array&&ke.length>0,De=ke instanceof Array&&ke.length===n.length,Se=R?"Loading ...":"No options",Re=!S||!ke||ke instanceof Array&&!(null!=ke&&ke.length),Ne=c.useCallback((function(e,o,s){if("clear"!==s||ie||(e.stopPropagation(),e.preventDefault()),$&&o){var i=(o instanceof Array?o:[o]).find((function(e){return!p.isRealOption(e)&&!!e[p.CreateOptionMark]}));if(i)return Pe(void 0,"select-option"),void $(i.newOptionTitle||"")}if(g&&o instanceof Array&&o.some((function(e){return!p.isRealOption(e)&&!!e[p.AllOptionMark]})))return void(ke instanceof Array&&ke.length<n.length?null==f||f(n.filter(p.isRealOption),s,e):null==f||f([],s,e));null==f||f(o||void 0,s,e)}),[ie,$,g,f,ke,n,Pe]),we=c.useCallback((function(e,o){return null==f?void 0:f([e],"select-only-option",o)}),[f]),ze=c.useCallback((function(e,o){var s=o.selected;return p.isRealOption(e)?q.jsx(m.AutocompleteMenuItem,{size:M,selected:s,prefix:e.prefix,multiple:g,useOnlyButton:J,option:e,onSelectOnly:we,children:x(e)}):e[p.AllOptionMark]?q.jsxs("div",{className:j.allOptionContainer,children:[q.jsx(m.AutocompleteMenuItem,{size:M,selected:Fe,indeterminate:Fe&&!De,multiple:!0,children:e.title}),q.jsx(I.Menu.Divider,{className:j.allOptionDivider})]}):q.jsx(m.AutocompleteMenuItem,{size:M,selected:Fe,children:e.title})}),[M,g,J,we,x,Fe,De]),Te=c.useCallback((function(e,o){var s,n=w?w(e,o.inputValue):i.createFilterOptions()(e,o),c=Z&&g&&n.length&&e.length>1?[O.default({title:"All"},p.AllOptionMark,!0)].concat(b.default(n)):n;return $&&""!==o.inputValue.trim()?[].concat(b.default(c),[(s={title:'Add "'.concat(o.inputValue,'"')},O.default(s,p.CreateOptionMark,!0),O.default(s,"newOptionTitle",o.inputValue),s)]):c}),[w,$,Z,g]),Ve=c.useCallback((function(e){return p.isRealOption(e)&&!(null==V||!V(e))}),[V]),Be=c.useCallback((function(e){return e.title}),[]),Ee=c.useCallback((function(e,o){var s=e.filter(p.isRealOption).map((function(e,s){return{option:e,onDelete:o({index:s}).onDelete}}));return E(s,{useAllOption:Z,allOptions:n})}),[E,Z,n]),Le=c.useCallback((function(e,o,s){e&&"blur"===e.type?(Ce(""),ye.current=o):"reset"!==s&&(Ce(o),ye.current=o),"reset"!==s&&(null==L||L(o,e))}),[L]),Ge=c.useMemo((function(){if(Q)return function(e){return p.isRealOption(e)?Q(e):""}}),[Q]),Ue=c.useMemo((function(){return{paper:ee}}),[ee]),Ke=c.useCallback((function(e,o){return!(!p.isRealOption(e)||!p.isRealOption(o))&&e.id===o.id}),[]),We=i.Autocomplete,_e=c.useCallback((function(e){return q.jsx(r.Popper,A(A(A({},e),oe),{},{className:h.default(null==e?void 0:e.className,null==oe?void 0:oe.className)}))}),[oe]),Ze=c.useCallback((function(e){if("Enter"===e.code&&$){var o,s,i=Te(n,{inputValue:ye.current,getOptionLabel:Be});if(1===i.length&&!p.isRealOption(i[0])&&i[0][p.CreateOptionMark])Pe(void 0,"select-option"),$(i[0].newOptionTitle||""),null===(o=document.activeElement)||void 0===o||null===(s=o.blur)||void 0===s||s.call(o)}}),[$,Te,Be,Pe,n]),He=c.useCallback((function(e){return q.jsx(l.AutocompleteInput,A(A({},e),{},{label:o,loading:R,prefix:z,status:K,message:W,readOnly:Y,placeholder:se,size:re,labelPlacement:le,elementsClassNames:ae,htmlAttributes:pe,type:je,spacing:Ie,isNext:qe,onKeyUp:Ze}))}),[o,R,z,K,W,Y,se,re,le,ae,pe,je,Ie,qe,Ze]);return q.jsx("div",{className:h.default(j.root,F&&j.withArrow,!Re&&j.withClear,G),"data-testid":U,children:q.jsx(We,{value:ke,options:n,getOptionLabel:Be,renderInput:He,PopperComponent:_e,PaperComponent:a.AutocompletePaper,multiple:g,disableCloseOnSelect:g,blurOnSelect:!g,onChange:Ne,renderOption:ze,popupIcon:q.jsx(u.DownIcon,{size:16}),forcePopupIcon:F,closeIcon:q.jsx(u.CloseSmallIcon,{size:16}),disableClearable:Re,clearText:"",noOptionsText:N||Se,filterOptions:Te,disabled:T,getOptionDisabled:Ve,renderTags:Ee,inputValue:g?be:void 0,onInputChange:Le,groupBy:Ge,renderGroup:X,clearOnBlur:!0,selectOnFocus:!Y,classes:Ue,getOptionSelected:Ke,ListboxComponent:null!=ce?ce:d.AutocompleteListBox,onOpen:xe,onClose:Pe,open:ge})})},x=function(e){return y(A(A({},e),{},{isNext:!0}))};x.selectedValueRenderers={default:p.renderSelectedValue,chipsMultiline:p.renderSelectedValueChips},exports.Autocomplete=function(e){return y(A(A({},e),{},{isNext:!1}))},exports.AutocompleteNext=x;
|
|
2
2
|
//# sourceMappingURL=Autocomplete.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Autocomplete.js","sources":["../../../../src/componentsV2/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import {\n Autocomplete as MuiAutocomplete,\n AutocompleteChangeReason as MuiAutocompleteChangeReason,\n AutocompleteCloseReason as MuiAutocompleteCloseReason,\n AutocompleteProps as MuiAutocompleteBaseProps,\n AutocompleteRenderGroupParams,\n AutocompleteRenderInputParams,\n createFilterOptions,\n} from '@material-ui/lab';\nimport {\n ChangeEvent,\n ComponentType,\n HTMLAttributes,\n MouseEventHandler,\n ReactNode,\n useCallback,\n useMemo,\n useState,\n} from 'react';\nimport classNames from 'classnames';\n\nimport { Popper, PopperProps } from '../Popper';\nimport { MenuItemProps } from '../Menu/MenuItem';\nimport { CloseSmallIcon, DownIcon } from '../../icons';\nimport { TextInputNextProps } from '../TextInputNext';\nimport { TextInputProps } from '../TextInput';\n\nimport { AutocompleteInput } from './AutocompleteInput';\nimport { AutocompletePaper } from './AutocompletePaper';\nimport {\n AllOptionMark,\n AutocompleteOption,\n CreateOptionMark,\n InternalOption,\n isRealOption,\n OwnAddedOption,\n renderOptionDefault,\n renderSelectedValue,\n renderSelectedValueChips,\n} from './utils';\nimport { AutocompleteMenuItem } from './AutocompleteMenuItem';\nimport { AutocompleteListBox } from './AutocompleteListBox';\n\nimport styles from './Autocomplete.scss';\nimport { Menu } from '../Menu';\n\ntype MuiAutocompleteProps<T extends AutocompleteOption> = Required<\n MuiAutocompleteBaseProps<InternalOption<T>, boolean, false, false>\n>;\n\ntype ChangeReason =\n | MuiAutocompleteChangeReason\n | 'select-option-all'\n | 'remove-option-all'\n | 'select-only-option';\ntype AutocompletePopperProps = Omit<PopperProps, 'open' | 'anchorEl' | 'children'>;\n\ntype AutocompleteBaseProps<\n T extends AutocompleteOption = AutocompleteOption,\n Multiple extends boolean | undefined = false\n> = {\n /**\n * Options to allow selection from. Has to be assignable to `{ id: string | number; title: string; prefix?: ReactNode; }[]`\n */\n options?: T[];\n /**\n * Selected value. If `multiple` is `false | undefined`, and the value is an array, only the first element will be used\n *\n * There's a [bug in TS](https://github.com/microsoft/TypeScript/issues/47599) which causes `onChange` prop\n * to have incorrect typing if we mix T and T['id'] in `value`. Therefore, we can't use the \"correct\" typing\n * ```\n * value?: T['id'] | T | (T['id'] | T)[];\n * ```\n *\n * You may need to provide additional typings\n */\n value?: string | number | T | (string | number | T)[];\n /**\n * If `true`, the component will support multiple selection\n */\n multiple?: Multiple;\n /**\n * Selection change handler\n * Receives an array of options if `multiple` is `true`, a single selected option or `undefined` otherwise\n */\n onChange?: (\n value: Multiple extends undefined | false ? T | undefined : T[],\n reason: ChangeReason,\n event?: ChangeEvent<unknown>\n ) => void;\n label?: ReactNode;\n placeholder?: string;\n /**\n * Controls the size of the options rendered\n */\n optionSize?: MenuItemProps['size'];\n disabled?: boolean;\n /**\n * If exists - allows user to create own options. Called when 'Add \"whatever\"' option is selected\n */\n onCreate?: (title: string) => void;\n\n prefix?: ReactNode;\n loading?: boolean;\n showPopupIcon?: boolean;\n /**\n * Controls the \"Clear\" button that's shown to the right if there is a value\n */\n clearable?: boolean;\n /**\n * Controls if the field should keep/gain focus after \"Clear\" button is clicked\n */\n focusOnClear?: boolean;\n /**\n * Triggered when user types something\n */\n onInputChange?: (value: string, event: ChangeEvent<HTMLInputElement>) => void;\n status?: TextInputNextProps['status'];\n message?: TextInputNextProps['message'];\n size?: TextInputNextProps['size'];\n labelPlacement?: TextInputNextProps['labelPlacement'];\n /**\n * Makes internal text field readonly, effectively turning component into a simple `<select/>`\n */\n disableFiltering?: boolean;\n\n renderOption?: (item: T) => ReactNode;\n /**\n * Message to show when there are no options\n */\n noOptionsMessage?: ReactNode;\n spacing?: TextInputProps['spacing'];\n /**\n * Function that filters options based on input value\n */\n filterOptions?: (options: T[], inputValue: string) => T[];\n /**\n * Function that determines if an option is disabled. Used to override the default\n * @param option\n */\n getOptionDisabled?: (option: T) => boolean;\n /**\n * If `multiple === true` shows an \"All\" option that selects/deselects all options\n */\n useAllOption?: boolean;\n /**\n * If `multiple === true` shows a \"Select Only\" button on option that selects only the corresponding option\n */\n useOnlyOptionButton?: boolean;\n\n /**\n * Used to render selected values when `multiple === true`\n */\n renderSelected?: (\n data: { option: T; onDelete: MouseEventHandler }[],\n options: { useAllOption: boolean; allOptions: T[] }\n ) => ReactNode;\n\n /**\n * Defines option grouping\n */\n groupBy?: (option: T) => string;\n /**\n * Group render override\n */\n renderGroup?: (props: AutocompleteRenderGroupParams) => ReactNode;\n\n /**\n * A classname that will be applied to dropdown (`<Paper/>` component)\n */\n dropdownClassName?: string;\n /**\n * Escape hatch to customize dropdown popper behavior.\n * `open`, `anchorEl`, and `children` are controlled internally.\n */\n popperProps?: Partial<AutocompletePopperProps>;\n\n type?: 'default' | 'search';\n\n className?: string;\n testId?: string;\n\n /**\n * Called when the dropdown is opened\n */\n onOpen?: () => void;\n /**\n * Called when the dropdown is closed\n */\n onClose?: (reason: MuiAutocompleteCloseReason) => void;\n\n /**\n * Escape hatch to fine-tune the styling of underlying elements\n */\n elementsClassNames?: TextInputNextProps['elementsClassNames'];\n\n /** HTML attributes forwarded to the underlying input. */\n htmlAttributes?: TextInputNextProps['htmlAttributes'];\n\n /**\n * Custom listbox component for rendering options (e.g., virtualized list)\n */\n listboxComponent?: ComponentType<HTMLAttributes<HTMLElement>>;\n\n // TODO Remove when making next a new baseline\n isNext?: boolean;\n};\n\nexport type AutocompleteChangeHandler<\n Option extends AutocompleteOption = AutocompleteOption,\n Multiple extends boolean | undefined = false\n> = Required<AutocompleteBaseProps<Option, Multiple>>['onChange'];\n\nconst AutocompleteBase = <\n T extends AutocompleteOption,\n Multiple extends boolean | undefined = false\n>({\n label,\n options = [],\n value,\n onChange,\n multiple,\n renderOption = renderOptionDefault,\n optionSize = 'medium',\n showPopupIcon = true,\n clearable = true,\n loading,\n noOptionsMessage,\n filterOptions,\n prefix,\n disabled,\n getOptionDisabled,\n renderSelected = renderSelectedValue,\n onInputChange,\n className,\n testId,\n status,\n message,\n useAllOption = false,\n useOnlyOptionButton = false,\n groupBy,\n renderGroup,\n disableFiltering,\n onCreate,\n dropdownClassName,\n popperProps,\n placeholder,\n focusOnClear = true,\n listboxComponent,\n size = 'small',\n labelPlacement = 'top',\n elementsClassNames,\n htmlAttributes,\n onOpen,\n onClose,\n\n // Old props\n type,\n spacing,\n isNext,\n}: AutocompleteBaseProps<T, Multiple>) => {\n const [inputValue, setInputValue] = useState('');\n\n const muiValue = useMemo(() => {\n if (value === undefined || (value instanceof Array && value.length === 0)) {\n return multiple ? [] : null;\n }\n\n // Array of either ids or actual values\n const mixedValues = value instanceof Array ? value : [value];\n\n if (multiple) {\n const valuesArray = mixedValues.filter(value => typeof value !== 'object');\n const objectValues = mixedValues\n .filter(value => typeof value === 'object')\n // MUI Autocomplete doesn't like react nodes in value, so we strip everything from the object to the bare minimum\n .map(({ id, title }) => ({ id, title }));\n const optionsById = options.filter(option => valuesArray.includes(option.id));\n\n return [...optionsById, ...objectValues];\n } else {\n return typeof mixedValues[0] === 'object'\n ? mixedValues[0]\n : options.find(option => mixedValues[0] === option.id) || null;\n }\n }, [multiple, value, options]) as MuiAutocompleteBaseProps<T, Multiple, false, false>['value'];\n\n const hasMultiSelected = muiValue instanceof Array && muiValue.length > 0;\n const hasAllMultiSelected = muiValue instanceof Array && muiValue.length === options.length;\n const defaultNoOptionsText = loading ? 'Loading ...' : 'No options';\n const disableClearable =\n !clearable || !muiValue || (muiValue instanceof Array && !muiValue?.length);\n\n const renderInput = useCallback(\n (inputProps: AutocompleteRenderInputParams) => (\n <AutocompleteInput\n {...inputProps}\n label={label}\n loading={loading}\n prefix={prefix}\n status={status}\n message={message}\n readOnly={disableFiltering}\n placeholder={placeholder}\n size={size}\n labelPlacement={labelPlacement}\n elementsClassNames={elementsClassNames}\n htmlAttributes={htmlAttributes}\n // Old props\n type={type}\n spacing={spacing}\n isNext={isNext}\n />\n ),\n [\n label,\n loading,\n prefix,\n status,\n message,\n disableFiltering,\n placeholder,\n size,\n labelPlacement,\n elementsClassNames,\n htmlAttributes,\n type,\n spacing,\n isNext,\n ]\n );\n\n const actualOnChange = useCallback<MuiAutocompleteProps<T>['onChange']>(\n (event, optionOrArray, reason) => {\n if (reason === 'clear' && !focusOnClear) {\n event.stopPropagation();\n event.preventDefault();\n }\n\n // Handling of \"Add\" option\n if (onCreate && optionOrArray) {\n const optionArray = optionOrArray instanceof Array ? optionOrArray : [optionOrArray];\n const foundAddOption: OwnAddedOption | undefined = optionArray.find(\n option => !isRealOption(option) && !!option[CreateOptionMark]\n );\n\n if (foundAddOption) {\n onCreate(foundAddOption.newOptionTitle || '');\n return;\n }\n }\n\n // Handling of \"All\" option - only multiselect\n if (multiple && optionOrArray instanceof Array) {\n const allOptionExists = optionOrArray.some(\n option => !isRealOption(option) && !!option[AllOptionMark]\n );\n\n if (allOptionExists) {\n // Selecting \"All\"\n if (muiValue instanceof Array && muiValue.length < options.length) {\n onChange?.(options.filter(isRealOption) as never, reason, event);\n }\n // Deselecting \"All\"\n else {\n onChange?.([] as never, reason, event);\n }\n return;\n }\n }\n\n onChange?.((optionOrArray || undefined) as never, reason, event);\n },\n [focusOnClear, onCreate, multiple, onChange, muiValue, options]\n );\n\n const onSelectOnly = useCallback(\n (option: T, event: ChangeEvent<object>) =>\n onChange?.([option] as never, 'select-only-option', event),\n [onChange]\n );\n\n const actualRenderOption = useCallback<MuiAutocompleteProps<T>['renderOption']>(\n (option: InternalOption<T>, { selected }) => {\n if (isRealOption(option)) {\n return (\n <AutocompleteMenuItem\n size={optionSize}\n selected={selected}\n prefix={option.prefix}\n multiple={multiple}\n useOnlyButton={useOnlyOptionButton}\n option={option}\n onSelectOnly={onSelectOnly}\n >\n {renderOption(option)}\n </AutocompleteMenuItem>\n );\n } else if (option[AllOptionMark]) {\n return (\n <div className={styles.allOptionContainer}>\n <AutocompleteMenuItem\n size={optionSize}\n selected={hasMultiSelected}\n indeterminate={hasMultiSelected && !hasAllMultiSelected}\n multiple\n >\n {option.title}\n </AutocompleteMenuItem>\n <Menu.Divider className={styles.allOptionDivider} />\n </div>\n );\n } else {\n return (\n <AutocompleteMenuItem size={optionSize} selected={hasMultiSelected}>\n {option.title}\n </AutocompleteMenuItem>\n );\n }\n },\n [\n optionSize,\n multiple,\n useOnlyOptionButton,\n onSelectOnly,\n renderOption,\n hasMultiSelected,\n hasAllMultiSelected,\n ]\n );\n\n const actualFilterOptions = useCallback<MuiAutocompleteProps<T>['filterOptions']>(\n (options, params): InternalOption<T>[] => {\n const filteredOptions = filterOptions\n ? filterOptions(options as T[], params.inputValue)\n : createFilterOptions<T>()(options as T[], params);\n\n // Adding \"All\" option if needed\n const optionsWithAll =\n useAllOption && multiple && filteredOptions.length && options.length > 1\n ? [{ title: 'All', [AllOptionMark]: true }, ...filteredOptions]\n : filteredOptions;\n\n // Adding \"Add\" option if needed\n return onCreate && params.inputValue.trim() !== ''\n ? [\n ...optionsWithAll,\n {\n title: `Add \"${params.inputValue}\"`,\n [CreateOptionMark]: true,\n newOptionTitle: params.inputValue,\n },\n ]\n : optionsWithAll;\n },\n [filterOptions, onCreate, useAllOption, multiple]\n );\n\n const actualGetOptionDisabled = useCallback<MuiAutocompleteProps<T>['getOptionDisabled']>(\n option => isRealOption(option) && !!getOptionDisabled?.(option),\n [getOptionDisabled]\n );\n\n const getOptionLabel = useCallback<MuiAutocompleteProps<T>['getOptionLabel']>(\n option => option.title,\n []\n );\n\n const renderTags = useCallback<MuiAutocompleteProps<T>['renderTags']>(\n (tags, getTagProps) => {\n const tagsArray = tags.filter(isRealOption).map((option, index) => {\n // Untyped in MUI, so we have to do it ourselves\n const { onDelete } = getTagProps({ index }) as { onDelete: MouseEventHandler };\n return { option, onDelete };\n });\n\n return renderSelected(tagsArray, { useAllOption, allOptions: options });\n },\n [renderSelected, useAllOption, options]\n );\n\n const actualOnInputChange = useCallback<MuiAutocompleteProps<T>['onInputChange']>(\n (event, value, reason) => {\n if (event && event.type === 'blur') {\n setInputValue('');\n } else if (reason !== 'reset') {\n setInputValue(value);\n }\n\n if (reason !== 'reset') {\n onInputChange?.(value, event as ChangeEvent<HTMLInputElement>);\n }\n },\n [onInputChange]\n );\n\n const actualGroupBy = useMemo<MuiAutocompleteProps<T>['groupBy'] | undefined>(() => {\n if (groupBy) {\n return option => {\n if (isRealOption(option)) {\n return groupBy(option);\n }\n\n return '';\n };\n }\n\n return undefined;\n }, [groupBy]);\n\n const classes = useMemo(() => ({ paper: dropdownClassName }), [dropdownClassName]);\n\n const getOptionSelected = useCallback((a: InternalOption<T>, b: InternalOption<T>) => {\n return isRealOption(a) && isRealOption(b) ? a.id === b.id : false;\n }, []);\n\n const Component = MuiAutocomplete<InternalOption<T>, Multiple, boolean, false>;\n\n const PopperComponent = useCallback(\n (props: PopperProps) => (\n <Popper\n {...props}\n {...popperProps}\n className={classNames(props?.className, popperProps?.className)}\n />\n ),\n [popperProps]\n ) as NonNullable<MuiAutocompleteProps<T>['PopperComponent']>;\n\n const actualOnOpen = useCallback<MuiAutocompleteProps<T>['onOpen']>(() => {\n onOpen?.();\n }, [onOpen]);\n\n const actualOnClose = useCallback<MuiAutocompleteProps<T>['onClose']>(\n (_e, reason) => {\n onClose?.(reason);\n },\n [onClose]\n );\n\n return (\n <div\n className={classNames(\n styles.root,\n showPopupIcon && styles.withArrow,\n !disableClearable && styles.withClear,\n className\n )}\n data-testid={testId}\n >\n <Component\n value={muiValue}\n options={options}\n getOptionLabel={getOptionLabel}\n renderInput={renderInput}\n PopperComponent={PopperComponent}\n PaperComponent={AutocompletePaper}\n multiple={multiple}\n disableCloseOnSelect={multiple}\n blurOnSelect={!multiple}\n onChange={actualOnChange}\n renderOption={actualRenderOption}\n popupIcon={<DownIcon size={16} />}\n forcePopupIcon={!!showPopupIcon}\n closeIcon={<CloseSmallIcon size={16} />}\n disableClearable={disableClearable}\n clearText=\"\"\n noOptionsText={noOptionsMessage || defaultNoOptionsText}\n filterOptions={actualFilterOptions}\n disabled={disabled}\n getOptionDisabled={actualGetOptionDisabled}\n renderTags={renderTags}\n inputValue={multiple ? inputValue : undefined}\n onInputChange={actualOnInputChange}\n groupBy={actualGroupBy}\n renderGroup={renderGroup}\n clearOnBlur\n selectOnFocus={!disableFiltering}\n classes={classes}\n getOptionSelected={getOptionSelected}\n ListboxComponent={listboxComponent ?? AutocompleteListBox}\n onOpen={actualOnOpen}\n onClose={actualOnClose}\n />\n </div>\n );\n};\n\n// Old version\n/**\n * @deprecated use `AutocompleteNext`, and see migration guide for `TextInputNext` for details\n */\nexport type AutocompleteProps<\n T extends AutocompleteOption = AutocompleteOption,\n Multiple extends boolean | undefined = false\n> = Omit<\n AutocompleteBaseProps<T, Multiple>,\n 'size' | 'labelPlacement' | 'elementsClassNames' | 'htmlAttributes' | 'isNext'\n>;\n\n/**\n * @deprecated use `AutocompleteNext`, and see migration guide for `TextInputNext` for details\n */\nexport const Autocomplete = <\n T extends AutocompleteOption,\n Multiple extends boolean | undefined = false\n>(\n props: AutocompleteProps<T, Multiple>\n) => AutocompleteBase<T, Multiple>({ ...props, isNext: false });\n\n// New version\nexport type AutocompleteNextProps<\n T extends AutocompleteOption = AutocompleteOption,\n Multiple extends boolean | undefined = false\n> = Omit<AutocompleteBaseProps<T, Multiple>, 'type' | 'spacing' | 'isNext'>;\n\nexport const AutocompleteNext = <\n T extends AutocompleteOption,\n Multiple extends boolean | undefined = false\n>(\n props: AutocompleteNextProps<T, Multiple>\n) => AutocompleteBase<T, Multiple>({ ...props, isNext: true });\n\nAutocompleteNext.selectedValueRenderers = {\n default: renderSelectedValue,\n chipsMultiline: renderSelectedValueChips,\n};\n"],"names":["AutocompleteBase","_ref","label","_ref$options","options","value","onChange","multiple","_ref$renderOption","renderOption","renderOptionDefault","_ref$optionSize","optionSize","_ref$showPopupIcon","showPopupIcon","_ref$clearable","clearable","loading","noOptionsMessage","filterOptions","prefix","disabled","getOptionDisabled","_ref$renderSelected","renderSelected","renderSelectedValue","onInputChange","className","testId","status","message","_ref$useAllOption","useAllOption","_ref$useOnlyOptionBut","useOnlyOptionButton","groupBy","renderGroup","disableFiltering","onCreate","dropdownClassName","popperProps","placeholder","_ref$focusOnClear","focusOnClear","listboxComponent","_ref$size","size","_ref$labelPlacement","labelPlacement","elementsClassNames","htmlAttributes","onOpen","onClose","type","spacing","isNext","useState","_useState2","_slicedToArray","_useState","inputValue","setInputValue","muiValue","useMemo","undefined","Array","length","mixedValues","valuesArray","filter","_typeof","objectValues","map","_ref2","id","title","optionsById","option","includes","find","hasMultiSelected","hasAllMultiSelected","defaultNoOptionsText","disableClearable","renderInput","useCallback","inputProps","_jsx","AutocompleteInput","_objectSpread","readOnly","actualOnChange","event","optionOrArray","reason","stopPropagation","preventDefault","foundAddOption","isRealOption","CreateOptionMark","newOptionTitle","some","AllOptionMark","onSelectOnly","actualRenderOption","_ref3","selected","AutocompleteMenuItem","useOnlyButton","children","_jsxs","styles","allOptionContainer","indeterminate","Menu","Divider","allOptionDivider","actualFilterOptions","params","_ref5","filteredOptions","createFilterOptions","optionsWithAll","_defineProperty","trim","concat","_toConsumableArray","actualGetOptionDisabled","getOptionLabel","renderTags","tags","getTagProps","tagsArray","index","onDelete","allOptions","actualOnInputChange","actualGroupBy","classes","paper","getOptionSelected","a","b","Component","MuiAutocomplete","PopperComponent","props","Popper","classNames","actualOnOpen","actualOnClose","_e","root","withArrow","withClear","PaperComponent","AutocompletePaper","disableCloseOnSelect","blurOnSelect","popupIcon","DownIcon","forcePopupIcon","closeIcon","CloseSmallIcon","clearText","noOptionsText","clearOnBlur","selectOnFocus","ListboxComponent","AutocompleteListBox","AutocompleteNext","selectedValueRenderers","default","chipsMultiline","renderSelectedValueChips"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Autocomplete.js","sources":["../../../../src/componentsV2/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import {\n Autocomplete as MuiAutocomplete,\n AutocompleteChangeReason as MuiAutocompleteChangeReason,\n AutocompleteCloseReason as MuiAutocompleteCloseReason,\n AutocompleteProps as MuiAutocompleteBaseProps,\n AutocompleteRenderGroupParams,\n AutocompleteRenderInputParams,\n createFilterOptions,\n} from '@material-ui/lab';\nimport {\n ChangeEvent,\n ComponentType,\n HTMLAttributes,\n KeyboardEventHandler,\n MouseEventHandler,\n ReactNode,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport classNames from 'classnames';\n\nimport { Popper, PopperProps } from '../Popper';\nimport { MenuItemProps } from '../Menu/MenuItem';\nimport { CloseSmallIcon, DownIcon } from '../../icons';\nimport { TextInputNextProps } from '../TextInputNext';\nimport { TextInputProps } from '../TextInput';\n\nimport { AutocompleteInput } from './AutocompleteInput';\nimport { AutocompletePaper } from './AutocompletePaper';\nimport {\n AllOptionMark,\n AutocompleteOption,\n CreateOptionMark,\n InternalOption,\n isRealOption,\n OwnAddedOption,\n renderOptionDefault,\n renderSelectedValue,\n renderSelectedValueChips,\n} from './utils';\nimport { AutocompleteMenuItem } from './AutocompleteMenuItem';\nimport { AutocompleteListBox } from './AutocompleteListBox';\n\nimport styles from './Autocomplete.scss';\nimport { Menu } from '../Menu';\n\ntype MuiAutocompleteProps<T extends AutocompleteOption> = Required<\n MuiAutocompleteBaseProps<InternalOption<T>, boolean, false, false>\n>;\n\ntype ChangeReason =\n | MuiAutocompleteChangeReason\n | 'select-option-all'\n | 'remove-option-all'\n | 'select-only-option';\ntype AutocompletePopperProps = Omit<PopperProps, 'open' | 'anchorEl' | 'children'>;\n\ntype AutocompleteBaseProps<\n T extends AutocompleteOption = AutocompleteOption,\n Multiple extends boolean | undefined = false\n> = {\n /**\n * Options to allow selection from. Has to be assignable to `{ id: string | number; title: string; prefix?: ReactNode; }[]`\n */\n options?: T[];\n /**\n * Selected value. If `multiple` is `false | undefined`, and the value is an array, only the first element will be used\n *\n * There's a [bug in TS](https://github.com/microsoft/TypeScript/issues/47599) which causes `onChange` prop\n * to have incorrect typing if we mix T and T['id'] in `value`. Therefore, we can't use the \"correct\" typing\n * ```\n * value?: T['id'] | T | (T['id'] | T)[];\n * ```\n *\n * You may need to provide additional typings\n */\n value?: string | number | T | (string | number | T)[];\n /**\n * If `true`, the component will support multiple selection\n */\n multiple?: Multiple;\n /**\n * Selection change handler\n * Receives an array of options if `multiple` is `true`, a single selected option or `undefined` otherwise\n */\n onChange?: (\n value: Multiple extends undefined | false ? T | undefined : T[],\n reason: ChangeReason,\n event?: ChangeEvent<unknown>\n ) => void;\n label?: ReactNode;\n placeholder?: string;\n /**\n * Controls the size of the options rendered\n */\n optionSize?: MenuItemProps['size'];\n disabled?: boolean;\n /**\n * If exists - allows user to create own options. Called when 'Add \"whatever\"' option is selected\n */\n onCreate?: (title: string) => void;\n\n prefix?: ReactNode;\n loading?: boolean;\n showPopupIcon?: boolean;\n /**\n * Controls the \"Clear\" button that's shown to the right if there is a value\n */\n clearable?: boolean;\n /**\n * Controls if the field should keep/gain focus after \"Clear\" button is clicked\n */\n focusOnClear?: boolean;\n /**\n * Triggered when user types something\n */\n onInputChange?: (value: string, event: ChangeEvent<HTMLInputElement>) => void;\n status?: TextInputNextProps['status'];\n message?: TextInputNextProps['message'];\n size?: TextInputNextProps['size'];\n labelPlacement?: TextInputNextProps['labelPlacement'];\n /**\n * Makes internal text field readonly, effectively turning component into a simple `<select/>`\n */\n disableFiltering?: boolean;\n\n renderOption?: (item: T) => ReactNode;\n /**\n * Message to show when there are no options\n */\n noOptionsMessage?: ReactNode;\n spacing?: TextInputProps['spacing'];\n /**\n * Function that filters options based on input value\n */\n filterOptions?: (options: T[], inputValue: string) => T[];\n /**\n * Function that determines if an option is disabled. Used to override the default\n * @param option\n */\n getOptionDisabled?: (option: T) => boolean;\n /**\n * If `multiple === true` shows an \"All\" option that selects/deselects all options\n */\n useAllOption?: boolean;\n /**\n * If `multiple === true` shows a \"Select Only\" button on option that selects only the corresponding option\n */\n useOnlyOptionButton?: boolean;\n\n /**\n * Used to render selected values when `multiple === true`\n */\n renderSelected?: (\n data: { option: T; onDelete: MouseEventHandler }[],\n options: { useAllOption: boolean; allOptions: T[] }\n ) => ReactNode;\n\n /**\n * Defines option grouping\n */\n groupBy?: (option: T) => string;\n /**\n * Group render override\n */\n renderGroup?: (props: AutocompleteRenderGroupParams) => ReactNode;\n\n /**\n * A classname that will be applied to dropdown (`<Paper/>` component)\n */\n dropdownClassName?: string;\n /**\n * Escape hatch to customize dropdown popper behavior.\n * `open`, `anchorEl`, and `children` are controlled internally.\n */\n popperProps?: Partial<AutocompletePopperProps>;\n\n type?: 'default' | 'search';\n\n className?: string;\n testId?: string;\n\n /**\n * Called when the dropdown is opened\n */\n onOpen?: () => void;\n /**\n * Called when the dropdown is closed\n */\n onClose?: (reason: MuiAutocompleteCloseReason) => void;\n\n /**\n * Escape hatch to fine-tune the styling of underlying elements\n */\n elementsClassNames?: TextInputNextProps['elementsClassNames'];\n\n /** HTML attributes forwarded to the underlying input. */\n htmlAttributes?: TextInputNextProps['htmlAttributes'];\n\n /**\n * Custom listbox component for rendering options (e.g., virtualized list)\n */\n listboxComponent?: ComponentType<HTMLAttributes<HTMLElement>>;\n\n // TODO Remove when making next a new baseline\n isNext?: boolean;\n};\n\nexport type AutocompleteChangeHandler<\n Option extends AutocompleteOption = AutocompleteOption,\n Multiple extends boolean | undefined = false\n> = Required<AutocompleteBaseProps<Option, Multiple>>['onChange'];\n\nconst AutocompleteBase = <\n T extends AutocompleteOption,\n Multiple extends boolean | undefined = false\n>({\n label,\n options = [],\n value,\n onChange,\n multiple,\n renderOption = renderOptionDefault,\n optionSize = 'medium',\n showPopupIcon = true,\n clearable = true,\n loading,\n noOptionsMessage,\n filterOptions,\n prefix,\n disabled,\n getOptionDisabled,\n renderSelected = renderSelectedValue,\n onInputChange,\n className,\n testId,\n status,\n message,\n useAllOption = false,\n useOnlyOptionButton = false,\n groupBy,\n renderGroup,\n disableFiltering,\n onCreate,\n dropdownClassName,\n popperProps,\n placeholder,\n focusOnClear = true,\n listboxComponent,\n size = 'small',\n labelPlacement = 'top',\n elementsClassNames,\n htmlAttributes,\n onOpen,\n onClose,\n\n // Old props\n type,\n spacing,\n isNext,\n}: AutocompleteBaseProps<T, Multiple>) => {\n const [inputValue, setInputValue] = useState('');\n const [isOpen, setIsOpen] = useState(false);\n const inputValueRef = useRef('');\n\n const actualOnOpen = useCallback<MuiAutocompleteProps<T>['onOpen']>(() => {\n setIsOpen(true);\n onOpen?.();\n }, [onOpen]);\n\n const actualOnClose = useCallback<(event: unknown, reason: MuiAutocompleteCloseReason) => void>(\n (_e, reason) => {\n setIsOpen(false);\n onClose?.(reason);\n },\n [onClose]\n );\n\n const optionsById = useMemo(() => new Map(options.map(option => [option.id, option])), [options]);\n\n const muiValue = useMemo(() => {\n if (value === undefined || (value instanceof Array && value.length === 0)) {\n return multiple ? [] : null;\n }\n\n // Array of either ids or actual values\n const mixedValues = value instanceof Array ? value : [value];\n\n if (multiple) {\n return mixedValues\n .map(objOrId => {\n if (typeof objOrId === 'object') {\n // MUI Autocomplete doesn't like react nodes in value, so we strip everything from the object to the bare minimum\n const { id, title } = objOrId;\n return { id, title };\n } else {\n return optionsById.get(objOrId);\n }\n })\n .filter(item => item !== undefined);\n } else {\n return typeof mixedValues[0] === 'object'\n ? mixedValues[0]\n : options.find(option => mixedValues[0] === option.id) || null;\n }\n }, [multiple, value, options, optionsById]) as MuiAutocompleteBaseProps<\n T,\n Multiple,\n false,\n false\n >['value'];\n\n const hasMultiSelected = muiValue instanceof Array && muiValue.length > 0;\n const hasAllMultiSelected = muiValue instanceof Array && muiValue.length === options.length;\n const defaultNoOptionsText = loading ? 'Loading ...' : 'No options';\n const disableClearable =\n !clearable || !muiValue || (muiValue instanceof Array && !muiValue?.length);\n\n const actualOnChange = useCallback<MuiAutocompleteProps<T>['onChange']>(\n (event, optionOrArray, reason) => {\n if (reason === 'clear' && !focusOnClear) {\n event.stopPropagation();\n event.preventDefault();\n }\n\n // Handling of \"Add\" option\n if (onCreate && optionOrArray) {\n const optionArray = optionOrArray instanceof Array ? optionOrArray : [optionOrArray];\n const foundAddOption: OwnAddedOption | undefined = optionArray.find(\n option => !isRealOption(option) && !!option[CreateOptionMark]\n );\n\n if (foundAddOption) {\n actualOnClose(undefined, 'select-option');\n onCreate(foundAddOption.newOptionTitle || '');\n return;\n }\n }\n\n // Handling of \"All\" option - only multiselect\n if (multiple && optionOrArray instanceof Array) {\n const allOptionExists = optionOrArray.some(\n option => !isRealOption(option) && !!option[AllOptionMark]\n );\n\n if (allOptionExists) {\n // Selecting \"All\"\n if (muiValue instanceof Array && muiValue.length < options.length) {\n onChange?.(options.filter(isRealOption) as never, reason, event);\n }\n // Deselecting \"All\"\n else {\n onChange?.([] as never, reason, event);\n }\n return;\n }\n }\n\n onChange?.((optionOrArray || undefined) as never, reason, event);\n },\n [focusOnClear, onCreate, multiple, onChange, muiValue, options, actualOnClose]\n );\n\n const onSelectOnly = useCallback(\n (option: T, event: ChangeEvent<object>) =>\n onChange?.([option] as never, 'select-only-option', event),\n [onChange]\n );\n\n const actualRenderOption = useCallback<MuiAutocompleteProps<T>['renderOption']>(\n (option: InternalOption<T>, { selected }) => {\n if (isRealOption(option)) {\n return (\n <AutocompleteMenuItem\n size={optionSize}\n selected={selected}\n prefix={option.prefix}\n multiple={multiple}\n useOnlyButton={useOnlyOptionButton}\n option={option}\n onSelectOnly={onSelectOnly}\n >\n {renderOption(option)}\n </AutocompleteMenuItem>\n );\n } else if (option[AllOptionMark]) {\n return (\n <div className={styles.allOptionContainer}>\n <AutocompleteMenuItem\n size={optionSize}\n selected={hasMultiSelected}\n indeterminate={hasMultiSelected && !hasAllMultiSelected}\n multiple\n >\n {option.title}\n </AutocompleteMenuItem>\n <Menu.Divider className={styles.allOptionDivider} />\n </div>\n );\n } else {\n return (\n <AutocompleteMenuItem size={optionSize} selected={hasMultiSelected}>\n {option.title}\n </AutocompleteMenuItem>\n );\n }\n },\n [\n optionSize,\n multiple,\n useOnlyOptionButton,\n onSelectOnly,\n renderOption,\n hasMultiSelected,\n hasAllMultiSelected,\n ]\n );\n\n const actualFilterOptions = useCallback<MuiAutocompleteProps<T>['filterOptions']>(\n (options, params): InternalOption<T>[] => {\n const filteredOptions = filterOptions\n ? filterOptions(options as T[], params.inputValue)\n : createFilterOptions<T>()(options as T[], params);\n\n // Adding \"All\" option if needed\n const optionsWithAll =\n useAllOption && multiple && filteredOptions.length && options.length > 1\n ? [{ title: 'All', [AllOptionMark]: true }, ...filteredOptions]\n : filteredOptions;\n\n // Adding \"Add\" option if needed\n return onCreate && params.inputValue.trim() !== ''\n ? [\n ...optionsWithAll,\n {\n title: `Add \"${params.inputValue}\"`,\n [CreateOptionMark]: true,\n newOptionTitle: params.inputValue,\n },\n ]\n : optionsWithAll;\n },\n [filterOptions, onCreate, useAllOption, multiple]\n );\n\n const actualGetOptionDisabled = useCallback<MuiAutocompleteProps<T>['getOptionDisabled']>(\n option => isRealOption(option) && !!getOptionDisabled?.(option),\n [getOptionDisabled]\n );\n\n const getOptionLabel = useCallback<MuiAutocompleteProps<T>['getOptionLabel']>(\n option => option.title,\n []\n );\n\n const renderTags = useCallback<MuiAutocompleteProps<T>['renderTags']>(\n (tags, getTagProps) => {\n const tagsArray = tags.filter(isRealOption).map((option, index) => {\n // Untyped in MUI, so we have to do it ourselves\n const { onDelete } = getTagProps({ index }) as { onDelete: MouseEventHandler };\n return { option, onDelete };\n });\n\n return renderSelected(tagsArray, { useAllOption, allOptions: options });\n },\n [renderSelected, useAllOption, options]\n );\n\n const actualOnInputChange = useCallback<MuiAutocompleteProps<T>['onInputChange']>(\n (event, newInputValue, reason) => {\n if (event && event.type === 'blur') {\n setInputValue('');\n inputValueRef.current = newInputValue;\n } else if (reason !== 'reset') {\n setInputValue(newInputValue);\n inputValueRef.current = newInputValue;\n }\n\n if (reason !== 'reset') {\n onInputChange?.(newInputValue, event as ChangeEvent<HTMLInputElement>);\n }\n },\n [onInputChange]\n );\n\n const actualGroupBy = useMemo<MuiAutocompleteProps<T>['groupBy'] | undefined>(() => {\n if (groupBy) {\n return option => {\n if (isRealOption(option)) {\n return groupBy(option);\n }\n\n return '';\n };\n }\n\n return undefined;\n }, [groupBy]);\n\n const classes = useMemo(() => ({ paper: dropdownClassName }), [dropdownClassName]);\n\n const getOptionSelected = useCallback((a: InternalOption<T>, b: InternalOption<T>) => {\n return isRealOption(a) && isRealOption(b) ? a.id === b.id : false;\n }, []);\n\n const Component = MuiAutocomplete<InternalOption<T>, Multiple, boolean, false>;\n\n const PopperComponent = useCallback(\n (props: PopperProps) => (\n <Popper\n {...props}\n {...popperProps}\n className={classNames(props?.className, popperProps?.className)}\n />\n ),\n [popperProps]\n ) as NonNullable<MuiAutocompleteProps<T>['PopperComponent']>;\n\n const onKey = useCallback<KeyboardEventHandler>(\n e => {\n if (e.code === 'Enter' && onCreate) {\n const filteredOptions = actualFilterOptions(options, {\n inputValue: inputValueRef.current,\n getOptionLabel,\n });\n\n if (\n filteredOptions.length === 1 &&\n !isRealOption(filteredOptions[0]) &&\n filteredOptions[0][CreateOptionMark]\n ) {\n actualOnClose(undefined, 'select-option');\n onCreate(filteredOptions[0].newOptionTitle || '');\n (document.activeElement as HTMLInputElement)?.blur?.();\n }\n }\n },\n [onCreate, actualFilterOptions, getOptionLabel, actualOnClose, options]\n );\n\n const renderInput = useCallback(\n (inputProps: AutocompleteRenderInputParams) => (\n <AutocompleteInput\n {...inputProps}\n label={label}\n loading={loading}\n prefix={prefix}\n status={status}\n message={message}\n readOnly={disableFiltering}\n placeholder={placeholder}\n size={size}\n labelPlacement={labelPlacement}\n elementsClassNames={elementsClassNames}\n htmlAttributes={htmlAttributes}\n // Old props\n type={type}\n spacing={spacing}\n isNext={isNext}\n onKeyUp={onKey}\n />\n ),\n [\n label,\n loading,\n prefix,\n status,\n message,\n disableFiltering,\n placeholder,\n size,\n labelPlacement,\n elementsClassNames,\n htmlAttributes,\n type,\n spacing,\n isNext,\n onKey,\n ]\n );\n\n return (\n <div\n className={classNames(\n styles.root,\n showPopupIcon && styles.withArrow,\n !disableClearable && styles.withClear,\n className\n )}\n data-testid={testId}\n >\n <Component\n value={muiValue}\n options={options}\n getOptionLabel={getOptionLabel}\n renderInput={renderInput}\n PopperComponent={PopperComponent}\n PaperComponent={AutocompletePaper}\n multiple={multiple}\n disableCloseOnSelect={multiple}\n blurOnSelect={!multiple}\n onChange={actualOnChange}\n renderOption={actualRenderOption}\n popupIcon={<DownIcon size={16} />}\n forcePopupIcon={showPopupIcon}\n closeIcon={<CloseSmallIcon size={16} />}\n disableClearable={disableClearable}\n clearText=\"\"\n noOptionsText={noOptionsMessage || defaultNoOptionsText}\n filterOptions={actualFilterOptions}\n disabled={disabled}\n getOptionDisabled={actualGetOptionDisabled}\n renderTags={renderTags}\n inputValue={multiple ? inputValue : undefined}\n onInputChange={actualOnInputChange}\n groupBy={actualGroupBy}\n renderGroup={renderGroup}\n clearOnBlur\n selectOnFocus={!disableFiltering}\n classes={classes}\n getOptionSelected={getOptionSelected}\n ListboxComponent={listboxComponent ?? AutocompleteListBox}\n onOpen={actualOnOpen}\n onClose={actualOnClose}\n open={isOpen}\n />\n </div>\n );\n};\n\n// Old version\n/**\n * @deprecated use `AutocompleteNext`, and see migration guide for `TextInputNext` for details\n */\nexport type AutocompleteProps<\n T extends AutocompleteOption = AutocompleteOption,\n Multiple extends boolean | undefined = false\n> = Omit<\n AutocompleteBaseProps<T, Multiple>,\n 'size' | 'labelPlacement' | 'elementsClassNames' | 'htmlAttributes' | 'isNext'\n>;\n\n/**\n * @deprecated use `AutocompleteNext`, and see migration guide for `TextInputNext` for details\n */\nexport const Autocomplete = <\n T extends AutocompleteOption,\n Multiple extends boolean | undefined = false\n>(\n props: AutocompleteProps<T, Multiple>\n) => AutocompleteBase<T, Multiple>({ ...props, isNext: false });\n\n// New version\nexport type AutocompleteNextProps<\n T extends AutocompleteOption = AutocompleteOption,\n Multiple extends boolean | undefined = false\n> = Omit<AutocompleteBaseProps<T, Multiple>, 'type' | 'spacing' | 'isNext'>;\n\nexport const AutocompleteNext = <\n T extends AutocompleteOption,\n Multiple extends boolean | undefined = false\n>(\n props: AutocompleteNextProps<T, Multiple>\n) => AutocompleteBase<T, Multiple>({ ...props, isNext: true });\n\nAutocompleteNext.selectedValueRenderers = {\n default: renderSelectedValue,\n chipsMultiline: renderSelectedValueChips,\n};\n"],"names":["AutocompleteBase","_ref","label","_ref$options","options","value","onChange","multiple","_ref$renderOption","renderOption","renderOptionDefault","_ref$optionSize","optionSize","_ref$showPopupIcon","showPopupIcon","_ref$clearable","clearable","loading","noOptionsMessage","filterOptions","prefix","disabled","getOptionDisabled","_ref$renderSelected","renderSelected","renderSelectedValue","onInputChange","className","testId","status","message","_ref$useAllOption","useAllOption","_ref$useOnlyOptionBut","useOnlyOptionButton","groupBy","renderGroup","disableFiltering","onCreate","dropdownClassName","popperProps","placeholder","_ref$focusOnClear","focusOnClear","listboxComponent","_ref$size","size","_ref$labelPlacement","labelPlacement","elementsClassNames","htmlAttributes","onOpen","onClose","type","spacing","isNext","useState","_useState2","_slicedToArray","_useState","inputValue","setInputValue","_useState4","_useState3","isOpen","setIsOpen","inputValueRef","useRef","actualOnOpen","useCallback","actualOnClose","_e","reason","optionsById","useMemo","Map","map","option","id","muiValue","undefined","Array","length","mixedValues","objOrId","_typeof","title","get","filter","item","find","hasMultiSelected","hasAllMultiSelected","defaultNoOptionsText","disableClearable","actualOnChange","event","optionOrArray","stopPropagation","preventDefault","foundAddOption","isRealOption","CreateOptionMark","newOptionTitle","some","AllOptionMark","onSelectOnly","actualRenderOption","_ref2","selected","_jsx","AutocompleteMenuItem","useOnlyButton","children","_jsxs","styles","allOptionContainer","indeterminate","Menu","Divider","allOptionDivider","actualFilterOptions","params","_ref4","filteredOptions","createFilterOptions","optionsWithAll","_defineProperty","trim","concat","_toConsumableArray","actualGetOptionDisabled","getOptionLabel","renderTags","tags","getTagProps","tagsArray","index","onDelete","allOptions","actualOnInputChange","newInputValue","current","actualGroupBy","classes","paper","getOptionSelected","a","b","Component","MuiAutocomplete","PopperComponent","props","Popper","classNames","onKey","e","code","_document$activeEleme","_document$activeEleme2","document","activeElement","blur","call","renderInput","inputProps","AutocompleteInput","_objectSpread","readOnly","onKeyUp","root","withArrow","withClear","PaperComponent","AutocompletePaper","disableCloseOnSelect","blurOnSelect","popupIcon","DownIcon","forcePopupIcon","closeIcon","CloseSmallIcon","clearText","noOptionsText","clearOnBlur","selectOnFocus","ListboxComponent","AutocompleteListBox","open","AutocompleteNext","selectedValueRenderers","default","chipsMultiline","renderSelectedValueChips"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),t=require("@babel/runtime/helpers/objectWithoutProperties"),n=require("react"),r=require("classnames"),u=require("../../TextInputNext/TextInputNext.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),t=require("@babel/runtime/helpers/objectWithoutProperties"),n=require("react"),r=require("classnames"),u=require("../../TextInputNext/TextInputNext.js"),o=require("../../TextInput/TextInput.js"),i=require("../Autocomplete.scss.js"),l=require("react/jsx-runtime");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=s(e),p=s(t),f=s(r),c=["inputProps","disabled","InputProps","prefix","loading","status","isNext"];function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function b(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?d(Object(n),!0).forEach((function(t){a.default(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}exports.AutocompleteInput=function(e){var t=e.inputProps,r=e.disabled,s=e.InputProps,a=e.prefix,d=e.loading,x=e.status,m=e.isNext,j=p.default(e,c),y=j.label,O=j.size,P=j.labelPlacement,g=j.elementsClassNames,v=j.htmlAttributes,h=j.readOnly,C=j.placeholder,I=j.onKeyDown,w=j.onKeyUp,q=t.onChange,A=t.onBlur,D=t.onFocus,N=t.onMouseDown,T=t.ref,k=t.value,F=t.id,K=n.useCallback((function(e,t,n){null==q||q(n,e)}),[q]),M=n.useCallback((function(e,t){null==q||q(t,e)}),[q]),B=n.useCallback((function(e){if(D(e),N(e),h){var t=e.target;t.selectionStart=t.selectionEnd}}),[D,N,h]),E=(a||s.startAdornment)&&l.jsxs(l.Fragment,{children:[a,s.startAdornment]}),R=n.useMemo((function(){return b(b({},g),{},{input:f.default(i.input,null==g?void 0:g.input,h&&i.readOnlyInput),prefix:f.default(i.prefix,null==g?void 0:g.prefix),suffix:f.default(i.suffix,null==g?void 0:g.suffix),inputContainer:f.default(i.inputContainer,null==g?void 0:g.inputContainer)})}),[g,h]),S=n.useMemo((function(){return b(b({},v),{},{id:F})}),[v,F]);return m?l.jsx(u.TextInputNext,{disabled:r,prefix:E,suffix:s.endAdornment,onBlur:A,onChange:K,onFocus:B,inputRef:T,value:k,inputContainerRef:s.ref,status:d?"loading":x,label:y,size:O,labelPlacement:P,elementsClassNames:R,htmlAttributes:S,readOnly:h,placeholder:C,onKeyUp:w,onKeyDown:I}):l.jsx(o.TextInput,b({disabled:r,prefix:E,suffix:s.endAdornment,onBlur:A,onChange:M,onFocus:B,inputRef:T,value:k,ref:s.ref,status:d?"loading":x},j))};
|
|
2
2
|
//# sourceMappingURL=AutocompleteInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutocompleteInput.js","sources":["../../../../../src/componentsV2/Autocomplete/AutocompleteInput/AutocompleteInput.tsx"],"sourcesContent":["import { AutocompleteRenderInputParams } from '@material-ui/lab';\nimport { useCallback, useMemo } from 'react';\nimport classNames from 'classnames';\n\nimport { TextInputNext, TextInputNextProps } from '../../TextInputNext';\nimport { TextInput, TextInputProps } from '../../TextInput';\n\nimport styles from '../Autocomplete.scss';\n\nexport type AutocompleteInputProps = Omit<AutocompleteRenderInputParams, 'size'> &\n TextInputNextProps &\n TextInputProps & {\n // This property is essentially untyped in AutocompleteRenderInputParams\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n inputProps: any;\n loading?: boolean;\n isNext?: boolean;\n };\n\nexport const AutocompleteInput = ({\n inputProps,\n disabled,\n InputProps,\n prefix,\n loading,\n status,\n isNext,\n ...rest\n}: AutocompleteInputProps) => {\n const {
|
|
1
|
+
{"version":3,"file":"AutocompleteInput.js","sources":["../../../../../src/componentsV2/Autocomplete/AutocompleteInput/AutocompleteInput.tsx"],"sourcesContent":["import { AutocompleteRenderInputParams } from '@material-ui/lab';\nimport { useCallback, useMemo } from 'react';\nimport classNames from 'classnames';\n\nimport { TextInputNext, TextInputNextProps } from '../../TextInputNext';\nimport { TextInput, TextInputProps } from '../../TextInput';\n\nimport styles from '../Autocomplete.scss';\n\nexport type AutocompleteInputProps = Omit<AutocompleteRenderInputParams, 'size'> &\n TextInputNextProps &\n TextInputProps & {\n // This property is essentially untyped in AutocompleteRenderInputParams\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n inputProps: any;\n loading?: boolean;\n isNext?: boolean;\n };\n\nexport const AutocompleteInput = ({\n inputProps,\n disabled,\n InputProps,\n prefix,\n loading,\n status,\n isNext,\n ...rest\n}: AutocompleteInputProps) => {\n const {\n label,\n size,\n labelPlacement,\n elementsClassNames,\n htmlAttributes,\n readOnly,\n placeholder,\n onKeyDown,\n onKeyUp,\n } = rest;\n const {\n onChange: muiOnChange,\n onBlur,\n onFocus: muiOnFocus,\n onMouseDown,\n ref,\n value,\n id,\n } = inputProps;\n\n const onChange = useCallback<Required<TextInputNextProps>['onChange']>(\n (value, _reason, event) => {\n muiOnChange?.(event, value);\n },\n [muiOnChange]\n );\n\n const onChangeOld = useCallback<Required<TextInputProps>['onChange']>(\n (value, event) => {\n muiOnChange?.(event, value);\n },\n [muiOnChange]\n );\n\n const onFocus = useCallback<Required<TextInputNextProps>['onFocus']>(\n event => {\n muiOnFocus(event);\n onMouseDown(event);\n\n // Clearing autoselect on focus for readonly field to cover tab navigation which selects everything by default\n if (readOnly) {\n const input = event.target as HTMLInputElement;\n input.selectionStart = input.selectionEnd;\n }\n },\n [muiOnFocus, onMouseDown, readOnly]\n );\n\n const actualPrefix = (prefix || InputProps.startAdornment) && (\n <>\n {prefix}\n {InputProps.startAdornment}\n </>\n );\n\n const ownElementsClassNames = useMemo<TextInputNextProps['elementsClassNames']>(\n () => ({\n ...elementsClassNames,\n input: classNames(styles.input, elementsClassNames?.input, readOnly && styles.readOnlyInput),\n prefix: classNames(styles.prefix, elementsClassNames?.prefix),\n suffix: classNames(styles.suffix, elementsClassNames?.suffix),\n inputContainer: classNames(styles.inputContainer, elementsClassNames?.inputContainer),\n }),\n [elementsClassNames, readOnly]\n );\n\n const fieldHtmlAttributes = useMemo(() => ({ ...htmlAttributes, id }), [htmlAttributes, id]);\n\n if (isNext) {\n return (\n <TextInputNext\n disabled={disabled}\n // InputProps.startAdornment - \"tags\" for multiselect, prefix\n prefix={actualPrefix}\n // InputProps.endAdornment - \"dropdown\" icon, close icon, loader\n suffix={InputProps.endAdornment}\n onBlur={onBlur}\n onChange={onChange}\n onFocus={onFocus}\n inputRef={ref}\n value={value}\n inputContainerRef={InputProps.ref}\n status={loading ? 'loading' : status}\n label={label}\n size={size}\n labelPlacement={labelPlacement}\n elementsClassNames={ownElementsClassNames}\n htmlAttributes={fieldHtmlAttributes}\n readOnly={readOnly}\n placeholder={placeholder}\n onKeyUp={onKeyUp}\n onKeyDown={onKeyDown}\n />\n );\n }\n\n return (\n <TextInput\n disabled={disabled}\n // InputProps.startAdornment - \"tags\" for multiselect, prefix\n prefix={actualPrefix}\n // InputProps.endAdornment - \"dropdown\" icon, close icon, loader\n suffix={InputProps.endAdornment}\n onBlur={onBlur}\n onChange={onChangeOld}\n onFocus={onFocus}\n inputRef={ref}\n value={value}\n ref={InputProps.ref}\n status={loading ? 'loading' : status}\n {...rest}\n />\n );\n};\n"],"names":["_ref","inputProps","disabled","InputProps","prefix","loading","status","isNext","rest","_objectWithoutProperties","_excluded","label","size","labelPlacement","elementsClassNames","htmlAttributes","readOnly","placeholder","onKeyDown","onKeyUp","muiOnChange","onChange","onBlur","muiOnFocus","onFocus","onMouseDown","ref","value","id","useCallback","_reason","event","onChangeOld","input","target","selectionStart","selectionEnd","actualPrefix","startAdornment","_jsxs","jsxs","_Fragment","children","ownElementsClassNames","useMemo","_objectSpread","classNames","styles","readOnlyInput","suffix","inputContainer","fieldHtmlAttributes","_jsx","TextInputNext","endAdornment","inputRef","inputContainerRef","TextInput"],"mappings":"kpCAmBiC,SASHA,GAAA,IAR5BC,IAAAA,WACAC,IAAAA,SACAC,IAAAA,WACAC,IAAAA,OACAC,IAAAA,QACAC,IAAAA,OACAC,IAAAA,OACGC,EAAIC,EAAA,QAAAT,EAAAU,GAGLC,EASEH,EATFG,MACAC,EAQEJ,EARFI,KACAC,EAOEL,EAPFK,eACAC,EAMEN,EANFM,mBACAC,EAKEP,EALFO,eACAC,EAIER,EAJFQ,SACAC,EAGET,EAHFS,YACAC,EAEEV,EAFFU,UACAC,EACEX,EADFW,QAGUC,EAORnB,EAPFoB,SACAC,EAMErB,EANFqB,OACSC,EAKPtB,EALFuB,QACAC,EAIExB,EAJFwB,YACAC,EAGEzB,EAHFyB,IACAC,EAEE1B,EAFF0B,MACAC,EACE3B,EADF2B,GAGIP,EAAWQ,EAAWA,aAC1B,SAACF,EAAOG,EAASC,GACfX,SAAAA,EAAcW,EAAOJ,EACvB,GACA,CAACP,IAGGY,EAAcH,EAAAA,aAClB,SAACF,EAAOI,GACNX,SAAAA,EAAcW,EAAOJ,EACvB,GACA,CAACP,IAGGI,EAAUK,eACd,SAAAE,GAKE,GAJAR,EAAWQ,GACXN,EAAYM,GAGRf,EAAU,CACZ,IAAMiB,EAAQF,EAAMG,OACpBD,EAAME,eAAiBF,EAAMG,YAC/B,CACD,GACD,CAACb,EAAYE,EAAaT,IAGtBqB,GAAgBjC,GAAUD,EAAWmC,iBACzCC,EAAAC,KAAAC,WAAA,CAAAC,SAAA,CACGtC,EACAD,EAAWmC,kBAIVK,EAAwBC,EAAAA,SAC5B,WAAA,OAAAC,EAAAA,EAAA,CAAA,EACK/B,GAAkB,CAAA,EAAA,CACrBmB,MAAOa,EAAU,QAACC,EAAOd,MAAOnB,eAAAA,EAAoBmB,MAAOjB,GAAY+B,EAAOC,eAC9E5C,OAAQ0C,EAAU,QAACC,EAAO3C,OAAQU,aAAkB,EAAlBA,EAAoBV,QACtD6C,OAAQH,EAAU,QAACC,EAAOE,OAAQnC,aAAkB,EAAlBA,EAAoBmC,QACtDC,eAAgBJ,EAAU,QAACC,EAAOG,eAAgBpC,aAAAA,EAAAA,EAAoBoC,iBAAe,GAEvF,CAACpC,EAAoBE,IAGjBmC,EAAsBP,EAAAA,SAAQ,WAAA,OAAAC,EAAAA,EAAA,CAAA,EAAY9B,GAAc,CAAA,EAAA,CAAEa,GAAAA,GAAE,GAAK,CAACb,EAAgBa,IAExF,OAAIrB,EAEA6C,EAAAA,IAACC,EAAAA,cAAa,CACZnD,SAAUA,EAEVE,OAAQiC,EAERY,OAAQ9C,EAAWmD,aACnBhC,OAAQA,EACRD,SAAUA,EACVG,QAASA,EACT+B,SAAU7B,EACVC,MAAOA,EACP6B,kBAAmBrD,EAAWuB,IAC9BpB,OAAQD,EAAU,UAAYC,EAC9BK,MAAOA,EACPC,KAAMA,EACNC,eAAgBA,EAChBC,mBAAoB6B,EACpB5B,eAAgBoC,EAChBnC,SAAUA,EACVC,YAAaA,EACbE,QAASA,EACTD,UAAWA,IAMfkC,MAACK,EAASA,UAAAZ,EAAA,CACR3C,SAAUA,EAEVE,OAAQiC,EAERY,OAAQ9C,EAAWmD,aACnBhC,OAAQA,EACRD,SAAUW,EACVR,QAASA,EACT+B,SAAU7B,EACVC,MAAOA,EACPD,IAAKvB,EAAWuB,IAChBpB,OAAQD,EAAU,UAAYC,GAC1BE,GAGV"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/slicedToArray"),o=require("@babel/runtime/helpers/defineProperty"),s=require("classnames"),n=require("react"),c=require("react-color"),i=require("lodash"),r=require("uuid"),t=require("../TextInputNext/TextInputNext.js"),u=require("../Popover/Popover.js"),a=require("../ButtonIcon/ButtonIcon.js"),l=require("../Tooltip/Tooltip.js"),m=require("../Popper/Popper.js"),d=require("./Swatches/Swatches.js"),p=require("./utils.js"),j=require("./OpacityDragtracker/OpacityDragtracker.js"),q=require("./useChromePickerAccessibility.js"),f=require("./ColorPicker.scss.js"),I=require("../../icons/iconParkIcons.js");require("../../icons/customIcons/icons/AddMessage.js"),require("../../icons/customIcons/icons/DragOne.js"),require("../../icons/customIcons/icons/Attention.js"),require("../../icons/customIcons/icons/Collapse.js"),require("../../icons/customIcons/icons/Dashboard.js"),require("../../icons/customIcons/icons/Expand.js"),require("../../icons/customIcons/icons/FolderClosed.js"),require("../../icons/customIcons/icons/FolderClosedFilled.js"),require("../../icons/customIcons/icons/FolderOpened.js"),require("../../icons/customIcons/icons/GreaterOrEqual.js"),require("../../icons/customIcons/icons/LessOrEqual.js"),require("../../icons/customIcons/icons/Search.js"),require("../../icons/customIcons/icons/SearchOne.js"),require("../../icons/customIcons/icons/Wellhub.js"),require("../../icons/customIcons/icons/MultiRuler.js"),require("../../icons/customIcons/icons/Checkbox.js"),require("../../icons/customIcons/icons/CheckboxChecked.js"),require("../../icons/customIcons/icons/CheckboxIndeterminate.js"),require("../../icons/customIcons/icons/Radio.js"),require("../../icons/customIcons/icons/RadioChecked.js"),require("../../icons/customIcons/icons/SimulFrac.js"),require("../../icons/customIcons/icons/ZipperFrac.js"),require("../../icons/customIcons/icons/CautionFilled.js"),require("../../icons/customIcons/icons/InfoRounded.js"),require("../../icons/customIcons/icons/FlameFilled.js"),require("../../icons/customIcons/icons/MoreApp.js"),require("../../icons/customIcons/icons/Pad.js"),require("../../icons/customIcons/icons/DrilloutUnit.js"),require("../../icons/customIcons/icons/FracFleet.js"),require("../../icons/customIcons/icons/Global.js"),require("../../icons/customIcons/icons/Program.js"),require("../../icons/customIcons/icons/Rig.js"),require("../../icons/customIcons/icons/Well.js"),require("../../icons/customIcons/icons/Gap.js"),require("../../icons/customIcons/icons/Pin.js"),require("../../icons/customIcons/icons/PinOne.js"),require("../../icons/customIcons/icons/PinOneCrossed.js"),require("../../icons/customIcons/icons/CloseOneFilled.js"),require("../../icons/customIcons/icons/AttentionFilled.js"),require("../../icons/customIcons/icons/CheckOneFilled.js"),require("../../icons/customIcons/icons/Archive.js"),require("../../icons/customIcons/icons/ArchiveCancel.js"),require("../../icons/customIcons/icons/Unarchive.js"),require("../../icons/customIcons/icons/Archived.js"),require("../../icons/customIcons/icons/InterventionUnit.js"),require("../../icons/customIcons/icons/CloudDelete.js"),require("../../icons/customIcons/icons/Lasso.js"),require("../../icons/customIcons/icons/Radius.js"),require("../../icons/customIcons/icons/ErrorOps.js"),require("../../icons/customIcons/icons/DataTypeOps.js"),require("../../icons/customIcons/icons/FalsePositiveOps.js"),require("../../icons/customIcons/icons/CalibrationOps.js"),require("../../icons/customIcons/icons/CriticalOps.js"),require("../../icons/customIcons/icons/Company.js"),require("../../icons/customIcons/icons/ArchiveOne.js"),require("../../icons/customIcons/icons/ParseBotFusion.js"),require("../../icons/customIcons/icons/Connect.js"),require("../../icons/customIcons/icons/PuzzleOne.js"),require("../../icons/customIcons/icons/Feed.js"),require("../../icons/customIcons/icons/Prompt.js"),require("../../icons/customIcons/icons/Companies.js"),require("../../icons/customIcons/icons/ClipboardAi.js"),require("../../icons/customIcons/icons/Key.js"),require("../../icons/customIcons/icons/AtSignCrossed.js"),require("../../icons/customIcons/icons/MappingManual.js"),require("../../icons/customIcons/icons/Mapping.js"),require("../../icons/customIcons/icons/Metrics.js"),require("../../icons/customIcons/icons/Drops.js"),require("../../icons/customIcons/icons/ClipboardSearch.js"),require("../../icons/customIcons/icons/Template.js"),require("../../icons/customIcons/icons/ClipboardMetrics.js"),require("../../icons/customIcons/icons/ClipboardBuilder.js"),require("../../icons/customIcons/icons/UnitConversion.js"),require("../../icons/customIcons/icons/NPT.js"),require("../../icons/customIcons/icons/GuidedFrac.js");var b=require("react/jsx-runtime");function h(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var v=h(e),C=h(o),k=h(s);function x(e,o){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);o&&(n=n.filter((function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable}))),s.push.apply(s,n)}return s}function y(e){for(var o=1;o<arguments.length;o++){var s=null!=arguments[o]?arguments[o]:{};o%2?x(Object(s),!0).forEach((function(o){C.default(e,o,s[o])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):x(Object(s)).forEach((function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(s,o))}))}return e}var g={small:f.small,medium:f.medium,large:f.large};exports.ColorPicker=function(e){var o=e.format,s=void 0===o?"hex":o,h=e.className,C=e.label,x=e.labelPlacement,O=void 0===x?"top":x,P=e.popoverPlacement,D=void 0===P?"bottom-start":P,F=e.testId,N=e.disabled,S=e.size,T=void 0===S?"small":S,A=e.onOpen,w=e.onClose,M=e.value,E=void 0===M?p.defaultColor:M,R=e.onChange,B=e.disableOpacityDrag,z=e.enableAlpha,W=void 0!==z&&z,L=e.elementsClassNames,G=void 0===L?{}:L,K=n.useMemo((function(){return{input:k.default(f.input,G.input),inputContainer:k.default(f.inputContainer,G.inputContainer),label:k.default(f.label,G.label),prefix:f.prefixContainer,suffix:f.suffixContainer,numberStepButtons:f.numberStepButtons}}),[G.input,G.inputContainer,G.label]),U=n.useMemo((function(){try{var e=p.parseColor(E);return y(y({},e),{},{a:W?e.a:1})}catch(e){return p.parseColor(p.defaultColor)}}),[E,W]),H=n.useState(!1),V=v.default(H,2),_=V[0],Z=V[1],J=n.useRef(null),Q=n.useRef(null),X=n.useState(!0),Y=v.default(X,2),$=Y[0],ee=Y[1],oe=n.useState(null),se=v.default(oe,2),ne=se[0],ce=se[1],ie=n.useState(U),re=v.default(ie,2),te=re[0],ue=re[1],ae=n.useRef(null),le=n.useMemo((function(){return"corva-color-picker-".concat(r.v4())}),[]),me="".concat(le,"-opacity-input"),de="".concat(le,"-label"),pe="".concat(le,"-opacity-label"),je=Boolean(C),qe=n.useCallback((function(){Z(!0),null==A||A()}),[A]),fe=n.useCallback((function(e){e.preventDefault(),ce(null),qe()}),[qe]),Ie=n.useCallback((function(){ce(null),qe()}),[qe]),be=n.useCallback((function(e){N||"Enter"!==e.key&&" "!==e.key&&"ArrowDown"!==e.key||(e.preventDefault(),ce("palette"),qe())}),[N,qe]),he=n.useCallback((function(){var e,o,s=!(null===(e=ae.current)||void 0===e||!e.contains(document.activeElement));(ce(null),Z(!1),null==w||w(),s)&&(null===(o=Q.current)||void 0===o||o.focus({preventScroll:!0}))}),[w]),ve=n.useCallback((function(e){ce(0===e.detail?"palette":null),ee(!0)}),[]),Ce=n.useCallback((function(e){ce(0===e.detail?"picker":null),ee(!1)}),[]),ke=n.useCallback((function(){return ce(null)}),[]),xe=n.useCallback((function(e){return ue(e.rgb)}),[]),ye=n.useCallback((function(e){var o="hex"===s?p.channelsToHex(e,W):p.channelsToRgba(e,W);null==R||R(o)}),[s,R,W]),ge=n.useCallback((function(e){ue(e),ye(e)}),[ye]),Oe=q.useChromePickerAccessibility({color:te,enableAlpha:W,isActive:!$,onChange:ge}),Pe=Oe.pickerRef,De=Oe.onKeyDown;n.useEffect((function(){var e;if("picker"===ne&&!$){var o=null===(e=Pe.current)||void 0===e?void 0:e.querySelector('[data-color-picker-control="saturation"]');o&&(o.focus({preventScroll:!0}),ke())}}),[ke,ne,$,Pe]);var Fe=n.useCallback((function(e){var o=Number(e);if(!(Number.isNaN(o)||o<0||o>100)){var s=y(y({},U),{},{a:o/100});ye(s)}}),[U,ye]),Ne=n.useCallback((function(e){ye(e.rgb)}),[ye]),Se=n.useCallback((function(e){var o=U.a||1,s=W&&0===e.a?0:o;ye(y(y({},e),{},{a:s}))}),[ye,U.a,W]),Te=n.useCallback((function(){setTimeout((function(){var e,o;Z(!1),null===(e=document.activeElement)||void 0===e||null===(o=e.blur)||void 0===o||o.call(e)}),0)}),[]),Ae=n.useMemo((function(){return i.throttle((function(e){var o=String(Math.round(e));Fe(o)}),100)}),[Fe]);n.useEffect((function(){ue(U)}),[U]),n.useEffect((function(){_&&ee(!0)}),[_]);var we=String(Math.round(100*te.a)),Me=(null==D?void 0:D.startsWith("top"))||(null==D?void 0:D.startsWith("bottom")),Ee=(null==D?void 0:D.startsWith("left"))||(null==D?void 0:D.startsWith("right")),Re=je?b.jsxs(b.Fragment,{children:[b.jsx("label",{id:de,htmlFor:me,children:"string"==typeof C?b.jsx(t.TextInputNext.Label,{children:C}):C}),b.jsx("span",{id:pe,hidden:!0,children:"Opacity"})]}):void 0,Be=n.useMemo((function(){return je?{id:me,"aria-labelledby":"".concat(de," ").concat(pe)}:{id:me,"aria-label":"Opacity"}}),[je,me,de,pe]);return b.jsxs(b.Fragment,{children:[b.jsx(t.TextInputNext,{label:Re,labelPlacement:O,disabled:N,size:T,rootTagName:"div",prefix:b.jsxs(b.Fragment,{children:[b.jsxs("div",{className:f.fakeValue,children:[we,b.jsx("span",{className:f.fakeValuePercent,children:"%"})]}),b.jsx("div",{ref:Q,className:k.default(f.indicator,0===te.a&&f.transparent,G.indicator),style:{"--corvaui-colorpicker-indicatorcolor":p.channelsToHex(te,!1)},onClick:N?void 0:fe,onKeyDown:be,role:"button","aria-label":je?void 0:"Color picker","aria-labelledby":je?de:void 0,"aria-expanded":_,"aria-disabled":N,tabIndex:N?-1:0})]}),suffix:!_&&W&&!B&&!N&&b.jsx(j.OpacityDragTracker,{value:Number(we),onDrag:Ae,onDragEnd:Te}),className:k.default(f.root,g[T],!W&&f.noAlpha,h),testId:F,inputContainerRef:J,value:we,onChange:Fe,onFocus:Ie,inputType:"number",inputMode:"numeric",htmlAttributes:Be,elementsClassNames:K}),b.jsxs(u.Popover,{ref:ae,anchorEl:J.current,open:_,onClose:he,placement:D,className:k.default(f.popover,Me&&f.marginVertical,Ee&&f.marginHorizontal,0===te.a&&f.isTransparent,G.popover),children:[$?b.jsx(d.Swatches,{onChange:Se,value:U,addTransparent:W,autoFocus:"palette"===ne,onAutoFocus:ke}):b.jsx("div",{ref:Pe,className:f.pickerContainer,onKeyDown:De,children:b.jsx(c.ChromePicker,{color:te,onChange:xe,onChangeComplete:Ne,disableAlpha:!W,className:f.picker})}),b.jsxs("div",{className:f.switchButtons,children:[b.jsx(l.Tooltip,{title:"Palette",children:b.jsx(a.ButtonIcon,{ariaLabel:"Show color palette",size:"medium",type:$?"secondary":"tertiary",onClick:ve,children:b.jsx(I.PaletteIcon,{})})}),b.jsx(l.Tooltip,{title:"Pick your own",children:b.jsx(a.ButtonIcon,{ariaLabel:"Show custom color picker",size:"medium",type:$?"tertiary":"secondary",onClick:Ce,children:b.jsx(I.PickerIcon,{})})})]})]}),_&&W&&!B&&b.jsx(m.Popper,{open:_,anchorEl:J.current,className:f.dragTrackerPopper,placement:"right",children:b.jsx(j.OpacityDragTracker,{onDrag:Ae,onDragEnd:Te})})]})};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/slicedToArray"),o=require("@babel/runtime/helpers/defineProperty"),s=require("classnames"),n=require("react"),c=require("react-color"),r=require("lodash"),i=require("uuid"),t=require("../TextInputNext/TextInputNext.js"),u=require("../Popover/Popover.js"),a=require("../ButtonIcon/ButtonIcon.js"),l=require("../Tooltip/Tooltip.js"),m=require("../Popper/Popper.js"),d=require("./Swatches/Swatches.js"),p=require("./utils.js"),j=require("./OpacityDragtracker/OpacityDragtracker.js"),q=require("./useChromePickerAccessibility.js"),f=require("./ColorPicker.scss.js"),I=require("../../icons/iconParkIcons.js");require("../../icons/customIcons/icons/AddMessage.js"),require("../../icons/customIcons/icons/DragOne.js"),require("../../icons/customIcons/icons/Attention.js"),require("../../icons/customIcons/icons/Collapse.js"),require("../../icons/customIcons/icons/Dashboard.js"),require("../../icons/customIcons/icons/Expand.js"),require("../../icons/customIcons/icons/FolderClosed.js"),require("../../icons/customIcons/icons/FolderClosedFilled.js"),require("../../icons/customIcons/icons/FolderOpened.js"),require("../../icons/customIcons/icons/GreaterOrEqual.js"),require("../../icons/customIcons/icons/LessOrEqual.js"),require("../../icons/customIcons/icons/Search.js"),require("../../icons/customIcons/icons/SearchOne.js"),require("../../icons/customIcons/icons/Wellhub.js"),require("../../icons/customIcons/icons/MultiRuler.js"),require("../../icons/customIcons/icons/Checkbox.js"),require("../../icons/customIcons/icons/CheckboxChecked.js"),require("../../icons/customIcons/icons/CheckboxIndeterminate.js"),require("../../icons/customIcons/icons/Radio.js"),require("../../icons/customIcons/icons/RadioChecked.js"),require("../../icons/customIcons/icons/SimulFrac.js"),require("../../icons/customIcons/icons/ZipperFrac.js"),require("../../icons/customIcons/icons/CautionFilled.js"),require("../../icons/customIcons/icons/InfoRounded.js"),require("../../icons/customIcons/icons/FlameFilled.js"),require("../../icons/customIcons/icons/MoreApp.js"),require("../../icons/customIcons/icons/Pad.js"),require("../../icons/customIcons/icons/DrilloutUnit.js"),require("../../icons/customIcons/icons/FracFleet.js"),require("../../icons/customIcons/icons/Global.js"),require("../../icons/customIcons/icons/Program.js"),require("../../icons/customIcons/icons/Rig.js"),require("../../icons/customIcons/icons/Well.js"),require("../../icons/customIcons/icons/Gap.js"),require("../../icons/customIcons/icons/Pin.js"),require("../../icons/customIcons/icons/PinOne.js"),require("../../icons/customIcons/icons/PinOneCrossed.js"),require("../../icons/customIcons/icons/CloseOneFilled.js"),require("../../icons/customIcons/icons/AttentionFilled.js"),require("../../icons/customIcons/icons/CheckOneFilled.js"),require("../../icons/customIcons/icons/Archive.js"),require("../../icons/customIcons/icons/ArchiveCancel.js"),require("../../icons/customIcons/icons/Unarchive.js"),require("../../icons/customIcons/icons/Archived.js"),require("../../icons/customIcons/icons/InterventionUnit.js"),require("../../icons/customIcons/icons/CloudDelete.js"),require("../../icons/customIcons/icons/Lasso.js"),require("../../icons/customIcons/icons/Radius.js"),require("../../icons/customIcons/icons/ErrorOps.js"),require("../../icons/customIcons/icons/DataTypeOps.js"),require("../../icons/customIcons/icons/FalsePositiveOps.js"),require("../../icons/customIcons/icons/CalibrationOps.js"),require("../../icons/customIcons/icons/CriticalOps.js"),require("../../icons/customIcons/icons/Company.js"),require("../../icons/customIcons/icons/ArchiveOne.js"),require("../../icons/customIcons/icons/ParseBotFusion.js"),require("../../icons/customIcons/icons/Connect.js"),require("../../icons/customIcons/icons/PuzzleOne.js"),require("../../icons/customIcons/icons/Feed.js"),require("../../icons/customIcons/icons/Prompt.js"),require("../../icons/customIcons/icons/Companies.js"),require("../../icons/customIcons/icons/ClipboardAi.js"),require("../../icons/customIcons/icons/Key.js"),require("../../icons/customIcons/icons/AtSignCrossed.js"),require("../../icons/customIcons/icons/MappingManual.js"),require("../../icons/customIcons/icons/Mapping.js"),require("../../icons/customIcons/icons/Metrics.js"),require("../../icons/customIcons/icons/Drops.js"),require("../../icons/customIcons/icons/ClipboardSearch.js"),require("../../icons/customIcons/icons/Template.js"),require("../../icons/customIcons/icons/ClipboardMetrics.js"),require("../../icons/customIcons/icons/ClipboardBuilder.js"),require("../../icons/customIcons/icons/UnitConversion.js"),require("../../icons/customIcons/icons/NPT.js"),require("../../icons/customIcons/icons/GuidedFrac.js");var b=require("react/jsx-runtime");function h(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var v=h(e),C=h(o),k=h(s);function x(e,o){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);o&&(n=n.filter((function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable}))),s.push.apply(s,n)}return s}function y(e){for(var o=1;o<arguments.length;o++){var s=null!=arguments[o]?arguments[o]:{};o%2?x(Object(s),!0).forEach((function(o){C.default(e,o,s[o])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):x(Object(s)).forEach((function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(s,o))}))}return e}var g={small:f.small,medium:f.medium,large:f.large},O={inputContainer:f.inputContainer,numberStepButtons:f.numberStepButtons,prefix:f.prefixContainer,suffix:f.suffixContainer,input:f.input,label:f.label};exports.ColorPicker=function(e){var o=e.format,s=void 0===o?"hex":o,h=e.className,x=e.label,P=e.labelPlacement,D=void 0===P?"top":P,F=e.popoverPlacement,N=void 0===F?"bottom-start":F,S=e.testId,T=e.disabled,A=e.size,w=void 0===A?"small":A,M=e.onOpen,E=e.onClose,R=e.value,B=void 0===R?p.defaultColor:R,z=e.onChange,W=e.disableOpacityDrag,L=e.enableAlpha,G=void 0!==L&&L,K=e.elementsClassNames,U=n.useMemo((function(){try{var e=p.parseColor(B);return y(y({},e),{},{a:G?e.a:1})}catch(e){return p.parseColor(p.defaultColor)}}),[B,G]),H=n.useMemo((function(){return K?Object.entries(K).reduce((function(e,o){var s=o,n=v.default(s,2),c=n[0],r=n[1];return y(y({},e),{},C.default({},c,e[c]?k.default(e[c],r):r))}),y({},O)):O}),[K]),V=n.useState(!1),_=v.default(V,2),Z=_[0],J=_[1],Q=n.useRef(null),X=n.useRef(null),Y=n.useState(!0),$=v.default(Y,2),ee=$[0],oe=$[1],se=n.useState(null),ne=v.default(se,2),ce=ne[0],re=ne[1],ie=n.useState(U),te=v.default(ie,2),ue=te[0],ae=te[1],le=n.useRef(null),me=n.useMemo((function(){return"corva-color-picker-".concat(i.v4())}),[]),de="".concat(me,"-opacity-input"),pe="".concat(me,"-label"),je="".concat(me,"-opacity-label"),qe=Boolean(x),fe=n.useCallback((function(){J(!0),null==M||M()}),[M]),Ie=n.useCallback((function(e){e.preventDefault(),re(null),fe()}),[fe]),be=n.useCallback((function(){re(null),fe()}),[fe]),he=n.useCallback((function(e){T||"Enter"!==e.key&&" "!==e.key&&"ArrowDown"!==e.key||(e.preventDefault(),re("palette"),fe())}),[T,fe]),ve=n.useCallback((function(){var e,o,s=!(null===(e=le.current)||void 0===e||!e.contains(document.activeElement));(re(null),J(!1),null==E||E(),s)&&(null===(o=X.current)||void 0===o||o.focus({preventScroll:!0}))}),[E]),Ce=n.useCallback((function(e){re(0===e.detail?"palette":null),oe(!0)}),[]),ke=n.useCallback((function(e){re(0===e.detail?"picker":null),oe(!1)}),[]),xe=n.useCallback((function(){return re(null)}),[]),ye=n.useCallback((function(e){return ae(e.rgb)}),[]),ge=n.useCallback((function(e){var o="hex"===s?p.channelsToHex(e,G):p.channelsToRgba(e,G);null==z||z(o)}),[s,z,G]),Oe=n.useCallback((function(e){ae(e),ge(e)}),[ge]),Pe=q.useChromePickerAccessibility({color:ue,enableAlpha:G,isActive:!ee,onChange:Oe}),De=Pe.pickerRef,Fe=Pe.onKeyDown;n.useEffect((function(){var e;if("picker"===ce&&!ee){var o=null===(e=De.current)||void 0===e?void 0:e.querySelector('[data-color-picker-control="saturation"]');o&&(o.focus({preventScroll:!0}),xe())}}),[xe,ce,ee,De]);var Ne=n.useCallback((function(e){var o=Number(e);if(!(Number.isNaN(o)||o<0||o>100)){var s=y(y({},U),{},{a:o/100});ge(s)}}),[U,ge]),Se=n.useCallback((function(e){ge(e.rgb)}),[ge]),Te=n.useCallback((function(e){var o=U.a||1,s=G&&0===e.a?0:o;ge(y(y({},e),{},{a:s}))}),[ge,U.a,G]),Ae=n.useCallback((function(){setTimeout((function(){var e,o;J(!1),null===(e=document.activeElement)||void 0===e||null===(o=e.blur)||void 0===o||o.call(e)}),0)}),[]),we=n.useMemo((function(){return r.throttle((function(e){var o=String(Math.round(e));Ne(o)}),100)}),[Ne]);n.useEffect((function(){ae(U)}),[U]),n.useEffect((function(){Z&&oe(!0)}),[Z]);var Me=String(Math.round(100*ue.a)),Ee=(null==N?void 0:N.startsWith("top"))||(null==N?void 0:N.startsWith("bottom")),Re=(null==N?void 0:N.startsWith("left"))||(null==N?void 0:N.startsWith("right")),Be=qe?b.jsxs(b.Fragment,{children:[b.jsx("label",{id:pe,htmlFor:de,children:"string"==typeof x?b.jsx(t.TextInputNext.Label,{children:x}):x}),b.jsx("span",{id:je,hidden:!0,children:"Opacity"})]}):void 0,ze=n.useMemo((function(){return qe?{id:de,"aria-labelledby":"".concat(pe," ").concat(je)}:{id:de,"aria-label":"Opacity"}}),[qe,de,pe,je]);return b.jsxs(b.Fragment,{children:[b.jsx(t.TextInputNext,{label:Be,labelPlacement:D,disabled:T,size:w,rootTagName:"div",prefix:b.jsxs(b.Fragment,{children:[b.jsxs("div",{className:f.fakeValue,children:[Me,b.jsx("span",{className:f.fakeValuePercent,children:"%"})]}),b.jsx("div",{ref:X,className:k.default(f.indicator,0===ue.a&&f.transparent,H.indicator),style:{"--corvaui-colorpicker-indicatorcolor":p.channelsToHex(ue,!1)},onClick:T?void 0:Ie,onKeyDown:he,role:"button","aria-label":qe?void 0:"Color picker","aria-labelledby":qe?pe:void 0,"aria-expanded":Z,"aria-disabled":T,tabIndex:T?-1:0})]}),suffix:!Z&&G&&!W&&!T&&b.jsx(j.OpacityDragTracker,{value:Number(Me),onDrag:we,onDragEnd:Ae}),className:k.default(f.root,g[w],!G&&f.noAlpha,h),testId:S,inputContainerRef:Q,value:Me,onChange:Ne,onFocus:be,inputType:"number",inputMode:"numeric",elementsClassNames:H,htmlAttributes:ze}),b.jsxs(u.Popover,{ref:le,anchorEl:Q.current,open:Z,onClose:ve,placement:N,className:k.default(f.popover,Ee&&f.marginVertical,Re&&f.marginHorizontal,0===ue.a&&f.isTransparent,H.popover),children:[ee?b.jsx(d.Swatches,{onChange:Te,value:U,addTransparent:G,autoFocus:"palette"===ce,onAutoFocus:xe}):b.jsx("div",{ref:De,className:f.pickerContainer,onKeyDown:Fe,children:b.jsx(c.ChromePicker,{color:ue,onChange:ye,onChangeComplete:Se,disableAlpha:!G,className:f.picker})}),b.jsxs("div",{className:f.switchButtons,children:[b.jsx(l.Tooltip,{title:"Palette",children:b.jsx(a.ButtonIcon,{ariaLabel:"Show color palette",size:"medium",type:ee?"secondary":"tertiary",onClick:Ce,children:b.jsx(I.PaletteIcon,{})})}),b.jsx(l.Tooltip,{title:"Pick your own",children:b.jsx(a.ButtonIcon,{ariaLabel:"Show custom color picker",size:"medium",type:ee?"tertiary":"secondary",onClick:ke,children:b.jsx(I.PickerIcon,{})})})]})]}),Z&&G&&!W&&b.jsx(m.Popper,{open:Z,anchorEl:Q.current,className:f.dragTrackerPopper,placement:"right",children:b.jsx(j.OpacityDragTracker,{onDrag:we,onDragEnd:Ae})})]})};
|
|
2
2
|
//# sourceMappingURL=ColorPicker.js.map
|