UNPKG

@flatbiz/antd

Version:
144 lines (136 loc) 5.2 kB
/* eslint-disable */ import './../fba-hooks/index.css'; import './index.css'; /*! @flatjs/forge MIT @flatbiz/antd */ import { f as fbaUtils } from '../fba-utils-Dfbczn1S.js'; import { classNames } from '@dimjs/utils/class-names/class-names'; import { extend } from '@dimjs/utils/extend/extend'; import { hooks } from '@wove/react/hooks'; import { a as _slicedToArray, i as _defineProperty } from '../_rollupPluginBabelHelpers-BYm17lo8.js'; import { useMemo } from 'react'; import { fbaHooks } from '../fba-hooks/index.js'; import { createCtx } from '@wove/react/create-ctx'; import { toArray } from '@flatbiz/utils'; import { jsx, jsxs } from 'react/jsx-runtime'; import '@dimjs/lang/is-array'; import '@dimjs/model'; import '../use-responsive-point-Bp3D3lZT.js'; import 'antd'; var _createCtx = createCtx(), _createCtx2 = _slicedToArray(_createCtx, 2), useCheckListCtx = _createCtx2[0], CheckListCtxProvider = _createCtx2[1]; var getValueList = function getValueList(value, multiple) { if (value !== undefined) { var valueList = toArray(value); return multiple ? valueList : valueList.splice(0, 1); } return null; }; var CheckListInner = function CheckListInner(props) { var _fbaHooks$useArrayCha = fbaHooks.useArrayChange([]), _fbaHooks$useArrayCha2 = _slicedToArray(_fbaHooks$useArrayCha, 2), checkedValues = _fbaHooks$useArrayCha2[0], arrayOperate = _fbaHooks$useArrayCha2[1]; var valueList = useMemo(function () { return getValueList(props.value, props.multiple); }, [props.value, props.multiple]); fbaHooks.useEffectCustom(function () { var current = valueList || getValueList(props.defaultValue, props.multiple); arrayOperate.resetList(current || []); }, []); hooks.useUpdateEffect(function () { arrayOperate.resetList(valueList || []); }, [valueList]); var onChange = hooks.useCallbackRef(function (value, defaultChange) { return new Promise(function ($return, $error) { var targetIndex, _props$onChange, newValues, selectedValue; if (props.onPreChange) { return Promise.resolve(props.onPreChange(value)).then(function ($await_2) { try { return $If_1.call(this); } catch ($boundEx) { return $error($boundEx); } }.bind(this), $error); } function $If_1() { targetIndex = checkedValues.findIndex(function (temp) { return temp === value; }); if (props.multiple === true) { if (checkedValues.length === 1 && targetIndex >= 0 && props.required) { return $return(); } if (targetIndex >= 0) { arrayOperate.delete(targetIndex); } else { arrayOperate.add(value); } } else { if (targetIndex >= 0 && props.required) { return $return(); } else { arrayOperate.resetList(targetIndex >= 0 ? [] : [value]); } } if (!defaultChange) { newValues = arrayOperate.getList(); if (props.multiple) { selectedValue = newValues.length > 0 ? extend([], newValues) : undefined; } else { selectedValue = newValues.length > 0 ? newValues[0] : undefined; } (_props$onChange = props.onChange) === null || _props$onChange === void 0 || _props$onChange.call(props, selectedValue, value); } return $return(); } return $If_1.call(this); }); }); return /*#__PURE__*/jsx("div", { className: classNames('check-list', props.className), style: props.style, children: /*#__PURE__*/jsxs(CheckListCtxProvider, { value: { onChange: onChange, checkedValues: checkedValues, stopPropagation: props.stopPropagation }, children: [props.beforeExtra, props.children, props.afterExtra] }) }); }; var CheckListItem = function CheckListItem(props) { var context = useCheckListCtx(); if (context === null) { console.error('CheckList.Item can only be used inside CheckList.'); return null; } var onClick = hooks.useCallbackRef(function (event) { if (context.stopPropagation) { event.stopPropagation(); } if (!props.disabled) { context === null || context === void 0 || context.onChange(props.value); } }); var checked = (context === null || context === void 0 ? void 0 : context.checkedValues.findIndex(function (temp) { return temp === props.value; })) >= 0; var checkedClassPrefix = 'check-list'; var className = classNames("".concat(checkedClassPrefix, "-item"), _defineProperty(_defineProperty(_defineProperty({}, "".concat(checkedClassPrefix, "-disabled"), props.disabled), "".concat(checkedClassPrefix, "-readonly"), props.readonly), "".concat(checkedClassPrefix, "-checked"), checked), props.className); return props.children({ onClick: onClick, checked: checked, disabled: props.disabled, readonly: props.readonly, className: className, style: props.style }); }; var CheckList = fbaUtils.attachPropertiesToComponent(CheckListInner, { Item: CheckListItem }); export { CheckList }; //# sourceMappingURL=index.js.map