smart-react-components
Version:
React UI library, wide variety of editable ready to use Styled and React components.
61 lines (56 loc) • 4.77 kB
JavaScript
'use strict';
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var index = require('../index-6d498b59.js');
require('../DOMHelper-c0bd5a29.js');
var React = require('react');
var React__default = _interopDefault(React);
require('styled-components');
require('../index-56ba89df.js');
var Div = require('../element/Div.js');
require('../element/Svg.js');
require('../Close-72bfdc7e.js');
require('../Badge-28700875.js');
require('../Container-7b969272.js');
require('../Icon-8e539dc5.js');
require('../element/Span.js');
require('../Text-c2784368.js');
require('../element/A.js');
require('react-dom');
var WaveEffect = require('../WaveEffect-96d9007c.js');
var Element = require('../Element-d9208356.js');
require('../Transition-48c5648c.js');
require('../CSSTransition-5a3ab124.js');
var Loading = require('../Loading-679f1816.js');
require('../ArrowDown-a8680a44.js');
var UseSelectMethods = require('../UseSelectMethods-88c2134a.js');
require('../Overlay-95b8c50b.js');
var FixedBox = require('../FixedBox-a18d2049.js');
var SelectFixedBoxElement = require('../SelectFixedBoxElement-164f1924.js');
require('../UseInputMethod-e6937228.js');
require('../UseInputOutput-6af67949.js');
require('../SlideTransition-b2e129ec.js');
require('../element/Label.js');
require('../element/Input.js');
require('../InputElement-def827fe.js');
var Input = require('../Input-566c64fb.js');
const ButtonSelect = ({ size = "default", sizeSm, sizeMd, sizeLg, sizeXl, buttonProps = index.DV.JSX_ELEMENT_PROPS, boxProps = index.DV.JSX_ELEMENT_PROPS, children, type = "primary", fill, border, shape = "default", block, waveEffect = "light", active, setActive, placeholder, hover = true, optionType = "primary", optionWaveEffect = "light", arrow = true, boxShadow, minWidth = 300, transitionClassName, transitionType, transitionDuration, showAnimation = true, hideAnimation = true, loading, loadingStatus, loadingTransitionClassName = "src-button-loading", loadingTransitionType = "ease-in-out", loadingTransitionDuration = 300, loadingTransitionShowAnimation = true, loadingTransitionHideAnimation = true, search, searchInputProps = index.DV.JSX_ELEMENT_PROPS }) => {
const { itemList, searchText, setSearchText } = UseSelectMethods.useSelectMethods({ size, sizeSm, sizeMd, sizeLg, sizeXl, box: true, placeholder, optionType, arrow, children, fill, shape, hover, waveEffect: optionWaveEffect, disabled: buttonProps.disabled, active, setActive, closeBox: (() => setStatus(false)), search });
const [status, setStatus] = React__default.useState(false);
const fixedBoxOnRef = React__default.useRef(null);
React__default.useEffect(() => {
if (fixedBoxOnRef.current)
fixedBoxOnRef.current.setPosition();
}, [itemList]);
const ButtonEl = (React__default.createElement(Element.ButtonElement, Object.assign({ tabIndex: 0 }, buttonProps, { as: "div", "size$": size, "size$Sm": sizeSm, "size$Md": sizeMd, "size$Lg": sizeLg, "size$Xl": sizeXl, "type$": type, "fill$": fill, "border$": border, shape: shape, block: block, "loading$": loading ? true : false, "data-src-placeholder-style": itemList.isPlaceholder, "data-src-active": status }),
loading && React__default.createElement(Loading.Loading, { element: loading, status: loadingStatus, transitionClassName: loadingTransitionClassName, transitionDuration: loadingTransitionDuration, transitionType: loadingTransitionType, transitionShowAnimation: loadingTransitionShowAnimation, transitionHideAnimation: loadingTransitionHideAnimation }),
itemList.active));
const FragmentEl = waveEffect ? React__default.createElement(WaveEffect.WaveEffect, { type: waveEffect }, ButtonEl) : ButtonEl;
return (React__default.createElement(FixedBox.FixedBox, { status: status, setStatus: setStatus, minWidth: minWidth, boxShadow: boxShadow, transitionClassName: transitionClassName, transitionType: transitionType, transitionDuration: transitionDuration, showAnimation: showAnimation, hideAnimation: hideAnimation, onRef: args => fixedBoxOnRef.current = args },
FragmentEl,
React__default.createElement(SelectFixedBoxElement.SelectFixedBoxElement, Object.assign({}, boxProps, { size: size, sizeSm: sizeSm, sizeMd: sizeMd, sizeLg: sizeLg, sizeXl: sizeXl, type: type, shape: shape }),
React__default.createElement(Div, { height: "inherit", minHeight: "inherit", maxHeight: "inherit" },
search && React__default.createElement("section", null,
React__default.createElement(Input.Input, Object.assign({}, searchInputProps, { value: searchText, setValue: setSearchText }))),
itemList.value))));
};
module.exports = ButtonSelect;