UNPKG

@vnmfify/core

Version:

```shell npm i @vnmfify/core -S ```

61 lines (50 loc) 3.12 kB
import _size from "lodash/size"; import _set from "lodash/set"; import _isUndefined from "lodash/isUndefined"; import _filter from "lodash/filter"; import _map from "lodash/map"; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } import * as React from "react"; import { useCallback, useContext } from "react"; import PickerColumnsRender from "./picker-columns-render"; import PickerContext from "./picker.context"; import { getPickerValue, validPickerColumn } from "./picker.shared"; function PickerColumns(props) { var { readonly, values, siblingCount, getValueOptions, isMultiValue, setValueOptions, onChange } = useContext(PickerContext); var onColumnChange = useCallback((option, unverifiedColumn, emitChange) => { setValueOptions === null || setValueOptions === void 0 ? void 0 : setValueOptions(option, unverifiedColumn); var column = validPickerColumn(unverifiedColumn); if (column && emitChange) { var { index: columnIndex } = column; var newValues = _map(_filter(getValueOptions === null || getValueOptions === void 0 ? void 0 : getValueOptions(), newOption => !_isUndefined(newOption)), _ref => { var { value } = _ref; return value; }); _set(newValues, columnIndex, option === null || option === void 0 ? void 0 : option.value); var aValues = getPickerValue(newValues, (isMultiValue === null || isMultiValue === void 0 ? void 0 : isMultiValue()) || _size(newValues) > 1); onChange === null || onChange === void 0 ? void 0 : onChange(aValues, _objectSpread({}, option), _objectSpread({}, column)); } }, [getValueOptions, isMultiValue, onChange, setValueOptions]); return /*#__PURE__*/React.createElement(PickerColumnsRender, _objectSpread(_objectSpread({}, props), {}, { readonly: readonly, values: values, siblingCount: siblingCount, onChange: onColumnChange })); } export default PickerColumns; //# sourceMappingURL=picker-columns.js.map