(input, v)
| 12568 | } |
| 12569 | |
| 12570 | function emuInput(input, v) { |
| 12571 | let result = false; |
| 12572 | if (!input) return true; |
| 12573 | let event = new Event('focus', { bubbles: true }); |
| 12574 | input.dispatchEvent(event); |
| 12575 | let lastValue = input.value; |
| 12576 | if (input.type == 'file') { |
| 12577 | let file = v; |
| 12578 | let blob = new Blob([file], { |
| 12579 | type: 'text/plain' |
| 12580 | }); |
| 12581 | file = new File([blob], 'noname.txt', { type: blob.type }); |
| 12582 | let dataTransfer = new DataTransfer(); |
| 12583 | dataTransfer.items.add(file); |
| 12584 | input.files = dataTransfer.files; |
| 12585 | v = "c:/fakepath/fakefile"; |
| 12586 | } else if (/INPUT/i.test(input.nodeName)) { |
| 12587 | var nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, "value").set; |
| 12588 | nativeInputValueSetter.call(input, v); |
| 12589 | } else if (/SELECT/i.test(input.nodeName)) { |
| 12590 | var nativeSelectValueSetter = Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype, "value").set; |
| 12591 | nativeSelectValueSetter.call(input, v); |
| 12592 | } else if (input.nodeName.toUpperCase() == "TEXTAREA") { |
| 12593 | var nativeTextareaValueSetter = Object.getOwnPropertyDescriptor(window.HTMLTextAreaElement.prototype, "value").set; |
| 12594 | nativeTextareaValueSetter.call(input, v); |
| 12595 | } else { |
| 12596 | setHTML(input, v); |
| 12597 | } |
| 12598 | event = new Event('input', { bubbles: true }); |
| 12599 | let tracker = input._valueTracker; |
| 12600 | if (tracker) { |
| 12601 | tracker.setValue(lastValue); |
| 12602 | } |
| 12603 | input.dispatchEvent(event); |
| 12604 | event = new Event('change', { bubbles: true }); |
| 12605 | input.dispatchEvent(event); |
| 12606 | return result; |
| 12607 | } |
| 12608 | |
| 12609 | function clientX(e) { |
| 12610 | if (e.type.indexOf('touch') === 0) { |
no test coverage detected