| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.fixControlledValue = fixControlledValue;
- exports.hasAddon = hasAddon;
- exports.hasPrefixSuffix = hasPrefixSuffix;
- exports.resolveOnChange = resolveOnChange;
- exports.triggerFocus = triggerFocus;
- var _propsUtil = require("../../_util/props-util");
- const isValid = value => {
- return value !== undefined && value !== null && (Array.isArray(value) ? (0, _propsUtil.filterEmpty)(value).length : true);
- };
- function hasPrefixSuffix(propsAndSlots) {
- return isValid(propsAndSlots.prefix) || isValid(propsAndSlots.suffix) || isValid(propsAndSlots.allowClear);
- }
- function hasAddon(propsAndSlots) {
- return isValid(propsAndSlots.addonBefore) || isValid(propsAndSlots.addonAfter);
- }
- function fixControlledValue(value) {
- if (typeof value === 'undefined' || value === null) {
- return '';
- }
- return String(value);
- }
- function resolveOnChange(target, e, onChange, targetValue) {
- if (!onChange) {
- return;
- }
- const event = e;
- if (e.type === 'click') {
- Object.defineProperty(event, 'target', {
- writable: true
- });
- Object.defineProperty(event, 'currentTarget', {
- writable: true
- });
- // click clear icon
- //event = Object.create(e);
- const currentTarget = target.cloneNode(true);
- event.target = currentTarget;
- event.currentTarget = currentTarget;
- // change target ref value cause e.target.value should be '' when clear input
- currentTarget.value = '';
- onChange(event);
- return;
- }
- // Trigger by composition event, this means we need force change the input value
- if (targetValue !== undefined) {
- Object.defineProperty(event, 'target', {
- writable: true
- });
- Object.defineProperty(event, 'currentTarget', {
- writable: true
- });
- event.target = target;
- event.currentTarget = target;
- target.value = targetValue;
- onChange(event);
- return;
- }
- onChange(event);
- }
- function triggerFocus(element, option) {
- if (!element) return;
- element.focus(option);
- // Selection content
- const {
- cursor
- } = option || {};
- if (cursor) {
- const len = element.value.length;
- switch (cursor) {
- case 'start':
- element.setSelectionRange(0, 0);
- break;
- case 'end':
- element.setSelectionRange(len, len);
- break;
- default:
- element.setSelectionRange(0, len);
- }
- }
- }
|