UNPKG

choerodon-ui

Version:

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

261 lines (208 loc) 7.92 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 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 _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); 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")); function _createSuper(Derived) { function isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } return function () { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (isNativeReflectConstruct()) { 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); }; } var VerifySlider = /*#__PURE__*/ function (_Component) { (0, _inherits2["default"])(VerifySlider, _Component); var _super = _createSuper(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: "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 _this$moveEvent; (_this$moveEvent = this.moveEvent) === null || _this$moveEvent === void 0 ? void 0 : _this$moveEvent.clear(); } }, { key: "render", value: function render() { var prefixCls = this.prefixCls; return _react["default"].createElement("div", { className: "".concat(prefixCls, "-verify-content") }, _react["default"].createElement("div", { className: "".concat(prefixCls, "-verify-content-slide"), ref: this.contentOnRef }, _react["default"].createElement("div", { className: "".concat(prefixCls, "-simple-verify") }, _react["default"].createElement("div", { className: "".concat(prefixCls, "-simple-verify-tips") }, (0, _localeContext.$l)('SecretField', 'verify_slider_hint')), _react["default"].createElement("div", { className: "".concat(prefixCls, "-simple-verify-box") }, _react["default"].createElement("div", { className: "".concat(prefixCls, "-simple-verify-slide"), ref: this.slideOnRef })), _react["default"].createElement("div", { className: "".concat(prefixCls, "-simple-verify-bar"), onMouseDown: this.handleMouseDown }, _react["default"].createElement("div", { className: "".concat(prefixCls, "-simple-verify-bar-icon"), ref: this.barOnRef })), _react["default"].createElement("div", { className: "".concat(prefixCls, "-simple-verify-success-tips"), ref: this.tipOnRef }, _react["default"].createElement(_icon["default"], { type: 'check_circle_outline-o' }), (0, _localeContext.$l)('SecretField', 'verify_finish')))), _react["default"].createElement("div", { className: "".concat(prefixCls, "-verify-content-btn") }, _react["default"].createElement(_button["default"], { onClick: this.handleSlider }, (0, _localeContext.$l)('SecretField', 'cancel')))); } }, { key: "prefixCls", get: function get() { var context = this.context; return context.getProPrefixCls('secret-field'); } }], [{ 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