UNPKG

nouislider-react

Version:

React component wrapping leongersen/noUiSlider

3 lines (2 loc) 6.05 kB
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("react"),require("nouislider")):"function"==typeof define&&define.amd?define(["react","nouislider"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).ReactNouislider=e(t.React,t.nouislider)}(this,(function(t,e){"use strict";function n(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var r=n(t),o=n(e);function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function u(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}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 c(t,e,n){return(e=u(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function f(){return f=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},f.apply(this,arguments)}function l(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,o,i,u,a=[],c=!0,f=!1;try{if(i=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(a.push(r.value),a.length!==e);c=!0);}catch(t){f=!0,o=t}finally{try{if(!c&&null!=n.return&&(u=n.return(),Object(u)!==u))return}finally{if(f)throw o}}return a}}(t,e)||p(t,e)||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 s(t){return function(t){if(Array.isArray(t))return d(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||p(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 p(t,e){if(t){if("string"==typeof t)return d(t,e);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)?d(t,e):void 0}}function d(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var y=function(t){return Object.entries(t).sort().reduce((function(t,e){var n=l(e,2),r=n[0],o=n[1];return t[r]=o,t}),{})},b=function(t,e){return"number"==typeof t&&"number"==typeof e||"string"==typeof t&&"string"==typeof e?t===e:Array.isArray(t)&&Array.isArray(e)?JSON.stringify(t)===JSON.stringify(e):"object"===a(t)&&"object"===a(e)&&JSON.stringify(y(t))===JSON.stringify(y(e))},m=function(t,e){var n=t.start,r=t.step,o=t.disabled,i=t.range;return e.step===r&&b(e.start,n)&&e.disabled===o&&b(e.range,i)},v=function(e){var n=l(t.useState(null),2),u=n[0],a=n[1],p=r.default.createRef();t.useEffect((function(){var t=e.instanceRef,n=t&&Object.prototype.hasOwnProperty.call(t,"current");return t&&t instanceof Function&&t(p.current),n&&(t.current=p.current),function(){n&&(t.current=null)}}),[p]);var d=function(t){var e=Number(t.target.getAttribute("data-value"));u&&u.set(e)},y=function(t){var e=p.current;e&&(t?e.setAttribute("disabled",!0):e.removeAttribute("disabled"))},b=e.onUpdate,m=e.onChange,v=e.onSlide,g=e.onStart,O=e.onEnd,S=e.onSet,h=function(t){g&&(t.off("start"),t.on("start",g)),v&&(t.off("slide"),t.on("slide",v)),b&&(t.off("update"),t.on("update",b)),m&&(t.off("change"),t.on("change",m)),S&&(t.off("set"),t.on("set",S)),O&&(t.off("end"),t.on("end",O))},j=function(){e.clickablePips&&s(p.current.querySelectorAll(".noUi-value")).forEach((function(t){t.style.cursor="pointer",t.addEventListener("click",d)}))},A=function(){if(!p.current.noUiSlider){var t=o.default.create(p.current,function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?i(Object(n),!0).forEach((function(e){c(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}({},e));h(t),a(t)}};t.useEffect((function(){var t=e.disabled,n=p.current;return n&&(y(t),A()),function(){u&&u.destroy(),n&&s(n.querySelectorAll(".noUi-value")).forEach((function(t){t.removeEventListener("click",d)}))}}),[]),t.useEffect((function(){u&&j()}),[u]);var w=e.start,E=e.disabled,P=e.range,N=e.step,U=e.margin,k=e.padding,I=e.limit,R=e.pips,T=e.snap,q=e.animate;t.useEffect((function(){u&&(!function(t){p.current.noUiSlider.updateOptions(t)}({range:P,step:N,padding:k,margin:U,limit:I,pips:R,snap:T,animate:q}),u.set(w),j()),y(E)}),[w,E,P,N,U,k,I,R,T,q]),t.useEffect((function(){u&&h(u)}),[b,m,v,g,O,S]);var D=e.id,J=e.className,x=e.style,C={};return D&&(C.id=D),J&&(C.className=J),r.default.createElement("div",f({},C,{ref:p,style:x}))};return v.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(){}},r.default.memo(v,m)})); //# sourceMappingURL=nouislider-react.umd.production.min.js.map