@popmenu/common-ui 0.18.2 → 0.18.4-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.es.js CHANGED
@@ -49,6 +49,9 @@ import MuiRadio from '@material-ui/core/Radio';
49
49
  import TextField from '@material-ui/core/TextField';
50
50
  export { default as TextField } from '@material-ui/core/TextField';
51
51
  import MuiSwitch from '@material-ui/core/Switch';
52
+ import { useTable } from 'react-table/src/hooks/useTable.js';
53
+ import { usePagination } from 'react-table/src/plugin-hooks/usePagination.js';
54
+ import { useSortBy } from 'react-table/src/plugin-hooks/useSortBy.js';
52
55
  import { Pagination } from '@material-ui/lab';
53
56
  export { default as Tab } from '@material-ui/core/Tab';
54
57
  export { default as Tabs } from '@material-ui/core/Tabs';
@@ -302,8 +305,6 @@ var useIconStyles = makeStyles(function (_a) {
302
305
  };
303
306
  });
304
307
 
305
- var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
306
-
307
308
  var classnames = {exports: {}};
308
309
 
309
310
  /*!
@@ -1059,4591 +1060,6 @@ var Switch = forwardRef(function (props, ref) {
1059
1060
  });
1060
1061
  Switch.displayName = 'Switch';
1061
1062
 
1062
- var reactTable = {exports: {}};
1063
-
1064
- var reactTable_production_min = {exports: {}};
1065
-
1066
- (function (module, exports) {
1067
- !function(e,t){t(exports,React__default);}(commonjsGlobal,(function(e,t){function n(e,t,n,o,r,i,u){try{var l=e[i](u),s=l.value;}catch(e){return void n(e)}l.done?t(s):Promise.resolve(s).then(o,r);}function o(e){return function(){var t=this,o=arguments;return new Promise((function(r,i){var u=e.apply(t,o);function l(e){n(u,r,i,l,s,"next",e);}function s(e){n(u,r,i,l,s,"throw",e);}l(void 0);}))}}function r(){return (r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o]);}return e}).apply(this,arguments)}function i(e,t){if(null==e)return {};var n,o,r={},i=Object.keys(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}function u(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!=typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return ("string"===t?String:Number)(e)}(e,"string");return "symbol"==typeof t?t:String(t)}t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;var l={init:"init"},s=function(e){var t=e.value;return void 0===t?"":t},a=function(){return t.createElement(t.Fragment,null," ")},c={Cell:s,width:150,minWidth:0,maxWidth:Number.MAX_SAFE_INTEGER};function d(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce((function(e,t){var n=t.style,o=t.className;return e=r({},e,{},i(t,["style","className"])),n&&(e.style=e.style?r({},e.style||{},{},n||{}):n),o&&(e.className=e.className?e.className+" "+o:o),""===e.className&&delete e.className,e}),{})}var f=function(e,t){return void 0===t&&(t={}),function(n){return void 0===n&&(n={}),[].concat(e,[n]).reduce((function(e,o){return function e(t,n,o){return "function"==typeof n?e({},n(t,o)):Array.isArray(n)?d.apply(void 0,[t].concat(n)):d(t,n)}(e,o,r({},t,{userProps:n}))}),{})}},p=function(e,t,n,o){return void 0===n&&(n={}),e.reduce((function(e,t){return t(e,n)}),t)},g=function(e,t,n){return void 0===n&&(n={}),e.forEach((function(e){e(t,n);}))};function v(e,t,n,o){e.findIndex((function(e){return e.pluginName===n}));t.forEach((function(t){e.findIndex((function(e){return e.pluginName===t}));}));}function m(e,t){return "function"==typeof e?e(t):e}function h(e){var n=t.useRef();return n.current=e,t.useCallback((function(){return n.current}),[])}var y="undefined"!=typeof document?t.useLayoutEffect:t.useEffect;function w(e,n){var o=t.useRef(!1);y((function(){o.current&&e(),o.current=!0;}),n);}function R(e,t,n){return void 0===n&&(n={}),function(o,i){void 0===i&&(i={});var u="string"==typeof o?t[o]:o;if(void 0===u)throw console.info(t),new Error("Renderer Error ☝️");return b(u,r({},e,{column:t},n,{},i))}}function b(e,n){return function(e){return "function"==typeof e&&((t=Object.getPrototypeOf(e)).prototype&&t.prototype.isReactComponent);var t;}(o=e)||"function"==typeof o||function(e){return "object"==typeof e&&"symbol"==typeof e.$$typeof&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}(o)?t.createElement(e,n):e;var o;}function S(e,t,n){return void 0===n&&(n=0),e.map((function(e){return x(e=r({},e,{parent:t,depth:n})),e.columns&&(e.columns=S(e.columns,e,n+1)),e}))}function C(e){return G(e,"columns")}function x(e){var t=e.id,n=e.accessor,o=e.Header;if("string"==typeof n){t=t||n;var r=n.split(".");n=function(e){return function(e,t,n){if(!t)return e;var o,r="function"==typeof t?t:JSON.stringify(t),i=E.get(r)||function(){var e=function(e){return function e(t,n){void 0===n&&(n=[]);if(Array.isArray(t))for(var o=0;o<t.length;o+=1)e(t[o],n);else n.push(t);return n}(e).map((function(e){return String(e).replace(".","_")})).join(".").replace(W,".").replace(O,"").split(".")}(t);return E.set(r,e),e}();try{o=i.reduce((function(e,t){return e[t]}),e);}catch(e){}return void 0!==o?o:n}(e,r)};}if(!t&&"string"==typeof o&&o&&(t=o),!t&&e.columns)throw console.error(e),new Error('A column ID (or unique "Header" value) is required!');if(!t)throw console.error(e),new Error("A column ID (or string accessor) is required!");return Object.assign(e,{id:t,accessor:n}),e}function P(e,t){if(!t)throw new Error;return Object.assign(e,r({Header:a,Footer:a},c,{},t,{},e)),Object.assign(e,{originalWidth:e.width}),e}function B(e,t,n){void 0===n&&(n=function(){return {}});for(var o=[],i=e,u=0,l=function(){return u++},s=function(){var e={headers:[]},u=[],s=i.some((function(e){return e.parent}));i.forEach((function(o){var i,a=[].concat(u).reverse()[0];if(s){if(o.parent)i=r({},o.parent,{originalId:o.parent.id,id:o.parent.id+"_"+l(),headers:[o]},n(o));else i=P(r({originalId:o.id+"_placeholder",id:o.id+"_placeholder_"+l(),placeholderOf:o,headers:[o]},n(o)),t);a&&a.originalId===i.originalId?a.headers.push(o):u.push(i);}e.headers.push(o);})),o.push(e),i=u;};i.length;)s();return o.reverse()}var E=new Map;function I(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];for(var o=0;o<t.length;o+=1)if(void 0!==t[o])return t[o]}function F(e){if("function"==typeof e)return e}function G(e,t){var n=[];return function e(o){o.forEach((function(o){o[t]?e(o[t]):n.push(o);}));}(e),n}function A(e,t){var n=t.manualExpandedKey,o=t.expanded,r=t.expandSubRows,i=void 0===r||r,u=[];return e.forEach((function(e){return function e(t,r){void 0===r&&(r=!0),t.isExpanded=t.original&&t.original[n]||o[t.id],t.canExpand=t.subRows&&!!t.subRows.length,r&&u.push(t),t.subRows&&t.subRows.length&&t.isExpanded&&t.subRows.forEach((function(t){return e(t,i)}));}(e)})),u}function k(e,t,n){return F(e)||t[e]||n[e]||n.text}function H(e,t,n){return e?e(t,n):void 0===t}function T(){throw new Error("React-Table: You have not called prepareRow(row) one or more rows you are attempting to render.")}var z=null;var W=/\[/g,O=/\]/g;var M=function(e){return r({role:"table"},e)},j=function(e){return r({role:"rowgroup"},e)},N=function(e,t){var n=t.column;return r({key:"header_"+n.id,colSpan:n.totalVisibleHeaderCount,role:"columnheader"},e)},L=function(e,t){var n=t.column;return r({key:"footer_"+n.id,colSpan:n.totalVisibleHeaderCount},e)},D=function(e,t){return r({key:"headerGroup_"+t.index,role:"row"},e)},V=function(e,t){return r({key:"footerGroup_"+t.index},e)},_=function(e,t){return r({key:"row_"+t.row.id,role:"row"},e)},X=function(e,t){var n=t.cell;return r({key:"cell_"+n.row.id+"_"+n.column.id,role:"cell"},e)};function q(){return {useOptions:[],stateReducers:[],useControlledState:[],columns:[],columnsDeps:[],allColumns:[],allColumnsDeps:[],accessValue:[],materializedColumns:[],materializedColumnsDeps:[],useInstanceAfterData:[],visibleColumns:[],visibleColumnsDeps:[],headerGroups:[],headerGroupsDeps:[],useInstanceBeforeDimensions:[],useInstance:[],prepareRow:[],getTableProps:[M],getTableBodyProps:[j],getHeaderGroupProps:[D],getFooterGroupProps:[V],getHeaderProps:[N],getFooterProps:[L],getRowProps:[_],getCellProps:[X],useFinalInstance:[]}}l.resetHiddenColumns="resetHiddenColumns",l.toggleHideColumn="toggleHideColumn",l.setHiddenColumns="setHiddenColumns",l.toggleHideAllColumns="toggleHideAllColumns";var K=function(e){e.getToggleHiddenProps=[U],e.getToggleHideAllColumnsProps=[$],e.stateReducers.push(J),e.useInstanceBeforeDimensions.push(Y),e.headerGroupsDeps.push((function(e,t){var n=t.instance;return [].concat(e,[n.state.hiddenColumns])})),e.useInstance.push(Q);};K.pluginName="useColumnVisibility";var U=function(e,t){var n=t.column;return [e,{onChange:function(e){n.toggleHidden(!e.target.checked);},style:{cursor:"pointer"},checked:n.isVisible,title:"Toggle Column Visible"}]},$=function(e,t){var n=t.instance;return [e,{onChange:function(e){n.toggleHideAllColumns(!e.target.checked);},style:{cursor:"pointer"},checked:!n.allColumnsHidden&&!n.state.hiddenColumns.length,title:"Toggle All Columns Hidden",indeterminate:!n.allColumnsHidden&&n.state.hiddenColumns.length}]};function J(e,t,n,o){if(t.type===l.init)return r({hiddenColumns:[]},e);if(t.type===l.resetHiddenColumns)return r({},e,{hiddenColumns:o.initialState.hiddenColumns||[]});if(t.type===l.toggleHideColumn){var i=(void 0!==t.value?t.value:!e.hiddenColumns.includes(t.columnId))?[].concat(e.hiddenColumns,[t.columnId]):e.hiddenColumns.filter((function(e){return e!==t.columnId}));return r({},e,{hiddenColumns:i})}return t.type===l.setHiddenColumns?r({},e,{hiddenColumns:m(t.value,e.hiddenColumns)}):t.type===l.toggleHideAllColumns?r({},e,{hiddenColumns:(void 0!==t.value?t.value:!e.hiddenColumns.length)?o.allColumns.map((function(e){return e.id})):[]}):void 0}function Y(e){var n=e.headers,o=e.state.hiddenColumns;t.useRef(!1).current;var r=0;n.forEach((function(e){return r+=function e(t,n){t.isVisible=n&&!o.includes(t.id);var r=0;return t.headers&&t.headers.length?t.headers.forEach((function(n){return r+=e(n,t.isVisible)})):r=t.isVisible?1:0,t.totalVisibleHeaderCount=r,r}(e,!0)}));}function Q(e){var n=e.columns,o=e.flatHeaders,r=e.dispatch,i=e.allColumns,u=e.getHooks,s=e.state.hiddenColumns,a=e.autoResetHiddenColumns,c=void 0===a||a,d=h(e),p=i.length===s.length,g=t.useCallback((function(e,t){return r({type:l.toggleHideColumn,columnId:e,value:t})}),[r]),v=t.useCallback((function(e){return r({type:l.setHiddenColumns,value:e})}),[r]),m=t.useCallback((function(e){return r({type:l.toggleHideAllColumns,value:e})}),[r]),y=f(u().getToggleHideAllColumnsProps,{instance:d()});o.forEach((function(e){e.toggleHidden=function(t){r({type:l.toggleHideColumn,columnId:e.id,value:t});},e.getToggleHiddenProps=f(u().getToggleHiddenProps,{instance:d(),column:e});}));var R=h(c);w((function(){R()&&r({type:l.resetHiddenColumns});}),[r,n]),Object.assign(e,{allColumnsHidden:p,toggleHideColumn:g,setHiddenColumns:v,toggleHideAllColumns:m,getToggleHideAllColumnsProps:y});}var Z={},ee={},te=function(e,t,n){return e},ne=function(e,t){return e.subRows||[]},oe=function(e,t,n){return ""+(n?[n.id,t].join("."):t)},re=function(e){return e};function ie(e){var t=e.initialState,n=void 0===t?Z:t,o=e.defaultColumn,u=void 0===o?ee:o,l=e.getSubRows,s=void 0===l?ne:l,a=e.getRowId,c=void 0===a?oe:a,d=e.stateReducer,f=void 0===d?te:d,p=e.useControlledState,g=void 0===p?re:p;return r({},i(e,["initialState","defaultColumn","getSubRows","getRowId","stateReducer","useControlledState"]),{initialState:n,defaultColumn:u,getSubRows:s,getRowId:c,stateReducer:f,useControlledState:g})}function ue(e,t){void 0===t&&(t=0);var n=0,o=0,r=0,i=0;return e.forEach((function(e){var u=e.headers;if(e.totalLeft=t,u&&u.length){var l=ue(u,t),s=l[0],a=l[1],c=l[2],d=l[3];e.totalMinWidth=s,e.totalWidth=a,e.totalMaxWidth=c,e.totalFlexWidth=d;}else e.totalMinWidth=e.minWidth,e.totalWidth=Math.min(Math.max(e.minWidth,e.width),e.maxWidth),e.totalMaxWidth=e.maxWidth,e.totalFlexWidth=e.canResize?e.totalWidth:0;e.isVisible&&(t+=e.totalWidth,n+=e.totalMinWidth,o+=e.totalWidth,r+=e.totalMaxWidth,i+=e.totalFlexWidth);})),[n,o,r,i]}function le(e){var t=e.data,n=e.rows,o=e.flatRows,r=e.rowsById,i=e.column,u=e.getRowId,l=e.getSubRows,s=e.accessValueHooks,a=e.getInstance;t.forEach((function(e,c){return function e(n,c,d,f,g){void 0===d&&(d=0);var v=n,m=u(n,c,f),h=r[m];if(h)h.subRows&&h.originalSubRows.forEach((function(t,n){return e(t,n,d+1,h)}));else if((h={id:m,original:v,index:c,depth:d,cells:[{}]}).cells.map=T,h.cells.filter=T,h.cells.forEach=T,h.cells[0].getCellProps=T,h.values={},g.push(h),o.push(h),r[m]=h,h.originalSubRows=l(n,c),h.originalSubRows){var y=[];h.originalSubRows.forEach((function(t,n){return e(t,n,d+1,h,y)})),h.subRows=y;}i.accessor&&(h.values[i.id]=i.accessor(n,c,h,g,t)),h.values[i.id]=p(s,h.values[i.id],{row:h,column:i,instance:a()});}(e,c,0,void 0,n)}));}l.resetExpanded="resetExpanded",l.toggleRowExpanded="toggleRowExpanded",l.toggleAllRowsExpanded="toggleAllRowsExpanded";var se=function(e){e.getToggleAllRowsExpandedProps=[ae],e.getToggleRowExpandedProps=[ce],e.stateReducers.push(de),e.useInstance.push(fe),e.prepareRow.push(pe);};se.pluginName="useExpanded";var ae=function(e,t){var n=t.instance;return [e,{onClick:function(e){n.toggleAllRowsExpanded();},style:{cursor:"pointer"},title:"Toggle All Rows Expanded"}]},ce=function(e,t){var n=t.row;return [e,{onClick:function(){n.toggleRowExpanded();},style:{cursor:"pointer"},title:"Toggle Row Expanded"}]};function de(e,t,n,o){if(t.type===l.init)return r({expanded:{}},e);if(t.type===l.resetExpanded)return r({},e,{expanded:o.initialState.expanded||{}});if(t.type===l.toggleAllRowsExpanded){var s=t.value,a=o.isAllRowsExpanded,c=o.rowsById;if(void 0!==s?s:!a){var d={};return Object.keys(c).forEach((function(e){d[e]=!0;})),r({},e,{expanded:d})}return r({},e,{expanded:{}})}if(t.type===l.toggleRowExpanded){var f,p=t.id,g=t.value,v=e.expanded[p],m=void 0!==g?g:!v;if(!v&&m)return r({},e,{expanded:r({},e.expanded,(f={},f[p]=!0,f))});if(v&&!m){var h=e.expanded;h[p];return r({},e,{expanded:i(h,[p].map(u))})}return e}}function fe(e){var n=e.data,o=e.rows,r=e.rowsById,i=e.manualExpandedKey,u=void 0===i?"expanded":i,s=e.paginateExpandedRows,a=void 0===s||s,c=e.expandSubRows,d=void 0===c||c,p=e.autoResetExpanded,g=void 0===p||p,m=e.getHooks,y=e.plugins,R=e.state.expanded,b=e.dispatch;v(y,["useSortBy","useGroupBy","usePivotColumns","useGlobalFilter"],"useExpanded");var S=h(g),C=Boolean(Object.keys(r).length&&Object.keys(R).length);C&&Object.keys(r).some((function(e){return !R[e]}))&&(C=!1),w((function(){S()&&b({type:l.resetExpanded});}),[b,n]);var x=t.useCallback((function(e,t){b({type:l.toggleRowExpanded,id:e,value:t});}),[b]),P=t.useCallback((function(e){return b({type:l.toggleAllRowsExpanded,value:e})}),[b]),B=t.useMemo((function(){return a?A(o,{manualExpandedKey:u,expanded:R,expandSubRows:d}):o}),[a,o,u,R,d]),E=t.useMemo((function(){return function(e){var t=0;return Object.keys(e).forEach((function(e){var n=e.split(".");t=Math.max(t,n.length);})),t}(R)}),[R]),I=h(e),F=f(m().getToggleAllRowsExpandedProps,{instance:I()});Object.assign(e,{preExpandedRows:o,expandedRows:B,rows:B,expandedDepth:E,isAllRowsExpanded:C,toggleRowExpanded:x,toggleAllRowsExpanded:P,getToggleAllRowsExpandedProps:F});}function pe(e,t){var n=t.instance.getHooks,o=t.instance;e.toggleRowExpanded=function(t){return o.toggleRowExpanded(e.id,t)},e.getToggleRowExpandedProps=f(n().getToggleRowExpandedProps,{instance:o,row:e});}var ge=function(e,t,n){return e=e.filter((function(e){return t.some((function(t){var o=e.values[t];return String(o).toLowerCase().includes(String(n).toLowerCase())}))}))};ge.autoRemove=function(e){return !e};var ve=function(e,t,n){return e.filter((function(e){return t.some((function(t){var o=e.values[t];return void 0===o||String(o).toLowerCase()===String(n).toLowerCase()}))}))};ve.autoRemove=function(e){return !e};var me=function(e,t,n){return e.filter((function(e){return t.some((function(t){var o=e.values[t];return void 0===o||String(o)===String(n)}))}))};me.autoRemove=function(e){return !e};var he=function(e,t,n){return e.filter((function(e){return t.some((function(t){return e.values[t].includes(n)}))}))};he.autoRemove=function(e){return !e||!e.length};var ye=function(e,t,n){return e.filter((function(e){return t.some((function(t){var o=e.values[t];return o&&o.length&&n.every((function(e){return o.includes(e)}))}))}))};ye.autoRemove=function(e){return !e||!e.length};var we=function(e,t,n){return e.filter((function(e){return t.some((function(t){var o=e.values[t];return o&&o.length&&n.some((function(e){return o.includes(e)}))}))}))};we.autoRemove=function(e){return !e||!e.length};var Re=function(e,t,n){return e.filter((function(e){return t.some((function(t){var o=e.values[t];return n.includes(o)}))}))};Re.autoRemove=function(e){return !e||!e.length};var be=function(e,t,n){return e.filter((function(e){return t.some((function(t){return e.values[t]===n}))}))};be.autoRemove=function(e){return void 0===e};var Se=function(e,t,n){return e.filter((function(e){return t.some((function(t){return e.values[t]==n}))}))};Se.autoRemove=function(e){return null==e};var Ce=function(e,t,n){var o=n||[],r=o[0],i=o[1];if((r="number"==typeof r?r:-1/0)>(i="number"==typeof i?i:1/0)){var u=r;r=i,i=u;}return e.filter((function(e){return t.some((function(t){var n=e.values[t];return n>=r&&n<=i}))}))};Ce.autoRemove=function(e){return !e||"number"!=typeof e[0]&&"number"!=typeof e[1]};var xe=Object.freeze({__proto__:null,text:ge,exactText:ve,exactTextCase:me,includes:he,includesAll:ye,includesSome:we,includesValue:Re,exact:be,equals:Se,between:Ce});l.resetFilters="resetFilters",l.setFilter="setFilter",l.setAllFilters="setAllFilters";var Pe=function(e){e.stateReducers.push(Be),e.useInstance.push(Ee);};function Be(e,t,n,o){if(t.type===l.init)return r({filters:[]},e);if(t.type===l.resetFilters)return r({},e,{filters:o.initialState.filters||[]});if(t.type===l.setFilter){var i=t.columnId,u=t.filterValue,s=o.allColumns,a=o.filterTypes,c=s.find((function(e){return e.id===i}));if(!c)throw new Error("React-Table: Could not find a column with id: "+i);var d=k(c.filter,a||{},xe),f=e.filters.find((function(e){return e.id===i})),p=m(u,f&&f.value);return H(d.autoRemove,p,c)?r({},e,{filters:e.filters.filter((function(e){return e.id!==i}))}):r({},e,f?{filters:e.filters.map((function(e){return e.id===i?{id:i,value:p}:e}))}:{filters:[].concat(e.filters,[{id:i,value:p}])})}if(t.type===l.setAllFilters){var g=t.filters,v=o.allColumns,h=o.filterTypes;return r({},e,{filters:m(g,e.filters).filter((function(e){var t=v.find((function(t){return t.id===e.id}));return !H(k(t.filter,h||{},xe).autoRemove,e.value,t)}))})}}function Ee(e){var n=e.data,o=e.rows,r=e.flatRows,i=e.rowsById,u=e.allColumns,s=e.filterTypes,a=e.manualFilters,c=e.defaultCanFilter,d=void 0!==c&&c,f=e.disableFilters,p=e.state.filters,g=e.dispatch,v=e.autoResetFilters,m=void 0===v||v,y=t.useCallback((function(e,t){g({type:l.setFilter,columnId:e,filterValue:t});}),[g]),R=t.useCallback((function(e){g({type:l.setAllFilters,filters:e});}),[g]);u.forEach((function(e){var t=e.id,n=e.accessor,o=e.defaultCanFilter,r=e.disableFilters;e.canFilter=n?I(!0!==r&&void 0,!0!==f&&void 0,!0):I(o,d,!1),e.setFilter=function(t){return y(e.id,t)};var i=p.find((function(e){return e.id===t}));e.filterValue=i&&i.value;}));var b=t.useMemo((function(){if(a||!p.length)return [o,r,i];var e=[],t={};return [function n(o,r){void 0===r&&(r=0);var i=o;return (i=p.reduce((function(e,t){var n=t.id,o=t.value,i=u.find((function(e){return e.id===n}));if(!i)return e;0===r&&(i.preFilteredRows=e);var l=k(i.filter,s||{},xe);return l?(i.filteredRows=l(e,[n],o),i.filteredRows):(console.warn("Could not find a valid 'column.filter' for column with the ID: "+i.id+"."),e)}),o)).forEach((function(o){e.push(o),t[o.id]=o,o.subRows&&(o.subRows=o.subRows&&o.subRows.length>0?n(o.subRows,r+1):o.subRows);})),i}(o),e,t]}),[a,p,o,r,i,u,s]),S=b[0],C=b[1],x=b[2];t.useMemo((function(){u.filter((function(e){return !p.find((function(t){return t.id===e.id}))})).forEach((function(e){e.preFilteredRows=S,e.filteredRows=S;}));}),[S,p,u]);var P=h(m);w((function(){P()&&g({type:l.resetFilters});}),[g,a?null:n]),Object.assign(e,{preFilteredRows:o,preFilteredFlatRows:r,preFilteredRowsById:i,filteredRows:S,filteredFlatRows:C,filteredRowsById:x,rows:S,flatRows:C,rowsById:x,setFilter:y,setAllFilters:R});}Pe.pluginName="useFilters",l.resetGlobalFilter="resetGlobalFilter",l.setGlobalFilter="setGlobalFilter";var Ie=function(e){e.stateReducers.push(Fe),e.useInstance.push(Ge);};function Fe(e,t,n,o){if(t.type===l.resetGlobalFilter)return r({},e,{globalFilter:o.initialState.globalFilter||void 0});if(t.type===l.setGlobalFilter){var u=t.filterValue,s=o.userFilterTypes,a=k(o.globalFilter,s||{},xe),c=m(u,e.globalFilter);if(H(a.autoRemove,c)){e.globalFilter;return i(e,["globalFilter"])}return r({},e,{globalFilter:c})}}function Ge(e){var n=e.data,o=e.rows,r=e.flatRows,i=e.rowsById,u=e.allColumns,s=e.filterTypes,a=e.globalFilter,c=e.manualGlobalFilter,d=e.state.globalFilter,f=e.dispatch,p=e.autoResetGlobalFilter,g=void 0===p||p,v=e.disableGlobalFilter,m=t.useCallback((function(e){f({type:l.setGlobalFilter,filterValue:e});}),[f]),y=t.useMemo((function(){if(c||void 0===d)return [o,r,i];var e=[],t={},n=k(a,s||{},xe);if(!n)return console.warn("Could not find a valid 'globalFilter' option."),o;u.forEach((function(e){var t=e.disableGlobalFilter;e.canFilter=I(!0!==t&&void 0,!0!==v&&void 0,!0);}));var l=u.filter((function(e){return !0===e.canFilter}));return [function o(r){return (r=n(r,l.map((function(e){return e.id})),d)).forEach((function(n){e.push(n),t[n.id]=n,n.subRows=n.subRows&&n.subRows.length?o(n.subRows):n.subRows;})),r}(o),e,t]}),[c,d,a,s,u,o,r,i,v]),R=y[0],b=y[1],S=y[2],C=h(g);w((function(){C()&&f({type:l.resetGlobalFilter});}),[f,c?null:n]),Object.assign(e,{preGlobalFilteredRows:o,preGlobalFilteredFlatRows:r,preGlobalFilteredRowsById:i,globalFilteredRows:R,globalFilteredFlatRows:b,globalFilteredRowsById:S,rows:R,flatRows:b,rowsById:S,setGlobalFilter:m,disableGlobalFilter:v});}function Ae(e,t){return t.reduce((function(e,t){return e+("number"==typeof t?t:0)}),0)}Ie.pluginName="useGlobalFilter";var ke=Object.freeze({__proto__:null,sum:Ae,min:function(e){var t=e[0]||0;return e.forEach((function(e){"number"==typeof e&&(t=Math.min(t,e));})),t},max:function(e){var t=e[0]||0;return e.forEach((function(e){"number"==typeof e&&(t=Math.max(t,e));})),t},minMax:function(e){var t=e[0]||0,n=e[0]||0;return e.forEach((function(e){"number"==typeof e&&(t=Math.min(t,e),n=Math.max(n,e));})),t+".."+n},average:function(e){return Ae(0,e)/e.length},median:function(e){if(!e.length)return null;var t=Math.floor(e.length/2),n=[].concat(e).sort((function(e,t){return e-t}));return e.length%2!=0?n[t]:(n[t-1]+n[t])/2},unique:function(e){return Array.from(new Set(e).values())},uniqueCount:function(e){return new Set(e).size},count:function(e){return e.length}}),He=[],Te={};l.resetGroupBy="resetGroupBy",l.setGroupBy="setGroupBy",l.toggleGroupBy="toggleGroupBy";var ze=function(e){e.getGroupByToggleProps=[We],e.stateReducers.push(Oe),e.visibleColumnsDeps.push((function(e,t){var n=t.instance;return [].concat(e,[n.state.groupBy])})),e.visibleColumns.push(Me),e.useInstance.push(Ne),e.prepareRow.push(Le);};ze.pluginName="useGroupBy";var We=function(e,t){var n=t.header;return [e,{onClick:n.canGroupBy?function(e){e.persist(),n.toggleGroupBy();}:void 0,style:{cursor:n.canGroupBy?"pointer":void 0},title:"Toggle GroupBy"}]};function Oe(e,t,n,o){if(t.type===l.init)return r({groupBy:[]},e);if(t.type===l.resetGroupBy)return r({},e,{groupBy:o.initialState.groupBy||[]});if(t.type===l.setGroupBy)return r({},e,{groupBy:t.value});if(t.type===l.toggleGroupBy){var i=t.columnId,u=t.value,s=void 0!==u?u:!e.groupBy.includes(i);return r({},e,s?{groupBy:[].concat(e.groupBy,[i])}:{groupBy:e.groupBy.filter((function(e){return e!==i}))})}}function Me(e,t){var n=t.instance.state.groupBy,o=n.map((function(t){return e.find((function(e){return e.id===t}))})).filter(Boolean),r=e.filter((function(e){return !n.includes(e.id)}));return (e=[].concat(o,r)).forEach((function(e){e.isGrouped=n.includes(e.id),e.groupedIndex=n.indexOf(e.id);})),e}var je={};function Ne(e){var n=e.data,o=e.rows,r=e.flatRows,i=e.rowsById,u=e.allColumns,s=e.flatHeaders,a=e.groupByFn,c=void 0===a?De:a,d=e.manualGroupBy,p=e.aggregations,g=void 0===p?je:p,m=e.plugins,y=e.state.groupBy,R=e.dispatch,b=e.autoResetGroupBy,S=void 0===b||b,C=e.disableGroupBy,x=e.defaultCanGroupBy,P=e.getHooks;v(m,["useColumnOrder","useFilters"],"useGroupBy");var B=h(e);u.forEach((function(t){var n=t.accessor,o=t.defaultGroupBy,r=t.disableGroupBy;t.canGroupBy=n?I(t.canGroupBy,!0!==r&&void 0,!0!==C&&void 0,!0):I(t.canGroupBy,o,x,!1),t.canGroupBy&&(t.toggleGroupBy=function(){return e.toggleGroupBy(t.id)}),t.Aggregated=t.Aggregated||t.Cell;}));var E=t.useCallback((function(e,t){R({type:l.toggleGroupBy,columnId:e,value:t});}),[R]),F=t.useCallback((function(e){R({type:l.setGroupBy,value:e});}),[R]);s.forEach((function(e){e.getGroupByToggleProps=f(P().getGroupByToggleProps,{instance:B(),header:e});}));var A=t.useMemo((function(){if(d||!y.length)return [o,r,i,He,Te,r,i];var e=y.filter((function(e){return u.find((function(t){return t.id===e}))})),t=[],n={},l=[],s={},a=[],f={},p=function o(r,i,d){if(void 0===i&&(i=0),i===e.length)return r;var p=e[i],v=c(r,p);return Object.entries(v).map((function(r,c){var v=r[0],m=r[1],h=p+":"+v,y=o(m,i+1,h=d?d+">"+h:h),w=i?G(m,"leafRows"):m,R=function(t,n,o){var r={};return u.forEach((function(i){if(e.includes(i.id))r[i.id]=n[0]?n[0].values[i.id]:null;else {var u="function"==typeof i.aggregate?i.aggregate:g[i.aggregate]||ke[i.aggregate];if(u){var l=n.map((function(e){return e.values[i.id]})),s=t.map((function(e){var t=e.values[i.id];if(!o&&i.aggregateValue){var n="function"==typeof i.aggregateValue?i.aggregateValue:g[i.aggregateValue]||ke[i.aggregateValue];if(!n)throw console.info({column:i}),new Error("React Table: Invalid column.aggregateValue option for column listed above");t=n(t,e,i);}return t}));r[i.id]=u(s,l);}else {if(i.aggregate)throw console.info({column:i}),new Error("React Table: Invalid column.aggregate option for column listed above");r[i.id]=null;}}})),r}(w,m,i),b={id:h,isGrouped:!0,groupByID:p,groupByVal:v,values:R,subRows:y,leafRows:w,depth:i,index:c};return y.forEach((function(e){t.push(e),n[e.id]=e,e.isGrouped?(l.push(e),s[e.id]=e):(a.push(e),f[e.id]=e);})),b}))}(o);return p.forEach((function(e){t.push(e),n[e.id]=e,e.isGrouped?(l.push(e),s[e.id]=e):(a.push(e),f[e.id]=e);})),[p,t,n,l,s,a,f]}),[d,y,o,r,i,u,g,c]),k=A[0],H=A[1],T=A[2],z=A[3],W=A[4],O=A[5],M=A[6],j=h(S);w((function(){j()&&R({type:l.resetGroupBy});}),[R,d?null:n]),Object.assign(e,{preGroupedRows:o,preGroupedFlatRow:r,preGroupedRowsById:i,groupedRows:k,groupedFlatRows:H,groupedRowsById:T,onlyGroupedFlatRows:z,onlyGroupedRowsById:W,nonGroupedFlatRows:O,nonGroupedRowsById:M,rows:k,flatRows:H,rowsById:T,toggleGroupBy:E,setGroupBy:F});}function Le(e){e.allCells.forEach((function(t){var n;t.isGrouped=t.column.isGrouped&&t.column.id===e.groupByID,t.isPlaceholder=!t.isGrouped&&t.column.isGrouped,t.isAggregated=!t.isGrouped&&!t.isPlaceholder&&(null==(n=e.subRows)?void 0:n.length);}));}function De(e,t){return e.reduce((function(e,n,o){var r=""+n.values[t];return e[r]=Array.isArray(e[r])?e[r]:[],e[r].push(n),e}),{})}var Ve=/([0-9]+)/gm;function _e(e,t){return e===t?0:e>t?1:-1}function Xe(e,t,n){return [e.values[n],t.values[n]]}function qe(e){return "number"==typeof e?isNaN(e)||e===1/0||e===-1/0?"":String(e):"string"==typeof e?e:""}var Ke=Object.freeze({__proto__:null,alphanumeric:function(e,t,n){var o=Xe(e,t,n),r=o[0],i=o[1];for(r=qe(r),i=qe(i),r=r.split(Ve).filter(Boolean),i=i.split(Ve).filter(Boolean);r.length&&i.length;){var u=r.shift(),l=i.shift(),s=parseInt(u,10),a=parseInt(l,10),c=[s,a].sort();if(isNaN(c[0])){if(u>l)return 1;if(l>u)return -1}else {if(isNaN(c[1]))return isNaN(s)?-1:1;if(s>a)return 1;if(a>s)return -1}}return r.length-i.length},datetime:function(e,t,n){var o=Xe(e,t,n),r=o[0],i=o[1];return _e(r=r.getTime(),i=i.getTime())},basic:function(e,t,n){var o=Xe(e,t,n);return _e(o[0],o[1])},string:function(e,t,n){var o=Xe(e,t,n),r=o[0],i=o[1];for(r=r.split("").filter(Boolean),i=i.split("").filter(Boolean);r.length&&i.length;){var u=r.shift(),l=i.shift(),s=u.toLowerCase(),a=l.toLowerCase();if(s>a)return 1;if(a>s)return -1;if(u>l)return 1;if(l>u)return -1}return r.length-i.length},number:function(e,t,n){var o=Xe(e,t,n),r=o[0],i=o[1],u=/[^0-9.]/gi;return _e(r=Number(String(r).replace(u,"")),i=Number(String(i).replace(u,"")))}});l.resetSortBy="resetSortBy",l.setSortBy="setSortBy",l.toggleSortBy="toggleSortBy",l.clearSortBy="clearSortBy",c.sortType="alphanumeric",c.sortDescFirst=!1;var Ue=function(e){e.getSortByToggleProps=[$e],e.stateReducers.push(Je),e.useInstance.push(Ye);};Ue.pluginName="useSortBy";var $e=function(e,t){var n=t.instance,o=t.column,r=n.isMultiSortEvent,i=void 0===r?function(e){return e.shiftKey}:r;return [e,{onClick:o.canSort?function(e){e.persist(),o.toggleSortBy(void 0,!n.disableMultiSort&&i(e));}:void 0,style:{cursor:o.canSort?"pointer":void 0},title:o.canSort?"Toggle SortBy":void 0}]};function Je(e,t,n,o){if(t.type===l.init)return r({sortBy:[]},e);if(t.type===l.resetSortBy)return r({},e,{sortBy:o.initialState.sortBy||[]});if(t.type===l.clearSortBy)return r({},e,{sortBy:e.sortBy.filter((function(e){return e.id!==t.columnId}))});if(t.type===l.setSortBy)return r({},e,{sortBy:t.sortBy});if(t.type===l.toggleSortBy){var i,u=t.columnId,s=t.desc,a=t.multi,c=o.allColumns,d=o.disableMultiSort,f=o.disableSortRemove,p=o.disableMultiRemove,g=o.maxMultiSortColCount,v=void 0===g?Number.MAX_SAFE_INTEGER:g,m=e.sortBy,h=c.find((function(e){return e.id===u})).sortDescFirst,y=m.find((function(e){return e.id===u})),w=m.findIndex((function(e){return e.id===u})),R=null!=s,b=[];return "toggle"!==(i=!d&&a?y?"toggle":"add":w!==m.length-1||1!==m.length?"replace":y?"toggle":"replace")||f||R||a&&p||!(y&&y.desc&&!h||!y.desc&&h)||(i="remove"),"replace"===i?b=[{id:u,desc:R?s:h}]:"add"===i?(b=[].concat(m,[{id:u,desc:R?s:h}])).splice(0,b.length-v):"toggle"===i?b=m.map((function(e){return e.id===u?r({},e,{desc:R?s:!y.desc}):e})):"remove"===i&&(b=m.filter((function(e){return e.id!==u}))),r({},e,{sortBy:b})}}function Ye(e){var n=e.data,o=e.rows,r=e.flatRows,i=e.allColumns,u=e.orderByFn,s=void 0===u?Qe:u,a=e.sortTypes,c=e.manualSortBy,d=e.defaultCanSort,p=e.disableSortBy,g=e.flatHeaders,m=e.state.sortBy,y=e.dispatch,R=e.plugins,b=e.getHooks,S=e.autoResetSortBy,C=void 0===S||S;v(R,["useFilters","useGlobalFilter","useGroupBy","usePivotColumns"],"useSortBy");var x=t.useCallback((function(e){y({type:l.setSortBy,sortBy:e});}),[y]),P=t.useCallback((function(e,t,n){y({type:l.toggleSortBy,columnId:e,desc:t,multi:n});}),[y]),B=h(e);g.forEach((function(e){var t=e.accessor,n=e.canSort,o=e.disableSortBy,r=e.id,i=t?I(!0!==o&&void 0,!0!==p&&void 0,!0):I(d,n,!1);e.canSort=i,e.canSort&&(e.toggleSortBy=function(t,n){return P(e.id,t,n)},e.clearSortBy=function(){y({type:l.clearSortBy,columnId:e.id});}),e.getSortByToggleProps=f(b().getSortByToggleProps,{instance:B(),column:e});var u=m.find((function(e){return e.id===r}));e.isSorted=!!u,e.sortedIndex=m.findIndex((function(e){return e.id===r})),e.isSortedDesc=e.isSorted?u.desc:void 0;}));var E=t.useMemo((function(){if(c||!m.length)return [o,r];var e=[],t=m.filter((function(e){return i.find((function(t){return t.id===e.id}))}));return [function n(o){var r=s(o,t.map((function(e){var t=i.find((function(t){return t.id===e.id}));if(!t)throw new Error("React-Table: Could not find a column with id: "+e.id+" while sorting");var n=t.sortType,o=F(n)||(a||{})[n]||Ke[n];if(!o)throw new Error("React-Table: Could not find a valid sortType of '"+n+"' for column '"+e.id+"'.");return function(t,n){return o(t,n,e.id,e.desc)}})),t.map((function(e){var t=i.find((function(t){return t.id===e.id}));return t&&t.sortInverted?e.desc:!e.desc})));return r.forEach((function(t){e.push(t),t.subRows&&0!==t.subRows.length&&(t.subRows=n(t.subRows));})),r}(o),e]}),[c,m,o,r,i,s,a]),G=E[0],A=E[1],k=h(C);w((function(){k()&&y({type:l.resetSortBy});}),[c?null:n]),Object.assign(e,{preSortedRows:o,preSortedFlatRows:r,sortedRows:G,sortedFlatRows:A,rows:G,flatRows:A,setSortBy:x,toggleSortBy:P});}function Qe(e,t,n){return [].concat(e).sort((function(e,o){for(var r=0;r<t.length;r+=1){var i=t[r],u=!1===n[r]||"desc"===n[r],l=i(e,o);if(0!==l)return u?-l:l}return n[0]?e.index-o.index:o.index-e.index}))}l.resetPage="resetPage",l.gotoPage="gotoPage",l.setPageSize="setPageSize";var Ze=function(e){e.stateReducers.push(et),e.useInstance.push(tt);};function et(e,t,n,o){if(t.type===l.init)return r({pageSize:10,pageIndex:0},e);if(t.type===l.resetPage)return r({},e,{pageIndex:o.initialState.pageIndex||0});if(t.type===l.gotoPage){var i=o.pageCount,u=o.page,s=m(t.pageIndex,e.pageIndex),a=!1;return s>e.pageIndex?a=-1===i?u.length>=e.pageSize:s<i:s<e.pageIndex&&(a=s>-1),a?r({},e,{pageIndex:s}):e}if(t.type===l.setPageSize){var c=t.pageSize,d=e.pageSize*e.pageIndex;return r({},e,{pageIndex:Math.floor(d/c),pageSize:c})}}function tt(e){var n=e.rows,o=e.autoResetPage,r=void 0===o||o,i=e.manualExpandedKey,u=void 0===i?"expanded":i,s=e.plugins,a=e.pageCount,c=e.paginateExpandedRows,d=void 0===c||c,f=e.expandSubRows,p=void 0===f||f,g=e.state,m=g.pageSize,y=g.pageIndex,R=g.expanded,b=g.globalFilter,S=g.filters,C=g.groupBy,x=g.sortBy,P=e.dispatch,B=e.data,E=e.manualPagination;v(s,["useGlobalFilter","useFilters","useGroupBy","useSortBy","useExpanded"],"usePagination");var I=h(r);w((function(){I()&&P({type:l.resetPage});}),[P,E?null:B,b,S,C,x]);var F=E?a:Math.ceil(n.length/m),G=t.useMemo((function(){return F>0?[].concat(new Array(F)).fill(null).map((function(e,t){return t})):[]}),[F]),k=t.useMemo((function(){var e;if(E)e=n;else {var t=m*y,o=t+m;e=n.slice(t,o);}return d?e:A(e,{manualExpandedKey:u,expanded:R,expandSubRows:p})}),[p,R,u,E,y,m,d,n]),H=y>0,T=-1===F?k.length>=m:y<F-1,z=t.useCallback((function(e){P({type:l.gotoPage,pageIndex:e});}),[P]),W=t.useCallback((function(){return z((function(e){return e-1}))}),[z]),O=t.useCallback((function(){return z((function(e){return e+1}))}),[z]),M=t.useCallback((function(e){P({type:l.setPageSize,pageSize:e});}),[P]);Object.assign(e,{pageOptions:G,pageCount:F,page:k,canPreviousPage:H,canNextPage:T,gotoPage:z,previousPage:W,nextPage:O,setPageSize:M});}Ze.pluginName="usePagination",l.resetPivot="resetPivot",l.togglePivot="togglePivot";var nt=function(e){e.getPivotToggleProps=[rt],e.stateReducers.push(it),e.useInstanceAfterData.push(ut),e.allColumns.push(lt),e.accessValue.push(st),e.materializedColumns.push(at),e.materializedColumnsDeps.push(ct),e.visibleColumns.push(dt),e.visibleColumnsDeps.push(ft),e.useInstance.push(pt),e.prepareRow.push(gt);};nt.pluginName="usePivotColumns";var ot=[],rt=function(e,t){var n=t.header;return [e,{onClick:n.canPivot?function(e){e.persist(),n.togglePivot();}:void 0,style:{cursor:n.canPivot?"pointer":void 0},title:"Toggle Pivot"}]};function it(e,t,n,o){if(t.type===l.init)return r({pivotColumns:ot},e);if(t.type===l.resetPivot)return r({},e,{pivotColumns:o.initialState.pivotColumns||ot});if(t.type===l.togglePivot){var i=t.columnId,u=t.value,s=void 0!==u?u:!e.pivotColumns.includes(i);return r({},e,s?{pivotColumns:[].concat(e.pivotColumns,[i])}:{pivotColumns:e.pivotColumns.filter((function(e){return e!==i}))})}}function ut(e){e.allColumns.forEach((function(t){t.isPivotSource=e.state.pivotColumns.includes(t.id);}));}function lt(e,t){var n=t.instance;return e.forEach((function(e){e.isPivotSource=n.state.pivotColumns.includes(e.id),e.uniqueValues=new Set;})),e}function st(e,t){var n=t.column;return n.uniqueValues&&void 0!==e&&n.uniqueValues.add(e),e}function at(e,t){var n=t.instance,o=n.allColumns,i=n.state;if(!i.pivotColumns.length||!i.groupBy||!i.groupBy.length)return e;var u=i.pivotColumns.map((function(e){return o.find((function(t){return t.id===e}))})).filter(Boolean),l=o.filter((function(e){return !e.isPivotSource&&!i.groupBy.includes(e.id)&&!i.pivotColumns.includes(e.id)})),s=C(function e(t,n,o){void 0===t&&(t=0),void 0===o&&(o=[]);var i=u[t];return i?Array.from(i.uniqueValues).sort().map((function(u){var l=r({},i,{Header:i.PivotHeader||"string"==typeof i.header?i.Header+": "+u:u,isPivotGroup:!0,parent:n,depth:t,id:n?n.id+"."+i.id+"."+u:i.id+"."+u,pivotValue:u});return l.columns=e(t+1,l,[].concat(o,[function(e){return e.values[i.id]===u}])),l})):l.map((function(e){return r({},e,{canPivot:!1,isPivoted:!0,parent:n,depth:t,id:""+(n?n.id+"."+e.id:e.id),accessor:function(t,n,r){if(o.every((function(e){return e(r)})))return r.values[e.id]}})}))}());return [].concat(e,s)}function ct(e,t){var n=t.instance.state,o=n.pivotColumns,r=n.groupBy;return [].concat(e,[o,r])}function dt(e,t){var n=t.instance.state;return e=e.filter((function(e){return !e.isPivotSource})),n.pivotColumns.length&&n.groupBy&&n.groupBy.length&&(e=e.filter((function(e){return e.isGrouped||e.isPivoted}))),e}function ft(e,t){var n=t.instance;return [].concat(e,[n.state.pivotColumns,n.state.groupBy])}function pt(e){var t=e.columns,n=e.allColumns,o=e.flatHeaders,r=e.getHooks,i=e.plugins,u=e.dispatch,s=e.autoResetPivot,a=void 0===s||s,c=e.manaulPivot,d=e.disablePivot,p=e.defaultCanPivot;v(i,["useGroupBy"],"usePivotColumns");var g=h(e);n.forEach((function(t){var n=t.accessor,o=t.defaultPivot,r=t.disablePivot;t.canPivot=n?I(t.canPivot,!0!==r&&void 0,!0!==d&&void 0,!0):I(t.canPivot,o,p,!1),t.canPivot&&(t.togglePivot=function(){return e.togglePivot(t.id)}),t.Aggregated=t.Aggregated||t.Cell;}));o.forEach((function(e){e.getPivotToggleProps=f(r().getPivotToggleProps,{instance:g(),header:e});}));var m=h(a);w((function(){m()&&u({type:l.resetPivot});}),[u,c?null:t]),Object.assign(e,{togglePivot:function(e,t){u({type:l.togglePivot,columnId:e,value:t});}});}function gt(e){e.allCells.forEach((function(e){e.isPivoted=e.column.isPivoted;}));}l.resetSelectedRows="resetSelectedRows",l.toggleAllRowsSelected="toggleAllRowsSelected",l.toggleRowSelected="toggleRowSelected",l.toggleAllPageRowsSelected="toggleAllPageRowsSelected";var vt=function(e){e.getToggleRowSelectedProps=[mt],e.getToggleAllRowsSelectedProps=[ht],e.getToggleAllPageRowsSelectedProps=[yt],e.stateReducers.push(wt),e.useInstance.push(Rt),e.prepareRow.push(bt);};vt.pluginName="useRowSelect";var mt=function(e,t){var n=t.instance,o=t.row,r=n.manualRowSelectedKey,i=void 0===r?"isSelected":r;return [e,{onChange:function(e){o.toggleRowSelected(e.target.checked);},style:{cursor:"pointer"},checked:!(!o.original||!o.original[i])||o.isSelected,title:"Toggle Row Selected",indeterminate:o.isSomeSelected}]},ht=function(e,t){var n=t.instance;return [e,{onChange:function(e){n.toggleAllRowsSelected(e.target.checked);},style:{cursor:"pointer"},checked:n.isAllRowsSelected,title:"Toggle All Rows Selected",indeterminate:Boolean(!n.isAllRowsSelected&&Object.keys(n.state.selectedRowIds).length)}]},yt=function(e,t){var n=t.instance;return [e,{onChange:function(e){n.toggleAllPageRowsSelected(e.target.checked);},style:{cursor:"pointer"},checked:n.isAllPageRowsSelected,title:"Toggle All Current Page Rows Selected",indeterminate:Boolean(!n.isAllPageRowsSelected&&n.page.some((function(e){var t=e.id;return n.state.selectedRowIds[t]})))}]};function wt(e,t,n,o){if(t.type===l.init)return r({selectedRowIds:{}},e);if(t.type===l.resetSelectedRows)return r({},e,{selectedRowIds:o.initialState.selectedRowIds||{}});if(t.type===l.toggleAllRowsSelected){var i=t.value,u=o.isAllRowsSelected,s=o.rowsById,a=o.nonGroupedRowsById,c=void 0===a?s:a,d=void 0!==i?i:!u,f=Object.assign({},e.selectedRowIds);return d?Object.keys(c).forEach((function(e){f[e]=!0;})):Object.keys(c).forEach((function(e){delete f[e];})),r({},e,{selectedRowIds:f})}if(t.type===l.toggleRowSelected){var p=t.id,g=t.value,v=o.rowsById,m=o.selectSubRows,h=void 0===m||m,y=o.getSubRows,w=e.selectedRowIds[p],R=void 0!==g?g:!w;if(w===R)return e;var b=r({},e.selectedRowIds);return function e(t){var n=v[t];if(n.isGrouped||(R?b[t]=!0:delete b[t]),h&&y(n))return y(n).forEach((function(t){return e(t.id)}))}(p),r({},e,{selectedRowIds:b})}if(t.type===l.toggleAllPageRowsSelected){var S=t.value,C=o.page,x=o.rowsById,P=o.selectSubRows,B=void 0===P||P,E=o.isAllPageRowsSelected,I=o.getSubRows,F=void 0!==S?S:!E,G=r({},e.selectedRowIds);return C.forEach((function(e){return function e(t){var n=x[t];if(n.isGrouped||(F?G[t]=!0:delete G[t]),B&&I(n))return I(n).forEach((function(t){return e(t.id)}))}(e.id)})),r({},e,{selectedRowIds:G})}return e}function Rt(e){var n=e.data,o=e.rows,r=e.getHooks,i=e.plugins,u=e.rowsById,s=e.nonGroupedRowsById,a=void 0===s?u:s,c=e.autoResetSelectedRows,d=void 0===c||c,p=e.state.selectedRowIds,g=e.selectSubRows,m=void 0===g||g,y=e.dispatch,R=e.page,b=e.getSubRows;v(i,["useFilters","useGroupBy","useSortBy","useExpanded","usePagination"],"useRowSelect");var S=t.useMemo((function(){var e=[];return o.forEach((function(t){var n=m?function e(t,n,o){if(n[t.id])return !0;var r=o(t);if(r&&r.length){var i=!0,u=!1;return r.forEach((function(t){u&&!i||(e(t,n,o)?u=!0:i=!1);})),!!i||!!u&&null}return !1}(t,p,b):!!p[t.id];t.isSelected=!!n,t.isSomeSelected=null===n,n&&e.push(t);})),e}),[o,m,p,b]),C=Boolean(Object.keys(a).length&&Object.keys(p).length),x=C;C&&Object.keys(a).some((function(e){return !p[e]}))&&(C=!1),C||R&&R.length&&R.some((function(e){var t=e.id;return !p[t]}))&&(x=!1);var P=h(d);w((function(){P()&&y({type:l.resetSelectedRows});}),[y,n]);var B=t.useCallback((function(e){return y({type:l.toggleAllRowsSelected,value:e})}),[y]),E=t.useCallback((function(e){return y({type:l.toggleAllPageRowsSelected,value:e})}),[y]),I=t.useCallback((function(e,t){return y({type:l.toggleRowSelected,id:e,value:t})}),[y]),F=h(e),G=f(r().getToggleAllRowsSelectedProps,{instance:F()}),A=f(r().getToggleAllPageRowsSelectedProps,{instance:F()});Object.assign(e,{selectedFlatRows:S,isAllRowsSelected:C,isAllPageRowsSelected:x,toggleRowSelected:I,toggleAllRowsSelected:B,getToggleAllRowsSelectedProps:G,getToggleAllPageRowsSelectedProps:A,toggleAllPageRowsSelected:E});}function bt(e,t){var n=t.instance;e.toggleRowSelected=function(t){return n.toggleRowSelected(e.id,t)},e.getToggleRowSelectedProps=f(n.getHooks().getToggleRowSelectedProps,{instance:n,row:e});}var St=function(e){return {}},Ct=function(e){return {}};l.setRowState="setRowState",l.setCellState="setCellState",l.resetRowState="resetRowState";var xt=function(e){e.stateReducers.push(Pt),e.useInstance.push(Bt),e.prepareRow.push(Et);};function Pt(e,t,n,o){var i=o.initialRowStateAccessor,u=void 0===i?St:i,s=o.initialCellStateAccessor,a=void 0===s?Ct:s,c=o.rowsById;if(t.type===l.init)return r({rowState:{}},e);if(t.type===l.resetRowState)return r({},e,{rowState:o.initialState.rowState||{}});if(t.type===l.setRowState){var d,f=t.rowId,p=t.value,g=void 0!==e.rowState[f]?e.rowState[f]:u(c[f]);return r({},e,{rowState:r({},e.rowState,(d={},d[f]=m(p,g),d))})}if(t.type===l.setCellState){var v,h,y,w,R,b=t.rowId,S=t.columnId,C=t.value,x=void 0!==e.rowState[b]?e.rowState[b]:u(c[b]),P=void 0!==(null==x?void 0:null==(v=x.cellState)?void 0:v[S])?x.cellState[S]:a(null==(h=c[b])?void 0:null==(y=h.cells)?void 0:y.find((function(e){return e.column.id===S})));return r({},e,{rowState:r({},e.rowState,(R={},R[b]=r({},x,{cellState:r({},x.cellState||{},(w={},w[S]=m(C,P),w))}),R))})}}function Bt(e){var n=e.autoResetRowState,o=void 0===n||n,r=e.data,i=e.dispatch,u=t.useCallback((function(e,t){return i({type:l.setRowState,rowId:e,value:t})}),[i]),s=t.useCallback((function(e,t,n){return i({type:l.setCellState,rowId:e,columnId:t,value:n})}),[i]),a=h(o);w((function(){a()&&i({type:l.resetRowState});}),[r]),Object.assign(e,{setRowState:u,setCellState:s});}function Et(e,t){var n=t.instance,o=n.initialRowStateAccessor,r=void 0===o?St:o,i=n.initialCellStateAccessor,u=void 0===i?Ct:i,l=n.state.rowState;e&&(e.state=void 0!==l[e.id]?l[e.id]:r(e),e.setState=function(t){return n.setRowState(e.id,t)},e.cells.forEach((function(t){e.state.cellState||(e.state.cellState={}),t.state=void 0!==e.state.cellState[t.column.id]?e.state.cellState[t.column.id]:u(t),t.setState=function(o){return n.setCellState(e.id,t.column.id,o)};})));}xt.pluginName="useRowState",l.resetColumnOrder="resetColumnOrder",l.setColumnOrder="setColumnOrder";var It=function(e){e.stateReducers.push(Ft),e.visibleColumnsDeps.push((function(e,t){var n=t.instance;return [].concat(e,[n.state.columnOrder])})),e.visibleColumns.push(Gt),e.useInstance.push(At);};function Ft(e,t,n,o){return t.type===l.init?r({columnOrder:[]},e):t.type===l.resetColumnOrder?r({},e,{columnOrder:o.initialState.columnOrder||[]}):t.type===l.setColumnOrder?r({},e,{columnOrder:m(t.columnOrder,e.columnOrder)}):void 0}function Gt(e,t){var n=t.instance.state.columnOrder;if(!n||!n.length)return e;for(var o=[].concat(n),r=[].concat(e),i=[],u=function(){var e=o.shift(),t=r.findIndex((function(t){return t.id===e}));t>-1&&i.push(r.splice(t,1)[0]);};r.length&&o.length;)u();return [].concat(i,r)}function At(e){var n=e.dispatch;e.setColumnOrder=t.useCallback((function(e){return n({type:l.setColumnOrder,columnOrder:e})}),[n]);}It.pluginName="useColumnOrder",c.canResize=!0,l.columnStartResizing="columnStartResizing",l.columnResizing="columnResizing",l.columnDoneResizing="columnDoneResizing",l.resetResize="resetResize";var kt=function(e){e.getResizerProps=[Ht],e.getHeaderProps.push({style:{position:"relative"}}),e.stateReducers.push(Tt),e.useInstance.push(Wt),e.useInstanceBeforeDimensions.push(zt);},Ht=function(e,t){var n=t.instance,o=t.header,r=n.dispatch,i=function(e,t){var n=!1;if("touchstart"===e.type){if(e.touches&&e.touches.length>1)return;n=!0;}var o=function(e){var t=[];return function e(n){n.columns&&n.columns.length&&n.columns.map(e);t.push(n);}(e),t}(t).map((function(e){return [e.id,e.totalWidth]})),i=n?Math.round(e.touches[0].clientX):e.clientX,u=function(e){r({type:l.columnResizing,clientX:e});},s=function(){return r({type:l.columnDoneResizing})},a={mouse:{moveEvent:"mousemove",moveHandler:function(e){return u(e.clientX)},upEvent:"mouseup",upHandler:function(e){document.removeEventListener("mousemove",a.mouse.moveHandler),document.removeEventListener("mouseup",a.mouse.upHandler),s();}},touch:{moveEvent:"touchmove",moveHandler:function(e){return e.cancelable&&(e.preventDefault(),e.stopPropagation()),u(e.touches[0].clientX),!1},upEvent:"touchend",upHandler:function(e){document.removeEventListener(a.touch.moveEvent,a.touch.moveHandler),document.removeEventListener(a.touch.upEvent,a.touch.moveHandler),s();}}},c=n?a.touch:a.mouse,d=!!function(){if("boolean"==typeof z)return z;var e=!1;try{var t={get passive(){return e=!0,!1}};window.addEventListener("test",null,t),window.removeEventListener("test",null,t);}catch(t){e=!1;}return z=e}()&&{passive:!1};document.addEventListener(c.moveEvent,c.moveHandler,d),document.addEventListener(c.upEvent,c.upHandler,d),r({type:l.columnStartResizing,columnId:t.id,columnWidth:t.totalWidth,headerIdWidths:o,clientX:i});};return [e,{onMouseDown:function(e){return e.persist()||i(e,o)},onTouchStart:function(e){return e.persist()||i(e,o)},style:{cursor:"col-resize"},draggable:!1,role:"separator"}]};function Tt(e,t){if(t.type===l.init)return r({columnResizing:{columnWidths:{}}},e);if(t.type===l.resetResize)return r({},e,{columnResizing:{columnWidths:{}}});if(t.type===l.columnStartResizing){var n=t.clientX,o=t.columnId,i=t.columnWidth,u=t.headerIdWidths;return r({},e,{columnResizing:r({},e.columnResizing,{startX:n,headerIdWidths:u,columnWidth:i,isResizingColumn:o})})}if(t.type===l.columnResizing){var s=t.clientX,a=e.columnResizing,c=a.startX,d=a.columnWidth,f=a.headerIdWidths,p=(s-c)/d,g={};return (void 0===f?[]:f).forEach((function(e){var t=e[0],n=e[1];g[t]=Math.max(n+n*p,0);})),r({},e,{columnResizing:r({},e.columnResizing,{columnWidths:r({},e.columnResizing.columnWidths,{},g)})})}return t.type===l.columnDoneResizing?r({},e,{columnResizing:r({},e.columnResizing,{startX:null,isResizingColumn:null})}):void 0}kt.pluginName="useResizeColumns";var zt=function(e){var t=e.flatHeaders,n=e.disableResizing,o=e.getHooks,r=e.state.columnResizing,i=h(e);t.forEach((function(e){var t=I(!0!==e.disableResizing&&void 0,!0!==n&&void 0,!0);e.canResize=t,e.width=r.columnWidths[e.id]||e.originalWidth||e.width,e.isResizing=r.isResizingColumn===e.id,t&&(e.getResizerProps=f(o().getResizerProps,{instance:i(),header:e}));}));};function Wt(e){var n=e.plugins,o=e.dispatch,r=e.autoResetResize,i=void 0===r||r,u=e.columns;v(n,["useAbsoluteLayout"],"useResizeColumns");var s=h(i);w((function(){s()&&o({type:l.resetResize});}),[u]);var a=t.useCallback((function(){return o({type:l.resetResize})}),[o]);Object.assign(e,{resetResizing:a});}var Ot={position:"absolute",top:0},Mt=function(e){e.getTableBodyProps.push(jt),e.getRowProps.push(jt),e.getHeaderGroupProps.push(jt),e.getFooterGroupProps.push(jt),e.getHeaderProps.push((function(e,t){var n=t.column;return [e,{style:r({},Ot,{left:n.totalLeft+"px",width:n.totalWidth+"px"})}]})),e.getCellProps.push((function(e,t){var n=t.cell;return [e,{style:r({},Ot,{left:n.column.totalLeft+"px",width:n.column.totalWidth+"px"})}]})),e.getFooterProps.push((function(e,t){var n=t.column;return [e,{style:r({},Ot,{left:n.totalLeft+"px",width:n.totalWidth+"px"})}]}));};Mt.pluginName="useAbsoluteLayout";var jt=function(e,t){return [e,{style:{position:"relative",width:t.instance.totalColumnsWidth+"px"}}]},Nt={display:"inline-block",boxSizing:"border-box"},Lt=function(e,t){return [e,{style:{display:"flex",width:t.instance.totalColumnsWidth+"px"}}]},Dt=function(e){e.getRowProps.push(Lt),e.getHeaderGroupProps.push(Lt),e.getFooterGroupProps.push(Lt),e.getHeaderProps.push((function(e,t){var n=t.column;return [e,{style:r({},Nt,{width:n.totalWidth+"px"})}]})),e.getCellProps.push((function(e,t){var n=t.cell;return [e,{style:r({},Nt,{width:n.column.totalWidth+"px"})}]})),e.getFooterProps.push((function(e,t){var n=t.column;return [e,{style:r({},Nt,{width:n.totalWidth+"px"})}]}));};function Vt(e){e.getTableProps.push(_t),e.getRowProps.push(Xt),e.getHeaderGroupProps.push(Xt),e.getFooterGroupProps.push(Xt),e.getHeaderProps.push(qt),e.getCellProps.push(Kt),e.getFooterProps.push(Ut);}Dt.pluginName="useBlockLayout",Vt.pluginName="useFlexLayout";var _t=function(e,t){return [e,{style:{minWidth:t.instance.totalColumnsMinWidth+"px"}}]},Xt=function(e,t){return [e,{style:{display:"flex",flex:"1 0 auto",minWidth:t.instance.totalColumnsMinWidth+"px"}}]},qt=function(e,t){var n=t.column;return [e,{style:{boxSizing:"border-box",flex:n.totalFlexWidth?n.totalFlexWidth+" 0 auto":void 0,minWidth:n.totalMinWidth+"px",width:n.totalWidth+"px"}}]},Kt=function(e,t){var n=t.cell;return [e,{style:{boxSizing:"border-box",flex:n.column.totalFlexWidth+" 0 auto",minWidth:n.column.totalMinWidth+"px",width:n.column.totalWidth+"px"}}]},Ut=function(e,t){var n=t.column;return [e,{style:{boxSizing:"border-box",flex:n.totalFlexWidth?n.totalFlexWidth+" 0 auto":void 0,minWidth:n.totalMinWidth+"px",width:n.totalWidth+"px"}}]};function $t(e){e.stateReducers.push(Qt),e.getTableProps.push(Jt),e.getHeaderProps.push(Yt);}$t.pluginName="useGridLayout";var Jt=function(e,t){return [e,{style:{display:"grid",gridTemplateColumns:t.instance.state.gridLayout.columnWidths.map((function(e){return e})).join(" ")}}]},Yt=function(e,t){return [e,{id:"header-cell-"+t.column.id,style:{position:"sticky"}}]};function Qt(e,t,n,o){if("init"===t.type)return r({gridLayout:{columnWidths:o.columns.map((function(){return "auto"}))}},e);if("columnStartResizing"===t.type){var i=t.columnId,u=o.visibleColumns.findIndex((function(e){return e.id===i})),l=function(e){var t,n=null==(t=document.getElementById("header-cell-"+e))?void 0:t.offsetWidth;if(void 0!==n)return n}(i);return void 0!==l?r({},e,{gridLayout:r({},e.gridLayout,{columnId:i,columnIndex:u,startingWidth:l})}):e}if("columnResizing"===t.type){var s=e.gridLayout,a=s.columnIndex,c=s.startingWidth,d=s.columnWidths,f=c-(e.columnResizing.startX-t.clientX),p=[].concat(d);return p[a]=f+"px",r({},e,{gridLayout:r({},e.gridLayout,{columnWidths:p})})}}e._UNSTABLE_usePivotColumns=nt,e.actions=l,e.defaultColumn=c,e.defaultGroupByFn=De,e.defaultOrderByFn=Qe,e.defaultRenderer=s,e.emptyRenderer=a,e.ensurePluginOrder=v,e.flexRender=b,e.functionalUpdate=m,e.loopHooks=g,e.makePropGetter=f,e.makeRenderer=R,e.reduceHooks=p,e.safeUseLayoutEffect=y,e.useAbsoluteLayout=Mt,e.useAsyncDebounce=function(e,n){void 0===n&&(n=0);var r=t.useRef({}),i=h(e),u=h(n);return t.useCallback(function(){var e=o(regeneratorRuntime.mark((function e(){var t,n,l,s=arguments;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(t=s.length,n=new Array(t),l=0;l<t;l++)n[l]=s[l];return r.current.promise||(r.current.promise=new Promise((function(e,t){r.current.resolve=e,r.current.reject=t;}))),r.current.timeout&&clearTimeout(r.current.timeout),r.current.timeout=setTimeout(o(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return delete r.current.timeout,e.prev=1,e.t0=r.current,e.next=5,i().apply(void 0,n);case 5:e.t1=e.sent,e.t0.resolve.call(e.t0,e.t1),e.next=12;break;case 9:e.prev=9,e.t2=e.catch(1),r.current.reject(e.t2);case 12:return e.prev=12,delete r.current.promise,e.finish(12);case 15:case"end":return e.stop()}}),e,null,[[1,9,12,15]])}))),u()),e.abrupt("return",r.current.promise);case 5:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),[i,u])},e.useBlockLayout=Dt,e.useColumnOrder=It,e.useExpanded=se,e.useFilters=Pe,e.useFlexLayout=Vt,e.useGetLatest=h,e.useGlobalFilter=Ie,e.useGridLayout=$t,e.useGroupBy=ze,e.useMountedLayoutEffect=w,e.usePagination=Ze,e.useResizeColumns=kt,e.useRowSelect=vt,e.useRowState=xt,e.useSortBy=Ue,e.useTable=function(e){for(var n=arguments.length,o=new Array(n>1?n-1:0),i=1;i<n;i++)o[i-1]=arguments[i];e=ie(e),o=[K].concat(o);var u=t.useRef({}),s=h(u.current);Object.assign(s(),r({},e,{plugins:o,hooks:q()})),o.filter(Boolean).forEach((function(e){e(s().hooks);}));var a=h(s().hooks);s().getHooks=a,delete s().hooks,Object.assign(s(),p(a().useOptions,ie(e)));var c=s(),d=c.data,v=c.columns,m=c.initialState,y=c.defaultColumn,w=c.getSubRows,b=c.getRowId,E=c.stateReducer,I=c.useControlledState,F=h(E),G=t.useCallback((function(e,t){if(!t.type)throw console.info({action:t}),new Error("Unknown Action 👆");return [].concat(a().stateReducers,Array.isArray(F())?F():[F()]).reduce((function(n,o){return o(n,t,e,s())||n}),e)}),[a,F,s]),A=t.useReducer(G,void 0,(function(){return G(m,{type:l.init})})),k=A[0],H=A[1],T=p([].concat(a().useControlledState,[I]),k,{instance:s()});Object.assign(s(),{state:T,dispatch:H});var z=t.useMemo((function(){return S(p(a().columns,v,{instance:s()}))}),[a,s,v].concat(p(a().columnsDeps,[],{instance:s()})));s().columns=z;var W=t.useMemo((function(){return p(a().allColumns,C(z),{instance:s()}).map(x)}),[z,a,s].concat(p(a().allColumnsDeps,[],{instance:s()})));s().allColumns=W;var O=t.useMemo((function(){for(var e=[],t=[],n={},o=[].concat(W);o.length;){var r=o.shift();le({data:d,rows:e,flatRows:t,rowsById:n,column:r,getRowId:b,getSubRows:w,accessValueHooks:a().accessValue,getInstance:s});}return [e,t,n]}),[W,d,b,w,a,s]),M=O[0],j=O[1],N=O[2];Object.assign(s(),{rows:M,initialRows:[].concat(M),flatRows:j,rowsById:N}),g(a().useInstanceAfterData,s());var L=t.useMemo((function(){return p(a().visibleColumns,W,{instance:s()}).map((function(e){return P(e,y)}))}),[a,W,s,y].concat(p(a().visibleColumnsDeps,[],{instance:s()})));W=t.useMemo((function(){var e=[].concat(L);return W.forEach((function(t){e.find((function(e){return e.id===t.id}))||e.push(t);})),e}),[W,L]),s().allColumns=W;var D=t.useMemo((function(){return p(a().headerGroups,B(L,y),s())}),[a,L,y,s].concat(p(a().headerGroupsDeps,[],{instance:s()})));s().headerGroups=D;var V=t.useMemo((function(){return D.length?D[0].headers:[]}),[D]);s().headers=V,s().flatHeaders=D.reduce((function(e,t){return [].concat(e,t.headers)}),[]),g(a().useInstanceBeforeDimensions,s());var _=L.filter((function(e){return e.isVisible})).map((function(e){return e.id})).sort().join("_");L=t.useMemo((function(){return L.filter((function(e){return e.isVisible}))}),[L,_]),s().visibleColumns=L;var X=ue(V),U=X[0],$=X[1],J=X[2];return s().totalColumnsMinWidth=U,s().totalColumnsWidth=$,s().totalColumnsMaxWidth=J,g(a().useInstance,s()),[].concat(s().flatHeaders,s().allColumns).forEach((function(e){e.render=R(s(),e),e.getHeaderProps=f(a().getHeaderProps,{instance:s(),column:e}),e.getFooterProps=f(a().getFooterProps,{instance:s(),column:e});})),s().headerGroups=t.useMemo((function(){return D.filter((function(e,t){return e.headers=e.headers.filter((function(e){return e.headers?function e(t){return t.filter((function(t){return t.headers?e(t.headers):t.isVisible})).length}(e.headers):e.isVisible})),!!e.headers.length&&(e.getHeaderGroupProps=f(a().getHeaderGroupProps,{instance:s(),headerGroup:e,index:t}),e.getFooterGroupProps=f(a().getFooterGroupProps,{instance:s(),headerGroup:e,index:t}),!0)}))}),[D,s,a]),s().footerGroups=[].concat(s().headerGroups).reverse(),s().prepareRow=t.useCallback((function(e){e.getRowProps=f(a().getRowProps,{instance:s(),row:e}),e.allCells=W.map((function(t){var n=e.values[t.id],o={column:t,row:e,value:n};return o.getCellProps=f(a().getCellProps,{instance:s(),cell:o}),o.render=R(s(),t,{row:e,cell:o,value:n}),o})),e.cells=L.map((function(t){return e.allCells.find((function(e){return e.column.id===t.id}))})),g(a().prepareRow,e,{instance:s()});}),[a,s,W,L]),s().getTableProps=f(a().getTableProps,{instance:s()}),s().getTableBodyProps=f(a().getTableBodyProps,{instance:s()}),g(a().useFinalInstance,s()),s()},Object.defineProperty(e,"__esModule",{value:!0});}));
1068
-
1069
- }(reactTable_production_min, reactTable_production_min.exports));
1070
-
1071
- var reactTable_development = {exports: {}};
1072
-
1073
- (function (module, exports) {
1074
- (function (global, factory) {
1075
- factory(exports, React__default) ;
1076
- }(commonjsGlobal, (function (exports, React) {
1077
- React = React && Object.prototype.hasOwnProperty.call(React, 'default') ? React['default'] : React;
1078
-
1079
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
1080
- try {
1081
- var info = gen[key](arg);
1082
- var value = info.value;
1083
- } catch (error) {
1084
- reject(error);
1085
- return;
1086
- }
1087
-
1088
- if (info.done) {
1089
- resolve(value);
1090
- } else {
1091
- Promise.resolve(value).then(_next, _throw);
1092
- }
1093
- }
1094
-
1095
- function _asyncToGenerator(fn) {
1096
- return function () {
1097
- var self = this,
1098
- args = arguments;
1099
- return new Promise(function (resolve, reject) {
1100
- var gen = fn.apply(self, args);
1101
-
1102
- function _next(value) {
1103
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
1104
- }
1105
-
1106
- function _throw(err) {
1107
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
1108
- }
1109
-
1110
- _next(undefined);
1111
- });
1112
- };
1113
- }
1114
-
1115
- function _extends() {
1116
- _extends = Object.assign || function (target) {
1117
- for (var i = 1; i < arguments.length; i++) {
1118
- var source = arguments[i];
1119
-
1120
- for (var key in source) {
1121
- if (Object.prototype.hasOwnProperty.call(source, key)) {
1122
- target[key] = source[key];
1123
- }
1124
- }
1125
- }
1126
-
1127
- return target;
1128
- };
1129
-
1130
- return _extends.apply(this, arguments);
1131
- }
1132
-
1133
- function _objectWithoutPropertiesLoose(source, excluded) {
1134
- if (source == null) return {};
1135
- var target = {};
1136
- var sourceKeys = Object.keys(source);
1137
- var key, i;
1138
-
1139
- for (i = 0; i < sourceKeys.length; i++) {
1140
- key = sourceKeys[i];
1141
- if (excluded.indexOf(key) >= 0) continue;
1142
- target[key] = source[key];
1143
- }
1144
-
1145
- return target;
1146
- }
1147
-
1148
- function _toPrimitive(input, hint) {
1149
- if (typeof input !== "object" || input === null) return input;
1150
- var prim = input[Symbol.toPrimitive];
1151
-
1152
- if (prim !== undefined) {
1153
- var res = prim.call(input, hint || "default");
1154
- if (typeof res !== "object") return res;
1155
- throw new TypeError("@@toPrimitive must return a primitive value.");
1156
- }
1157
-
1158
- return (hint === "string" ? String : Number)(input);
1159
- }
1160
-
1161
- function _toPropertyKey(arg) {
1162
- var key = _toPrimitive(arg, "string");
1163
-
1164
- return typeof key === "symbol" ? key : String(key);
1165
- }
1166
-
1167
- var renderErr = 'Renderer Error ☝️';
1168
- var actions = {
1169
- init: 'init'
1170
- };
1171
- var defaultRenderer = function defaultRenderer(_ref) {
1172
- var _ref$value = _ref.value,
1173
- value = _ref$value === void 0 ? '' : _ref$value;
1174
- return value;
1175
- };
1176
- var emptyRenderer = function emptyRenderer() {
1177
- return React.createElement(React.Fragment, null, "\xA0");
1178
- };
1179
- var defaultColumn = {
1180
- Cell: defaultRenderer,
1181
- width: 150,
1182
- minWidth: 0,
1183
- maxWidth: Number.MAX_SAFE_INTEGER
1184
- };
1185
-
1186
- function mergeProps() {
1187
- for (var _len = arguments.length, propList = new Array(_len), _key = 0; _key < _len; _key++) {
1188
- propList[_key] = arguments[_key];
1189
- }
1190
-
1191
- return propList.reduce(function (props, next) {
1192
- var style = next.style,
1193
- className = next.className,
1194
- rest = _objectWithoutPropertiesLoose(next, ["style", "className"]);
1195
-
1196
- props = _extends({}, props, {}, rest);
1197
-
1198
- if (style) {
1199
- props.style = props.style ? _extends({}, props.style || {}, {}, style || {}) : style;
1200
- }
1201
-
1202
- if (className) {
1203
- props.className = props.className ? props.className + ' ' + className : className;
1204
- }
1205
-
1206
- if (props.className === '') {
1207
- delete props.className;
1208
- }
1209
-
1210
- return props;
1211
- }, {});
1212
- }
1213
-
1214
- function handlePropGetter(prevProps, userProps, meta) {
1215
- // Handle a lambda, pass it the previous props
1216
- if (typeof userProps === 'function') {
1217
- return handlePropGetter({}, userProps(prevProps, meta));
1218
- } // Handle an array, merge each item as separate props
1219
-
1220
-
1221
- if (Array.isArray(userProps)) {
1222
- return mergeProps.apply(void 0, [prevProps].concat(userProps));
1223
- } // Handle an object by default, merge the two objects
1224
-
1225
-
1226
- return mergeProps(prevProps, userProps);
1227
- }
1228
-
1229
- var makePropGetter = function makePropGetter(hooks, meta) {
1230
- if (meta === void 0) {
1231
- meta = {};
1232
- }
1233
-
1234
- return function (userProps) {
1235
- if (userProps === void 0) {
1236
- userProps = {};
1237
- }
1238
-
1239
- return [].concat(hooks, [userProps]).reduce(function (prev, next) {
1240
- return handlePropGetter(prev, next, _extends({}, meta, {
1241
- userProps: userProps
1242
- }));
1243
- }, {});
1244
- };
1245
- };
1246
- var reduceHooks = function reduceHooks(hooks, initial, meta, allowUndefined) {
1247
- if (meta === void 0) {
1248
- meta = {};
1249
- }
1250
-
1251
- return hooks.reduce(function (prev, next) {
1252
- var nextValue = next(prev, meta);
1253
-
1254
- {
1255
- if (!allowUndefined && typeof nextValue === 'undefined') {
1256
- console.info(next);
1257
- throw new Error('React Table: A reducer hook ☝️ just returned undefined! This is not allowed.');
1258
- }
1259
- }
1260
-
1261
- return nextValue;
1262
- }, initial);
1263
- };
1264
- var loopHooks = function loopHooks(hooks, context, meta) {
1265
- if (meta === void 0) {
1266
- meta = {};
1267
- }
1268
-
1269
- return hooks.forEach(function (hook) {
1270
- var nextValue = hook(context, meta);
1271
-
1272
- {
1273
- if (typeof nextValue !== 'undefined') {
1274
- console.info(hook, nextValue);
1275
- throw new Error('React Table: A loop-type hook ☝️ just returned a value! This is not allowed.');
1276
- }
1277
- }
1278
- });
1279
- };
1280
- function ensurePluginOrder(plugins, befores, pluginName, afters) {
1281
- if ( afters) {
1282
- throw new Error("Defining plugins in the \"after\" section of ensurePluginOrder is no longer supported (see plugin " + pluginName + ")");
1283
- }
1284
-
1285
- var pluginIndex = plugins.findIndex(function (plugin) {
1286
- return plugin.pluginName === pluginName;
1287
- });
1288
-
1289
- if (pluginIndex === -1) {
1290
- {
1291
- throw new Error("The plugin \"" + pluginName + "\" was not found in the plugin list!\nThis usually means you need to need to name your plugin hook by setting the 'pluginName' property of the hook function, eg:\n\n " + pluginName + ".pluginName = '" + pluginName + "'\n");
1292
- }
1293
- }
1294
-
1295
- befores.forEach(function (before) {
1296
- var beforeIndex = plugins.findIndex(function (plugin) {
1297
- return plugin.pluginName === before;
1298
- });
1299
-
1300
- if (beforeIndex > -1 && beforeIndex > pluginIndex) {
1301
- {
1302
- throw new Error("React Table: The " + pluginName + " plugin hook must be placed after the " + before + " plugin hook!");
1303
- }
1304
- }
1305
- });
1306
- }
1307
- function functionalUpdate(updater, old) {
1308
- return typeof updater === 'function' ? updater(old) : updater;
1309
- }
1310
- function useGetLatest(obj) {
1311
- var ref = React.useRef();
1312
- ref.current = obj;
1313
- return React.useCallback(function () {
1314
- return ref.current;
1315
- }, []);
1316
- } // SSR has issues with useLayoutEffect still, so use useEffect during SSR
1317
-
1318
- var safeUseLayoutEffect = typeof document !== 'undefined' ? React.useLayoutEffect : React.useEffect;
1319
- function useMountedLayoutEffect(fn, deps) {
1320
- var mountedRef = React.useRef(false);
1321
- safeUseLayoutEffect(function () {
1322
- if (mountedRef.current) {
1323
- fn();
1324
- }
1325
-
1326
- mountedRef.current = true; // eslint-disable-next-line
1327
- }, deps);
1328
- }
1329
- function useAsyncDebounce(defaultFn, defaultWait) {
1330
- if (defaultWait === void 0) {
1331
- defaultWait = 0;
1332
- }
1333
-
1334
- var debounceRef = React.useRef({});
1335
- var getDefaultFn = useGetLatest(defaultFn);
1336
- var getDefaultWait = useGetLatest(defaultWait);
1337
- return React.useCallback(
1338
- /*#__PURE__*/
1339
- function () {
1340
- var _ref2 = _asyncToGenerator(
1341
- /*#__PURE__*/
1342
- regeneratorRuntime.mark(function _callee2() {
1343
- var _len2,
1344
- args,
1345
- _key2,
1346
- _args2 = arguments;
1347
-
1348
- return regeneratorRuntime.wrap(function _callee2$(_context2) {
1349
- while (1) {
1350
- switch (_context2.prev = _context2.next) {
1351
- case 0:
1352
- for (_len2 = _args2.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
1353
- args[_key2] = _args2[_key2];
1354
- }
1355
-
1356
- if (!debounceRef.current.promise) {
1357
- debounceRef.current.promise = new Promise(function (resolve, reject) {
1358
- debounceRef.current.resolve = resolve;
1359
- debounceRef.current.reject = reject;
1360
- });
1361
- }
1362
-
1363
- if (debounceRef.current.timeout) {
1364
- clearTimeout(debounceRef.current.timeout);
1365
- }
1366
-
1367
- debounceRef.current.timeout = setTimeout(
1368
- /*#__PURE__*/
1369
- _asyncToGenerator(
1370
- /*#__PURE__*/
1371
- regeneratorRuntime.mark(function _callee() {
1372
- return regeneratorRuntime.wrap(function _callee$(_context) {
1373
- while (1) {
1374
- switch (_context.prev = _context.next) {
1375
- case 0:
1376
- delete debounceRef.current.timeout;
1377
- _context.prev = 1;
1378
- _context.t0 = debounceRef.current;
1379
- _context.next = 5;
1380
- return getDefaultFn().apply(void 0, args);
1381
-
1382
- case 5:
1383
- _context.t1 = _context.sent;
1384
-
1385
- _context.t0.resolve.call(_context.t0, _context.t1);
1386
-
1387
- _context.next = 12;
1388
- break;
1389
-
1390
- case 9:
1391
- _context.prev = 9;
1392
- _context.t2 = _context["catch"](1);
1393
- debounceRef.current.reject(_context.t2);
1394
-
1395
- case 12:
1396
- _context.prev = 12;
1397
- delete debounceRef.current.promise;
1398
- return _context.finish(12);
1399
-
1400
- case 15:
1401
- case "end":
1402
- return _context.stop();
1403
- }
1404
- }
1405
- }, _callee, null, [[1, 9, 12, 15]]);
1406
- })), getDefaultWait());
1407
- return _context2.abrupt("return", debounceRef.current.promise);
1408
-
1409
- case 5:
1410
- case "end":
1411
- return _context2.stop();
1412
- }
1413
- }
1414
- }, _callee2);
1415
- }));
1416
-
1417
- return function () {
1418
- return _ref2.apply(this, arguments);
1419
- };
1420
- }(), [getDefaultFn, getDefaultWait]);
1421
- }
1422
- function makeRenderer(instance, column, meta) {
1423
- if (meta === void 0) {
1424
- meta = {};
1425
- }
1426
-
1427
- return function (type, userProps) {
1428
- if (userProps === void 0) {
1429
- userProps = {};
1430
- }
1431
-
1432
- var Comp = typeof type === 'string' ? column[type] : type;
1433
-
1434
- if (typeof Comp === 'undefined') {
1435
- console.info(column);
1436
- throw new Error(renderErr);
1437
- }
1438
-
1439
- return flexRender(Comp, _extends({}, instance, {
1440
- column: column
1441
- }, meta, {}, userProps));
1442
- };
1443
- }
1444
- function flexRender(Comp, props) {
1445
- return isReactComponent(Comp) ? React.createElement(Comp, props) : Comp;
1446
- }
1447
-
1448
- function isReactComponent(component) {
1449
- return isClassComponent(component) || typeof component === 'function' || isExoticComponent(component);
1450
- }
1451
-
1452
- function isClassComponent(component) {
1453
- return typeof component === 'function' && function () {
1454
- var proto = Object.getPrototypeOf(component);
1455
- return proto.prototype && proto.prototype.isReactComponent;
1456
- }();
1457
- }
1458
-
1459
- function isExoticComponent(component) {
1460
- return typeof component === 'object' && typeof component.$$typeof === 'symbol' && ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description);
1461
- }
1462
-
1463
- function linkColumnStructure(columns, parent, depth) {
1464
- if (depth === void 0) {
1465
- depth = 0;
1466
- }
1467
-
1468
- return columns.map(function (column) {
1469
- column = _extends({}, column, {
1470
- parent: parent,
1471
- depth: depth
1472
- });
1473
- assignColumnAccessor(column);
1474
-
1475
- if (column.columns) {
1476
- column.columns = linkColumnStructure(column.columns, column, depth + 1);
1477
- }
1478
-
1479
- return column;
1480
- });
1481
- }
1482
- function flattenColumns(columns) {
1483
- return flattenBy(columns, 'columns');
1484
- }
1485
- function assignColumnAccessor(column) {
1486
- // First check for string accessor
1487
- var id = column.id,
1488
- accessor = column.accessor,
1489
- Header = column.Header;
1490
-
1491
- if (typeof accessor === 'string') {
1492
- id = id || accessor;
1493
- var accessorPath = accessor.split('.');
1494
-
1495
- accessor = function accessor(row) {
1496
- return getBy(row, accessorPath);
1497
- };
1498
- }
1499
-
1500
- if (!id && typeof Header === 'string' && Header) {
1501
- id = Header;
1502
- }
1503
-
1504
- if (!id && column.columns) {
1505
- console.error(column);
1506
- throw new Error('A column ID (or unique "Header" value) is required!');
1507
- }
1508
-
1509
- if (!id) {
1510
- console.error(column);
1511
- throw new Error('A column ID (or string accessor) is required!');
1512
- }
1513
-
1514
- Object.assign(column, {
1515
- id: id,
1516
- accessor: accessor
1517
- });
1518
- return column;
1519
- }
1520
- function decorateColumn(column, userDefaultColumn) {
1521
- if (!userDefaultColumn) {
1522
- throw new Error();
1523
- }
1524
-
1525
- Object.assign(column, _extends({
1526
- // Make sure there is a fallback header, just in case
1527
- Header: emptyRenderer,
1528
- Footer: emptyRenderer
1529
- }, defaultColumn, {}, userDefaultColumn, {}, column));
1530
- Object.assign(column, {
1531
- originalWidth: column.width
1532
- });
1533
- return column;
1534
- } // Build the header groups from the bottom up
1535
-
1536
- function makeHeaderGroups(allColumns, defaultColumn, additionalHeaderProperties) {
1537
- if (additionalHeaderProperties === void 0) {
1538
- additionalHeaderProperties = function additionalHeaderProperties() {
1539
- return {};
1540
- };
1541
- }
1542
-
1543
- var headerGroups = [];
1544
- var scanColumns = allColumns;
1545
- var uid = 0;
1546
-
1547
- var getUID = function getUID() {
1548
- return uid++;
1549
- };
1550
-
1551
- var _loop = function _loop() {
1552
- // The header group we are creating
1553
- var headerGroup = {
1554
- headers: []
1555
- }; // The parent columns we're going to scan next
1556
-
1557
- var parentColumns = [];
1558
- var hasParents = scanColumns.some(function (d) {
1559
- return d.parent;
1560
- }); // Scan each column for parents
1561
-
1562
- scanColumns.forEach(function (column) {
1563
- // What is the latest (last) parent column?
1564
- var latestParentColumn = [].concat(parentColumns).reverse()[0];
1565
- var newParent;
1566
-
1567
- if (hasParents) {
1568
- // If the column has a parent, add it if necessary
1569
- if (column.parent) {
1570
- newParent = _extends({}, column.parent, {
1571
- originalId: column.parent.id,
1572
- id: column.parent.id + "_" + getUID(),
1573
- headers: [column]
1574
- }, additionalHeaderProperties(column));
1575
- } else {
1576
- // If other columns have parents, we'll need to add a place holder if necessary
1577
- var originalId = column.id + "_placeholder";
1578
- newParent = decorateColumn(_extends({
1579
- originalId: originalId,
1580
- id: column.id + "_placeholder_" + getUID(),
1581
- placeholderOf: column,
1582
- headers: [column]
1583
- }, additionalHeaderProperties(column)), defaultColumn);
1584
- } // If the resulting parent columns are the same, just add
1585
- // the column and increment the header span
1586
-
1587
-
1588
- if (latestParentColumn && latestParentColumn.originalId === newParent.originalId) {
1589
- latestParentColumn.headers.push(column);
1590
- } else {
1591
- parentColumns.push(newParent);
1592
- }
1593
- }
1594
-
1595
- headerGroup.headers.push(column);
1596
- });
1597
- headerGroups.push(headerGroup); // Start scanning the parent columns
1598
-
1599
- scanColumns = parentColumns;
1600
- };
1601
-
1602
- while (scanColumns.length) {
1603
- _loop();
1604
- }
1605
-
1606
- return headerGroups.reverse();
1607
- }
1608
- var pathObjCache = new Map();
1609
- function getBy(obj, path, def) {
1610
- if (!path) {
1611
- return obj;
1612
- }
1613
-
1614
- var cacheKey = typeof path === 'function' ? path : JSON.stringify(path);
1615
-
1616
- var pathObj = pathObjCache.get(cacheKey) || function () {
1617
- var pathObj = makePathArray(path);
1618
- pathObjCache.set(cacheKey, pathObj);
1619
- return pathObj;
1620
- }();
1621
-
1622
- var val;
1623
-
1624
- try {
1625
- val = pathObj.reduce(function (cursor, pathPart) {
1626
- return cursor[pathPart];
1627
- }, obj);
1628
- } catch (e) {// continue regardless of error
1629
- }
1630
-
1631
- return typeof val !== 'undefined' ? val : def;
1632
- }
1633
- function getFirstDefined() {
1634
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1635
- args[_key] = arguments[_key];
1636
- }
1637
-
1638
- for (var i = 0; i < args.length; i += 1) {
1639
- if (typeof args[i] !== 'undefined') {
1640
- return args[i];
1641
- }
1642
- }
1643
- }
1644
- function isFunction(a) {
1645
- if (typeof a === 'function') {
1646
- return a;
1647
- }
1648
- }
1649
- function flattenBy(arr, key) {
1650
- var flat = [];
1651
-
1652
- var recurse = function recurse(arr) {
1653
- arr.forEach(function (d) {
1654
- if (!d[key]) {
1655
- flat.push(d);
1656
- } else {
1657
- recurse(d[key]);
1658
- }
1659
- });
1660
- };
1661
-
1662
- recurse(arr);
1663
- return flat;
1664
- }
1665
- function expandRows(rows, _ref) {
1666
- var manualExpandedKey = _ref.manualExpandedKey,
1667
- expanded = _ref.expanded,
1668
- _ref$expandSubRows = _ref.expandSubRows,
1669
- expandSubRows = _ref$expandSubRows === void 0 ? true : _ref$expandSubRows;
1670
- var expandedRows = [];
1671
-
1672
- var handleRow = function handleRow(row, addToExpandedRows) {
1673
- if (addToExpandedRows === void 0) {
1674
- addToExpandedRows = true;
1675
- }
1676
-
1677
- row.isExpanded = row.original && row.original[manualExpandedKey] || expanded[row.id];
1678
- row.canExpand = row.subRows && !!row.subRows.length;
1679
-
1680
- if (addToExpandedRows) {
1681
- expandedRows.push(row);
1682
- }
1683
-
1684
- if (row.subRows && row.subRows.length && row.isExpanded) {
1685
- row.subRows.forEach(function (row) {
1686
- return handleRow(row, expandSubRows);
1687
- });
1688
- }
1689
- };
1690
-
1691
- rows.forEach(function (row) {
1692
- return handleRow(row);
1693
- });
1694
- return expandedRows;
1695
- }
1696
- function getFilterMethod(filter, userFilterTypes, filterTypes) {
1697
- return isFunction(filter) || userFilterTypes[filter] || filterTypes[filter] || filterTypes.text;
1698
- }
1699
- function shouldAutoRemoveFilter(autoRemove, value, column) {
1700
- return autoRemove ? autoRemove(value, column) : typeof value === 'undefined';
1701
- }
1702
- function unpreparedAccessWarning() {
1703
- throw new Error('React-Table: You have not called prepareRow(row) one or more rows you are attempting to render.');
1704
- }
1705
- var passiveSupported = null;
1706
- function passiveEventSupported() {
1707
- // memoize support to avoid adding multiple test events
1708
- if (typeof passiveSupported === 'boolean') return passiveSupported;
1709
- var supported = false;
1710
-
1711
- try {
1712
- var options = {
1713
- get passive() {
1714
- supported = true;
1715
- return false;
1716
- }
1717
-
1718
- };
1719
- window.addEventListener('test', null, options);
1720
- window.removeEventListener('test', null, options);
1721
- } catch (err) {
1722
- supported = false;
1723
- }
1724
-
1725
- passiveSupported = supported;
1726
- return passiveSupported;
1727
- } //
1728
-
1729
- var reOpenBracket = /\[/g;
1730
- var reCloseBracket = /\]/g;
1731
-
1732
- function makePathArray(obj) {
1733
- return flattenDeep(obj) // remove all periods in parts
1734
- .map(function (d) {
1735
- return String(d).replace('.', '_');
1736
- }) // join parts using period
1737
- .join('.') // replace brackets with periods
1738
- .replace(reOpenBracket, '.').replace(reCloseBracket, '') // split it back out on periods
1739
- .split('.');
1740
- }
1741
-
1742
- function flattenDeep(arr, newArr) {
1743
- if (newArr === void 0) {
1744
- newArr = [];
1745
- }
1746
-
1747
- if (!Array.isArray(arr)) {
1748
- newArr.push(arr);
1749
- } else {
1750
- for (var i = 0; i < arr.length; i += 1) {
1751
- flattenDeep(arr[i], newArr);
1752
- }
1753
- }
1754
-
1755
- return newArr;
1756
- }
1757
-
1758
- var defaultGetTableProps = function defaultGetTableProps(props) {
1759
- return _extends({
1760
- role: 'table'
1761
- }, props);
1762
- };
1763
-
1764
- var defaultGetTableBodyProps = function defaultGetTableBodyProps(props) {
1765
- return _extends({
1766
- role: 'rowgroup'
1767
- }, props);
1768
- };
1769
-
1770
- var defaultGetHeaderProps = function defaultGetHeaderProps(props, _ref) {
1771
- var column = _ref.column;
1772
- return _extends({
1773
- key: "header_" + column.id,
1774
- colSpan: column.totalVisibleHeaderCount,
1775
- role: 'columnheader'
1776
- }, props);
1777
- };
1778
-
1779
- var defaultGetFooterProps = function defaultGetFooterProps(props, _ref2) {
1780
- var column = _ref2.column;
1781
- return _extends({
1782
- key: "footer_" + column.id,
1783
- colSpan: column.totalVisibleHeaderCount
1784
- }, props);
1785
- };
1786
-
1787
- var defaultGetHeaderGroupProps = function defaultGetHeaderGroupProps(props, _ref3) {
1788
- var index = _ref3.index;
1789
- return _extends({
1790
- key: "headerGroup_" + index,
1791
- role: 'row'
1792
- }, props);
1793
- };
1794
-
1795
- var defaultGetFooterGroupProps = function defaultGetFooterGroupProps(props, _ref4) {
1796
- var index = _ref4.index;
1797
- return _extends({
1798
- key: "footerGroup_" + index
1799
- }, props);
1800
- };
1801
-
1802
- var defaultGetRowProps = function defaultGetRowProps(props, _ref5) {
1803
- var row = _ref5.row;
1804
- return _extends({
1805
- key: "row_" + row.id,
1806
- role: 'row'
1807
- }, props);
1808
- };
1809
-
1810
- var defaultGetCellProps = function defaultGetCellProps(props, _ref6) {
1811
- var cell = _ref6.cell;
1812
- return _extends({
1813
- key: "cell_" + cell.row.id + "_" + cell.column.id,
1814
- role: 'cell'
1815
- }, props);
1816
- };
1817
-
1818
- function makeDefaultPluginHooks() {
1819
- return {
1820
- useOptions: [],
1821
- stateReducers: [],
1822
- useControlledState: [],
1823
- columns: [],
1824
- columnsDeps: [],
1825
- allColumns: [],
1826
- allColumnsDeps: [],
1827
- accessValue: [],
1828
- materializedColumns: [],
1829
- materializedColumnsDeps: [],
1830
- useInstanceAfterData: [],
1831
- visibleColumns: [],
1832
- visibleColumnsDeps: [],
1833
- headerGroups: [],
1834
- headerGroupsDeps: [],
1835
- useInstanceBeforeDimensions: [],
1836
- useInstance: [],
1837
- prepareRow: [],
1838
- getTableProps: [defaultGetTableProps],
1839
- getTableBodyProps: [defaultGetTableBodyProps],
1840
- getHeaderGroupProps: [defaultGetHeaderGroupProps],
1841
- getFooterGroupProps: [defaultGetFooterGroupProps],
1842
- getHeaderProps: [defaultGetHeaderProps],
1843
- getFooterProps: [defaultGetFooterProps],
1844
- getRowProps: [defaultGetRowProps],
1845
- getCellProps: [defaultGetCellProps],
1846
- useFinalInstance: []
1847
- };
1848
- }
1849
-
1850
- actions.resetHiddenColumns = 'resetHiddenColumns';
1851
- actions.toggleHideColumn = 'toggleHideColumn';
1852
- actions.setHiddenColumns = 'setHiddenColumns';
1853
- actions.toggleHideAllColumns = 'toggleHideAllColumns';
1854
- var useColumnVisibility = function useColumnVisibility(hooks) {
1855
- hooks.getToggleHiddenProps = [defaultGetToggleHiddenProps];
1856
- hooks.getToggleHideAllColumnsProps = [defaultGetToggleHideAllColumnsProps];
1857
- hooks.stateReducers.push(reducer);
1858
- hooks.useInstanceBeforeDimensions.push(useInstanceBeforeDimensions);
1859
- hooks.headerGroupsDeps.push(function (deps, _ref) {
1860
- var instance = _ref.instance;
1861
- return [].concat(deps, [instance.state.hiddenColumns]);
1862
- });
1863
- hooks.useInstance.push(useInstance);
1864
- };
1865
- useColumnVisibility.pluginName = 'useColumnVisibility';
1866
-
1867
- var defaultGetToggleHiddenProps = function defaultGetToggleHiddenProps(props, _ref2) {
1868
- var column = _ref2.column;
1869
- return [props, {
1870
- onChange: function onChange(e) {
1871
- column.toggleHidden(!e.target.checked);
1872
- },
1873
- style: {
1874
- cursor: 'pointer'
1875
- },
1876
- checked: column.isVisible,
1877
- title: 'Toggle Column Visible'
1878
- }];
1879
- };
1880
-
1881
- var defaultGetToggleHideAllColumnsProps = function defaultGetToggleHideAllColumnsProps(props, _ref3) {
1882
- var instance = _ref3.instance;
1883
- return [props, {
1884
- onChange: function onChange(e) {
1885
- instance.toggleHideAllColumns(!e.target.checked);
1886
- },
1887
- style: {
1888
- cursor: 'pointer'
1889
- },
1890
- checked: !instance.allColumnsHidden && !instance.state.hiddenColumns.length,
1891
- title: 'Toggle All Columns Hidden',
1892
- indeterminate: !instance.allColumnsHidden && instance.state.hiddenColumns.length
1893
- }];
1894
- };
1895
-
1896
- function reducer(state, action, previousState, instance) {
1897
- if (action.type === actions.init) {
1898
- return _extends({
1899
- hiddenColumns: []
1900
- }, state);
1901
- }
1902
-
1903
- if (action.type === actions.resetHiddenColumns) {
1904
- return _extends({}, state, {
1905
- hiddenColumns: instance.initialState.hiddenColumns || []
1906
- });
1907
- }
1908
-
1909
- if (action.type === actions.toggleHideColumn) {
1910
- var should = typeof action.value !== 'undefined' ? action.value : !state.hiddenColumns.includes(action.columnId);
1911
- var hiddenColumns = should ? [].concat(state.hiddenColumns, [action.columnId]) : state.hiddenColumns.filter(function (d) {
1912
- return d !== action.columnId;
1913
- });
1914
- return _extends({}, state, {
1915
- hiddenColumns: hiddenColumns
1916
- });
1917
- }
1918
-
1919
- if (action.type === actions.setHiddenColumns) {
1920
- return _extends({}, state, {
1921
- hiddenColumns: functionalUpdate(action.value, state.hiddenColumns)
1922
- });
1923
- }
1924
-
1925
- if (action.type === actions.toggleHideAllColumns) {
1926
- var shouldAll = typeof action.value !== 'undefined' ? action.value : !state.hiddenColumns.length;
1927
- return _extends({}, state, {
1928
- hiddenColumns: shouldAll ? instance.allColumns.map(function (d) {
1929
- return d.id;
1930
- }) : []
1931
- });
1932
- }
1933
- }
1934
-
1935
- function useInstanceBeforeDimensions(instance) {
1936
- var headers = instance.headers,
1937
- hiddenColumns = instance.state.hiddenColumns;
1938
- var isMountedRef = React.useRef(false);
1939
-
1940
- if (!isMountedRef.current) ;
1941
-
1942
- var handleColumn = function handleColumn(column, parentVisible) {
1943
- column.isVisible = parentVisible && !hiddenColumns.includes(column.id);
1944
- var totalVisibleHeaderCount = 0;
1945
-
1946
- if (column.headers && column.headers.length) {
1947
- column.headers.forEach(function (subColumn) {
1948
- return totalVisibleHeaderCount += handleColumn(subColumn, column.isVisible);
1949
- });
1950
- } else {
1951
- totalVisibleHeaderCount = column.isVisible ? 1 : 0;
1952
- }
1953
-
1954
- column.totalVisibleHeaderCount = totalVisibleHeaderCount;
1955
- return totalVisibleHeaderCount;
1956
- };
1957
-
1958
- var totalVisibleHeaderCount = 0;
1959
- headers.forEach(function (subHeader) {
1960
- return totalVisibleHeaderCount += handleColumn(subHeader, true);
1961
- });
1962
- }
1963
-
1964
- function useInstance(instance) {
1965
- var columns = instance.columns,
1966
- flatHeaders = instance.flatHeaders,
1967
- dispatch = instance.dispatch,
1968
- allColumns = instance.allColumns,
1969
- getHooks = instance.getHooks,
1970
- hiddenColumns = instance.state.hiddenColumns,
1971
- _instance$autoResetHi = instance.autoResetHiddenColumns,
1972
- autoResetHiddenColumns = _instance$autoResetHi === void 0 ? true : _instance$autoResetHi;
1973
- var getInstance = useGetLatest(instance);
1974
- var allColumnsHidden = allColumns.length === hiddenColumns.length;
1975
- var toggleHideColumn = React.useCallback(function (columnId, value) {
1976
- return dispatch({
1977
- type: actions.toggleHideColumn,
1978
- columnId: columnId,
1979
- value: value
1980
- });
1981
- }, [dispatch]);
1982
- var setHiddenColumns = React.useCallback(function (value) {
1983
- return dispatch({
1984
- type: actions.setHiddenColumns,
1985
- value: value
1986
- });
1987
- }, [dispatch]);
1988
- var toggleHideAllColumns = React.useCallback(function (value) {
1989
- return dispatch({
1990
- type: actions.toggleHideAllColumns,
1991
- value: value
1992
- });
1993
- }, [dispatch]);
1994
- var getToggleHideAllColumnsProps = makePropGetter(getHooks().getToggleHideAllColumnsProps, {
1995
- instance: getInstance()
1996
- });
1997
- flatHeaders.forEach(function (column) {
1998
- column.toggleHidden = function (value) {
1999
- dispatch({
2000
- type: actions.toggleHideColumn,
2001
- columnId: column.id,
2002
- value: value
2003
- });
2004
- };
2005
-
2006
- column.getToggleHiddenProps = makePropGetter(getHooks().getToggleHiddenProps, {
2007
- instance: getInstance(),
2008
- column: column
2009
- });
2010
- });
2011
- var getAutoResetHiddenColumns = useGetLatest(autoResetHiddenColumns);
2012
- useMountedLayoutEffect(function () {
2013
- if (getAutoResetHiddenColumns()) {
2014
- dispatch({
2015
- type: actions.resetHiddenColumns
2016
- });
2017
- }
2018
- }, [dispatch, columns]);
2019
- Object.assign(instance, {
2020
- allColumnsHidden: allColumnsHidden,
2021
- toggleHideColumn: toggleHideColumn,
2022
- setHiddenColumns: setHiddenColumns,
2023
- toggleHideAllColumns: toggleHideAllColumns,
2024
- getToggleHideAllColumnsProps: getToggleHideAllColumnsProps
2025
- });
2026
- }
2027
-
2028
- var defaultInitialState = {};
2029
- var defaultColumnInstance = {};
2030
-
2031
- var defaultReducer = function defaultReducer(state, action, prevState) {
2032
- return state;
2033
- };
2034
-
2035
- var defaultGetSubRows = function defaultGetSubRows(row, index) {
2036
- return row.subRows || [];
2037
- };
2038
-
2039
- var defaultGetRowId = function defaultGetRowId(row, index, parent) {
2040
- return "" + (parent ? [parent.id, index].join('.') : index);
2041
- };
2042
-
2043
- var defaultUseControlledState = function defaultUseControlledState(d) {
2044
- return d;
2045
- };
2046
-
2047
- function applyDefaults(props) {
2048
- var _props$initialState = props.initialState,
2049
- initialState = _props$initialState === void 0 ? defaultInitialState : _props$initialState,
2050
- _props$defaultColumn = props.defaultColumn,
2051
- defaultColumn = _props$defaultColumn === void 0 ? defaultColumnInstance : _props$defaultColumn,
2052
- _props$getSubRows = props.getSubRows,
2053
- getSubRows = _props$getSubRows === void 0 ? defaultGetSubRows : _props$getSubRows,
2054
- _props$getRowId = props.getRowId,
2055
- getRowId = _props$getRowId === void 0 ? defaultGetRowId : _props$getRowId,
2056
- _props$stateReducer = props.stateReducer,
2057
- stateReducer = _props$stateReducer === void 0 ? defaultReducer : _props$stateReducer,
2058
- _props$useControlledS = props.useControlledState,
2059
- useControlledState = _props$useControlledS === void 0 ? defaultUseControlledState : _props$useControlledS,
2060
- rest = _objectWithoutPropertiesLoose(props, ["initialState", "defaultColumn", "getSubRows", "getRowId", "stateReducer", "useControlledState"]);
2061
-
2062
- return _extends({}, rest, {
2063
- initialState: initialState,
2064
- defaultColumn: defaultColumn,
2065
- getSubRows: getSubRows,
2066
- getRowId: getRowId,
2067
- stateReducer: stateReducer,
2068
- useControlledState: useControlledState
2069
- });
2070
- }
2071
-
2072
- var useTable = function useTable(props) {
2073
- for (var _len = arguments.length, plugins = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
2074
- plugins[_key - 1] = arguments[_key];
2075
- }
2076
-
2077
- // Apply default props
2078
- props = applyDefaults(props); // Add core plugins
2079
-
2080
- plugins = [useColumnVisibility].concat(plugins); // Create the table instance
2081
-
2082
- var instanceRef = React.useRef({}); // Create a getter for the instance (helps avoid a lot of potential memory leaks)
2083
-
2084
- var getInstance = useGetLatest(instanceRef.current); // Assign the props, plugins and hooks to the instance
2085
-
2086
- Object.assign(getInstance(), _extends({}, props, {
2087
- plugins: plugins,
2088
- hooks: makeDefaultPluginHooks()
2089
- })); // Allow plugins to register hooks as early as possible
2090
-
2091
- plugins.filter(Boolean).forEach(function (plugin) {
2092
- plugin(getInstance().hooks);
2093
- }); // Consume all hooks and make a getter for them
2094
-
2095
- var getHooks = useGetLatest(getInstance().hooks);
2096
- getInstance().getHooks = getHooks;
2097
- delete getInstance().hooks; // Allow useOptions hooks to modify the options coming into the table
2098
-
2099
- Object.assign(getInstance(), reduceHooks(getHooks().useOptions, applyDefaults(props)));
2100
-
2101
- var _getInstance = getInstance(),
2102
- data = _getInstance.data,
2103
- userColumns = _getInstance.columns,
2104
- initialState = _getInstance.initialState,
2105
- defaultColumn = _getInstance.defaultColumn,
2106
- getSubRows = _getInstance.getSubRows,
2107
- getRowId = _getInstance.getRowId,
2108
- stateReducer = _getInstance.stateReducer,
2109
- useControlledState = _getInstance.useControlledState; // Setup user reducer ref
2110
-
2111
-
2112
- var getStateReducer = useGetLatest(stateReducer); // Build the reducer
2113
-
2114
- var reducer = React.useCallback(function (state, action) {
2115
- // Detect invalid actions
2116
- if (!action.type) {
2117
- console.info({
2118
- action: action
2119
- });
2120
- throw new Error('Unknown Action 👆');
2121
- } // Reduce the state from all plugin reducers
2122
-
2123
-
2124
- return [].concat(getHooks().stateReducers, Array.isArray(getStateReducer()) ? getStateReducer() : [getStateReducer()]).reduce(function (s, handler) {
2125
- return handler(s, action, state, getInstance()) || s;
2126
- }, state);
2127
- }, [getHooks, getStateReducer, getInstance]); // Start the reducer
2128
-
2129
- var _React$useReducer = React.useReducer(reducer, undefined, function () {
2130
- return reducer(initialState, {
2131
- type: actions.init
2132
- });
2133
- }),
2134
- reducerState = _React$useReducer[0],
2135
- dispatch = _React$useReducer[1]; // Allow the user to control the final state with hooks
2136
-
2137
-
2138
- var state = reduceHooks([].concat(getHooks().useControlledState, [useControlledState]), reducerState, {
2139
- instance: getInstance()
2140
- });
2141
- Object.assign(getInstance(), {
2142
- state: state,
2143
- dispatch: dispatch
2144
- }); // Decorate All the columns
2145
-
2146
- var columns = React.useMemo(function () {
2147
- return linkColumnStructure(reduceHooks(getHooks().columns, userColumns, {
2148
- instance: getInstance()
2149
- }));
2150
- }, [getHooks, getInstance, userColumns].concat(reduceHooks(getHooks().columnsDeps, [], {
2151
- instance: getInstance()
2152
- })));
2153
- getInstance().columns = columns; // Get the flat list of all columns and allow hooks to decorate
2154
- // those columns (and trigger this memoization via deps)
2155
-
2156
- var allColumns = React.useMemo(function () {
2157
- return reduceHooks(getHooks().allColumns, flattenColumns(columns), {
2158
- instance: getInstance()
2159
- }).map(assignColumnAccessor);
2160
- }, [columns, getHooks, getInstance].concat(reduceHooks(getHooks().allColumnsDeps, [], {
2161
- instance: getInstance()
2162
- })));
2163
- getInstance().allColumns = allColumns; // Access the row model using initial columns
2164
-
2165
- var _React$useMemo = React.useMemo(function () {
2166
- var rows = [];
2167
- var flatRows = [];
2168
- var rowsById = {};
2169
- var allColumnsQueue = [].concat(allColumns);
2170
-
2171
- while (allColumnsQueue.length) {
2172
- var column = allColumnsQueue.shift();
2173
- accessRowsForColumn({
2174
- data: data,
2175
- rows: rows,
2176
- flatRows: flatRows,
2177
- rowsById: rowsById,
2178
- column: column,
2179
- getRowId: getRowId,
2180
- getSubRows: getSubRows,
2181
- accessValueHooks: getHooks().accessValue,
2182
- getInstance: getInstance
2183
- });
2184
- }
2185
-
2186
- return [rows, flatRows, rowsById];
2187
- }, [allColumns, data, getRowId, getSubRows, getHooks, getInstance]),
2188
- rows = _React$useMemo[0],
2189
- flatRows = _React$useMemo[1],
2190
- rowsById = _React$useMemo[2];
2191
-
2192
- Object.assign(getInstance(), {
2193
- rows: rows,
2194
- initialRows: [].concat(rows),
2195
- flatRows: flatRows,
2196
- rowsById: rowsById // materializedColumns,
2197
-
2198
- });
2199
- loopHooks(getHooks().useInstanceAfterData, getInstance()); // Get the flat list of all columns AFTER the rows
2200
- // have been access, and allow hooks to decorate
2201
- // those columns (and trigger this memoization via deps)
2202
-
2203
- var visibleColumns = React.useMemo(function () {
2204
- return reduceHooks(getHooks().visibleColumns, allColumns, {
2205
- instance: getInstance()
2206
- }).map(function (d) {
2207
- return decorateColumn(d, defaultColumn);
2208
- });
2209
- }, [getHooks, allColumns, getInstance, defaultColumn].concat(reduceHooks(getHooks().visibleColumnsDeps, [], {
2210
- instance: getInstance()
2211
- }))); // Combine new visible columns with all columns
2212
-
2213
- allColumns = React.useMemo(function () {
2214
- var columns = [].concat(visibleColumns);
2215
- allColumns.forEach(function (column) {
2216
- if (!columns.find(function (d) {
2217
- return d.id === column.id;
2218
- })) {
2219
- columns.push(column);
2220
- }
2221
- });
2222
- return columns;
2223
- }, [allColumns, visibleColumns]);
2224
- getInstance().allColumns = allColumns;
2225
-
2226
- {
2227
- var duplicateColumns = allColumns.filter(function (column, i) {
2228
- return allColumns.findIndex(function (d) {
2229
- return d.id === column.id;
2230
- }) !== i;
2231
- });
2232
-
2233
- if (duplicateColumns.length) {
2234
- console.info(allColumns);
2235
- throw new Error("Duplicate columns were found with ids: \"" + duplicateColumns.map(function (d) {
2236
- return d.id;
2237
- }).join(', ') + "\" in the columns array above");
2238
- }
2239
- } // Make the headerGroups
2240
-
2241
-
2242
- var headerGroups = React.useMemo(function () {
2243
- return reduceHooks(getHooks().headerGroups, makeHeaderGroups(visibleColumns, defaultColumn), getInstance());
2244
- }, [getHooks, visibleColumns, defaultColumn, getInstance].concat(reduceHooks(getHooks().headerGroupsDeps, [], {
2245
- instance: getInstance()
2246
- })));
2247
- getInstance().headerGroups = headerGroups; // Get the first level of headers
2248
-
2249
- var headers = React.useMemo(function () {
2250
- return headerGroups.length ? headerGroups[0].headers : [];
2251
- }, [headerGroups]);
2252
- getInstance().headers = headers; // Provide a flat header list for utilities
2253
-
2254
- getInstance().flatHeaders = headerGroups.reduce(function (all, headerGroup) {
2255
- return [].concat(all, headerGroup.headers);
2256
- }, []);
2257
- loopHooks(getHooks().useInstanceBeforeDimensions, getInstance()); // Filter columns down to visible ones
2258
-
2259
- var visibleColumnsDep = visibleColumns.filter(function (d) {
2260
- return d.isVisible;
2261
- }).map(function (d) {
2262
- return d.id;
2263
- }).sort().join('_');
2264
- visibleColumns = React.useMemo(function () {
2265
- return visibleColumns.filter(function (d) {
2266
- return d.isVisible;
2267
- });
2268
- }, // eslint-disable-next-line react-hooks/exhaustive-deps
2269
- [visibleColumns, visibleColumnsDep]);
2270
- getInstance().visibleColumns = visibleColumns; // Header Visibility is needed by this point
2271
-
2272
- var _calculateHeaderWidth = calculateHeaderWidths(headers),
2273
- totalColumnsMinWidth = _calculateHeaderWidth[0],
2274
- totalColumnsWidth = _calculateHeaderWidth[1],
2275
- totalColumnsMaxWidth = _calculateHeaderWidth[2];
2276
-
2277
- getInstance().totalColumnsMinWidth = totalColumnsMinWidth;
2278
- getInstance().totalColumnsWidth = totalColumnsWidth;
2279
- getInstance().totalColumnsMaxWidth = totalColumnsMaxWidth;
2280
- loopHooks(getHooks().useInstance, getInstance()) // Each materialized header needs to be assigned a render function and other
2281
- // prop getter properties here.
2282
- ;
2283
- [].concat(getInstance().flatHeaders, getInstance().allColumns).forEach(function (column) {
2284
- // Give columns/headers rendering power
2285
- column.render = makeRenderer(getInstance(), column); // Give columns/headers a default getHeaderProps
2286
-
2287
- column.getHeaderProps = makePropGetter(getHooks().getHeaderProps, {
2288
- instance: getInstance(),
2289
- column: column
2290
- }); // Give columns/headers a default getFooterProps
2291
-
2292
- column.getFooterProps = makePropGetter(getHooks().getFooterProps, {
2293
- instance: getInstance(),
2294
- column: column
2295
- });
2296
- });
2297
- getInstance().headerGroups = React.useMemo(function () {
2298
- return headerGroups.filter(function (headerGroup, i) {
2299
- // Filter out any headers and headerGroups that don't have visible columns
2300
- headerGroup.headers = headerGroup.headers.filter(function (column) {
2301
- var recurse = function recurse(headers) {
2302
- return headers.filter(function (column) {
2303
- if (column.headers) {
2304
- return recurse(column.headers);
2305
- }
2306
-
2307
- return column.isVisible;
2308
- }).length;
2309
- };
2310
-
2311
- if (column.headers) {
2312
- return recurse(column.headers);
2313
- }
2314
-
2315
- return column.isVisible;
2316
- }); // Give headerGroups getRowProps
2317
-
2318
- if (headerGroup.headers.length) {
2319
- headerGroup.getHeaderGroupProps = makePropGetter(getHooks().getHeaderGroupProps, {
2320
- instance: getInstance(),
2321
- headerGroup: headerGroup,
2322
- index: i
2323
- });
2324
- headerGroup.getFooterGroupProps = makePropGetter(getHooks().getFooterGroupProps, {
2325
- instance: getInstance(),
2326
- headerGroup: headerGroup,
2327
- index: i
2328
- });
2329
- return true;
2330
- }
2331
-
2332
- return false;
2333
- });
2334
- }, [headerGroups, getInstance, getHooks]);
2335
- getInstance().footerGroups = [].concat(getInstance().headerGroups).reverse(); // The prepareRow function is absolutely necessary and MUST be called on
2336
- // any rows the user wishes to be displayed.
2337
-
2338
- getInstance().prepareRow = React.useCallback(function (row) {
2339
- row.getRowProps = makePropGetter(getHooks().getRowProps, {
2340
- instance: getInstance(),
2341
- row: row
2342
- }); // Build the visible cells for each row
2343
-
2344
- row.allCells = allColumns.map(function (column) {
2345
- var value = row.values[column.id];
2346
- var cell = {
2347
- column: column,
2348
- row: row,
2349
- value: value
2350
- }; // Give each cell a getCellProps base
2351
-
2352
- cell.getCellProps = makePropGetter(getHooks().getCellProps, {
2353
- instance: getInstance(),
2354
- cell: cell
2355
- }); // Give each cell a renderer function (supports multiple renderers)
2356
-
2357
- cell.render = makeRenderer(getInstance(), column, {
2358
- row: row,
2359
- cell: cell,
2360
- value: value
2361
- });
2362
- return cell;
2363
- });
2364
- row.cells = visibleColumns.map(function (column) {
2365
- return row.allCells.find(function (cell) {
2366
- return cell.column.id === column.id;
2367
- });
2368
- }); // need to apply any row specific hooks (useExpanded requires this)
2369
-
2370
- loopHooks(getHooks().prepareRow, row, {
2371
- instance: getInstance()
2372
- });
2373
- }, [getHooks, getInstance, allColumns, visibleColumns]);
2374
- getInstance().getTableProps = makePropGetter(getHooks().getTableProps, {
2375
- instance: getInstance()
2376
- });
2377
- getInstance().getTableBodyProps = makePropGetter(getHooks().getTableBodyProps, {
2378
- instance: getInstance()
2379
- });
2380
- loopHooks(getHooks().useFinalInstance, getInstance());
2381
- return getInstance();
2382
- };
2383
-
2384
- function calculateHeaderWidths(headers, left) {
2385
- if (left === void 0) {
2386
- left = 0;
2387
- }
2388
-
2389
- var sumTotalMinWidth = 0;
2390
- var sumTotalWidth = 0;
2391
- var sumTotalMaxWidth = 0;
2392
- var sumTotalFlexWidth = 0;
2393
- headers.forEach(function (header) {
2394
- var subHeaders = header.headers;
2395
- header.totalLeft = left;
2396
-
2397
- if (subHeaders && subHeaders.length) {
2398
- var _calculateHeaderWidth2 = calculateHeaderWidths(subHeaders, left),
2399
- totalMinWidth = _calculateHeaderWidth2[0],
2400
- totalWidth = _calculateHeaderWidth2[1],
2401
- totalMaxWidth = _calculateHeaderWidth2[2],
2402
- totalFlexWidth = _calculateHeaderWidth2[3];
2403
-
2404
- header.totalMinWidth = totalMinWidth;
2405
- header.totalWidth = totalWidth;
2406
- header.totalMaxWidth = totalMaxWidth;
2407
- header.totalFlexWidth = totalFlexWidth;
2408
- } else {
2409
- header.totalMinWidth = header.minWidth;
2410
- header.totalWidth = Math.min(Math.max(header.minWidth, header.width), header.maxWidth);
2411
- header.totalMaxWidth = header.maxWidth;
2412
- header.totalFlexWidth = header.canResize ? header.totalWidth : 0;
2413
- }
2414
-
2415
- if (header.isVisible) {
2416
- left += header.totalWidth;
2417
- sumTotalMinWidth += header.totalMinWidth;
2418
- sumTotalWidth += header.totalWidth;
2419
- sumTotalMaxWidth += header.totalMaxWidth;
2420
- sumTotalFlexWidth += header.totalFlexWidth;
2421
- }
2422
- });
2423
- return [sumTotalMinWidth, sumTotalWidth, sumTotalMaxWidth, sumTotalFlexWidth];
2424
- }
2425
-
2426
- function accessRowsForColumn(_ref) {
2427
- var data = _ref.data,
2428
- rows = _ref.rows,
2429
- flatRows = _ref.flatRows,
2430
- rowsById = _ref.rowsById,
2431
- column = _ref.column,
2432
- getRowId = _ref.getRowId,
2433
- getSubRows = _ref.getSubRows,
2434
- accessValueHooks = _ref.accessValueHooks,
2435
- getInstance = _ref.getInstance;
2436
-
2437
- // Access the row's data column-by-column
2438
- // We do it this way so we can incrementally add materialized
2439
- // columns after the first pass and avoid excessive looping
2440
- var accessRow = function accessRow(originalRow, rowIndex, depth, parent, parentRows) {
2441
- if (depth === void 0) {
2442
- depth = 0;
2443
- }
2444
-
2445
- // Keep the original reference around
2446
- var original = originalRow;
2447
- var id = getRowId(originalRow, rowIndex, parent);
2448
- var row = rowsById[id]; // If the row hasn't been created, let's make it
2449
-
2450
- if (!row) {
2451
- row = {
2452
- id: id,
2453
- original: original,
2454
- index: rowIndex,
2455
- depth: depth,
2456
- cells: [{}] // This is a dummy cell
2457
-
2458
- }; // Override common array functions (and the dummy cell's getCellProps function)
2459
- // to show an error if it is accessed without calling prepareRow
2460
-
2461
- row.cells.map = unpreparedAccessWarning;
2462
- row.cells.filter = unpreparedAccessWarning;
2463
- row.cells.forEach = unpreparedAccessWarning;
2464
- row.cells[0].getCellProps = unpreparedAccessWarning; // Create the cells and values
2465
-
2466
- row.values = {}; // Push this row into the parentRows array
2467
-
2468
- parentRows.push(row); // Keep track of every row in a flat array
2469
-
2470
- flatRows.push(row); // Also keep track of every row by its ID
2471
-
2472
- rowsById[id] = row; // Get the original subrows
2473
-
2474
- row.originalSubRows = getSubRows(originalRow, rowIndex); // Then recursively access them
2475
-
2476
- if (row.originalSubRows) {
2477
- var subRows = [];
2478
- row.originalSubRows.forEach(function (d, i) {
2479
- return accessRow(d, i, depth + 1, row, subRows);
2480
- }); // Keep the new subRows array on the row
2481
-
2482
- row.subRows = subRows;
2483
- }
2484
- } else if (row.subRows) {
2485
- // If the row exists, then it's already been accessed
2486
- // Keep recursing, but don't worry about passing the
2487
- // accumlator array (those rows already exist)
2488
- row.originalSubRows.forEach(function (d, i) {
2489
- return accessRow(d, i, depth + 1, row);
2490
- });
2491
- } // If the column has an accessor, use it to get a value
2492
-
2493
-
2494
- if (column.accessor) {
2495
- row.values[column.id] = column.accessor(originalRow, rowIndex, row, parentRows, data);
2496
- } // Allow plugins to manipulate the column value
2497
-
2498
-
2499
- row.values[column.id] = reduceHooks(accessValueHooks, row.values[column.id], {
2500
- row: row,
2501
- column: column,
2502
- instance: getInstance()
2503
- }, true);
2504
- };
2505
-
2506
- data.forEach(function (originalRow, rowIndex) {
2507
- return accessRow(originalRow, rowIndex, 0, undefined, rows);
2508
- });
2509
- }
2510
-
2511
- actions.resetExpanded = 'resetExpanded';
2512
- actions.toggleRowExpanded = 'toggleRowExpanded';
2513
- actions.toggleAllRowsExpanded = 'toggleAllRowsExpanded';
2514
- var useExpanded = function useExpanded(hooks) {
2515
- hooks.getToggleAllRowsExpandedProps = [defaultGetToggleAllRowsExpandedProps];
2516
- hooks.getToggleRowExpandedProps = [defaultGetToggleRowExpandedProps];
2517
- hooks.stateReducers.push(reducer$1);
2518
- hooks.useInstance.push(useInstance$1);
2519
- hooks.prepareRow.push(prepareRow);
2520
- };
2521
- useExpanded.pluginName = 'useExpanded';
2522
-
2523
- var defaultGetToggleAllRowsExpandedProps = function defaultGetToggleAllRowsExpandedProps(props, _ref) {
2524
- var instance = _ref.instance;
2525
- return [props, {
2526
- onClick: function onClick(e) {
2527
- instance.toggleAllRowsExpanded();
2528
- },
2529
- style: {
2530
- cursor: 'pointer'
2531
- },
2532
- title: 'Toggle All Rows Expanded'
2533
- }];
2534
- };
2535
-
2536
- var defaultGetToggleRowExpandedProps = function defaultGetToggleRowExpandedProps(props, _ref2) {
2537
- var row = _ref2.row;
2538
- return [props, {
2539
- onClick: function onClick() {
2540
- row.toggleRowExpanded();
2541
- },
2542
- style: {
2543
- cursor: 'pointer'
2544
- },
2545
- title: 'Toggle Row Expanded'
2546
- }];
2547
- }; // Reducer
2548
-
2549
-
2550
- function reducer$1(state, action, previousState, instance) {
2551
- if (action.type === actions.init) {
2552
- return _extends({
2553
- expanded: {}
2554
- }, state);
2555
- }
2556
-
2557
- if (action.type === actions.resetExpanded) {
2558
- return _extends({}, state, {
2559
- expanded: instance.initialState.expanded || {}
2560
- });
2561
- }
2562
-
2563
- if (action.type === actions.toggleAllRowsExpanded) {
2564
- var value = action.value;
2565
- var isAllRowsExpanded = instance.isAllRowsExpanded,
2566
- rowsById = instance.rowsById;
2567
- var expandAll = typeof value !== 'undefined' ? value : !isAllRowsExpanded;
2568
-
2569
- if (expandAll) {
2570
- var expanded = {};
2571
- Object.keys(rowsById).forEach(function (rowId) {
2572
- expanded[rowId] = true;
2573
- });
2574
- return _extends({}, state, {
2575
- expanded: expanded
2576
- });
2577
- }
2578
-
2579
- return _extends({}, state, {
2580
- expanded: {}
2581
- });
2582
- }
2583
-
2584
- if (action.type === actions.toggleRowExpanded) {
2585
- var id = action.id,
2586
- setExpanded = action.value;
2587
- var exists = state.expanded[id];
2588
- var shouldExist = typeof setExpanded !== 'undefined' ? setExpanded : !exists;
2589
-
2590
- if (!exists && shouldExist) {
2591
- var _extends2;
2592
-
2593
- return _extends({}, state, {
2594
- expanded: _extends({}, state.expanded, (_extends2 = {}, _extends2[id] = true, _extends2))
2595
- });
2596
- } else if (exists && !shouldExist) {
2597
- var _state$expanded = state.expanded;
2598
- _state$expanded[id];
2599
- var rest = _objectWithoutPropertiesLoose(_state$expanded, [id].map(_toPropertyKey));
2600
-
2601
- return _extends({}, state, {
2602
- expanded: rest
2603
- });
2604
- } else {
2605
- return state;
2606
- }
2607
- }
2608
- }
2609
-
2610
- function useInstance$1(instance) {
2611
- var data = instance.data,
2612
- rows = instance.rows,
2613
- rowsById = instance.rowsById,
2614
- _instance$manualExpan = instance.manualExpandedKey,
2615
- manualExpandedKey = _instance$manualExpan === void 0 ? 'expanded' : _instance$manualExpan,
2616
- _instance$paginateExp = instance.paginateExpandedRows,
2617
- paginateExpandedRows = _instance$paginateExp === void 0 ? true : _instance$paginateExp,
2618
- _instance$expandSubRo = instance.expandSubRows,
2619
- expandSubRows = _instance$expandSubRo === void 0 ? true : _instance$expandSubRo,
2620
- _instance$autoResetEx = instance.autoResetExpanded,
2621
- autoResetExpanded = _instance$autoResetEx === void 0 ? true : _instance$autoResetEx,
2622
- getHooks = instance.getHooks,
2623
- plugins = instance.plugins,
2624
- expanded = instance.state.expanded,
2625
- dispatch = instance.dispatch;
2626
- ensurePluginOrder(plugins, ['useSortBy', 'useGroupBy', 'usePivotColumns', 'useGlobalFilter'], 'useExpanded');
2627
- var getAutoResetExpanded = useGetLatest(autoResetExpanded);
2628
- var isAllRowsExpanded = Boolean(Object.keys(rowsById).length && Object.keys(expanded).length);
2629
-
2630
- if (isAllRowsExpanded) {
2631
- if (Object.keys(rowsById).some(function (id) {
2632
- return !expanded[id];
2633
- })) {
2634
- isAllRowsExpanded = false;
2635
- }
2636
- } // Bypass any effects from firing when this changes
2637
-
2638
-
2639
- useMountedLayoutEffect(function () {
2640
- if (getAutoResetExpanded()) {
2641
- dispatch({
2642
- type: actions.resetExpanded
2643
- });
2644
- }
2645
- }, [dispatch, data]);
2646
- var toggleRowExpanded = React.useCallback(function (id, value) {
2647
- dispatch({
2648
- type: actions.toggleRowExpanded,
2649
- id: id,
2650
- value: value
2651
- });
2652
- }, [dispatch]);
2653
- var toggleAllRowsExpanded = React.useCallback(function (value) {
2654
- return dispatch({
2655
- type: actions.toggleAllRowsExpanded,
2656
- value: value
2657
- });
2658
- }, [dispatch]);
2659
- var expandedRows = React.useMemo(function () {
2660
- if (paginateExpandedRows) {
2661
- return expandRows(rows, {
2662
- manualExpandedKey: manualExpandedKey,
2663
- expanded: expanded,
2664
- expandSubRows: expandSubRows
2665
- });
2666
- }
2667
-
2668
- return rows;
2669
- }, [paginateExpandedRows, rows, manualExpandedKey, expanded, expandSubRows]);
2670
- var expandedDepth = React.useMemo(function () {
2671
- return findExpandedDepth(expanded);
2672
- }, [expanded]);
2673
- var getInstance = useGetLatest(instance);
2674
- var getToggleAllRowsExpandedProps = makePropGetter(getHooks().getToggleAllRowsExpandedProps, {
2675
- instance: getInstance()
2676
- });
2677
- Object.assign(instance, {
2678
- preExpandedRows: rows,
2679
- expandedRows: expandedRows,
2680
- rows: expandedRows,
2681
- expandedDepth: expandedDepth,
2682
- isAllRowsExpanded: isAllRowsExpanded,
2683
- toggleRowExpanded: toggleRowExpanded,
2684
- toggleAllRowsExpanded: toggleAllRowsExpanded,
2685
- getToggleAllRowsExpandedProps: getToggleAllRowsExpandedProps
2686
- });
2687
- }
2688
-
2689
- function prepareRow(row, _ref3) {
2690
- var getHooks = _ref3.instance.getHooks,
2691
- instance = _ref3.instance;
2692
-
2693
- row.toggleRowExpanded = function (set) {
2694
- return instance.toggleRowExpanded(row.id, set);
2695
- };
2696
-
2697
- row.getToggleRowExpandedProps = makePropGetter(getHooks().getToggleRowExpandedProps, {
2698
- instance: instance,
2699
- row: row
2700
- });
2701
- }
2702
-
2703
- function findExpandedDepth(expanded) {
2704
- var maxDepth = 0;
2705
- Object.keys(expanded).forEach(function (id) {
2706
- var splitId = id.split('.');
2707
- maxDepth = Math.max(maxDepth, splitId.length);
2708
- });
2709
- return maxDepth;
2710
- }
2711
-
2712
- var text = function text(rows, ids, filterValue) {
2713
- rows = rows.filter(function (row) {
2714
- return ids.some(function (id) {
2715
- var rowValue = row.values[id];
2716
- return String(rowValue).toLowerCase().includes(String(filterValue).toLowerCase());
2717
- });
2718
- });
2719
- return rows;
2720
- };
2721
-
2722
- text.autoRemove = function (val) {
2723
- return !val;
2724
- };
2725
-
2726
- var exactText = function exactText(rows, ids, filterValue) {
2727
- return rows.filter(function (row) {
2728
- return ids.some(function (id) {
2729
- var rowValue = row.values[id];
2730
- return rowValue !== undefined ? String(rowValue).toLowerCase() === String(filterValue).toLowerCase() : true;
2731
- });
2732
- });
2733
- };
2734
-
2735
- exactText.autoRemove = function (val) {
2736
- return !val;
2737
- };
2738
-
2739
- var exactTextCase = function exactTextCase(rows, ids, filterValue) {
2740
- return rows.filter(function (row) {
2741
- return ids.some(function (id) {
2742
- var rowValue = row.values[id];
2743
- return rowValue !== undefined ? String(rowValue) === String(filterValue) : true;
2744
- });
2745
- });
2746
- };
2747
-
2748
- exactTextCase.autoRemove = function (val) {
2749
- return !val;
2750
- };
2751
-
2752
- var includes = function includes(rows, ids, filterValue) {
2753
- return rows.filter(function (row) {
2754
- return ids.some(function (id) {
2755
- var rowValue = row.values[id];
2756
- return rowValue.includes(filterValue);
2757
- });
2758
- });
2759
- };
2760
-
2761
- includes.autoRemove = function (val) {
2762
- return !val || !val.length;
2763
- };
2764
-
2765
- var includesAll = function includesAll(rows, ids, filterValue) {
2766
- return rows.filter(function (row) {
2767
- return ids.some(function (id) {
2768
- var rowValue = row.values[id];
2769
- return rowValue && rowValue.length && filterValue.every(function (val) {
2770
- return rowValue.includes(val);
2771
- });
2772
- });
2773
- });
2774
- };
2775
-
2776
- includesAll.autoRemove = function (val) {
2777
- return !val || !val.length;
2778
- };
2779
-
2780
- var includesSome = function includesSome(rows, ids, filterValue) {
2781
- return rows.filter(function (row) {
2782
- return ids.some(function (id) {
2783
- var rowValue = row.values[id];
2784
- return rowValue && rowValue.length && filterValue.some(function (val) {
2785
- return rowValue.includes(val);
2786
- });
2787
- });
2788
- });
2789
- };
2790
-
2791
- includesSome.autoRemove = function (val) {
2792
- return !val || !val.length;
2793
- };
2794
-
2795
- var includesValue = function includesValue(rows, ids, filterValue) {
2796
- return rows.filter(function (row) {
2797
- return ids.some(function (id) {
2798
- var rowValue = row.values[id];
2799
- return filterValue.includes(rowValue);
2800
- });
2801
- });
2802
- };
2803
-
2804
- includesValue.autoRemove = function (val) {
2805
- return !val || !val.length;
2806
- };
2807
-
2808
- var exact = function exact(rows, ids, filterValue) {
2809
- return rows.filter(function (row) {
2810
- return ids.some(function (id) {
2811
- var rowValue = row.values[id];
2812
- return rowValue === filterValue;
2813
- });
2814
- });
2815
- };
2816
-
2817
- exact.autoRemove = function (val) {
2818
- return typeof val === 'undefined';
2819
- };
2820
-
2821
- var equals = function equals(rows, ids, filterValue) {
2822
- return rows.filter(function (row) {
2823
- return ids.some(function (id) {
2824
- var rowValue = row.values[id]; // eslint-disable-next-line eqeqeq
2825
-
2826
- return rowValue == filterValue;
2827
- });
2828
- });
2829
- };
2830
-
2831
- equals.autoRemove = function (val) {
2832
- return val == null;
2833
- };
2834
-
2835
- var between = function between(rows, ids, filterValue) {
2836
- var _ref = filterValue || [],
2837
- min = _ref[0],
2838
- max = _ref[1];
2839
-
2840
- min = typeof min === 'number' ? min : -Infinity;
2841
- max = typeof max === 'number' ? max : Infinity;
2842
-
2843
- if (min > max) {
2844
- var temp = min;
2845
- min = max;
2846
- max = temp;
2847
- }
2848
-
2849
- return rows.filter(function (row) {
2850
- return ids.some(function (id) {
2851
- var rowValue = row.values[id];
2852
- return rowValue >= min && rowValue <= max;
2853
- });
2854
- });
2855
- };
2856
-
2857
- between.autoRemove = function (val) {
2858
- return !val || typeof val[0] !== 'number' && typeof val[1] !== 'number';
2859
- };
2860
-
2861
- var filterTypes = /*#__PURE__*/Object.freeze({
2862
- __proto__: null,
2863
- text: text,
2864
- exactText: exactText,
2865
- exactTextCase: exactTextCase,
2866
- includes: includes,
2867
- includesAll: includesAll,
2868
- includesSome: includesSome,
2869
- includesValue: includesValue,
2870
- exact: exact,
2871
- equals: equals,
2872
- between: between
2873
- });
2874
-
2875
- actions.resetFilters = 'resetFilters';
2876
- actions.setFilter = 'setFilter';
2877
- actions.setAllFilters = 'setAllFilters';
2878
- var useFilters = function useFilters(hooks) {
2879
- hooks.stateReducers.push(reducer$2);
2880
- hooks.useInstance.push(useInstance$2);
2881
- };
2882
- useFilters.pluginName = 'useFilters';
2883
-
2884
- function reducer$2(state, action, previousState, instance) {
2885
- if (action.type === actions.init) {
2886
- return _extends({
2887
- filters: []
2888
- }, state);
2889
- }
2890
-
2891
- if (action.type === actions.resetFilters) {
2892
- return _extends({}, state, {
2893
- filters: instance.initialState.filters || []
2894
- });
2895
- }
2896
-
2897
- if (action.type === actions.setFilter) {
2898
- var columnId = action.columnId,
2899
- filterValue = action.filterValue;
2900
- var allColumns = instance.allColumns,
2901
- userFilterTypes = instance.filterTypes;
2902
- var column = allColumns.find(function (d) {
2903
- return d.id === columnId;
2904
- });
2905
-
2906
- if (!column) {
2907
- throw new Error("React-Table: Could not find a column with id: " + columnId);
2908
- }
2909
-
2910
- var filterMethod = getFilterMethod(column.filter, userFilterTypes || {}, filterTypes);
2911
- var previousfilter = state.filters.find(function (d) {
2912
- return d.id === columnId;
2913
- });
2914
- var newFilter = functionalUpdate(filterValue, previousfilter && previousfilter.value); //
2915
-
2916
- if (shouldAutoRemoveFilter(filterMethod.autoRemove, newFilter, column)) {
2917
- return _extends({}, state, {
2918
- filters: state.filters.filter(function (d) {
2919
- return d.id !== columnId;
2920
- })
2921
- });
2922
- }
2923
-
2924
- if (previousfilter) {
2925
- return _extends({}, state, {
2926
- filters: state.filters.map(function (d) {
2927
- if (d.id === columnId) {
2928
- return {
2929
- id: columnId,
2930
- value: newFilter
2931
- };
2932
- }
2933
-
2934
- return d;
2935
- })
2936
- });
2937
- }
2938
-
2939
- return _extends({}, state, {
2940
- filters: [].concat(state.filters, [{
2941
- id: columnId,
2942
- value: newFilter
2943
- }])
2944
- });
2945
- }
2946
-
2947
- if (action.type === actions.setAllFilters) {
2948
- var filters = action.filters;
2949
- var _allColumns = instance.allColumns,
2950
- _userFilterTypes = instance.filterTypes;
2951
- return _extends({}, state, {
2952
- // Filter out undefined values
2953
- filters: functionalUpdate(filters, state.filters).filter(function (filter) {
2954
- var column = _allColumns.find(function (d) {
2955
- return d.id === filter.id;
2956
- });
2957
-
2958
- var filterMethod = getFilterMethod(column.filter, _userFilterTypes || {}, filterTypes);
2959
-
2960
- if (shouldAutoRemoveFilter(filterMethod.autoRemove, filter.value, column)) {
2961
- return false;
2962
- }
2963
-
2964
- return true;
2965
- })
2966
- });
2967
- }
2968
- }
2969
-
2970
- function useInstance$2(instance) {
2971
- var data = instance.data,
2972
- rows = instance.rows,
2973
- flatRows = instance.flatRows,
2974
- rowsById = instance.rowsById,
2975
- allColumns = instance.allColumns,
2976
- userFilterTypes = instance.filterTypes,
2977
- manualFilters = instance.manualFilters,
2978
- _instance$defaultCanF = instance.defaultCanFilter,
2979
- defaultCanFilter = _instance$defaultCanF === void 0 ? false : _instance$defaultCanF,
2980
- disableFilters = instance.disableFilters,
2981
- filters = instance.state.filters,
2982
- dispatch = instance.dispatch,
2983
- _instance$autoResetFi = instance.autoResetFilters,
2984
- autoResetFilters = _instance$autoResetFi === void 0 ? true : _instance$autoResetFi;
2985
- var setFilter = React.useCallback(function (columnId, filterValue) {
2986
- dispatch({
2987
- type: actions.setFilter,
2988
- columnId: columnId,
2989
- filterValue: filterValue
2990
- });
2991
- }, [dispatch]);
2992
- var setAllFilters = React.useCallback(function (filters) {
2993
- dispatch({
2994
- type: actions.setAllFilters,
2995
- filters: filters
2996
- });
2997
- }, [dispatch]);
2998
- allColumns.forEach(function (column) {
2999
- var id = column.id,
3000
- accessor = column.accessor,
3001
- columnDefaultCanFilter = column.defaultCanFilter,
3002
- columnDisableFilters = column.disableFilters; // Determine if a column is filterable
3003
-
3004
- column.canFilter = accessor ? getFirstDefined(columnDisableFilters === true ? false : undefined, disableFilters === true ? false : undefined, true) : getFirstDefined(columnDefaultCanFilter, defaultCanFilter, false); // Provide the column a way of updating the filter value
3005
-
3006
- column.setFilter = function (val) {
3007
- return setFilter(column.id, val);
3008
- }; // Provide the current filter value to the column for
3009
- // convenience
3010
-
3011
-
3012
- var found = filters.find(function (d) {
3013
- return d.id === id;
3014
- });
3015
- column.filterValue = found && found.value;
3016
- });
3017
-
3018
- var _React$useMemo = React.useMemo(function () {
3019
- if (manualFilters || !filters.length) {
3020
- return [rows, flatRows, rowsById];
3021
- }
3022
-
3023
- var filteredFlatRows = [];
3024
- var filteredRowsById = {}; // Filters top level and nested rows
3025
-
3026
- var filterRows = function filterRows(rows, depth) {
3027
- if (depth === void 0) {
3028
- depth = 0;
3029
- }
3030
-
3031
- var filteredRows = rows;
3032
- filteredRows = filters.reduce(function (filteredSoFar, _ref) {
3033
- var columnId = _ref.id,
3034
- filterValue = _ref.value;
3035
- // Find the filters column
3036
- var column = allColumns.find(function (d) {
3037
- return d.id === columnId;
3038
- });
3039
-
3040
- if (!column) {
3041
- return filteredSoFar;
3042
- }
3043
-
3044
- if (depth === 0) {
3045
- column.preFilteredRows = filteredSoFar;
3046
- }
3047
-
3048
- var filterMethod = getFilterMethod(column.filter, userFilterTypes || {}, filterTypes);
3049
-
3050
- if (!filterMethod) {
3051
- console.warn("Could not find a valid 'column.filter' for column with the ID: " + column.id + ".");
3052
- return filteredSoFar;
3053
- } // Pass the rows, id, filterValue and column to the filterMethod
3054
- // to get the filtered rows back
3055
-
3056
-
3057
- column.filteredRows = filterMethod(filteredSoFar, [columnId], filterValue);
3058
- return column.filteredRows;
3059
- }, rows); // Apply the filter to any subRows
3060
- // We technically could do this recursively in the above loop,
3061
- // but that would severely hinder the API for the user, since they
3062
- // would be required to do that recursion in some scenarios
3063
-
3064
- filteredRows.forEach(function (row) {
3065
- filteredFlatRows.push(row);
3066
- filteredRowsById[row.id] = row;
3067
-
3068
- if (!row.subRows) {
3069
- return;
3070
- }
3071
-
3072
- row.subRows = row.subRows && row.subRows.length > 0 ? filterRows(row.subRows, depth + 1) : row.subRows;
3073
- });
3074
- return filteredRows;
3075
- };
3076
-
3077
- return [filterRows(rows), filteredFlatRows, filteredRowsById];
3078
- }, [manualFilters, filters, rows, flatRows, rowsById, allColumns, userFilterTypes]),
3079
- filteredRows = _React$useMemo[0],
3080
- filteredFlatRows = _React$useMemo[1],
3081
- filteredRowsById = _React$useMemo[2];
3082
-
3083
- React.useMemo(function () {
3084
- // Now that each filtered column has it's partially filtered rows,
3085
- // lets assign the final filtered rows to all of the other columns
3086
- var nonFilteredColumns = allColumns.filter(function (column) {
3087
- return !filters.find(function (d) {
3088
- return d.id === column.id;
3089
- });
3090
- }); // This essentially enables faceted filter options to be built easily
3091
- // using every column's preFilteredRows value
3092
-
3093
- nonFilteredColumns.forEach(function (column) {
3094
- column.preFilteredRows = filteredRows;
3095
- column.filteredRows = filteredRows;
3096
- });
3097
- }, [filteredRows, filters, allColumns]);
3098
- var getAutoResetFilters = useGetLatest(autoResetFilters);
3099
- useMountedLayoutEffect(function () {
3100
- if (getAutoResetFilters()) {
3101
- dispatch({
3102
- type: actions.resetFilters
3103
- });
3104
- }
3105
- }, [dispatch, manualFilters ? null : data]);
3106
- Object.assign(instance, {
3107
- preFilteredRows: rows,
3108
- preFilteredFlatRows: flatRows,
3109
- preFilteredRowsById: rowsById,
3110
- filteredRows: filteredRows,
3111
- filteredFlatRows: filteredFlatRows,
3112
- filteredRowsById: filteredRowsById,
3113
- rows: filteredRows,
3114
- flatRows: filteredFlatRows,
3115
- rowsById: filteredRowsById,
3116
- setFilter: setFilter,
3117
- setAllFilters: setAllFilters
3118
- });
3119
- }
3120
-
3121
- actions.resetGlobalFilter = 'resetGlobalFilter';
3122
- actions.setGlobalFilter = 'setGlobalFilter';
3123
- var useGlobalFilter = function useGlobalFilter(hooks) {
3124
- hooks.stateReducers.push(reducer$3);
3125
- hooks.useInstance.push(useInstance$3);
3126
- };
3127
- useGlobalFilter.pluginName = 'useGlobalFilter';
3128
-
3129
- function reducer$3(state, action, previousState, instance) {
3130
- if (action.type === actions.resetGlobalFilter) {
3131
- return _extends({}, state, {
3132
- globalFilter: instance.initialState.globalFilter || undefined
3133
- });
3134
- }
3135
-
3136
- if (action.type === actions.setGlobalFilter) {
3137
- var filterValue = action.filterValue;
3138
- var userFilterTypes = instance.userFilterTypes;
3139
- var filterMethod = getFilterMethod(instance.globalFilter, userFilterTypes || {}, filterTypes);
3140
- var newFilter = functionalUpdate(filterValue, state.globalFilter); //
3141
-
3142
- if (shouldAutoRemoveFilter(filterMethod.autoRemove, newFilter)) {
3143
- state.globalFilter;
3144
- var stateWithoutGlobalFilter = _objectWithoutPropertiesLoose(state, ["globalFilter"]);
3145
-
3146
- return stateWithoutGlobalFilter;
3147
- }
3148
-
3149
- return _extends({}, state, {
3150
- globalFilter: newFilter
3151
- });
3152
- }
3153
- }
3154
-
3155
- function useInstance$3(instance) {
3156
- var data = instance.data,
3157
- rows = instance.rows,
3158
- flatRows = instance.flatRows,
3159
- rowsById = instance.rowsById,
3160
- allColumns = instance.allColumns,
3161
- userFilterTypes = instance.filterTypes,
3162
- globalFilter = instance.globalFilter,
3163
- manualGlobalFilter = instance.manualGlobalFilter,
3164
- globalFilterValue = instance.state.globalFilter,
3165
- dispatch = instance.dispatch,
3166
- _instance$autoResetGl = instance.autoResetGlobalFilter,
3167
- autoResetGlobalFilter = _instance$autoResetGl === void 0 ? true : _instance$autoResetGl,
3168
- disableGlobalFilter = instance.disableGlobalFilter;
3169
- var setGlobalFilter = React.useCallback(function (filterValue) {
3170
- dispatch({
3171
- type: actions.setGlobalFilter,
3172
- filterValue: filterValue
3173
- });
3174
- }, [dispatch]); // TODO: Create a filter cache for incremental high speed multi-filtering
3175
- // This gets pretty complicated pretty fast, since you have to maintain a
3176
- // cache for each row group (top-level rows, and each row's recursive subrows)
3177
- // This would make multi-filtering a lot faster though. Too far?
3178
-
3179
- var _React$useMemo = React.useMemo(function () {
3180
- if (manualGlobalFilter || typeof globalFilterValue === 'undefined') {
3181
- return [rows, flatRows, rowsById];
3182
- }
3183
-
3184
- var filteredFlatRows = [];
3185
- var filteredRowsById = {};
3186
- var filterMethod = getFilterMethod(globalFilter, userFilterTypes || {}, filterTypes);
3187
-
3188
- if (!filterMethod) {
3189
- console.warn("Could not find a valid 'globalFilter' option.");
3190
- return rows;
3191
- }
3192
-
3193
- allColumns.forEach(function (column) {
3194
- var columnDisableGlobalFilter = column.disableGlobalFilter;
3195
- column.canFilter = getFirstDefined(columnDisableGlobalFilter === true ? false : undefined, disableGlobalFilter === true ? false : undefined, true);
3196
- });
3197
- var filterableColumns = allColumns.filter(function (c) {
3198
- return c.canFilter === true;
3199
- }); // Filters top level and nested rows
3200
-
3201
- var filterRows = function filterRows(filteredRows) {
3202
- filteredRows = filterMethod(filteredRows, filterableColumns.map(function (d) {
3203
- return d.id;
3204
- }), globalFilterValue);
3205
- filteredRows.forEach(function (row) {
3206
- filteredFlatRows.push(row);
3207
- filteredRowsById[row.id] = row;
3208
- row.subRows = row.subRows && row.subRows.length ? filterRows(row.subRows) : row.subRows;
3209
- });
3210
- return filteredRows;
3211
- };
3212
-
3213
- return [filterRows(rows), filteredFlatRows, filteredRowsById];
3214
- }, [manualGlobalFilter, globalFilterValue, globalFilter, userFilterTypes, allColumns, rows, flatRows, rowsById, disableGlobalFilter]),
3215
- globalFilteredRows = _React$useMemo[0],
3216
- globalFilteredFlatRows = _React$useMemo[1],
3217
- globalFilteredRowsById = _React$useMemo[2];
3218
-
3219
- var getAutoResetGlobalFilter = useGetLatest(autoResetGlobalFilter);
3220
- useMountedLayoutEffect(function () {
3221
- if (getAutoResetGlobalFilter()) {
3222
- dispatch({
3223
- type: actions.resetGlobalFilter
3224
- });
3225
- }
3226
- }, [dispatch, manualGlobalFilter ? null : data]);
3227
- Object.assign(instance, {
3228
- preGlobalFilteredRows: rows,
3229
- preGlobalFilteredFlatRows: flatRows,
3230
- preGlobalFilteredRowsById: rowsById,
3231
- globalFilteredRows: globalFilteredRows,
3232
- globalFilteredFlatRows: globalFilteredFlatRows,
3233
- globalFilteredRowsById: globalFilteredRowsById,
3234
- rows: globalFilteredRows,
3235
- flatRows: globalFilteredFlatRows,
3236
- rowsById: globalFilteredRowsById,
3237
- setGlobalFilter: setGlobalFilter,
3238
- disableGlobalFilter: disableGlobalFilter
3239
- });
3240
- }
3241
-
3242
- function sum(values, aggregatedValues) {
3243
- // It's faster to just add the aggregations together instead of
3244
- // process leaf nodes individually
3245
- return aggregatedValues.reduce(function (sum, next) {
3246
- return sum + (typeof next === 'number' ? next : 0);
3247
- }, 0);
3248
- }
3249
- function min(values) {
3250
- var min = values[0] || 0;
3251
- values.forEach(function (value) {
3252
- if (typeof value === 'number') {
3253
- min = Math.min(min, value);
3254
- }
3255
- });
3256
- return min;
3257
- }
3258
- function max(values) {
3259
- var max = values[0] || 0;
3260
- values.forEach(function (value) {
3261
- if (typeof value === 'number') {
3262
- max = Math.max(max, value);
3263
- }
3264
- });
3265
- return max;
3266
- }
3267
- function minMax(values) {
3268
- var min = values[0] || 0;
3269
- var max = values[0] || 0;
3270
- values.forEach(function (value) {
3271
- if (typeof value === 'number') {
3272
- min = Math.min(min, value);
3273
- max = Math.max(max, value);
3274
- }
3275
- });
3276
- return min + ".." + max;
3277
- }
3278
- function average(values) {
3279
- return sum(null, values) / values.length;
3280
- }
3281
- function median(values) {
3282
- if (!values.length) {
3283
- return null;
3284
- }
3285
-
3286
- var mid = Math.floor(values.length / 2);
3287
- var nums = [].concat(values).sort(function (a, b) {
3288
- return a - b;
3289
- });
3290
- return values.length % 2 !== 0 ? nums[mid] : (nums[mid - 1] + nums[mid]) / 2;
3291
- }
3292
- function unique(values) {
3293
- return Array.from(new Set(values).values());
3294
- }
3295
- function uniqueCount(values) {
3296
- return new Set(values).size;
3297
- }
3298
- function count(values) {
3299
- return values.length;
3300
- }
3301
-
3302
- var aggregations = /*#__PURE__*/Object.freeze({
3303
- __proto__: null,
3304
- sum: sum,
3305
- min: min,
3306
- max: max,
3307
- minMax: minMax,
3308
- average: average,
3309
- median: median,
3310
- unique: unique,
3311
- uniqueCount: uniqueCount,
3312
- count: count
3313
- });
3314
-
3315
- var emptyArray = [];
3316
- var emptyObject = {}; // Actions
3317
-
3318
- actions.resetGroupBy = 'resetGroupBy';
3319
- actions.setGroupBy = 'setGroupBy';
3320
- actions.toggleGroupBy = 'toggleGroupBy';
3321
- var useGroupBy = function useGroupBy(hooks) {
3322
- hooks.getGroupByToggleProps = [defaultGetGroupByToggleProps];
3323
- hooks.stateReducers.push(reducer$4);
3324
- hooks.visibleColumnsDeps.push(function (deps, _ref) {
3325
- var instance = _ref.instance;
3326
- return [].concat(deps, [instance.state.groupBy]);
3327
- });
3328
- hooks.visibleColumns.push(visibleColumns);
3329
- hooks.useInstance.push(useInstance$4);
3330
- hooks.prepareRow.push(prepareRow$1);
3331
- };
3332
- useGroupBy.pluginName = 'useGroupBy';
3333
-
3334
- var defaultGetGroupByToggleProps = function defaultGetGroupByToggleProps(props, _ref2) {
3335
- var header = _ref2.header;
3336
- return [props, {
3337
- onClick: header.canGroupBy ? function (e) {
3338
- e.persist();
3339
- header.toggleGroupBy();
3340
- } : undefined,
3341
- style: {
3342
- cursor: header.canGroupBy ? 'pointer' : undefined
3343
- },
3344
- title: 'Toggle GroupBy'
3345
- }];
3346
- }; // Reducer
3347
-
3348
-
3349
- function reducer$4(state, action, previousState, instance) {
3350
- if (action.type === actions.init) {
3351
- return _extends({
3352
- groupBy: []
3353
- }, state);
3354
- }
3355
-
3356
- if (action.type === actions.resetGroupBy) {
3357
- return _extends({}, state, {
3358
- groupBy: instance.initialState.groupBy || []
3359
- });
3360
- }
3361
-
3362
- if (action.type === actions.setGroupBy) {
3363
- var value = action.value;
3364
- return _extends({}, state, {
3365
- groupBy: value
3366
- });
3367
- }
3368
-
3369
- if (action.type === actions.toggleGroupBy) {
3370
- var columnId = action.columnId,
3371
- setGroupBy = action.value;
3372
- var resolvedGroupBy = typeof setGroupBy !== 'undefined' ? setGroupBy : !state.groupBy.includes(columnId);
3373
-
3374
- if (resolvedGroupBy) {
3375
- return _extends({}, state, {
3376
- groupBy: [].concat(state.groupBy, [columnId])
3377
- });
3378
- }
3379
-
3380
- return _extends({}, state, {
3381
- groupBy: state.groupBy.filter(function (d) {
3382
- return d !== columnId;
3383
- })
3384
- });
3385
- }
3386
- }
3387
-
3388
- function visibleColumns(columns, _ref3) {
3389
- var groupBy = _ref3.instance.state.groupBy;
3390
- // Sort grouped columns to the start of the column list
3391
- // before the headers are built
3392
- var groupByColumns = groupBy.map(function (g) {
3393
- return columns.find(function (col) {
3394
- return col.id === g;
3395
- });
3396
- }).filter(Boolean);
3397
- var nonGroupByColumns = columns.filter(function (col) {
3398
- return !groupBy.includes(col.id);
3399
- });
3400
- columns = [].concat(groupByColumns, nonGroupByColumns);
3401
- columns.forEach(function (column) {
3402
- column.isGrouped = groupBy.includes(column.id);
3403
- column.groupedIndex = groupBy.indexOf(column.id);
3404
- });
3405
- return columns;
3406
- }
3407
-
3408
- var defaultUserAggregations = {};
3409
-
3410
- function useInstance$4(instance) {
3411
- var data = instance.data,
3412
- rows = instance.rows,
3413
- flatRows = instance.flatRows,
3414
- rowsById = instance.rowsById,
3415
- allColumns = instance.allColumns,
3416
- flatHeaders = instance.flatHeaders,
3417
- _instance$groupByFn = instance.groupByFn,
3418
- groupByFn = _instance$groupByFn === void 0 ? defaultGroupByFn : _instance$groupByFn,
3419
- manualGroupBy = instance.manualGroupBy,
3420
- _instance$aggregation = instance.aggregations,
3421
- userAggregations = _instance$aggregation === void 0 ? defaultUserAggregations : _instance$aggregation,
3422
- plugins = instance.plugins,
3423
- groupBy = instance.state.groupBy,
3424
- dispatch = instance.dispatch,
3425
- _instance$autoResetGr = instance.autoResetGroupBy,
3426
- autoResetGroupBy = _instance$autoResetGr === void 0 ? true : _instance$autoResetGr,
3427
- disableGroupBy = instance.disableGroupBy,
3428
- defaultCanGroupBy = instance.defaultCanGroupBy,
3429
- getHooks = instance.getHooks;
3430
- ensurePluginOrder(plugins, ['useColumnOrder', 'useFilters'], 'useGroupBy');
3431
- var getInstance = useGetLatest(instance);
3432
- allColumns.forEach(function (column) {
3433
- var accessor = column.accessor,
3434
- defaultColumnGroupBy = column.defaultGroupBy,
3435
- columnDisableGroupBy = column.disableGroupBy;
3436
- column.canGroupBy = accessor ? getFirstDefined(column.canGroupBy, columnDisableGroupBy === true ? false : undefined, disableGroupBy === true ? false : undefined, true) : getFirstDefined(column.canGroupBy, defaultColumnGroupBy, defaultCanGroupBy, false);
3437
-
3438
- if (column.canGroupBy) {
3439
- column.toggleGroupBy = function () {
3440
- return instance.toggleGroupBy(column.id);
3441
- };
3442
- }
3443
-
3444
- column.Aggregated = column.Aggregated || column.Cell;
3445
- });
3446
- var toggleGroupBy = React.useCallback(function (columnId, value) {
3447
- dispatch({
3448
- type: actions.toggleGroupBy,
3449
- columnId: columnId,
3450
- value: value
3451
- });
3452
- }, [dispatch]);
3453
- var setGroupBy = React.useCallback(function (value) {
3454
- dispatch({
3455
- type: actions.setGroupBy,
3456
- value: value
3457
- });
3458
- }, [dispatch]);
3459
- flatHeaders.forEach(function (header) {
3460
- header.getGroupByToggleProps = makePropGetter(getHooks().getGroupByToggleProps, {
3461
- instance: getInstance(),
3462
- header: header
3463
- });
3464
- });
3465
-
3466
- var _React$useMemo = React.useMemo(function () {
3467
- if (manualGroupBy || !groupBy.length) {
3468
- return [rows, flatRows, rowsById, emptyArray, emptyObject, flatRows, rowsById];
3469
- } // Ensure that the list of filtered columns exist
3470
-
3471
-
3472
- var existingGroupBy = groupBy.filter(function (g) {
3473
- return allColumns.find(function (col) {
3474
- return col.id === g;
3475
- });
3476
- }); // Find the columns that can or are aggregating
3477
- // Uses each column to aggregate rows into a single value
3478
-
3479
- var aggregateRowsToValues = function aggregateRowsToValues(leafRows, groupedRows, depth) {
3480
- var values = {};
3481
- allColumns.forEach(function (column) {
3482
- // Don't aggregate columns that are in the groupBy
3483
- if (existingGroupBy.includes(column.id)) {
3484
- values[column.id] = groupedRows[0] ? groupedRows[0].values[column.id] : null;
3485
- return;
3486
- } // Aggregate the values
3487
-
3488
-
3489
- var aggregateFn = typeof column.aggregate === 'function' ? column.aggregate : userAggregations[column.aggregate] || aggregations[column.aggregate];
3490
-
3491
- if (aggregateFn) {
3492
- // Get the columnValues to aggregate
3493
- var groupedValues = groupedRows.map(function (row) {
3494
- return row.values[column.id];
3495
- }); // Get the columnValues to aggregate
3496
-
3497
- var leafValues = leafRows.map(function (row) {
3498
- var columnValue = row.values[column.id];
3499
-
3500
- if (!depth && column.aggregateValue) {
3501
- var aggregateValueFn = typeof column.aggregateValue === 'function' ? column.aggregateValue : userAggregations[column.aggregateValue] || aggregations[column.aggregateValue];
3502
-
3503
- if (!aggregateValueFn) {
3504
- console.info({
3505
- column: column
3506
- });
3507
- throw new Error("React Table: Invalid column.aggregateValue option for column listed above");
3508
- }
3509
-
3510
- columnValue = aggregateValueFn(columnValue, row, column);
3511
- }
3512
-
3513
- return columnValue;
3514
- });
3515
- values[column.id] = aggregateFn(leafValues, groupedValues);
3516
- } else if (column.aggregate) {
3517
- console.info({
3518
- column: column
3519
- });
3520
- throw new Error("React Table: Invalid column.aggregate option for column listed above");
3521
- } else {
3522
- values[column.id] = null;
3523
- }
3524
- });
3525
- return values;
3526
- };
3527
-
3528
- var groupedFlatRows = [];
3529
- var groupedRowsById = {};
3530
- var onlyGroupedFlatRows = [];
3531
- var onlyGroupedRowsById = {};
3532
- var nonGroupedFlatRows = [];
3533
- var nonGroupedRowsById = {}; // Recursively group the data
3534
-
3535
- var groupUpRecursively = function groupUpRecursively(rows, depth, parentId) {
3536
- if (depth === void 0) {
3537
- depth = 0;
3538
- }
3539
-
3540
- // This is the last level, just return the rows
3541
- if (depth === existingGroupBy.length) {
3542
- return rows;
3543
- }
3544
-
3545
- var columnId = existingGroupBy[depth]; // Group the rows together for this level
3546
-
3547
- var rowGroupsMap = groupByFn(rows, columnId); // Peform aggregations for each group
3548
-
3549
- var aggregatedGroupedRows = Object.entries(rowGroupsMap).map(function (_ref4, index) {
3550
- var groupByVal = _ref4[0],
3551
- groupedRows = _ref4[1];
3552
- var id = columnId + ":" + groupByVal;
3553
- id = parentId ? parentId + ">" + id : id; // First, Recurse to group sub rows before aggregation
3554
-
3555
- var subRows = groupUpRecursively(groupedRows, depth + 1, id); // Flatten the leaf rows of the rows in this group
3556
-
3557
- var leafRows = depth ? flattenBy(groupedRows, 'leafRows') : groupedRows;
3558
- var values = aggregateRowsToValues(leafRows, groupedRows, depth);
3559
- var row = {
3560
- id: id,
3561
- isGrouped: true,
3562
- groupByID: columnId,
3563
- groupByVal: groupByVal,
3564
- values: values,
3565
- subRows: subRows,
3566
- leafRows: leafRows,
3567
- depth: depth,
3568
- index: index
3569
- };
3570
- subRows.forEach(function (subRow) {
3571
- groupedFlatRows.push(subRow);
3572
- groupedRowsById[subRow.id] = subRow;
3573
-
3574
- if (subRow.isGrouped) {
3575
- onlyGroupedFlatRows.push(subRow);
3576
- onlyGroupedRowsById[subRow.id] = subRow;
3577
- } else {
3578
- nonGroupedFlatRows.push(subRow);
3579
- nonGroupedRowsById[subRow.id] = subRow;
3580
- }
3581
- });
3582
- return row;
3583
- });
3584
- return aggregatedGroupedRows;
3585
- };
3586
-
3587
- var groupedRows = groupUpRecursively(rows);
3588
- groupedRows.forEach(function (subRow) {
3589
- groupedFlatRows.push(subRow);
3590
- groupedRowsById[subRow.id] = subRow;
3591
-
3592
- if (subRow.isGrouped) {
3593
- onlyGroupedFlatRows.push(subRow);
3594
- onlyGroupedRowsById[subRow.id] = subRow;
3595
- } else {
3596
- nonGroupedFlatRows.push(subRow);
3597
- nonGroupedRowsById[subRow.id] = subRow;
3598
- }
3599
- }); // Assign the new data
3600
-
3601
- return [groupedRows, groupedFlatRows, groupedRowsById, onlyGroupedFlatRows, onlyGroupedRowsById, nonGroupedFlatRows, nonGroupedRowsById];
3602
- }, [manualGroupBy, groupBy, rows, flatRows, rowsById, allColumns, userAggregations, groupByFn]),
3603
- groupedRows = _React$useMemo[0],
3604
- groupedFlatRows = _React$useMemo[1],
3605
- groupedRowsById = _React$useMemo[2],
3606
- onlyGroupedFlatRows = _React$useMemo[3],
3607
- onlyGroupedRowsById = _React$useMemo[4],
3608
- nonGroupedFlatRows = _React$useMemo[5],
3609
- nonGroupedRowsById = _React$useMemo[6];
3610
-
3611
- var getAutoResetGroupBy = useGetLatest(autoResetGroupBy);
3612
- useMountedLayoutEffect(function () {
3613
- if (getAutoResetGroupBy()) {
3614
- dispatch({
3615
- type: actions.resetGroupBy
3616
- });
3617
- }
3618
- }, [dispatch, manualGroupBy ? null : data]);
3619
- Object.assign(instance, {
3620
- preGroupedRows: rows,
3621
- preGroupedFlatRow: flatRows,
3622
- preGroupedRowsById: rowsById,
3623
- groupedRows: groupedRows,
3624
- groupedFlatRows: groupedFlatRows,
3625
- groupedRowsById: groupedRowsById,
3626
- onlyGroupedFlatRows: onlyGroupedFlatRows,
3627
- onlyGroupedRowsById: onlyGroupedRowsById,
3628
- nonGroupedFlatRows: nonGroupedFlatRows,
3629
- nonGroupedRowsById: nonGroupedRowsById,
3630
- rows: groupedRows,
3631
- flatRows: groupedFlatRows,
3632
- rowsById: groupedRowsById,
3633
- toggleGroupBy: toggleGroupBy,
3634
- setGroupBy: setGroupBy
3635
- });
3636
- }
3637
-
3638
- function prepareRow$1(row) {
3639
- row.allCells.forEach(function (cell) {
3640
- var _row$subRows;
3641
-
3642
- // Grouped cells are in the groupBy and the pivot cell for the row
3643
- cell.isGrouped = cell.column.isGrouped && cell.column.id === row.groupByID; // Placeholder cells are any columns in the groupBy that are not grouped
3644
-
3645
- cell.isPlaceholder = !cell.isGrouped && cell.column.isGrouped; // Aggregated cells are not grouped, not repeated, but still have subRows
3646
-
3647
- cell.isAggregated = !cell.isGrouped && !cell.isPlaceholder && ((_row$subRows = row.subRows) == null ? void 0 : _row$subRows.length);
3648
- });
3649
- }
3650
-
3651
- function defaultGroupByFn(rows, columnId) {
3652
- return rows.reduce(function (prev, row, i) {
3653
- // TODO: Might want to implement a key serializer here so
3654
- // irregular column values can still be grouped if needed?
3655
- var resKey = "" + row.values[columnId];
3656
- prev[resKey] = Array.isArray(prev[resKey]) ? prev[resKey] : [];
3657
- prev[resKey].push(row);
3658
- return prev;
3659
- }, {});
3660
- }
3661
-
3662
- var reSplitAlphaNumeric = /([0-9]+)/gm; // Mixed sorting is slow, but very inclusive of many edge cases.
3663
- // It handles numbers, mixed alphanumeric combinations, and even
3664
- // null, undefined, and Infinity
3665
-
3666
- var alphanumeric = function alphanumeric(rowA, rowB, columnId) {
3667
- var _getRowValuesByColumn = getRowValuesByColumnID(rowA, rowB, columnId),
3668
- a = _getRowValuesByColumn[0],
3669
- b = _getRowValuesByColumn[1]; // Force to strings (or "" for unsupported types)
3670
-
3671
-
3672
- a = toString(a);
3673
- b = toString(b); // Split on number groups, but keep the delimiter
3674
- // Then remove falsey split values
3675
-
3676
- a = a.split(reSplitAlphaNumeric).filter(Boolean);
3677
- b = b.split(reSplitAlphaNumeric).filter(Boolean); // While
3678
-
3679
- while (a.length && b.length) {
3680
- var aa = a.shift();
3681
- var bb = b.shift();
3682
- var an = parseInt(aa, 10);
3683
- var bn = parseInt(bb, 10);
3684
- var combo = [an, bn].sort(); // Both are string
3685
-
3686
- if (isNaN(combo[0])) {
3687
- if (aa > bb) {
3688
- return 1;
3689
- }
3690
-
3691
- if (bb > aa) {
3692
- return -1;
3693
- }
3694
-
3695
- continue;
3696
- } // One is a string, one is a number
3697
-
3698
-
3699
- if (isNaN(combo[1])) {
3700
- return isNaN(an) ? -1 : 1;
3701
- } // Both are numbers
3702
-
3703
-
3704
- if (an > bn) {
3705
- return 1;
3706
- }
3707
-
3708
- if (bn > an) {
3709
- return -1;
3710
- }
3711
- }
3712
-
3713
- return a.length - b.length;
3714
- };
3715
- function datetime(rowA, rowB, columnId) {
3716
- var _getRowValuesByColumn2 = getRowValuesByColumnID(rowA, rowB, columnId),
3717
- a = _getRowValuesByColumn2[0],
3718
- b = _getRowValuesByColumn2[1];
3719
-
3720
- a = a.getTime();
3721
- b = b.getTime();
3722
- return compareBasic(a, b);
3723
- }
3724
- function basic(rowA, rowB, columnId) {
3725
- var _getRowValuesByColumn3 = getRowValuesByColumnID(rowA, rowB, columnId),
3726
- a = _getRowValuesByColumn3[0],
3727
- b = _getRowValuesByColumn3[1];
3728
-
3729
- return compareBasic(a, b);
3730
- }
3731
- function string(rowA, rowB, columnId) {
3732
- var _getRowValuesByColumn4 = getRowValuesByColumnID(rowA, rowB, columnId),
3733
- a = _getRowValuesByColumn4[0],
3734
- b = _getRowValuesByColumn4[1];
3735
-
3736
- a = a.split('').filter(Boolean);
3737
- b = b.split('').filter(Boolean);
3738
-
3739
- while (a.length && b.length) {
3740
- var aa = a.shift();
3741
- var bb = b.shift();
3742
- var alower = aa.toLowerCase();
3743
- var blower = bb.toLowerCase(); // Case insensitive comparison until characters match
3744
-
3745
- if (alower > blower) {
3746
- return 1;
3747
- }
3748
-
3749
- if (blower > alower) {
3750
- return -1;
3751
- } // If lowercase characters are identical
3752
-
3753
-
3754
- if (aa > bb) {
3755
- return 1;
3756
- }
3757
-
3758
- if (bb > aa) {
3759
- return -1;
3760
- }
3761
-
3762
- continue;
3763
- }
3764
-
3765
- return a.length - b.length;
3766
- }
3767
- function number(rowA, rowB, columnId) {
3768
- var _getRowValuesByColumn5 = getRowValuesByColumnID(rowA, rowB, columnId),
3769
- a = _getRowValuesByColumn5[0],
3770
- b = _getRowValuesByColumn5[1];
3771
-
3772
- var replaceNonNumeric = /[^0-9.]/gi;
3773
- a = Number(String(a).replace(replaceNonNumeric, ''));
3774
- b = Number(String(b).replace(replaceNonNumeric, ''));
3775
- return compareBasic(a, b);
3776
- } // Utils
3777
-
3778
- function compareBasic(a, b) {
3779
- return a === b ? 0 : a > b ? 1 : -1;
3780
- }
3781
-
3782
- function getRowValuesByColumnID(row1, row2, columnId) {
3783
- return [row1.values[columnId], row2.values[columnId]];
3784
- }
3785
-
3786
- function toString(a) {
3787
- if (typeof a === 'number') {
3788
- if (isNaN(a) || a === Infinity || a === -Infinity) {
3789
- return '';
3790
- }
3791
-
3792
- return String(a);
3793
- }
3794
-
3795
- if (typeof a === 'string') {
3796
- return a;
3797
- }
3798
-
3799
- return '';
3800
- }
3801
-
3802
- var sortTypes = /*#__PURE__*/Object.freeze({
3803
- __proto__: null,
3804
- alphanumeric: alphanumeric,
3805
- datetime: datetime,
3806
- basic: basic,
3807
- string: string,
3808
- number: number
3809
- });
3810
-
3811
- actions.resetSortBy = 'resetSortBy';
3812
- actions.setSortBy = 'setSortBy';
3813
- actions.toggleSortBy = 'toggleSortBy';
3814
- actions.clearSortBy = 'clearSortBy';
3815
- defaultColumn.sortType = 'alphanumeric';
3816
- defaultColumn.sortDescFirst = false;
3817
- var useSortBy = function useSortBy(hooks) {
3818
- hooks.getSortByToggleProps = [defaultGetSortByToggleProps];
3819
- hooks.stateReducers.push(reducer$5);
3820
- hooks.useInstance.push(useInstance$5);
3821
- };
3822
- useSortBy.pluginName = 'useSortBy';
3823
-
3824
- var defaultGetSortByToggleProps = function defaultGetSortByToggleProps(props, _ref) {
3825
- var instance = _ref.instance,
3826
- column = _ref.column;
3827
- var _instance$isMultiSort = instance.isMultiSortEvent,
3828
- isMultiSortEvent = _instance$isMultiSort === void 0 ? function (e) {
3829
- return e.shiftKey;
3830
- } : _instance$isMultiSort;
3831
- return [props, {
3832
- onClick: column.canSort ? function (e) {
3833
- e.persist();
3834
- column.toggleSortBy(undefined, !instance.disableMultiSort && isMultiSortEvent(e));
3835
- } : undefined,
3836
- style: {
3837
- cursor: column.canSort ? 'pointer' : undefined
3838
- },
3839
- title: column.canSort ? 'Toggle SortBy' : undefined
3840
- }];
3841
- }; // Reducer
3842
-
3843
-
3844
- function reducer$5(state, action, previousState, instance) {
3845
- if (action.type === actions.init) {
3846
- return _extends({
3847
- sortBy: []
3848
- }, state);
3849
- }
3850
-
3851
- if (action.type === actions.resetSortBy) {
3852
- return _extends({}, state, {
3853
- sortBy: instance.initialState.sortBy || []
3854
- });
3855
- }
3856
-
3857
- if (action.type === actions.clearSortBy) {
3858
- var sortBy = state.sortBy;
3859
- var newSortBy = sortBy.filter(function (d) {
3860
- return d.id !== action.columnId;
3861
- });
3862
- return _extends({}, state, {
3863
- sortBy: newSortBy
3864
- });
3865
- }
3866
-
3867
- if (action.type === actions.setSortBy) {
3868
- var _sortBy = action.sortBy;
3869
- return _extends({}, state, {
3870
- sortBy: _sortBy
3871
- });
3872
- }
3873
-
3874
- if (action.type === actions.toggleSortBy) {
3875
- var columnId = action.columnId,
3876
- desc = action.desc,
3877
- multi = action.multi;
3878
- var allColumns = instance.allColumns,
3879
- disableMultiSort = instance.disableMultiSort,
3880
- disableSortRemove = instance.disableSortRemove,
3881
- disableMultiRemove = instance.disableMultiRemove,
3882
- _instance$maxMultiSor = instance.maxMultiSortColCount,
3883
- maxMultiSortColCount = _instance$maxMultiSor === void 0 ? Number.MAX_SAFE_INTEGER : _instance$maxMultiSor;
3884
- var _sortBy2 = state.sortBy; // Find the column for this columnId
3885
-
3886
- var column = allColumns.find(function (d) {
3887
- return d.id === columnId;
3888
- });
3889
- var sortDescFirst = column.sortDescFirst; // Find any existing sortBy for this column
3890
-
3891
- var existingSortBy = _sortBy2.find(function (d) {
3892
- return d.id === columnId;
3893
- });
3894
-
3895
- var existingIndex = _sortBy2.findIndex(function (d) {
3896
- return d.id === columnId;
3897
- });
3898
-
3899
- var hasDescDefined = typeof desc !== 'undefined' && desc !== null;
3900
- var _newSortBy = []; // What should we do with this sort action?
3901
-
3902
- var sortAction;
3903
-
3904
- if (!disableMultiSort && multi) {
3905
- if (existingSortBy) {
3906
- sortAction = 'toggle';
3907
- } else {
3908
- sortAction = 'add';
3909
- }
3910
- } else {
3911
- // Normal mode
3912
- if (existingIndex !== _sortBy2.length - 1 || _sortBy2.length !== 1) {
3913
- sortAction = 'replace';
3914
- } else if (existingSortBy) {
3915
- sortAction = 'toggle';
3916
- } else {
3917
- sortAction = 'replace';
3918
- }
3919
- } // Handle toggle states that will remove the sortBy
3920
-
3921
-
3922
- if (sortAction === 'toggle' && // Must be toggling
3923
- !disableSortRemove && // If disableSortRemove, disable in general
3924
- !hasDescDefined && ( // Must not be setting desc
3925
- multi ? !disableMultiRemove : true) && ( // If multi, don't allow if disableMultiRemove
3926
- existingSortBy && // Finally, detect if it should indeed be removed
3927
- existingSortBy.desc && !sortDescFirst || !existingSortBy.desc && sortDescFirst)) {
3928
- sortAction = 'remove';
3929
- }
3930
-
3931
- if (sortAction === 'replace') {
3932
- _newSortBy = [{
3933
- id: columnId,
3934
- desc: hasDescDefined ? desc : sortDescFirst
3935
- }];
3936
- } else if (sortAction === 'add') {
3937
- _newSortBy = [].concat(_sortBy2, [{
3938
- id: columnId,
3939
- desc: hasDescDefined ? desc : sortDescFirst
3940
- }]); // Take latest n columns
3941
-
3942
- _newSortBy.splice(0, _newSortBy.length - maxMultiSortColCount);
3943
- } else if (sortAction === 'toggle') {
3944
- // This flips (or sets) the
3945
- _newSortBy = _sortBy2.map(function (d) {
3946
- if (d.id === columnId) {
3947
- return _extends({}, d, {
3948
- desc: hasDescDefined ? desc : !existingSortBy.desc
3949
- });
3950
- }
3951
-
3952
- return d;
3953
- });
3954
- } else if (sortAction === 'remove') {
3955
- _newSortBy = _sortBy2.filter(function (d) {
3956
- return d.id !== columnId;
3957
- });
3958
- }
3959
-
3960
- return _extends({}, state, {
3961
- sortBy: _newSortBy
3962
- });
3963
- }
3964
- }
3965
-
3966
- function useInstance$5(instance) {
3967
- var data = instance.data,
3968
- rows = instance.rows,
3969
- flatRows = instance.flatRows,
3970
- allColumns = instance.allColumns,
3971
- _instance$orderByFn = instance.orderByFn,
3972
- orderByFn = _instance$orderByFn === void 0 ? defaultOrderByFn : _instance$orderByFn,
3973
- userSortTypes = instance.sortTypes,
3974
- manualSortBy = instance.manualSortBy,
3975
- defaultCanSort = instance.defaultCanSort,
3976
- disableSortBy = instance.disableSortBy,
3977
- flatHeaders = instance.flatHeaders,
3978
- sortBy = instance.state.sortBy,
3979
- dispatch = instance.dispatch,
3980
- plugins = instance.plugins,
3981
- getHooks = instance.getHooks,
3982
- _instance$autoResetSo = instance.autoResetSortBy,
3983
- autoResetSortBy = _instance$autoResetSo === void 0 ? true : _instance$autoResetSo;
3984
- ensurePluginOrder(plugins, ['useFilters', 'useGlobalFilter', 'useGroupBy', 'usePivotColumns'], 'useSortBy');
3985
- var setSortBy = React.useCallback(function (sortBy) {
3986
- dispatch({
3987
- type: actions.setSortBy,
3988
- sortBy: sortBy
3989
- });
3990
- }, [dispatch]); // Updates sorting based on a columnId, desc flag and multi flag
3991
-
3992
- var toggleSortBy = React.useCallback(function (columnId, desc, multi) {
3993
- dispatch({
3994
- type: actions.toggleSortBy,
3995
- columnId: columnId,
3996
- desc: desc,
3997
- multi: multi
3998
- });
3999
- }, [dispatch]); // use reference to avoid memory leak in #1608
4000
-
4001
- var getInstance = useGetLatest(instance); // Add the getSortByToggleProps method to columns and headers
4002
-
4003
- flatHeaders.forEach(function (column) {
4004
- var accessor = column.accessor,
4005
- defaultColumnCanSort = column.canSort,
4006
- columnDisableSortBy = column.disableSortBy,
4007
- id = column.id;
4008
- var canSort = accessor ? getFirstDefined(columnDisableSortBy === true ? false : undefined, disableSortBy === true ? false : undefined, true) : getFirstDefined(defaultCanSort, defaultColumnCanSort, false);
4009
- column.canSort = canSort;
4010
-
4011
- if (column.canSort) {
4012
- column.toggleSortBy = function (desc, multi) {
4013
- return toggleSortBy(column.id, desc, multi);
4014
- };
4015
-
4016
- column.clearSortBy = function () {
4017
- dispatch({
4018
- type: actions.clearSortBy,
4019
- columnId: column.id
4020
- });
4021
- };
4022
- }
4023
-
4024
- column.getSortByToggleProps = makePropGetter(getHooks().getSortByToggleProps, {
4025
- instance: getInstance(),
4026
- column: column
4027
- });
4028
- var columnSort = sortBy.find(function (d) {
4029
- return d.id === id;
4030
- });
4031
- column.isSorted = !!columnSort;
4032
- column.sortedIndex = sortBy.findIndex(function (d) {
4033
- return d.id === id;
4034
- });
4035
- column.isSortedDesc = column.isSorted ? columnSort.desc : undefined;
4036
- });
4037
-
4038
- var _React$useMemo = React.useMemo(function () {
4039
- if (manualSortBy || !sortBy.length) {
4040
- return [rows, flatRows];
4041
- }
4042
-
4043
- var sortedFlatRows = []; // Filter out sortBys that correspond to non existing columns
4044
-
4045
- var availableSortBy = sortBy.filter(function (sort) {
4046
- return allColumns.find(function (col) {
4047
- return col.id === sort.id;
4048
- });
4049
- });
4050
-
4051
- var sortData = function sortData(rows) {
4052
- // Use the orderByFn to compose multiple sortBy's together.
4053
- // This will also perform a stable sorting using the row index
4054
- // if needed.
4055
- var sortedData = orderByFn(rows, availableSortBy.map(function (sort) {
4056
- // Support custom sorting methods for each column
4057
- var column = allColumns.find(function (d) {
4058
- return d.id === sort.id;
4059
- });
4060
-
4061
- if (!column) {
4062
- throw new Error("React-Table: Could not find a column with id: " + sort.id + " while sorting");
4063
- }
4064
-
4065
- var sortType = column.sortType; // Look up sortBy functions in this order:
4066
- // column function
4067
- // column string lookup on user sortType
4068
- // column string lookup on built-in sortType
4069
- // default function
4070
- // default string lookup on user sortType
4071
- // default string lookup on built-in sortType
4072
-
4073
- var sortMethod = isFunction(sortType) || (userSortTypes || {})[sortType] || sortTypes[sortType];
4074
-
4075
- if (!sortMethod) {
4076
- throw new Error("React-Table: Could not find a valid sortType of '" + sortType + "' for column '" + sort.id + "'.");
4077
- } // Return the correct sortFn.
4078
- // This function should always return in ascending order
4079
-
4080
-
4081
- return function (a, b) {
4082
- return sortMethod(a, b, sort.id, sort.desc);
4083
- };
4084
- }), // Map the directions
4085
- availableSortBy.map(function (sort) {
4086
- // Detect and use the sortInverted option
4087
- var column = allColumns.find(function (d) {
4088
- return d.id === sort.id;
4089
- });
4090
-
4091
- if (column && column.sortInverted) {
4092
- return sort.desc;
4093
- }
4094
-
4095
- return !sort.desc;
4096
- })); // If there are sub-rows, sort them
4097
-
4098
- sortedData.forEach(function (row) {
4099
- sortedFlatRows.push(row);
4100
-
4101
- if (!row.subRows || row.subRows.length === 0) {
4102
- return;
4103
- }
4104
-
4105
- row.subRows = sortData(row.subRows);
4106
- });
4107
- return sortedData;
4108
- };
4109
-
4110
- return [sortData(rows), sortedFlatRows];
4111
- }, [manualSortBy, sortBy, rows, flatRows, allColumns, orderByFn, userSortTypes]),
4112
- sortedRows = _React$useMemo[0],
4113
- sortedFlatRows = _React$useMemo[1];
4114
-
4115
- var getAutoResetSortBy = useGetLatest(autoResetSortBy);
4116
- useMountedLayoutEffect(function () {
4117
- if (getAutoResetSortBy()) {
4118
- dispatch({
4119
- type: actions.resetSortBy
4120
- });
4121
- }
4122
- }, [manualSortBy ? null : data]);
4123
- Object.assign(instance, {
4124
- preSortedRows: rows,
4125
- preSortedFlatRows: flatRows,
4126
- sortedRows: sortedRows,
4127
- sortedFlatRows: sortedFlatRows,
4128
- rows: sortedRows,
4129
- flatRows: sortedFlatRows,
4130
- setSortBy: setSortBy,
4131
- toggleSortBy: toggleSortBy
4132
- });
4133
- }
4134
-
4135
- function defaultOrderByFn(arr, funcs, dirs) {
4136
- return [].concat(arr).sort(function (rowA, rowB) {
4137
- for (var i = 0; i < funcs.length; i += 1) {
4138
- var sortFn = funcs[i];
4139
- var desc = dirs[i] === false || dirs[i] === 'desc';
4140
- var sortInt = sortFn(rowA, rowB);
4141
-
4142
- if (sortInt !== 0) {
4143
- return desc ? -sortInt : sortInt;
4144
- }
4145
- }
4146
-
4147
- return dirs[0] ? rowA.index - rowB.index : rowB.index - rowA.index;
4148
- });
4149
- }
4150
-
4151
- var pluginName = 'usePagination'; // Actions
4152
-
4153
- actions.resetPage = 'resetPage';
4154
- actions.gotoPage = 'gotoPage';
4155
- actions.setPageSize = 'setPageSize';
4156
- var usePagination = function usePagination(hooks) {
4157
- hooks.stateReducers.push(reducer$6);
4158
- hooks.useInstance.push(useInstance$6);
4159
- };
4160
- usePagination.pluginName = pluginName;
4161
-
4162
- function reducer$6(state, action, previousState, instance) {
4163
- if (action.type === actions.init) {
4164
- return _extends({
4165
- pageSize: 10,
4166
- pageIndex: 0
4167
- }, state);
4168
- }
4169
-
4170
- if (action.type === actions.resetPage) {
4171
- return _extends({}, state, {
4172
- pageIndex: instance.initialState.pageIndex || 0
4173
- });
4174
- }
4175
-
4176
- if (action.type === actions.gotoPage) {
4177
- var pageCount = instance.pageCount,
4178
- page = instance.page;
4179
- var newPageIndex = functionalUpdate(action.pageIndex, state.pageIndex);
4180
- var canNavigate = false;
4181
-
4182
- if (newPageIndex > state.pageIndex) {
4183
- // next page
4184
- canNavigate = pageCount === -1 ? page.length >= state.pageSize : newPageIndex < pageCount;
4185
- } else if (newPageIndex < state.pageIndex) {
4186
- // prev page
4187
- canNavigate = newPageIndex > -1;
4188
- }
4189
-
4190
- if (!canNavigate) {
4191
- return state;
4192
- }
4193
-
4194
- return _extends({}, state, {
4195
- pageIndex: newPageIndex
4196
- });
4197
- }
4198
-
4199
- if (action.type === actions.setPageSize) {
4200
- var pageSize = action.pageSize;
4201
- var topRowIndex = state.pageSize * state.pageIndex;
4202
- var pageIndex = Math.floor(topRowIndex / pageSize);
4203
- return _extends({}, state, {
4204
- pageIndex: pageIndex,
4205
- pageSize: pageSize
4206
- });
4207
- }
4208
- }
4209
-
4210
- function useInstance$6(instance) {
4211
- var rows = instance.rows,
4212
- _instance$autoResetPa = instance.autoResetPage,
4213
- autoResetPage = _instance$autoResetPa === void 0 ? true : _instance$autoResetPa,
4214
- _instance$manualExpan = instance.manualExpandedKey,
4215
- manualExpandedKey = _instance$manualExpan === void 0 ? 'expanded' : _instance$manualExpan,
4216
- plugins = instance.plugins,
4217
- userPageCount = instance.pageCount,
4218
- _instance$paginateExp = instance.paginateExpandedRows,
4219
- paginateExpandedRows = _instance$paginateExp === void 0 ? true : _instance$paginateExp,
4220
- _instance$expandSubRo = instance.expandSubRows,
4221
- expandSubRows = _instance$expandSubRo === void 0 ? true : _instance$expandSubRo,
4222
- _instance$state = instance.state,
4223
- pageSize = _instance$state.pageSize,
4224
- pageIndex = _instance$state.pageIndex,
4225
- expanded = _instance$state.expanded,
4226
- globalFilter = _instance$state.globalFilter,
4227
- filters = _instance$state.filters,
4228
- groupBy = _instance$state.groupBy,
4229
- sortBy = _instance$state.sortBy,
4230
- dispatch = instance.dispatch,
4231
- data = instance.data,
4232
- manualPagination = instance.manualPagination;
4233
- ensurePluginOrder(plugins, ['useGlobalFilter', 'useFilters', 'useGroupBy', 'useSortBy', 'useExpanded'], 'usePagination');
4234
- var getAutoResetPage = useGetLatest(autoResetPage);
4235
- useMountedLayoutEffect(function () {
4236
- if (getAutoResetPage()) {
4237
- dispatch({
4238
- type: actions.resetPage
4239
- });
4240
- }
4241
- }, [dispatch, manualPagination ? null : data, globalFilter, filters, groupBy, sortBy]);
4242
- var pageCount = manualPagination ? userPageCount : Math.ceil(rows.length / pageSize);
4243
- var pageOptions = React.useMemo(function () {
4244
- return pageCount > 0 ? [].concat(new Array(pageCount)).fill(null).map(function (d, i) {
4245
- return i;
4246
- }) : [];
4247
- }, [pageCount]);
4248
- var page = React.useMemo(function () {
4249
- var page;
4250
-
4251
- if (manualPagination) {
4252
- page = rows;
4253
- } else {
4254
- var pageStart = pageSize * pageIndex;
4255
- var pageEnd = pageStart + pageSize;
4256
- page = rows.slice(pageStart, pageEnd);
4257
- }
4258
-
4259
- if (paginateExpandedRows) {
4260
- return page;
4261
- }
4262
-
4263
- return expandRows(page, {
4264
- manualExpandedKey: manualExpandedKey,
4265
- expanded: expanded,
4266
- expandSubRows: expandSubRows
4267
- });
4268
- }, [expandSubRows, expanded, manualExpandedKey, manualPagination, pageIndex, pageSize, paginateExpandedRows, rows]);
4269
- var canPreviousPage = pageIndex > 0;
4270
- var canNextPage = pageCount === -1 ? page.length >= pageSize : pageIndex < pageCount - 1;
4271
- var gotoPage = React.useCallback(function (pageIndex) {
4272
- dispatch({
4273
- type: actions.gotoPage,
4274
- pageIndex: pageIndex
4275
- });
4276
- }, [dispatch]);
4277
- var previousPage = React.useCallback(function () {
4278
- return gotoPage(function (old) {
4279
- return old - 1;
4280
- });
4281
- }, [gotoPage]);
4282
- var nextPage = React.useCallback(function () {
4283
- return gotoPage(function (old) {
4284
- return old + 1;
4285
- });
4286
- }, [gotoPage]);
4287
- var setPageSize = React.useCallback(function (pageSize) {
4288
- dispatch({
4289
- type: actions.setPageSize,
4290
- pageSize: pageSize
4291
- });
4292
- }, [dispatch]);
4293
- Object.assign(instance, {
4294
- pageOptions: pageOptions,
4295
- pageCount: pageCount,
4296
- page: page,
4297
- canPreviousPage: canPreviousPage,
4298
- canNextPage: canNextPage,
4299
- gotoPage: gotoPage,
4300
- previousPage: previousPage,
4301
- nextPage: nextPage,
4302
- setPageSize: setPageSize
4303
- });
4304
- }
4305
-
4306
- actions.resetPivot = 'resetPivot';
4307
- actions.togglePivot = 'togglePivot';
4308
- var _UNSTABLE_usePivotColumns = function _UNSTABLE_usePivotColumns(hooks) {
4309
- hooks.getPivotToggleProps = [defaultGetPivotToggleProps];
4310
- hooks.stateReducers.push(reducer$7);
4311
- hooks.useInstanceAfterData.push(useInstanceAfterData);
4312
- hooks.allColumns.push(allColumns);
4313
- hooks.accessValue.push(accessValue);
4314
- hooks.materializedColumns.push(materializedColumns);
4315
- hooks.materializedColumnsDeps.push(materializedColumnsDeps);
4316
- hooks.visibleColumns.push(visibleColumns$1);
4317
- hooks.visibleColumnsDeps.push(visibleColumnsDeps);
4318
- hooks.useInstance.push(useInstance$7);
4319
- hooks.prepareRow.push(prepareRow$2);
4320
- };
4321
- _UNSTABLE_usePivotColumns.pluginName = 'usePivotColumns';
4322
- var defaultPivotColumns = [];
4323
-
4324
- var defaultGetPivotToggleProps = function defaultGetPivotToggleProps(props, _ref) {
4325
- var header = _ref.header;
4326
- return [props, {
4327
- onClick: header.canPivot ? function (e) {
4328
- e.persist();
4329
- header.togglePivot();
4330
- } : undefined,
4331
- style: {
4332
- cursor: header.canPivot ? 'pointer' : undefined
4333
- },
4334
- title: 'Toggle Pivot'
4335
- }];
4336
- }; // Reducer
4337
-
4338
-
4339
- function reducer$7(state, action, previousState, instance) {
4340
- if (action.type === actions.init) {
4341
- return _extends({
4342
- pivotColumns: defaultPivotColumns
4343
- }, state);
4344
- }
4345
-
4346
- if (action.type === actions.resetPivot) {
4347
- return _extends({}, state, {
4348
- pivotColumns: instance.initialState.pivotColumns || defaultPivotColumns
4349
- });
4350
- }
4351
-
4352
- if (action.type === actions.togglePivot) {
4353
- var columnId = action.columnId,
4354
- setPivot = action.value;
4355
- var resolvedPivot = typeof setPivot !== 'undefined' ? setPivot : !state.pivotColumns.includes(columnId);
4356
-
4357
- if (resolvedPivot) {
4358
- return _extends({}, state, {
4359
- pivotColumns: [].concat(state.pivotColumns, [columnId])
4360
- });
4361
- }
4362
-
4363
- return _extends({}, state, {
4364
- pivotColumns: state.pivotColumns.filter(function (d) {
4365
- return d !== columnId;
4366
- })
4367
- });
4368
- }
4369
- }
4370
-
4371
- function useInstanceAfterData(instance) {
4372
- instance.allColumns.forEach(function (column) {
4373
- column.isPivotSource = instance.state.pivotColumns.includes(column.id);
4374
- });
4375
- }
4376
-
4377
- function allColumns(columns, _ref2) {
4378
- var instance = _ref2.instance;
4379
- columns.forEach(function (column) {
4380
- column.isPivotSource = instance.state.pivotColumns.includes(column.id);
4381
- column.uniqueValues = new Set();
4382
- });
4383
- return columns;
4384
- }
4385
-
4386
- function accessValue(value, _ref3) {
4387
- var column = _ref3.column;
4388
-
4389
- if (column.uniqueValues && typeof value !== 'undefined') {
4390
- column.uniqueValues.add(value);
4391
- }
4392
-
4393
- return value;
4394
- }
4395
-
4396
- function materializedColumns(materialized, _ref4) {
4397
- var instance = _ref4.instance;
4398
- var allColumns = instance.allColumns,
4399
- state = instance.state;
4400
-
4401
- if (!state.pivotColumns.length || !state.groupBy || !state.groupBy.length) {
4402
- return materialized;
4403
- }
4404
-
4405
- var pivotColumns = state.pivotColumns.map(function (id) {
4406
- return allColumns.find(function (d) {
4407
- return d.id === id;
4408
- });
4409
- }).filter(Boolean);
4410
- var sourceColumns = allColumns.filter(function (d) {
4411
- return !d.isPivotSource && !state.groupBy.includes(d.id) && !state.pivotColumns.includes(d.id);
4412
- });
4413
-
4414
- var buildPivotColumns = function buildPivotColumns(depth, parent, pivotFilters) {
4415
- if (depth === void 0) {
4416
- depth = 0;
4417
- }
4418
-
4419
- if (pivotFilters === void 0) {
4420
- pivotFilters = [];
4421
- }
4422
-
4423
- var pivotColumn = pivotColumns[depth];
4424
-
4425
- if (!pivotColumn) {
4426
- return sourceColumns.map(function (sourceColumn) {
4427
- // TODO: We could offer support here for renesting pivoted
4428
- // columns inside copies of their header groups. For now,
4429
- // that seems like it would be (1) overkill on nesting, considering
4430
- // you already get nesting for every pivot level and (2)
4431
- // really hard. :)
4432
- return _extends({}, sourceColumn, {
4433
- canPivot: false,
4434
- isPivoted: true,
4435
- parent: parent,
4436
- depth: depth,
4437
- id: "" + (parent ? parent.id + "." + sourceColumn.id : sourceColumn.id),
4438
- accessor: function accessor(originalRow, i, row) {
4439
- if (pivotFilters.every(function (filter) {
4440
- return filter(row);
4441
- })) {
4442
- return row.values[sourceColumn.id];
4443
- }
4444
- }
4445
- });
4446
- });
4447
- }
4448
-
4449
- var uniqueValues = Array.from(pivotColumn.uniqueValues).sort();
4450
- return uniqueValues.map(function (uniqueValue) {
4451
- var columnGroup = _extends({}, pivotColumn, {
4452
- Header: pivotColumn.PivotHeader || typeof pivotColumn.header === 'string' ? pivotColumn.Header + ": " + uniqueValue : uniqueValue,
4453
- isPivotGroup: true,
4454
- parent: parent,
4455
- depth: depth,
4456
- id: parent ? parent.id + "." + pivotColumn.id + "." + uniqueValue : pivotColumn.id + "." + uniqueValue,
4457
- pivotValue: uniqueValue
4458
- });
4459
-
4460
- columnGroup.columns = buildPivotColumns(depth + 1, columnGroup, [].concat(pivotFilters, [function (row) {
4461
- return row.values[pivotColumn.id] === uniqueValue;
4462
- }]));
4463
- return columnGroup;
4464
- });
4465
- };
4466
-
4467
- var newMaterialized = flattenColumns(buildPivotColumns());
4468
- return [].concat(materialized, newMaterialized);
4469
- }
4470
-
4471
- function materializedColumnsDeps(deps, _ref5) {
4472
- var _ref5$instance$state = _ref5.instance.state,
4473
- pivotColumns = _ref5$instance$state.pivotColumns,
4474
- groupBy = _ref5$instance$state.groupBy;
4475
- return [].concat(deps, [pivotColumns, groupBy]);
4476
- }
4477
-
4478
- function visibleColumns$1(visibleColumns, _ref6) {
4479
- var state = _ref6.instance.state;
4480
- visibleColumns = visibleColumns.filter(function (d) {
4481
- return !d.isPivotSource;
4482
- });
4483
-
4484
- if (state.pivotColumns.length && state.groupBy && state.groupBy.length) {
4485
- visibleColumns = visibleColumns.filter(function (column) {
4486
- return column.isGrouped || column.isPivoted;
4487
- });
4488
- }
4489
-
4490
- return visibleColumns;
4491
- }
4492
-
4493
- function visibleColumnsDeps(deps, _ref7) {
4494
- var instance = _ref7.instance;
4495
- return [].concat(deps, [instance.state.pivotColumns, instance.state.groupBy]);
4496
- }
4497
-
4498
- function useInstance$7(instance) {
4499
- var columns = instance.columns,
4500
- allColumns = instance.allColumns,
4501
- flatHeaders = instance.flatHeaders,
4502
- getHooks = instance.getHooks,
4503
- plugins = instance.plugins,
4504
- dispatch = instance.dispatch,
4505
- _instance$autoResetPi = instance.autoResetPivot,
4506
- autoResetPivot = _instance$autoResetPi === void 0 ? true : _instance$autoResetPi,
4507
- manaulPivot = instance.manaulPivot,
4508
- disablePivot = instance.disablePivot,
4509
- defaultCanPivot = instance.defaultCanPivot;
4510
- ensurePluginOrder(plugins, ['useGroupBy'], 'usePivotColumns');
4511
- var getInstance = useGetLatest(instance);
4512
- allColumns.forEach(function (column) {
4513
- var accessor = column.accessor,
4514
- defaultColumnPivot = column.defaultPivot,
4515
- columnDisablePivot = column.disablePivot;
4516
- column.canPivot = accessor ? getFirstDefined(column.canPivot, columnDisablePivot === true ? false : undefined, disablePivot === true ? false : undefined, true) : getFirstDefined(column.canPivot, defaultColumnPivot, defaultCanPivot, false);
4517
-
4518
- if (column.canPivot) {
4519
- column.togglePivot = function () {
4520
- return instance.togglePivot(column.id);
4521
- };
4522
- }
4523
-
4524
- column.Aggregated = column.Aggregated || column.Cell;
4525
- });
4526
-
4527
- var togglePivot = function togglePivot(columnId, value) {
4528
- dispatch({
4529
- type: actions.togglePivot,
4530
- columnId: columnId,
4531
- value: value
4532
- });
4533
- };
4534
-
4535
- flatHeaders.forEach(function (header) {
4536
- header.getPivotToggleProps = makePropGetter(getHooks().getPivotToggleProps, {
4537
- instance: getInstance(),
4538
- header: header
4539
- });
4540
- });
4541
- var getAutoResetPivot = useGetLatest(autoResetPivot);
4542
- useMountedLayoutEffect(function () {
4543
- if (getAutoResetPivot()) {
4544
- dispatch({
4545
- type: actions.resetPivot
4546
- });
4547
- }
4548
- }, [dispatch, manaulPivot ? null : columns]);
4549
- Object.assign(instance, {
4550
- togglePivot: togglePivot
4551
- });
4552
- }
4553
-
4554
- function prepareRow$2(row) {
4555
- row.allCells.forEach(function (cell) {
4556
- // Grouped cells are in the pivotColumns and the pivot cell for the row
4557
- cell.isPivoted = cell.column.isPivoted;
4558
- });
4559
- }
4560
-
4561
- var pluginName$1 = 'useRowSelect'; // Actions
4562
-
4563
- actions.resetSelectedRows = 'resetSelectedRows';
4564
- actions.toggleAllRowsSelected = 'toggleAllRowsSelected';
4565
- actions.toggleRowSelected = 'toggleRowSelected';
4566
- actions.toggleAllPageRowsSelected = 'toggleAllPageRowsSelected';
4567
- var useRowSelect = function useRowSelect(hooks) {
4568
- hooks.getToggleRowSelectedProps = [defaultGetToggleRowSelectedProps];
4569
- hooks.getToggleAllRowsSelectedProps = [defaultGetToggleAllRowsSelectedProps];
4570
- hooks.getToggleAllPageRowsSelectedProps = [defaultGetToggleAllPageRowsSelectedProps];
4571
- hooks.stateReducers.push(reducer$8);
4572
- hooks.useInstance.push(useInstance$8);
4573
- hooks.prepareRow.push(prepareRow$3);
4574
- };
4575
- useRowSelect.pluginName = pluginName$1;
4576
-
4577
- var defaultGetToggleRowSelectedProps = function defaultGetToggleRowSelectedProps(props, _ref) {
4578
- var instance = _ref.instance,
4579
- row = _ref.row;
4580
- var _instance$manualRowSe = instance.manualRowSelectedKey,
4581
- manualRowSelectedKey = _instance$manualRowSe === void 0 ? 'isSelected' : _instance$manualRowSe;
4582
- var checked = false;
4583
-
4584
- if (row.original && row.original[manualRowSelectedKey]) {
4585
- checked = true;
4586
- } else {
4587
- checked = row.isSelected;
4588
- }
4589
-
4590
- return [props, {
4591
- onChange: function onChange(e) {
4592
- row.toggleRowSelected(e.target.checked);
4593
- },
4594
- style: {
4595
- cursor: 'pointer'
4596
- },
4597
- checked: checked,
4598
- title: 'Toggle Row Selected',
4599
- indeterminate: row.isSomeSelected
4600
- }];
4601
- };
4602
-
4603
- var defaultGetToggleAllRowsSelectedProps = function defaultGetToggleAllRowsSelectedProps(props, _ref2) {
4604
- var instance = _ref2.instance;
4605
- return [props, {
4606
- onChange: function onChange(e) {
4607
- instance.toggleAllRowsSelected(e.target.checked);
4608
- },
4609
- style: {
4610
- cursor: 'pointer'
4611
- },
4612
- checked: instance.isAllRowsSelected,
4613
- title: 'Toggle All Rows Selected',
4614
- indeterminate: Boolean(!instance.isAllRowsSelected && Object.keys(instance.state.selectedRowIds).length)
4615
- }];
4616
- };
4617
-
4618
- var defaultGetToggleAllPageRowsSelectedProps = function defaultGetToggleAllPageRowsSelectedProps(props, _ref3) {
4619
- var instance = _ref3.instance;
4620
- return [props, {
4621
- onChange: function onChange(e) {
4622
- instance.toggleAllPageRowsSelected(e.target.checked);
4623
- },
4624
- style: {
4625
- cursor: 'pointer'
4626
- },
4627
- checked: instance.isAllPageRowsSelected,
4628
- title: 'Toggle All Current Page Rows Selected',
4629
- indeterminate: Boolean(!instance.isAllPageRowsSelected && instance.page.some(function (_ref4) {
4630
- var id = _ref4.id;
4631
- return instance.state.selectedRowIds[id];
4632
- }))
4633
- }];
4634
- }; // eslint-disable-next-line max-params
4635
-
4636
-
4637
- function reducer$8(state, action, previousState, instance) {
4638
- if (action.type === actions.init) {
4639
- return _extends({
4640
- selectedRowIds: {}
4641
- }, state);
4642
- }
4643
-
4644
- if (action.type === actions.resetSelectedRows) {
4645
- return _extends({}, state, {
4646
- selectedRowIds: instance.initialState.selectedRowIds || {}
4647
- });
4648
- }
4649
-
4650
- if (action.type === actions.toggleAllRowsSelected) {
4651
- var setSelected = action.value;
4652
- var isAllRowsSelected = instance.isAllRowsSelected,
4653
- rowsById = instance.rowsById,
4654
- _instance$nonGroupedR = instance.nonGroupedRowsById,
4655
- nonGroupedRowsById = _instance$nonGroupedR === void 0 ? rowsById : _instance$nonGroupedR;
4656
- var selectAll = typeof setSelected !== 'undefined' ? setSelected : !isAllRowsSelected; // Only remove/add the rows that are visible on the screen
4657
- // Leave all the other rows that are selected alone.
4658
-
4659
- var selectedRowIds = Object.assign({}, state.selectedRowIds);
4660
-
4661
- if (selectAll) {
4662
- Object.keys(nonGroupedRowsById).forEach(function (rowId) {
4663
- selectedRowIds[rowId] = true;
4664
- });
4665
- } else {
4666
- Object.keys(nonGroupedRowsById).forEach(function (rowId) {
4667
- delete selectedRowIds[rowId];
4668
- });
4669
- }
4670
-
4671
- return _extends({}, state, {
4672
- selectedRowIds: selectedRowIds
4673
- });
4674
- }
4675
-
4676
- if (action.type === actions.toggleRowSelected) {
4677
- var id = action.id,
4678
- _setSelected = action.value;
4679
- var _rowsById = instance.rowsById,
4680
- _instance$selectSubRo = instance.selectSubRows,
4681
- selectSubRows = _instance$selectSubRo === void 0 ? true : _instance$selectSubRo,
4682
- getSubRows = instance.getSubRows;
4683
- var isSelected = state.selectedRowIds[id];
4684
- var shouldExist = typeof _setSelected !== 'undefined' ? _setSelected : !isSelected;
4685
-
4686
- if (isSelected === shouldExist) {
4687
- return state;
4688
- }
4689
-
4690
- var newSelectedRowIds = _extends({}, state.selectedRowIds);
4691
-
4692
- var handleRowById = function handleRowById(id) {
4693
- var row = _rowsById[id];
4694
-
4695
- if (!row.isGrouped) {
4696
- if (shouldExist) {
4697
- newSelectedRowIds[id] = true;
4698
- } else {
4699
- delete newSelectedRowIds[id];
4700
- }
4701
- }
4702
-
4703
- if (selectSubRows && getSubRows(row)) {
4704
- return getSubRows(row).forEach(function (row) {
4705
- return handleRowById(row.id);
4706
- });
4707
- }
4708
- };
4709
-
4710
- handleRowById(id);
4711
- return _extends({}, state, {
4712
- selectedRowIds: newSelectedRowIds
4713
- });
4714
- }
4715
-
4716
- if (action.type === actions.toggleAllPageRowsSelected) {
4717
- var _setSelected2 = action.value;
4718
-
4719
- var page = instance.page,
4720
- _rowsById2 = instance.rowsById,
4721
- _instance$selectSubRo2 = instance.selectSubRows,
4722
- _selectSubRows = _instance$selectSubRo2 === void 0 ? true : _instance$selectSubRo2,
4723
- isAllPageRowsSelected = instance.isAllPageRowsSelected,
4724
- _getSubRows = instance.getSubRows;
4725
-
4726
- var _selectAll = typeof _setSelected2 !== 'undefined' ? _setSelected2 : !isAllPageRowsSelected;
4727
-
4728
- var _newSelectedRowIds = _extends({}, state.selectedRowIds);
4729
-
4730
- var _handleRowById = function _handleRowById(id) {
4731
- var row = _rowsById2[id];
4732
-
4733
- if (!row.isGrouped) {
4734
- if (_selectAll) {
4735
- _newSelectedRowIds[id] = true;
4736
- } else {
4737
- delete _newSelectedRowIds[id];
4738
- }
4739
- }
4740
-
4741
- if (_selectSubRows && _getSubRows(row)) {
4742
- return _getSubRows(row).forEach(function (row) {
4743
- return _handleRowById(row.id);
4744
- });
4745
- }
4746
- };
4747
-
4748
- page.forEach(function (row) {
4749
- return _handleRowById(row.id);
4750
- });
4751
- return _extends({}, state, {
4752
- selectedRowIds: _newSelectedRowIds
4753
- });
4754
- }
4755
-
4756
- return state;
4757
- }
4758
-
4759
- function useInstance$8(instance) {
4760
- var data = instance.data,
4761
- rows = instance.rows,
4762
- getHooks = instance.getHooks,
4763
- plugins = instance.plugins,
4764
- rowsById = instance.rowsById,
4765
- _instance$nonGroupedR2 = instance.nonGroupedRowsById,
4766
- nonGroupedRowsById = _instance$nonGroupedR2 === void 0 ? rowsById : _instance$nonGroupedR2,
4767
- _instance$autoResetSe = instance.autoResetSelectedRows,
4768
- autoResetSelectedRows = _instance$autoResetSe === void 0 ? true : _instance$autoResetSe,
4769
- selectedRowIds = instance.state.selectedRowIds,
4770
- _instance$selectSubRo3 = instance.selectSubRows,
4771
- selectSubRows = _instance$selectSubRo3 === void 0 ? true : _instance$selectSubRo3,
4772
- dispatch = instance.dispatch,
4773
- page = instance.page,
4774
- getSubRows = instance.getSubRows;
4775
- ensurePluginOrder(plugins, ['useFilters', 'useGroupBy', 'useSortBy', 'useExpanded', 'usePagination'], 'useRowSelect');
4776
- var selectedFlatRows = React.useMemo(function () {
4777
- var selectedFlatRows = [];
4778
- rows.forEach(function (row) {
4779
- var isSelected = selectSubRows ? getRowIsSelected(row, selectedRowIds, getSubRows) : !!selectedRowIds[row.id];
4780
- row.isSelected = !!isSelected;
4781
- row.isSomeSelected = isSelected === null;
4782
-
4783
- if (isSelected) {
4784
- selectedFlatRows.push(row);
4785
- }
4786
- });
4787
- return selectedFlatRows;
4788
- }, [rows, selectSubRows, selectedRowIds, getSubRows]);
4789
- var isAllRowsSelected = Boolean(Object.keys(nonGroupedRowsById).length && Object.keys(selectedRowIds).length);
4790
- var isAllPageRowsSelected = isAllRowsSelected;
4791
-
4792
- if (isAllRowsSelected) {
4793
- if (Object.keys(nonGroupedRowsById).some(function (id) {
4794
- return !selectedRowIds[id];
4795
- })) {
4796
- isAllRowsSelected = false;
4797
- }
4798
- }
4799
-
4800
- if (!isAllRowsSelected) {
4801
- if (page && page.length && page.some(function (_ref5) {
4802
- var id = _ref5.id;
4803
- return !selectedRowIds[id];
4804
- })) {
4805
- isAllPageRowsSelected = false;
4806
- }
4807
- }
4808
-
4809
- var getAutoResetSelectedRows = useGetLatest(autoResetSelectedRows);
4810
- useMountedLayoutEffect(function () {
4811
- if (getAutoResetSelectedRows()) {
4812
- dispatch({
4813
- type: actions.resetSelectedRows
4814
- });
4815
- }
4816
- }, [dispatch, data]);
4817
- var toggleAllRowsSelected = React.useCallback(function (value) {
4818
- return dispatch({
4819
- type: actions.toggleAllRowsSelected,
4820
- value: value
4821
- });
4822
- }, [dispatch]);
4823
- var toggleAllPageRowsSelected = React.useCallback(function (value) {
4824
- return dispatch({
4825
- type: actions.toggleAllPageRowsSelected,
4826
- value: value
4827
- });
4828
- }, [dispatch]);
4829
- var toggleRowSelected = React.useCallback(function (id, value) {
4830
- return dispatch({
4831
- type: actions.toggleRowSelected,
4832
- id: id,
4833
- value: value
4834
- });
4835
- }, [dispatch]);
4836
- var getInstance = useGetLatest(instance);
4837
- var getToggleAllRowsSelectedProps = makePropGetter(getHooks().getToggleAllRowsSelectedProps, {
4838
- instance: getInstance()
4839
- });
4840
- var getToggleAllPageRowsSelectedProps = makePropGetter(getHooks().getToggleAllPageRowsSelectedProps, {
4841
- instance: getInstance()
4842
- });
4843
- Object.assign(instance, {
4844
- selectedFlatRows: selectedFlatRows,
4845
- isAllRowsSelected: isAllRowsSelected,
4846
- isAllPageRowsSelected: isAllPageRowsSelected,
4847
- toggleRowSelected: toggleRowSelected,
4848
- toggleAllRowsSelected: toggleAllRowsSelected,
4849
- getToggleAllRowsSelectedProps: getToggleAllRowsSelectedProps,
4850
- getToggleAllPageRowsSelectedProps: getToggleAllPageRowsSelectedProps,
4851
- toggleAllPageRowsSelected: toggleAllPageRowsSelected
4852
- });
4853
- }
4854
-
4855
- function prepareRow$3(row, _ref6) {
4856
- var instance = _ref6.instance;
4857
-
4858
- row.toggleRowSelected = function (set) {
4859
- return instance.toggleRowSelected(row.id, set);
4860
- };
4861
-
4862
- row.getToggleRowSelectedProps = makePropGetter(instance.getHooks().getToggleRowSelectedProps, {
4863
- instance: instance,
4864
- row: row
4865
- });
4866
- }
4867
-
4868
- function getRowIsSelected(row, selectedRowIds, getSubRows) {
4869
- if (selectedRowIds[row.id]) {
4870
- return true;
4871
- }
4872
-
4873
- var subRows = getSubRows(row);
4874
-
4875
- if (subRows && subRows.length) {
4876
- var allChildrenSelected = true;
4877
- var someSelected = false;
4878
- subRows.forEach(function (subRow) {
4879
- // Bail out early if we know both of these
4880
- if (someSelected && !allChildrenSelected) {
4881
- return;
4882
- }
4883
-
4884
- if (getRowIsSelected(subRow, selectedRowIds, getSubRows)) {
4885
- someSelected = true;
4886
- } else {
4887
- allChildrenSelected = false;
4888
- }
4889
- });
4890
- return allChildrenSelected ? true : someSelected ? null : false;
4891
- }
4892
-
4893
- return false;
4894
- }
4895
-
4896
- var defaultInitialRowStateAccessor = function defaultInitialRowStateAccessor(row) {
4897
- return {};
4898
- };
4899
-
4900
- var defaultInitialCellStateAccessor = function defaultInitialCellStateAccessor(cell) {
4901
- return {};
4902
- }; // Actions
4903
-
4904
-
4905
- actions.setRowState = 'setRowState';
4906
- actions.setCellState = 'setCellState';
4907
- actions.resetRowState = 'resetRowState';
4908
- var useRowState = function useRowState(hooks) {
4909
- hooks.stateReducers.push(reducer$9);
4910
- hooks.useInstance.push(useInstance$9);
4911
- hooks.prepareRow.push(prepareRow$4);
4912
- };
4913
- useRowState.pluginName = 'useRowState';
4914
-
4915
- function reducer$9(state, action, previousState, instance) {
4916
- var _instance$initialRowS = instance.initialRowStateAccessor,
4917
- initialRowStateAccessor = _instance$initialRowS === void 0 ? defaultInitialRowStateAccessor : _instance$initialRowS,
4918
- _instance$initialCell = instance.initialCellStateAccessor,
4919
- initialCellStateAccessor = _instance$initialCell === void 0 ? defaultInitialCellStateAccessor : _instance$initialCell,
4920
- rowsById = instance.rowsById;
4921
-
4922
- if (action.type === actions.init) {
4923
- return _extends({
4924
- rowState: {}
4925
- }, state);
4926
- }
4927
-
4928
- if (action.type === actions.resetRowState) {
4929
- return _extends({}, state, {
4930
- rowState: instance.initialState.rowState || {}
4931
- });
4932
- }
4933
-
4934
- if (action.type === actions.setRowState) {
4935
- var _extends2;
4936
-
4937
- var rowId = action.rowId,
4938
- value = action.value;
4939
- var oldRowState = typeof state.rowState[rowId] !== 'undefined' ? state.rowState[rowId] : initialRowStateAccessor(rowsById[rowId]);
4940
- return _extends({}, state, {
4941
- rowState: _extends({}, state.rowState, (_extends2 = {}, _extends2[rowId] = functionalUpdate(value, oldRowState), _extends2))
4942
- });
4943
- }
4944
-
4945
- if (action.type === actions.setCellState) {
4946
- var _oldRowState$cellStat, _rowsById$_rowId, _rowsById$_rowId$cell, _extends3, _extends4;
4947
-
4948
- var _rowId = action.rowId,
4949
- columnId = action.columnId,
4950
- _value = action.value;
4951
-
4952
- var _oldRowState = typeof state.rowState[_rowId] !== 'undefined' ? state.rowState[_rowId] : initialRowStateAccessor(rowsById[_rowId]);
4953
-
4954
- var oldCellState = typeof (_oldRowState == null ? void 0 : (_oldRowState$cellStat = _oldRowState.cellState) == null ? void 0 : _oldRowState$cellStat[columnId]) !== 'undefined' ? _oldRowState.cellState[columnId] : initialCellStateAccessor((_rowsById$_rowId = rowsById[_rowId]) == null ? void 0 : (_rowsById$_rowId$cell = _rowsById$_rowId.cells) == null ? void 0 : _rowsById$_rowId$cell.find(function (cell) {
4955
- return cell.column.id === columnId;
4956
- }));
4957
- return _extends({}, state, {
4958
- rowState: _extends({}, state.rowState, (_extends4 = {}, _extends4[_rowId] = _extends({}, _oldRowState, {
4959
- cellState: _extends({}, _oldRowState.cellState || {}, (_extends3 = {}, _extends3[columnId] = functionalUpdate(_value, oldCellState), _extends3))
4960
- }), _extends4))
4961
- });
4962
- }
4963
- }
4964
-
4965
- function useInstance$9(instance) {
4966
- var _instance$autoResetRo = instance.autoResetRowState,
4967
- autoResetRowState = _instance$autoResetRo === void 0 ? true : _instance$autoResetRo,
4968
- data = instance.data,
4969
- dispatch = instance.dispatch;
4970
- var setRowState = React.useCallback(function (rowId, value) {
4971
- return dispatch({
4972
- type: actions.setRowState,
4973
- rowId: rowId,
4974
- value: value
4975
- });
4976
- }, [dispatch]);
4977
- var setCellState = React.useCallback(function (rowId, columnId, value) {
4978
- return dispatch({
4979
- type: actions.setCellState,
4980
- rowId: rowId,
4981
- columnId: columnId,
4982
- value: value
4983
- });
4984
- }, [dispatch]);
4985
- var getAutoResetRowState = useGetLatest(autoResetRowState);
4986
- useMountedLayoutEffect(function () {
4987
- if (getAutoResetRowState()) {
4988
- dispatch({
4989
- type: actions.resetRowState
4990
- });
4991
- }
4992
- }, [data]);
4993
- Object.assign(instance, {
4994
- setRowState: setRowState,
4995
- setCellState: setCellState
4996
- });
4997
- }
4998
-
4999
- function prepareRow$4(row, _ref) {
5000
- var instance = _ref.instance;
5001
- var _instance$initialRowS2 = instance.initialRowStateAccessor,
5002
- initialRowStateAccessor = _instance$initialRowS2 === void 0 ? defaultInitialRowStateAccessor : _instance$initialRowS2,
5003
- _instance$initialCell2 = instance.initialCellStateAccessor,
5004
- initialCellStateAccessor = _instance$initialCell2 === void 0 ? defaultInitialCellStateAccessor : _instance$initialCell2,
5005
- rowState = instance.state.rowState;
5006
-
5007
- if (row) {
5008
- row.state = typeof rowState[row.id] !== 'undefined' ? rowState[row.id] : initialRowStateAccessor(row);
5009
-
5010
- row.setState = function (updater) {
5011
- return instance.setRowState(row.id, updater);
5012
- };
5013
-
5014
- row.cells.forEach(function (cell) {
5015
- if (!row.state.cellState) {
5016
- row.state.cellState = {};
5017
- }
5018
-
5019
- cell.state = typeof row.state.cellState[cell.column.id] !== 'undefined' ? row.state.cellState[cell.column.id] : initialCellStateAccessor(cell);
5020
-
5021
- cell.setState = function (updater) {
5022
- return instance.setCellState(row.id, cell.column.id, updater);
5023
- };
5024
- });
5025
- }
5026
- }
5027
-
5028
- actions.resetColumnOrder = 'resetColumnOrder';
5029
- actions.setColumnOrder = 'setColumnOrder';
5030
- var useColumnOrder = function useColumnOrder(hooks) {
5031
- hooks.stateReducers.push(reducer$a);
5032
- hooks.visibleColumnsDeps.push(function (deps, _ref) {
5033
- var instance = _ref.instance;
5034
- return [].concat(deps, [instance.state.columnOrder]);
5035
- });
5036
- hooks.visibleColumns.push(visibleColumns$2);
5037
- hooks.useInstance.push(useInstance$a);
5038
- };
5039
- useColumnOrder.pluginName = 'useColumnOrder';
5040
-
5041
- function reducer$a(state, action, previousState, instance) {
5042
- if (action.type === actions.init) {
5043
- return _extends({
5044
- columnOrder: []
5045
- }, state);
5046
- }
5047
-
5048
- if (action.type === actions.resetColumnOrder) {
5049
- return _extends({}, state, {
5050
- columnOrder: instance.initialState.columnOrder || []
5051
- });
5052
- }
5053
-
5054
- if (action.type === actions.setColumnOrder) {
5055
- return _extends({}, state, {
5056
- columnOrder: functionalUpdate(action.columnOrder, state.columnOrder)
5057
- });
5058
- }
5059
- }
5060
-
5061
- function visibleColumns$2(columns, _ref2) {
5062
- var columnOrder = _ref2.instance.state.columnOrder;
5063
-
5064
- // If there is no order, return the normal columns
5065
- if (!columnOrder || !columnOrder.length) {
5066
- return columns;
5067
- }
5068
-
5069
- var columnOrderCopy = [].concat(columnOrder); // If there is an order, make a copy of the columns
5070
-
5071
- var columnsCopy = [].concat(columns); // And make a new ordered array of the columns
5072
-
5073
- var columnsInOrder = []; // Loop over the columns and place them in order into the new array
5074
-
5075
- var _loop = function _loop() {
5076
- var targetColumnId = columnOrderCopy.shift();
5077
- var foundIndex = columnsCopy.findIndex(function (d) {
5078
- return d.id === targetColumnId;
5079
- });
5080
-
5081
- if (foundIndex > -1) {
5082
- columnsInOrder.push(columnsCopy.splice(foundIndex, 1)[0]);
5083
- }
5084
- };
5085
-
5086
- while (columnsCopy.length && columnOrderCopy.length) {
5087
- _loop();
5088
- } // If there are any columns left, add them to the end
5089
-
5090
-
5091
- return [].concat(columnsInOrder, columnsCopy);
5092
- }
5093
-
5094
- function useInstance$a(instance) {
5095
- var dispatch = instance.dispatch;
5096
- instance.setColumnOrder = React.useCallback(function (columnOrder) {
5097
- return dispatch({
5098
- type: actions.setColumnOrder,
5099
- columnOrder: columnOrder
5100
- });
5101
- }, [dispatch]);
5102
- }
5103
-
5104
- defaultColumn.canResize = true; // Actions
5105
-
5106
- actions.columnStartResizing = 'columnStartResizing';
5107
- actions.columnResizing = 'columnResizing';
5108
- actions.columnDoneResizing = 'columnDoneResizing';
5109
- actions.resetResize = 'resetResize';
5110
- var useResizeColumns = function useResizeColumns(hooks) {
5111
- hooks.getResizerProps = [defaultGetResizerProps];
5112
- hooks.getHeaderProps.push({
5113
- style: {
5114
- position: 'relative'
5115
- }
5116
- });
5117
- hooks.stateReducers.push(reducer$b);
5118
- hooks.useInstance.push(useInstance$b);
5119
- hooks.useInstanceBeforeDimensions.push(useInstanceBeforeDimensions$1);
5120
- };
5121
-
5122
- var defaultGetResizerProps = function defaultGetResizerProps(props, _ref) {
5123
- var instance = _ref.instance,
5124
- header = _ref.header;
5125
- var dispatch = instance.dispatch;
5126
-
5127
- var onResizeStart = function onResizeStart(e, header) {
5128
- var isTouchEvent = false;
5129
-
5130
- if (e.type === 'touchstart') {
5131
- // lets not respond to multiple touches (e.g. 2 or 3 fingers)
5132
- if (e.touches && e.touches.length > 1) {
5133
- return;
5134
- }
5135
-
5136
- isTouchEvent = true;
5137
- }
5138
-
5139
- var headersToResize = getLeafHeaders(header);
5140
- var headerIdWidths = headersToResize.map(function (d) {
5141
- return [d.id, d.totalWidth];
5142
- });
5143
- var clientX = isTouchEvent ? Math.round(e.touches[0].clientX) : e.clientX;
5144
-
5145
- var dispatchMove = function dispatchMove(clientXPos) {
5146
- dispatch({
5147
- type: actions.columnResizing,
5148
- clientX: clientXPos
5149
- });
5150
- };
5151
-
5152
- var dispatchEnd = function dispatchEnd() {
5153
- return dispatch({
5154
- type: actions.columnDoneResizing
5155
- });
5156
- };
5157
-
5158
- var handlersAndEvents = {
5159
- mouse: {
5160
- moveEvent: 'mousemove',
5161
- moveHandler: function moveHandler(e) {
5162
- return dispatchMove(e.clientX);
5163
- },
5164
- upEvent: 'mouseup',
5165
- upHandler: function upHandler(e) {
5166
- document.removeEventListener('mousemove', handlersAndEvents.mouse.moveHandler);
5167
- document.removeEventListener('mouseup', handlersAndEvents.mouse.upHandler);
5168
- dispatchEnd();
5169
- }
5170
- },
5171
- touch: {
5172
- moveEvent: 'touchmove',
5173
- moveHandler: function moveHandler(e) {
5174
- if (e.cancelable) {
5175
- e.preventDefault();
5176
- e.stopPropagation();
5177
- }
5178
-
5179
- dispatchMove(e.touches[0].clientX);
5180
- return false;
5181
- },
5182
- upEvent: 'touchend',
5183
- upHandler: function upHandler(e) {
5184
- document.removeEventListener(handlersAndEvents.touch.moveEvent, handlersAndEvents.touch.moveHandler);
5185
- document.removeEventListener(handlersAndEvents.touch.upEvent, handlersAndEvents.touch.moveHandler);
5186
- dispatchEnd();
5187
- }
5188
- }
5189
- };
5190
- var events = isTouchEvent ? handlersAndEvents.touch : handlersAndEvents.mouse;
5191
- var passiveIfSupported = passiveEventSupported() ? {
5192
- passive: false
5193
- } : false;
5194
- document.addEventListener(events.moveEvent, events.moveHandler, passiveIfSupported);
5195
- document.addEventListener(events.upEvent, events.upHandler, passiveIfSupported);
5196
- dispatch({
5197
- type: actions.columnStartResizing,
5198
- columnId: header.id,
5199
- columnWidth: header.totalWidth,
5200
- headerIdWidths: headerIdWidths,
5201
- clientX: clientX
5202
- });
5203
- };
5204
-
5205
- return [props, {
5206
- onMouseDown: function onMouseDown(e) {
5207
- return e.persist() || onResizeStart(e, header);
5208
- },
5209
- onTouchStart: function onTouchStart(e) {
5210
- return e.persist() || onResizeStart(e, header);
5211
- },
5212
- style: {
5213
- cursor: 'col-resize'
5214
- },
5215
- draggable: false,
5216
- role: 'separator'
5217
- }];
5218
- };
5219
-
5220
- useResizeColumns.pluginName = 'useResizeColumns';
5221
-
5222
- function reducer$b(state, action) {
5223
- if (action.type === actions.init) {
5224
- return _extends({
5225
- columnResizing: {
5226
- columnWidths: {}
5227
- }
5228
- }, state);
5229
- }
5230
-
5231
- if (action.type === actions.resetResize) {
5232
- return _extends({}, state, {
5233
- columnResizing: {
5234
- columnWidths: {}
5235
- }
5236
- });
5237
- }
5238
-
5239
- if (action.type === actions.columnStartResizing) {
5240
- var clientX = action.clientX,
5241
- columnId = action.columnId,
5242
- columnWidth = action.columnWidth,
5243
- headerIdWidths = action.headerIdWidths;
5244
- return _extends({}, state, {
5245
- columnResizing: _extends({}, state.columnResizing, {
5246
- startX: clientX,
5247
- headerIdWidths: headerIdWidths,
5248
- columnWidth: columnWidth,
5249
- isResizingColumn: columnId
5250
- })
5251
- });
5252
- }
5253
-
5254
- if (action.type === actions.columnResizing) {
5255
- var _clientX = action.clientX;
5256
-
5257
- var _state$columnResizing = state.columnResizing,
5258
- startX = _state$columnResizing.startX,
5259
- _columnWidth = _state$columnResizing.columnWidth,
5260
- _state$columnResizing2 = _state$columnResizing.headerIdWidths,
5261
- _headerIdWidths = _state$columnResizing2 === void 0 ? [] : _state$columnResizing2;
5262
-
5263
- var deltaX = _clientX - startX;
5264
- var percentageDeltaX = deltaX / _columnWidth;
5265
- var newColumnWidths = {};
5266
-
5267
- _headerIdWidths.forEach(function (_ref2) {
5268
- var headerId = _ref2[0],
5269
- headerWidth = _ref2[1];
5270
- newColumnWidths[headerId] = Math.max(headerWidth + headerWidth * percentageDeltaX, 0);
5271
- });
5272
-
5273
- return _extends({}, state, {
5274
- columnResizing: _extends({}, state.columnResizing, {
5275
- columnWidths: _extends({}, state.columnResizing.columnWidths, {}, newColumnWidths)
5276
- })
5277
- });
5278
- }
5279
-
5280
- if (action.type === actions.columnDoneResizing) {
5281
- return _extends({}, state, {
5282
- columnResizing: _extends({}, state.columnResizing, {
5283
- startX: null,
5284
- isResizingColumn: null
5285
- })
5286
- });
5287
- }
5288
- }
5289
-
5290
- var useInstanceBeforeDimensions$1 = function useInstanceBeforeDimensions(instance) {
5291
- var flatHeaders = instance.flatHeaders,
5292
- disableResizing = instance.disableResizing,
5293
- getHooks = instance.getHooks,
5294
- columnResizing = instance.state.columnResizing;
5295
- var getInstance = useGetLatest(instance);
5296
- flatHeaders.forEach(function (header) {
5297
- var canResize = getFirstDefined(header.disableResizing === true ? false : undefined, disableResizing === true ? false : undefined, true);
5298
- header.canResize = canResize;
5299
- header.width = columnResizing.columnWidths[header.id] || header.originalWidth || header.width;
5300
- header.isResizing = columnResizing.isResizingColumn === header.id;
5301
-
5302
- if (canResize) {
5303
- header.getResizerProps = makePropGetter(getHooks().getResizerProps, {
5304
- instance: getInstance(),
5305
- header: header
5306
- });
5307
- }
5308
- });
5309
- };
5310
-
5311
- function useInstance$b(instance) {
5312
- var plugins = instance.plugins,
5313
- dispatch = instance.dispatch,
5314
- _instance$autoResetRe = instance.autoResetResize,
5315
- autoResetResize = _instance$autoResetRe === void 0 ? true : _instance$autoResetRe,
5316
- columns = instance.columns;
5317
- ensurePluginOrder(plugins, ['useAbsoluteLayout'], 'useResizeColumns');
5318
- var getAutoResetResize = useGetLatest(autoResetResize);
5319
- useMountedLayoutEffect(function () {
5320
- if (getAutoResetResize()) {
5321
- dispatch({
5322
- type: actions.resetResize
5323
- });
5324
- }
5325
- }, [columns]);
5326
- var resetResizing = React.useCallback(function () {
5327
- return dispatch({
5328
- type: actions.resetResize
5329
- });
5330
- }, [dispatch]);
5331
- Object.assign(instance, {
5332
- resetResizing: resetResizing
5333
- });
5334
- }
5335
-
5336
- function getLeafHeaders(header) {
5337
- var leafHeaders = [];
5338
-
5339
- var recurseHeader = function recurseHeader(header) {
5340
- if (header.columns && header.columns.length) {
5341
- header.columns.map(recurseHeader);
5342
- }
5343
-
5344
- leafHeaders.push(header);
5345
- };
5346
-
5347
- recurseHeader(header);
5348
- return leafHeaders;
5349
- }
5350
-
5351
- var cellStyles = {
5352
- position: 'absolute',
5353
- top: 0
5354
- };
5355
- var useAbsoluteLayout = function useAbsoluteLayout(hooks) {
5356
- hooks.getTableBodyProps.push(getRowStyles);
5357
- hooks.getRowProps.push(getRowStyles);
5358
- hooks.getHeaderGroupProps.push(getRowStyles);
5359
- hooks.getFooterGroupProps.push(getRowStyles);
5360
- hooks.getHeaderProps.push(function (props, _ref) {
5361
- var column = _ref.column;
5362
- return [props, {
5363
- style: _extends({}, cellStyles, {
5364
- left: column.totalLeft + "px",
5365
- width: column.totalWidth + "px"
5366
- })
5367
- }];
5368
- });
5369
- hooks.getCellProps.push(function (props, _ref2) {
5370
- var cell = _ref2.cell;
5371
- return [props, {
5372
- style: _extends({}, cellStyles, {
5373
- left: cell.column.totalLeft + "px",
5374
- width: cell.column.totalWidth + "px"
5375
- })
5376
- }];
5377
- });
5378
- hooks.getFooterProps.push(function (props, _ref3) {
5379
- var column = _ref3.column;
5380
- return [props, {
5381
- style: _extends({}, cellStyles, {
5382
- left: column.totalLeft + "px",
5383
- width: column.totalWidth + "px"
5384
- })
5385
- }];
5386
- });
5387
- };
5388
- useAbsoluteLayout.pluginName = 'useAbsoluteLayout';
5389
-
5390
- var getRowStyles = function getRowStyles(props, _ref4) {
5391
- var instance = _ref4.instance;
5392
- return [props, {
5393
- style: {
5394
- position: 'relative',
5395
- width: instance.totalColumnsWidth + "px"
5396
- }
5397
- }];
5398
- };
5399
-
5400
- var cellStyles$1 = {
5401
- display: 'inline-block',
5402
- boxSizing: 'border-box'
5403
- };
5404
-
5405
- var getRowStyles$1 = function getRowStyles(props, _ref) {
5406
- var instance = _ref.instance;
5407
- return [props, {
5408
- style: {
5409
- display: 'flex',
5410
- width: instance.totalColumnsWidth + "px"
5411
- }
5412
- }];
5413
- };
5414
-
5415
- var useBlockLayout = function useBlockLayout(hooks) {
5416
- hooks.getRowProps.push(getRowStyles$1);
5417
- hooks.getHeaderGroupProps.push(getRowStyles$1);
5418
- hooks.getFooterGroupProps.push(getRowStyles$1);
5419
- hooks.getHeaderProps.push(function (props, _ref2) {
5420
- var column = _ref2.column;
5421
- return [props, {
5422
- style: _extends({}, cellStyles$1, {
5423
- width: column.totalWidth + "px"
5424
- })
5425
- }];
5426
- });
5427
- hooks.getCellProps.push(function (props, _ref3) {
5428
- var cell = _ref3.cell;
5429
- return [props, {
5430
- style: _extends({}, cellStyles$1, {
5431
- width: cell.column.totalWidth + "px"
5432
- })
5433
- }];
5434
- });
5435
- hooks.getFooterProps.push(function (props, _ref4) {
5436
- var column = _ref4.column;
5437
- return [props, {
5438
- style: _extends({}, cellStyles$1, {
5439
- width: column.totalWidth + "px"
5440
- })
5441
- }];
5442
- });
5443
- };
5444
- useBlockLayout.pluginName = 'useBlockLayout';
5445
-
5446
- function useFlexLayout(hooks) {
5447
- hooks.getTableProps.push(getTableProps);
5448
- hooks.getRowProps.push(getRowStyles$2);
5449
- hooks.getHeaderGroupProps.push(getRowStyles$2);
5450
- hooks.getFooterGroupProps.push(getRowStyles$2);
5451
- hooks.getHeaderProps.push(getHeaderProps);
5452
- hooks.getCellProps.push(getCellProps);
5453
- hooks.getFooterProps.push(getFooterProps);
5454
- }
5455
- useFlexLayout.pluginName = 'useFlexLayout';
5456
-
5457
- var getTableProps = function getTableProps(props, _ref) {
5458
- var instance = _ref.instance;
5459
- return [props, {
5460
- style: {
5461
- minWidth: instance.totalColumnsMinWidth + "px"
5462
- }
5463
- }];
5464
- };
5465
-
5466
- var getRowStyles$2 = function getRowStyles(props, _ref2) {
5467
- var instance = _ref2.instance;
5468
- return [props, {
5469
- style: {
5470
- display: 'flex',
5471
- flex: '1 0 auto',
5472
- minWidth: instance.totalColumnsMinWidth + "px"
5473
- }
5474
- }];
5475
- };
5476
-
5477
- var getHeaderProps = function getHeaderProps(props, _ref3) {
5478
- var column = _ref3.column;
5479
- return [props, {
5480
- style: {
5481
- boxSizing: 'border-box',
5482
- flex: column.totalFlexWidth ? column.totalFlexWidth + " 0 auto" : undefined,
5483
- minWidth: column.totalMinWidth + "px",
5484
- width: column.totalWidth + "px"
5485
- }
5486
- }];
5487
- };
5488
-
5489
- var getCellProps = function getCellProps(props, _ref4) {
5490
- var cell = _ref4.cell;
5491
- return [props, {
5492
- style: {
5493
- boxSizing: 'border-box',
5494
- flex: cell.column.totalFlexWidth + " 0 auto",
5495
- minWidth: cell.column.totalMinWidth + "px",
5496
- width: cell.column.totalWidth + "px"
5497
- }
5498
- }];
5499
- };
5500
-
5501
- var getFooterProps = function getFooterProps(props, _ref5) {
5502
- var column = _ref5.column;
5503
- return [props, {
5504
- style: {
5505
- boxSizing: 'border-box',
5506
- flex: column.totalFlexWidth ? column.totalFlexWidth + " 0 auto" : undefined,
5507
- minWidth: column.totalMinWidth + "px",
5508
- width: column.totalWidth + "px"
5509
- }
5510
- }];
5511
- };
5512
-
5513
- function useGridLayout(hooks) {
5514
- hooks.stateReducers.push(reducer$c);
5515
- hooks.getTableProps.push(getTableProps$1);
5516
- hooks.getHeaderProps.push(getHeaderProps$1);
5517
- }
5518
- useGridLayout.pluginName = 'useGridLayout';
5519
-
5520
- var getTableProps$1 = function getTableProps(props, _ref) {
5521
- var instance = _ref.instance;
5522
- return [props, {
5523
- style: {
5524
- display: "grid",
5525
- gridTemplateColumns: instance.state.gridLayout.columnWidths.map(function (w) {
5526
- return w;
5527
- }).join(" ")
5528
- }
5529
- }];
5530
- };
5531
-
5532
- var getHeaderProps$1 = function getHeaderProps(props, _ref2) {
5533
- var column = _ref2.column;
5534
- return [props, {
5535
- id: "header-cell-" + column.id,
5536
- style: {
5537
- position: "sticky" //enables a scroll wrapper to be placed around the table and have sticky headers
5538
-
5539
- }
5540
- }];
5541
- };
5542
-
5543
- function reducer$c(state, action, previousState, instance) {
5544
- if (action.type === "init") {
5545
- return _extends({
5546
- gridLayout: {
5547
- columnWidths: instance.columns.map(function () {
5548
- return "auto";
5549
- })
5550
- }
5551
- }, state);
5552
- }
5553
-
5554
- if (action.type === "columnStartResizing") {
5555
- var columnId = action.columnId;
5556
- var columnIndex = instance.visibleColumns.findIndex(function (col) {
5557
- return col.id === columnId;
5558
- });
5559
- var elWidth = getElementWidth(columnId);
5560
-
5561
- if (elWidth !== undefined) {
5562
- return _extends({}, state, {
5563
- gridLayout: _extends({}, state.gridLayout, {
5564
- columnId: columnId,
5565
- columnIndex: columnIndex,
5566
- startingWidth: elWidth
5567
- })
5568
- });
5569
- } else {
5570
- return state;
5571
- }
5572
- }
5573
-
5574
- if (action.type === "columnResizing") {
5575
- var _state$gridLayout = state.gridLayout,
5576
- _columnIndex = _state$gridLayout.columnIndex,
5577
- startingWidth = _state$gridLayout.startingWidth,
5578
- columnWidths = _state$gridLayout.columnWidths;
5579
- var change = state.columnResizing.startX - action.clientX;
5580
- var newWidth = startingWidth - change;
5581
- var columnWidthsCopy = [].concat(columnWidths);
5582
- columnWidthsCopy[_columnIndex] = newWidth + "px";
5583
- return _extends({}, state, {
5584
- gridLayout: _extends({}, state.gridLayout, {
5585
- columnWidths: columnWidthsCopy
5586
- })
5587
- });
5588
- }
5589
- }
5590
-
5591
- function getElementWidth(columnId) {
5592
- var _document$getElementB;
5593
-
5594
- var width = (_document$getElementB = document.getElementById("header-cell-" + columnId)) == null ? void 0 : _document$getElementB.offsetWidth;
5595
-
5596
- if (width !== undefined) {
5597
- return width;
5598
- }
5599
- }
5600
-
5601
- exports._UNSTABLE_usePivotColumns = _UNSTABLE_usePivotColumns;
5602
- exports.actions = actions;
5603
- exports.defaultColumn = defaultColumn;
5604
- exports.defaultGroupByFn = defaultGroupByFn;
5605
- exports.defaultOrderByFn = defaultOrderByFn;
5606
- exports.defaultRenderer = defaultRenderer;
5607
- exports.emptyRenderer = emptyRenderer;
5608
- exports.ensurePluginOrder = ensurePluginOrder;
5609
- exports.flexRender = flexRender;
5610
- exports.functionalUpdate = functionalUpdate;
5611
- exports.loopHooks = loopHooks;
5612
- exports.makePropGetter = makePropGetter;
5613
- exports.makeRenderer = makeRenderer;
5614
- exports.reduceHooks = reduceHooks;
5615
- exports.safeUseLayoutEffect = safeUseLayoutEffect;
5616
- exports.useAbsoluteLayout = useAbsoluteLayout;
5617
- exports.useAsyncDebounce = useAsyncDebounce;
5618
- exports.useBlockLayout = useBlockLayout;
5619
- exports.useColumnOrder = useColumnOrder;
5620
- exports.useExpanded = useExpanded;
5621
- exports.useFilters = useFilters;
5622
- exports.useFlexLayout = useFlexLayout;
5623
- exports.useGetLatest = useGetLatest;
5624
- exports.useGlobalFilter = useGlobalFilter;
5625
- exports.useGridLayout = useGridLayout;
5626
- exports.useGroupBy = useGroupBy;
5627
- exports.useMountedLayoutEffect = useMountedLayoutEffect;
5628
- exports.usePagination = usePagination;
5629
- exports.useResizeColumns = useResizeColumns;
5630
- exports.useRowSelect = useRowSelect;
5631
- exports.useRowState = useRowState;
5632
- exports.useSortBy = useSortBy;
5633
- exports.useTable = useTable;
5634
-
5635
- Object.defineProperty(exports, '__esModule', { value: true });
5636
-
5637
- })));
5638
-
5639
- }(reactTable_development, reactTable_development.exports));
5640
-
5641
- if (process.env.NODE_ENV === 'production') {
5642
- reactTable.exports = reactTable_production_min.exports;
5643
- } else {
5644
- reactTable.exports = reactTable_development.exports;
5645
- }
5646
-
5647
1063
  var TableFooter = function (props) {
5648
1064
  return (React__default.createElement(Box, { display: "flex", justifyContent: "center", alignItems: "end", paddingTop: 3, paddingBottom: 4, flexGrow: 1 }, props.children));
5649
1065
  };
@@ -5811,9 +1227,7 @@ var Table = function (props) {
5811
1227
  var rawColumns = props.columns, data = props.data, actions = props.actions, sortable = props.sortable, emptyMessage = props.emptyMessage, EmptyImage = props.EmptyImage, isLoading = props.loading, enableMinHeight = props.enableMinHeight;
5812
1228
  var classes = useTableStyles(props);
5813
1229
  var columns = useMemo(function () { return makeColumns({ columns: rawColumns, actions: actions, actionColumnId: actionColumnId }); }, [rawColumns, actions]);
5814
- // @ts-expect-error @types/react-table issue
5815
- var instance = reactTable.exports.useTable({ columns: columns, data: data, disableSortBy: !sortable }, reactTable.exports.useSortBy, reactTable.exports.usePagination);
5816
- // @ts-expect-error @types/react-table issue
1230
+ var instance = useTable({ columns: columns, data: data, disableSortBy: !sortable }, useSortBy, usePagination);
5817
1231
  var getTableProps = instance.getTableProps, getTableBodyProps = instance.getTableBodyProps, headerGroups = instance.headerGroups, page = instance.page, prepareRow = instance.prepareRow, pageCount = instance.pageCount, gotoPage = instance.gotoPage, state = instance.state, rows = instance.rows;
5818
1232
  var isPaginated = pageCount > 1;
5819
1233
  var isEmpty = rows.length === 0;
@@ -5823,9 +1237,7 @@ var Table = function (props) {
5823
1237
  return (React__default.createElement(Box, { className: classes.root, minHeight: (isLoading || isEmpty) && enableMinHeight ? 618 : 'unset' },
5824
1238
  React__default.createElement(Box, { className: classes.tableWrap, minHeight: page.length > 0 && !isLoading && enableMinHeight ? 618 : 'unset' },
5825
1239
  React__default.createElement("table", __assign({ className: classes.table }, getTableProps()),
5826
- React__default.createElement(TableHeader, null, headerGroups.map(function (headerGroup) { return (React__default.createElement(TableHeaderRow, __assign({}, headerGroup.getHeaderGroupProps()), headerGroup.headers.map(function (column) { return (React__default.createElement(TableHeaderCell
5827
- // @ts-expect-error @types/react-table issue
5828
- , __assign({}, column.getHeaderProps(column.getSortByToggleProps()), { column: __assign(__assign({}, column), { isActionColumn: column.id === actionColumnId }), tableProps: props }), column.render('Header'))); }))); })),
1240
+ React__default.createElement(TableHeader, null, headerGroups.map(function (headerGroup) { return (React__default.createElement(TableHeaderRow, __assign({}, headerGroup.getHeaderGroupProps()), headerGroup.headers.map(function (column) { return (React__default.createElement(TableHeaderCell, __assign({}, column.getHeaderProps(column.getSortByToggleProps()), { column: __assign(__assign({}, column), { isActionColumn: column.id === actionColumnId }), tableProps: props }), column.render('Header'))); }))); })),
5829
1241
  !isEmpty && !isLoading && (React__default.createElement(TableBody, __assign({}, getTableBodyProps()), page.map(function (row) {
5830
1242
  prepareRow(row);
5831
1243
  return (React__default.createElement(TableRow, __assign({}, row.getRowProps()), row.cells.map(function (cell) { return (React__default.createElement(TableCell, __assign({}, cell.getCellProps()), cell.render('Cell'))); })));