UNPKG

@wix/design-system

Version:

@wix/design-system

118 lines (115 loc) 4.27 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _ToggleSwitchCore = _interopRequireDefault(require("./ToggleSwitchCore")); var _system = require("@wix/wix-ui-icons-common/system"); var _wixUiIconsCommon = require("@wix/wix-ui-icons-common"); var _generateDataAttr = require("../utils/generateDataAttr"); var _ToggleSwitch2 = require("./ToggleSwitch.constants"); var _ToggleSwitchSt = require("./ToggleSwitch.st.css.js"); var _excluded = ["size", "skin", "styles", "dataHook", "className"]; var _jsxFileName = "/home/builduser/work/57e038ea7326c1ec/packages/wix-design-system/dist/cjs/ToggleSwitch/ToggleSwitch.js"; var checkedIconMap = { [_ToggleSwitch2.SIZES.small]: undefined, [_ToggleSwitch2.SIZES.medium]: /*#__PURE__*/_react.default.createElement(_system.ToggleOnSmall, { __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 17, columnNumber: 19 } }), [_ToggleSwitch2.SIZES.large]: /*#__PURE__*/_react.default.createElement(_system.ToggleOn, { __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 18, columnNumber: 18 } }) }; var uncheckedIconMap = { [_ToggleSwitch2.SIZES.small]: undefined, [_ToggleSwitch2.SIZES.medium]: /*#__PURE__*/_react.default.createElement(_system.ToggleOffSmall, { __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 23, columnNumber: 19 } }), [_ToggleSwitch2.SIZES.large]: /*#__PURE__*/_react.default.createElement(_system.ToggleOff, { __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 24, columnNumber: 18 } }) }; /** toggle switch */ class ToggleSwitch extends _react.default.PureComponent { render() { var _this$props = this.props, { size, skin, styles: stylesProp, // Should not allow inline styles (applied in core component) dataHook, className } = _this$props, rest = (0, _objectWithoutProperties2.default)(_this$props, _excluded); return /*#__PURE__*/_react.default.createElement(_ToggleSwitchCore.default, (0, _extends2.default)({ className: (0, _ToggleSwitchSt.st)(_ToggleSwitchSt.classes.root, { skin, size }, className) }, (0, _generateDataAttr.generateDataAttr)(this.props, ['skin', 'size']), { "data-hook": dataHook, checkedIcon: checkedIconMap[size], uncheckedIcon: uncheckedIconMap[size] }, rest, { __self: this, __source: { fileName: _jsxFileName, lineNumber: 79, columnNumber: 7 } })); } } ToggleSwitch.displayName = 'ToggleSwitch'; ToggleSwitch.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. * @internal */ className: _propTypes.default.string, /** Assigns an unique identifier for the root element. */ id: _propTypes.default.string, /** Controls the skin of a toggle. */ skin: _propTypes.default.oneOf(['standard', 'success', 'error', 'urgent']), /** Controls the size of a toggle. */ size: _propTypes.default.oneOf(['small', 'medium', 'large']), /** Specifies whether toggle is checked. */ checked: _propTypes.default.bool, /** Specifies whether toggle is disabled. */ disabled: _propTypes.default.bool, /** Defines a callback function which is called every time toggle state changes. */ onChange: _propTypes.default.func, /** Indicates that element can be focused and where it participates in sequential keyboard navigation. */ tabIndex: _propTypes.default.number }; ToggleSwitch.defaultProps = { skin: 'standard', size: 'large' }; var _default = exports.default = ToggleSwitch; //# sourceMappingURL=ToggleSwitch.js.map