UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

230 lines (183 loc) 7.11 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"]; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; 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 _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper")); var _tslib = require("tslib"); var _react = _interopRequireWildcard(require("react")); var _ConfigContext = _interopRequireDefault(require("../../../lib/config-provider/ConfigContext")); var _localeContext = require("../locale-context"); var _icon = _interopRequireDefault(require("../icon")); var _button = _interopRequireDefault(require("../button")); var _autobind = _interopRequireDefault(require("../_util/autobind")); var _EventManager = _interopRequireDefault(require("../_util/EventManager")); var VerifySlider = /*#__PURE__*/function (_Component) { (0, _inherits2["default"])(VerifySlider, _Component); var _super = (0, _createSuper2["default"])(VerifySlider); function VerifySlider() { var _this; (0, _classCallCheck2["default"])(this, VerifySlider); _this = _super.apply(this, arguments); /** * 初始数据 */ /** x */ _this.x1 = 0; _this.x2 = 0; /** 鼠标是否按下 */ _this.isMousedown = false; /** 是否已经成功 */ _this.isSuccess = false; /** 最大滑动距离 */ _this.max = 290; _this.contentOnRef = function (ele) { _this.contentEle = ele; }; _this.slideOnRef = function (ele) { _this.slideEle = ele; }; _this.barOnRef = function (ele) { _this.barEle = ele; }; _this.tipOnRef = function (ele) { _this.tipEle = ele; }; return _this; } (0, _createClass2["default"])(VerifySlider, [{ key: "prefixCls", get: function get() { var context = this.context; return context.getProPrefixCls('secret-field'); } }, { key: "handleMouseDown", value: function handleMouseDown(e) { if (this.isSuccess) { return; } this.x1 = e.nativeEvent.x || e.touches[0].clientX; this.isMousedown = true; if (!this.moveEvent) { this.moveEvent = new _EventManager["default"](this.contentEle); } this.moveEvent.addEventListener('mousemove', this.handleMouseMove).addEventListener('mouseup', this.handleMouseUp); } }, { key: "handleMouseMove", value: function handleMouseMove(e) { var onSuccess = this.props.onSuccess; if (!this.isMousedown || this.isSuccess) { return; } e.preventDefault(); e.stopPropagation(); this.x2 = e.x || e.touches[0].clientX; var diff = this.x2 - this.x1; if (diff < 0) { diff = 0; } // mouseUp时候判断 if (diff >= this.max) { diff = this.max; this.isSuccess = true; this.tipEle.style.opacity = 1; if (onSuccess) { onSuccess(); } } var style = this.slideEle.style; var barEleStyle = this.barEle.style; style.transform = "translateX(".concat(diff, "px)"); style.opacity = 1; style.transitionDuration = '0s'; barEleStyle.transform = "translateX(".concat(diff, "px)"); } }, { key: "handleMouseUp", value: function handleMouseUp() { if (this.isSuccess) { return; } this.isMousedown = false; var style = this.slideEle.style; var barEleStyle = this.barEle.style; style.transform = "translateX(0)"; style.opacity = 0; barEleStyle.transform = "translateX(0)"; if (this.moveEvent) { this.moveEvent.removeEventListener('mousemove', this.handleMouseMove).removeEventListener('mouseup', this.handleMouseUp); } } /** 滑块取消 */ }, { key: "handleSlider", value: function handleSlider() { var onCancel = this.props.onCancel; if (onCancel) { onCancel(); } } }, { key: "componentWillUnmount", value: function componentWillUnmount() { var moveEvent = this.moveEvent; if (moveEvent) { moveEvent.clear(); } } }, { key: "render", value: function render() { var prefixCls = this.prefixCls; return /*#__PURE__*/_react["default"].createElement("div", { className: "".concat(prefixCls, "-verify-content") }, /*#__PURE__*/_react["default"].createElement("div", { className: "".concat(prefixCls, "-verify-content-slide"), ref: this.contentOnRef }, /*#__PURE__*/_react["default"].createElement("div", { className: "".concat(prefixCls, "-simple-verify") }, /*#__PURE__*/_react["default"].createElement("div", { className: "".concat(prefixCls, "-simple-verify-tips") }, (0, _localeContext.$l)('SecretField', 'verify_slider_hint')), /*#__PURE__*/_react["default"].createElement("div", { className: "".concat(prefixCls, "-simple-verify-box") }, /*#__PURE__*/_react["default"].createElement("div", { className: "".concat(prefixCls, "-simple-verify-slide"), ref: this.slideOnRef })), /*#__PURE__*/_react["default"].createElement("div", { className: "".concat(prefixCls, "-simple-verify-bar"), onMouseDown: this.handleMouseDown }, /*#__PURE__*/_react["default"].createElement("div", { className: "".concat(prefixCls, "-simple-verify-bar-icon"), ref: this.barOnRef })), /*#__PURE__*/_react["default"].createElement("div", { className: "".concat(prefixCls, "-simple-verify-success-tips"), ref: this.tipOnRef }, /*#__PURE__*/_react["default"].createElement(_icon["default"], { type: 'check_circle_outline-o' }), (0, _localeContext.$l)('SecretField', 'verify_finish')))), /*#__PURE__*/_react["default"].createElement("div", { className: "".concat(prefixCls, "-verify-content-btn") }, /*#__PURE__*/_react["default"].createElement(_button["default"], { onClick: this.handleSlider }, (0, _localeContext.$l)('SecretField', 'cancel')))); } }], [{ key: "contextType", get: function get() { return _ConfigContext["default"]; } }]); return VerifySlider; }(_react.Component); exports["default"] = VerifySlider; VerifySlider.displayName = 'VerifySlider'; (0, _tslib.__decorate)([_autobind["default"]], VerifySlider.prototype, "handleMouseDown", null); (0, _tslib.__decorate)([_autobind["default"]], VerifySlider.prototype, "handleMouseMove", null); (0, _tslib.__decorate)([_autobind["default"]], VerifySlider.prototype, "handleMouseUp", null); (0, _tslib.__decorate)([_autobind["default"]], VerifySlider.prototype, "handleSlider", null); //# sourceMappingURL=VerifySlider.js.map