UNPKG

wix-style-react

Version:
174 lines (139 loc) • 7.16 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.addressInputItemBuilder = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _ListItemSelect = _interopRequireDefault(require("../ListItemSelect")); var _Text = _interopRequireDefault(require("../Text")); var _Box = _interopRequireDefault(require("../Box")); var _Location = _interopRequireDefault(require("wix-ui-icons-common/Location")); var _AddressInputItemSt = require("./AddressInputItem.st.css"); var _excluded = ["selected", "hovered"]; function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** This component is used to display an address item mainly in <AddressInput/> component. */ var AddressInputItem = /*#__PURE__*/function (_React$PureComponent) { (0, _inherits2["default"])(AddressInputItem, _React$PureComponent); var _super = _createSuper(AddressInputItem); function AddressInputItem() { (0, _classCallCheck2["default"])(this, AddressInputItem); return _super.apply(this, arguments); } (0, _createClass2["default"])(AddressInputItem, [{ key: "render", value: function render() { var _this$props = this.props, dataHook = _this$props.dataHook, className = _this$props.className, secondaryLabel = _this$props.secondaryLabel, optionLayout = _this$props.optionLayout, mainLabel = _this$props.mainLabel, suffix = _this$props.suffix, prefix = _this$props.prefix, disabled = _this$props.disabled, selected = _this$props.selected, highlighted = _this$props.highlighted, onClick = _this$props.onClick; var textProps = { tagName: 'div', ellipsis: true, skin: disabled ? 'disabled' : 'standard', light: selected }; return /*#__PURE__*/_react["default"].createElement(_ListItemSelect["default"], { dataHook: dataHook, className: (0, _AddressInputItemSt.st)(_AddressInputItemSt.classes.root, { optionLayout: optionLayout }, className), subtitle: secondaryLabel, title: /*#__PURE__*/_react["default"].createElement(_Text["default"], textProps, mainLabel), suffix: /*#__PURE__*/_react["default"].createElement(_Box["default"], null, suffix), prefix: /*#__PURE__*/_react["default"].createElement(_Box["default"], null, prefix), ellipsis: true, disabled: disabled, selected: selected, highlighted: highlighted, onClick: onClick }); } }]); return AddressInputItem; }(_react["default"].PureComponent); var addressInputItemBuilder = function addressInputItemBuilder(_ref) { var id = _ref.id, className = _ref.className, prefix = _ref.prefix, mainLabel = _ref.mainLabel, secondaryLabel = _ref.secondaryLabel, suffix = _ref.suffix, disabled = _ref.disabled, dataHook = _ref.dataHook, optionLayout = _ref.optionLayout, onClick = _ref.onClick, displayLabel = _ref.displayLabel; return { id: id, disabled: disabled, overrideOptionStyle: true, label: displayLabel, value: function value(_ref2) { var selected = _ref2.selected, hovered = _ref2.hovered, rest = (0, _objectWithoutProperties2["default"])(_ref2, _excluded); return /*#__PURE__*/_react["default"].createElement(AddressInputItem, (0, _extends2["default"])({ optionLayout: optionLayout, dataHook: dataHook, className: className, prefix: prefix, mainLabel: mainLabel, secondaryLabel: secondaryLabel, suffix: suffix, selected: selected, highlighted: hovered, onClick: onClick }, rest)); } }; }; exports.addressInputItemBuilder = addressInputItemBuilder; AddressInputItem.displayName = 'AddressInputItem'; AddressInputItem.propTypes = { /** Applies a data-hook HTML attribute that can be used in the tests */ dataHook: _propTypes["default"].string, /** Specifies a CSS class name to be appended to the component’s root element */ className: _propTypes["default"].string, /** Sets the main label of an option. This label is a primary part that is matched to a search term or keyword. */ mainLabel: _propTypes["default"].string, /** Sets the additional information of an address. Usually contains a region or a country. */ secondaryLabel: _propTypes["default"].string, /** Sets the layout of mainLabel and secondaryLabel. Labels can be either side by side or stacked vertically. */ optionLayout: _propTypes["default"].oneOf(['single-line', 'double-line']), /** Pass a component you want to show as the prefix of the input, e.g., text, icon. */ prefix: _propTypes["default"].node, /** Pass a component you want to show as the suffix of the input, e.g., text, icon, button. */ suffix: _propTypes["default"].node, /** Specifies whether the option is selected. */ selected: _propTypes["default"].bool, /** Specifies whether option is highlighted */ highlighted: _propTypes["default"].bool, /** Specifies whether option is disabled */ disabled: _propTypes["default"].bool, /** Defines a callback function which is called every time option is clicked */ onClick: _propTypes["default"].func }; AddressInputItem.defaultProps = { optionLayout: 'single-line', prefix: /*#__PURE__*/_react["default"].createElement(_Location["default"], null) }; var _default = AddressInputItem; exports["default"] = _default;