@corva/ui 3.73.0-8 → 3.73.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs-bundle/components/AssetEditor/AssetEditorAutocomplete.js +1 -1
- package/cjs-bundle/components/AssetEditor/AssetEditorAutocomplete.js.map +1 -1
- package/cjs-bundle/components/AssetEditorV2/index.js +1 -1
- package/cjs-bundle/components/AssetEditorV2/index.js.map +1 -1
- package/cjs-bundle/components/DevCenter/AppsDataProvider/AppsDataProvider.js +1 -1
- package/cjs-bundle/components/DevCenter/AppsDataProvider/AppsDataProvider.js.map +1 -1
- package/cjs-bundle/components/IconMenu/index.js +1 -1
- package/cjs-bundle/components/IconMenu/index.js.map +1 -1
- package/cjs-bundle/components/KeyboardDateTimePicker.js +1 -1
- package/cjs-bundle/components/KeyboardDateTimePicker.js.map +1 -1
- package/cjs-bundle/components/PostInput/PostInput.js +1 -1
- package/cjs-bundle/components/PostInput/PostInput.js.map +1 -1
- package/components/AssetEditor/AssetEditorAutocomplete.d.ts +96 -13
- package/components/AssetEditor/AssetEditorAutocomplete.d.ts.map +1 -1
- package/components/AssetEditor/AssetEditorAutocomplete.js +1 -1
- package/components/AssetEditor/AssetEditorAutocomplete.js.map +1 -1
- package/components/AssetEditorV2/index.d.ts +28 -12
- package/components/AssetEditorV2/index.d.ts.map +1 -1
- package/components/AssetEditorV2/index.js +1 -1
- package/components/AssetEditorV2/index.js.map +1 -1
- package/components/DevCenter/AppsDataProvider/AppsDataProvider.d.ts +5 -1
- package/components/DevCenter/AppsDataProvider/AppsDataProvider.d.ts.map +1 -1
- package/components/DevCenter/AppsDataProvider/AppsDataProvider.js +1 -1
- package/components/DevCenter/AppsDataProvider/AppsDataProvider.js.map +1 -1
- package/components/IconMenu/index.d.ts +67 -21
- package/components/IconMenu/index.d.ts.map +1 -1
- package/components/IconMenu/index.js +1 -1
- package/components/IconMenu/index.js.map +1 -1
- package/components/KeyboardDateTimePicker.d.ts +6 -7
- package/components/KeyboardDateTimePicker.d.ts.map +1 -1
- package/components/KeyboardDateTimePicker.js +1 -1
- package/components/KeyboardDateTimePicker.js.map +1 -1
- package/components/PostInput/PostInput.d.ts +20 -10
- package/components/PostInput/PostInput.d.ts.map +1 -1
- package/components/PostInput/PostInput.js +1 -1
- package/components/PostInput/PostInput.js.map +1 -1
- package/mcp-server/server.mjs +1 -1
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("@babel/runtime/helpers/slicedToArray"),t=require("@babel/runtime/helpers/defineProperty"),r=require("@babel/runtime/helpers/objectWithoutProperties"),n=require("react"),o=require("prop-types"),
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/slicedToArray"),t=require("@babel/runtime/helpers/defineProperty"),r=require("@babel/runtime/helpers/objectWithoutProperties"),n=require("react"),o=require("prop-types"),a=require("lodash"),i=require("@material-ui/core"),l=require("@material-ui/icons"),s=require("@material-ui/lab"),u=require("../TruncatedText/index.js"),d=require("./constants.js"),p=require("./effects/index.js"),c=require("react/jsx-runtime");function f(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var b=f(e),m=f(t),y=f(r),h=f(o),g=["children","loading","hasMore"];function x(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function O(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?x(Object(r),!0).forEach((function(t){m.default(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):x(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var v="DC_SingleAssetEditorAutocomplete",j={paddingLeft:"16px",height:36,listStyleType:"none",display:"flex",alignItems:"center"},T=function(e){var t=e.text,r=void 0===t?"Loading...":t;return c.jsx("li",{style:j,children:c.jsx(i.Typography,{variant:"body2",color:"textSecondary",children:r})},"loading")},S=n.forwardRef((function(e,t){var r=e.children,n=e.loading,o=e.hasMore,a=y.default(e,g);return c.jsxs(i.List,O(O({},a),{},{ref:t,role:"listbox",children:[r,(o||n)&&c.jsx(T,{})]}))})),P=function(e){var t,r=e["data-testid"],o=e.appKey,f=e.assetType,m=e.classes,y=e.companyId,h=e.currentValue,g=e.disabled,x=e.disableClearable,j=e.errorText,P=e.isMultiple,A=e.isNullable,C=e.label,I=e.onChange,q=e.parentAssetId,L=e.parentAssetType,M=e.queryParams,R=e.autocompleteProps,w=void 0===R?{}:R,E=e.assetFields,D=n.useState(P?[]:null),H=b.default(D,2),N=H[0],_=H[1],F=n.useState(""),V=b.default(F,2),K=V[0],k=V[1],z=n.useState(""),B=b.default(z,2),G=B[0],W=B[1],J=n.useState(!1),Q=b.default(J,2),U=Q[0],X=Q[1],Y=n.useState(1),Z=b.default(Y,2),$=Z[0],ee=Z[1],te=n.useState(!0),re=b.default(te,2),ne=re[0],oe=re[1];n.useEffect((function(){_(P?[]:null),ee(1),X(!1)}),[f]);var ae=p.useAssetAutoCompleteSelectData({appKey:o,assetType:f,companyId:y,currentValue:h,isMultiple:P,parentAssetId:q,parentAssetType:L,scrollPage:$,searchText:K,setCurrentOption:_,queryParams:M,assetFields:E}),ie=ae.assets,le=ae.loading;n.useEffect((function(){var e=ie.length>=d.PER_PAGE*$;oe(e)}),[ie,$]);var se=n.useMemo((function(){return a.debounce((function(e){ee(1),k(e)}),200)}),[]),ue=n.useMemo((function(){return a.debounce((function(){return ee((function(e){return e+1}))}),250)}),[]),de={endAdornment:m.endAdornment,inputRoot:m.inputRoot,listbox:m.listbox,noOptions:m.noOptions,option:m.option,popupIndicator:m.popupIndicator,root:m.root};return c.jsxs(i.FormControl,{disabled:g,error:!!j,className:m.formControl,children:[!A&&c.jsx(i.InputLabel,{shrink:!0,children:C}),c.jsx(i.Tooltip,{title:null!==(t=null==N?void 0:N.name)&&void 0!==t?t:"",children:c.jsx(s.Autocomplete,O(O({disabled:g,blurOnSelect:!0,classes:de,clearOnBlur:!0,clearOnEscape:!0,"data-testid":r,disableClearable:x,filterOptions:a.identity,getOptionLabel:function(e){return null==e?void 0:e.name},getOptionSelected:function(e,t){return e&&t&&e.id===t.id},inputValue:U?G:(null==N?void 0:N.name)||"",ListboxComponent:S,ListboxProps:{onScroll:function(e){if(ne&&!le){var t=e.currentTarget;t.scrollTop+t.clientHeight>t.scrollHeight-d.SCROLL_THRESHOLD&&ue()}},loading:le,hasMore:ne},options:ie,onChange:function(e,t){var r;_(t),I(P?t.map((function(e){return e.id})):null!==(r=null==t?void 0:t.id)&&void 0!==r?r:null,t)},onClose:function(){W(""),k(""),X(!1),ee(1)},onInputChange:function(e,t,r){"input"===r?(W(t),X(!0),se(t)):k("")},noOptionsText:c.jsx(T,{text:le?"Loading...":"No options"}),renderInput:function(e){return c.jsx(i.TextField,O(O({},e),{},{variant:"standard",placeholder:"Search for asset..."},!P&&{InputProps:O(O({},e.InputProps),{},{startAdornment:c.jsx(i.InputAdornment,{children:c.jsx(l.Search,{className:m.searchIcon})})})}))},renderOption:function(e){var t=e.id,r=e.name;return c.jsx(u,{"data-testid":"".concat(v,"_option_").concat(r,"MenuItem"),children:P&&h.includes(t)?"".concat(r," (already selected)"):r},t)},value:N,multiple:P},P&&{renderTags:function(e,t){return e.map((function(e,r){return c.jsx(i.Chip,O({label:null==e?void 0:e.name},t({index:r})),e.id)}))},getOptionDisabled:function(e){return h.includes(e.id)}}),w))}),c.jsx(i.FormHelperText,{children:j})]})};P.defaultProps={label:"Choose An Asset",currentValue:void 0,disableClearable:!0,isNullable:!1,parentAssetId:void 0,parentAssetType:void 0,companyId:void 0,errorText:"","data-testid":"".concat(v,"_autoComplete"),disabled:!1,isMultiple:!1,appKey:null,queryParams:{}},P.propTypes={label:h.default.string,currentValue:h.default.oneOfType([h.default.number,h.default.arrayOf(h.default.number)]),isNullable:h.default.bool,onChange:h.default.func.isRequired,classes:h.default.shape({}).isRequired,disableClearable:h.default.bool,parentAssetId:h.default.number,parentAssetType:h.default.string,companyId:h.default.number,assetType:h.default.string.isRequired,errorText:h.default.string,"data-testid":h.default.string,disabled:h.default.bool,isMultiple:h.default.bool,appKey:h.default.string,queryParams:h.default.shape({})};var A=i.withStyles((function(e){return{formControl:{},listbox:{maxHeight:350},root:{fontSize:16},inputRoot:{paddingTop:16,padding:"8px 0",paddingBottom:0,width:350,fontSize:16},popupIndicator:{display:"none"},option:{paddingLeft:"16px !important",height:36,"&[aria-disabled=true]":{color:e.palette.primary.text9,opacity:1,backgroundColor:"unset"}},noOptions:{padding:0},searchIcon:{fontSize:"20px !important"}}}))(P);module.exports=A;
|
|
2
2
|
//# sourceMappingURL=AssetEditorAutocomplete.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetEditorAutocomplete.js","sources":["../../../../src/components/AssetEditor/AssetEditorAutocomplete.js"],"sourcesContent":["import { useMemo, useState, useEffect, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { debounce, identity } from 'lodash';\nimport {\n FormControl,\n InputLabel,\n TextField,\n FormHelperText,\n withStyles,\n Typography,\n List,\n InputAdornment,\n Chip,\n Tooltip,\n} from '@material-ui/core';\nimport { Search as SearchIcon } from '@material-ui/icons';\nimport { Autocomplete } from '@material-ui/lab';\n\nimport TruncatedText from '../TruncatedText';\n\nimport { PER_PAGE, SCROLL_THRESHOLD } from './constants';\nimport { useAssetAutoCompleteSelectData } from './effects';\n\nconst PAGE_NAME = 'DC_SingleAssetEditorAutocomplete';\n\nconst muiStyles = theme => ({\n formControl: {},\n listbox: { maxHeight: 350 },\n root: { fontSize: 16 },\n inputRoot: {\n paddingTop: 16,\n padding: '8px 0',\n paddingBottom: 0,\n width: 350,\n fontSize: 16,\n },\n popupIndicator: { display: 'none' },\n option: {\n paddingLeft: '16px !important',\n height: 36,\n '&[aria-disabled=true]': {\n color: theme.palette.primary.text9,\n opacity: 1,\n backgroundColor: 'unset',\n },\n },\n noOptions: { padding: 0 },\n searchIcon: { fontSize: '20px !important' },\n});\n\nconst infoListItemStyles = {\n paddingLeft: '16px',\n height: 36,\n listStyleType: 'none',\n display: 'flex',\n alignItems: 'center',\n};\n\n/* eslint-disable react/prop-types */\nconst InfoListItem = ({ text = 'Loading...' }) => (\n <li key=\"loading\" style={infoListItemStyles}>\n <Typography variant=\"body2\" color=\"textSecondary\">\n {text}\n </Typography>\n </li>\n);\n\nconst ListboxComponent = forwardRef(({ children, loading, hasMore, ...otherProps }, ref) => (\n <List {...otherProps} ref={ref} role=\"listbox\">\n {children}\n {(hasMore || loading) && <InfoListItem />}\n </List>\n));\n/* eslint-enable react/prop-types */\n\nconst AssetEditorAutocomplete = ({\n 'data-testid': dataTestId = DEFAULT_ASSET_EDITOR_AUTOCOMPLETE_DATA_TESTID,\n appKey = null,\n assetType,\n classes,\n companyId,\n currentValue,\n disabled = false,\n disableClearable = true,\n errorText = '',\n isMultiple = false,\n isNullable = false,\n label = 'Choose An Asset',\n onChange,\n parentAssetId,\n parentAssetType,\n queryParams = DEFAULT_ASSET_EDITOR_AUTOCOMPLETE_QUERY_PARAMS,\n autocompleteProps = {},\n assetFields,\n}) => {\n // NOTE: Store currently selected option\n const [currentOption, setCurrentOption] = useState(isMultiple ? [] : null);\n\n const [searchText, setSearchText] = useState(''); // NOTE: For ui input\n const [searchValue, setSearchValue] = useState(''); // NOTE: Used for api filtering\n const [isSearchMode, setSearchMode] = useState(false);\n\n const [scrollPage, setScrollPage] = useState(1);\n const [hasMore, setHasMore] = useState(true);\n\n useEffect(() => {\n // NOTE: Asset type has been changed. Clear currently selected option\n setCurrentOption(isMultiple ? [] : null);\n setScrollPage(1);\n setSearchMode(false);\n }, [assetType]);\n\n const { assets, loading } = useAssetAutoCompleteSelectData({\n appKey,\n assetType,\n companyId,\n currentValue,\n isMultiple,\n parentAssetId,\n parentAssetType,\n scrollPage,\n searchText,\n setCurrentOption,\n queryParams,\n assetFields,\n });\n\n useEffect(() => {\n const hasMoreAssets = assets.length >= PER_PAGE * scrollPage;\n setHasMore(hasMoreAssets);\n }, [assets, scrollPage]);\n\n const onInputChange = useMemo(\n () =>\n debounce(value => {\n setScrollPage(1);\n setSearchText(value);\n }, 200),\n []\n );\n\n const handleInputChange = (event, value, reason) => {\n if (reason === 'input') {\n setSearchValue(value);\n setSearchMode(true);\n onInputChange(value); // NOTE: Trigger api call\n } else {\n // NOTE: Clean searchText for \"reset\" and \"clear\" reasons\n setSearchText('');\n }\n };\n\n const handleFetchNext = useMemo(\n () => debounce(() => setScrollPage(prevScrollPage => prevScrollPage + 1), 250),\n []\n );\n const onClose = () => {\n setSearchValue('');\n setSearchText('');\n setSearchMode(false);\n setScrollPage(1);\n };\n\n const onScrollListbox = event => {\n if (!hasMore || loading) return;\n const listboxNode = event.currentTarget;\n if (\n listboxNode.scrollTop + listboxNode.clientHeight >\n listboxNode.scrollHeight - SCROLL_THRESHOLD\n ) {\n handleFetchNext();\n }\n };\n\n const renderInput = params => (\n <TextField\n {...params}\n variant=\"standard\"\n placeholder=\"Search for asset...\"\n {...(!isMultiple && {\n InputProps: {\n ...params.InputProps,\n startAdornment: (\n <InputAdornment>\n <SearchIcon className={classes.searchIcon} />\n </InputAdornment>\n ),\n },\n })}\n />\n );\n\n const renderOption = ({ id, name }) => (\n <TruncatedText key={id} data-testid={`${PAGE_NAME}_option_${name}MenuItem`}>\n {isMultiple && currentValue.includes(id) ? `${name} (already selected)` : name}\n </TruncatedText>\n );\n\n const autocompleteClasses = {\n endAdornment: classes.endAdornment,\n inputRoot: classes.inputRoot,\n listbox: classes.listbox,\n noOptions: classes.noOptions,\n option: classes.option,\n popupIndicator: classes.popupIndicator,\n root: classes.root,\n };\n\n return (\n <FormControl disabled={disabled} error={!!errorText} className={classes.formControl}>\n {!isNullable && <InputLabel shrink>{label}</InputLabel>}\n <Tooltip title={currentOption?.name ?? ''}>\n <Autocomplete\n disabled={disabled}\n blurOnSelect\n classes={autocompleteClasses}\n clearOnBlur\n clearOnEscape\n data-testid={dataTestId}\n disableClearable={disableClearable}\n filterOptions={identity}\n getOptionLabel={option => option?.name}\n getOptionSelected={(option, value) => option && value && option.id === value.id}\n inputValue={isSearchMode ? searchValue : currentOption?.name || ''}\n ListboxComponent={ListboxComponent}\n ListboxProps={{ onScroll: onScrollListbox, loading, hasMore }}\n options={assets}\n onChange={(event, selected) => {\n setCurrentOption(selected);\n onChange(isMultiple ? selected.map(({ id }) => id) : selected?.id ?? null, selected);\n }}\n onClose={onClose}\n onInputChange={handleInputChange}\n noOptionsText={<InfoListItem text={loading ? 'Loading...' : 'No options'} />}\n renderInput={renderInput}\n renderOption={renderOption}\n value={currentOption}\n multiple={isMultiple}\n {...(isMultiple && {\n renderTags: (value, getTagProps) => {\n return value.map((option, index) => (\n <Chip key={option.id} label={option?.name} {...getTagProps({ index })} />\n ));\n },\n getOptionDisabled: option => currentValue.includes(option.id),\n })}\n {...autocompleteProps}\n />\n </Tooltip>\n <FormHelperText>{errorText}</FormHelperText>\n </FormControl>\n );\n};\n\nconst DEFAULT_ASSET_EDITOR_AUTOCOMPLETE_DATA_TESTID = `${PAGE_NAME}_autoComplete`;\nconst DEFAULT_ASSET_EDITOR_AUTOCOMPLETE_QUERY_PARAMS = {};\n\nAssetEditorAutocomplete.propTypes = {\n label: PropTypes.string,\n currentValue: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.number)]),\n isNullable: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n classes: PropTypes.shape({}).isRequired,\n disableClearable: PropTypes.bool,\n parentAssetId: PropTypes.number,\n parentAssetType: PropTypes.string,\n companyId: PropTypes.number,\n assetType: PropTypes.string.isRequired,\n errorText: PropTypes.string,\n 'data-testid': PropTypes.string,\n disabled: PropTypes.bool,\n isMultiple: PropTypes.bool,\n appKey: PropTypes.string,\n queryParams: PropTypes.shape({}),\n};\n\nexport default withStyles(muiStyles)(AssetEditorAutocomplete);\n"],"names":["PAGE_NAME","infoListItemStyles","paddingLeft","height","listStyleType","display","alignItems","InfoListItem","_ref","_ref$text","text","_jsx","style","children","Typography","variant","color","ListboxComponent","forwardRef","ref","loading","hasMore","otherProps","_objectWithoutProperties","_ref2","_excluded","_jsxs","List","_objectSpread","role","AssetEditorAutocomplete","_ref3","_currentOption$name","_ref3$dataTestid","dataTestId","DEFAULT_ASSET_EDITOR_AUTOCOMPLETE_DATA_TESTID","_ref3$appKey","appKey","assetType","classes","companyId","currentValue","_ref3$disabled","disabled","_ref3$disableClearabl","disableClearable","_ref3$errorText","errorText","_ref3$isMultiple","isMultiple","_ref3$isNullable","isNullable","_ref3$label","label","onChange","parentAssetId","parentAssetType","_ref3$queryParams","queryParams","DEFAULT_ASSET_EDITOR_AUTOCOMPLETE_QUERY_PARAMS","_ref3$autocompletePro","autocompleteProps","assetFields","_useState","useState","_useState2","_slicedToArray","currentOption","setCurrentOption","_useState4","_useState3","searchText","setSearchText","_useState6","_useState5","searchValue","setSearchValue","_useState8","_useState7","isSearchMode","setSearchMode","_useState10","_useState9","scrollPage","setScrollPage","_useState12","_useState11","setHasMore","useEffect","_useAssetAutoComplete","useAssetAutoCompleteSelectData","assets","hasMoreAssets","length","PER_PAGE","onInputChange","useMemo","debounce","value","handleFetchNext","prevScrollPage","autocompleteClasses","endAdornment","inputRoot","listbox","noOptions","option","popupIndicator","root","FormControl","error","className","formControl","InputLabel","shrink","Tooltip","title","name","Autocomplete","blurOnSelect","clearOnBlur","clearOnEscape","filterOptions","identity","getOptionLabel","getOptionSelected","id","inputValue","ListboxProps","onScroll","event","listboxNode","currentTarget","scrollTop","clientHeight","scrollHeight","SCROLL_THRESHOLD","options","selected","_selected$id","map","_ref5","onClose","reason","noOptionsText","renderInput","params","TextField","placeholder","InputProps","startAdornment","InputAdornment","SearchIcon","searchIcon","renderOption","_ref4","TruncatedText","includes","multiple","renderTags","getTagProps","index","Chip","getOptionDisabled","FormHelperText","propTypes","PropTypes","string","oneOfType","number","arrayOf","bool","func","isRequired","shape","AssetEditorAutocomplete$1","withStyles","theme","maxHeight","fontSize","paddingTop","padding","paddingBottom","width","palette","primary","text9","opacity","backgroundColor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AssetEditorAutocomplete.js","sources":["../../../../src/components/AssetEditor/AssetEditorAutocomplete.js"],"sourcesContent":["import { useMemo, useState, useEffect, forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { debounce, identity } from 'lodash';\nimport {\n FormControl,\n InputLabel,\n TextField,\n FormHelperText,\n withStyles,\n Typography,\n List,\n InputAdornment,\n Chip,\n Tooltip,\n} from '@material-ui/core';\nimport { Search as SearchIcon } from '@material-ui/icons';\nimport { Autocomplete } from '@material-ui/lab';\n\nimport TruncatedText from '../TruncatedText';\n\nimport { PER_PAGE, SCROLL_THRESHOLD } from './constants';\nimport { useAssetAutoCompleteSelectData } from './effects';\n\nconst PAGE_NAME = 'DC_SingleAssetEditorAutocomplete';\n\nconst muiStyles = theme => ({\n formControl: {},\n listbox: { maxHeight: 350 },\n root: { fontSize: 16 },\n inputRoot: {\n paddingTop: 16,\n padding: '8px 0',\n paddingBottom: 0,\n width: 350,\n fontSize: 16,\n },\n popupIndicator: { display: 'none' },\n option: {\n paddingLeft: '16px !important',\n height: 36,\n '&[aria-disabled=true]': {\n color: theme.palette.primary.text9,\n opacity: 1,\n backgroundColor: 'unset',\n },\n },\n noOptions: { padding: 0 },\n searchIcon: { fontSize: '20px !important' },\n});\n\nconst infoListItemStyles = {\n paddingLeft: '16px',\n height: 36,\n listStyleType: 'none',\n display: 'flex',\n alignItems: 'center',\n};\n\n/* eslint-disable react/prop-types */\nconst InfoListItem = ({ text = 'Loading...' }) => (\n <li key=\"loading\" style={infoListItemStyles}>\n <Typography variant=\"body2\" color=\"textSecondary\">\n {text}\n </Typography>\n </li>\n);\n\nconst ListboxComponent = forwardRef(({ children, loading, hasMore, ...otherProps }, ref) => (\n <List {...otherProps} ref={ref} role=\"listbox\">\n {children}\n {(hasMore || loading) && <InfoListItem />}\n </List>\n));\n/* eslint-enable react/prop-types */\n\nconst AssetEditorAutocomplete = ({\n 'data-testid': dataTestId,\n appKey,\n assetType,\n classes,\n companyId,\n currentValue,\n disabled,\n disableClearable,\n errorText,\n isMultiple,\n isNullable,\n label,\n onChange,\n parentAssetId,\n parentAssetType,\n queryParams,\n autocompleteProps = {},\n assetFields,\n}) => {\n // NOTE: Store currently selected option\n const [currentOption, setCurrentOption] = useState(isMultiple ? [] : null);\n\n const [searchText, setSearchText] = useState(''); // NOTE: For ui input\n const [searchValue, setSearchValue] = useState(''); // NOTE: Used for api filtering\n const [isSearchMode, setSearchMode] = useState(false);\n\n const [scrollPage, setScrollPage] = useState(1);\n const [hasMore, setHasMore] = useState(true);\n\n useEffect(() => {\n // NOTE: Asset type has been changed. Clear currently selected option\n setCurrentOption(isMultiple ? [] : null);\n setScrollPage(1);\n setSearchMode(false);\n }, [assetType]);\n\n const { assets, loading } = useAssetAutoCompleteSelectData({\n appKey,\n assetType,\n companyId,\n currentValue,\n isMultiple,\n parentAssetId,\n parentAssetType,\n scrollPage,\n searchText,\n setCurrentOption,\n queryParams,\n assetFields,\n });\n\n useEffect(() => {\n const hasMoreAssets = assets.length >= PER_PAGE * scrollPage;\n setHasMore(hasMoreAssets);\n }, [assets, scrollPage]);\n\n const onInputChange = useMemo(\n () =>\n debounce(value => {\n setScrollPage(1);\n setSearchText(value);\n }, 200),\n []\n );\n\n const handleInputChange = (event, value, reason) => {\n if (reason === 'input') {\n setSearchValue(value);\n setSearchMode(true);\n onInputChange(value); // NOTE: Trigger api call\n } else {\n // NOTE: Clean searchText for \"reset\" and \"clear\" reasons\n setSearchText('');\n }\n };\n\n const handleFetchNext = useMemo(\n () => debounce(() => setScrollPage(prevScrollPage => prevScrollPage + 1), 250),\n []\n );\n const onClose = () => {\n setSearchValue('');\n setSearchText('');\n setSearchMode(false);\n setScrollPage(1);\n };\n\n const onScrollListbox = event => {\n if (!hasMore || loading) return;\n const listboxNode = event.currentTarget;\n if (\n listboxNode.scrollTop + listboxNode.clientHeight >\n listboxNode.scrollHeight - SCROLL_THRESHOLD\n ) {\n handleFetchNext();\n }\n };\n\n const renderInput = params => (\n <TextField\n {...params}\n variant=\"standard\"\n placeholder=\"Search for asset...\"\n {...(!isMultiple && {\n InputProps: {\n ...params.InputProps,\n startAdornment: (\n <InputAdornment>\n <SearchIcon className={classes.searchIcon} />\n </InputAdornment>\n ),\n },\n })}\n />\n );\n\n const renderOption = ({ id, name }) => (\n <TruncatedText key={id} data-testid={`${PAGE_NAME}_option_${name}MenuItem`}>\n {isMultiple && currentValue.includes(id) ? `${name} (already selected)` : name}\n </TruncatedText>\n );\n\n const autocompleteClasses = {\n endAdornment: classes.endAdornment,\n inputRoot: classes.inputRoot,\n listbox: classes.listbox,\n noOptions: classes.noOptions,\n option: classes.option,\n popupIndicator: classes.popupIndicator,\n root: classes.root,\n };\n\n return (\n <FormControl disabled={disabled} error={!!errorText} className={classes.formControl}>\n {!isNullable && <InputLabel shrink>{label}</InputLabel>}\n <Tooltip title={currentOption?.name ?? ''}>\n <Autocomplete\n disabled={disabled}\n blurOnSelect\n classes={autocompleteClasses}\n clearOnBlur\n clearOnEscape\n data-testid={dataTestId}\n disableClearable={disableClearable}\n filterOptions={identity}\n getOptionLabel={option => option?.name}\n getOptionSelected={(option, value) => option && value && option.id === value.id}\n inputValue={isSearchMode ? searchValue : currentOption?.name || ''}\n ListboxComponent={ListboxComponent}\n ListboxProps={{ onScroll: onScrollListbox, loading, hasMore }}\n options={assets}\n onChange={(event, selected) => {\n setCurrentOption(selected);\n onChange(isMultiple ? selected.map(({ id }) => id) : selected?.id ?? null, selected);\n }}\n onClose={onClose}\n onInputChange={handleInputChange}\n noOptionsText={<InfoListItem text={loading ? 'Loading...' : 'No options'} />}\n renderInput={renderInput}\n renderOption={renderOption}\n value={currentOption}\n multiple={isMultiple}\n {...(isMultiple && {\n renderTags: (value, getTagProps) => {\n return value.map((option, index) => (\n <Chip key={option.id} label={option?.name} {...getTagProps({ index })} />\n ));\n },\n getOptionDisabled: option => currentValue.includes(option.id),\n })}\n {...autocompleteProps}\n />\n </Tooltip>\n <FormHelperText>{errorText}</FormHelperText>\n </FormControl>\n );\n};\n\nAssetEditorAutocomplete.defaultProps = {\n label: 'Choose An Asset',\n currentValue: undefined,\n disableClearable: true,\n isNullable: false,\n parentAssetId: undefined,\n parentAssetType: undefined,\n companyId: undefined,\n errorText: '',\n 'data-testid': `${PAGE_NAME}_autoComplete`,\n disabled: false,\n isMultiple: false,\n appKey: null,\n queryParams: {},\n};\n\nAssetEditorAutocomplete.propTypes = {\n label: PropTypes.string,\n currentValue: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.number)]),\n isNullable: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n classes: PropTypes.shape({}).isRequired,\n disableClearable: PropTypes.bool,\n parentAssetId: PropTypes.number,\n parentAssetType: PropTypes.string,\n companyId: PropTypes.number,\n assetType: PropTypes.string.isRequired,\n errorText: PropTypes.string,\n 'data-testid': PropTypes.string,\n disabled: PropTypes.bool,\n isMultiple: PropTypes.bool,\n appKey: PropTypes.string,\n queryParams: PropTypes.shape({}),\n};\n\nexport default withStyles(muiStyles)(AssetEditorAutocomplete);\n"],"names":["PAGE_NAME","infoListItemStyles","paddingLeft","height","listStyleType","display","alignItems","InfoListItem","_ref","_ref$text","text","_jsx","style","children","Typography","variant","color","ListboxComponent","forwardRef","ref","loading","hasMore","otherProps","_objectWithoutProperties","_ref2","_excluded","_jsxs","List","_objectSpread","role","AssetEditorAutocomplete","_ref3","_currentOption$name","dataTestId","appKey","assetType","classes","companyId","currentValue","disabled","disableClearable","errorText","isMultiple","isNullable","label","onChange","parentAssetId","parentAssetType","queryParams","_ref3$autocompletePro","autocompleteProps","assetFields","_useState","useState","_useState2","_slicedToArray","currentOption","setCurrentOption","_useState4","_useState3","searchText","setSearchText","_useState6","_useState5","searchValue","setSearchValue","_useState8","_useState7","isSearchMode","setSearchMode","_useState10","_useState9","scrollPage","setScrollPage","_useState12","_useState11","setHasMore","useEffect","_useAssetAutoComplete","useAssetAutoCompleteSelectData","assets","hasMoreAssets","length","PER_PAGE","onInputChange","useMemo","debounce","value","handleFetchNext","prevScrollPage","autocompleteClasses","endAdornment","inputRoot","listbox","noOptions","option","popupIndicator","root","FormControl","error","className","formControl","InputLabel","shrink","Tooltip","title","name","Autocomplete","blurOnSelect","clearOnBlur","clearOnEscape","filterOptions","identity","getOptionLabel","getOptionSelected","id","inputValue","ListboxProps","onScroll","event","listboxNode","currentTarget","scrollTop","clientHeight","scrollHeight","SCROLL_THRESHOLD","options","selected","_selected$id","map","_ref5","onClose","reason","noOptionsText","renderInput","params","TextField","placeholder","InputProps","startAdornment","InputAdornment","SearchIcon","searchIcon","renderOption","_ref4","TruncatedText","includes","multiple","renderTags","getTagProps","index","Chip","getOptionDisabled","FormHelperText","defaultProps","undefined","concat","propTypes","PropTypes","string","oneOfType","number","arrayOf","bool","func","isRequired","shape","AssetEditorAutocomplete$1","withStyles","theme","maxHeight","fontSize","paddingTop","padding","paddingBottom","width","palette","primary","text9","opacity","backgroundColor"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("@babel/runtime/helpers/toConsumableArray"),t=require("@babel/runtime/helpers/defineProperty"),s=require("@babel/runtime/helpers/slicedToArray"),a=require("react"),r=require("prop-types"),l=require("lodash"),n=require("classnames"),i=require("@material-ui/core"),u=require("./components/PrimaryAssetSelect.js"),d=require("./components/SecondaryAssetSelect.js");require("./components/SelectItem.js");var o=require("./components/MultipleAssetsToggle.js"),c=require("./components/PrimaryAssetSelectV2.js"),p=require("./constants.js"),f=require("./utils/index.js");require("../../constants/goals.js");var y=require("../../constants/segment.js");require("../../constants/alerts.js"),require("../../constants/apps.js"),require("../../constants/drillstring.js"),require("../../constants/completion.js"),require("../../constants/appPackages.js"),require("../../constants/notifications.js"),require("../../constants/feed.js"),require("../../constants/bha.js");var A=require("../../constants/assetTypes.js");require("../../constants/corvaCompanyId.js"),require("../GradientManager/configuration/constants.js");var m=require("react/jsx-runtime");function g(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/toConsumableArray"),t=require("@babel/runtime/helpers/defineProperty"),s=require("@babel/runtime/helpers/slicedToArray"),a=require("react"),r=require("prop-types"),l=require("lodash"),n=require("classnames"),i=require("@material-ui/core"),u=require("./components/PrimaryAssetSelect.js"),d=require("./components/SecondaryAssetSelect.js");require("./components/SelectItem.js");var o=require("./components/MultipleAssetsToggle.js"),c=require("./components/PrimaryAssetSelectV2.js"),p=require("./constants.js"),f=require("./utils/index.js");require("../../constants/goals.js");var y=require("../../constants/segment.js");require("../../constants/alerts.js"),require("../../constants/apps.js"),require("../../constants/drillstring.js"),require("../../constants/completion.js"),require("../../constants/appPackages.js"),require("../../constants/notifications.js"),require("../../constants/feed.js"),require("../../constants/bha.js");var A=require("../../constants/assetTypes.js");require("../../constants/corvaCompanyId.js"),require("../GradientManager/configuration/constants.js");var m=require("react/jsx-runtime");function g(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var S=g(e),b=g(t),v=g(s),T=g(r),j=g(n);function h(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function q(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?h(Object(s),!0).forEach((function(t){b.default(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):h(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}var I=i.makeStyles({title:{fontWeight:400,fontSize:20,margin:"24px 0 16px"}}),E=function(e){var t=e.appKey,s=e.appType,r=e.className,n=e.company,i=e.defaultValue,g=e.secondaryDefaultValue,T=e.disabled,h=e.isHiddenTitle,E=e.isNullable,P=e.label,_=e.onSettingsChange,C=e.primaryAssetFields,O=e.secondaryAssetFields,D=e.isExtendedSelect,F=e.isRequiredAssetId,N=e.settings,V=e.isVisibleMultipleAssetsToggle,x=e.assetsLimit,R=e.isDisabledSecondaryAssetSelect,w=e.isDrillingPlatformApp,G=e.secondaryAssetHelpText,L=e.onChange,Y=e.elementsClassNames,H=l.get(s,["primaryAsset","assetType","type"]),K=l.get(s,["primaryAsset","assetType","id"]),M=l.get(s,["primaryAsset","assetType","label"]),k=l.get(s,["primaryAsset","groups"]),U=l.get(s,["secondaryAsset"],!1),W=l.get(s,["secondaryAsset","assetType","type"]),z=l.get(s,["secondaryAsset","assetType","id"]),B=l.get(s,["secondaryAsset","assetType","label"]),J=l.get(N,K),Q=J?Number(J):null,X=l.get(N,z)?Number(l.get(N,z)):g||null,Z=a.useState({id:Q||i}),$=v.default(Z,2),ee=$[0],te=$[1],se=a.useState(X),ae=v.default(se,2),re=ae[0],le=ae[1],ne=a.useState(!1),ie=v.default(ne,2),ue=ie[0],de=ie[1],oe=a.useState(),ce=v.default(oe,2),pe=ce[0],fe=ce[1],ye=a.useState(!1),Ae=v.default(ye,2),me=Ae[0],ge=Ae[1],Se=a.useRef(!1),be=function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];_.apply(void 0,t.concat([Se.current]))},ve=I(),Te=H===A.ASSET_TYPES.rig.type||H===A.ASSET_TYPES.intervention_unit.type?c:u,je=w&&null!=ee&&ee.assetId?null==ee?void 0:ee.assetId:null==ee?void 0:ee.id,he=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};te(t),le(null),de(!1);var s=(e={},b.default(e,K,null),b.default(e,z,null),b.default(e,"assets",null),e);be(s)},qe=U&&(me?Boolean(ee.length)&&!ue:(null==ee?void 0:ee.id)&&!ue);return a.useEffect((function(){l.isEmpty(N)&&he(me&&[])}),[N]),m.jsxs("div",{className:j.default(ve.main,r),children:[!h&&m.jsx("div",{className:j.default(ve.title,Y.title),children:"Asset"}),V&&m.jsx(o,{onChange:function(e){Se.current=!!e,ge(e),he(e&&[])},className:Y.multiAssetSwitch,checked:me}),m.jsx("div",{className:Y.primaryAssetSelect,children:m.jsx(Te,{appKey:t,assetType:H,company:n,currentOption:ee,currentValue:null==ee?void 0:ee.id,"data-testid":"".concat("DC_AppSettingsAssetEditor","_primaryAssetEditorAutocomplete"),isSecondaryAssetPresent:U,defaultValue:i,disableClearable:!E,disabled:T,isNullable:E,isRequiredAssetId:F,label:P,multiple:me,onChange:function(e){if(L({primary:e}),me)!function(e){var t,s;if(!(e.length>x)){var a=(null===(t=e[0])||void 0===t?void 0:t.group)===y.PAD_GROUP.name,r=(null===(s=e[0])||void 0===s?void 0:s.group)===y.FRAC_FLEET_GROUP.name,l=1===e.length&&a,n=1===e.length&&r;if(l?(de(!0),fe(y.PAD_GROUP)):n&&fe(y.FRAC_FLEET_GROUP),a){te(e);var i=null==e?void 0:e.reduce((function(e,t){var s=t.parentFracFleetId,a=t.id,r={fracFleetId:s,padId:a};return D&&(r.assetId=s,r.replacedPadId=a),s?[].concat(S.default(e),[r]):e}),[]);be({assets:i})}else{te(e);var u=e.reduce((function(e,t){var s=b.default({},"".concat(t.type,"Id"),t.id);return F&&(s.assetId=t.assetId),D&&(s.assetId=t.assetId||t.id),[].concat(S.default(e),[s])}),[]);be({assets:u})}}}(e);else{var t=e.id,s=e.type,a=e.parentFracFleetId;if(t)if(s!==A.ASSET_TYPES.pad.type){te(e),le(null);var r=b.default({},K,t);F&&(r.assetId=e.assetId),z&&(r[z]=null),be(r),de(!1)}else{var l;te(e),de(!0),le(t);var n=(l={},b.default(l,A.ASSET_TYPES.frac_fleet.id,Number(a)),b.default(l,A.ASSET_TYPES.pad.id,t),l);be(n)}}},setCurrentOption:te,selectedGroup:pe,onGroupChange:function(e){fe(e),he(me&&[])},onGroupReset:function(){fe(null),he(me&&[])},groups:k,onInputReset:he,onActiveAssetIdChange:function(e){te((function(t){return q(q({},t),{},{activeWellId:e})}))},isDrillingPlatformApp:w,assetFields:f.getPrimaryAssetFields(H,C,w)})}),qe&&m.jsxs("div",{className:Y.secondaryAssetSelect,children:[G,m.jsx(d.default,{assetFields:W===A.ASSET_TYPES.pad.type?[].concat(S.default(O),["pad.active","pad.current"]):O,activeWellId:null==ee?void 0:ee.activeWellId,appKey:t,assetType:W,company:n,currentValue:re,"data-testid":"".concat("DC_AppSettingsAssetEditor","_secondaryAutoComplete"),defaultValue:me?p.ACTIVE_ASSETS_ID:p.ACTIVE_ASSET_ID,disabled:me||R||T,isDrillingPlatformApp:w,isNullable:E,isRequiredAssetId:F,onChange:function(e){var t=e.id,s=e.assetId,a=e.name;L({secondary:{name:a}}),le(t);var r=t===p.ACTIVE_ASSET_ID?null:t,l=b.default({},z,r);F&&W===A.ASSET_TYPES.well.type?be(q(q({},l),{},{replacedAssetId:w?r:s})):be(l)},parentAssetId:je,parentAssetType:w?"parent_asset_id":H,primaryAssetLabel:M,secondaryAssetLabel:B})]})]})};E.defaultProps={assetsLimit:null,label:"Choose An Asset",isNullable:!1,defaultValue:void 0,secondaryDefaultValue:void 0,isHiddenTitle:!1,appKey:null,isVisibleMultipleAssetsToggle:!1,isDisabledSecondaryAssetSelect:!1,primaryAssetFields:[],secondaryAssetFields:[],secondaryAssetHelpText:null,onChange:l.noop,elementsClassNames:{}},E.propTypes={assetsLimit:T.default.number,settings:T.default.shape({}).isRequired,appType:T.default.shape({}).isRequired,defaultValue:T.default.any,secondaryDefaultValue:T.default.any,onSettingsChange:T.default.func.isRequired,label:T.default.string,isNullable:T.default.bool,isHiddenTitle:T.default.bool,appKey:T.default.string,isVisibleMultipleAssetsToggle:T.default.bool,isDisabledSecondaryAssetSelect:T.default.bool,primaryAssetFields:T.default.arrayOf(T.default.shape({})),secondaryAssetFields:T.default.arrayOf(T.default.shape({})),secondaryAssetHelpText:T.default.oneOfType([T.default.element,T.default.string]),onChange:T.default.func,elementsClassNames:T.default.shape({title:T.default.string,multiAssetSwitch:T.default.string,primaryAssetSelect:T.default.string,secondaryAssetSelect:T.default.string})},module.exports=E;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/AssetEditorV2/index.js"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { get, isEmpty, noop } from 'lodash';\nimport classNames from 'classnames';\nimport { makeStyles } from '@material-ui/core';\n\nimport { PrimaryAssetSelect, PrimaryAssetSelectV2, SecondaryAssetSelect } from './components';\nimport { ACTIVE_ASSET_ID, ACTIVE_ASSETS_ID } from './constants';\nimport MultipleAssetsToggle from './components/MultipleAssetsToggle';\nimport { getPrimaryAssetFields } from './utils';\n\nimport { ASSET_TYPES } from '~/constants';\nimport { FRAC_FLEET_GROUP, PAD_GROUP } from '~/constants/segment';\n\nconst useStyles = makeStyles({\n title: { fontWeight: 400, fontSize: 20, margin: '24px 0 16px' },\n});\n\nconst PAGE_NAME = 'DC_AppSettingsAssetEditor';\nconst PARENT_ASSET_ID = 'parent_asset_id';\n\nconst AppSettingsAssetEditor = ({\n appKey = null,\n appType,\n className,\n company,\n defaultValue,\n secondaryDefaultValue,\n disabled,\n isHiddenTitle = false,\n isNullable = false,\n label = 'Choose An Asset',\n onSettingsChange: propsOnSettingsChange,\n primaryAssetFields = DEFAULT_APP_SETTINGS_ASSET_EDITOR_PRIMARY_ASSET_FIELDS,\n secondaryAssetFields = DEFAULT_APP_SETTINGS_ASSET_EDITOR_SECONDARY_ASSET_FIELDS,\n isExtendedSelect,\n isRequiredAssetId,\n settings,\n isVisibleMultipleAssetsToggle = false,\n assetsLimit = null,\n isDisabledSecondaryAssetSelect = false,\n isDrillingPlatformApp,\n secondaryAssetHelpText = null,\n onChange = DEFAULT_APP_SETTINGS_ASSET_EDITOR_ON_CHANGE,\n elementsClassNames = DEFAULT_APP_SETTINGS_ASSET_EDITOR_ELEMENTS_CLASS_NAMES,\n}) => {\n const primaryAssetType = get(appType, ['primaryAsset', 'assetType', 'type']);\n const primaryAssetIdType = get(appType, ['primaryAsset', 'assetType', 'id']);\n const primaryAssetLabel = get(appType, ['primaryAsset', 'assetType', 'label']);\n const primaryAssetSelectGroups = get(appType, ['primaryAsset', 'groups']);\n\n const isSecondaryAssetPresent = get(appType, ['secondaryAsset'], false);\n\n const secondaryAssetType = get(appType, ['secondaryAsset', 'assetType', 'type']);\n const secondaryAssetIdType = get(appType, ['secondaryAsset', 'assetType', 'id']);\n const secondaryAssetLabel = get(appType, ['secondaryAsset', 'assetType', 'label']);\n\n const currentValue = get(settings, primaryAssetIdType);\n const initialPrimaryAssetId = currentValue ? Number(currentValue) : null;\n const initialSecondaryAssetId = get(settings, secondaryAssetIdType)\n ? Number(get(settings, secondaryAssetIdType))\n : secondaryDefaultValue || null;\n const [primaryAsset, setPrimaryAsset] = useState({ id: initialPrimaryAssetId || defaultValue });\n\n const [secondaryAssetId, setSecondaryAssetId] = useState(initialSecondaryAssetId);\n const [isPadSelectedAsPrimaryAsset, setIsPadSelectedAsPrimaryAsset] = useState(false);\n const [selectedGroup, setSelectedGroup] = useState();\n const [isMultipleAssets, setIsMultipleAssets] = useState(false);\n const isMultipleAssetsRef = useRef(false);\n const onSettingsChange = (...args) => {\n propsOnSettingsChange(...args, isMultipleAssetsRef.current);\n };\n\n const styles = useStyles();\n\n const PrimaryAssetSelectComponent =\n primaryAssetType === ASSET_TYPES.rig.type ||\n primaryAssetType === ASSET_TYPES.intervention_unit.type\n ? PrimaryAssetSelectV2\n : PrimaryAssetSelect;\n\n const parentAssetId =\n isDrillingPlatformApp && primaryAsset?.assetId ? primaryAsset?.assetId : primaryAsset?.id;\n\n const onSecondaryAssetChange = ({ id, assetId, name }) => {\n onChange({ secondary: { name } });\n setSecondaryAssetId(id);\n const secondaryAssetId = id === ACTIVE_ASSET_ID ? null : id;\n const assetSettings = { [secondaryAssetIdType]: secondaryAssetId };\n\n if (isRequiredAssetId && secondaryAssetType === ASSET_TYPES.well.type) {\n onSettingsChange({\n ...assetSettings,\n replacedAssetId: isDrillingPlatformApp ? secondaryAssetId : assetId,\n });\n return;\n }\n\n onSettingsChange(assetSettings);\n };\n\n const onMultipleAssetChange = selected => {\n if (selected.length > assetsLimit) return;\n\n const isPadSelected = selected[0]?.group === PAD_GROUP.name;\n const isFracFleetSelected = selected[0]?.group === FRAC_FLEET_GROUP.name;\n const isFirstPadSelected = selected.length === 1 && isPadSelected;\n const isFirstFracFleetSelected = selected.length === 1 && isFracFleetSelected;\n\n if (isFirstPadSelected) {\n setIsPadSelectedAsPrimaryAsset(true);\n setSelectedGroup(PAD_GROUP);\n } else if (isFirstFracFleetSelected) {\n setSelectedGroup(FRAC_FLEET_GROUP);\n }\n\n if (isPadSelected) {\n setPrimaryAsset(selected);\n const assetsSetting = selected?.reduce((acc, { parentFracFleetId, id }) => {\n const settings = {\n fracFleetId: parentFracFleetId,\n padId: id,\n };\n\n if (isExtendedSelect) {\n settings.assetId = parentFracFleetId;\n settings.replacedPadId = id;\n }\n return parentFracFleetId ? [...acc, settings] : acc;\n }, []);\n\n onSettingsChange({\n assets: assetsSetting,\n });\n return;\n }\n\n setPrimaryAsset(selected);\n const assetsSetting = selected.reduce((acc, asset) => {\n const settings = { [`${asset.type}Id`]: asset.id };\n if (isRequiredAssetId) {\n settings.assetId = asset.assetId;\n }\n if (isExtendedSelect) {\n settings.assetId = asset.assetId || asset.id;\n }\n return [...acc, settings];\n }, []);\n onSettingsChange({\n assets: assetsSetting,\n });\n };\n\n const onPrimaryAssetChange = selected => {\n onChange({ primary: selected });\n if (isMultipleAssets) {\n onMultipleAssetChange(selected);\n return;\n }\n const { id, type, parentFracFleetId } = selected;\n if (!id) return;\n if (type === ASSET_TYPES.pad.type) {\n setPrimaryAsset(selected);\n setIsPadSelectedAsPrimaryAsset(true);\n setSecondaryAssetId(id);\n const assetSetting = {\n [ASSET_TYPES.frac_fleet.id]: Number(parentFracFleetId),\n [ASSET_TYPES.pad.id]: id,\n };\n onSettingsChange(assetSetting);\n return;\n }\n\n setPrimaryAsset(selected);\n setSecondaryAssetId(null);\n const assetSetting = { [primaryAssetIdType]: id };\n if (isRequiredAssetId) assetSetting.assetId = selected.assetId;\n if (secondaryAssetIdType) assetSetting[secondaryAssetIdType] = null;\n onSettingsChange(assetSetting);\n setIsPadSelectedAsPrimaryAsset(false);\n };\n\n const handlePrimaryAssetReset = (defaultValue = {}) => {\n setPrimaryAsset(defaultValue);\n setSecondaryAssetId(null);\n\n setIsPadSelectedAsPrimaryAsset(false);\n const assetSetting = {\n [primaryAssetIdType]: null,\n [secondaryAssetIdType]: null,\n assets: null,\n };\n onSettingsChange(assetSetting);\n };\n\n const handleMultipleAssetsChange = checked => {\n isMultipleAssetsRef.current = !!checked;\n setIsMultipleAssets(checked);\n handlePrimaryAssetReset(checked && []);\n };\n\n const handleGroupChange = newGroup => {\n setSelectedGroup(newGroup);\n handlePrimaryAssetReset(isMultipleAssets && []);\n };\n\n const handleGroupReset = () => {\n setSelectedGroup(null);\n handlePrimaryAssetReset(isMultipleAssets && []);\n };\n\n const secondaryAssetSelectIsVisible =\n isSecondaryAssetPresent &&\n (isMultipleAssets\n ? Boolean(primaryAsset.length) && !isPadSelectedAsPrimaryAsset\n : primaryAsset?.id && !isPadSelectedAsPrimaryAsset);\n\n useEffect(() => {\n if (isEmpty(settings)) {\n handlePrimaryAssetReset(isMultipleAssets && []);\n }\n }, [settings]);\n\n return (\n <div className={classNames(styles.main, className)}>\n {!isHiddenTitle && (\n <div className={classNames(styles.title, elementsClassNames.title)}>Asset</div>\n )}\n {isVisibleMultipleAssetsToggle && (\n <MultipleAssetsToggle\n onChange={handleMultipleAssetsChange}\n className={elementsClassNames.multiAssetSwitch}\n checked={isMultipleAssets}\n />\n )}\n <div className={elementsClassNames.primaryAssetSelect}>\n <PrimaryAssetSelectComponent\n appKey={appKey}\n assetType={primaryAssetType}\n company={company}\n currentOption={primaryAsset}\n currentValue={primaryAsset?.id}\n data-testid={`${PAGE_NAME}_primaryAssetEditorAutocomplete`}\n isSecondaryAssetPresent={isSecondaryAssetPresent}\n defaultValue={defaultValue}\n disableClearable={!isNullable}\n disabled={disabled}\n isNullable={isNullable}\n isRequiredAssetId={isRequiredAssetId}\n label={label}\n multiple={isMultipleAssets}\n onChange={onPrimaryAssetChange}\n setCurrentOption={setPrimaryAsset}\n selectedGroup={selectedGroup}\n onGroupChange={handleGroupChange}\n onGroupReset={handleGroupReset}\n groups={primaryAssetSelectGroups}\n onInputReset={handlePrimaryAssetReset}\n onActiveAssetIdChange={activeAssetId => {\n setPrimaryAsset(primaryAsset => ({ ...primaryAsset, activeWellId: activeAssetId }));\n }}\n isDrillingPlatformApp={isDrillingPlatformApp}\n assetFields={getPrimaryAssetFields(\n primaryAssetType,\n primaryAssetFields,\n isDrillingPlatformApp\n )}\n />\n </div>\n {secondaryAssetSelectIsVisible && (\n <div className={elementsClassNames.secondaryAssetSelect}>\n {secondaryAssetHelpText}\n <SecondaryAssetSelect\n assetFields={\n secondaryAssetType === ASSET_TYPES.pad.type\n ? [...secondaryAssetFields, 'pad.active', 'pad.current']\n : secondaryAssetFields\n }\n activeWellId={primaryAsset?.activeWellId}\n appKey={appKey}\n assetType={secondaryAssetType}\n company={company}\n currentValue={secondaryAssetId}\n data-testid={`${PAGE_NAME}_secondaryAutoComplete`}\n defaultValue={isMultipleAssets ? ACTIVE_ASSETS_ID : ACTIVE_ASSET_ID}\n disabled={isMultipleAssets || isDisabledSecondaryAssetSelect || disabled}\n isDrillingPlatformApp={isDrillingPlatformApp}\n isNullable={isNullable}\n isRequiredAssetId={isRequiredAssetId}\n onChange={onSecondaryAssetChange}\n parentAssetId={parentAssetId}\n parentAssetType={isDrillingPlatformApp ? PARENT_ASSET_ID : primaryAssetType}\n primaryAssetLabel={primaryAssetLabel}\n secondaryAssetLabel={secondaryAssetLabel}\n />\n </div>\n )}\n </div>\n );\n};\n\nconst DEFAULT_APP_SETTINGS_ASSET_EDITOR_PRIMARY_ASSET_FIELDS = [];\nconst DEFAULT_APP_SETTINGS_ASSET_EDITOR_SECONDARY_ASSET_FIELDS = [];\nconst DEFAULT_APP_SETTINGS_ASSET_EDITOR_ON_CHANGE = noop;\nconst DEFAULT_APP_SETTINGS_ASSET_EDITOR_ELEMENTS_CLASS_NAMES = {};\n\nAppSettingsAssetEditor.propTypes = {\n assetsLimit: PropTypes.number,\n settings: PropTypes.shape({}).isRequired,\n appType: PropTypes.shape({}).isRequired,\n defaultValue: PropTypes.any, // eslint-disable-line react/forbid-prop-types\n secondaryDefaultValue: PropTypes.any, // eslint-disable-line react/forbid-prop-types\n onSettingsChange: PropTypes.func.isRequired,\n label: PropTypes.string,\n isNullable: PropTypes.bool,\n isHiddenTitle: PropTypes.bool,\n appKey: PropTypes.string,\n isVisibleMultipleAssetsToggle: PropTypes.bool,\n isDisabledSecondaryAssetSelect: PropTypes.bool,\n primaryAssetFields: PropTypes.arrayOf(PropTypes.shape({})),\n secondaryAssetFields: PropTypes.arrayOf(PropTypes.shape({})),\n secondaryAssetHelpText: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\n onChange: PropTypes.func,\n elementsClassNames: PropTypes.shape({\n title: PropTypes.string,\n multiAssetSwitch: PropTypes.string,\n primaryAssetSelect: PropTypes.string,\n secondaryAssetSelect: PropTypes.string,\n }),\n};\n\nexport default AppSettingsAssetEditor;\n"],"names":["useStyles","makeStyles","title","fontWeight","fontSize","margin","AppSettingsAssetEditor","_ref","_ref$appKey","appKey","appType","className","company","defaultValue","secondaryDefaultValue","disabled","_ref$isHiddenTitle","isHiddenTitle","_ref$isNullable","isNullable","_ref$label","label","propsOnSettingsChange","onSettingsChange","_ref$primaryAssetFiel","primaryAssetFields","DEFAULT_APP_SETTINGS_ASSET_EDITOR_PRIMARY_ASSET_FIELDS","_ref$secondaryAssetFi","secondaryAssetFields","DEFAULT_APP_SETTINGS_ASSET_EDITOR_SECONDARY_ASSET_FIELDS","isExtendedSelect","isRequiredAssetId","settings","_ref$isVisibleMultipl","isVisibleMultipleAssetsToggle","_ref$assetsLimit","assetsLimit","_ref$isDisabledSecond","isDisabledSecondaryAssetSelect","isDrillingPlatformApp","_ref$secondaryAssetHe","secondaryAssetHelpText","_ref$onChange","onChange","DEFAULT_APP_SETTINGS_ASSET_EDITOR_ON_CHANGE","_ref$elementsClassNam","elementsClassNames","DEFAULT_APP_SETTINGS_ASSET_EDITOR_ELEMENTS_CLASS_NAMES","primaryAssetType","get","primaryAssetIdType","primaryAssetLabel","primaryAssetSelectGroups","isSecondaryAssetPresent","secondaryAssetType","secondaryAssetIdType","secondaryAssetLabel","currentValue","initialPrimaryAssetId","Number","initialSecondaryAssetId","_useState","useState","id","_useState2","_slicedToArray","primaryAsset","setPrimaryAsset","_useState4","_useState3","secondaryAssetId","setSecondaryAssetId","_useState6","_useState5","isPadSelectedAsPrimaryAsset","setIsPadSelectedAsPrimaryAsset","_useState7","_useState8","selectedGroup","setSelectedGroup","_useState10","_useState9","isMultipleAssets","setIsMultipleAssets","isMultipleAssetsRef","useRef","_len","arguments","length","args","Array","_key","concat","current","styles","PrimaryAssetSelectComponent","ASSET_TYPES","rig","type","intervention_unit","PrimaryAssetSelectV2","PrimaryAssetSelect","parentAssetId","assetId","handlePrimaryAssetReset","_assetSetting4","undefined","assetSetting","_defineProperty","secondaryAssetSelectIsVisible","Boolean","useEffect","isEmpty","_jsxs","classNames","main","children","_jsx","jsx","MultipleAssetsToggle","checked","multiAssetSwitch","primaryAssetSelect","assetType","currentOption","disableClearable","multiple","selected","primary","_selected$","_selected$2","isPadSelected","group","PAD_GROUP","name","isFracFleetSelected","FRAC_FLEET_GROUP","isFirstPadSelected","isFirstFracFleetSelected","assetsSetting","reduce","acc","_ref3","parentFracFleetId","fracFleetId","padId","replacedPadId","assets","asset","onMultipleAssetChange","pad","_assetSetting2","frac_fleet","setCurrentOption","onGroupChange","newGroup","onGroupReset","groups","onInputReset","onActiveAssetIdChange","activeAssetId","_objectSpread","activeWellId","assetFields","getPrimaryAssetFields","jsxs","secondaryAssetSelect","SecondaryAssetSelect","_toConsumableArray","ACTIVE_ASSETS_ID","ACTIVE_ASSET_ID","_ref2","secondary","assetSettings","well","replacedAssetId","parentAssetType","noop","propTypes","PropTypes","number","shape","isRequired","any","func","string","bool","arrayOf","oneOfType","element"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/AssetEditorV2/index.js"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { get, isEmpty, noop } from 'lodash';\nimport classNames from 'classnames';\nimport { makeStyles } from '@material-ui/core';\n\nimport { PrimaryAssetSelect, PrimaryAssetSelectV2, SecondaryAssetSelect } from './components';\nimport { ACTIVE_ASSET_ID, ACTIVE_ASSETS_ID } from './constants';\nimport MultipleAssetsToggle from './components/MultipleAssetsToggle';\nimport { getPrimaryAssetFields } from './utils';\n\nimport { ASSET_TYPES } from '~/constants';\nimport { FRAC_FLEET_GROUP, PAD_GROUP } from '~/constants/segment';\n\nconst useStyles = makeStyles({\n title: { fontWeight: 400, fontSize: 20, margin: '24px 0 16px' },\n});\n\nconst PAGE_NAME = 'DC_AppSettingsAssetEditor';\nconst PARENT_ASSET_ID = 'parent_asset_id';\n\nconst AppSettingsAssetEditor = ({\n appKey,\n appType,\n className,\n company,\n defaultValue,\n secondaryDefaultValue,\n disabled,\n isHiddenTitle,\n isNullable,\n label,\n onSettingsChange: propsOnSettingsChange,\n primaryAssetFields,\n secondaryAssetFields,\n isExtendedSelect,\n isRequiredAssetId,\n settings,\n isVisibleMultipleAssetsToggle,\n assetsLimit,\n isDisabledSecondaryAssetSelect,\n isDrillingPlatformApp,\n secondaryAssetHelpText,\n onChange,\n elementsClassNames,\n}) => {\n const primaryAssetType = get(appType, ['primaryAsset', 'assetType', 'type']);\n const primaryAssetIdType = get(appType, ['primaryAsset', 'assetType', 'id']);\n const primaryAssetLabel = get(appType, ['primaryAsset', 'assetType', 'label']);\n const primaryAssetSelectGroups = get(appType, ['primaryAsset', 'groups']);\n\n const isSecondaryAssetPresent = get(appType, ['secondaryAsset'], false);\n\n const secondaryAssetType = get(appType, ['secondaryAsset', 'assetType', 'type']);\n const secondaryAssetIdType = get(appType, ['secondaryAsset', 'assetType', 'id']);\n const secondaryAssetLabel = get(appType, ['secondaryAsset', 'assetType', 'label']);\n\n const currentValue = get(settings, primaryAssetIdType);\n const initialPrimaryAssetId = currentValue ? Number(currentValue) : null;\n const initialSecondaryAssetId = get(settings, secondaryAssetIdType)\n ? Number(get(settings, secondaryAssetIdType))\n : secondaryDefaultValue || null;\n const [primaryAsset, setPrimaryAsset] = useState({ id: initialPrimaryAssetId || defaultValue });\n\n const [secondaryAssetId, setSecondaryAssetId] = useState(initialSecondaryAssetId);\n const [isPadSelectedAsPrimaryAsset, setIsPadSelectedAsPrimaryAsset] = useState(false);\n const [selectedGroup, setSelectedGroup] = useState();\n const [isMultipleAssets, setIsMultipleAssets] = useState(false);\n const isMultipleAssetsRef = useRef(false);\n const onSettingsChange = (...args) => {\n propsOnSettingsChange(...args, isMultipleAssetsRef.current);\n };\n\n const styles = useStyles();\n\n const PrimaryAssetSelectComponent =\n primaryAssetType === ASSET_TYPES.rig.type ||\n primaryAssetType === ASSET_TYPES.intervention_unit.type\n ? PrimaryAssetSelectV2\n : PrimaryAssetSelect;\n\n const parentAssetId =\n isDrillingPlatformApp && primaryAsset?.assetId ? primaryAsset?.assetId : primaryAsset?.id;\n\n const onSecondaryAssetChange = ({ id, assetId, name }) => {\n onChange({ secondary: { name } });\n setSecondaryAssetId(id);\n const secondaryAssetId = id === ACTIVE_ASSET_ID ? null : id;\n const assetSettings = { [secondaryAssetIdType]: secondaryAssetId };\n\n if (isRequiredAssetId && secondaryAssetType === ASSET_TYPES.well.type) {\n onSettingsChange({\n ...assetSettings,\n replacedAssetId: isDrillingPlatformApp ? secondaryAssetId : assetId,\n });\n return;\n }\n\n onSettingsChange(assetSettings);\n };\n\n const onMultipleAssetChange = selected => {\n if (selected.length > assetsLimit) return;\n\n const isPadSelected = selected[0]?.group === PAD_GROUP.name;\n const isFracFleetSelected = selected[0]?.group === FRAC_FLEET_GROUP.name;\n const isFirstPadSelected = selected.length === 1 && isPadSelected;\n const isFirstFracFleetSelected = selected.length === 1 && isFracFleetSelected;\n\n if (isFirstPadSelected) {\n setIsPadSelectedAsPrimaryAsset(true);\n setSelectedGroup(PAD_GROUP);\n } else if (isFirstFracFleetSelected) {\n setSelectedGroup(FRAC_FLEET_GROUP);\n }\n\n if (isPadSelected) {\n setPrimaryAsset(selected);\n const assetsSetting = selected?.reduce((acc, { parentFracFleetId, id }) => {\n const settings = {\n fracFleetId: parentFracFleetId,\n padId: id,\n };\n\n if (isExtendedSelect) {\n settings.assetId = parentFracFleetId;\n settings.replacedPadId = id;\n }\n return parentFracFleetId ? [...acc, settings] : acc;\n }, []);\n\n onSettingsChange({\n assets: assetsSetting,\n });\n return;\n }\n\n setPrimaryAsset(selected);\n const assetsSetting = selected.reduce((acc, asset) => {\n const settings = { [`${asset.type}Id`]: asset.id };\n if (isRequiredAssetId) {\n settings.assetId = asset.assetId;\n }\n if (isExtendedSelect) {\n settings.assetId = asset.assetId || asset.id;\n }\n return [...acc, settings];\n }, []);\n onSettingsChange({\n assets: assetsSetting,\n });\n };\n\n const onPrimaryAssetChange = selected => {\n onChange({ primary: selected });\n if (isMultipleAssets) {\n onMultipleAssetChange(selected);\n return;\n }\n const { id, type, parentFracFleetId } = selected;\n if (!id) return;\n if (type === ASSET_TYPES.pad.type) {\n setPrimaryAsset(selected);\n setIsPadSelectedAsPrimaryAsset(true);\n setSecondaryAssetId(id);\n const assetSetting = {\n [ASSET_TYPES.frac_fleet.id]: Number(parentFracFleetId),\n [ASSET_TYPES.pad.id]: id,\n };\n onSettingsChange(assetSetting);\n return;\n }\n\n setPrimaryAsset(selected);\n setSecondaryAssetId(null);\n const assetSetting = { [primaryAssetIdType]: id };\n if (isRequiredAssetId) assetSetting.assetId = selected.assetId;\n if (secondaryAssetIdType) assetSetting[secondaryAssetIdType] = null;\n onSettingsChange(assetSetting);\n setIsPadSelectedAsPrimaryAsset(false);\n };\n\n const handlePrimaryAssetReset = (defaultValue = {}) => {\n setPrimaryAsset(defaultValue);\n setSecondaryAssetId(null);\n\n setIsPadSelectedAsPrimaryAsset(false);\n const assetSetting = {\n [primaryAssetIdType]: null,\n [secondaryAssetIdType]: null,\n assets: null,\n };\n onSettingsChange(assetSetting);\n };\n\n const handleMultipleAssetsChange = checked => {\n isMultipleAssetsRef.current = !!checked;\n setIsMultipleAssets(checked);\n handlePrimaryAssetReset(checked && []);\n };\n\n const handleGroupChange = newGroup => {\n setSelectedGroup(newGroup);\n handlePrimaryAssetReset(isMultipleAssets && []);\n };\n\n const handleGroupReset = () => {\n setSelectedGroup(null);\n handlePrimaryAssetReset(isMultipleAssets && []);\n };\n\n const secondaryAssetSelectIsVisible =\n isSecondaryAssetPresent &&\n (isMultipleAssets\n ? Boolean(primaryAsset.length) && !isPadSelectedAsPrimaryAsset\n : primaryAsset?.id && !isPadSelectedAsPrimaryAsset);\n\n useEffect(() => {\n if (isEmpty(settings)) {\n handlePrimaryAssetReset(isMultipleAssets && []);\n }\n }, [settings]);\n\n return (\n <div className={classNames(styles.main, className)}>\n {!isHiddenTitle && (\n <div className={classNames(styles.title, elementsClassNames.title)}>Asset</div>\n )}\n {isVisibleMultipleAssetsToggle && (\n <MultipleAssetsToggle\n onChange={handleMultipleAssetsChange}\n className={elementsClassNames.multiAssetSwitch}\n checked={isMultipleAssets}\n />\n )}\n <div className={elementsClassNames.primaryAssetSelect}>\n <PrimaryAssetSelectComponent\n appKey={appKey}\n assetType={primaryAssetType}\n company={company}\n currentOption={primaryAsset}\n currentValue={primaryAsset?.id}\n data-testid={`${PAGE_NAME}_primaryAssetEditorAutocomplete`}\n isSecondaryAssetPresent={isSecondaryAssetPresent}\n defaultValue={defaultValue}\n disableClearable={!isNullable}\n disabled={disabled}\n isNullable={isNullable}\n isRequiredAssetId={isRequiredAssetId}\n label={label}\n multiple={isMultipleAssets}\n onChange={onPrimaryAssetChange}\n setCurrentOption={setPrimaryAsset}\n selectedGroup={selectedGroup}\n onGroupChange={handleGroupChange}\n onGroupReset={handleGroupReset}\n groups={primaryAssetSelectGroups}\n onInputReset={handlePrimaryAssetReset}\n onActiveAssetIdChange={activeAssetId => {\n setPrimaryAsset(primaryAsset => ({ ...primaryAsset, activeWellId: activeAssetId }));\n }}\n isDrillingPlatformApp={isDrillingPlatformApp}\n assetFields={getPrimaryAssetFields(\n primaryAssetType,\n primaryAssetFields,\n isDrillingPlatformApp\n )}\n />\n </div>\n {secondaryAssetSelectIsVisible && (\n <div className={elementsClassNames.secondaryAssetSelect}>\n {secondaryAssetHelpText}\n <SecondaryAssetSelect\n assetFields={\n secondaryAssetType === ASSET_TYPES.pad.type\n ? [...secondaryAssetFields, 'pad.active', 'pad.current']\n : secondaryAssetFields\n }\n activeWellId={primaryAsset?.activeWellId}\n appKey={appKey}\n assetType={secondaryAssetType}\n company={company}\n currentValue={secondaryAssetId}\n data-testid={`${PAGE_NAME}_secondaryAutoComplete`}\n defaultValue={isMultipleAssets ? ACTIVE_ASSETS_ID : ACTIVE_ASSET_ID}\n disabled={isMultipleAssets || isDisabledSecondaryAssetSelect || disabled}\n isDrillingPlatformApp={isDrillingPlatformApp}\n isNullable={isNullable}\n isRequiredAssetId={isRequiredAssetId}\n onChange={onSecondaryAssetChange}\n parentAssetId={parentAssetId}\n parentAssetType={isDrillingPlatformApp ? PARENT_ASSET_ID : primaryAssetType}\n primaryAssetLabel={primaryAssetLabel}\n secondaryAssetLabel={secondaryAssetLabel}\n />\n </div>\n )}\n </div>\n );\n};\n\nAppSettingsAssetEditor.defaultProps = {\n assetsLimit: null,\n label: 'Choose An Asset',\n isNullable: false,\n defaultValue: undefined,\n secondaryDefaultValue: undefined,\n isHiddenTitle: false,\n appKey: null,\n isVisibleMultipleAssetsToggle: false,\n isDisabledSecondaryAssetSelect: false,\n primaryAssetFields: [],\n secondaryAssetFields: [],\n secondaryAssetHelpText: null,\n onChange: noop,\n elementsClassNames: {},\n};\n\nAppSettingsAssetEditor.propTypes = {\n assetsLimit: PropTypes.number,\n settings: PropTypes.shape({}).isRequired,\n appType: PropTypes.shape({}).isRequired,\n defaultValue: PropTypes.any, // eslint-disable-line react/forbid-prop-types\n secondaryDefaultValue: PropTypes.any, // eslint-disable-line react/forbid-prop-types\n onSettingsChange: PropTypes.func.isRequired,\n label: PropTypes.string,\n isNullable: PropTypes.bool,\n isHiddenTitle: PropTypes.bool,\n appKey: PropTypes.string,\n isVisibleMultipleAssetsToggle: PropTypes.bool,\n isDisabledSecondaryAssetSelect: PropTypes.bool,\n primaryAssetFields: PropTypes.arrayOf(PropTypes.shape({})),\n secondaryAssetFields: PropTypes.arrayOf(PropTypes.shape({})),\n secondaryAssetHelpText: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\n onChange: PropTypes.func,\n elementsClassNames: PropTypes.shape({\n title: PropTypes.string,\n multiAssetSwitch: PropTypes.string,\n primaryAssetSelect: PropTypes.string,\n secondaryAssetSelect: PropTypes.string,\n }),\n};\n\nexport default AppSettingsAssetEditor;\n"],"names":["useStyles","makeStyles","title","fontWeight","fontSize","margin","AppSettingsAssetEditor","_ref","appKey","appType","className","company","defaultValue","secondaryDefaultValue","disabled","isHiddenTitle","isNullable","label","propsOnSettingsChange","onSettingsChange","primaryAssetFields","secondaryAssetFields","isExtendedSelect","isRequiredAssetId","settings","isVisibleMultipleAssetsToggle","assetsLimit","isDisabledSecondaryAssetSelect","isDrillingPlatformApp","secondaryAssetHelpText","onChange","elementsClassNames","primaryAssetType","get","primaryAssetIdType","primaryAssetLabel","primaryAssetSelectGroups","isSecondaryAssetPresent","secondaryAssetType","secondaryAssetIdType","secondaryAssetLabel","currentValue","initialPrimaryAssetId","Number","initialSecondaryAssetId","_useState","useState","id","_useState2","_slicedToArray","primaryAsset","setPrimaryAsset","_useState4","_useState3","secondaryAssetId","setSecondaryAssetId","_useState6","_useState5","isPadSelectedAsPrimaryAsset","setIsPadSelectedAsPrimaryAsset","_useState7","_useState8","selectedGroup","setSelectedGroup","_useState10","_useState9","isMultipleAssets","setIsMultipleAssets","isMultipleAssetsRef","useRef","_len","arguments","length","args","Array","_key","concat","current","styles","PrimaryAssetSelectComponent","ASSET_TYPES","rig","type","intervention_unit","PrimaryAssetSelectV2","PrimaryAssetSelect","parentAssetId","assetId","handlePrimaryAssetReset","_assetSetting4","undefined","assetSetting","_defineProperty","secondaryAssetSelectIsVisible","Boolean","useEffect","isEmpty","_jsxs","classNames","main","children","_jsx","jsx","MultipleAssetsToggle","checked","multiAssetSwitch","primaryAssetSelect","assetType","currentOption","disableClearable","multiple","selected","primary","_selected$","_selected$2","isPadSelected","group","PAD_GROUP","name","isFracFleetSelected","FRAC_FLEET_GROUP","isFirstPadSelected","isFirstFracFleetSelected","assetsSetting","reduce","acc","_ref3","parentFracFleetId","fracFleetId","padId","replacedPadId","assets","asset","onMultipleAssetChange","pad","_assetSetting2","frac_fleet","setCurrentOption","onGroupChange","newGroup","onGroupReset","groups","onInputReset","onActiveAssetIdChange","activeAssetId","_objectSpread","activeWellId","assetFields","getPrimaryAssetFields","jsxs","secondaryAssetSelect","SecondaryAssetSelect","_toConsumableArray","ACTIVE_ASSETS_ID","ACTIVE_ASSET_ID","_ref2","secondary","assetSettings","well","replacedAssetId","parentAssetType","defaultProps","noop","propTypes","PropTypes","number","shape","isRequired","any","func","string","bool","arrayOf","oneOfType","element"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("prop-types"),a=require("../AppContext.js"),r=require("./effects/useAppsData.js"),s=require("react/jsx-runtime");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=d(e);function u(e){var d=e.children,t=e.dashboardAssetId,u=
|
|
1
|
+
"use strict";var e=require("prop-types"),a=require("../AppContext.js"),r=require("./effects/useAppsData.js"),s=require("react/jsx-runtime");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=d(e);function u(e){var d=e.children,t=e.dashboardAssetId,u=e.apps,o=e.dashboardMeta,p=r({apps:u,dashboardAssetId:t,dashboardMeta:o});return s.jsx(a.Provider,{value:p,children:d})}u.propTypes={children:t.default.node.isRequired,dashboardAssetId:t.default.string,apps:t.default.arrayOf(t.default.shape({})).isRequired,dashboardMeta:t.default.shape({isChiplessDashboard:t.default.bool})},u.defaultProps={dashboardAssetId:null,dashboardMeta:void 0},module.exports=u;
|
|
2
2
|
//# sourceMappingURL=AppsDataProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppsDataProvider.js","sources":["../../../../../src/components/DevCenter/AppsDataProvider/AppsDataProvider.js"],"sourcesContent":["import PropTypes from 'prop-types';\n\nimport AppContext from '../AppContext';\n\nimport { useAppsData } from './effects';\n\nfunction AppsDataProvider({ children, dashboardAssetId
|
|
1
|
+
{"version":3,"file":"AppsDataProvider.js","sources":["../../../../../src/components/DevCenter/AppsDataProvider/AppsDataProvider.js"],"sourcesContent":["import PropTypes from 'prop-types';\n\nimport AppContext from '../AppContext';\n\nimport { useAppsData } from './effects';\n\nfunction AppsDataProvider({ children, dashboardAssetId, apps, dashboardMeta }) {\n const appsData = useAppsData({ apps, dashboardAssetId, dashboardMeta });\n\n return <AppContext.Provider value={appsData}>{children}</AppContext.Provider>;\n}\n\nAppsDataProvider.propTypes = {\n children: PropTypes.node.isRequired,\n dashboardAssetId: PropTypes.string,\n apps: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n dashboardMeta: PropTypes.shape({\n isChiplessDashboard: PropTypes.bool,\n }),\n};\n\nAppsDataProvider.defaultProps = {\n dashboardAssetId: null,\n dashboardMeta: undefined,\n};\n\nexport default AppsDataProvider;\n"],"names":["AppsDataProvider","_ref","children","dashboardAssetId","apps","dashboardMeta","appsData","useAppsData","_jsx","jsx","AppContext","Provider","value","propTypes","PropTypes","node","isRequired","string","arrayOf","shape","isChiplessDashboard","bool","defaultProps","undefined"],"mappings":"+NAMA,SAASA,EAAsEC,GAAA,IAAnDC,IAAAA,SAAUC,IAAAA,iBAAkBC,IAAAA,KAAMC,IAAAA,cACtDC,EAAWC,EAAY,CAAEH,KAAAA,EAAMD,iBAAAA,EAAkBE,cAAAA,IAEvD,OAAOG,EAAAC,IAACC,EAAWC,SAAQ,CAACC,MAAON,EAASJ,SAAEA,GAChD,CAEAF,EAAiBa,UAAY,CAC3BX,SAAUY,EAAAA,QAAUC,KAAKC,WACzBb,iBAAkBW,EAAS,QAACG,OAC5Bb,KAAMU,EAAS,QAACI,QAAQJ,EAAAA,QAAUK,MAAM,CAAA,IAAKH,WAC7CX,cAAeS,EAAS,QAACK,MAAM,CAC7BC,oBAAqBN,EAAS,QAACO,QAInCrB,EAAiBsB,aAAe,CAC9BnB,iBAAkB,KAClBE,mBAAekB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("@babel/runtime/helpers/defineProperty"),t=require("@babel/runtime/helpers/slicedToArray"),r=require("react"),o=require("prop-types"),n=require("@material-ui/core"),a=require("@material-ui/icons"),i=require("../IconButton/index.js"),l=require("react/jsx-runtime");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=s(e),c=s(t),p=s(o);function d(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function f(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?d(Object(r),!0).forEach((function(t){u.default(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):d(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function h(e){var t=e.classes,o=
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/defineProperty"),t=require("@babel/runtime/helpers/slicedToArray"),r=require("react"),o=require("prop-types"),n=require("@material-ui/core"),a=require("@material-ui/icons"),i=require("../IconButton/index.js"),l=require("react/jsx-runtime");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=s(e),c=s(t),p=s(o);function d(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function f(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?d(Object(r),!0).forEach((function(t){u.default(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):d(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function h(e){var t=e.classes,o=e["data-testid"],a=e.iconButtonStyle,i=e.color,s=e.disableRipple,u=e.className,p=e.IconElement,d=e.IconButtonComponent,h=e.disabled,m=e.iconButtonProps,b=e.children,g=e.anchorOrigin,O=e.transformOrigin,y=e.marginThreshold,v=e.menuProps,P=e.tooltipProps,j=e.paperClassName,B=r.useState(null),T=c.default(B,2),x=T[0],C=T[1],w=!!x,q=r.useState(!1),I=c.default(q,2),N=I[0],S=I[1];r.useEffect((function(){var e;return w&&setTimeout((function(){e=S(w)}),500),function(){e&&clearTimeout(e)}}),[w]);var E=function(e){e.stopPropagation(),C(null),S(!1)},R=l.jsx(d,f(f({"aria-label":"IconMenu","aria-owns":w?"icon-menu":void 0,"aria-haspopup":"true","data-testid":o,onClick:function(e){e.stopPropagation(),e.preventDefault(),C(e.currentTarget)},classes:{root:t.iconButton},className:u,style:a,color:i,disableRipple:s,disabled:h},m),{},{children:p}));return l.jsxs(l.Fragment,{children:[P?l.jsx(n.Tooltip,f(f({},P),{},{children:R})):R,l.jsx(n.Menu,f(f({id:"icon-menu",anchorEl:x,open:w,MenuListProps:{"data-testid":"".concat(o,"Dropdown")},disableAutoFocus:!N,autoFocus:N,onClose:E,onClick:E,anchorOrigin:g,transformOrigin:O,classes:{paper:t.paper},elevation:0,marginThreshold:y,PaperProps:{className:t[j]}},v),{},{children:b}))]})}h.propTypes={children:p.default.oneOfType([p.default.string,p.default.node,p.default.array]),classes:p.default.shape({iconButton:p.default.string,paper:p.default.string}),className:p.default.string,color:p.default.string,IconElement:p.default.element,IconButtonComponent:p.default.any,iconButtonStyle:p.default.shape({}),anchorOrigin:p.default.shape({horizontal:p.default.oneOf(["left","center","right"]),vertical:p.default.oneOf(["top","center","bottom"])}),transformOrigin:p.default.shape({horizontal:p.default.oneOf(["left","center","right"]),vertical:p.default.oneOf(["top","center","bottom"])}),disableRipple:p.default.bool,"data-testid":p.default.string,marginThreshold:p.default.number,disabled:p.default.bool,tooltipProps:p.default.shape({}),menuProps:p.default.shape({}),iconButtonProps:p.default.shape({}),paperClassName:p.default.string},h.defaultProps={children:void 0,classes:{},className:void 0,color:void 0,"data-testid":void 0,IconElement:l.jsx(a.MoreVert,{}),iconButtonStyle:void 0,IconButtonComponent:i,disableRipple:!1,anchorOrigin:{horizontal:"right",vertical:"top"},transformOrigin:{horizontal:"right",vertical:"bottom"},marginThreshold:void 0,disabled:!1,tooltipProps:void 0,menuProps:{},iconButtonProps:{},paperClassName:""};var m=n.withStyles((function(e){return{iconButton:{borderRadius:8,padding:"10px",color:e.palette.primary.text6,"&:hover":{color:e.palette.primary.text1,backgroundColor:"rgba(255, 255, 255, 0.16)"},"& .MuiTouchRipple-child":{borderRadius:8}},paper:{}}}))(h);module.exports=m;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/IconMenu/index.js"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { Menu, withStyles, Tooltip } from '@material-ui/core';\nimport { MoreVert } from '@material-ui/icons';\n\nimport IconButton from '../IconButton';\n\nconst muiStyles = theme => ({\n iconButton: {\n borderRadius: 8,\n padding: '10px',\n color: theme.palette.primary.text6,\n '&:hover': {\n color: theme.palette.primary.text1,\n backgroundColor: 'rgba(255, 255, 255, 0.16)',\n },\n '& .MuiTouchRipple-child': {\n borderRadius: 8,\n },\n },\n paper: {},\n});\n\nfunction IconMenu({\n classes
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/IconMenu/index.js"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { Menu, withStyles, Tooltip } from '@material-ui/core';\nimport { MoreVert } from '@material-ui/icons';\n\nimport IconButton from '../IconButton';\n\nconst muiStyles = theme => ({\n iconButton: {\n borderRadius: 8,\n padding: '10px',\n color: theme.palette.primary.text6,\n '&:hover': {\n color: theme.palette.primary.text1,\n backgroundColor: 'rgba(255, 255, 255, 0.16)',\n },\n '& .MuiTouchRipple-child': {\n borderRadius: 8,\n },\n },\n paper: {},\n});\n\nfunction IconMenu({\n classes,\n // IconButtonComponentProps\n 'data-testid': testId,\n iconButtonStyle,\n color,\n disableRipple,\n className,\n IconElement,\n IconButtonComponent,\n disabled,\n iconButtonProps,\n // MenuProps\n children,\n anchorOrigin,\n transformOrigin,\n marginThreshold,\n menuProps,\n // Tooltip\n tooltipProps,\n paperClassName,\n}) {\n const [anchorEl, setAnchorEl] = useState(null);\n const isOpen = !!anchorEl;\n\n /*\n A fix of the issue: https://corvaqa.atlassian.net/browse/DC-3713\n\n When Material Menu is rendered, at first it's displayed at the top of the container\n and only then moves to the anchor element. When the focus is enabled, and the element is\n inside of an iframe but outside the view - browsers scroll the page to it. Because of this, we set focus in async\n manner, to wait for correct position - and then set focus.\n\n https://github.dev/mui/material-ui/blob/v4.x/packages/material-ui/src/Popover/Popover.js#L323-L331\n */\n const [isMenuAutofocus, setIsMenuAutofocus] = useState(false);\n useEffect(() => {\n let timerId;\n\n if (isOpen) {\n setTimeout(() => {\n timerId = setIsMenuAutofocus(isOpen);\n // Why 500? The lower delay doesn't actually work, so this is the lowest value I could get to make it work\n }, 500);\n }\n\n return () => {\n if (timerId) {\n clearTimeout(timerId);\n }\n };\n }, [isOpen]);\n\n const handleClose = event => {\n event.stopPropagation();\n setAnchorEl(null);\n setIsMenuAutofocus(false);\n };\n const handleOpen = event => {\n event.stopPropagation();\n event.preventDefault();\n setAnchorEl(event.currentTarget);\n };\n\n const iconButtonElement = (\n <IconButtonComponent\n aria-label=\"IconMenu\"\n aria-owns={isOpen ? 'icon-menu' : undefined}\n aria-haspopup=\"true\"\n data-testid={testId}\n onClick={handleOpen}\n classes={{ root: classes.iconButton }}\n className={className}\n style={iconButtonStyle}\n color={color}\n disableRipple={disableRipple}\n disabled={disabled}\n {...iconButtonProps}\n >\n {IconElement}\n </IconButtonComponent>\n );\n\n return (\n <>\n {tooltipProps ? <Tooltip {...tooltipProps}>{iconButtonElement}</Tooltip> : iconButtonElement}\n <Menu\n id=\"icon-menu\"\n anchorEl={anchorEl}\n open={isOpen}\n MenuListProps={{ 'data-testid': `${testId}Dropdown` }}\n disableAutoFocus={!isMenuAutofocus}\n autoFocus={isMenuAutofocus}\n onClose={handleClose}\n onClick={handleClose}\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n classes={{ paper: classes.paper }}\n elevation={0}\n marginThreshold={marginThreshold}\n PaperProps={{\n className: classes[paperClassName],\n }}\n {...menuProps}\n >\n {children}\n </Menu>\n </>\n );\n}\n\nIconMenu.propTypes = {\n children: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.array]),\n classes: PropTypes.shape({\n iconButton: PropTypes.string,\n paper: PropTypes.string,\n }),\n className: PropTypes.string,\n color: PropTypes.string,\n IconElement: PropTypes.element,\n // eslint-disable-next-line react/forbid-prop-types\n IconButtonComponent: PropTypes.any,\n iconButtonStyle: PropTypes.shape({}),\n anchorOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOf(['left', 'center', 'right']),\n vertical: PropTypes.oneOf(['top', 'center', 'bottom']),\n }),\n transformOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOf(['left', 'center', 'right']),\n vertical: PropTypes.oneOf(['top', 'center', 'bottom']),\n }),\n disableRipple: PropTypes.bool,\n 'data-testid': PropTypes.string,\n marginThreshold: PropTypes.number,\n disabled: PropTypes.bool,\n tooltipProps: PropTypes.shape({}),\n menuProps: PropTypes.shape({}),\n iconButtonProps: PropTypes.shape({}),\n paperClassName: PropTypes.string,\n};\n\nIconMenu.defaultProps = {\n children: undefined,\n classes: {},\n className: undefined,\n color: undefined,\n 'data-testid': undefined,\n IconElement: <MoreVert />,\n iconButtonStyle: undefined,\n IconButtonComponent: IconButton,\n disableRipple: false,\n anchorOrigin: { horizontal: 'right', vertical: 'top' },\n transformOrigin: { horizontal: 'right', vertical: 'bottom' },\n marginThreshold: undefined,\n disabled: false,\n tooltipProps: undefined,\n menuProps: {},\n iconButtonProps: {},\n paperClassName: '',\n};\n\nexport default withStyles(muiStyles)(IconMenu);\n"],"names":["IconMenu","_ref","classes","testId","iconButtonStyle","color","disableRipple","className","IconElement","IconButtonComponent","disabled","iconButtonProps","children","anchorOrigin","transformOrigin","marginThreshold","menuProps","tooltipProps","paperClassName","useState","_useState2","_slicedToArray","_useState","anchorEl","setAnchorEl","isOpen","_useState4","_useState3","isMenuAutofocus","setIsMenuAutofocus","useEffect","timerId","setTimeout","clearTimeout","handleClose","event","stopPropagation","iconButtonElement","_jsx","jsx","_objectSpread","undefined","onClick","preventDefault","currentTarget","root","iconButton","style","_jsxs","_Fragment","Tooltip","Menu","id","open","MenuListProps","disableAutoFocus","autoFocus","onClose","paper","elevation","PaperProps","propTypes","PropTypes","oneOfType","string","node","array","shape","element","any","horizontal","oneOf","vertical","bool","number","defaultProps","MoreVert","IconButton","index","withStyles","theme","borderRadius","padding","palette","primary","text6","text1","backgroundColor"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("@babel/runtime/helpers/defineProperty"),t=require("@babel/runtime/helpers/slicedToArray"),r=require("
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/defineProperty"),t=require("@babel/runtime/helpers/slicedToArray"),r=require("react"),a=require("prop-types"),n=require("moment"),i=require("@material-ui/pickers"),o=require("react/jsx-runtime");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=u(e),f=u(t),m=u(a),l=u(n);function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function Y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){c.default(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var p=["MM/DD/YYYY HH:mm","M/D/YYYY HH:mm","MM/DD/YYYY, HH:mm","M/D/YYYY, HH:mm","MMM DD, YYYY HH:mm","MMM D, YYYY HH:mm","MM/DD/YY HH:mm","M/D/YY HH:mm"],d=new RegExp("[^\\.\\ \\,\\[a-zA-Z0-9_]*$]+","gi"),b=function(e){var t=e.format,a=e.onChange,n=e.label,u=e["data-testid"],c=r.useState(t),m=f.default(c,2),s=m[0],b=m[1],D=r.useState(null),y=f.default(D,2),H=y[0],M=y[1];return o.jsx(i.KeyboardDateTimePicker,Y(Y({rifmFormatter:function(e){return e},refuse:d,inputValue:H},e),{},{"data-testid":"".concat(u,"_").concat(n),format:s,onChange:function(e,r){var n=l.default(r,[].concat(p,[t]),!0),i=n.isValid();b((function(e){return i?n.creationData().format:e})),M(r),a(i?n:e,r)}}))};b.propTypes={onChange:m.default.func.isRequired,format:m.default.string,label:m.default.string,"data-testid":m.default.string},b.defaultProps={format:"MM/DD/YYYY HH:mm",label:"Date","data-testid":"KeyboardDateTimePicker"},module.exports=b;
|
|
2
2
|
//# sourceMappingURL=KeyboardDateTimePicker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyboardDateTimePicker.js","sources":["../../../src/components/KeyboardDateTimePicker.js"],"sourcesContent":["import { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport { KeyboardDateTimePicker as MuiKeyboardDateTimePicker } from '@material-ui/pickers';\n\nconst DEFAULT_DATE_TIME_FORMAT = 'MM/DD/YYYY HH:mm';\nconst SUPPORTED_FORMATS = [\n 'MM/DD/YYYY HH:mm',\n 'M/D/YYYY HH:mm',\n 'MM/DD/YYYY, HH:mm',\n 'M/D/YYYY, HH:mm',\n 'MMM DD, YYYY HH:mm',\n 'MMM D, YYYY HH:mm',\n 'MM/DD/YY HH:mm',\n 'M/D/YY HH:mm',\n];\nconst REFUSE_REGEXP = new RegExp('[^\\\\.\\\\ \\\\,\\\\[a-zA-Z0-9_]*$]+', 'gi');\n\nconst KeyboardDateTimePicker =
|
|
1
|
+
{"version":3,"file":"KeyboardDateTimePicker.js","sources":["../../../src/components/KeyboardDateTimePicker.js"],"sourcesContent":["import { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport { KeyboardDateTimePicker as MuiKeyboardDateTimePicker } from '@material-ui/pickers';\n\nconst DEFAULT_DATE_TIME_FORMAT = 'MM/DD/YYYY HH:mm';\nconst SUPPORTED_FORMATS = [\n 'MM/DD/YYYY HH:mm',\n 'M/D/YYYY HH:mm',\n 'MM/DD/YYYY, HH:mm',\n 'M/D/YYYY, HH:mm',\n 'MMM DD, YYYY HH:mm',\n 'MMM D, YYYY HH:mm',\n 'MM/DD/YY HH:mm',\n 'M/D/YY HH:mm',\n];\nconst REFUSE_REGEXP = new RegExp('[^\\\\.\\\\ \\\\,\\\\[a-zA-Z0-9_]*$]+', 'gi');\n\nconst KeyboardDateTimePicker = props => {\n const { format, onChange, label, 'data-testid': PAGE_NAME } = props;\n\n const [dynamicFormat, setDynamicFormat] = useState(format);\n const [inputValue, setInputValue] = useState(null);\n\n const dateFormatter = str => {\n return str;\n };\n\n const handleDateChange = (date, newInputValue) => {\n const momentObj = moment(newInputValue, [...SUPPORTED_FORMATS, format], true);\n const isValidDate = momentObj.isValid();\n\n setDynamicFormat(prev => (isValidDate ? momentObj.creationData().format : prev));\n setInputValue(newInputValue);\n onChange(isValidDate ? momentObj : date, newInputValue);\n };\n\n return (\n <MuiKeyboardDateTimePicker\n rifmFormatter={dateFormatter}\n refuse={REFUSE_REGEXP}\n inputValue={inputValue}\n {...props}\n data-testid={`${PAGE_NAME}_${label}`}\n format={dynamicFormat}\n onChange={handleDateChange}\n />\n );\n};\n\nKeyboardDateTimePicker.propTypes = {\n onChange: PropTypes.func.isRequired,\n format: PropTypes.string,\n label: PropTypes.string,\n 'data-testid': PropTypes.string,\n};\n\nKeyboardDateTimePicker.defaultProps = {\n format: DEFAULT_DATE_TIME_FORMAT,\n label: 'Date',\n 'data-testid': 'KeyboardDateTimePicker',\n};\n\nexport default KeyboardDateTimePicker;\n"],"names":["SUPPORTED_FORMATS","REFUSE_REGEXP","RegExp","KeyboardDateTimePicker","props","format","onChange","label","PAGE_NAME","useState","_useState2","_slicedToArray","_useState","dynamicFormat","setDynamicFormat","_useState4","_useState3","inputValue","setInputValue","_jsx","MuiKeyboardDateTimePicker","_objectSpread","rifmFormatter","str","refuse","date","newInputValue","momentObj","moment","isValidDate","isValid","prev","creationData","propTypes","PropTypes","func","isRequired","string","defaultProps"],"mappings":"q6BAKA,IACMA,EAAoB,CACxB,mBACA,iBACA,oBACA,kBACA,qBACA,oBACA,iBACA,gBAEIC,EAAgB,IAAIC,OAAO,gCAAiC,MAE5DC,EAAyB,SAAAC,GAC7B,IAAQC,EAAsDD,EAAtDC,OAAQC,EAA8CF,EAA9CE,SAAUC,EAAoCH,EAApCG,MAAsBC,EAAcJ,EAA7B,eAESK,EAAAA,EAAQA,SAACJ,GAAOK,EAAAC,EAAAA,QAAAC,EAAA,GAAnDC,EAAaH,EAAA,GAAEI,EAAgBJ,EAAA,GACFD,EAAAA,EAAQA,SAAC,MAAKM,EAAAJ,EAAAA,QAAAK,EAAA,GAA3CC,EAAUF,EAAA,GAAEG,EAAaH,EAAA,GAehC,OACEI,MAACC,EAAAA,uBAAyBC,EAAAA,EAAA,CACxBC,cAfkB,SAAAC,GACpB,OAAOA,GAeLC,OAAQvB,EACRgB,WAAYA,GACRb,GAAK,GAAA,CACT,cAAgBI,GAAAA,OAAAA,EAAaD,KAAAA,OAAAA,GAC7BF,OAAQQ,EACRP,SAjBqB,SAACmB,EAAMC,GAC9B,IAAMC,EAAYC,EAAAA,QAAOF,EAAmB1B,GAAAA,OAAAA,EAAmBK,CAAAA,KAAS,GAClEwB,EAAcF,EAAUG,UAE9BhB,GAAiB,SAAAiB,GAAI,OAAKF,EAAcF,EAAUK,eAAe3B,OAAS0B,CAAI,IAC9Eb,EAAcQ,GACdpB,EAASuB,EAAcF,EAAYF,EAAMC,MAc7C,EAEAvB,EAAuB8B,UAAY,CACjC3B,SAAU4B,EAAAA,QAAUC,KAAKC,WACzB/B,OAAQ6B,EAAS,QAACG,OAClB9B,MAAO2B,EAAS,QAACG,OACjB,cAAeH,EAAS,QAACG,QAG3BlC,EAAuBmC,aAAe,CACpCjC,OArD+B,mBAsD/BE,MAAO,OACP,cAAe"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("@babel/runtime/helpers/defineProperty"),t=require("@babel/runtime/helpers/slicedToArray"),n=require("prop-types"),r=require("react"),
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/defineProperty"),t=require("@babel/runtime/helpers/slicedToArray"),n=require("prop-types"),r=require("react"),l=require("@material-ui/core"),a=require("classnames"),s=require("lodash"),o=require("./PostInput.css.js"),i=require("../FilePreview/index.js"),u=require("../FailedFileUploading.js"),d=require("../UserMention/index.js"),p=require("../FileUploadIconButton.js"),c=require("../EmojiIconButton.js"),f=require("react/jsx-runtime");function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var g=m(e),h=m(t),j=m(n),v=m(a),w=function(e){var t=e.className,n=e.userCompanyId,a=e.onChange,s=e.onKeyDown,m=e.initialValue,j=e.filePreviewWrapperClass,w=e.smallerView,y=e.suggestionsPortalHost,b=e.allowSuggestionsAboveCursor,x=r.useState(m.body),P=h.default(x,2),q=P[0],C=P[1],F=r.useState(m.attachment),I=h.default(F,2),S=I[0],A=I[1],T=r.useState(null),N=h.default(T,2),D=N[0],U=N[1],V=r.useRef(null);return r.useEffect((function(){V.current&&(V.current.selectionStart=V.current.value.length)}),[]),r.useEffect((function(){a({body:q,attachment:S})}),[q,S]),f.jsxs("div",{className:v.default(o.input,t),children:[f.jsx(l.TextField,{"data-testid":"".concat("PostInput","_input"),className:v.default(o.inputTextField,g.default({},o.inputTextFieldSmaller,w)),placeholder:"Add Comment...",FormHelperTextProps:{component:"div",margin:"dense"},inputRef:V,InputProps:{inputComponent:d,inputProps:{onChange:C,value:q,withLightTheme:!1,companyId:n,autoFocus:!0,className:o.inputInput,placeholder:"Type here...",suggestionsPortalHost:y,allowSuggestionsAboveCursor:b},endAdornment:f.jsxs(l.InputAdornment,{position:"end",className:v.default(o.inputAdornment,g.default({},o.inputAdornmentSmaller,w)),children:[!S&&f.jsx("div",{children:f.jsx(p.default,{openPreviewDialogOnUpload:!1,onFinish:function(e,t,n){A({url:e,file_name:t,size:n})},onError:U})}),f.jsx("div",{children:f.jsx(c,{"data-testid":"".concat("PostInput","_emoji"),handleSelectEmoji:function(e){return C((function(t){return"".concat(t).concat(e.native)}))}})})]}),disableUnderline:!0,classes:{}},onKeyDown:s}),S&&f.jsx(i,{fileName:S.file_name||S.name,fileUrl:S.signed_url||S.url,handleFileDelete:function(){return A(null)},classes:{wrapper:j}}),D&&f.jsx(u,{errorMessage:D})]})};w.propTypes={userCompanyId:j.default.oneOfType([j.default.string,j.default.number]).isRequired,className:j.default.string,onKeyDown:j.default.func,onChange:j.default.func,initialValue:j.default.shape({body:j.default.string,attachment:j.default.shape({})}),filePreviewWrapperClass:j.default.string,suggestionsPortalHost:j.default.node,allowSuggestionsAboveCursor:j.default.bool,smallerView:j.default.bool},w.defaultProps={className:null,initialValue:{body:"",attachment:null},filePreviewWrapperClass:null,onKeyDown:s.noop,onChange:s.noop,smallerView:!1,suggestionsPortalHost:void 0,allowSuggestionsAboveCursor:!1},module.exports=w;
|
|
2
2
|
//# sourceMappingURL=PostInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostInput.js","sources":["../../../../src/components/PostInput/PostInput.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { useState, useEffect, useRef } from 'react';\nimport { TextField, InputAdornment } from '@material-ui/core';\nimport classNames from 'classnames';\nimport { noop } from 'lodash';\n\nimport styles from './PostInput.css';\n\nimport FilePreview from '~/components/FilePreview';\nimport FailedFileUploading from '~/components/FailedFileUploading';\nimport UserMention from '~/components/UserMention';\nimport FileUploadIconButton from '~/components/FileUploadIconButton';\nimport EmojiIconButton from '~/components/EmojiIconButton';\n\nconst PAGE_NAME = 'PostInput';\n\nconst PostInput = ({\n className
|
|
1
|
+
{"version":3,"file":"PostInput.js","sources":["../../../../src/components/PostInput/PostInput.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport { useState, useEffect, useRef } from 'react';\nimport { TextField, InputAdornment } from '@material-ui/core';\nimport classNames from 'classnames';\nimport { noop } from 'lodash';\n\nimport styles from './PostInput.css';\n\nimport FilePreview from '~/components/FilePreview';\nimport FailedFileUploading from '~/components/FailedFileUploading';\nimport UserMention from '~/components/UserMention';\nimport FileUploadIconButton from '~/components/FileUploadIconButton';\nimport EmojiIconButton from '~/components/EmojiIconButton';\n\nconst PAGE_NAME = 'PostInput';\n\nconst PostInput = ({\n className,\n userCompanyId,\n onChange,\n onKeyDown,\n initialValue,\n filePreviewWrapperClass,\n smallerView,\n suggestionsPortalHost,\n allowSuggestionsAboveCursor,\n}) => {\n const [body, setBody] = useState(initialValue.body);\n const [attachment, setAttachment] = useState(initialValue.attachment);\n const [attachmentLoadingError, setAttachmentLoadingError] = useState(null);\n const inputRef = useRef(null);\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.selectionStart = inputRef.current.value.length;\n }\n }, []);\n useEffect(() => {\n onChange({\n body,\n attachment,\n });\n }, [body, attachment]);\n\n return (\n <div className={classNames(styles.input, className)}>\n <TextField\n data-testid={`${PAGE_NAME}_input`}\n className={classNames(styles.inputTextField, {\n [styles.inputTextFieldSmaller]: smallerView,\n })}\n placeholder=\"Add Comment...\"\n FormHelperTextProps={{\n component: 'div',\n margin: 'dense',\n }}\n inputRef={inputRef}\n InputProps={{\n inputComponent: UserMention,\n inputProps: {\n onChange: setBody,\n value: body,\n withLightTheme: false,\n companyId: userCompanyId,\n autoFocus: true,\n className: styles.inputInput,\n placeholder: 'Type here...',\n suggestionsPortalHost,\n allowSuggestionsAboveCursor,\n },\n endAdornment: (\n <InputAdornment\n position=\"end\"\n className={classNames(styles.inputAdornment, {\n [styles.inputAdornmentSmaller]: smallerView,\n })}\n >\n {!attachment && (\n <div>\n <FileUploadIconButton\n openPreviewDialogOnUpload={false}\n onFinish={(url, name, size) => {\n setAttachment({\n url,\n file_name: name,\n size,\n });\n }}\n onError={setAttachmentLoadingError}\n />\n </div>\n )}\n <div>\n <EmojiIconButton\n data-testid={`${PAGE_NAME}_emoji`}\n handleSelectEmoji={emoji => setBody(prevText => `${prevText}${emoji.native}`)}\n />\n </div>\n </InputAdornment>\n ),\n disableUnderline: true,\n classes: {},\n }}\n onKeyDown={onKeyDown}\n />\n {attachment && (\n <FilePreview\n fileName={attachment.file_name || attachment.name}\n fileUrl={attachment.signed_url || attachment.url}\n handleFileDelete={() => setAttachment(null)}\n classes={{ wrapper: filePreviewWrapperClass }}\n />\n )}\n {attachmentLoadingError && <FailedFileUploading errorMessage={attachmentLoadingError} />}\n </div>\n );\n};\n\nPostInput.propTypes = {\n userCompanyId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n className: PropTypes.string,\n onKeyDown: PropTypes.func,\n onChange: PropTypes.func,\n initialValue: PropTypes.shape({\n body: PropTypes.string,\n attachment: PropTypes.shape({}),\n }),\n filePreviewWrapperClass: PropTypes.string,\n suggestionsPortalHost: PropTypes.node,\n allowSuggestionsAboveCursor: PropTypes.bool,\n smallerView: PropTypes.bool,\n};\n\nPostInput.defaultProps = {\n className: null,\n initialValue: {\n body: '',\n attachment: null,\n },\n filePreviewWrapperClass: null,\n onKeyDown: noop,\n onChange: noop,\n smallerView: false,\n suggestionsPortalHost: undefined,\n allowSuggestionsAboveCursor: false,\n};\n\nexport default PostInput;\n"],"names":["PostInput","_ref","className","userCompanyId","onChange","onKeyDown","initialValue","filePreviewWrapperClass","smallerView","suggestionsPortalHost","allowSuggestionsAboveCursor","_useState","useState","body","_useState2","_slicedToArray","setBody","_useState3","attachment","_useState4","setAttachment","_useState6","_useState5","attachmentLoadingError","setAttachmentLoadingError","inputRef","useRef","useEffect","current","selectionStart","value","length","_jsxs","classNames","styles","input","children","_jsx","TextField","concat","inputTextField","inputTextFieldSmaller","placeholder","FormHelperTextProps","component","margin","InputProps","inputComponent","UserMention","inputProps","withLightTheme","companyId","autoFocus","inputInput","endAdornment","InputAdornment","position","inputAdornment","inputAdornmentSmaller","FileUploadIconButton","openPreviewDialogOnUpload","onFinish","url","name","size","file_name","onError","jsx","EmojiIconButton","handleSelectEmoji","emoji","prevText","native","disableUnderline","classes","FilePreview","fileName","fileUrl","signed_url","handleFileDelete","wrapper","FailedFileUploading","errorMessage","propTypes","PropTypes","oneOfType","string","number","isRequired","func","shape","node","bool","defaultProps","noop","undefined"],"mappings":"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"}
|