1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- import { Component, triggerEvent, getValueFromProps } from '../_util/simply';
- import { StepperDefaultProps } from './props';
- import { getPrecision, getValidNumber } from './utils';
- import mixinValue from '../mixins/value';
- Component(StepperDefaultProps, {
- onFocus: function (e) {
- var value = this.getValue();
- triggerEvent(this, 'focus', value === '' ? null : Number(value), e);
- },
- onChange: function (val, e) {
- var _a = this.update(val), needUpdate = _a.needUpdate, value = _a.value;
- if (getValueFromProps(this, 'onChange') && needUpdate) {
- triggerEvent(this, 'change', value === '' ? null : Number(value), e);
- }
- },
- onConfirm: function (val, e) {
- var value = this.getValue();
- triggerEvent(this, 'confirm', value === '' ? null : Number(value), e);
- },
- onBlur: function (e) {
- if (this.isControlled()) {
- this.update(getValueFromProps(this, 'value'));
- }
- var value = this.getValue();
- triggerEvent(this, 'blur', value === '' ? null : Number(value), e);
- },
- onTap: function (e) {
- var _a = getValueFromProps(this, [
- 'step',
- 'disabled',
- 'min',
- 'max',
- 'precision',
- ]), step = _a[0], disabled = _a[1], _b = _a[2], min = _b === void 0 ? -Infinity : _b, _c = _a[3], max = _c === void 0 ? Infinity : _c, precisionFormProps = _a[4];
- var value = Number(this.getValue() || 0);
- if (!disabled) {
- var mode = e.currentTarget.dataset.mode;
- var result = value;
- var precision = precisionFormProps >= 0
- ? precisionFormProps
- : Math.max(getPrecision(value), getPrecision(step));
- if (mode === 'minus') {
- // 【减】按钮的操作
- result = value - step;
- if (result < min) {
- result = min;
- }
- }
- else if (mode === 'add') {
- // 【加】按钮的操作
- result = value + step;
- if (result > max) {
- result = max;
- }
- }
- if (!this.isControlled()) {
- var needUpdate = this.update(result, {}, precision).needUpdate;
- if (!needUpdate) {
- return;
- }
- }
- {
- var value_1 = getValidNumber(result, min, max, step, precision).value;
- triggerEvent(this, 'change', Number(value_1), e);
- }
- }
- },
- }, undefined, [
- mixinValue({
- transformValue: function (num, extra, precision) {
- var _a = getValueFromProps(this, [
- 'min',
- 'max',
- 'step',
- 'precision',
- ]), min = _a[0], max = _a[1], step = _a[2], precisionFormProps = _a[3];
- var _b = getValidNumber(num, min, max, step, precision >= 0 ? precision : precisionFormProps), valid = _b.valid, value = _b.value;
- if (valid && this.getValue() !== value) {
- return {
- needUpdate: true,
- value: value,
- };
- }
- return {
- needUpdate: false,
- };
- },
- }),
- ]);
|