nouislider-react
Version:
React component wrapping leongersen/noUiSlider
3 lines (2 loc) • 5.64 kB
JavaScript
import t,{useState as r,useEffect as n}from"react";import e from"nouislider";function o(t,r){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(t);r&&(e=e.filter((function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable}))),n.push.apply(n,e)}return n}function i(t){var r=function(t,r){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var e=n.call(t,r||"default");if("object"!=typeof e)return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}(t,"string");return"symbol"==typeof r?r:String(r)}function a(t){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}function u(t,r,n){return(r=i(r))in t?Object.defineProperty(t,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[r]=n,t}function c(){return c=Object.assign?Object.assign.bind():function(t){for(var r=1;r<arguments.length;r++){var n=arguments[r];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(t[e]=n[e])}return t},c.apply(this,arguments)}function l(t,r){return function(t){if(Array.isArray(t))return t}(t)||function(t,r){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var e,o,i,a,u=[],c=!0,l=!1;try{if(i=(n=n.call(t)).next,0===r){if(Object(n)!==n)return;c=!1}else for(;!(c=(e=i.call(n)).done)&&(u.push(e.value),u.length!==r);c=!0);}catch(t){l=!0,o=t}finally{try{if(!c&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(l)throw o}}return u}}(t,r)||s(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(t){return function(t){if(Array.isArray(t))return p(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||s(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(t,r){if(t){if("string"==typeof t)return p(t,r);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?p(t,r):void 0}}function p(t,r){(null==r||r>t.length)&&(r=t.length);for(var n=0,e=new Array(r);n<r;n++)e[n]=t[n];return e}var y=function(t){return Object.entries(t).sort().reduce((function(t,r){var n=l(r,2),e=n[0],o=n[1];return t[e]=o,t}),{})},b=function(t,r){return"number"==typeof t&&"number"==typeof r||"string"==typeof t&&"string"==typeof r?t===r:Array.isArray(t)&&Array.isArray(r)?JSON.stringify(t)===JSON.stringify(r):"object"===a(t)&&"object"===a(r)&&JSON.stringify(y(t))===JSON.stringify(y(r))},d=function(t,r){var n=t.start,e=t.step,o=t.disabled,i=t.range;return r.step===e&&b(r.start,n)&&r.disabled===o&&b(r.range,i)},m=function(i){var a=l(r(null),2),s=a[0],p=a[1],y=t.createRef();n((function(){var t=i.instanceRef,r=t&&Object.prototype.hasOwnProperty.call(t,"current");return t&&t instanceof Function&&t(y.current),r&&(t.current=y.current),function(){r&&(t.current=null)}}),[y]);var b=function(t){var r=Number(t.target.getAttribute("data-value"));s&&s.set(r)},d=function(t){var r=y.current;r&&(t?r.setAttribute("disabled",!0):r.removeAttribute("disabled"))},m=i.onUpdate,v=i.onChange,g=i.onSlide,O=i.onStart,S=i.onEnd,h=i.onSet,j=function(t){O&&(t.off("start"),t.on("start",O)),g&&(t.off("slide"),t.on("slide",g)),m&&(t.off("update"),t.on("update",m)),v&&(t.off("change"),t.on("change",v)),h&&(t.off("set"),t.on("set",h)),S&&(t.off("end"),t.on("end",S))},A=function(){i.clickablePips&&f(y.current.querySelectorAll(".noUi-value")).forEach((function(t){t.style.cursor="pointer",t.addEventListener("click",b)}))},w=function(){if(!y.current.noUiSlider){var t=e.create(y.current,function(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?o(Object(n),!0).forEach((function(r){u(t,r,n[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))}))}return t}({},i));j(t),p(t)}};n((function(){var t=i.disabled,r=y.current;return r&&(d(t),w()),function(){s&&s.destroy(),r&&f(r.querySelectorAll(".noUi-value")).forEach((function(t){t.removeEventListener("click",b)}))}}),[]),n((function(){s&&A()}),[s]);var P=i.start,E=i.disabled,N=i.range,U=i.step,k=i.margin,I=i.padding,D=i.limit,J=i.pips,C=i.snap,R=i.animate;n((function(){s&&(!function(t){y.current.noUiSlider.updateOptions(t)}({range:N,step:U,padding:I,margin:k,limit:D,pips:J,snap:C,animate:R}),s.set(P),A()),d(E)}),[P,E,N,U,k,I,D,J,C,R]),n((function(){s&&j(s)}),[m,v,g,O,S,h]);var T=i.id,q=i.className,x=i.style,L={};return T&&(L.id=T),q&&(L.className=q),t.createElement("div",c({},L,{ref:y,style:x}))};m.defaultProps={animate:!0,behaviour:"tap",className:null,clickablePips:!1,connect:!1,direction:"ltr",disabled:!1,format:null,margin:null,limit:null,keyboardSupport:!0,id:null,instanceRef:null,padding:0,pips:null,snap:!1,step:null,style:null,orientation:"horizontal",tooltips:!1,onChange:function(){},onEnd:function(){},onSet:function(){},onSlide:function(){},onStart:function(){},onUpdate:function(){}};var v=t.memo(m,d);export{v as default};
//# sourceMappingURL=nouislider-react.esm.production.min.js.map