Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F100910812
FormControlLabel.js
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Mon, Feb 3, 21:10
Size
6 KB
Mime Type
text/x-java
Expires
Wed, Feb 5, 21:10 (2 d)
Engine
blob
Format
Raw Data
Handle
24054633
Attached To
rOACCT Open Access Compliance Check Tool (OACCT)
FormControlLabel.js
View Options
import
_objectWithoutPropertiesLoose
from
"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose"
;
import
_extends
from
"@babel/runtime/helpers/esm/extends"
;
const
_excluded
=
[
"checked"
,
"className"
,
"componentsProps"
,
"control"
,
"disabled"
,
"disableTypography"
,
"inputRef"
,
"label"
,
"labelPlacement"
,
"name"
,
"onChange"
,
"slotProps"
,
"value"
];
import
*
as
React
from
'react'
;
import
PropTypes
from
'prop-types'
;
import
clsx
from
'clsx'
;
import
{
refType
}
from
'@mui/utils'
;
import
{
unstable_composeClasses
as
composeClasses
}
from
'@mui/base'
;
import
{
useFormControl
}
from
'../FormControl'
;
import
Typography
from
'../Typography'
;
import
capitalize
from
'../utils/capitalize'
;
import
styled
from
'../styles/styled'
;
import
useThemeProps
from
'../styles/useThemeProps'
;
import
formControlLabelClasses
,
{
getFormControlLabelUtilityClasses
}
from
'./formControlLabelClasses'
;
import
formControlState
from
'../FormControl/formControlState'
;
import
{
jsx
as
_jsx
}
from
"react/jsx-runtime"
;
import
{
jsxs
as
_jsxs
}
from
"react/jsx-runtime"
;
const
useUtilityClasses
=
ownerState
=>
{
const
{
classes
,
disabled
,
labelPlacement
,
error
}
=
ownerState
;
const
slots
=
{
root
:
[
'root'
,
disabled
&&
'disabled'
,
`
labelPlacement$
{
capitalize
(
labelPlacement
)}
`
,
error
&&
'error'
],
label
:
[
'label'
,
disabled
&&
'disabled'
]
};
return
composeClasses
(
slots
,
getFormControlLabelUtilityClasses
,
classes
);
};
export
const
FormControlLabelRoot
=
styled
(
'label'
,
{
name
:
'MuiFormControlLabel'
,
slot
:
'Root'
,
overridesResolver
:
(
props
,
styles
)
=>
{
const
{
ownerState
}
=
props
;
return
[{
[
`
&
.
$
{
formControlLabelClasses
.
label
}
`
]
:
styles
.
label
},
styles
.
root
,
styles
[
`
labelPlacement$
{
capitalize
(
ownerState
.
labelPlacement
)}
`
]];
}
})(({
theme
,
ownerState
})
=>
_extends
({
display
:
'inline-flex'
,
alignItems
:
'center'
,
cursor
:
'pointer'
,
// For correct alignment with the text.
verticalAlign
:
'middle'
,
WebkitTapHighlightColor
:
'transparent'
,
marginLeft
:
-
11
,
marginRight
:
16
,
// used for row presentation of radio/checkbox
[
`
&
.
$
{
formControlLabelClasses
.
disabled
}
`
]
:
{
cursor
:
'default'
}
},
ownerState
.
labelPlacement
===
'start'
&&
{
flexDirection
:
'row-reverse'
,
marginLeft
:
16
,
// used for row presentation of radio/checkbox
marginRight
:
-
11
},
ownerState
.
labelPlacement
===
'top'
&&
{
flexDirection
:
'column-reverse'
,
marginLeft
:
16
},
ownerState
.
labelPlacement
===
'bottom'
&&
{
flexDirection
:
'column'
,
marginLeft
:
16
},
{
[
`
&
.
$
{
formControlLabelClasses
.
label
}
`
]
:
{
[
`
&
.
$
{
formControlLabelClasses
.
disabled
}
`
]
:
{
color
:
(
theme
.
vars
||
theme
).
palette
.
text
.
disabled
}
}
}));
/**
* Drop-in replacement of the `Radio`, `Switch` and `Checkbox` component.
* Use this component if you want to display an extra label.
*/
const
FormControlLabel
=
/*#__PURE__*/
React
.
forwardRef
(
function
FormControlLabel
(
inProps
,
ref
)
{
var
_slotProps$typography
;
const
props
=
useThemeProps
({
props
:
inProps
,
name
:
'MuiFormControlLabel'
});
const
{
className
,
componentsProps
=
{},
control
,
disabled
:
disabledProp
,
disableTypography
,
label
:
labelProp
,
labelPlacement
=
'end'
,
slotProps
=
{}
}
=
props
,
other
=
_objectWithoutPropertiesLoose
(
props
,
_excluded
);
const
muiFormControl
=
useFormControl
();
let
disabled
=
disabledProp
;
if
(
typeof
disabled
===
'undefined'
&&
typeof
control
.
props
.
disabled
!==
'undefined'
)
{
disabled
=
control
.
props
.
disabled
;
}
if
(
typeof
disabled
===
'undefined'
&&
muiFormControl
)
{
disabled
=
muiFormControl
.
disabled
;
}
const
controlProps
=
{
disabled
};
[
'checked'
,
'name'
,
'onChange'
,
'value'
,
'inputRef'
].
forEach
(
key
=>
{
if
(
typeof
control
.
props
[
key
]
===
'undefined'
&&
typeof
props
[
key
]
!==
'undefined'
)
{
controlProps
[
key
]
=
props
[
key
];
}
});
const
fcs
=
formControlState
({
props
,
muiFormControl
,
states
:
[
'error'
]
});
const
ownerState
=
_extends
({},
props
,
{
disabled
,
labelPlacement
,
error
:
fcs
.
error
});
const
classes
=
useUtilityClasses
(
ownerState
);
const
typographySlotProps
=
(
_slotProps$typography
=
slotProps
.
typography
)
!=
null
?
_slotProps$typography
:
componentsProps
.
typography
;
let
label
=
labelProp
;
if
(
label
!=
null
&&
label
.
type
!==
Typography
&&
!
disableTypography
)
{
label
=
/*#__PURE__*/
_jsx
(
Typography
,
_extends
({
component
:
"span"
},
typographySlotProps
,
{
className
:
clsx
(
classes
.
label
,
typographySlotProps
==
null
?
void
0
:
typographySlotProps
.
className
),
children
:
label
}));
}
return
/*#__PURE__*/
_jsxs
(
FormControlLabelRoot
,
_extends
({
className
:
clsx
(
classes
.
root
,
className
),
ownerState
:
ownerState
,
ref
:
ref
},
other
,
{
children
:
[
/*#__PURE__*/
React
.
cloneElement
(
control
,
controlProps
),
label
]
}));
});
process
.
env
.
NODE_ENV
!==
"production"
?
FormControlLabel
.
propTypes
/* remove-proptypes */
=
{
// ----------------------------- Warning --------------------------------
// | These PropTypes are generated from the TypeScript type definitions |
// | To update them edit the d.ts file and run "yarn proptypes" |
// ----------------------------------------------------------------------
/**
* If `true`, the component appears selected.
*/
checked
:
PropTypes
.
bool
,
/**
* Override or extend the styles applied to the component.
*/
classes
:
PropTypes
.
object
,
/**
* @ignore
*/
className
:
PropTypes
.
string
,
/**
* The props used for each slot inside.
* @default {}
*/
componentsProps
:
PropTypes
.
shape
({
typography
:
PropTypes
.
object
}),
/**
* A control element. For instance, it can be a `Radio`, a `Switch` or a `Checkbox`.
*/
control
:
PropTypes
.
element
.
isRequired
,
/**
* If `true`, the control is disabled.
*/
disabled
:
PropTypes
.
bool
,
/**
* If `true`, the label is rendered as it is passed without an additional typography node.
*/
disableTypography
:
PropTypes
.
bool
,
/**
* Pass a ref to the `input` element.
*/
inputRef
:
refType
,
/**
* A text or an element to be used in an enclosing label element.
*/
label
:
PropTypes
.
node
,
/**
* The position of the label.
* @default 'end'
*/
labelPlacement
:
PropTypes
.
oneOf
([
'bottom'
,
'end'
,
'start'
,
'top'
]),
/**
* @ignore
*/
name
:
PropTypes
.
string
,
/**
* Callback fired when the state is changed.
*
* @param {React.SyntheticEvent} event The event source of the callback.
* You can pull out the new checked state by accessing `event.target.checked` (boolean).
*/
onChange
:
PropTypes
.
func
,
/**
* The props used for each slot inside.
* @default {}
*/
slotProps
:
PropTypes
.
shape
({
typography
:
PropTypes
.
object
}),
/**
* The system prop that allows defining system overrides as well as additional CSS styles.
*/
sx
:
PropTypes
.
oneOfType
([
PropTypes
.
arrayOf
(
PropTypes
.
oneOfType
([
PropTypes
.
func
,
PropTypes
.
object
,
PropTypes
.
bool
])),
PropTypes
.
func
,
PropTypes
.
object
]),
/**
* The value of the component.
*/
value
:
PropTypes
.
any
}
:
void
0
;
export
default
FormControlLabel
;
Event Timeline
Log In to Comment