rc-data-table
Version:
Extendable table with filtering, sorting, paging, and more
1 lines • 37.6 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["rc-data-table"]=t():e["rc-data-table"]=t()}(self,(function(){return(()=>{var e={121:function(e,t,r){var n;e.exports=(n=r(297),function(e){function t(n){if(r[n])return r[n].exports;var a=r[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,t),a.l=!0,a.exports}var r={};return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=5)}([function(e,t){function r(){throw new Error("setTimeout has not been defined")}function n(){throw new Error("clearTimeout has not been defined")}function a(e){if(c===setTimeout)return setTimeout(e,0);if((c===r||!c)&&setTimeout)return c=setTimeout,setTimeout(e,0);try{return c(e,0)}catch(t){try{return c.call(null,e,0)}catch(t){return c.call(this,e,0)}}}function o(){h&&f&&(h=!1,f.length?d=f.concat(d):m=-1,d.length&&i())}function i(){if(!h){var e=a(o);h=!0;for(var t=d.length;t;){for(f=d,d=[];++m<t;)f&&f[m].run();m=-1,t=d.length}f=null,h=!1,function(e){if(u===clearTimeout)return clearTimeout(e);if((u===n||!u)&&clearTimeout)return u=clearTimeout,clearTimeout(e);try{u(e)}catch(t){try{return u.call(null,e)}catch(t){return u.call(this,e)}}}(e)}}function s(e,t){this.fun=e,this.array=t}function l(){}var c,u,p=e.exports={};!function(){try{c="function"==typeof setTimeout?setTimeout:r}catch(e){c=r}try{u="function"==typeof clearTimeout?clearTimeout:n}catch(e){u=n}}();var f,d=[],h=!1,m=-1;p.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];d.push(new s(e,t)),1!==d.length||h||a(i)},s.prototype.run=function(){this.fun.apply(null,this.array)},p.title="browser",p.browser=!0,p.env={},p.argv=[],p.version="",p.versions={},p.on=l,p.addListener=l,p.once=l,p.off=l,p.removeListener=l,p.removeAllListeners=l,p.emit=l,p.prependListener=l,p.prependOnceListener=l,p.listeners=function(e){return[]},p.binding=function(e){throw new Error("process.binding is not supported")},p.cwd=function(){return"/"},p.chdir=function(e){throw new Error("process.chdir is not supported")},p.umask=function(){return 0}},function(e,t,r){"use strict";function n(e){return function(){return e}}var a=function(){};a.thatReturns=n,a.thatReturnsFalse=n(!1),a.thatReturnsTrue=n(!0),a.thatReturnsNull=n(null),a.thatReturnsThis=function(){return this},a.thatReturnsArgument=function(e){return e},e.exports=a},function(e,t,r){"use strict";(function(t){var r=function(e){};"production"!==t.env.NODE_ENV&&(r=function(e){if(void 0===e)throw new Error("invariant requires an error message argument")}),e.exports=function(e,t,n,a,o,i,s,l){if(r(t),!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,a,o,i,s,l],p=0;(c=new Error(t.replace(/%s/g,(function(){return u[p++]})))).name="Invariant Violation"}throw c.framesToPop=1,c}}}).call(t,r(0))},function(e,t,r){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,r){"use strict";(function(t){var n=r(1);"production"!==t.env.NODE_ENV&&function(){var e=function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];var a=0,o="Warning: "+e.replace(/%s/g,(function(){return r[a++]}));"undefined"!=typeof console&&console.error(o);try{throw new Error(o)}catch(e){}};n=function(t,r){if(void 0===r)throw new Error("`warning(condition, format, ...args)` requires a warning message argument");if(0!==r.indexOf("Failed Composite propType: ")&&!t){for(var n=arguments.length,a=Array(n>2?n-2:0),o=2;o<n;o++)a[o-2]=arguments[o];e.apply(void 0,[r].concat(a))}}}(),e.exports=n}).call(t,r(0))},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),o=n(r(6)),i=n(r(7)),s={first:"First",prev:"«",prevSet:"...",nextSet:"...",next:"»",last:"Last"},l=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var r=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return r.handleFirstPage=r.handleFirstPage.bind(r),r.handlePreviousPage=r.handlePreviousPage.bind(r),r.handleNextPage=r.handleNextPage.bind(r),r.handleLastPage=r.handleLastPage.bind(r),r.handleMorePrevPages=r.handleMorePrevPages.bind(r),r.handleMoreNextPages=r.handleMoreNextPages.bind(r),r.handlePageChanged=r.handlePageChanged.bind(r),r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),a(t,[{key:"getTitles",value:function(e){return this.props.titles[e]||s[e]}},{key:"calcBlocks",value:function(){var e=this.props,t=e.total,r=e.visiblePages,n=e.current+1;return{total:Math.ceil(t/r),current:Math.ceil(n/r)-1,size:r}}},{key:"isPrevDisabled",value:function(){return this.props.current<=0}},{key:"isNextDisabled",value:function(){return this.props.current>=this.props.total-1}},{key:"isPrevMoreHidden",value:function(){var e=this.calcBlocks();return 1===e.total||0===e.current}},{key:"isNextMoreHidden",value:function(){var e=this.calcBlocks();return 1===e.total||e.current===e.total-1}},{key:"visibleRange",value:function(){var e=this.calcBlocks(),t=e.current*e.size,r=this.props.total-t;return[t+1,t+(r>e.size?e.size:r)+1]}},{key:"handleFirstPage",value:function(){this.isPrevDisabled()||this.handlePageChanged(0)}},{key:"handlePreviousPage",value:function(){this.isPrevDisabled()||this.handlePageChanged(this.props.current-1)}},{key:"handleNextPage",value:function(){this.isNextDisabled()||this.handlePageChanged(this.props.current+1)}},{key:"handleLastPage",value:function(){this.isNextDisabled()||this.handlePageChanged(this.props.total-1)}},{key:"handleMorePrevPages",value:function(){var e=this.calcBlocks();this.handlePageChanged(e.current*e.size-1)}},{key:"handleMoreNextPages",value:function(){var e=this.calcBlocks();this.handlePageChanged((e.current+1)*e.size)}},{key:"handlePageChanged",value:function(e){var t=this.props.onPageChanged;t&&t(e)}},{key:"renderPages",value:function(e){var t=this;return function(e,t){for(var r=[],n=e;n<t;n++)r.push(n);return r}(e[0],e[1]).map((function(e,r){var n=e-1,a=t.handlePageChanged.bind(t,n),i=t.props.current===n;return o.default.createElement(c,{key:r,index:r,isActive:i,className:"btn-numbered-page",onClick:a},e)}))}},{key:"render",value:function(){var e=this.getTitles.bind(this),t="pagination";return this.props.className&&(t+=" "+this.props.className),o.default.createElement("nav",null,o.default.createElement("ul",{className:t},o.default.createElement(c,{className:"btn-first-page",key:"btn-first-page",isDisabled:this.isPrevDisabled(),onClick:this.handleFirstPage},e("first")),o.default.createElement(c,{className:"btn-prev-page",key:"btn-prev-page",isDisabled:this.isPrevDisabled(),onClick:this.handlePreviousPage},e("prev")),o.default.createElement(c,{className:"btn-prev-more",key:"btn-prev-more",isHidden:this.isPrevMoreHidden(),onClick:this.handleMorePrevPages},e("prevSet")),this.renderPages(this.visibleRange()),o.default.createElement(c,{className:"btn-next-more",key:"btn-next-more",isHidden:this.isNextMoreHidden(),onClick:this.handleMoreNextPages},e("nextSet")),o.default.createElement(c,{className:"btn-next-page",key:"btn-next-page",isDisabled:this.isNextDisabled(),onClick:this.handleNextPage},e("next")),o.default.createElement(c,{className:"btn-last-page",key:"btn-last-page",isDisabled:this.isNextDisabled(),onClick:this.handleLastPage},e("last"))))}}]),t}(o.default.Component);l.propTypes={current:i.default.number.isRequired,total:i.default.number.isRequired,visiblePages:i.default.number.isRequired,titles:i.default.object,onPageChanged:i.default.func},l.defaultProps={titles:s};var c=function(e){if(e.isHidden)return null;var t=(e.className?e.className+" ":"")+(e.isActive?" active":"")+(e.isDisabled?" disabled":"");return o.default.createElement("li",{key:e.index,className:t},o.default.createElement("a",{onClick:e.onClick},e.children))};c.propTypes={isHidden:i.default.bool,isActive:i.default.bool,isDisabled:i.default.bool,className:i.default.string,onClick:i.default.func},t.default=l},function(e,t){e.exports=n},function(e,t,r){(function(t){if("production"!==t.env.NODE_ENV){var n="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;e.exports=r(8)((function(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}),!0)}else e.exports=r(10)()}).call(t,r(0))},function(e,t,r){"use strict";(function(t){var n=r(1),a=r(2),o=r(4),i=r(3),s=r(9);e.exports=function(e,r){function l(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function c(e){this.message=e,this.stack=""}function u(e){function n(n,u,p,f,d,h,m){if(f=f||g,h=h||p,m!==i)if(r)a(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");else if("production"!==t.env.NODE_ENV&&"undefined"!=typeof console){var v=f+":"+p;!s[v]&&l<3&&(o(!1,"You are manually calling a React.PropTypes validation function for the `%s` prop on `%s`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details.",h,f),s[v]=!0,l++)}return null==u[p]?n?new c(null===u[p]?"The "+d+" `"+h+"` is marked as required in `"+f+"`, but its value is `null`.":"The "+d+" `"+h+"` is marked as required in `"+f+"`, but its value is `undefined`."):null:e(u,p,f,d,h)}if("production"!==t.env.NODE_ENV)var s={},l=0;var u=n.bind(null,!1);return u.isRequired=n.bind(null,!0),u}function p(e){return u((function(t,r,n,a,o,i){var s=t[r];return d(s)!==e?new c("Invalid "+a+" `"+o+"` of type `"+h(s)+"` supplied to `"+n+"`, expected `"+e+"`."):null}))}function f(t){switch(typeof t){case"number":case"string":case"undefined":return!0;case"boolean":return!t;case"object":if(Array.isArray(t))return t.every(f);if(null===t||e(t))return!0;var r=function(e){var t=e&&(v&&e[v]||e[y]);if("function"==typeof t)return t}(t);if(!r)return!1;var n,a=r.call(t);if(r!==t.entries){for(;!(n=a.next()).done;)if(!f(n.value))return!1}else for(;!(n=a.next()).done;){var o=n.value;if(o&&!f(o[1]))return!1}return!0;default:return!1}}function d(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":function(e,t){return"symbol"===e||"Symbol"===t["@@toStringTag"]||"function"==typeof Symbol&&t instanceof Symbol}(t,e)?"symbol":t}function h(e){if(null==e)return""+e;var t=d(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}function m(e){var t=h(e);switch(t){case"array":case"object":return"an "+t;case"boolean":case"date":case"regexp":return"a "+t;default:return t}}var v="function"==typeof Symbol&&Symbol.iterator,y="@@iterator",g="<<anonymous>>",b={array:p("array"),bool:p("boolean"),func:p("function"),number:p("number"),object:p("object"),string:p("string"),symbol:p("symbol"),any:u(n.thatReturnsNull),arrayOf:function(e){return u((function(t,r,n,a,o){if("function"!=typeof e)return new c("Property `"+o+"` of component `"+n+"` has invalid PropType notation inside arrayOf.");var s=t[r];if(!Array.isArray(s))return new c("Invalid "+a+" `"+o+"` of type `"+d(s)+"` supplied to `"+n+"`, expected an array.");for(var l=0;l<s.length;l++){var u=e(s,l,n,a,o+"["+l+"]",i);if(u instanceof Error)return u}return null}))},element:u((function(t,r,n,a,o){var i=t[r];return e(i)?null:new c("Invalid "+a+" `"+o+"` of type `"+d(i)+"` supplied to `"+n+"`, expected a single ReactElement.")})),instanceOf:function(e){return u((function(t,r,n,a,o){if(!(t[r]instanceof e)){var i=e.name||g;return new c("Invalid "+a+" `"+o+"` of type `"+function(e){return e.constructor&&e.constructor.name?e.constructor.name:g}(t[r])+"` supplied to `"+n+"`, expected instance of `"+i+"`.")}return null}))},node:u((function(e,t,r,n,a){return f(e[t])?null:new c("Invalid "+n+" `"+a+"` supplied to `"+r+"`, expected a ReactNode.")})),objectOf:function(e){return u((function(t,r,n,a,o){if("function"!=typeof e)return new c("Property `"+o+"` of component `"+n+"` has invalid PropType notation inside objectOf.");var s=t[r],l=d(s);if("object"!==l)return new c("Invalid "+a+" `"+o+"` of type `"+l+"` supplied to `"+n+"`, expected an object.");for(var u in s)if(s.hasOwnProperty(u)){var p=e(s,u,n,a,o+"."+u,i);if(p instanceof Error)return p}return null}))},oneOf:function(e){return Array.isArray(e)?u((function(t,r,n,a,o){for(var i=t[r],s=0;s<e.length;s++)if(l(i,e[s]))return null;return new c("Invalid "+a+" `"+o+"` of value `"+i+"` supplied to `"+n+"`, expected one of "+JSON.stringify(e)+".")})):("production"!==t.env.NODE_ENV&&o(!1,"Invalid argument supplied to oneOf, expected an instance of array."),n.thatReturnsNull)},oneOfType:function(e){if(!Array.isArray(e))return"production"!==t.env.NODE_ENV&&o(!1,"Invalid argument supplied to oneOfType, expected an instance of array."),n.thatReturnsNull;for(var r=0;r<e.length;r++){var a=e[r];if("function"!=typeof a)return o(!1,"Invalid argument supplid to oneOfType. Expected an array of check functions, but received %s at index %s.",m(a),r),n.thatReturnsNull}return u((function(t,r,n,a,o){for(var s=0;s<e.length;s++)if(null==(0,e[s])(t,r,n,a,o,i))return null;return new c("Invalid "+a+" `"+o+"` supplied to `"+n+"`.")}))},shape:function(e){return u((function(t,r,n,a,o){var s=t[r],l=d(s);if("object"!==l)return new c("Invalid "+a+" `"+o+"` of type `"+l+"` supplied to `"+n+"`, expected `object`.");for(var u in e){var p=e[u];if(p){var f=p(s,u,n,a,o+"."+u,i);if(f)return f}}return null}))}};return c.prototype=Error.prototype,b.checkPropTypes=s,b.PropTypes=b,b}}).call(t,r(0))},function(e,t,r){"use strict";(function(t){if("production"!==t.env.NODE_ENV)var n=r(2),a=r(4),o=r(3),i={};e.exports=function(e,r,s,l,c){if("production"!==t.env.NODE_ENV)for(var u in e)if(e.hasOwnProperty(u)){var p;try{n("function"==typeof e[u],"%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.",l||"React class",s,u),p=e[u](r,u,l,s,null,o)}catch(e){p=e}if(a(!p||p instanceof Error,"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",l||"React class",s,u,typeof p),p instanceof Error&&!(p.message in i)){i[p.message]=!0;var f=c?c():"";a(!1,"Failed %s type: %s%s",s,p.message,null!=f?f:"")}}}}).call(t,r(0))},function(e,t,r){"use strict";var n=r(1),a=r(2),o=r(3);e.exports=function(){function e(e,t,r,n,i,s){s!==o&&a(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function t(){return e}e.isRequired=e;var r={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t};return r.checkPropTypes=n,r.PropTypes=r,r}}]))},297:e=>{"use strict";e.exports=require("react")}},t={};function r(n){if(t[n])return t[n].exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,r),a.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{FilterableTable:()=>z,default:()=>M});var e=r(297),t=r.n(e);function a(e){return null!=e&&e.toString().length>0}function o(e,t){return t.indexOf(".")>0?t.split(".").reduce((function(e,t){return e?e[t]:null}),e):e[t]}function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach((function(t){c(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function p(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function f(e,t){return(f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function d(e,t){return!t||"object"!==i(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function h(e){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}const m=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&f(e,t)}(m,e);var r,n,i,s,c=(i=m,s=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=h(i);if(s){var r=h(this).constructor;e=Reflect.construct(t,arguments,r)}else e=t.apply(this,arguments);return d(this,e)});function m(){return u(this,m),c.apply(this,arguments)}return r=m,(n=[{key:"headerSortElement",value:function(e){if(e.sortable){var r=this.props.sortFields.find((function(t){return t.name===e.name||t.name===e.sortFieldName}));return r?r.reverse?this.props.iconSortedDesc||t().createElement("span",{className:"fa fa-sort-desc"}):this.props.iconSortedAsc||t().createElement("span",{className:"fa fa-sort-asc"}):this.props.iconSort||t().createElement("span",{className:"fa fa-sort"})}return null}},{key:"render",value:function(){var e=this,r=this.props,n=r.addExactFilter,i=r.updateSort,s=r.page,c=r.pageSize,u=(r.visible,s*c),p=u+c,f=this.props.records;!1!==this.props.pagersVisible&&(f=f.slice(u,p));var d=this.props.fields.filter((function(e){return!1!==e.visible})),h=d.map((function(r,n){var a=void 0!==r.displayName?r.displayName:r.name,o=l({field:r},e.props);return"function"==typeof r.thRender&&(a=r.thRender(o)),t().createElement("th",{onClick:r.sortable?function(){return i(r.sortFieldName||r.name)}:null,className:r.thClassName?r.thClassName:null,key:n,title:r.title||null},t().createElement("span",{className:r.sortable?"sortable":null},a),e.headerSortElement(r))})),m=f.map((function(r,i){var s=e.props.trClassName||null;"function"==typeof e.props.trClassName&&(s=e.props.trClassName(r,i));var c=d.map((function(i,s){var c=void 0!==i.displayName?i.displayName:i.name,u="",p=i.tdClassName||null,d=o(r,i.name),h=l({value:d,record:r,records:e.props.allRecords,filteredRecords:f,field:i},e.props);i.render&&"function"==typeof i.render&&(d=i.render(h)),"function"==typeof i.tdClassName&&(p=i.tdClassName(h));var m=null==d||0===d.toString().length;i.emptyDisplay&&m&&(d=i.emptyDisplay),m&&(u="empty"),!m&&i.exactFilterable&&(u="filterable");var v=a(d)?t().createElement("span",{className:u,onClick:i.exactFilterable?function(){return n(o(r,i.name),i.name,c)}:null},d):null;return t().createElement("td",{className:p,key:s},v)}));return t().createElement("tr",{key:i,className:s},c)})),v=d.some((function(e){return e.footerValue}))?t().createElement("tfoot",null,t().createElement("tr",{className:this.props.footerTrClassName},d.map((function(r,n){var a=l({records:e.props.allRecords,filteredRecords:e.props.records,field:r},e.props);return t().createElement("td",{key:n,className:r.footerTdClassName},("function"==typeof r.footerValue?r.footerValue(a):r.footerValue)||"")})))):null,y=this.props.className;return-1===y.indexOf("filterable-table")&&(y+=" filterable-table"),0===m.length?t().createElement("div",null,this.props.noFilteredRecordsMessage||"There are no records to display."):t().createElement("div",null,t().createElement("table",{className:y,style:this.props.style,ref:"table"},t().createElement("thead",null,t().createElement("tr",null,h)),t().createElement("tbody",null,m),v))}}])&&p(r.prototype,n),m}(t().Component),v=function(e){var r=e.filter,n=e.removeFilter;return t().createElement("span",{className:"filter-item"},t().createElement("span",{className:"filter-item-title"},t().createElement("span",{className:"filter-item-remove",onClick:function(e){return n(r,e)}},t().createElement("span",{className:"fa fa-times"})),r.name),t().createElement("span",{className:"filter-item-value"},r.value))},y=function(e){var r=e.exactFilters,n=e.removeExactFilter,a=r.map((function(e,r){return t().createElement(v,{filter:e,removeFilter:n,key:r})}));return t().createElement("div",{className:"exact-filters"},a)};function g(e){return(g="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function b(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function E(e,t){return(E=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function P(e,t){return!t||"object"!==g(t)&&"function"!=typeof t?N(e):t}function N(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function w(e){return(w=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}const S=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&E(e,t)}(l,e);var r,n,a,o,i,s=(o=l,i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=w(o);if(i){var r=w(this).constructor;e=Reflect.construct(t,arguments,r)}else e=t.apply(this,arguments);return P(this,e)});function l(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l),(t=s.call(this,e)).filterChanged=t.filterChanged.bind(N(t)),t}return r=l,a=[{key:"defaultProps",get:function(){return{recordCountName:"record",recordCountNamePlural:"records"}}}],(n=[{key:"filterChanged",value:function(e){var t=e?e.target.value:"";0===t.length&&this.refs.filter.focus(),this.props.updateFilter(t)}},{key:"render",value:function(){var e=this;if(!1===this.props.visible)return t().createElement("div",null);var r=this.props,n=r.loading,a=r.recordCount,o=r.filter,i=(r.updateFilter,r.updatePageSize),s=(r.pageSizes,t().createElement("span",null,a," ",1===a?this.props.recordCountName:this.props.recordCountNamePlural)),l=!1!==this.props.pagersVisible&&this.props.pageSizes&&this.props.pageSizes.length>0?t().createElement("select",{className:"form-control pull-sm-right pull-md-right pull-lg-right",onChange:i,value:this.props.pageSize},this.props.pageSizes.map((function(e,r){return t().createElement("option",{value:e,key:r},e," per page")}))):null;return t().createElement("div",null,this.props.children,this.props.upperHeaderChildren,t().createElement("div",{className:"row header-row"},t().createElement("div",{className:"col-sm-3 filter-container"},t().createElement("span",{className:"filter-container"},t().createElement("input",{type:"text",className:"form-control filter-input",value:o,onChange:this.filterChanged,ref:"filter",placeholder:this.props.filterPlaceholder,autoFocus:this.props.autofocusFilter}),t().createElement("span",{className:"close clear-filter",onClick:function(){return e.filterChanged("")}},"×"))),t().createElement("div",{className:"col-sm-5 col-sm-push-4"},l),t().createElement("div",{className:"col-sm-4 col-sm-pull-4 text-center text-muted record-count"},n||s)),this.props.lowerHeaderChildren,t().createElement("div",{className:"row header-row"},t().createElement("div",{className:"col-sm-8"},t().createElement(y,{exactFilters:this.props.exactFilters,removeExactFilter:this.props.removeExactFilter})),t().createElement("div",{className:"col-sm-4 hidden-xs"},this.props.pager)))}}])&&b(r.prototype,n),a&&b(r,a),l}(t().Component),k=function(){return t().createElement(e.Fragment,null,t().createElement("div",{className:"sk-circle"},t().createElement("div",{className:"sk-circle1 sk-child"}),t().createElement("div",{className:"sk-circle2 sk-child"}),t().createElement("div",{className:"sk-circle3 sk-child"}),t().createElement("div",{className:"sk-circle4 sk-child"}),t().createElement("div",{className:"sk-circle5 sk-child"}),t().createElement("div",{className:"sk-circle6 sk-child"}),t().createElement("div",{className:"sk-circle7 sk-child"}),t().createElement("div",{className:"sk-circle8 sk-child"}),t().createElement("div",{className:"sk-circle9 sk-child"}),t().createElement("div",{className:"sk-circle10 sk-child"}),t().createElement("div",{className:"sk-circle11 sk-child"}),t().createElement("div",{className:"sk-circle12 sk-child"})))};var O=r(121),x=r.n(O);function C(e){return(C="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function F(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function T(e,t){return(T=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function j(e,t){return!t||"object"!==C(t)&&"function"!=typeof t?R(e):t}function R(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function D(e){return(D=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var _=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&T(e,t)}(u,e);var r,n,i,s,l,c=(s=u,l=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=D(s);if(l){var r=D(this).constructor;e=Reflect.construct(t,arguments,r)}else e=t.apply(this,arguments);return j(this,e)});function u(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,u),(t=c.call(this,e)).state={loading:t.props.loading,entries:t.props.data||[],sortFields:[{name:t.props.initialSort,reverse:"boolean"==typeof t.props.initialSortDir&&!t.props.initialSortDir}],filter:"",exactFilters:[],serverError:!1,totalPages:1,visiblePages:5,page:0,currentPage:t.props.currentPage,pageSize:+localStorage.getItem(t.props.namespace+".PageSize")||t.props.pageSize||10,shiftDown:!1},t.loadData=t.loadData.bind(R(t)),t.setData=t.setData.bind(R(t)),t.updateFilter=t.updateFilter.bind(R(t)),t.addExactFilter=t.addExactFilter.bind(R(t)),t.updatePageSize=t.updatePageSize.bind(R(t)),t.updatePage=t.updatePage.bind(R(t)),t.filterInputChanged=t.filterInputChanged.bind(R(t)),t.updateSort=t.updateSort.bind(R(t)),t.scrollIntoView=t.scrollIntoView.bind(R(t)),t.removeExactFilter=t.removeExactFilter.bind(R(t)),t.keydownEventListener=function(e){16===e.which&&(t.state.shiftDown||t.setState({shiftDown:!0}))},t.keyupEventListener=function(e){16===e.which&&t.state.shiftDown&&t.setState({shiftDown:!1})},t}return r=u,i=[{key:"defaultProps",get:function(){return{noRecordsMessage:"There are no records to display",noFilteredRecordsMessage:"There are no records to display",tableClassName:"table table-condensed table-hover filterable-table",pageSizes:[10,20,30,50]}}}],(n=[{key:"componentDidMount",value:function(){this.loadData(),window.addEventListener("keydown",this.keydownEventListener,!1),window.addEventListener("keyup",this.keyupEventListener,!1)}},{key:"UNSAFE_componentWillReceiveProps",value:function(e){e.hasOwnProperty("data")&&e.data!==this.props.data&&this.setData(e.data),e.hasOwnProperty("sortFields")&&e.sortFields!==this.props.sortFields&&this.setState({sort:e.sortFields}),e.hasOwnProperty("loading")&&e.loading!==this.props.loading&&this.setState({loading:e.loading})}},{key:"shouldComponentUpdate",value:function(e,t){return!t.hasOwnProperty("shiftDown")||t.shiftDown===this.state.shiftDown}},{key:"loadData",value:function(e){var t=this;if(e&&e.preventDefault(),!Array.isArray(this.props.data)&&!this.props.dataEndpoint)throw"No data was passed in and no data endpoint was set.";this.setState({loading:!0}),Array.isArray(this.props.data)?this.setData(this.props.data):fetch(this.props.dataEndpoint).then((function(e){return e.json()})).then((function(e){t.setData(e)})).catch((function(e){t.setState({serverError:!0,loading:!1}),console.log(e)}))}},{key:"setData",value:function(e){this.props.onDataReceived&&this.props.onDataReceived(e),this.setState({entries:e,loading:!1,serverError:!1,page:this.props.maintainPageOnSetData?this.state.page:0})}},{key:"updateFilter",value:function(e){this.setState({filter:e,page:0}),this.props.paginationOnServer&&this.props.filterData(e),this.scrollIntoView()}},{key:"addExactFilter",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t;if(null!=e&&0!==e.toString().length){var n=this.state.exactFilters,a={value:e.toString(),fieldname:t,name:r},o=n.some((function(e){return e.fieldname===a.fieldname&&e.value===a.value}));o||(n.push(a),this.setState({exactFilters:n,page:0}),this.props.onFilterAdded&&this.props.onFilterAdded(a))}}},{key:"removeExactFilter",value:function(e,t){var r=this.state.exactFilters,n=r.indexOf(e),a=null;n>-1&&(a=r.splice(n,1).pop()),this.setState({exactFilters:r,page:0}),this.scrollIntoView(),this.props.onFilterRemoved&&this.props.onFilterRemoved(a,t)}},{key:"updatePage",value:function(e){var t=this.state.pageSize;this.props.paginationOnServer?(this.setState({page:0,currentPage:e}),this.props.onPageChanged(e,t)):this.setState({page:e}),this.scrollIntoView()}},{key:"updatePageSize",value:function(e){var t=+e.target.value;this.setState({page:0,pageSize:t}),this.props.namespace&&localStorage.setItem(this.props.namespace+".PageSize",t)}},{key:"filterInputChanged",value:function(e){this.updateFilter(e.target.value),this.setState({page:0})}},{key:"updateSort",value:function(e){var t=this.state.shiftDown,r=this.state.sortFields.concat(),n=r.find((function(t){return t.name===e})),a=void 0!==n;a?n.reverse=!n.reverse:n={name:e,reverse:!1},t&&!a&&r.push(n),t||(r=[n]),this.props.serverSort(r),this.setState({sortFields:r,page:0})}},{key:"scrollIntoView",value:function(){if(this.refs.Table){var e=this.refs.Table.refs.table;e&&!(null!=(t=e)&&("function"==typeof jQuery&&t instanceof jQuery&&(t=t[0]),t.getBoundingClientRect().top>=0))&&e.scrollIntoView()}var t}},{key:"render",value:function(){var e=this.props.fields||[];void 0===this.props.fields&&this.state.entries.length>0&&(e=Object.keys(this.state.entries[0]).map((function(e){return{name:e}})));var r=this.state.loading&&(this.props.loadingMessage||t().createElement("div",{className:"text-center"},t().createElement(k,null))),n=this.state.serverError&&(this.props.serverErrorMessage||t().createElement("div",{className:"alert alert-danger text-center"},"Something went wrong! Check console for error message(s).")),i=!this.state.serverError&&!this.state.loading&&0===this.state.entries.length&&t().createElement("div",null,this.props.noRecordsMessage),s=function(e,t){e=e||[];var r=t.filter,n=t.exactFilters,i=t.sortFields,s=t.fields.filter((function(e){return e.inputFilterable})),l=e;if(t.SSP||(l=a(r)?e.filter((function(e){return s.some((function(t){var n=a(o(e,t.name))?o(e,t.name).toString():"";return a(n)&&n.toLowerCase().indexOf(r.toLowerCase())>-1}))})):e),n.length>0&&(l=l.filter((function(e){return n.every((function(t){var r=o(e,t.fieldname);return Array.isArray(r)?a(r)&&r.indexOf(t.value)>-1:(a(r)?r.toString().toLowerCase():"")===t.value.toString().toLowerCase()}))}))),i.length>0){var c={};return i.forEach((function(e){c[e.name]=e.reverse?"desc":"asc"})),function(e,t){var r=function(e,t){return Object.keys(e)[t]},n=function(e,t,r){return r=null!==r?r:1,e=a(e)?e:null,t=a(t)?t:null,e="string"==typeof e?e.toLowerCase():e,t="string"==typeof t?t.toLowerCase():t,null===e?1:null===t?-1:e>t?1*r:e<t?-1*r:0},i=function(e){var t,r=0;for(t in e)e.hasOwnProperty(t)&&r++;return r}(t=t||{});if(!i)return e.sort(n);for(var s in t)t[s]="desc"==t[s]||-1==t[s]?-1:"skip"==t[s]||0===t[s]?0:1;return e.sort((function(e,a){for(var s=0,l=0;0===s&&l<i;){var c=r(t,l);if(c){var u=t[c];s=n(o(e,c),o(a,c),u),l++}}return s})),e}(l,c)}return l}(this.state.entries,{filter:this.state.filter,exactFilters:this.state.exactFilters,sortFields:this.state.sortFields,fields:e,SSP:this.props.paginationOnServer}),l=!this.state.loading&&this.state.entries.length>0&&t().createElement(m,{records:s,allRecords:this.state.entries,fields:e,filterExact:this.state.filterExact,addExactFilter:this.addExactFilter,updateSort:this.updateSort,sortFields:this.state.sortFields,iconSort:this.props.iconSort,iconSortedAsc:this.props.iconSortedAsc,iconSortedDesc:this.props.iconSortedDesc,page:this.state.page,pageSize:this.state.pageSize,pagersVisible:this.props.pagersVisible,noFilteredRecordsMessage:this.props.noFilteredRecordsMessage,className:this.props.tableClassName,trClassName:this.props.trClassName,style:this.props.style,ref:"Table"}),c=s&&s.length>0?Math.ceil(s.length/this.state.pageSize):0;c=this.props.totalRecords?Math.ceil(this.props.totalRecords/this.state.pageSize):c;var u=this.state.loading||0===this.state.entries.length||!1===this.props.pagersVisible||!1===this.props.topPagerVisible?"":t().createElement(x(),{total:c,current:this.props.paginationOnServer?this.state.currentPage:this.state.page,visiblePages:this.state.visiblePages,onPageChanged:this.updatePage,className:this.props.pagerTopClassName||"pagination-sm pull-right",titles:this.props.pagerTitles}),p=this.state.loading||0===this.state.entries.length||!1===this.props.pagersVisible||!1===this.props.bottomPagerVisible?"":t().createElement(x(),{total:c,current:this.props.paginationOnServer?this.state.currentPage:this.state.page,visiblePages:this.state.visiblePages,onPageChanged:this.updatePage,className:this.props.pagerBottomClassName,titles:this.props.pagerTitles});return t().createElement("div",{className:"filterable-table-container"+(this.props.className?" "+this.props.className:"")},t().createElement(S,{loading:this.state.loading,updateFilter:this.updateFilter,updateSort:this.updateSort,filter:this.state.filter,filterPlaceholder:this.props.filterPlaceholder,exactFilters:this.state.exactFilters,removeExactFilter:this.removeExactFilter,pageSize:this.state.pageSize,updatePageSize:this.updatePageSize,pager:u,recordCount:s.length,recordCountName:this.props.recordCountName,recordCountNamePlural:this.props.recordCountNamePlural,upperHeaderChildren:this.props.upperHeaderChildren,lowerHeaderChildren:this.props.lowerHeaderChildren,visible:this.props.headerVisible,pagersVisible:this.props.pagersVisible,pageSizes:this.props.pageSizes,autofocusFilter:this.props.autofocusFilter}),t().createElement("div",{className:"table-container"},r,n,i,l,p))}}])&&F(r.prototype,n),i&&F(r,i),u}(t().Component);const z=_,M=_})(),n})()}));