UNPKG

@kiwicom/orbit-components

Version:

Orbit-components is a React component library which provides developers with the easiest possible way of building Kiwi.com’s products.

100 lines (85 loc) 3.58 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var React = _interopRequireWildcard(require("react")); var _styledComponents = _interopRequireWildcard(require("styled-components")); var _Button = _interopRequireDefault(require("./Button")); var _Minus = _interopRequireDefault(require("../../icons/Minus")); var _Plus = _interopRequireDefault(require("../../icons/Plus")); var _defaultTheme = _interopRequireDefault(require("../../defaultTheme")); var StyledStepper = _styledComponents.default.div.withConfig({ displayName: "Stepper__StyledStepper", componentId: "sc-83d925-0" })(["display:flex;align-items:center;width:100%;flex:1 1 auto;"]); var StyledStepperInput = _styledComponents.default.input.withConfig({ displayName: "Stepper__StyledStepperInput", componentId: "sc-83d925-1" })(["", ""], function (_ref) { var theme = _ref.theme; return (0, _styledComponents.css)(["width:100%;height:22px;padding:0;border:0;font-size:", ";font-weight:", ";color:", ";text-align:center;min-width:0;&:disabled{background-color:transparent;}&::-webkit-inner-spin-button,&::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;}&:focus{outline:none;}"], theme.orbit.fontSizeTextLarge, theme.orbit.fontWeightBold, theme.orbit.paletteInkNormal); }); // $FlowFixMe: https://github.com/flow-typed/flow-typed/issues/3653#issuecomment-568539198 StyledStepperInput.defaultProps = { theme: _defaultTheme.default }; var StepperStateless = function StepperStateless(_ref2) { var selected = _ref2.selected, disabled = _ref2.disabled, dataTest = _ref2.dataTest, value = _ref2.value, name = _ref2.name, minValue = _ref2.minValue, maxValue = _ref2.maxValue, _onKeyDown = _ref2.onKeyDown, onBlur = _ref2.onBlur, onFocus = _ref2.onFocus, onIncrement = _ref2.onIncrement, onDecrement = _ref2.onDecrement, titleIncrement = _ref2.titleIncrement, titleDecrement = _ref2.titleDecrement, disabledIncrement = _ref2.disabledIncrement, disabledDecrement = _ref2.disabledDecrement; return /*#__PURE__*/React.createElement(StyledStepper, { "data-test": dataTest }, /*#__PURE__*/React.createElement(_Button.default, { selected: selected, disabled: disabled || disabledDecrement || typeof value === "number" && value <= +minValue, iconLeft: /*#__PURE__*/React.createElement(_Minus.default, null), onClick: function onClick(ev) { if (onDecrement && !disabled) { onDecrement(ev); } }, title: titleDecrement }), /*#__PURE__*/React.createElement(StyledStepperInput, { name: name, disabled: disabled, type: "text", value: value || 0, min: minValue, max: maxValue, onKeyDown: function onKeyDown(ev) { if (_onKeyDown) { _onKeyDown(ev); } }, onBlur: onBlur, onFocus: onFocus, readOnly: true }), /*#__PURE__*/React.createElement(_Button.default, { selected: selected, disabled: disabled || disabledIncrement || typeof value === "number" && value >= +maxValue, iconLeft: /*#__PURE__*/React.createElement(_Plus.default, null), onClick: function onClick(ev) { if (onIncrement && !disabled) { onIncrement(ev); } }, title: titleIncrement })); }; var _default = StepperStateless; exports.default = _default;