var $468c774d7db917b7$exports = require("./useCheckbox.main.js"); var $64fc3370e682155f$exports = require("./utils.main.js"); var $2Rh3D$reactstatelyform = require("@react-stately/form"); var $2Rh3D$react = require("react"); var $2Rh3D$reactstatelytoggle = require("@react-stately/toggle"); function $parcel$export(e, n, v, s) { Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true}); } $parcel$export(module.exports, "useCheckboxGroupItem", () => $07e03121d6ac83c8$export$353b32fc6898d37d); /* * Copyright 2020 Adobe. All rights reserved. * This file is licensed to you under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. You may obtain a copy * of the License at http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS * OF ANY KIND, either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ function $07e03121d6ac83c8$export$353b32fc6898d37d(props, state, inputRef) { const toggleState = (0, $2Rh3D$reactstatelytoggle.useToggleState)({ isReadOnly: props.isReadOnly || state.isReadOnly, isSelected: state.isSelected(props.value), onChange (isSelected) { if (isSelected) state.addValue(props.value); else state.removeValue(props.value); if (props.onChange) props.onChange(isSelected); } }); let { name: name, descriptionId: descriptionId, errorMessageId: errorMessageId, validationBehavior: validationBehavior } = (0, $64fc3370e682155f$exports.checkboxGroupData).get(state); var _props_validationBehavior; validationBehavior = (_props_validationBehavior = props.validationBehavior) !== null && _props_validationBehavior !== void 0 ? _props_validationBehavior : validationBehavior; // Local validation for this checkbox. let { realtimeValidation: realtimeValidation } = (0, $2Rh3D$reactstatelyform.useFormValidationState)({ ...props, value: toggleState.isSelected, // Server validation is handled at the group level. name: undefined, validationBehavior: 'aria' }); // Update the checkbox group state when realtime validation changes. let nativeValidation = (0, $2Rh3D$react.useRef)((0, $2Rh3D$reactstatelyform.DEFAULT_VALIDATION_RESULT)); let updateValidation = ()=>{ state.setInvalid(props.value, realtimeValidation.isInvalid ? realtimeValidation : nativeValidation.current); }; (0, $2Rh3D$react.useEffect)(updateValidation); // Combine group and checkbox level validation. let combinedRealtimeValidation = state.realtimeValidation.isInvalid ? state.realtimeValidation : realtimeValidation; let displayValidation = validationBehavior === 'native' ? state.displayValidation : combinedRealtimeValidation; var _props_isRequired; let res = (0, $468c774d7db917b7$exports.useCheckbox)({ ...props, isReadOnly: props.isReadOnly || state.isReadOnly, isDisabled: props.isDisabled || state.isDisabled, name: props.name || name, isRequired: (_props_isRequired = props.isRequired) !== null && _props_isRequired !== void 0 ? _props_isRequired : state.isRequired, validationBehavior: validationBehavior, [(0, $2Rh3D$reactstatelyform.privateValidationStateProp)]: { realtimeValidation: combinedRealtimeValidation, displayValidation: displayValidation, resetValidation: state.resetValidation, commitValidation: state.commitValidation, updateValidation (v) { nativeValidation.current = v; updateValidation(); } } }, toggleState, inputRef); return { ...res, inputProps: { ...res.inputProps, 'aria-describedby': [ props['aria-describedby'], state.isInvalid ? errorMessageId : null, descriptionId ].filter(Boolean).join(' ') || undefined } }; } //# sourceMappingURL=useCheckboxGroupItem.main.js.map