all files / directives/duplex/ updateDataHandle.js

100% Statements 21/21
100% Branches 12/12
100% Functions 2/2
100% Lines 21/21
11 statements, 1 function, 6 branches Ignored     
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42    1× 54× 54× 54×   13×   41× 29×     12× 1× 1× 1×       12× 1× 1× 1×   1× 1×     1× 1× 1×       12×            
import { updateDataActions } from './updateDataActions'
 
export function updateDataHandle(event) {
    var elem = this
    var field = elem._ms_duplex_
    if (elem.composing) {
        //防止onpropertychange引发爆栈
        return
    }
    if (elem.value === field.value) {
        return
    }
    /* istanbul ignore if*/
    Iif (elem.caret) {
        try {
            var pos = field.getCaret(elem)
            field.pos = pos
        } catch (e) {}
    }
    /* istanbul ignore if*/
    Iif (field.debounceTime > 4) {
        var timestamp = new Date()
        var left = timestamp - field.time || 0
        field.time = timestamp
            /* istanbul ignore if*/
        if (left >= field.debounceTime) {
            updateDataActions[field.dtype].call(field)
                /* istanbul ignore else*/
        } else {
            clearTimeout(field.debounceID)
            field.debounceID = setTimeout(function() {
                updateDataActions[field.dtype].call(field)
            }, left)
        }
    } else {
        updateDataActions[field.dtype].call(field)
    }
}
 
export {
    updateDataHandle as updateModel
}