first commit
This commit is contained in:
95
frontend/node_modules/rc-collapse/es/Collapse.js
generated
vendored
Normal file
95
frontend/node_modules/rc-collapse/es/Collapse.js
generated
vendored
Normal file
@@ -0,0 +1,95 @@
|
||||
import _extends from "@babel/runtime/helpers/esm/extends";
|
||||
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
||||
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
||||
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
||||
import classNames from 'classnames';
|
||||
import useMergedState from "rc-util/es/hooks/useMergedState";
|
||||
import warning from "rc-util/es/warning";
|
||||
import React from 'react';
|
||||
import useItems from "./hooks/useItems";
|
||||
import CollapsePanel from "./Panel";
|
||||
import pickAttrs from "rc-util/es/pickAttrs";
|
||||
function getActiveKeysArray(activeKey) {
|
||||
var currentActiveKey = activeKey;
|
||||
if (!Array.isArray(currentActiveKey)) {
|
||||
var activeKeyType = _typeof(currentActiveKey);
|
||||
currentActiveKey = activeKeyType === 'number' || activeKeyType === 'string' ? [currentActiveKey] : [];
|
||||
}
|
||||
return currentActiveKey.map(function (key) {
|
||||
return String(key);
|
||||
});
|
||||
}
|
||||
var Collapse = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
||||
var _props$prefixCls = props.prefixCls,
|
||||
prefixCls = _props$prefixCls === void 0 ? 'rc-collapse' : _props$prefixCls,
|
||||
_props$destroyInactiv = props.destroyInactivePanel,
|
||||
destroyInactivePanel = _props$destroyInactiv === void 0 ? false : _props$destroyInactiv,
|
||||
style = props.style,
|
||||
accordion = props.accordion,
|
||||
className = props.className,
|
||||
children = props.children,
|
||||
collapsible = props.collapsible,
|
||||
openMotion = props.openMotion,
|
||||
expandIcon = props.expandIcon,
|
||||
rawActiveKey = props.activeKey,
|
||||
defaultActiveKey = props.defaultActiveKey,
|
||||
_onChange = props.onChange,
|
||||
items = props.items;
|
||||
var collapseClassName = classNames(prefixCls, className);
|
||||
var _useMergedState = useMergedState([], {
|
||||
value: rawActiveKey,
|
||||
onChange: function onChange(v) {
|
||||
return _onChange === null || _onChange === void 0 ? void 0 : _onChange(v);
|
||||
},
|
||||
defaultValue: defaultActiveKey,
|
||||
postState: getActiveKeysArray
|
||||
}),
|
||||
_useMergedState2 = _slicedToArray(_useMergedState, 2),
|
||||
activeKey = _useMergedState2[0],
|
||||
setActiveKey = _useMergedState2[1];
|
||||
var onItemClick = function onItemClick(key) {
|
||||
return setActiveKey(function () {
|
||||
if (accordion) {
|
||||
return activeKey[0] === key ? [] : [key];
|
||||
}
|
||||
var index = activeKey.indexOf(key);
|
||||
var isActive = index > -1;
|
||||
if (isActive) {
|
||||
return activeKey.filter(function (item) {
|
||||
return item !== key;
|
||||
});
|
||||
}
|
||||
return [].concat(_toConsumableArray(activeKey), [key]);
|
||||
});
|
||||
};
|
||||
|
||||
// ======================== Children ========================
|
||||
warning(!children, '[rc-collapse] `children` will be removed in next major version. Please use `items` instead.');
|
||||
var mergedChildren = useItems(items, children, {
|
||||
prefixCls: prefixCls,
|
||||
accordion: accordion,
|
||||
openMotion: openMotion,
|
||||
expandIcon: expandIcon,
|
||||
collapsible: collapsible,
|
||||
destroyInactivePanel: destroyInactivePanel,
|
||||
onItemClick: onItemClick,
|
||||
activeKey: activeKey
|
||||
});
|
||||
|
||||
// ======================== Render ========================
|
||||
return /*#__PURE__*/React.createElement("div", _extends({
|
||||
ref: ref,
|
||||
className: collapseClassName,
|
||||
style: style,
|
||||
role: accordion ? 'tablist' : undefined
|
||||
}, pickAttrs(props, {
|
||||
aria: true,
|
||||
data: true
|
||||
})), mergedChildren);
|
||||
});
|
||||
export default Object.assign(Collapse, {
|
||||
/**
|
||||
* @deprecated use `items` instead, will be removed in `v4.0.0`
|
||||
*/
|
||||
Panel: CollapsePanel
|
||||
});
|
||||
Reference in New Issue
Block a user