react-trigger-change
Version:
Trigger React's synthetic change events on input, textarea and select elements
1 lines • 2.53 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.reactTriggerChange=t():e.reactTriggerChange=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var c=n[r]={i:r,l:!1,exports:{}};return e[r].call(c.exports,c,c.exports,t),c.l=!0,c.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=0)}([function(e,t,n){"use strict";e.exports=function(e){function t(e,t){var n=Object.getOwnPropertyDescriptor(e,t);n&&n.configurable&&delete e[t]}function n(e){e.preventDefault(),i||(e.target.checked=!1),u&&(u.checked=!0)}var r,c,o,i,u,a={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0},p=e.nodeName.toLowerCase(),d=e.type;"select"===p||"input"===p&&"file"===d?(r=document.createEvent("HTMLEvents"),r.initEvent("change",!0,!1),e.dispatchEvent(r)):"input"===p&&a[d]||"textarea"===p?(c=Object.getOwnPropertyDescriptor(e,"value"),r=document.createEvent("UIEvents"),r.initEvent("focus",!1,!1),e.dispatchEvent(r),"range"===d?function(e){var n=e.min,r=e.max,c=e.step,o=Number(e.value);e.min=o,e.max=o+1,e.step=1,e.value=o+1,t(e,"value"),e.min=n,e.max=r,e.step=c,e.value=o}(e):(o=e.value,e.value=o+"#",t(e,"value"),e.value=o),r=document.createEvent("HTMLEvents"),r.initEvent("propertychange",!1,!1),r.propertyName="value",e.dispatchEvent(r),r=document.createEvent("HTMLEvents"),r.initEvent("input",!0,!1),e.dispatchEvent(r),c&&Object.defineProperty(e,"value",c)):"input"===p&&"checkbox"===d?(e.checked=!e.checked,r=document.createEvent("MouseEvents"),r.initEvent("click",!0,!0),e.dispatchEvent(r)):"input"===p&&"radio"===d&&(i=e.checked,u=function(e){var t,n,r=e.name;if(r)for(t=document.querySelectorAll('input[type="radio"][name="'+r+'"]'),n=0;n<t.length;n+=1)if(t[n].checked)return t[n]!==e?t[n]:null;return null}(e),c=Object.getOwnPropertyDescriptor(e,"checked"),e.checked=!i,t(e,"checked"),e.checked=i,e.addEventListener("click",n,!0),r=document.createEvent("MouseEvents"),r.initEvent("click",!0,!0),e.dispatchEvent(r),e.removeEventListener("click",n,!0),c&&Object.defineProperty(e,"checked",c))}}])});