diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a73dc4aa..972b5a5a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +# Version 3.0 (ALPHA) + +Version 3.0 of the Dash-Table expands vastly on the capability of the 2.x table and provides features: + + - visually freezing rows and/or columns + - filtering in either FE or BE, basic filtering UI + - sorting in either FE or BE, basic sorting UI + - pagination in either FE or BE, basic pagination UI + - performance optimizations + - basic coverage through e2e, integration and unit tests + ## RC1, RC2, RC3, RC4 (Virtualization, Freeze, Deletable & Editable Columns, Performance) ### Virtualization @@ -188,3 +199,37 @@ Issue: https://github.com/plotly/dash-table/issues/91 Sorting arrow will no longer highlight. + +# Version 3.1 (BETA) + +Version 3.1 of the Dash-Table builds upon the 3.0 table and solidifies the external facing API of the table + + - introducing the notion of derived properties + + - virtual and viewport dataframe and indices for more flexibility + - code refactoring to simplify and improve the existing implementation / prepare for the future + - documentation of the API and table features + - additional e2e, integration and unit tests for a more mature development platform + +### Derived Properties + +Derived properties are new to 3.1 +They are readonly properties that represent a transform from multiple 'first-class' properties of the component. + +For example, derived_viewport_dataframe is a readonly view based on + f(dataframe, filtering params, sorting params, pagination params) --> derived_viewport_dataframe + +Derived properties allow the component to expose complex state that can be useful for a Dash Server developer but without introducing dual states, a situation where multiple properties may represent the same state within the component, making it necessary to reconcile them on each prop update. + +## RC1 - Virtual and Viewport Dataframe + + - 4 new external facing derived properties and 4 internal facing controlled properties that represent: + 1. the filtered and sorted dataframe and the indices mapping + 2. the filtered, sorted and paginated dataframe and the indices mapping + + - derived_viewport_dataframe + - derived_viewport_indices + - derived_virtual_dataframe + - derived_virtual_indices + + In the event where sorting, filtering or pagination is done on the Dash Server, it is possible that some or all derived dataframes will be equal to the dataframe prop. \ No newline at end of file diff --git a/dash_table/bundle.js b/dash_table/bundle.js index 2a092f4bb..bb06e3df9 100644 --- a/dash_table/bundle.js +++ b/dash_table/bundle.js @@ -1,4 +1,4 @@ -window.dash_table=function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=23)}([function(e,t,n){e.exports=n(27)()},function(e,t){e.exports=window.React},function(e,t,n){"use strict";function r(e){return null!=e&&"object"==typeof e&&!0===e["@@functional/placeholder"]}function o(e){return function t(n){return 0===arguments.length||r(n)?t:e.apply(this,arguments)}}n.r(t);var i=o(function(e){return function(){return e}}),u=i(!1),s=i(!0),a={"@@functional/placeholder":!0};function l(e){return function t(n,i){switch(arguments.length){case 0:return t;case 1:return r(n)?t:o(function(t){return e(n,t)});default:return r(n)&&r(i)?t:r(n)?o(function(t){return e(t,i)}):r(i)?o(function(t){return e(n,t)}):e(n,i)}}}var c=l(function(e,t){return Number(e)+Number(t)});function p(e,t){var n;e=e||[],t=t||[];var r=e.length,o=t.length,i=[];for(n=0;n=arguments.length)?a=t[s]:(a=arguments[i],i+=1),o[s]=a,r(a)||(u-=1),s+=1}return u<=0?n.apply(this,o):d(u,f(e,o,n))}}var h=l(function(e,t){return 1===e?o(t):d(e,f(e,[],t))}),v=o(function(e){return h(e.length,function(){var t=0,n=arguments[0],r=arguments[arguments.length-1],o=Array.prototype.slice.call(arguments,0);return o[0]=function(){var e=n.apply(this,p(arguments,[t,r]));return t+=1,e},e.apply(this,o)})});function g(e){return function t(n,i,u){switch(arguments.length){case 0:return t;case 1:return r(n)?t:l(function(t,r){return e(n,t,r)});case 2:return r(n)&&r(i)?t:r(n)?l(function(t,n){return e(t,i,n)}):r(i)?l(function(t,r){return e(n,t,r)}):o(function(t){return e(n,i,t)});default:return r(n)&&r(i)&&r(u)?t:r(n)&&r(i)?l(function(t,n){return e(t,n,u)}):r(n)&&r(u)?l(function(t,n){return e(t,i,n)}):r(i)&&r(u)?l(function(t,r){return e(n,t,r)}):r(n)?o(function(t){return e(t,i,u)}):r(i)?o(function(t){return e(n,t,u)}):r(u)?o(function(t){return e(n,i,t)}):e(n,i,u)}}}var y=g(function(e,t,n){if(t>=n.length||t<-n.length)return n;var r=(t<0?n.length:0)+t,o=p(n);return o[r]=e(n[r]),o}),b=Array.isArray||function(e){return null!=e&&e.length>=0&&"[object Array]"===Object.prototype.toString.call(e)};function m(e){return"function"==typeof e["@@transducer/step"]}function x(e,t,n){return function(){if(0===arguments.length)return n();var r=Array.prototype.slice.call(arguments,0),o=r.pop();if(!b(o)){for(var i=0;ie?t:e});function C(e,t){for(var n=0,r=t.length,o=Array(r);n0&&(e.hasOwnProperty(0)&&e.hasOwnProperty(e.length-1)))))}),F=function(){function e(e){this.f=e}return e.prototype["@@transducer/init"]=function(){throw new Error("init not implemented on XWrap")},e.prototype["@@transducer/result"]=function(e){return e},e.prototype["@@transducer/step"]=function(e,t){return this.f(e,t)},e}();function D(e){return new F(e)}var P=l(function(e,t){return d(e.length,function(){return e.apply(t,arguments)})});function R(e,t,n){for(var r=n.next();!r.done;){if((t=e["@@transducer/step"](t,r.value))&&t["@@transducer/reduced"]){t=t["@@transducer/value"];break}r=n.next()}return e["@@transducer/result"](t)}function T(e,t,n,r){return e["@@transducer/result"](n[r](P(e["@@transducer/step"],e),t))}var I="undefined"!=typeof Symbol?Symbol.iterator:"@@iterator";function j(e,t,n){if("function"==typeof e&&(e=D(e)),k(n))return function(e,t,n){for(var r=0,o=n.length;r=0;)z(t=K[n],e)&&!q(r,t)&&(r[r.length]=t),n-=1;return r}:function(e){return Object(e)!==e?[]:Object.keys(e)}),$=l(x(["fantasy-land/map","map"],N,function(e,t){switch(Object.prototype.toString.call(t)){case"[object Function]":return h(t.length,function(){return e.call(this,t.apply(this,arguments))});case"[object Object]":return j(function(n,r){return n[r]=e(t[r]),n},{},U(t));default:return C(e,t)}})),H=l(function(e,t){for(var n=t,r=0;r=0?r:0);no?1:0}),de=g(function(e,t,n){var r={};for(var o in n)r[o]=n[o];return r[e]=t,r}),fe=Number.isInteger||function(e){return e<<0===e},he=o(function(e){return null==e}),ve=g(function e(t,n,r){if(0===t.length)return n;var o=t[0];if(t.length>1){var i=!he(r)&&z(o,r)?r[o]:fe(t[1])?[]:{};n=e(Array.prototype.slice.call(t,1),n,i)}if(fe(o)&&b(r)){var u=[].concat(r);return u[o]=n,u}return de(o,n,r)}),ge=l(function(e,t){switch(e){case 0:return function(){return t.call(this)};case 1:return function(e){return t.call(this,e)};case 2:return function(e,n){return t.call(this,e,n)};case 3:return function(e,n,r){return t.call(this,e,n,r)};case 4:return function(e,n,r,o){return t.call(this,e,n,r,o)};case 5:return function(e,n,r,o,i){return t.call(this,e,n,r,o,i)};case 6:return function(e,n,r,o,i,u){return t.call(this,e,n,r,o,i,u)};case 7:return function(e,n,r,o,i,u,s){return t.call(this,e,n,r,o,i,u,s)};case 8:return function(e,n,r,o,i,u,s,a){return t.call(this,e,n,r,o,i,u,s,a)};case 9:return function(e,n,r,o,i,u,s,a,l){return t.call(this,e,n,r,o,i,u,s,a,l)};case 10:return function(e,n,r,o,i,u,s,a,l,c){return t.call(this,e,n,r,o,i,u,s,a,l,c)};default:throw new Error("First argument to nAry must be a non-negative integer no greater than ten")}}),ye=o(function(e){return ge(2,e)});function be(e){return"[object Function]"===Object.prototype.toString.call(e)}var me=l(function(e,t){var n=h(e,t);return h(e,function(){return j(re,$(n,arguments[0]),Array.prototype.slice.call(arguments,1))})}),xe=o(function(e){return me(e.length,e)}),Ee=l(function(e,t){return be(e)?function(){return e.apply(this,arguments)&&t.apply(this,arguments)}:xe(Z)(e,t)}),we=o(function(e){return h(e.length,e)}),_e=we(function(e){return e.apply(this,Array.prototype.slice.call(arguments,1))});function Oe(e){return function t(n){for(var r,o,i,u=[],s=0,a=n.length;st)throw new Error("min must not be greater than max in clamp(min, max, value)");return nt?t:n});function ke(e){return new RegExp(e.source,(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.sticky?"y":"")+(e.unicode?"u":""))}var Fe=o(function(e){return null===e?"Null":void 0===e?"Undefined":Object.prototype.toString.call(e).slice(8,-1)});function De(e,t,n,r){var o=function(o){for(var i=t.length,u=0;u=0;){if(n[i]===e)return r[i]===t;i-=1}switch(o){case"Map":return e.size===t.size&&Ge(e.entries(),t.entries(),n.concat([e]),r.concat([t]));case"Set":return e.size===t.size&&Ge(e.values(),t.values(),n.concat([e]),r.concat([t]));case"Arguments":case"Array":case"Object":case"Boolean":case"Number":case"String":case"Date":case"Error":case"RegExp":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"ArrayBuffer":break;default:return!1}var u=U(e);if(u.length!==U(t).length)return!1;var s=n.concat([e]),a=r.concat([t]);for(i=u.length-1;i>=0;){var l=u[i];if(!z(l,t)||!Je(t[l],e[l],s,a))return!1;i-=1}return!0}var Xe=l(function(e,t){return Je(e,t,[],[])});function Ze(e,t,n){var r,o;if("function"==typeof e.indexOf)switch(typeof t){case"number":if(0===t){for(r=1/t;n=0}function et(e){return'"'+e.replace(/\\/g,"\\\\").replace(/[\b]/g,"\\b").replace(/\f/g,"\\f").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v").replace(/\0/g,"\\0").replace(/"/g,'\\"')+'"'}var tt=function(e){return(e<10?"0":"")+e},nt="function"==typeof Date.prototype.toISOString?function(e){return e.toISOString()}:function(e){return e.getUTCFullYear()+"-"+tt(e.getUTCMonth()+1)+"-"+tt(e.getUTCDate())+"T"+tt(e.getUTCHours())+":"+tt(e.getUTCMinutes())+":"+tt(e.getUTCSeconds())+"."+(e.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z"};function rt(e){return function(){return!e.apply(this,arguments)}}function ot(e,t){for(var n=0,r=t.length,o=[];n":e(r,o)},o=function(e,t){return C(function(t){return et(t)+": "+r(e[t])},t.slice().sort())};switch(Object.prototype.toString.call(t)){case"[object Arguments]":return"(function() { return arguments; }("+C(r,t).join(", ")+"))";case"[object Array]":return"["+C(r,t).concat(o(t,at(function(e){return/^\d+$/.test(e)},U(t)))).join(", ")+"]";case"[object Boolean]":return"object"==typeof t?"new Boolean("+r(t.valueOf())+")":t.toString();case"[object Date]":return"new Date("+(isNaN(t.valueOf())?r(NaN):et(nt(t)))+")";case"[object Null]":return"null";case"[object Number]":return"object"==typeof t?"new Number("+r(t.valueOf())+")":1/t==-1/0?"-0":t.toString(10);case"[object String]":return"object"==typeof t?"new String("+r(t.valueOf())+")":et(t);case"[object Undefined]":return"undefined";default:if("function"==typeof t.toString){var i=t.toString();if("[object Object]"!==i)return i}return"{"+o(t,U(t)).join(", ")+"}"}}(e,[])}),ct=l(function(e,t){if(b(e)){if(b(t))return e.concat(t);throw new TypeError(lt(t)+" is not an array")}if(A(e)){if(A(t))return e+t;throw new TypeError(lt(t)+" is not a string")}if(null!=e&&be(e["fantasy-land/concat"]))return e["fantasy-land/concat"](t);if(null!=e&&be(e.concat))return e.concat(t);throw new TypeError(lt(e)+' does not have a method named "concat" or "fantasy-land/concat"')}),pt=o(function(e){return d(J(S,0,$(function(e){return e[0].length},e)),function(){for(var t=0;t10)throw new Error("Constructor with greater than ten arguments");return 0===e?function(){return new t}:we(ge(e,function(e,n,r,o,i,u,s,a,l,c){switch(arguments.length){case 1:return new t(e);case 2:return new t(e,n);case 3:return new t(e,n,r);case 4:return new t(e,n,r,o);case 5:return new t(e,n,r,o,i);case 6:return new t(e,n,r,o,i,u);case 7:return new t(e,n,r,o,i,u,s);case 8:return new t(e,n,r,o,i,u,s,a);case 9:return new t(e,n,r,o,i,u,s,a,l);case 10:return new t(e,n,r,o,i,u,s,a,l,c)}}))}),ft=o(function(e){return dt(e.length,e)}),ht=l(Qe),vt=l(function(e,t){return h(J(S,0,G("length",t)),function(){var n=arguments,r=this;return e.apply(r,C(function(e){return e.apply(r,n)},t))})}),gt=function(){function e(e,t,n,r){this.valueFn=e,this.valueAcc=t,this.keyFn=n,this.xf=r,this.inputs={}}return e.prototype["@@transducer/init"]=w.init,e.prototype["@@transducer/result"]=function(e){var t;for(t in this.inputs)if(z(t,this.inputs)&&(e=this.xf["@@transducer/step"](e,this.inputs[t]))["@@transducer/reduced"]){e=e["@@transducer/value"];break}return this.inputs=null,this.xf["@@transducer/result"](e)},e.prototype["@@transducer/step"]=function(e,t){var n=this.keyFn(t);return this.inputs[n]=this.inputs[n]||[n,this.valueAcc],this.inputs[n][1]=this.valueFn(this.inputs[n][1],t),e},e}(),yt=f(4,[],x([],f(4,[],function(e,t,n,r){return new gt(e,t,n,r)}),function(e,t,n,r){return j(function(r,o){var i=n(o);return r[i]=e(z(i,r)?r[i]:t,o),r},{},r)})),bt=yt(function(e,t){return e+1},0),mt=c(-1),xt=l(function(e,t){return null==t||t!=t?e:t}),Et=g(function(e,t,n){var r=e(t),o=e(n);return r>o?-1:r0?(this.n-=1,e):this.xf["@@transducer/step"](e,t)},e}(),Dt=l(x(["drop"],l(function(e,t){return new Ft(e,t)}),function(e,t){return Ne(Math.max(0,e),1/0,t)})),Pt=function(){function e(e,t){this.xf=t,this.n=e,this.i=0}return e.prototype["@@transducer/init"]=w.init,e.prototype["@@transducer/result"]=w.result,e.prototype["@@transducer/step"]=function(e,t){this.i+=1;var n=0===this.n?e:this.xf["@@transducer/step"](e,t);return this.n>=0&&this.i>=this.n?E(n):n},e}(),Rt=l(x(["take"],l(function(e,t){return new Pt(e,t)}),function(e,t){return Ne(0,e<0?1/0:e,t)}));var Tt=function(){function e(e,t){this.xf=t,this.pos=0,this.full=!1,this.acc=new Array(e)}return e.prototype["@@transducer/init"]=w.init,e.prototype["@@transducer/result"]=function(e){return this.acc=null,this.xf["@@transducer/result"](e)},e.prototype["@@transducer/step"]=function(e,t){return this.full&&(e=this.xf["@@transducer/step"](e,this.acc[this.pos])),this.store(t),e},e.prototype.store=function(e){this.acc[this.pos]=e,this.pos+=1,this.pos===this.acc.length&&(this.pos=0,this.full=!0)},e}(),It=l(x([],l(function(e,t){return new Tt(e,t)}),function(e,t){return Rt(e=0&&e(t[n]);)n-=1;return Ne(0,n+1,t)})),Nt=function(){function e(e,t){this.xf=t,this.pred=e,this.lastValue=void 0,this.seenFirstValue=!1}return e.prototype["@@transducer/init"]=w.init,e.prototype["@@transducer/result"]=w.result,e.prototype["@@transducer/step"]=function(e,t){var n=!1;return this.seenFirstValue?this.pred(this.lastValue,t)&&(n=!0):this.seenFirstValue=!0,this.lastValue=t,n?e:this.xf["@@transducer/step"](e,t)},e}(),zt=l(function(e,t){return new Nt(e,t)}),Bt=l(function(e,t){var n=e<0?t.length+e:e;return A(t)?t.charAt(n):t[n]}),Vt=Bt(-1),Lt=l(x([],zt,function(e,t){var n=[],r=1,o=t.length;if(0!==o)for(n[0]=t[0];r=0?t.length-e:0,t)}),Gt=l(function(e,t){return Xe(Yt(e.length,t),e)}),Jt=g(function(e,t,n){return Xe(e(t),e(n))}),Xt=g(function(e,t,n){return Xe(t[e],n[e])}),Zt=l(function e(t,n){var r,o,i,u={};for(o in n)i=typeof(r=t[o]),u[o]="function"===i?r(n[o]):r&&"object"===i?e(r,n[o]):n[o];return u}),Qt=function(){function e(e,t){this.xf=t,this.f=e,this.found=!1}return e.prototype["@@transducer/init"]=w.init,e.prototype["@@transducer/result"]=function(e){return this.found||(e=this.xf["@@transducer/step"](e,void 0)),this.xf["@@transducer/result"](e)},e.prototype["@@transducer/step"]=function(e,t){return this.f(t)&&(this.found=!0,e=E(this.xf["@@transducer/step"](e,t))),e},e}(),en=l(x(["find"],l(function(e,t){return new Qt(e,t)}),function(e,t){for(var n=0,r=t.length;n=0;){if(e(t[n]))return t[n];n-=1}})),un=function(){function e(e,t){this.xf=t,this.f=e,this.idx=-1,this.lastIdx=-1}return e.prototype["@@transducer/init"]=w.init,e.prototype["@@transducer/result"]=function(e){return this.xf["@@transducer/result"](this.xf["@@transducer/step"](e,this.lastIdx))},e.prototype["@@transducer/step"]=function(e,t){return this.idx+=1,this.f(t)&&(this.lastIdx=this.idx),e},e}(),sn=l(x([],l(function(e,t){return new un(e,t)}),function(e,t){for(var n=t.length-1;n>=0;){if(e(t[n]))return n;n-=1}return-1})),an=o(Oe(!0)),ln=o(function(e){return h(e.length,function(t,n){var r=Array.prototype.slice.call(arguments,0);return r[0]=n,r[1]=t,e.apply(this,r)})}),cn=l(Me("forEach",function(e,t){for(var n=t.length,r=0;rt}),gn=l(function(e,t){return e>=t}),yn=l(z),bn=l(function(e,t){return e in t}),mn=Bt(0);function xn(e){return e}var En=o(xn),wn=g(function(e,t,n){return h(Math.max(e.length,t.length,n.length),function(){return e.apply(this,arguments)?t.apply(this,arguments):n.apply(this,arguments)})}),_n=c(1),On=yt(function(e,t){return t},null),Sn=l(function(e,t){return"function"!=typeof t.indexOf||b(t)?Ze(t,e,0):t.indexOf(e)}),Cn=Ne(0,-1),An=g(function(e,t,n){return ot(function(t){return He(e,t,n)},t)}),kn=g(function(e,t,n){e=e=0?e:n.length;var r=Array.prototype.slice.call(n,0);return r.splice(e,0,t),r}),Fn=g(function(e,t,n){return e=e=0?e:n.length,[].concat(Array.prototype.slice.call(n,0,e),t,Array.prototype.slice.call(n,e))});function Dn(e,t,n){var r,o=typeof e;switch(o){case"string":case"number":return 0===e&&1/e==-1/0?!!n._items["-0"]||(t&&(n._items["-0"]=!0),!1):null!==n._nativeSet?t?(r=n._nativeSet.size,n._nativeSet.add(e),n._nativeSet.size===r):n._nativeSet.has(e):o in n._items?e in n._items[o]||(t&&(n._items[o][e]=!0),!1):(t&&(n._items[o]={},n._items[o][e]=!0),!1);case"boolean":if(o in n._items){var i=e?1:0;return!!n._items[o][i]||(t&&(n._items[o][i]=!0),!1)}return t&&(n._items[o]=e?[!1,!0]:[!0,!1]),!1;case"function":return null!==n._nativeSet?t?(r=n._nativeSet.size,n._nativeSet.add(e),n._nativeSet.size===r):n._nativeSet.has(e):o in n._items?!!Qe(e,n._items[o])||(t&&n._items[o].push(e),!1):(t&&(n._items[o]=[e]),!1);case"undefined":return!!n._items[o]||(t&&(n._items[o]=!0),!1);case"object":if(null===e)return!!n._items.null||(t&&(n._items.null=!0),!1);default:return(o=Object.prototype.toString.call(e))in n._items?!!Qe(e,n._items[o])||(t&&n._items[o].push(e),!1):(t&&(n._items[o]=[e]),!1)}}var Pn=function(){function e(){this._nativeSet="function"==typeof Set?new Set:null,this._items={}}return e.prototype.add=function(e){return!Dn(e,!0,this)},e.prototype.has=function(e){return Dn(e,!1,this)},e}(),Rn=l(function(e,t){for(var n,r,o=new Pn,i=[],u=0;ut.length?(n=e,r=t):(n=t,r=e),Tn(ot(ln(Qe)(n),r))}),jn=l(Me("intersperse",function(e,t){for(var n=[],r=0,o=t.length;r=0;){if(Xe(t[n],e))return n;n-=1}return-1}return t.lastIndexOf(e)});function Xn(e){return"[object Number]"===Object.prototype.toString.call(e)}var Zn=o(function(e){return null!=e&&Xn(e.length)?e.length:NaN}),Qn=l(function(e,t){return function(n){return function(r){return $(function(e){return t(e,r)},n(e(r)))}}}),er=o(function(e){return Qn(Bt(e),Ct(e))}),tr=o(function(e){return Qn(H(e),ve(e))}),nr=o(function(e){return Qn(Y(e),de(e))}),rr=l(function(e,t){return e=0;)i=e(n[r],i[0]),o[r]=i[1],r-=1;return[o,i[0]]}),sr=l(function(e,t){return j(function(n,r){return n[r]=e(t[r],r,t),n},{},U(t))}),ar=l(function(e,t){return t.match(e)||[]}),lr=l(function(e,t){return fe(e)?!fe(t)||t<1?NaN:(e%t+t)%t:NaN}),cr=g(function(e,t,n){return e(n)>e(t)?n:t}),pr=J(c,0),dr=o(function(e){return pr(e)/e.length}),fr=o(function(e){var t=e.length;if(0===t)return NaN;var n=2-t%2,r=(t-n)/2;return dr(Array.prototype.slice.call(e,0).sort(function(e,t){return et?1:0}).slice(r,r+n))}),hr=l(function(e,t){var n={};return d(t.length,function(){var r=e.apply(this,arguments);return z(r,n)||(n[r]=t.apply(this,arguments)),n[r]})}),vr=hr(function(){return lt(arguments)}),gr=l(function(e,t){return Mn({},e,t)}),yr=o(function(e){return Mn.apply(null,[{}].concat(e))}),br=g(function(e,t,n){var r,o={};for(r in t)z(r,t)&&(o[r]=z(r,n)?e(r,t[r],n[r]):t[r]);for(r in n)z(r,n)&&!z(r,o)&&(o[r]=n[r]);return o}),mr=g(function e(t,n,r){return br(function(n,r,o){return it(r)&&it(o)?e(t,r,o):t(n,r,o)},n,r)}),xr=l(function(e,t){return mr(function(e,t,n){return t},e,t)}),Er=l(function(e,t){return mr(function(e,t,n){return n},e,t)}),wr=g(function(e,t,n){return mr(function(t,n,r){return e(n,r)},t,n)}),_r=g(function(e,t,n){return br(function(t,n,r){return e(n,r)},t,n)}),Or=l(function(e,t){return t0&&e(H(t,n))}),Ur=l(function(e,t){for(var n={},r=0;r=0;)t=e(n[r],t),r-=1;return t}),uo=f(4,[],function(e,t,n,r){return j(function(n,r){return e(n,r)?t(n,r):E(n)},n,r)}),so=o(E),ao=l(function(e,t){var n,r=Number(t),o=0;if(r<0||isNaN(r))throw new RangeError("n must be a non-negative number");for(n=new Array(r);oo?1:0})}),yo=l(function(e,t){return Array.prototype.slice.call(t,0).sort(function(t,n){for(var r=0,o=0;0===r&&o=0&&e(t[n]);)n-=1;return Ne(n+1,1/0,t)}),Ao=function(){function e(e,t){this.xf=t,this.f=e}return e.prototype["@@transducer/init"]=w.init,e.prototype["@@transducer/result"]=w.result,e.prototype["@@transducer/step"]=function(e,t){return this.f(t)?this.xf["@@transducer/step"](e,t):E(e)},e}(),ko=l(x(["takeWhile"],l(function(e,t){return new Ao(e,t)}),function(e,t){for(var n=0,r=t.length;n{};let n,s="";switch(e){case o.TRACE:case o.INFO:n=window.console.log,s="color: white; background-color: #3166A2;";break;case r.DEBUG:case o.WARNING:n=window.console.warn,s="color: white; background-color: #E9B606;";break;case o.ERROR:case o.FATAL:n=window.console.error,s="color: white; background-color: #FF0000;"}let a=`${s&&u?"%c":""}[${i[e].toUpperCase()}]`;return s&&u?n.bind(window.console,a,s):n.bind(window.console,a)}u=!1;let c={setDebugLevel(e){a=e},setLogLevel(e){s=e}};Object.defineProperties(c,{trace:{get:()=>l(o.TRACE,s),configurable:!1,enumerable:!1},info:{get:()=>l(o.INFO,s),configurable:!1,enumerable:!1},warning:{get:()=>l(o.WARNING,s),configurable:!1,enumerable:!1},error:{get:()=>l(o.ERROR,s),configurable:!1,enumerable:!1},fatal:{get:()=>l(o.FATAL,s),configurable:!1,enumerable:!1},debug:{get:()=>l(r.DEBUG,a),configurable:!1,enumerable:!1}}),Object.freeze(c),t.default=c},function(e,t,n){var r; +window.dash_table=function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=22)}([function(e,t,n){e.exports=n(26)()},function(e,t){e.exports=window.React},function(e,t,n){"use strict";function r(e){return null!=e&&"object"==typeof e&&!0===e["@@functional/placeholder"]}function o(e){return function t(n){return 0===arguments.length||r(n)?t:e.apply(this,arguments)}}n.r(t);var i=o(function(e){return function(){return e}}),u=i(!1),s=i(!0),a={"@@functional/placeholder":!0};function l(e){return function t(n,i){switch(arguments.length){case 0:return t;case 1:return r(n)?t:o(function(t){return e(n,t)});default:return r(n)&&r(i)?t:r(n)?o(function(t){return e(t,i)}):r(i)?o(function(t){return e(n,t)}):e(n,i)}}}var c=l(function(e,t){return Number(e)+Number(t)});function p(e,t){var n;e=e||[],t=t||[];var r=e.length,o=t.length,i=[];for(n=0;n=arguments.length)?a=t[s]:(a=arguments[i],i+=1),o[s]=a,r(a)||(u-=1),s+=1}return u<=0?n.apply(this,o):d(u,f(e,o,n))}}var h=l(function(e,t){return 1===e?o(t):d(e,f(e,[],t))}),v=o(function(e){return h(e.length,function(){var t=0,n=arguments[0],r=arguments[arguments.length-1],o=Array.prototype.slice.call(arguments,0);return o[0]=function(){var e=n.apply(this,p(arguments,[t,r]));return t+=1,e},e.apply(this,o)})});function g(e){return function t(n,i,u){switch(arguments.length){case 0:return t;case 1:return r(n)?t:l(function(t,r){return e(n,t,r)});case 2:return r(n)&&r(i)?t:r(n)?l(function(t,n){return e(t,i,n)}):r(i)?l(function(t,r){return e(n,t,r)}):o(function(t){return e(n,i,t)});default:return r(n)&&r(i)&&r(u)?t:r(n)&&r(i)?l(function(t,n){return e(t,n,u)}):r(n)&&r(u)?l(function(t,n){return e(t,i,n)}):r(i)&&r(u)?l(function(t,r){return e(n,t,r)}):r(n)?o(function(t){return e(t,i,u)}):r(i)?o(function(t){return e(n,t,u)}):r(u)?o(function(t){return e(n,i,t)}):e(n,i,u)}}}var y=g(function(e,t,n){if(t>=n.length||t<-n.length)return n;var r=(t<0?n.length:0)+t,o=p(n);return o[r]=e(n[r]),o}),b=Array.isArray||function(e){return null!=e&&e.length>=0&&"[object Array]"===Object.prototype.toString.call(e)};function m(e){return"function"==typeof e["@@transducer/step"]}function x(e,t,n){return function(){if(0===arguments.length)return n();var r=Array.prototype.slice.call(arguments,0),o=r.pop();if(!b(o)){for(var i=0;ie?t:e});function C(e,t){for(var n=0,r=t.length,o=Array(r);n0&&(e.hasOwnProperty(0)&&e.hasOwnProperty(e.length-1)))))}),F=function(){function e(e){this.f=e}return e.prototype["@@transducer/init"]=function(){throw new Error("init not implemented on XWrap")},e.prototype["@@transducer/result"]=function(e){return e},e.prototype["@@transducer/step"]=function(e,t){return this.f(e,t)},e}();function D(e){return new F(e)}var P=l(function(e,t){return d(e.length,function(){return e.apply(t,arguments)})});function R(e,t,n){for(var r=n.next();!r.done;){if((t=e["@@transducer/step"](t,r.value))&&t["@@transducer/reduced"]){t=t["@@transducer/value"];break}r=n.next()}return e["@@transducer/result"](t)}function T(e,t,n,r){return e["@@transducer/result"](n[r](P(e["@@transducer/step"],e),t))}var j="undefined"!=typeof Symbol?Symbol.iterator:"@@iterator";function I(e,t,n){if("function"==typeof e&&(e=D(e)),k(n))return function(e,t,n){for(var r=0,o=n.length;r=0;)z(t=W[n],e)&&!U(r,t)&&(r[r.length]=t),n-=1;return r}:function(e){return Object(e)!==e?[]:Object.keys(e)}),$=l(x(["fantasy-land/map","map"],N,function(e,t){switch(Object.prototype.toString.call(t)){case"[object Function]":return h(t.length,function(){return e.call(this,t.apply(this,arguments))});case"[object Object]":return I(function(n,r){return n[r]=e(t[r]),n},{},q(t));default:return C(e,t)}})),H=l(function(e,t){for(var n=t,r=0;r=0?r:0);no?1:0}),de=g(function(e,t,n){var r={};for(var o in n)r[o]=n[o];return r[e]=t,r}),fe=Number.isInteger||function(e){return e<<0===e},he=o(function(e){return null==e}),ve=g(function e(t,n,r){if(0===t.length)return n;var o=t[0];if(t.length>1){var i=!he(r)&&z(o,r)?r[o]:fe(t[1])?[]:{};n=e(Array.prototype.slice.call(t,1),n,i)}if(fe(o)&&b(r)){var u=[].concat(r);return u[o]=n,u}return de(o,n,r)}),ge=l(function(e,t){switch(e){case 0:return function(){return t.call(this)};case 1:return function(e){return t.call(this,e)};case 2:return function(e,n){return t.call(this,e,n)};case 3:return function(e,n,r){return t.call(this,e,n,r)};case 4:return function(e,n,r,o){return t.call(this,e,n,r,o)};case 5:return function(e,n,r,o,i){return t.call(this,e,n,r,o,i)};case 6:return function(e,n,r,o,i,u){return t.call(this,e,n,r,o,i,u)};case 7:return function(e,n,r,o,i,u,s){return t.call(this,e,n,r,o,i,u,s)};case 8:return function(e,n,r,o,i,u,s,a){return t.call(this,e,n,r,o,i,u,s,a)};case 9:return function(e,n,r,o,i,u,s,a,l){return t.call(this,e,n,r,o,i,u,s,a,l)};case 10:return function(e,n,r,o,i,u,s,a,l,c){return t.call(this,e,n,r,o,i,u,s,a,l,c)};default:throw new Error("First argument to nAry must be a non-negative integer no greater than ten")}}),ye=o(function(e){return ge(2,e)});function be(e){return"[object Function]"===Object.prototype.toString.call(e)}var me=l(function(e,t){var n=h(e,t);return h(e,function(){return I(re,$(n,arguments[0]),Array.prototype.slice.call(arguments,1))})}),xe=o(function(e){return me(e.length,e)}),Ee=l(function(e,t){return be(e)?function(){return e.apply(this,arguments)&&t.apply(this,arguments)}:xe(Z)(e,t)}),we=o(function(e){return h(e.length,e)}),_e=we(function(e){return e.apply(this,Array.prototype.slice.call(arguments,1))});function Oe(e){return function t(n){for(var r,o,i,u=[],s=0,a=n.length;st)throw new Error("min must not be greater than max in clamp(min, max, value)");return nt?t:n});function ke(e){return new RegExp(e.source,(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.sticky?"y":"")+(e.unicode?"u":""))}var Fe=o(function(e){return null===e?"Null":void 0===e?"Undefined":Object.prototype.toString.call(e).slice(8,-1)});function De(e,t,n,r){var o=function(o){for(var i=t.length,u=0;u=0;){if(n[i]===e)return r[i]===t;i-=1}switch(o){case"Map":return e.size===t.size&&Ge(e.entries(),t.entries(),n.concat([e]),r.concat([t]));case"Set":return e.size===t.size&&Ge(e.values(),t.values(),n.concat([e]),r.concat([t]));case"Arguments":case"Array":case"Object":case"Boolean":case"Number":case"String":case"Date":case"Error":case"RegExp":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"ArrayBuffer":break;default:return!1}var u=q(e);if(u.length!==q(t).length)return!1;var s=n.concat([e]),a=r.concat([t]);for(i=u.length-1;i>=0;){var l=u[i];if(!z(l,t)||!Je(t[l],e[l],s,a))return!1;i-=1}return!0}var Xe=l(function(e,t){return Je(e,t,[],[])});function Ze(e,t,n){var r,o;if("function"==typeof e.indexOf)switch(typeof t){case"number":if(0===t){for(r=1/t;n=0}function et(e){return'"'+e.replace(/\\/g,"\\\\").replace(/[\b]/g,"\\b").replace(/\f/g,"\\f").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v").replace(/\0/g,"\\0").replace(/"/g,'\\"')+'"'}var tt=function(e){return(e<10?"0":"")+e},nt="function"==typeof Date.prototype.toISOString?function(e){return e.toISOString()}:function(e){return e.getUTCFullYear()+"-"+tt(e.getUTCMonth()+1)+"-"+tt(e.getUTCDate())+"T"+tt(e.getUTCHours())+":"+tt(e.getUTCMinutes())+":"+tt(e.getUTCSeconds())+"."+(e.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z"};function rt(e){return function(){return!e.apply(this,arguments)}}function ot(e,t){for(var n=0,r=t.length,o=[];n":e(r,o)},o=function(e,t){return C(function(t){return et(t)+": "+r(e[t])},t.slice().sort())};switch(Object.prototype.toString.call(t)){case"[object Arguments]":return"(function() { return arguments; }("+C(r,t).join(", ")+"))";case"[object Array]":return"["+C(r,t).concat(o(t,at(function(e){return/^\d+$/.test(e)},q(t)))).join(", ")+"]";case"[object Boolean]":return"object"==typeof t?"new Boolean("+r(t.valueOf())+")":t.toString();case"[object Date]":return"new Date("+(isNaN(t.valueOf())?r(NaN):et(nt(t)))+")";case"[object Null]":return"null";case"[object Number]":return"object"==typeof t?"new Number("+r(t.valueOf())+")":1/t==-1/0?"-0":t.toString(10);case"[object String]":return"object"==typeof t?"new String("+r(t.valueOf())+")":et(t);case"[object Undefined]":return"undefined";default:if("function"==typeof t.toString){var i=t.toString();if("[object Object]"!==i)return i}return"{"+o(t,q(t)).join(", ")+"}"}}(e,[])}),ct=l(function(e,t){if(b(e)){if(b(t))return e.concat(t);throw new TypeError(lt(t)+" is not an array")}if(A(e)){if(A(t))return e+t;throw new TypeError(lt(t)+" is not a string")}if(null!=e&&be(e["fantasy-land/concat"]))return e["fantasy-land/concat"](t);if(null!=e&&be(e.concat))return e.concat(t);throw new TypeError(lt(e)+' does not have a method named "concat" or "fantasy-land/concat"')}),pt=o(function(e){return d(J(S,0,$(function(e){return e[0].length},e)),function(){for(var t=0;t10)throw new Error("Constructor with greater than ten arguments");return 0===e?function(){return new t}:we(ge(e,function(e,n,r,o,i,u,s,a,l,c){switch(arguments.length){case 1:return new t(e);case 2:return new t(e,n);case 3:return new t(e,n,r);case 4:return new t(e,n,r,o);case 5:return new t(e,n,r,o,i);case 6:return new t(e,n,r,o,i,u);case 7:return new t(e,n,r,o,i,u,s);case 8:return new t(e,n,r,o,i,u,s,a);case 9:return new t(e,n,r,o,i,u,s,a,l);case 10:return new t(e,n,r,o,i,u,s,a,l,c)}}))}),ft=o(function(e){return dt(e.length,e)}),ht=l(Qe),vt=l(function(e,t){return h(J(S,0,G("length",t)),function(){var n=arguments,r=this;return e.apply(r,C(function(e){return e.apply(r,n)},t))})}),gt=function(){function e(e,t,n,r){this.valueFn=e,this.valueAcc=t,this.keyFn=n,this.xf=r,this.inputs={}}return e.prototype["@@transducer/init"]=w.init,e.prototype["@@transducer/result"]=function(e){var t;for(t in this.inputs)if(z(t,this.inputs)&&(e=this.xf["@@transducer/step"](e,this.inputs[t]))["@@transducer/reduced"]){e=e["@@transducer/value"];break}return this.inputs=null,this.xf["@@transducer/result"](e)},e.prototype["@@transducer/step"]=function(e,t){var n=this.keyFn(t);return this.inputs[n]=this.inputs[n]||[n,this.valueAcc],this.inputs[n][1]=this.valueFn(this.inputs[n][1],t),e},e}(),yt=f(4,[],x([],f(4,[],function(e,t,n,r){return new gt(e,t,n,r)}),function(e,t,n,r){return I(function(r,o){var i=n(o);return r[i]=e(z(i,r)?r[i]:t,o),r},{},r)})),bt=yt(function(e,t){return e+1},0),mt=c(-1),xt=l(function(e,t){return null==t||t!=t?e:t}),Et=g(function(e,t,n){var r=e(t),o=e(n);return r>o?-1:r0?(this.n-=1,e):this.xf["@@transducer/step"](e,t)},e}(),Dt=l(x(["drop"],l(function(e,t){return new Ft(e,t)}),function(e,t){return Ne(Math.max(0,e),1/0,t)})),Pt=function(){function e(e,t){this.xf=t,this.n=e,this.i=0}return e.prototype["@@transducer/init"]=w.init,e.prototype["@@transducer/result"]=w.result,e.prototype["@@transducer/step"]=function(e,t){this.i+=1;var n=0===this.n?e:this.xf["@@transducer/step"](e,t);return this.n>=0&&this.i>=this.n?E(n):n},e}(),Rt=l(x(["take"],l(function(e,t){return new Pt(e,t)}),function(e,t){return Ne(0,e<0?1/0:e,t)}));var Tt=function(){function e(e,t){this.xf=t,this.pos=0,this.full=!1,this.acc=new Array(e)}return e.prototype["@@transducer/init"]=w.init,e.prototype["@@transducer/result"]=function(e){return this.acc=null,this.xf["@@transducer/result"](e)},e.prototype["@@transducer/step"]=function(e,t){return this.full&&(e=this.xf["@@transducer/step"](e,this.acc[this.pos])),this.store(t),e},e.prototype.store=function(e){this.acc[this.pos]=e,this.pos+=1,this.pos===this.acc.length&&(this.pos=0,this.full=!0)},e}(),jt=l(x([],l(function(e,t){return new Tt(e,t)}),function(e,t){return Rt(e=0&&e(t[n]);)n-=1;return Ne(0,n+1,t)})),Nt=function(){function e(e,t){this.xf=t,this.pred=e,this.lastValue=void 0,this.seenFirstValue=!1}return e.prototype["@@transducer/init"]=w.init,e.prototype["@@transducer/result"]=w.result,e.prototype["@@transducer/step"]=function(e,t){var n=!1;return this.seenFirstValue?this.pred(this.lastValue,t)&&(n=!0):this.seenFirstValue=!0,this.lastValue=t,n?e:this.xf["@@transducer/step"](e,t)},e}(),zt=l(function(e,t){return new Nt(e,t)}),Bt=l(function(e,t){var n=e<0?t.length+e:e;return A(t)?t.charAt(n):t[n]}),Vt=Bt(-1),Lt=l(x([],zt,function(e,t){var n=[],r=1,o=t.length;if(0!==o)for(n[0]=t[0];r=0?t.length-e:0,t)}),Gt=l(function(e,t){return Xe(Yt(e.length,t),e)}),Jt=g(function(e,t,n){return Xe(e(t),e(n))}),Xt=g(function(e,t,n){return Xe(t[e],n[e])}),Zt=l(function e(t,n){var r,o,i,u={};for(o in n)i=typeof(r=t[o]),u[o]="function"===i?r(n[o]):r&&"object"===i?e(r,n[o]):n[o];return u}),Qt=function(){function e(e,t){this.xf=t,this.f=e,this.found=!1}return e.prototype["@@transducer/init"]=w.init,e.prototype["@@transducer/result"]=function(e){return this.found||(e=this.xf["@@transducer/step"](e,void 0)),this.xf["@@transducer/result"](e)},e.prototype["@@transducer/step"]=function(e,t){return this.f(t)&&(this.found=!0,e=E(this.xf["@@transducer/step"](e,t))),e},e}(),en=l(x(["find"],l(function(e,t){return new Qt(e,t)}),function(e,t){for(var n=0,r=t.length;n=0;){if(e(t[n]))return t[n];n-=1}})),un=function(){function e(e,t){this.xf=t,this.f=e,this.idx=-1,this.lastIdx=-1}return e.prototype["@@transducer/init"]=w.init,e.prototype["@@transducer/result"]=function(e){return this.xf["@@transducer/result"](this.xf["@@transducer/step"](e,this.lastIdx))},e.prototype["@@transducer/step"]=function(e,t){return this.idx+=1,this.f(t)&&(this.lastIdx=this.idx),e},e}(),sn=l(x([],l(function(e,t){return new un(e,t)}),function(e,t){for(var n=t.length-1;n>=0;){if(e(t[n]))return n;n-=1}return-1})),an=o(Oe(!0)),ln=o(function(e){return h(e.length,function(t,n){var r=Array.prototype.slice.call(arguments,0);return r[0]=n,r[1]=t,e.apply(this,r)})}),cn=l(Me("forEach",function(e,t){for(var n=t.length,r=0;rt}),gn=l(function(e,t){return e>=t}),yn=l(z),bn=l(function(e,t){return e in t}),mn=Bt(0);function xn(e){return e}var En=o(xn),wn=g(function(e,t,n){return h(Math.max(e.length,t.length,n.length),function(){return e.apply(this,arguments)?t.apply(this,arguments):n.apply(this,arguments)})}),_n=c(1),On=yt(function(e,t){return t},null),Sn=l(function(e,t){return"function"!=typeof t.indexOf||b(t)?Ze(t,e,0):t.indexOf(e)}),Cn=Ne(0,-1),An=g(function(e,t,n){return ot(function(t){return He(e,t,n)},t)}),kn=g(function(e,t,n){e=e=0?e:n.length;var r=Array.prototype.slice.call(n,0);return r.splice(e,0,t),r}),Fn=g(function(e,t,n){return e=e=0?e:n.length,[].concat(Array.prototype.slice.call(n,0,e),t,Array.prototype.slice.call(n,e))});function Dn(e,t,n){var r,o=typeof e;switch(o){case"string":case"number":return 0===e&&1/e==-1/0?!!n._items["-0"]||(t&&(n._items["-0"]=!0),!1):null!==n._nativeSet?t?(r=n._nativeSet.size,n._nativeSet.add(e),n._nativeSet.size===r):n._nativeSet.has(e):o in n._items?e in n._items[o]||(t&&(n._items[o][e]=!0),!1):(t&&(n._items[o]={},n._items[o][e]=!0),!1);case"boolean":if(o in n._items){var i=e?1:0;return!!n._items[o][i]||(t&&(n._items[o][i]=!0),!1)}return t&&(n._items[o]=e?[!1,!0]:[!0,!1]),!1;case"function":return null!==n._nativeSet?t?(r=n._nativeSet.size,n._nativeSet.add(e),n._nativeSet.size===r):n._nativeSet.has(e):o in n._items?!!Qe(e,n._items[o])||(t&&n._items[o].push(e),!1):(t&&(n._items[o]=[e]),!1);case"undefined":return!!n._items[o]||(t&&(n._items[o]=!0),!1);case"object":if(null===e)return!!n._items.null||(t&&(n._items.null=!0),!1);default:return(o=Object.prototype.toString.call(e))in n._items?!!Qe(e,n._items[o])||(t&&n._items[o].push(e),!1):(t&&(n._items[o]=[e]),!1)}}var Pn=function(){function e(){this._nativeSet="function"==typeof Set?new Set:null,this._items={}}return e.prototype.add=function(e){return!Dn(e,!0,this)},e.prototype.has=function(e){return Dn(e,!1,this)},e}(),Rn=l(function(e,t){for(var n,r,o=new Pn,i=[],u=0;ut.length?(n=e,r=t):(n=t,r=e),Tn(ot(ln(Qe)(n),r))}),In=l(Me("intersperse",function(e,t){for(var n=[],r=0,o=t.length;r=0;){if(Xe(t[n],e))return n;n-=1}return-1}return t.lastIndexOf(e)});function Xn(e){return"[object Number]"===Object.prototype.toString.call(e)}var Zn=o(function(e){return null!=e&&Xn(e.length)?e.length:NaN}),Qn=l(function(e,t){return function(n){return function(r){return $(function(e){return t(e,r)},n(e(r)))}}}),er=o(function(e){return Qn(Bt(e),Ct(e))}),tr=o(function(e){return Qn(H(e),ve(e))}),nr=o(function(e){return Qn(Y(e),de(e))}),rr=l(function(e,t){return e=0;)i=e(n[r],i[0]),o[r]=i[1],r-=1;return[o,i[0]]}),sr=l(function(e,t){return I(function(n,r){return n[r]=e(t[r],r,t),n},{},q(t))}),ar=l(function(e,t){return t.match(e)||[]}),lr=l(function(e,t){return fe(e)?!fe(t)||t<1?NaN:(e%t+t)%t:NaN}),cr=g(function(e,t,n){return e(n)>e(t)?n:t}),pr=J(c,0),dr=o(function(e){return pr(e)/e.length}),fr=o(function(e){var t=e.length;if(0===t)return NaN;var n=2-t%2,r=(t-n)/2;return dr(Array.prototype.slice.call(e,0).sort(function(e,t){return et?1:0}).slice(r,r+n))}),hr=l(function(e,t){var n={};return d(t.length,function(){var r=e.apply(this,arguments);return z(r,n)||(n[r]=t.apply(this,arguments)),n[r]})}),vr=hr(function(){return lt(arguments)}),gr=l(function(e,t){return Mn({},e,t)}),yr=o(function(e){return Mn.apply(null,[{}].concat(e))}),br=g(function(e,t,n){var r,o={};for(r in t)z(r,t)&&(o[r]=z(r,n)?e(r,t[r],n[r]):t[r]);for(r in n)z(r,n)&&!z(r,o)&&(o[r]=n[r]);return o}),mr=g(function e(t,n,r){return br(function(n,r,o){return it(r)&&it(o)?e(t,r,o):t(n,r,o)},n,r)}),xr=l(function(e,t){return mr(function(e,t,n){return t},e,t)}),Er=l(function(e,t){return mr(function(e,t,n){return n},e,t)}),wr=g(function(e,t,n){return mr(function(t,n,r){return e(n,r)},t,n)}),_r=g(function(e,t,n){return br(function(t,n,r){return e(n,r)},t,n)}),Or=l(function(e,t){return t0&&e(H(t,n))}),qr=l(function(e,t){for(var n={},r=0;r=0;)t=e(n[r],t),r-=1;return t}),uo=f(4,[],function(e,t,n,r){return I(function(n,r){return e(n,r)?t(n,r):E(n)},n,r)}),so=o(E),ao=l(function(e,t){var n,r=Number(t),o=0;if(r<0||isNaN(r))throw new RangeError("n must be a non-negative number");for(n=new Array(r);oo?1:0})}),yo=l(function(e,t){return Array.prototype.slice.call(t,0).sort(function(t,n){for(var r=0,o=0;0===r&&o=0&&e(t[n]);)n-=1;return Ne(n+1,1/0,t)}),Ao=function(){function e(e,t){this.xf=t,this.f=e}return e.prototype["@@transducer/init"]=w.init,e.prototype["@@transducer/result"]=w.result,e.prototype["@@transducer/step"]=function(e,t){return this.f(t)?this.xf["@@transducer/step"](e,t):E(e)},e}(),ko=l(x(["takeWhile"],l(function(e,t){return new Ao(e,t)}),function(e,t){for(var n=0,r=t.length;n{};let n,s="";switch(e){case o.TRACE:case o.INFO:n=window.console.log,s="color: white; background-color: #3166A2;";break;case r.DEBUG:case o.WARNING:n=window.console.warn,s="color: white; background-color: #E9B606;";break;case o.ERROR:case o.FATAL:n=window.console.error,s="color: white; background-color: #FF0000;"}let a=`${s&&u?"%c":""}[${i[e].toUpperCase()}]`;return s&&u?n.bind(window.console,a,s):n.bind(window.console,a)}u=!1;let c={setDebugLevel(e){a=e},setLogLevel(e){s=e}};Object.defineProperties(c,{trace:{get:()=>l(o.TRACE,s),configurable:!1,enumerable:!1},info:{get:()=>l(o.INFO,s),configurable:!1,enumerable:!1},warning:{get:()=>l(o.WARNING,s),configurable:!1,enumerable:!1},error:{get:()=>l(o.ERROR,s),configurable:!1,enumerable:!1},fatal:{get:()=>l(o.FATAL,s),configurable:!1,enumerable:!1},debug:{get:()=>l(r.DEBUG,a),configurable:!1,enumerable:!1}}),Object.freeze(c),t.default=c},function(e,t,n){var r; /*! Copyright (c) 2017 Jed Watson. Licensed under the MIT License (MIT), see @@ -9,10 +9,10 @@ window.dash_table=function(e){var t={};function n(r){if(t[r])return t[r].exports Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */ -!function(){"use strict";var n={}.hasOwnProperty;function o(){for(var e=[],t=0;t(0,r.isEqualArgs)(n,o)?t:(n=o)&&(t=e(...o))},t.memoizeAll=function(e){const t=[];return(...n)=>{let o=t.find(e=>(0,r.isEqualArgs)(e.args,n));return(o||t[t.push({args:n,result:e(...n)})-1]).result}};var r=n(12)},function(e,t){e.exports=window.ReactDOM},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.defaultIsNully=t.SortDirection=void 0;var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2));var o=t.SortDirection=void 0;!function(e){e.Ascending="asc",e.Descending="desc",e.None="none"}(o||(t.SortDirection=o={}));const i=t.defaultIsNully=(e=>void 0===e||null===e);t.default=((e,t,n=i)=>t.length?r.sortWith(r.map(e=>e.direction===o.Descending?r.comparator((t,r)=>{const o=e.columnId,i=t[o],u=r[o];return!n(i)&&(!!n(u)||i>u)}):r.comparator((t,r)=>{const o=e.columnId,i=t[o],u=r[o];return!n(i)&&(!!n(u)||i=0&&a.splice(t,1)}function h(e){var t=document.createElement("style");return void 0===e.attrs.type&&(e.attrs.type="text/css"),v(t,e.attrs),d(e,t),t}function v(e,t){Object.keys(t).forEach(function(n){e.setAttribute(n,t[n])})}function g(e,t){var n,r,o,i;if(t.transform&&e.css){if(!(i=t.transform(e.css)))return function(){};e.css=i}if(t.singleton){var a=s++;n=u||(u=h(t)),r=b.bind(null,n,a,!1),o=b.bind(null,n,a,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=function(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",v(t,e.attrs),d(e,t),t}(t),r=function(e,t,n){var r=n.css,o=n.sourceMap,i=void 0===t.convertToAbsoluteUrls&&o;(t.convertToAbsoluteUrls||i)&&(r=l(r));o&&(r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */");var u=new Blob([r],{type:"text/css"}),s=e.href;e.href=URL.createObjectURL(u),s&&URL.revokeObjectURL(s)}.bind(null,n,t),o=function(){f(n),n.href&&URL.revokeObjectURL(n.href)}):(n=h(t),r=function(e,t){var n=t.css,r=t.media;r&&e.setAttribute("media",r);if(e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}.bind(null,n),o=function(){f(n)});return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else o()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=o()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var n=p(e,t);return c(n,t),function(e){for(var o=[],i=0;ie===this.dataframe[t])||(this.__dataframe=n,this.__indices=o,this.target.update({viewportDataframe:n,viewportIndices:o}))}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){let t=null,n=[];for(;e.length;){e=e.replace(/^\s+/,"");let o=r.default.filter(e=>t&&e.when&&-1!==e.when.indexOf(t.name));if(o.length||(o=r.default),!(t=o.find(t=>t.regexp.test(e))||null))return{lexemes:n,valid:!1,error:e};const i=(e.match(t.regexp)||[])[0];n.push({lexeme:t,value:i}),e=e.substring(i.length)}return{lexemes:n,valid:!0}};var r=function(e){return e&&e.__esModule?e:{default:e}}(n(17))},function(e,t,n){"use strict";function r(e){return void 0!==e&&null!==e&&"object"==typeof e&&e.constructor===Object}function o(e,t,n=!1){return e===t||i(Object.values(e),Object.values(t),n)}function i(e,t,n=!1){return!!e&&e.length===t.length&&!!e.every((e,u)=>{const s=t[u];return e===s||n&&(Array.isArray(e)&&Array.isArray(s)&&i(e,s,n)||r(e)&&r(s)&&o(e,s,n))})}Object.defineProperty(t,"__esModule",{value:!0}),t.isEqual=o,t.isEqualArgs=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e&&e.__esModule?e:{default:e}}(n(3));class o{constructor(e){this.name=e}get rules(){const e=this.sheet;return Array.from(e.rules||e.cssRules)}addRule(e,t){this.sheet.addRule?this.sheet.addRule(e,t):this.sheet.insertRule(`${e} { ${t} }`,0)}deleteRule(e){this.sheet.deleteRule(e)}findRule(e){const t=this.rules,n=t.findIndex(t=>t.selectorText===e);return-1===n?null:{rule:t[n],index:n}}get sheet(){return(this.__stylesheet=this.__stylesheet||(()=>{const e=document.createElement("style");return e.type="text/css",e.id=this.name,document.getElementsByTagName("head")[0].appendChild(e),e})()).sheet}}class i{constructor(e){this.prefix=e,this.stylesheet=new o(`${e}-dynamic-inline.css`)}static unit(e,t="px"){return i.hasUnit(e)?e:`${e}${t}`}static hasUnit(e){return"string"==typeof e&&/^\d+(\.\d+)?(px|em|rem)$/.test(e)}deleteRule(e){e=`${this.prefix} ${e}`;const t=this.stylesheet.findRule(e);t&&this.stylesheet.deleteRule(t.index)}setRule(e,t){e=`${this.prefix} ${e}`;const n=this.stylesheet.findRule(e);if(n){if(n.rule.cssText===t||n.rule.cssText===`${e} { ${t} }`)return;this.stylesheet.deleteRule(n.index)}this.stylesheet.addRule(e,t),r.default.trace("stylesheet",e,t)}}t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.colIsEditable=function(e,t){return e&&(!r.has("editable",t)||t.editable)};var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isPrintableChar=function(e){return 32===e||e>=48&&e<=57||e>=96&&e<=111||e>=186&&e<=192||e>=219&&e<=222||e>=226||e>=65&&e<=90},t.isMetaKey=function(e){return-1!==o.indexOf(e)},t.isNavKey=function(e){return-1!==u.indexOf(e)},t.isArrowKey=function(e){return-1!==i.indexOf(e)},t.isCtrlKey=function(e){const t=[];window.navigator.platform.includes("Mac")?t.push(r.COMMAND_LEFT,r.COMMAND_RIGHT,r.COMMAND_FIREFOX):t.push(r.CONTROL);return t.includes(e)},t.isCtrlMetaKey=function(e){return[r.CONTROL,r.COMMAND_LEFT,r.COMMAND_RIGHT,r.COMMAND_FIREFOX].includes(e)};const r=t.KEY_CODES={MOUSE_LEFT:1,MOUSE_RIGHT:3,MOUSE_MIDDLE:2,BACKSPACE:8,COMMA:188,INSERT:45,DELETE:46,END:35,ENTER:13,ESCAPE:27,CONTROL:17,COMMAND_LEFT:91,COMMAND_RIGHT:93,COMMAND_FIREFOX:224,ALT:18,HOME:36,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,SPACE:32,SHIFT:16,CAPS_LOCK:20,TAB:9,ARROW_RIGHT:39,ARROW_LEFT:37,ARROW_UP:38,ARROW_DOWN:40,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,A:65,X:88,C:67,V:86},o=[r.ARROW_DOWN,r.ARROW_UP,r.ARROW_LEFT,r.ARROW_RIGHT,r.HOME,r.END,r.DELETE,r.BACKSPACE,r.F1,r.F2,r.F3,r.F4,r.F5,r.F6,r.F7,r.F8,r.F9,r.F10,r.F11,r.F12,r.TAB,r.PAGE_DOWN,r.PAGE_UP,r.ENTER,r.ESCAPE,r.SHIFT,r.CAPS_LOCK,r.ALT],i=[r.ARROW_DOWN,r.ARROW_UP,r.ARROW_LEFT,r.ARROW_RIGHT],u=[...i,r.TAB,r.ENTER];t.isCtrlDown=(e=>(e.ctrlKey||e.metaKey)&&!e.altKey)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.deleteRow=function(e,t){const n=t.active_cell,o=t.dataframe,i=t.end_cell,u=t.selected_cell,s=t.selected_rows,a=t.start_cell,l={dataframe:r.remove(e,1,o)};r.is(Array,n)&&n[0]===e&&(l.active_cell=[]);r.is(Array,i)&&i[0]===e&&(l.end_cell=[]);r.is(Array,u)&&u[0]===e&&(l.selected_cell=[]);r.is(Array,a)&&a[0]===e&&(l.start_cell=[0,0]);r.is(Array,s)&&r.contains(e,s)&&(l.selected_rows=r.without([e],s));return l},t.deleteColumn=function(e,t,n){const i=n.columns,u=n.dataframe;var s=o(e,t,n);const a=s.groupIndexFirst,l=s.groupIndexLast,c=r.slice(a,l+1,r.pluck("id",i));return{columns:r.remove(a,1+l-a,i),dataframe:r.map(r.omit(c),u),active_cell:[],end_cell:[],selected_cell:[],start_cell:[0]}},t.editColumnName=function(e,t,n){const i=n.columns;var u=o(e,t,n);const s=u.groupIndexFirst,a=u.groupIndexLast,l=window.prompt("Enter a new column name");let c=r.clone(i);return r.range(s,a+1).map(e=>{let n;n="Array"===r.type(i[e].name)?[e,"name",t]:[e,"name"],c=r.set(r.lensPath(n),l,c)}),{columns:c}};var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2));function o(e,t,n){const o=n.columns;let i,u;"Null"!==r.type(t)?(i=e.name[t],u=r.pluck(t,r.pluck("name",o))):(i=e.name,u=r.pluck("name",o));const s=r.findIndex(r.propEq("id",e.id),o);let a=s,l=s;for(;u[a-1]===i;)a--;for(;u[l+1]===i;)l++;return{groupIndexFirst:a,groupIndexLast:l}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LexemeType=void 0;var r=function(){return function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,o=!1,i=void 0;try{for(var u,s=e[Symbol.iterator]();!(r=(u=s.next()).done)&&(n.push(u.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{!r&&s.return&&s.return()}finally{if(o)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),o=function(e){return e&&e.__esModule?e:{default:e}}(n(3));var i=t.LexemeType=void 0;!function(e){e.And="and",e.BlockClose="close-block",e.BlockOpen="open-block",e.BinaryOperator="logical-binary-operator",e.Expression="expression",e.Or="or",e.Operand="operand",e.UnaryNot="unary-not",e.UnaryOperator="logical-unary-operator"}(i||(t.LexemeType=i={}));const u={resolve:(e,t)=>{if(o.default.trace("resolve -> exp",e,t),/^('.*')|(".*")$/.test(t.value))return t.value.slice(1,t.value.length-1);if(!/^\w+\(.*\)$/.test(t.value))return e[t.value];{const e=t.value.match(/^(\w+)\((.*)\)$/);if(!e)throw Error();{var n=r(e,3);const t=n[1],o=n[2];switch(t){case"num":return parseInt(o,10);case"str":default:return o}}}},regexp:/^(((num|str)\([^()]*\))|'([^()']|\\')+'|"([^()"]|\\")+"|\w+)/},s=[{evaluate:(e,t)=>{o.default.trace("evalute -> &&",e,t);const n=t,r=n.left.lexeme.evaluate(e,n.left),i=n.right.lexeme.evaluate(e,n.right);return r&&i},name:i.And,priority:2,regexp:/^(and\s|&&)/i,syntaxer:(e,t,n)=>Object.assign({left:e.slice(0,n),right:e.slice(n+1)},t)},{evaluate:(e,t)=>{o.default.trace("evalute -> ||",e,t);const n=t;return n.left.lexeme.evaluate(e,n.left)||n.right.lexeme.evaluate(e,n.right)},name:i.Or,priority:3,regexp:/^(or\s|\|\|)/i,syntaxer:(e,t,n)=>Object.assign({left:e.slice(0,n),right:e.slice(n+1)},t)},{name:i.BlockClose,nesting:-1,regexp:/^\)/},{evaluate:(e,t)=>{o.default.trace("evaluate -> ()",e,t);const n=t;return n.block.lexeme.evaluate(e,n.block)},name:i.BlockOpen,nesting:1,priority:1,regexp:/^\(/,syntaxer:e=>Object.assign({block:e.slice(1,e.length-1)},e[0]),when:[i.UnaryNot]},Object.assign({name:i.Operand},u),{evaluate:(e,t)=>{o.default.trace("evaluate -> binary",e,t);const n=t,r=n.left.lexeme.resolve(e,n.left),i=n.right.lexeme.resolve(e,n.right);switch(o.default.trace(`opValue: ${r}, expValue: ${i}`),t.value.toLowerCase()){case"eq":case"=":return r===i;case"gt":case">":return r>i;case"ge":case">=":return r>=i;case"lt":case"<":return r=|<=|>|<|!=|=|ge|le|gt|lt|eq|ne)/i,syntaxer:e=>{var t=r(e,3);let n=t[0],o=t[1],i=t[2];return Object.assign({left:n,right:i},o)},when:[i.Operand]},{evaluate:(e,t)=>{o.default.trace("evaluate -> unary",e,t);const n=t,r=n.block.lexeme.resolve(e,n.block);switch(t.value.toLowerCase()){case"is even":return"number"==typeof r&&r%2==0;case"is nil":return void 0===r||null===r;case"is bool":return"boolean"==typeof r;case"is odd":return"number"==typeof r&&r%2==1;case"is num":return"number"==typeof r;case"is object":return null!==r&&"object"==typeof r;case"is str":return"string"==typeof r;case"is prime":return"number"==typeof r&&(e=>{if(2===e)return!0;if(e<2||e%2==0)return!1;for(let t=3;t*t<=e;t+=2)if(e%t==0)return!1;return!0})(r);default:throw new Error}},name:i.UnaryOperator,priority:0,regexp:/^((is nil)|(is odd)|(is even)|(is bool)|(is num)|(is object)|(is str)|(is prime))/i,syntaxer:e=>{var t=r(e,2);let n=t[0],o=t[1];return Object.assign({block:n},o)},when:[i.Operand]},{evaluate:(e,t)=>{o.default.trace("evaluate -> unary not",e,t);const n=t;return!n.block.lexeme.evaluate(e,n.block)},name:i.UnaryNot,priority:1.5,regexp:/^!/,syntaxer:e=>Object.assign({block:e.slice(1,e.length)},e[0]),when:[i.UnaryNot]},Object.assign({name:i.Expression,when:[i.BinaryOperator]},u)];t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=u(n(3)),o=u(n(11)),i=u(n(19));function u(e){return e&&e.__esModule?e:{default:e}}t.default=class{constructor(e){this.query=e,this.evaluate=(e=>{if(!this.isValid||!this.tree){const e=`unable to evaluate target: syntax tree is invalid for query=${this.query}`;throw r.default.error(e),new Error(e)}const t=this.tree.lexeme.evaluate;return!!t&&t(e,this.tree)}),this.filter=(e=>e.filter(this.evaluate)),this.result=(0,i.default)((0,o.default)(this.query))}get isValid(){return this.result.valid}get tree(){return this.result.tree}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e&&e.__esModule?e:{default:e}}(n(3));const o=e=>{let t=0;const n=e.map(e=>{const n=Object.assign({},e,{nesting:t});return t+=e.lexeme.nesting||0,n}),i=n.filter(e=>0===e.nesting&&"number"==typeof e.lexeme.priority).sort((e,t)=>(t.lexeme.priority||-1)-(e.lexeme.priority||-1))[0];r.default.trace("parser -> pivot",i,e);const u=n.indexOf(i);if(i.lexeme.syntaxer){let t=i.lexeme.syntaxer(e,i,u);return Array.isArray(t.left)&&(t.left=o(t.left)),Array.isArray(t.right)&&(t.right=o(t.right)),Array.isArray(t.block)&&(t.block=o(t.block)),t}throw new Error(i.lexeme.name)};t.default=(e=>{const t=e.lexemes;if(!e.valid)return{valid:!1,error:`lexer -- ${e.error}`};try{return{tree:o(t),valid:!0}}catch(e){return{valid:!1,error:e}}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=((e,t=null)=>{if(t=t||(()=>{for(t=e;t&&"td"!==t.nodeName.toLowerCase();)t=t.parentElement;return t})(),!e||!t)return;let n=e;for(;"relative"!==getComputedStyle(n).position&&"sticky"!==getComputedStyle(n).position&&n.parentElement;)n=n.parentElement;let r=e;for(;"relative"!==getComputedStyle(r).position&&r.parentElement;)r=r.parentElement;const o=n.getBoundingClientRect(),i=r.getBoundingClientRect(),u=t.getBoundingClientRect(),s=u.left-o.left+n.scrollLeft,a=u.top-o.top+n.scrollTop+u.height;e.style.width=`${u.width}px`,e.style.top=`${a}px`,e.style.left=`${s}px`,e.style.position="absolute",u.top+u.height/2>i.bottom||u.top-u.height/2i.left+i.width?e.style.display="none":e.style.display="block"})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=function(e){return e&&e.__esModule?e:{default:e}}(r);class i extends r.PureComponent{constructor(e){super(e),this.handleChange=(e=>this.setState({value:e.target.value})),this.submit=(()=>this.state.value!==this.props.value&&this.props.submit(this.state.value)),this.state={value:e.value}}get propsWithDefaults(){return this.props}render(){var e=this.propsWithDefaults;const t=e.stopPropagation,n=e.updateOnBlur,r=e.updateOnSubmit;let i={onBlur:n?this.submit:void 0,onKeyDown:t?e=>e.stopPropagation():void 0,onSubmit:r?this.submit:void 0};return o.default.createElement("input",Object.assign({ref:"input",type:"text",value:this.state.value||"",onChange:this.handleChange},i))}}t.default=i,i.defaultProps={stopPropagation:!1,updateOnBlur:!0,updateOnSubmit:!0}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(this.props,[]);return function(e){c.forEach(function(t){return delete e[t]})}(o),o.className=this.props.inputClassName,o.id=this.state.inputId,o.style=n,u.default.createElement("div",{className:this.props.className,style:t},this.renderStyles(),u.default.createElement("input",r({},o,{ref:this.inputRef})),u.default.createElement("div",{ref:this.sizerRef,style:l},e),this.props.placeholder?u.default.createElement("div",{ref:this.placeHolderSizerRef,style:l},this.props.placeholder):null)}}]),t}();h.propTypes={className:s.default.string,defaultValue:s.default.any,extraWidth:s.default.oneOfType([s.default.number,s.default.string]),id:s.default.string,injectStyles:s.default.bool,inputClassName:s.default.string,inputRef:s.default.func,inputStyle:s.default.object,minWidth:s.default.oneOfType([s.default.number,s.default.string]),onAutosize:s.default.func,onChange:s.default.func,placeholder:s.default.string,placeholderIsMinWidth:s.default.bool,style:s.default.object,value:s.default.any},h.defaultProps={minWidth:1,injectStyles:!0},t.default=h},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Table=void 0;var r=u(n(24)),o=u(n(3)),i=u(n(26));function u(e){return e&&e.__esModule?e:{default:e}}o.default.setDebugLevel(r.default.debugLevel),o.default.setLogLevel(r.default.logLevel),t.Table=i.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3),o=function(e){return e&&e.__esModule?e:{default:e}}(n(25));const i="dash_debug",u="dash_log";t.default=class{static get searchParams(){return new URL(window.location.href).searchParams||{get:()=>null}}static get debugLevel(){const e=this.searchParams.get(i)||o.default.get(i);return e&&r.DebugLevel[e]||r.DebugLevel.NONE}static get logLevel(){const e=this.searchParams.get(u)||o.default.get(u);return e&&r.LogLevel[e]||r.LogLevel.ERROR}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=864e5,o=63072e7;class i{static delete(e,t="",n="/"){let o=new Date((new Date).getTime()-r).toUTCString();document.cookie=`${e}=;expires=${o};domain=${t};path=${n}`}static get(e){if(!e.length)return;return e=e.toLowerCase(),(document.cookie.split(";").map(e=>{let t=e.split("=");return{id:t[0].trim(),value:t[1]}}).find(t=>e===t.id.toLocaleLowerCase())||{}).value}static set(e,t,n="",r="/"){let u=`${e}=${t};expires=${new Date((new Date).getTime()+o).toUTCString()};domain=${n};path=${r}`;i.get(e)&&i.delete(e,n,r),document.cookie=u}}t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.propTypes=t.defaultProps=void 0;var r=n(1),o=s(r),i=s(n(0)),u=s(n(29));function s(e){return e&&e.__esModule?e:{default:e}}n(58);class a extends r.Component{render(){return o.default.createElement(u.default,this.props)}}t.default=a;const l=t.defaultProps={virtualization:"fe",virtualization_settings:{displayed_pages:1,current_page:0,page_size:250},navigation:"page",filtering:!1,filtering_settings:"",filtering_type:"basic",filtering_types:["basic"],sorting:!1,sorting_type:"single",sorting_settings:[],virtual_dataframe:[],virtual_dataframe_indices:[],column_conditional_dropdowns:[],column_static_dropdown:[],column_conditional_styles:[],column_static_style:[],row_conditional_styles:[],row_static_style:{},changed_data:{},dataframe:[],columns:[],editable:!1,active_cell:[],index_name:"",types:{},merged_styles:{},selected_cell:[[]],selected_rows:[],row_selectable:!1,table_style:[],base_styles:{numeric:{"text-align":"right","font-family":"'Droid Sans Mono', Courier, monospace"},string:{"text-align":"left"},input:{padding:0,margin:0,width:"80px",border:"none","font-size":"1rem"},"input-active":{outline:"#7FDBFF auto 3px"},table:{},thead:{},th:{},td:{}}},c=t.propTypes={active_cell:i.default.array,columns:i.default.arrayOf(i.default.object),dataframe:i.default.arrayOf(i.default.object),dataframe_previous:i.default.arrayOf(i.default.object),dataframe_timestamp:i.default.any,editable:i.default.bool,end_cell:i.default.arrayOf(i.default.number),id:i.default.string.isRequired,is_focused:i.default.bool,merge_duplicate_headers:i.default.bool,n_fixed_columns:i.default.number,n_fixed_rows:i.default.number,row_deletable:i.default.bool,row_selectable:i.default.oneOf(["single","multi",!1]),selected_cell:i.default.arrayOf(i.default.arrayOf(i.default.number)),selected_rows:i.default.arrayOf(i.default.number),setProps:i.default.any,start_cell:i.default.arrayOf(i.default.number),style_as_list_view:i.default.bool,table_style:i.default.arrayOf(i.default.shape({selector:i.default.string,rule:i.default.string})),virtualization:i.default.oneOf(["fe","be",!0,!1]),virtualization_settings:i.default.shape({displayed_pages:i.default.number,current_page:i.default.number,page_size:i.default.number}),navigation:i.default.string,column_conditional_dropdowns:i.default.arrayOf(i.default.shape({id:i.default.string,dropdowns:i.default.arrayOf(i.default.shape({condition:i.default.string,dropdown:i.default.arrayOf(i.default.shape({label:i.default.string,value:i.default.any}))}))})),column_static_dropdown:i.default.arrayOf(i.default.shape({id:i.default.string,dropdown:i.default.arrayOf(i.default.shape({label:i.default.string,value:i.default.any}))})),column_conditional_style:i.default.arrayOf(i.default.shape({id:i.default.string,styles:i.default.arrayOf(i.default.shape({condition:i.default.string,style:i.default.object}))})),column_static_style:i.default.arrayOf(i.default.shape({id:i.default.string,style:i.default.object})),row_conditional_styles:i.default.arrayOf(i.default.shape({condition:i.default.string,style:i.default.object})),row_static_style:i.default.object,filtering:i.default.oneOf(["fe","be",!0,!1]),filtering_settings:i.default.string,filtering_type:i.default.oneOf(["basic"]),filtering_types:i.default.arrayOf(i.default.oneOf(["basic"])),sorting:i.default.oneOf(["fe","be",!0,!1]),sorting_type:i.default.oneOf(["single","multi"]),sorting_settings:i.default.arrayOf(i.default.shape({columnId:i.default.oneOfType([i.default.string,i.default.number]),direction:i.default.oneOf(["asc","desc"])})),sorting_treat_empty_string_as_none:i.default.bool,virtual_dataframe:i.default.arrayOf(i.default.object),virtual_dataframe_indices:i.default.arrayOf(i.default.number),dropdown_properties:i.default.any};a.defaultProps=l,a.propTypes=c},function(e,t,n){"use strict";var r=n(28);function o(){}e.exports=function(){function e(e,t,n,o,i,u){if(u!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t};return n.checkPropTypes=o,n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=c(r),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),u=n(5),s=c(n(30)),a=c(n(34)),l=c(n(50));function c(e){return e&&e.__esModule?e:{default:e}}n(51),n(54),n(56);t.default=class extends r.Component{constructor(e){super(e),this.__adapter=(0,u.memoizeOne)(()=>new l.default(this)),this.__setProps=(0,u.memoizeOne)(e=>e?t=>{if(i.has("dataframe",t)){const e=this.props.dataframe;t.dataframe_timestamp=Date.now(),t.dataframe_previous=e}e(t)}:e=>this.setState(e)),this.__virtualizer=(0,u.memoizeOne)((e,t)=>s.default.getVirtualizer(this.adapter))}get setProps(){return this.__setProps(this.props.setProps)}render(){const e=this.setProps,t=this.virtualizer;return t.refresh(),o.default.createElement(a.default,Object.assign({},i.mergeAll([this.props,this.state,{setProps:e,virtualizer:t}])))}get adapter(){return this.__adapter()}get virtualizer(){var e=this.props;const t=e.virtualization,n=e.virtualization_settings;return this.__virtualizer(t,n)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=u(n(31)),o=u(n(32)),i=u(n(33));function u(e){return e&&e.__esModule?e:{default:e}}t.default=class{static getVirtualizer(e){switch(e.virtualization){case!1:return new i.default(e);case!0:case"fe":return new o.default(e);case"be":return new r.default(e);default:throw new Error(`Unknown virtualization type: '${e.virtualization}'`)}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e&&e.__esModule?e:{default:e}}(n(10));t.default=class extends r.default{constructor(e){super(e)}getDataframe(){var e=this.target;return{dataframe:e.dataframe,indices:e.indices}}get offset(){return 0}loadNext(){let e=this.target.settings;e.current_page++,this.target.update({settings:e})}loadPrevious(){let e=this.target.settings;e.current_page<=0||(e.current_page--,this.target.update({settings:e}))}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e&&e.__esModule?e:{default:e}}(n(10));t.default=class extends r.default{constructor(e){super(e)}getDataframe(){var e=this.target;let t=e.settings,n=e.dataframe,r=e.indices,o=Math.min(t.current_page,Math.floor(n.length/t.page_size));return this.firstIndex=t.page_size*o,this.lastIndex=Math.min(this.firstIndex+t.displayed_pages*t.page_size,n.length),{dataframe:n.slice(this.firstIndex,this.lastIndex),indices:r.slice(this.firstIndex,this.lastIndex)}}get offset(){return this.firstIndex}loadNext(){var e=this.target;let t=e.settings,n=e.dataframe,r=Math.floor(n.length/t.page_size);t.current_page>=r||(t.current_page++,this.target.update({settings:t}))}loadPrevious(){let e=this.target.settings;e.current_page<=0||(e.current_page--,this.target.update({settings:e}))}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),o=function(e){return e&&e.__esModule?e:{default:e}}(n(10));t.default=class extends o.default{constructor(e){super(e),this.refresh()}getDataframe(){let e=this.target.dataframe;return{dataframe:e,indices:r.range(0,e.length)}}get offset(){return 0}loadNext(){}loadPrevious(){}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=m(r),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),u=m(n(13)),s=n(14),a=n(15),l=n(35),c=n(36),p=m(c),d=m(n(3)),f=n(5),h=m(n(11)),v=m(n(39)),g=m(n(42)),y=m(n(20)),b=m(n(46));function m(e){return e&&e.__esModule?e:{default:e}}const x=i.sort((e,t)=>e-t);t.default=class extends r.Component{constructor(e){super(e),this.getLexerResult=(0,f.memoizeOne)(h.default),this.handleClickOutside=(e=>{const t=this.$el;t&&!t.contains(e.target)&&this.props.is_focused&&this.props.setProps({is_focused:!1})}),this.handlePaste=(e=>{const t=this.$el;t&&t.contains(document.activeElement)&&this.onPaste(e)}),this.handleResize=(()=>{var e=this.refs;const t=e.r0c0,n=e.r0c1,r=e.r1c0,o=e.r1c1;let i=n.querySelectorAll("tr");t.querySelectorAll("tr").forEach((e,t)=>{const n=i[t];e.style.height=getComputedStyle(n).height});let u=o.querySelectorAll("tr > th:first-of-type");r.querySelectorAll("tr > th:first-of-type").forEach((e,t)=>{const n=u[t].parentElement;e.parentElement.style.height=getComputedStyle(n).height});const s=o.querySelector("tr > td:first-of-type");if(s){const e=s.parentElement;this.stylesheet.setRule(".cell-1-0 tr",`height: ${getComputedStyle(e).height}`)}}),this.handleKeyDown=(e=>{var t=this.props;const n=t.active_cell,r=t.columns,o=t.setProps,i=t.is_focused,u=t.editable;if(d.default.trace(`handleKeyDown: ${e.key}`),(0,a.isCtrlMetaKey)(e.keyCode))return;const l=(0,a.isCtrlDown)(e);l&&e.keyCode===a.KEY_CODES.V||e.keyCode===a.KEY_CODES.C&&l&&!i||(e.keyCode!==a.KEY_CODES.ESCAPE?e.keyCode!==a.KEY_CODES.ENTER||i||!(0,s.colIsEditable)(u,r[n[1]])?i&&e.keyCode!==a.KEY_CODES.TAB&&e.keyCode!==a.KEY_CODES.ENTER||((0,a.isNavKey)(e.keyCode)?this.switchCell(e):e.keyCode===a.KEY_CODES.BACKSPACE||e.keyCode===a.KEY_CODES.DELETE?this.deleteCell(e):this.props.is_focused||!(0,s.colIsEditable)(u,r[n[1]])||(0,a.isMetaKey)(e.keyCode)||o({is_focused:!0})):o({is_focused:!0}):o({is_focused:!1}))}),this.switchCell=(e=>{const t=e;var n=this.props;const r=n.active_cell,o=n.columns,u=n.row_deletable,s=n.row_selectable,l=n.selected_cell,c=n.setProps,p=n.virtualizer.dataframe;e.preventDefault(),this.$el.focus();const d=l.length>1,f=t.keyCode===a.KEY_CODES.ENTER||t.keyCode===a.KEY_CODES.TAB;if(d&&f)return void c({is_focused:!1,active_cell:this.getNextCell(t,{currentCell:r,restrictToSelection:!0})});if(!t.shiftKey){const e=this.getNextCell(t,{currentCell:r,restrictToSelection:!1});return void c({is_focused:!1,selected_cell:[e],active_cell:e})}let h=[],v=[];const g=x(i.uniq(i.pluck(0,l))),y=x(i.uniq(i.pluck(1,l))),b=g[0],m=y[0],E=g[g.length-1],w=y[y.length-1],_=(u?1:0)+(s?1:0),O=[];o.forEach((e,t)=>{e.hidden||O.push(t+_)});const S=t.keyCode===a.KEY_CODES.ARROW_DOWN||t.keyCode===a.KEY_CODES.ENTER,C=t.keyCode===a.KEY_CODES.ARROW_UP,A=t.keyCode===a.KEY_CODES.ARROW_RIGHT||t.keyCode===a.KEY_CODES.TAB,k=t.keyCode===a.KEY_CODES.ARROW_LEFT;S&&r[0]>b?v=y.map(e=>[b,e]):S&&E!==p.length-1?h=y.map(e=>[E+1,e]):C&&r[0][E,e]):C&&b>0?h=y.map(e=>[b-1,e]):k&&r[1][e,w]):k&&m>0?h=g.map(e=>[e,m-1]):A&&r[1]>m?v=g.map(e=>[e,m]):A&&w+1<=i.last(O)&&(h=g.map(e=>[e,w+1])),c({is_focused:!1,selected_cell:i.without(v,i.uniq(i.concat(h,l)))})}),this.deleteCell=(e=>{var t=this.props;const n=t.columns,r=t.dataframe,o=t.editable,u=t.row_deletable,a=t.row_selectable,l=t.selected_cell,c=t.setProps,p=t.virtual_dataframe_indices;e.preventDefault();let d=r;const f=(u?1:0)+(a?1:0);i.map(e=>[p[e[0]],e[1]-f],l).forEach(e=>{(0,s.colIsEditable)(o,n[e[1]])&&(d=i.set(i.lensPath([e[0],n[e[1]].id]),"",d))}),c({dataframe:d})}),this.getNextCell=((e,{restrictToSelection:t,currentCell:n})=>{var r=this.props;const o=r.columns,u=r.row_deletable,s=r.row_selectable,c=r.selected_cell,p=r.virtualizer.dataframe,d=e,f=[],h=(u?1:0)+(s?1:0);switch(t||o.forEach((e,t)=>{e.hidden||f.push(t+h)}),d.keyCode){case a.KEY_CODES.ARROW_LEFT:return t?(0,l.selectionCycle)([n[0],n[1]-1],c):[n[0],i.max(f[0],f[i.indexOf(n[1],f)-1])];case a.KEY_CODES.ARROW_RIGHT:case a.KEY_CODES.TAB:return t?(0,l.selectionCycle)([n[0],n[1]+1],c):[n[0],i.min(i.last(f),f[i.indexOf(n[1],f)+1])];case a.KEY_CODES.ARROW_UP:return t?(0,l.selectionCycle)([n[0]-1,n[1]],c):[i.max(0,n[0]-1),n[1]];case a.KEY_CODES.ARROW_DOWN:case a.KEY_CODES.ENTER:return t?(0,l.selectionCycle)([n[0]+1,n[1]],c):[i.min(p.length-1,n[0]+1),n[1]];default:throw new Error(`Table.getNextCell: unknown navigation keycode ${d.keyCode}`)}}),this.onCopy=(e=>{var t=this.props;const n=t.columns,r=t.row_deletable,o=t.row_selectable,u=t.selected_cell,s=t.virtualizer.dataframe,a=(r?1:0)+(o?1:0),l=i.map(e=>[e[0],e[1]-a],u);v.default.toClipboard(e,l,n,s),this.$el.focus()}),this.onPaste=(e=>{var t=this.props;const n=t.active_cell,r=t.columns,o=t.dataframe,i=t.editable,u=t.filtering_settings,s=t.row_deletable,a=t.row_selectable,l=t.setProps,c=t.sorting_settings,p=t.virtual_dataframe_indices;if(!i)return;const d=(s?1:0)+(a?1:0),f=[n[0],n[1]-d],h=v.default.fromClipboard(e,f,p,r,o,!0,!c.length||!u.length);h&&l(h)}),this.loadNext=(()=>{this.props.virtualizer.loadNext()}),this.loadPrevious=(()=>{this.props.virtualizer.loadPrevious()}),this.onContainerScroll=(e=>{if(!this.props.n_fixed_columns)return;const t=this.refs.spreadsheet;e.target===t&&this.stylesheet.setRule(".frozen-left",`margin-top: ${-e.target.scrollTop}px;`)}),this.applyStyle=((e,t,n)=>{let r=0;t&&(this.stylesheet.setRule(`.dash-spreadsheet-inner td.column-${r}`,"width: 30px; max-width: 30px; min-width: 30px;"),this.stylesheet.setRule(`.dash-spreadsheet-inner th.column-${r}`,"width: 30px; max-width: 30px; min-width: 30px;"),++r),n&&(this.stylesheet.setRule(`.dash-spreadsheet-inner td.column-${r}`,"width: 30px; max-width: 30px; min-width: 30px;"),this.stylesheet.setRule(`.dash-spreadsheet-inner th.column-${r}`,"width: 30px; max-width: 30px; min-width: 30px;"),++r),i.forEach(e=>{const t=u.default.unit(e.width||c.DEFAULT_CELL_WIDTH,"px");this.stylesheet.setRule(`.dash-spreadsheet-inner td.column-${r}`,`width: ${t}; max-width: ${t}; min-width: ${t};`),this.stylesheet.setRule(`.dash-spreadsheet-inner th.column-${r}`,`width: ${t}; max-width: ${t}; min-width: ${t};`),++r},e)}),this.renderFragment=(e=>e?o.default.createElement("table",{tabIndex:-1},o.default.createElement("tbody",null,e.map((e,t)=>o.default.createElement("tr",{key:`row-${t}`},e)))):null),this.handleSetFilter=(e=>this.props.setProps({filtering_settings:e})),this.getCells=(()=>[...p.default.createHeaders(this.props),...this.filterFactory.createFilters(),...this.cellFactory.createCells()]),this.getFragments=((e,t,n)=>{const r=t?i.map(e=>e.splice(0,i.reduceWhile(e=>e.count(e.cells++,e.count+=t.props.colSpan||1,e),{cells:0,count:0},e).cells),e):null,o=n?e.splice(0,n):null,u=n&&r?r.splice(0,n):null;return[[this.renderFragment(u),this.renderFragment(o)],[this.renderFragment(r),this.renderFragment(e)]]}),this.handleDropdown=(()=>{const e=this.refs.r1c1;(0,y.default)(e.querySelector(".Select-menu-outer"))}),this.onScroll=(e=>{const t=this.refs.r0c1;d.default.trace(`ControlledTable fragment scrolled to (left,top)=(${e.target.scrollLeft},${e.target.scrollTop})`),t.style.marginLeft=`${-e.target.scrollLeft}px`,this.handleDropdown()}),this.cellFactory=new g.default(()=>this.props),this.filterFactory=new b.default(()=>{var e=this.props;const t=e.row_deletable,n=e.row_selectable,r=(t?1:0)+(n?1:0);return{columns:this.props.columns,filtering:this.props.filtering,filtering_settings:this.props.filtering_settings,filtering_type:this.props.filtering_type,id:this.props.id,offset:r,setFilter:this.handleSetFilter}}),this.stylesheet=new u.default(`#${e.id}`)}get lexerResult(){const e=this.props.filtering_settings;return this.getLexerResult(e)}componentDidMount(){this.props.selected_cell.length&&!i.contains(this.props.active_cell,this.props.selected_cell)&&this.props.setProps({active_cell:this.props.selected_cell[0]}),window.addEventListener("resize",this.handleResize),document.addEventListener("paste",this.handlePaste),document.addEventListener("mousedown",this.handleClickOutside)}componentWillUnmount(){window.removeEventListener("resize",this.handleResize),document.removeEventListener("mousedown",this.handleClickOutside),document.removeEventListener("paste",this.handlePaste)}componentWillUpdate(){const e=this.props.table_style;i.forEach(({selector:e,rule:t})=>{this.stylesheet.setRule(e,t)},e)}componentDidUpdate(){this.handleResize(),this.handleDropdown()}get $el(){return document.getElementById(this.props.id)}get displayPagination(){var e=this.props;const t=e.dataframe,n=e.navigation,r=e.virtualization,o=e.virtualization_settings;return"page"===n&&("fe"===r&&o.page_sizeo.default.createElement("div",{key:`r${t}`,ref:`r${t}`,className:`row row-${t}`,onScroll:this.onScroll},e.map((e,n)=>o.default.createElement("div",{key:n,ref:`r${t}c${n}`,className:`cell cell-${t}-${n}`},e)))))),this.displayPagination?o.default.createElement("div",null,o.default.createElement("button",{className:"previous-page",onClick:this.loadPrevious},"Previous"),o.default.createElement("button",{className:"next-page",onClick:this.loadNext},"Next")):null)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,o=!1,i=void 0;try{for(var u,s=e[Symbol.iterator]();!(r=(u=s.next()).done)&&(n.push(u.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{!r&&s.return&&s.return()}finally{if(o)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();t.selectionCycle=function(e,t){const n=o.uniq(o.pluck(0,t)).sort((e,t)=>e-t),i=o.uniq(o.pluck(1,t)).sort((e,t)=>e-t),u=n[0],s=i[0],a=n[n.length-1],l=i[i.length-1];var c=r(e,2);const p=c[0],d=c[1],f=[p,d];p>a&&(f[0]=u,f[1]=d+1>l?s:d+1);pl&&(f[1]=s,f[0]=p+1>a?u:p+1);dArray.isArray(e.name)?e.name.length:1,h=(e,t)=>Array.isArray(e.name)?e.name[t]:"";class v{static getSorting(e,t){const n=o.find(t=>t.columnId===e,t);return n?n.direction:u.SortDirection.None}static doSort(e,t){return()=>{const n=t.sorting_settings,r=t.sorting_type;let o;switch(v.getSorting(e,n)){case u.SortDirection.Descending:o=u.SortDirection.Ascending;break;case u.SortDirection.Ascending:o=u.SortDirection.None;break;case u.SortDirection.None:default:o=u.SortDirection.Descending}const i="single"===r?a.default:s.default;t.setProps({sorting_settings:i(n,{columnId:e,direction:o})})}}static getSortingIcon(e,t){const n=t.sorting_settings;switch(v.getSorting(e,n)){case u.SortDirection.Descending:return"↑";case u.SortDirection.Ascending:return"↓";case u.SortDirection.None:default:return"↕"}}static createHeaderCells(e){const t=e.columns,n=e.columnRowIndex,u=e.labels,s=e.mergeCells,a=e.n_fixed_columns,c=e.offset,p=e.rowSorting,f=e.virtualization;let h=[];if(s){h=[0];let e=0;u.forEach((n,r)=>{t[r].hidden||n===u[e]||(h.push(r),e=r)})}else h=o.range(0,t.length);const g=t.filter(e=>!e.hidden);return o.filter(e=>!!e,h.map((y,b)=>{const m=t[y];if(m.hidden)return null;const x=g.indexOf(m)+c;let E;if(s){const e=o.slice(y,h[b+1]||1/0,t).filter(o.propEq("hidden",!0)).length;E=y===o.last(h)?u.length-y-e:h[b+1]-y-e}else E=1;const w=g.indexOf(m),_=`calc(${g.filter((e,t)=>!e.hidden&&t>=w&&ti.default.unit(e.width||d,"px")).join(" + ")})`;return r.default.createElement("th",{key:`header-cell-${y}`,colSpan:E,className:`column-${y+c} `+(y===t.length-1||y===o.last(h)?"cell--right-last ":""),style:x{(0,n.setProps)(l.editColumnName(e,t,n))}}(m,n,e)},"✎"):"",m.deletable&&"be"!==f&&"Boolean"===o.type(m.deletable)||"Number"===o.type(m.deletable)&&m.deletable===n?r.default.createElement("span",{className:"column-header--delete",onClick:function(e,t,n){return()=>{(0,n.setProps)(l.deleteColumn(e,t,n))}}(m,n,e)},"×"):"",r.default.createElement("span",null,u[y]))}))}static createDeletableHeader(e){return e.row_deletable?r.default.createElement("th",{key:"delete",className:"expanded-row--empty-cell",style:{width:"30px",maxWidth:"30px",minWidth:"30px"}}):null}static createSelectableHeader(e){return e.row_selectable?r.default.createElement("th",{key:"select",className:"expanded-row--empty-cell",style:{width:"30px",maxWidth:"30px",minWidth:"30px"}}):null}static createHeaders(e){let t=e.columns,n=e.dataframe,r=e.sorting,i=e.merge_duplicate_headers,u=e.n_fixed_columns,s=e.row_deletable,a=e.row_selectable,l=e.setProps,c=e.sorting_settings,p=e.sorting_type,d=e.virtualization;const g=(s?1:0)+(a?1:0),y=this.createDeletableHeader(e),b=this.createSelectableHeader(e),m=Math.max.apply(Math,t.map(f));let x;return x=1===m?[[...y?[y]:[],...b?[b]:[],...v.createHeaderCells({columns:t,columnRowIndex:0,dataframe:n,labels:o.pluck("name",t),n_fixed_columns:u,offset:g,rowSorting:r,setProps:l,sorting_settings:c,sorting_type:p,virtualization:d})]]:o.range(0,m).map(e=>[...y?[y]:[],...b?[b]:[],...v.createHeaderCells({columns:t,columnRowIndex:e,dataframe:n,labels:t.map(t=>o.isNil(t.name)&&e===m-1?t.id:h(t,e)),n_fixed_columns:u,offset:g,rowSorting:!!r&&e+1===m,mergeCells:i&&e+1!==m,setProps:l,sorting_settings:c,sorting_type:p,virtualization:d})])}}t.default=v},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),o=function(e){return e&&e.__esModule?e:{default:e}}(n(3)),i=n(7);t.default=((e,t)=>{if(o.default.trace("multi - updateSettings",e,t),e=r.clone(e),t.direction===i.SortDirection.None){const n=r.findIndex(e=>e.columnId===t.columnId,e);-1!==n&&e.splice(n,1)}else{const n=r.find(e=>e.columnId===t.columnId,e);n?n.direction=t.direction:e.push(t)}return e})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e&&e.__esModule?e:{default:e}}(n(3)),o=n(7);t.default=((e,t)=>(r.default.trace("single - updateSettings",e,t),t.direction===o.SortDirection.None?[]:[t]))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),o=a(n(40)),i=a(n(41)),u=a(n(3)),s=n(14);function a(e){return e&&e.__esModule?e:{default:e}}t.default=class{static toClipboard(e,t,n,s){const a=r.uniq(r.pluck(0,t).sort((e,t)=>e-t)),l=r.uniq(r.pluck(1,t).sort((e,t)=>e-t)),c=r.slice(r.head(a),r.last(a)+1,s).map(e=>r.props(l,r.props(r.pluck("id",n),e))),p=o.default.prototype.stringify(c);u.default.trace("TableClipboard -- set clipboard data: ",p),i.default.set(e,p)}static fromClipboard(e,t,n,a,l,c=!0,p=!0){const d=i.default.get(e);if(u.default.trace("TableClipboard -- get clipboard data: ",d),!d)return;const f=o.default.prototype.parse(d);let h=l;const v=a;if(c&&f[0].length+t[1]>=a.length)for(let e=a.length;et[`Column ${e}`]="");p&&u.default.debug("Clipboard -- Sorting or filtering active, do not create new rows");const g=n[t[0]];if(p&&f.length+g>=l.length){const e={};a.forEach(t=>e[t.id]=""),h=r.concat(h,r.repeat(e,f.length+g-l.length))}return f.forEach((e,o)=>e.forEach((e,i)=>{const u=t[0]+o;if(n.length<=t[0]+o)return;const a=n[u],l=t[1]+i,c=v[l];c&&(0,s.colIsEditable)(!0,c)&&(h=r.set(r.lensPath([a,c.id]),e,h))})),{dataframe:h,columns:v}}}},function(e,t){!function(t){"use strict";function n(){}function r(e){return e.split('"').length-1}n.prototype=Object.create(Object.prototype,{parse:{value:function(e){var t,n,o,i,u,s,a,l=[],c=0;for((o=e.split("\n")).length>1&&""===o[o.length-1]&&o.pop(),t=0,n=o.length;t0&&(u+="\t"),"string"==typeof(i=e[t][r])?i.indexOf("\n")>-1?u+='"'+i.replace(/"/g,'""')+'"':u+=i:u+=null===i||void 0===i?"":i;u+="\n"}return u},enumerable:!0,configurable:!1,writable:!1}}),void 0!==e&&e.exports?e.exports=n:t.SheetClip=n}(this)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default=class{static set(e,t){e.clipboardData.setData("text/plain",t),e.preventDefault()}static get(e){let t;return t=e.clipboardData?e.clipboardData.getData("text/plain"):void 0}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=a(n(2)),o=s(n(1)),i=s(n(43)),u=a(n(16));function s(e){return e&&e.__esModule?e:{default:e}}function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}t.default=class{constructor(e){this.propsFn=e,this.handlers=new Map,this.isCellSelected=((e,t,n)=>e&&r.contains([t,n],e)),this.getEventHandler=((e,t,n)=>{const r=this.handlers.get(e)||this.handlers.set(e,new Map).get(e),o=r.get(t)||r.set(t,new Map).get(t);return o.get(n)||o.set(n,e.bind(this,t,n)).get(n)}),this.handleClick=((e,t,n)=>{var o=this.props;const i=o.columns,u=o.editable,s=o.is_focused,a=o.row_deletable,l=o.row_selectable,c=o.selected_cell,p=o.setProps,d=this.isCellSelected(c,e,t);if(!u)return;if(s||n.preventDefault(),d)return;const f=(a?1:0)+(l?1:0);n.preventDefault();const h=[e,t+f],v={is_focused:!1,active_cell:h},g=[];i.forEach((e,t)=>{e.hidden||g.push(t+f)});const y=r.uniq(r.pluck(0,c)).sort((e,t)=>e-t),b=r.uniq(r.pluck(1,c)).sort((e,t)=>e-t),m=y[0],x=b[0];n.shiftKey?v.selected_cell=r.xprod(r.range(r.min(m,h[0]),r.max(m,h[0])+1),r.range(r.min(x,h[1]),r.max(x,h[1])+1)).filter(e=>r.contains(e[1],g)):v.selected_cell=[h],p(v)}),this.handleDoubleClick=((e,t,n)=>{var r=this.props;const o=r.editable,i=r.is_focused,u=r.row_deletable,s=r.row_selectable,a=r.setProps;if(!o)return;const l=[e,t+((u?1:0)+(s?1:0))];i||(n.preventDefault(),a({selected_cell:[l],active_cell:l,is_focused:!0}))}),this.handleChange=((e,t,n)=>{var o=this.props;const i=o.columns,u=o.dataframe,s=o.editable,a=o.setProps,l=i[t];s&&a({dataframe:r.set(r.lensPath([e,l.id]),n,u)})}),this.handlePaste=(e=>{e.preventDefault()})}get props(){return this.propsFn()}rowSelectCell(e){var t=this.props;const n=t.setProps,i=t.selected_rows,u=t.row_selectable;return u?o.default.createElement("td",{key:"select",className:"select-cell",style:{width:"30px",maxWidth:"30px",minWidth:"30px"}},o.default.createElement("input",{type:"single"===u?"radio":"checkbox",name:"row-select",checked:r.contains(e,i),onChange:()=>n({selected_rows:"single"===u?[e]:r.ifElse(r.contains(e),r.without([e]),r.append(e))(i)})})):null}rowDeleteCell(e){var t=this.props;const n=t.setProps;return t.row_deletable?o.default.createElement("td",{key:"delete",className:"delete-cell",onClick:()=>n(u.deleteRow(e,this.props)),style:{width:"30px",maxWidth:"30px",minWidth:"30px"}},"×"):null}createCells(){var e=this.props;const t=e.active_cell,n=e.columns,u=e.column_conditional_dropdowns,s=e.column_conditional_styles,a=e.column_static_dropdown,l=e.column_static_style,c=e.dropdown_properties,p=e.editable,d=e.id,f=e.is_focused,h=e.row_deletable,v=e.row_selectable,g=e.selected_cell,y=e.virtualizer,b=y.dataframe,m=y.indices,x=n.filter(e=>!e.hidden),E=(h?1:0)+(v?1:0);return b.map((e,h)=>{const v=m[h],y=this.rowDeleteCell(v),b=this.rowSelectCell(v),w=x.map((y,b)=>{b+=E;let m=(c&&c[y.id]&&(c[y.id].length>v?c[y.id][v]:null)||y||{}).options;const x=n.indexOf(y),w=[`column-${x+E}`];let _=u.find(e=>e.id===y.id),O=a.find(e=>e.id===y.id);_=_&&_.dropdowns,O=m||O&&O.dropdown;let S=s.find(e=>e.id===y.id),C=l.find(e=>e.id===y.id);return S=S&&S.styles,C=C&&C.style,o.default.createElement(i.default,{key:`${y.id}-${b}`,active:t[0]===h&&t[1]===x+E,classes:w,clearable:y.clearable,conditionalDropdowns:_,conditionalStyles:S,datum:e,editable:p,focused:!!f,onClick:this.getEventHandler(this.handleClick,h,x),onDoubleClick:this.getEventHandler(this.handleDoubleClick,h,x),onPaste:this.handlePaste,onChange:this.getEventHandler(this.handleChange,v,x),property:y.id,selected:r.contains([h,x+E],g),staticDropdown:O,staticStyle:C,tableId:d,type:y.type,value:e[y.id]})});return b&&w.unshift(b),y&&w.unshift(y),w})}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),o=n(1),i=f(o),u=f(n(44)),s=n(12),a=n(5),l=f(n(45)),c=f(n(18)),p=n(15),d=f(n(20));function f(e){return e&&e.__esModule?e:{default:e}}class h extends o.Component{constructor(e){super(e),this.getDropdown=(0,a.memoizeOne)((...e)=>e.length?e.slice(-1)[0]:void 0),this.getStyle=(0,a.memoizeOne)((...e)=>e.length?r.mergeAll(e):void 0),this.propagateChange=(()=>{if(this.state.value===this.props.value)return;(0,this.props.onChange)(this.state.value)}),this.handleChange=(e=>{this.setState({value:e.target.value})}),this.handleKeyDown=(e=>{e.keyCode===p.KEY_CODES.ENTER&&this.propagateChange()}),this.handleOpenDropdown=(()=>{var e=this.refs;const t=e.dropdown,n=e.td;(0,d.default)(t.wrapper.querySelector(".Select-menu-outer"),n)}),this.state={value:e.value}}get propsWithDefaults(){return this.props}get classes(){var e=this.propsWithDefaults;let t=e.active,n=e.classes,r=e.editable,o=e.selected,i=e.type;return[...t?["focused"]:[],...r?[]:["cell--uneditable"],...o?["cell--selected"]:[],..."dropdown"===i?["dropdown"]:[],...n]}renderDropdown(){var e=this.propsWithDefaults;const t=e.clearable,n=e.onChange,r=e.value,o=this.dropdown;return o?i.default.createElement(u.default,{ref:"dropdown",clearable:t,onChange:e=>{n(e?e.value:e)},onOpen:this.handleOpenDropdown,options:o,placeholder:"",value:r}):this.renderValue()}renderInput(){var e=this.propsWithDefaults;const t=e.active,n=e.focused,r=e.onClick,o=e.onDoubleClick,u=e.onPaste,s={className:[...t?["input-active"]:[],...n?["focused"]:["unfocused"],...["cell-value"]].join(" "),onClick:r,onDoubleClick:o};return t||this.state.value!==this.props.value?i.default.createElement("input",Object.assign({ref:"textInput",type:"text",value:this.state.value,onBlur:this.propagateChange,onChange:this.handleChange,onKeyDown:this.handleKeyDown,onPaste:u},s)):this.renderValue(s)}renderValue(e={}){const t=this.propsWithDefaults.value;return i.default.createElement("div",Object.assign({},e),t)}renderInner(){switch(this.props.type){case"text":case"numeric":return this.renderInput();case"dropdown":return this.renderDropdown();default:return this.renderValue()}}get dropdown(){var e=this.propsWithDefaults;let t=e.conditionalDropdowns,n=e.datum,o=e.property,i=e.staticDropdown,u=e.tableId;const s=[...i?[i]:[],...r.map(([e])=>e.dropdown,r.filter(([e,t])=>h.dropdownAstCache([u,o,t],[e.condition]).evaluate(n),r.addIndex(r.map)((e,t)=>[e,t],t)))];return this.getDropdown(...s)}get style(){var e=this.propsWithDefaults;let t=e.conditionalStyles,n=e.datum,o=e.property,i=e.staticStyle,u=e.tableId;const s=[i,...r.map(([e])=>e.style,r.filter(([e,t])=>h.styleAstCache([u,o,t],[e.condition]).evaluate(n),r.addIndex(r.map)((e,t)=>[e,t],t)))];return this.getStyle(...s)}render(){return i.default.createElement("td",{ref:"td",tabIndex:-1,className:this.classes.join(" "),style:this.style},this.renderInner())}componentWillReceiveProps(e){const t=e.value;this.state.value!==t&&this.setState({value:t})}componentDidUpdate(){const e=this.propsWithDefaults.active,t=this.refs.textInput;e&&t&&document.activeElement!==t&&(t.focus(),t.setSelectionRange(0,t.value?t.value.length:0)),e&&this.refs.dropdown&&this.refs.td.focus()}shouldComponentUpdate(e,t){const n=this.props,r=this.state;return!(0,s.isEqual)(n,e,!0)||!(0,s.isEqual)(r,t,!0)}}t.default=h,h.dropdownAstCache=(0,l.default)(e=>new c.default(e)),h.styleAstCache=(0,l.default)(e=>new c.default(e)),h.defaultProps={classes:[],conditionalDropdowns:[],conditionalStyles:[],staticStyle:{},type:"text"}},function(e,t,n){"use strict";n.r(t),n.d(t,"Async",function(){return V}),n.d(t,"AsyncCreatable",function(){return Y}),n.d(t,"Creatable",function(){return L}),n.d(t,"Value",function(){return F}),n.d(t,"Option",function(){return k}),n.d(t,"defaultMenuRenderer",function(){return b}),n.d(t,"defaultArrowRenderer",function(){return d}),n.d(t,"defaultClearRenderer",function(){return f}),n.d(t,"defaultFilterOptions",function(){return y});var r=n(22),o=n.n(r),i=n(4),u=n.n(i),s=n(0),a=n.n(s),l=n(1),c=n.n(l),p=n(6),d=function(e){var t=e.onMouseDown;return c.a.createElement("span",{className:"Select-arrow",onMouseDown:t})};d.propTypes={onMouseDown:a.a.func};var f=function(){return c.a.createElement("span",{className:"Select-clear",dangerouslySetInnerHTML:{__html:"×"}})},h=[{base:"A",letters:/[\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F]/g},{base:"AA",letters:/[\uA732]/g},{base:"AE",letters:/[\u00C6\u01FC\u01E2]/g},{base:"AO",letters:/[\uA734]/g},{base:"AU",letters:/[\uA736]/g},{base:"AV",letters:/[\uA738\uA73A]/g},{base:"AY",letters:/[\uA73C]/g},{base:"B",letters:/[\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181]/g},{base:"C",letters:/[\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E]/g},{base:"D",letters:/[\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779]/g},{base:"DZ",letters:/[\u01F1\u01C4]/g},{base:"Dz",letters:/[\u01F2\u01C5]/g},{base:"E",letters:/[\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E]/g},{base:"F",letters:/[\u0046\u24BB\uFF26\u1E1E\u0191\uA77B]/g},{base:"G",letters:/[\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E]/g},{base:"H",letters:/[\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D]/g},{base:"I",letters:/[\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197]/g},{base:"J",letters:/[\u004A\u24BF\uFF2A\u0134\u0248]/g},{base:"K",letters:/[\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2]/g},{base:"L",letters:/[\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780]/g},{base:"LJ",letters:/[\u01C7]/g},{base:"Lj",letters:/[\u01C8]/g},{base:"M",letters:/[\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C]/g},{base:"N",letters:/[\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4]/g},{base:"NJ",letters:/[\u01CA]/g},{base:"Nj",letters:/[\u01CB]/g},{base:"O",letters:/[\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u00D6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C]/g},{base:"OI",letters:/[\u01A2]/g},{base:"OO",letters:/[\uA74E]/g},{base:"OU",letters:/[\u0222]/g},{base:"P",letters:/[\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754]/g},{base:"Q",letters:/[\u0051\u24C6\uFF31\uA756\uA758\u024A]/g},{base:"R",letters:/[\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782]/g},{base:"S",letters:/[\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784]/g},{base:"T",letters:/[\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786]/g},{base:"TZ",letters:/[\uA728]/g},{base:"U",letters:/[\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u00DC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244]/g},{base:"V",letters:/[\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245]/g},{base:"VY",letters:/[\uA760]/g},{base:"W",letters:/[\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72]/g},{base:"X",letters:/[\u0058\u24CD\uFF38\u1E8A\u1E8C]/g},{base:"Y",letters:/[\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE]/g},{base:"Z",letters:/[\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762]/g},{base:"a",letters:/[\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250]/g},{base:"aa",letters:/[\uA733]/g},{base:"ae",letters:/[\u00E6\u01FD\u01E3]/g},{base:"ao",letters:/[\uA735]/g},{base:"au",letters:/[\uA737]/g},{base:"av",letters:/[\uA739\uA73B]/g},{base:"ay",letters:/[\uA73D]/g},{base:"b",letters:/[\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253]/g},{base:"c",letters:/[\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184]/g},{base:"d",letters:/[\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A]/g},{base:"dz",letters:/[\u01F3\u01C6]/g},{base:"e",letters:/[\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD]/g},{base:"f",letters:/[\u0066\u24D5\uFF46\u1E1F\u0192\uA77C]/g},{base:"g",letters:/[\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F]/g},{base:"h",letters:/[\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265]/g},{base:"hv",letters:/[\u0195]/g},{base:"i",letters:/[\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131]/g},{base:"j",letters:/[\u006A\u24D9\uFF4A\u0135\u01F0\u0249]/g},{base:"k",letters:/[\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3]/g},{base:"l",letters:/[\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747]/g},{base:"lj",letters:/[\u01C9]/g},{base:"m",letters:/[\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F]/g},{base:"n",letters:/[\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5]/g},{base:"nj",letters:/[\u01CC]/g},{base:"o",letters:/[\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275]/g},{base:"oi",letters:/[\u01A3]/g},{base:"ou",letters:/[\u0223]/g},{base:"oo",letters:/[\uA74F]/g},{base:"p",letters:/[\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755]/g},{base:"q",letters:/[\u0071\u24E0\uFF51\u024B\uA757\uA759]/g},{base:"r",letters:/[\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783]/g},{base:"s",letters:/[\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B]/g},{base:"t",letters:/[\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787]/g},{base:"tz",letters:/[\uA729]/g},{base:"u",letters:/[\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289]/g},{base:"v",letters:/[\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C]/g},{base:"vy",letters:/[\uA761]/g},{base:"w",letters:/[\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73]/g},{base:"x",letters:/[\u0078\u24E7\uFF58\u1E8B\u1E8D]/g},{base:"y",letters:/[\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF]/g},{base:"z",letters:/[\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763]/g}],v=function(e){for(var t=0;t-1)return!1;if(r.filterOption)return r.filterOption.call(void 0,e,t);if(!t)return!0;var o=e[r.valueKey],i=e[r.labelKey],u=g(o),s=g(i);if(!u&&!s)return!1;var a=u?String(o):null,l=s?String(i):null;return r.ignoreAccents&&(a&&"label"!==r.matchProp&&(a=v(a)),l&&"value"!==r.matchProp&&(l=v(l))),r.ignoreCase&&(a&&"label"!==r.matchProp&&(a=a.toLowerCase()),l&&"value"!==r.matchProp&&(l=l.toLowerCase())),"start"===r.matchPos?a&&"label"!==r.matchProp&&a.substr(0,t.length)===t||l&&"value"!==r.matchProp&&l.substr(0,t.length)===t:a&&"label"!==r.matchProp&&a.indexOf(t)>=0||l&&"value"!==r.matchProp&&l.indexOf(t)>=0})},b=function(e){var t=e.focusedOption,n=e.focusOption,r=e.inputValue,o=e.instancePrefix,i=e.onFocus,s=e.onOptionRef,a=e.onSelect,l=e.optionClassName,p=e.optionComponent,d=e.optionRenderer,f=e.options,h=e.removeValue,v=e.selectValue,g=e.valueArray,y=e.valueKey,b=p;return f.map(function(e,p){var f=g&&g.some(function(t){return t[y]===e[y]}),m=e===t,x=u()(l,{"Select-option":!0,"is-selected":f,"is-focused":m,"is-disabled":e.disabled});return c.a.createElement(b,{className:x,focusOption:n,inputValue:r,instancePrefix:o,isDisabled:e.disabled,isFocused:m,isSelected:f,key:"option-"+p+"-"+e[y],onFocus:i,onSelect:a,option:e,optionIndex:p,ref:function(e){s(e,m)},removeValue:h,selectValue:v},d(e,p,r))})};b.propTypes={focusOption:a.a.func,focusedOption:a.a.object,inputValue:a.a.string,instancePrefix:a.a.string,onFocus:a.a.func,onOptionRef:a.a.func,onSelect:a.a.func,optionClassName:a.a.string,optionComponent:a.a.func,optionRenderer:a.a.func,options:a.a.array,removeValue:a.a.func,selectValue:a.a.func,valueArray:a.a.array,valueKey:a.a.string};var m=function(e){e.preventDefault(),e.stopPropagation(),"A"===e.target.tagName&&"href"in e.target&&(e.target.target?window.open(e.target.href,e.target.target):window.location.href=e.target.href)},x="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},E=(function(){function e(e){this.value=e}function t(t){var n,r;function o(n,r){try{var u=t[n](r),s=u.value;s instanceof e?Promise.resolve(s.value).then(function(e){o("next",e)},function(e){o("throw",e)}):i(u.done?"return":"normal",u.value)}catch(e){i("throw",e)}}function i(e,t){switch(e){case"return":n.resolve({value:t,done:!0});break;case"throw":n.reject(t);break;default:n.resolve({value:t,done:!1})}(n=n.next)?o(n.key,n.arg):r=null}this._invoke=function(e,t){return new Promise(function(i,u){var s={key:e,arg:t,resolve:i,reject:u,next:null};r?r=r.next=s:(n=r=s,o(e,t))})},"function"!=typeof t.return&&(this.return=void 0)}"function"==typeof Symbol&&Symbol.asyncIterator&&(t.prototype[Symbol.asyncIterator]=function(){return this}),t.prototype.next=function(e){return this._invoke("next",e)},t.prototype.throw=function(e){return this._invoke("throw",e)},t.prototype.return=function(e){return this._invoke("return",e)}}(),function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}),w=function(){function e(e,t){for(var n=0;n=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n},A=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t},k=function(e){function t(e){E(this,t);var n=A(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.handleMouseDown=n.handleMouseDown.bind(n),n.handleMouseEnter=n.handleMouseEnter.bind(n),n.handleMouseMove=n.handleMouseMove.bind(n),n.handleTouchStart=n.handleTouchStart.bind(n),n.handleTouchEnd=n.handleTouchEnd.bind(n),n.handleTouchMove=n.handleTouchMove.bind(n),n.onFocus=n.onFocus.bind(n),n}return S(t,e),w(t,[{key:"handleMouseDown",value:function(e){e.preventDefault(),e.stopPropagation(),this.props.onSelect(this.props.option,e)}},{key:"handleMouseEnter",value:function(e){this.onFocus(e)}},{key:"handleMouseMove",value:function(e){this.onFocus(e)}},{key:"handleTouchEnd",value:function(e){this.dragging||this.handleMouseDown(e)}},{key:"handleTouchMove",value:function(){this.dragging=!0}},{key:"handleTouchStart",value:function(){this.dragging=!1}},{key:"onFocus",value:function(e){this.props.isFocused||this.props.onFocus(this.props.option,e)}},{key:"render",value:function(){var e=this.props,t=e.option,n=e.instancePrefix,r=e.optionIndex,o=u()(this.props.className,t.className);return t.disabled?c.a.createElement("div",{className:o,onMouseDown:m,onClick:m},this.props.children):c.a.createElement("div",{className:o,style:t.style,role:"option","aria-label":t.label,onMouseDown:this.handleMouseDown,onMouseEnter:this.handleMouseEnter,onMouseMove:this.handleMouseMove,onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove,onTouchEnd:this.handleTouchEnd,id:n+"-option-"+r,title:t.title},this.props.children)}}]),t}(c.a.Component);k.propTypes={children:a.a.node,className:a.a.string,instancePrefix:a.a.string.isRequired,isDisabled:a.a.bool,isFocused:a.a.bool,isSelected:a.a.bool,onFocus:a.a.func,onSelect:a.a.func,onUnfocus:a.a.func,option:a.a.object.isRequired,optionIndex:a.a.number};var F=function(e){function t(e){E(this,t);var n=A(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.handleMouseDown=n.handleMouseDown.bind(n),n.onRemove=n.onRemove.bind(n),n.handleTouchEndRemove=n.handleTouchEndRemove.bind(n),n.handleTouchMove=n.handleTouchMove.bind(n),n.handleTouchStart=n.handleTouchStart.bind(n),n}return S(t,e),w(t,[{key:"handleMouseDown",value:function(e){if("mousedown"!==e.type||0===e.button)return this.props.onClick?(e.stopPropagation(),void this.props.onClick(this.props.value,e)):void(this.props.value.href&&e.stopPropagation())}},{key:"onRemove",value:function(e){e.preventDefault(),e.stopPropagation(),this.props.onRemove(this.props.value)}},{key:"handleTouchEndRemove",value:function(e){this.dragging||this.onRemove(e)}},{key:"handleTouchMove",value:function(){this.dragging=!0}},{key:"handleTouchStart",value:function(){this.dragging=!1}},{key:"renderRemoveIcon",value:function(){if(!this.props.disabled&&this.props.onRemove)return c.a.createElement("span",{className:"Select-value-icon","aria-hidden":"true",onMouseDown:this.onRemove,onTouchEnd:this.handleTouchEndRemove,onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove},"×")}},{key:"renderLabel",value:function(){return this.props.onClick||this.props.value.href?c.a.createElement("a",{className:"Select-value-label",href:this.props.value.href,target:this.props.value.target,onMouseDown:this.handleMouseDown,onTouchEnd:this.handleMouseDown},this.props.children):c.a.createElement("span",{className:"Select-value-label",role:"option","aria-selected":"true",id:this.props.id},this.props.children)}},{key:"render",value:function(){return c.a.createElement("div",{className:u()("Select-value",this.props.value.className),style:this.props.value.style,title:this.props.value.title},this.renderRemoveIcon(),this.renderLabel())}}]),t}(c.a.Component);F.propTypes={children:a.a.node,disabled:a.a.bool,id:a.a.string,onClick:a.a.func,onRemove:a.a.func,value:a.a.object.isRequired}; +!function(){"use strict";var n={}.hasOwnProperty;function o(){for(var e=[],t=0;to(e)},t.memoizeOneWithFlag=function(e){let t,n=null,o=!0;return(...i)=>{let u=(0,r.isEqualArgs)(n,i)?{cached:!0,first:o,result:t}:{cached:!1,first:o,result:(n=i)&&(t=e(...i))};return o=!1,u}},t.memoizeAll=function(e){const t=[];return(...n)=>{let o=t.find(e=>(0,r.isEqualArgs)(e.args,n));return(o||t[t.push({args:n,result:e(...n)})-1]).result}};var r=n(11);function o(e){let t,n=null;return(...o)=>(0,r.isEqualArgs)(n,o)?t:(n=o)&&(t=e(...o))}},function(e,t){e.exports=window.ReactDOM},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.defaultIsNully=t.SortDirection=void 0;var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2));var o=t.SortDirection=void 0;!function(e){e.Ascending="asc",e.Descending="desc",e.None="none"}(o||(t.SortDirection=o={}));const i=t.defaultIsNully=(e=>void 0===e||null===e);t.default=((e,t,n=i)=>t.length?r.sortWith(r.map(e=>e.direction===o.Descending?r.comparator((t,r)=>{const o=e.columnId,i=t[o],u=r[o];return!n(i)&&(!!n(u)||i>u)}):r.comparator((t,r)=>{const o=e.columnId,i=t[o],u=r[o];return!n(i)&&(!!n(u)||i=0&&a.splice(t,1)}function h(e){var t=document.createElement("style");return void 0===e.attrs.type&&(e.attrs.type="text/css"),v(t,e.attrs),d(e,t),t}function v(e,t){Object.keys(t).forEach(function(n){e.setAttribute(n,t[n])})}function g(e,t){var n,r,o,i;if(t.transform&&e.css){if(!(i=t.transform(e.css)))return function(){};e.css=i}if(t.singleton){var a=s++;n=u||(u=h(t)),r=b.bind(null,n,a,!1),o=b.bind(null,n,a,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=function(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",v(t,e.attrs),d(e,t),t}(t),r=function(e,t,n){var r=n.css,o=n.sourceMap,i=void 0===t.convertToAbsoluteUrls&&o;(t.convertToAbsoluteUrls||i)&&(r=l(r));o&&(r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */");var u=new Blob([r],{type:"text/css"}),s=e.href;e.href=URL.createObjectURL(u),s&&URL.revokeObjectURL(s)}.bind(null,n,t),o=function(){f(n),n.href&&URL.revokeObjectURL(n.href)}):(n=h(t),r=function(e,t){var n=t.css,r=t.media;r&&e.setAttribute("media",r);if(e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}.bind(null,n),o=function(){f(n)});return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else o()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=o()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var n=p(e,t);return c(n,t),function(e){for(var o=[],i=0;it&&e.when&&-1!==e.when.indexOf(t.name));if(o.length||(o=r.default),!(t=o.find(t=>t.regexp.test(e))||null))return{lexemes:n,valid:!1,error:e};const i=(e.match(t.regexp)||[])[0];n.push({lexeme:t,value:i}),e=e.substring(i.length)}return{lexemes:n,valid:!0}};var r=function(e){return e&&e.__esModule?e:{default:e}}(n(16))},function(e,t,n){"use strict";function r(e){return void 0!==e&&null!==e&&"object"==typeof e&&e.constructor===Object}function o(e,t,n=!1){return e===t||i(Object.values(e),Object.values(t),n)}function i(e,t,n=!1){return!!e&&e.length===t.length&&!!e.every((e,u)=>{const s=t[u];return e===s||n&&(Array.isArray(e)&&Array.isArray(s)&&i(e,s,n)||r(e)&&r(s)&&o(e,s,n))})}Object.defineProperty(t,"__esModule",{value:!0}),t.isEqual=o,t.isEqualArgs=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e&&e.__esModule?e:{default:e}}(n(3));class o{constructor(e){this.name=e}get rules(){const e=this.sheet;return Array.from(e.rules||e.cssRules)}addRule(e,t){this.sheet.addRule?this.sheet.addRule(e,t):this.sheet.insertRule(`${e} { ${t} }`,0)}deleteRule(e){this.sheet.deleteRule(e)}findRule(e){const t=this.rules,n=t.findIndex(t=>t.selectorText===e);return-1===n?null:{rule:t[n],index:n}}get sheet(){return(this.__stylesheet=this.__stylesheet||(()=>{const e=document.createElement("style");return e.type="text/css",e.id=this.name,document.getElementsByTagName("head")[0].appendChild(e),e})()).sheet}}class i{constructor(e){this.prefix=e,this.stylesheet=new o(`${e}-dynamic-inline.css`)}static unit(e,t="px"){return i.hasUnit(e)?e:`${e}${t}`}static hasUnit(e){return"string"==typeof e&&/^\d+(\.\d+)?(px|em|rem)$/.test(e)}deleteRule(e){e=`${this.prefix} ${e}`;const t=this.stylesheet.findRule(e);t&&this.stylesheet.deleteRule(t.index)}setRule(e,t){e=`${this.prefix} ${e}`;const n=this.stylesheet.findRule(e);if(n){if(n.rule.cssText===t||n.rule.cssText===`${e} { ${t} }`)return;this.stylesheet.deleteRule(n.index)}this.stylesheet.addRule(e,t),r.default.trace("stylesheet",e,t)}}t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.colIsEditable=function(e,t){return e&&(!r.has("editable",t)||t.editable)};var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isPrintableChar=function(e){return 32===e||e>=48&&e<=57||e>=96&&e<=111||e>=186&&e<=192||e>=219&&e<=222||e>=226||e>=65&&e<=90},t.isMetaKey=function(e){return-1!==o.indexOf(e)},t.isNavKey=function(e){return-1!==u.indexOf(e)},t.isArrowKey=function(e){return-1!==i.indexOf(e)},t.isCtrlKey=function(e){const t=[];window.navigator.platform.includes("Mac")?t.push(r.COMMAND_LEFT,r.COMMAND_RIGHT,r.COMMAND_FIREFOX):t.push(r.CONTROL);return t.includes(e)},t.isCtrlMetaKey=function(e){return[r.CONTROL,r.COMMAND_LEFT,r.COMMAND_RIGHT,r.COMMAND_FIREFOX].includes(e)};const r=t.KEY_CODES={MOUSE_LEFT:1,MOUSE_RIGHT:3,MOUSE_MIDDLE:2,BACKSPACE:8,COMMA:188,INSERT:45,DELETE:46,END:35,ENTER:13,ESCAPE:27,CONTROL:17,COMMAND_LEFT:91,COMMAND_RIGHT:93,COMMAND_FIREFOX:224,ALT:18,HOME:36,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,SPACE:32,SHIFT:16,CAPS_LOCK:20,TAB:9,ARROW_RIGHT:39,ARROW_LEFT:37,ARROW_UP:38,ARROW_DOWN:40,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,A:65,X:88,C:67,V:86},o=[r.ARROW_DOWN,r.ARROW_UP,r.ARROW_LEFT,r.ARROW_RIGHT,r.HOME,r.END,r.DELETE,r.BACKSPACE,r.F1,r.F2,r.F3,r.F4,r.F5,r.F6,r.F7,r.F8,r.F9,r.F10,r.F11,r.F12,r.TAB,r.PAGE_DOWN,r.PAGE_UP,r.ENTER,r.ESCAPE,r.SHIFT,r.CAPS_LOCK,r.ALT],i=[r.ARROW_DOWN,r.ARROW_UP,r.ARROW_LEFT,r.ARROW_RIGHT],u=[...i,r.TAB,r.ENTER];t.isCtrlDown=(e=>(e.ctrlKey||e.metaKey)&&!e.altKey)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.deleteRow=function(e,t){const n=t.active_cell,o=t.dataframe,i=t.end_cell,u=t.selected_cell,s=t.selected_rows,a=t.start_cell,l={dataframe:r.remove(e,1,o)};r.is(Array,n)&&n[0]===e&&(l.active_cell=[]);r.is(Array,i)&&i[0]===e&&(l.end_cell=[]);r.is(Array,u)&&u[0]===e&&(l.selected_cell=[]);r.is(Array,a)&&a[0]===e&&(l.start_cell=[0,0]);r.is(Array,s)&&r.contains(e,s)&&(l.selected_rows=r.without([e],s));return l},t.deleteColumn=function(e,t,n){const i=n.columns,u=n.dataframe;var s=o(e,t,n);const a=s.groupIndexFirst,l=s.groupIndexLast,c=r.slice(a,l+1,r.pluck("id",i));return{columns:r.remove(a,1+l-a,i),dataframe:r.map(r.omit(c),u),active_cell:[],end_cell:[],selected_cell:[],start_cell:[0]}},t.editColumnName=function(e,t,n){const i=n.columns;var u=o(e,t,n);const s=u.groupIndexFirst,a=u.groupIndexLast,l=window.prompt("Enter a new column name");let c=r.clone(i);return r.range(s,a+1).map(e=>{let n;n="Array"===r.type(i[e].name)?[e,"name",t]:[e,"name"],c=r.set(r.lensPath(n),l,c)}),{columns:c}};var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2));function o(e,t,n){const o=n.columns;let i,u;"Null"!==r.type(t)?(i=e.name[t],u=r.pluck(t,r.pluck("name",o))):(i=e.name,u=r.pluck("name",o));const s=r.findIndex(r.propEq("id",e.id),o);let a=s,l=s;for(;u[a-1]===i;)a--;for(;u[l+1]===i;)l++;return{groupIndexFirst:a,groupIndexLast:l}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LexemeType=void 0;var r=function(){return function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,o=!1,i=void 0;try{for(var u,s=e[Symbol.iterator]();!(r=(u=s.next()).done)&&(n.push(u.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{!r&&s.return&&s.return()}finally{if(o)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),o=function(e){return e&&e.__esModule?e:{default:e}}(n(3));var i=t.LexemeType=void 0;!function(e){e.And="and",e.BlockClose="close-block",e.BlockOpen="open-block",e.BinaryOperator="logical-binary-operator",e.Expression="expression",e.Or="or",e.Operand="operand",e.UnaryNot="unary-not",e.UnaryOperator="logical-unary-operator"}(i||(t.LexemeType=i={}));const u={resolve:(e,t)=>{if(o.default.trace("resolve -> exp",e,t),/^('.*')|(".*")$/.test(t.value))return t.value.slice(1,t.value.length-1);if(!/^\w+\(.*\)$/.test(t.value))return e[t.value];{const e=t.value.match(/^(\w+)\((.*)\)$/);if(!e)throw Error();{var n=r(e,3);const t=n[1],o=n[2];switch(t){case"num":return parseInt(o,10);case"str":default:return o}}}},regexp:/^(((num|str)\([^()]*\))|'([^()']|\\')+'|"([^()"]|\\")+"|\w+)/},s=[{evaluate:(e,t)=>{o.default.trace("evalute -> &&",e,t);const n=t,r=n.left.lexeme.evaluate(e,n.left),i=n.right.lexeme.evaluate(e,n.right);return r&&i},name:i.And,priority:2,regexp:/^(and\s|&&)/i,syntaxer:(e,t,n)=>Object.assign({left:e.slice(0,n),right:e.slice(n+1)},t)},{evaluate:(e,t)=>{o.default.trace("evalute -> ||",e,t);const n=t;return n.left.lexeme.evaluate(e,n.left)||n.right.lexeme.evaluate(e,n.right)},name:i.Or,priority:3,regexp:/^(or\s|\|\|)/i,syntaxer:(e,t,n)=>Object.assign({left:e.slice(0,n),right:e.slice(n+1)},t)},{name:i.BlockClose,nesting:-1,regexp:/^\)/},{evaluate:(e,t)=>{o.default.trace("evaluate -> ()",e,t);const n=t;return n.block.lexeme.evaluate(e,n.block)},name:i.BlockOpen,nesting:1,priority:1,regexp:/^\(/,syntaxer:e=>Object.assign({block:e.slice(1,e.length-1)},e[0]),when:[i.UnaryNot]},Object.assign({name:i.Operand},u),{evaluate:(e,t)=>{o.default.trace("evaluate -> binary",e,t);const n=t,r=n.left.lexeme.resolve(e,n.left),i=n.right.lexeme.resolve(e,n.right);switch(o.default.trace(`opValue: ${r}, expValue: ${i}`),t.value.toLowerCase()){case"eq":case"=":return r===i;case"gt":case">":return r>i;case"ge":case">=":return r>=i;case"lt":case"<":return r=|<=|>|<|!=|=|ge|le|gt|lt|eq|ne)/i,syntaxer:e=>{var t=r(e,3);let n=t[0],o=t[1],i=t[2];return Object.assign({left:n,right:i},o)},when:[i.Operand]},{evaluate:(e,t)=>{o.default.trace("evaluate -> unary",e,t);const n=t,r=n.block.lexeme.resolve(e,n.block);switch(t.value.toLowerCase()){case"is even":return"number"==typeof r&&r%2==0;case"is nil":return void 0===r||null===r;case"is bool":return"boolean"==typeof r;case"is odd":return"number"==typeof r&&r%2==1;case"is num":return"number"==typeof r;case"is object":return null!==r&&"object"==typeof r;case"is str":return"string"==typeof r;case"is prime":return"number"==typeof r&&(e=>{if(2===e)return!0;if(e<2||e%2==0)return!1;for(let t=3;t*t<=e;t+=2)if(e%t==0)return!1;return!0})(r);default:throw new Error}},name:i.UnaryOperator,priority:0,regexp:/^((is nil)|(is odd)|(is even)|(is bool)|(is num)|(is object)|(is str)|(is prime))/i,syntaxer:e=>{var t=r(e,2);let n=t[0],o=t[1];return Object.assign({block:n},o)},when:[i.Operand]},{evaluate:(e,t)=>{o.default.trace("evaluate -> unary not",e,t);const n=t;return!n.block.lexeme.evaluate(e,n.block)},name:i.UnaryNot,priority:1.5,regexp:/^!/,syntaxer:e=>Object.assign({block:e.slice(1,e.length)},e[0]),when:[i.UnaryNot]},Object.assign({name:i.Expression,when:[i.BinaryOperator]},u)];t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=u(n(3)),o=u(n(10)),i=u(n(18));function u(e){return e&&e.__esModule?e:{default:e}}t.default=class{constructor(e){this.query=e,this.evaluate=(e=>{if(!this.isValid||!this.tree){const e=`unable to evaluate target: syntax tree is invalid for query=${this.query}`;throw r.default.error(e),new Error(e)}const t=this.tree.lexeme.evaluate;return!!t&&t(e,this.tree)}),this.filter=(e=>e.filter(this.evaluate)),this.result=(0,i.default)((0,o.default)(this.query))}get isValid(){return this.result.valid}get tree(){return this.result.tree}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e&&e.__esModule?e:{default:e}}(n(3));const o=e=>{let t=0;const n=e.map(e=>{const n=Object.assign({},e,{nesting:t});return t+=e.lexeme.nesting||0,n}),i=n.filter(e=>0===e.nesting&&"number"==typeof e.lexeme.priority).sort((e,t)=>(t.lexeme.priority||-1)-(e.lexeme.priority||-1))[0];r.default.trace("parser -> pivot",i,e);const u=n.indexOf(i);if(i.lexeme.syntaxer){let t=i.lexeme.syntaxer(e,i,u);return Array.isArray(t.left)&&(t.left=o(t.left)),Array.isArray(t.right)&&(t.right=o(t.right)),Array.isArray(t.block)&&(t.block=o(t.block)),t}throw new Error(i.lexeme.name)};t.default=(e=>{const t=e.lexemes;if(!e.valid)return{valid:!1,error:`lexer -- ${e.error}`};try{return{tree:o(t),valid:!0}}catch(e){return{valid:!1,error:e}}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=((e,t=null)=>{if(t=t||(()=>{for(t=e;t&&"td"!==t.nodeName.toLowerCase();)t=t.parentElement;return t})(),!e||!t)return;let n=e;for(;"relative"!==getComputedStyle(n).position&&"sticky"!==getComputedStyle(n).position&&n.parentElement;)n=n.parentElement;let r=e;for(;"relative"!==getComputedStyle(r).position&&r.parentElement;)r=r.parentElement;const o=n.getBoundingClientRect(),i=r.getBoundingClientRect(),u=t.getBoundingClientRect(),s=u.left-o.left+n.scrollLeft,a=u.top-o.top+n.scrollTop+u.height;e.style.width=`${u.width}px`,e.style.top=`${a}px`,e.style.left=`${s}px`,e.style.position="absolute",u.top+u.height/2>i.bottom||u.top-u.height/2i.left+i.width?e.style.display="none":e.style.display="block"})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=function(e){return e&&e.__esModule?e:{default:e}}(r);class i extends r.PureComponent{constructor(e){super(e),this.handleChange=(e=>this.setState({value:e.target.value})),this.submit=(()=>this.state.value!==this.props.value&&this.props.submit(this.state.value)),this.state={value:e.value}}get propsWithDefaults(){return this.props}render(){var e=this.propsWithDefaults;const t=e.stopPropagation,n=e.updateOnBlur,r=e.updateOnSubmit;let i={onBlur:n?this.submit:void 0,onKeyDown:t?e=>e.stopPropagation():void 0,onSubmit:r?this.submit:void 0};return o.default.createElement("input",Object.assign({ref:"input",type:"text",value:this.state.value||"",onChange:this.handleChange},i))}}t.default=i,i.defaultProps={stopPropagation:!1,updateOnBlur:!0,updateOnSubmit:!0}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(this.props,[]);return function(e){c.forEach(function(t){return delete e[t]})}(o),o.className=this.props.inputClassName,o.id=this.state.inputId,o.style=n,u.default.createElement("div",{className:this.props.className,style:t},this.renderStyles(),u.default.createElement("input",r({},o,{ref:this.inputRef})),u.default.createElement("div",{ref:this.sizerRef,style:l},e),this.props.placeholder?u.default.createElement("div",{ref:this.placeHolderSizerRef,style:l},this.props.placeholder):null)}}]),t}();h.propTypes={className:s.default.string,defaultValue:s.default.any,extraWidth:s.default.oneOfType([s.default.number,s.default.string]),id:s.default.string,injectStyles:s.default.bool,inputClassName:s.default.string,inputRef:s.default.func,inputStyle:s.default.object,minWidth:s.default.oneOfType([s.default.number,s.default.string]),onAutosize:s.default.func,onChange:s.default.func,placeholder:s.default.string,placeholderIsMinWidth:s.default.bool,style:s.default.object,value:s.default.any},h.defaultProps={minWidth:1,injectStyles:!0},t.default=h},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Table=void 0;var r=u(n(23)),o=u(n(3)),i=u(n(25));function u(e){return e&&e.__esModule?e:{default:e}}o.default.setDebugLevel(r.default.debugLevel),o.default.setLogLevel(r.default.logLevel),t.Table=i.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3),o=function(e){return e&&e.__esModule?e:{default:e}}(n(24));const i="dash_debug",u="dash_log";t.default=class{static get searchParams(){return new URL(window.location.href).searchParams||{get:()=>null}}static get debugLevel(){const e=this.searchParams.get(i)||o.default.get(i);return e&&r.DebugLevel[e]||r.DebugLevel.NONE}static get logLevel(){const e=this.searchParams.get(u)||o.default.get(u);return e&&r.LogLevel[e]||r.LogLevel.ERROR}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=864e5,o=63072e7;class i{static delete(e,t="",n="/"){let o=new Date((new Date).getTime()-r).toUTCString();document.cookie=`${e}=;expires=${o};domain=${t};path=${n}`}static get(e){if(!e.length)return;return e=e.toLowerCase(),(document.cookie.split(";").map(e=>{let t=e.split("=");return{id:t[0].trim(),value:t[1]}}).find(t=>e===t.id.toLocaleLowerCase())||{}).value}static set(e,t,n="",r="/"){let u=`${e}=${t};expires=${new Date((new Date).getTime()+o).toUTCString()};domain=${n};path=${r}`;i.get(e)&&i.delete(e,n,r),document.cookie=u}}t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.propTypes=t.defaultProps=void 0;var r=n(1),o=s(r),i=s(n(0)),u=s(n(28));function s(e){return e&&e.__esModule?e:{default:e}}n(55);class a extends r.Component{render(){return o.default.createElement(u.default,this.props)}}t.default=a;const l=t.defaultProps={pagination_mode:"fe",pagination_settings:{displayed_pages:1,current_page:0,page_size:250},navigation:"page",filtering:!1,filtering_settings:"",filtering_type:"basic",filtering_types:["basic"],sorting:!1,sorting_type:"single",sorting_settings:[],derived_viewport_dataframe:[],derived_viewport_indices:[],derived_virtual_dataframe:[],derived_virtual_indices:[],column_conditional_dropdowns:[],column_static_dropdown:[],column_conditional_styles:[],column_static_style:[],row_conditional_styles:[],row_static_style:{},dataframe:[],columns:[],editable:!1,active_cell:[],selected_cell:[[]],selected_rows:[],row_selectable:!1,table_style:[]},c=t.propTypes={active_cell:i.default.array,columns:i.default.arrayOf(i.default.object),dataframe:i.default.arrayOf(i.default.object),dataframe_previous:i.default.arrayOf(i.default.object),dataframe_timestamp:i.default.any,editable:i.default.bool,end_cell:i.default.arrayOf(i.default.number),id:i.default.string.isRequired,is_focused:i.default.bool,merge_duplicate_headers:i.default.bool,n_fixed_columns:i.default.number,n_fixed_rows:i.default.number,row_deletable:i.default.bool,row_selectable:i.default.oneOf(["single","multi",!1]),selected_cell:i.default.arrayOf(i.default.arrayOf(i.default.number)),selected_rows:i.default.arrayOf(i.default.number),setProps:i.default.any,start_cell:i.default.arrayOf(i.default.number),style_as_list_view:i.default.bool,table_style:i.default.arrayOf(i.default.shape({selector:i.default.string,rule:i.default.string})),pagination_mode:i.default.oneOf(["fe","be",!0,!1]),pagination_settings:i.default.shape({displayed_pages:i.default.number,current_page:i.default.number,page_size:i.default.number}),navigation:i.default.string,column_conditional_dropdowns:i.default.arrayOf(i.default.shape({id:i.default.string,dropdowns:i.default.arrayOf(i.default.shape({condition:i.default.string,dropdown:i.default.arrayOf(i.default.shape({label:i.default.string,value:i.default.any}))}))})),column_static_dropdown:i.default.arrayOf(i.default.shape({id:i.default.string,dropdown:i.default.arrayOf(i.default.shape({label:i.default.string,value:i.default.any}))})),column_conditional_style:i.default.arrayOf(i.default.shape({id:i.default.string,styles:i.default.arrayOf(i.default.shape({condition:i.default.string,style:i.default.object}))})),column_static_style:i.default.arrayOf(i.default.shape({id:i.default.string,style:i.default.object})),row_conditional_styles:i.default.arrayOf(i.default.shape({condition:i.default.string,style:i.default.object})),row_static_style:i.default.object,filtering:i.default.oneOf(["fe","be",!0,!1]),filtering_settings:i.default.string,filtering_type:i.default.oneOf(["basic"]),filtering_types:i.default.arrayOf(i.default.oneOf(["basic"])),sorting:i.default.oneOf(["fe","be",!0,!1]),sorting_type:i.default.oneOf(["single","multi"]),sorting_settings:i.default.arrayOf(i.default.shape({columnId:i.default.oneOfType([i.default.string,i.default.number]),direction:i.default.oneOf(["asc","desc"])})),sorting_treat_empty_string_as_none:i.default.bool,derived_viewport_dataframe:i.default.arrayOf(i.default.object),derived_viewport_indices:i.default.arrayOf(i.default.number),derived_virtual_dataframe:i.default.arrayOf(i.default.object),derived_virtual_indices:i.default.arrayOf(i.default.number),dropdown_properties:i.default.any};a.defaultProps=l,a.propTypes=c},function(e,t,n){"use strict";var r=n(27);function o(){}e.exports=function(){function e(e,t,n,o,i,u){if(u!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t};return n.checkPropTypes=o,n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=p(r),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),u=n(5),s=p(n(29)),a=p(n(45)),l=p(n(46)),c=p(n(47));function p(e){return e&&e.__esModule?e:{default:e}}n(48),n(51),n(53);const d=/^derived_/;t.default=class extends r.Component{constructor(e){super(e),this.__setProps=(0,u.memoizeOne)(e=>e?t=>{if(i.has("dataframe",t)){const e=this.props.dataframe;t.dataframe_timestamp=Date.now(),t.dataframe_previous=e}e(t)}:e=>this.setState(e)),this.paginator=(0,a.default)(),this.viewport=(0,l.default)(),this.virtual=(0,c.default)(),this.filterCache=(0,u.memoizeOneWithFlag)(e=>e),this.paginationCache=(0,u.memoizeOneWithFlag)(e=>e),this.sortCache=(0,u.memoizeOneWithFlag)(e=>e),this.viewportCache=(0,u.memoizeOneWithFlag)(e=>e),this.virtualCache=(0,u.memoizeOneWithFlag)(e=>e),this.controlled=this.getControlledProps(this.props)}componentWillReceiveProps(e){this.controlled=this.getControlledProps(e),this.updateDerivedProps()}shouldComponentUpdate(e){const t=this.props;return i.any(n=>!d.test(n)&&t[n]!==e[n],i.keysIn(t))}render(){return o.default.createElement(s.default,Object.assign({},this.controlled))}getControlledProps(e){const t=this.setProps,n=e.dataframe,r=e.filtering,o=e.filtering_settings,u=e.pagination_mode,s=e.pagination_settings,a=e.sorting,l=e.sorting_settings,c=e.sorting_treat_empty_string_as_none,p=this.virtual(n,r,o,a,l,c),d=this.viewport(u,s,p.dataframe,p.indices),f=this.paginator(u,s,t,d.dataframe);return i.mergeAll([e,{paginator:f,setProps:t,viewport:d,virtual:p}])}updateDerivedProps(){var e=this.controlled;const t=e.filtering,n=e.filtering_settings,r=e.pagination_mode,o=e.pagination_settings,i=e.sorting,u=e.sorting_settings,s=e.viewport,a=e.virtual,l=this.viewportCache(s).cached,c=this.virtualCache(a).cached,p=this.filterCache(n),d=this.paginationCache(o),f=this.sortCache(u),h=!p.cached&&!p.first&&"be"===t||!d.cached&&!d.first&&"be"===r||!f.cached&&!f.first&&"be"===i;if(c&&l&&!h)return;const v=this.setProps;let g={};c||(g.derived_virtual_dataframe=a.dataframe,g.derived_virtual_indices=a.indices),l||(g.derived_viewport_dataframe=s.dataframe,g.derived_viewport_indices=s.indices),h&&(g.active_cell=void 0,g.selected_cell=void 0,g.selected_rows=void 0),setTimeout(()=>v(g),0)}get setProps(){return this.__setProps(this.props.setProps)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=m(r),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),u=m(n(12)),s=n(13),a=n(14),l=n(30),c=n(31),p=m(c),d=m(n(3)),f=n(5),h=m(n(10)),v=m(n(34)),g=m(n(37)),y=m(n(19)),b=m(n(41));function m(e){return e&&e.__esModule?e:{default:e}}const x=i.sort((e,t)=>e-t);t.default=class extends r.PureComponent{constructor(e){super(e),this.getLexerResult=(0,f.memoizeOne)(h.default),this.handleClickOutside=(e=>{const t=this.$el;t&&!t.contains(e.target)&&this.props.is_focused&&this.props.setProps({is_focused:!1})}),this.handlePaste=(e=>{const t=this.$el;t&&t.contains(document.activeElement)&&this.onPaste(e)}),this.handleResize=(()=>{var e=this.refs;const t=e.r0c0,n=e.r0c1,r=e.r1c0,o=e.r1c1;let i=n.querySelectorAll("tr");t.querySelectorAll("tr").forEach((e,t)=>{const n=i[t];e.style.height=getComputedStyle(n).height});let u=o.querySelectorAll("tr > th:first-of-type");r.querySelectorAll("tr > th:first-of-type").forEach((e,t)=>{const n=u[t].parentElement;e.parentElement.style.height=getComputedStyle(n).height});const s=o.querySelector("tr > td:first-of-type");if(s){const e=s.parentElement;this.stylesheet.setRule(".cell-1-0 tr",`height: ${getComputedStyle(e).height}`)}}),this.handleKeyDown=(e=>{var t=this.props;const n=t.active_cell,r=t.columns,o=t.setProps,i=t.is_focused,u=t.editable;if(d.default.trace(`handleKeyDown: ${e.key}`),(0,a.isCtrlMetaKey)(e.keyCode))return;const l=(0,a.isCtrlDown)(e);l&&e.keyCode===a.KEY_CODES.V||e.keyCode===a.KEY_CODES.C&&l&&!i||(e.keyCode!==a.KEY_CODES.ESCAPE?e.keyCode!==a.KEY_CODES.ENTER||i||!(0,s.colIsEditable)(u,r[n[1]])?i&&e.keyCode!==a.KEY_CODES.TAB&&e.keyCode!==a.KEY_CODES.ENTER||((0,a.isNavKey)(e.keyCode)?this.switchCell(e):e.keyCode===a.KEY_CODES.BACKSPACE||e.keyCode===a.KEY_CODES.DELETE?this.deleteCell(e):this.props.is_focused||!(0,s.colIsEditable)(u,r[n[1]])||(0,a.isMetaKey)(e.keyCode)||o({is_focused:!0})):o({is_focused:!0}):o({is_focused:!1}))}),this.switchCell=(e=>{const t=e;var n=this.props;const r=n.active_cell,o=n.columns,u=n.row_deletable,s=n.row_selectable,l=n.selected_cell,c=n.setProps,p=n.viewport;e.preventDefault(),this.$el.focus();const d=l.length>1,f=t.keyCode===a.KEY_CODES.ENTER||t.keyCode===a.KEY_CODES.TAB;if(d&&f)return void c({is_focused:!1,active_cell:this.getNextCell(t,{currentCell:r,restrictToSelection:!0})});if(!t.shiftKey){const e=this.getNextCell(t,{currentCell:r,restrictToSelection:!1});return void c({is_focused:!1,selected_cell:[e],active_cell:e})}let h=[],v=[];const g=x(i.uniq(i.pluck(0,l))),y=x(i.uniq(i.pluck(1,l))),b=g[0],m=y[0],E=g[g.length-1],w=y[y.length-1],_=(u?1:0)+(s?1:0),O=[];o.forEach((e,t)=>{e.hidden||O.push(t+_)});const S=t.keyCode===a.KEY_CODES.ARROW_DOWN||t.keyCode===a.KEY_CODES.ENTER,C=t.keyCode===a.KEY_CODES.ARROW_UP,A=t.keyCode===a.KEY_CODES.ARROW_RIGHT||t.keyCode===a.KEY_CODES.TAB,k=t.keyCode===a.KEY_CODES.ARROW_LEFT;S&&r[0]>b?v=y.map(e=>[b,e]):S&&E!==p.dataframe.length-1?h=y.map(e=>[E+1,e]):C&&r[0][E,e]):C&&b>0?h=y.map(e=>[b-1,e]):k&&r[1][e,w]):k&&m>0?h=g.map(e=>[e,m-1]):A&&r[1]>m?v=g.map(e=>[e,m]):A&&w+1<=i.last(O)&&(h=g.map(e=>[e,w+1])),c({is_focused:!1,selected_cell:i.without(v,i.uniq(i.concat(h,l)))})}),this.deleteCell=(e=>{var t=this.props;const n=t.columns,r=t.dataframe,o=t.editable,u=t.row_deletable,a=t.row_selectable,l=t.selected_cell,c=t.setProps,p=t.viewport;e.preventDefault();let d=r;const f=(u?1:0)+(a?1:0);i.map(e=>[p.indices[e[0]],e[1]-f],l).forEach(e=>{(0,s.colIsEditable)(o,n[e[1]])&&(d=i.set(i.lensPath([e[0],n[e[1]].id]),"",d))}),c({dataframe:d})}),this.getNextCell=((e,{restrictToSelection:t,currentCell:n})=>{var r=this.props;const o=r.columns,u=r.row_deletable,s=r.row_selectable,c=r.selected_cell,p=r.viewport,d=e,f=[],h=(u?1:0)+(s?1:0);switch(t||o.forEach((e,t)=>{e.hidden||f.push(t+h)}),d.keyCode){case a.KEY_CODES.ARROW_LEFT:return t?(0,l.selectionCycle)([n[0],n[1]-1],c):[n[0],i.max(f[0],f[i.indexOf(n[1],f)-1])];case a.KEY_CODES.ARROW_RIGHT:case a.KEY_CODES.TAB:return t?(0,l.selectionCycle)([n[0],n[1]+1],c):[n[0],i.min(i.last(f),f[i.indexOf(n[1],f)+1])];case a.KEY_CODES.ARROW_UP:return t?(0,l.selectionCycle)([n[0]-1,n[1]],c):[i.max(0,n[0]-1),n[1]];case a.KEY_CODES.ARROW_DOWN:case a.KEY_CODES.ENTER:return t?(0,l.selectionCycle)([n[0]+1,n[1]],c):[i.min(p.dataframe.length-1,n[0]+1),n[1]];default:throw new Error(`Table.getNextCell: unknown navigation keycode ${d.keyCode}`)}}),this.onCopy=(e=>{var t=this.props;const n=t.columns,r=t.row_deletable,o=t.row_selectable,u=t.selected_cell,s=t.viewport,a=(r?1:0)+(o?1:0),l=i.map(e=>[e[0],e[1]-a],u);v.default.toClipboard(e,l,n,s.dataframe),this.$el.focus()}),this.onPaste=(e=>{var t=this.props;const n=t.active_cell,r=t.columns,o=t.dataframe,i=t.editable,u=t.filtering_settings,s=t.row_deletable,a=t.row_selectable,l=t.setProps,c=t.sorting_settings,p=t.viewport;if(!i)return;const d=(s?1:0)+(a?1:0),f=[n[0],n[1]-d],h=v.default.fromClipboard(e,f,p.indices,r,o,!0,!c.length||!u.length);h&&l(h)}),this.loadNext=(()=>{this.props.paginator.loadNext()}),this.loadPrevious=(()=>{this.props.paginator.loadPrevious()}),this.onContainerScroll=(e=>{if(!this.props.n_fixed_columns)return;const t=this.refs.spreadsheet;e.target===t&&this.stylesheet.setRule(".frozen-left",`margin-top: ${-e.target.scrollTop}px;`)}),this.applyStyle=((e,t,n)=>{let r=0;t&&(this.stylesheet.setRule(`.dash-spreadsheet-inner td.column-${r}`,"width: 30px; max-width: 30px; min-width: 30px;"),this.stylesheet.setRule(`.dash-spreadsheet-inner th.column-${r}`,"width: 30px; max-width: 30px; min-width: 30px;"),++r),n&&(this.stylesheet.setRule(`.dash-spreadsheet-inner td.column-${r}`,"width: 30px; max-width: 30px; min-width: 30px;"),this.stylesheet.setRule(`.dash-spreadsheet-inner th.column-${r}`,"width: 30px; max-width: 30px; min-width: 30px;"),++r),i.forEach(e=>{const t=u.default.unit(e.width||c.DEFAULT_CELL_WIDTH,"px");this.stylesheet.setRule(`.dash-spreadsheet-inner td.column-${r}`,`width: ${t}; max-width: ${t}; min-width: ${t};`),this.stylesheet.setRule(`.dash-spreadsheet-inner th.column-${r}`,`width: ${t}; max-width: ${t}; min-width: ${t};`),++r},e)}),this.renderFragment=(e=>e?o.default.createElement("table",{tabIndex:-1},o.default.createElement("tbody",null,e.map((e,t)=>o.default.createElement("tr",{key:`row-${t}`},e)))):null),this.handleSetFilter=(e=>this.props.setProps({filtering_settings:e})),this.getCells=(()=>[...this.headerFactory.createHeaders(),...this.filterFactory.createFilters(),...this.cellFactory.createCells()]),this.getFragments=((e,t,n)=>{const r=t?i.map(e=>e.splice(0,i.reduceWhile(e=>e.count(e.cells++,e.count+=t.props.colSpan||1,e),{cells:0,count:0},e).cells),e):null,o=n?e.splice(0,n):null,u=n&&r?r.splice(0,n):null;return[[this.renderFragment(u),this.renderFragment(o)],[this.renderFragment(r),this.renderFragment(e)]]}),this.handleDropdown=(()=>{const e=this.refs.r1c1;(0,y.default)(e.querySelector(".Select-menu-outer"))}),this.onScroll=(e=>{const t=this.refs.r0c1;d.default.trace(`ControlledTable fragment scrolled to (left,top)=(${e.target.scrollLeft},${e.target.scrollTop})`),t.style.marginLeft=`${-e.target.scrollLeft}px`,this.handleDropdown()}),this.cellFactory=new g.default(()=>this.props),this.filterFactory=new b.default(()=>{var e=this.props;const t=e.row_deletable,n=e.row_selectable,r=(t?1:0)+(n?1:0);return{columns:this.props.columns,filtering:this.props.filtering,filtering_settings:this.props.filtering_settings,filtering_type:this.props.filtering_type,id:this.props.id,offset:r,setFilter:this.handleSetFilter}}),this.headerFactory=new p.default(()=>this.props),this.stylesheet=new u.default(`#${e.id}`)}get lexerResult(){const e=this.props.filtering_settings;return this.getLexerResult(e)}componentDidMount(){this.props.selected_cell.length&&!i.contains(this.props.active_cell,this.props.selected_cell)&&this.props.setProps({active_cell:this.props.selected_cell[0]}),window.addEventListener("resize",this.handleResize),document.addEventListener("paste",this.handlePaste),document.addEventListener("mousedown",this.handleClickOutside)}componentWillUnmount(){window.removeEventListener("resize",this.handleResize),document.removeEventListener("mousedown",this.handleClickOutside),document.removeEventListener("paste",this.handlePaste)}componentWillUpdate(){const e=this.props.table_style;i.forEach(({selector:e,rule:t})=>{this.stylesheet.setRule(e,t)},e)}componentDidUpdate(){this.handleResize(),this.handleDropdown()}get $el(){return document.getElementById(this.props.id)}get displayPagination(){var e=this.props;const t=e.dataframe,n=e.navigation,r=e.pagination_mode,o=e.pagination_settings;return"page"===n&&("fe"===r&&o.page_sizeo.default.createElement("div",{key:`r${t}`,ref:`r${t}`,className:`row row-${t}`,onScroll:this.onScroll},e.map((e,n)=>o.default.createElement("div",{key:n,ref:`r${t}c${n}`,className:`cell cell-${t}-${n}`},e)))))),this.displayPagination?o.default.createElement("div",null,o.default.createElement("button",{className:"previous-page",onClick:this.loadPrevious},"Previous"),o.default.createElement("button",{className:"next-page",onClick:this.loadNext},"Next")):null)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,o=!1,i=void 0;try{for(var u,s=e[Symbol.iterator]();!(r=(u=s.next()).done)&&(n.push(u.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{!r&&s.return&&s.return()}finally{if(o)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();t.selectionCycle=function(e,t){const n=o.uniq(o.pluck(0,t)).sort((e,t)=>e-t),i=o.uniq(o.pluck(1,t)).sort((e,t)=>e-t),u=n[0],s=i[0],a=n[n.length-1],l=i[i.length-1];var c=r(e,2);const p=c[0],d=c[1],f=[p,d];p>a&&(f[0]=u,f[1]=d+1>l?s:d+1);pl&&(f[1]=s,f[0]=p+1>a?u:p+1);dArray.isArray(e.name)?e.name.length:1,h=(e,t)=>Array.isArray(e.name)?e.name[t]:"";t.default=class{constructor(e){this.propsFn=e}get props(){return this.propsFn()}getSorting(e,t){const n=o.find(t=>t.columnId===e,t);return n?n.direction:u.SortDirection.None}doSort(e,t){return()=>{const n=t.sorting_settings,r=t.sorting_type;let o;switch(this.getSorting(e,n)){case u.SortDirection.Descending:o=u.SortDirection.Ascending;break;case u.SortDirection.Ascending:o=u.SortDirection.None;break;case u.SortDirection.None:default:o=u.SortDirection.Descending}const i="single"===r?a.default:s.default;t.setProps({sorting_settings:i(n,{columnId:e,direction:o})})}}getSortingIcon(e,t){const n=t.sorting_settings;switch(this.getSorting(e,n)){case u.SortDirection.Descending:return"↑";case u.SortDirection.Ascending:return"↓";case u.SortDirection.None:default:return"↕"}}createHeaderCells(e){const t=e.columns,n=e.columnRowIndex,u=e.labels,s=e.mergeCells,a=e.n_fixed_columns,c=e.offset,p=e.pagination_mode,f=e.rowSorting;let h=[];if(s){h=[0];let e=0;u.forEach((n,r)=>{t[r].hidden||n===u[e]||(h.push(r),e=r)})}else h=o.range(0,t.length);const v=t.filter(e=>!e.hidden);return o.filter(e=>!!e,h.map((g,y)=>{const b=t[g];if(b.hidden)return null;const m=v.indexOf(b)+c;let x;if(s){const e=o.slice(g,h[y+1]||1/0,t).filter(o.propEq("hidden",!0)).length;x=g===o.last(h)?u.length-g-e:h[y+1]-g-e}else x=1;const E=v.indexOf(b),w=`calc(${v.filter((e,t)=>!e.hidden&&t>=E&&ti.default.unit(e.width||d,"px")).join(" + ")})`;return r.default.createElement("th",{key:`header-cell-${g}`,colSpan:x,className:`column-${g+c} `+(g===t.length-1||g===o.last(h)?"cell--right-last ":""),style:m{(0,n.setProps)(l.editColumnName(e,t,n))}}(b,n,e)},"✎"):"",b.deletable&&"be"!==p&&"Boolean"===o.type(b.deletable)||"Number"===o.type(b.deletable)&&b.deletable===n?r.default.createElement("span",{className:"column-header--delete",onClick:function(e,t,n){return()=>{(0,n.setProps)(l.deleteColumn(e,t,n))}}(b,n,e)},"×"):"",r.default.createElement("span",null,u[g]))}))}createDeletableHeader(e){return e.row_deletable?r.default.createElement("th",{key:"delete",className:"expanded-row--empty-cell",style:{width:"30px",maxWidth:"30px",minWidth:"30px"}}):null}createSelectableHeader(e){return e.row_selectable?r.default.createElement("th",{key:"select",className:"expanded-row--empty-cell",style:{width:"30px",maxWidth:"30px",minWidth:"30px"}}):null}createHeaders(){const e=this.props;let t=e.columns,n=e.dataframe,r=e.sorting,i=e.merge_duplicate_headers,u=e.n_fixed_columns,s=e.pagination_mode,a=e.row_deletable,l=e.row_selectable,c=e.setProps,p=e.sorting_settings,d=e.sorting_type;const v=(a?1:0)+(l?1:0),g=this.createDeletableHeader(e),y=this.createSelectableHeader(e),b=Math.max.apply(Math,t.map(f));let m;return m=1===b?[[...g?[g]:[],...y?[y]:[],...this.createHeaderCells({columns:t,columnRowIndex:0,dataframe:n,labels:o.pluck("name",t),n_fixed_columns:u,offset:v,pagination_mode:s,rowSorting:r,setProps:c,sorting_settings:p,sorting_type:d})]]:o.range(0,b).map(e=>[...g?[g]:[],...y?[y]:[],...this.createHeaderCells({columns:t,columnRowIndex:e,dataframe:n,labels:t.map(t=>o.isNil(t.name)&&e===b-1?t.id:h(t,e)),n_fixed_columns:u,offset:v,pagination_mode:s,rowSorting:!!r&&e+1===b,mergeCells:i&&e+1!==b,setProps:c,sorting_settings:p,sorting_type:d})])}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),o=function(e){return e&&e.__esModule?e:{default:e}}(n(3)),i=n(7);t.default=((e,t)=>{if(o.default.trace("multi - updateSettings",e,t),e=r.clone(e),t.direction===i.SortDirection.None){const n=r.findIndex(e=>e.columnId===t.columnId,e);-1!==n&&e.splice(n,1)}else{const n=r.find(e=>e.columnId===t.columnId,e);n?n.direction=t.direction:e.push(t)}return e})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e&&e.__esModule?e:{default:e}}(n(3)),o=n(7);t.default=((e,t)=>(r.default.trace("single - updateSettings",e,t),t.direction===o.SortDirection.None?[]:[t]))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),o=a(n(35)),i=a(n(36)),u=a(n(3)),s=n(13);function a(e){return e&&e.__esModule?e:{default:e}}t.default=class{static toClipboard(e,t,n,s){const a=r.uniq(r.pluck(0,t).sort((e,t)=>e-t)),l=r.uniq(r.pluck(1,t).sort((e,t)=>e-t)),c=r.slice(r.head(a),r.last(a)+1,s).map(e=>r.props(l,r.props(r.pluck("id",n),e))),p=o.default.prototype.stringify(c);u.default.trace("TableClipboard -- set clipboard data: ",p),i.default.set(e,p)}static fromClipboard(e,t,n,a,l,c=!0,p=!0){const d=i.default.get(e);if(u.default.trace("TableClipboard -- get clipboard data: ",d),!d)return;const f=o.default.prototype.parse(d);let h=l;const v=a;if(c&&f[0].length+t[1]>=a.length)for(let e=a.length;et[`Column ${e}`]="");p&&u.default.debug("Clipboard -- Sorting or filtering active, do not create new rows");const g=n[t[0]];if(p&&f.length+g>=l.length){const e={};a.forEach(t=>e[t.id]=""),h=r.concat(h,r.repeat(e,f.length+g-l.length))}return f.forEach((e,o)=>e.forEach((e,i)=>{const u=t[0]+o;if(n.length<=t[0]+o)return;const a=n[u],l=t[1]+i,c=v[l];c&&(0,s.colIsEditable)(!0,c)&&(h=r.set(r.lensPath([a,c.id]),e,h))})),{dataframe:h,columns:v}}}},function(e,t){!function(t){"use strict";function n(){}function r(e){return e.split('"').length-1}n.prototype=Object.create(Object.prototype,{parse:{value:function(e){var t,n,o,i,u,s,a,l=[],c=0;for((o=e.split("\n")).length>1&&""===o[o.length-1]&&o.pop(),t=0,n=o.length;t0&&(u+="\t"),"string"==typeof(i=e[t][r])?i.indexOf("\n")>-1?u+='"'+i.replace(/"/g,'""')+'"':u+=i:u+=null===i||void 0===i?"":i;u+="\n"}return u},enumerable:!0,configurable:!1,writable:!1}}),void 0!==e&&e.exports?e.exports=n:t.SheetClip=n}(this)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default=class{static set(e,t){e.clipboardData.setData("text/plain",t),e.preventDefault()}static get(e){let t;return t=e.clipboardData?e.clipboardData.getData("text/plain"):void 0}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=a(n(2)),o=s(n(1)),i=s(n(38)),u=a(n(15));function s(e){return e&&e.__esModule?e:{default:e}}function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}t.default=class{constructor(e){this.propsFn=e,this.handlers=new Map,this.isCellSelected=((e,t,n)=>e&&r.contains([t,n],e)),this.getEventHandler=((e,t,n)=>{const r=this.handlers.get(e)||this.handlers.set(e,new Map).get(e),o=r.get(t)||r.set(t,new Map).get(t);return o.get(n)||o.set(n,e.bind(this,t,n)).get(n)}),this.handleClick=((e,t,n)=>{var o=this.props;const i=o.columns,u=o.editable,s=o.is_focused,a=o.row_deletable,l=o.row_selectable,c=o.selected_cell,p=o.setProps,d=this.isCellSelected(c,e,t);if(!u)return;if(s||n.preventDefault(),d)return;const f=(a?1:0)+(l?1:0);n.preventDefault();const h=[e,t+f],v={is_focused:!1,active_cell:h},g=[];i.forEach((e,t)=>{e.hidden||g.push(t+f)});const y=r.uniq(r.pluck(0,c)).sort((e,t)=>e-t),b=r.uniq(r.pluck(1,c)).sort((e,t)=>e-t),m=y[0],x=b[0];n.shiftKey?v.selected_cell=r.xprod(r.range(r.min(m,h[0]),r.max(m,h[0])+1),r.range(r.min(x,h[1]),r.max(x,h[1])+1)).filter(e=>r.contains(e[1],g)):v.selected_cell=[h],p(v)}),this.handleDoubleClick=((e,t,n)=>{var r=this.props;const o=r.editable,i=r.is_focused,u=r.row_deletable,s=r.row_selectable,a=r.setProps;if(!o)return;const l=[e,t+((u?1:0)+(s?1:0))];i||(n.preventDefault(),a({selected_cell:[l],active_cell:l,is_focused:!0}))}),this.handleChange=((e,t,n)=>{var o=this.props;const i=o.columns,u=o.dataframe,s=o.editable,a=o.setProps,l=i[t];s&&a({dataframe:r.set(r.lensPath([e,l.id]),n,u)})}),this.handlePaste=(e=>{e.preventDefault()})}get props(){return this.propsFn()}rowSelectCell(e){var t=this.props;const n=t.setProps,i=t.selected_rows,u=t.row_selectable;return u?o.default.createElement("td",{key:"select",className:"select-cell",style:{width:"30px",maxWidth:"30px",minWidth:"30px"}},o.default.createElement("input",{type:"single"===u?"radio":"checkbox",name:"row-select",checked:r.contains(e,i),onChange:()=>n({selected_rows:"single"===u?[e]:r.ifElse(r.contains(e),r.without([e]),r.append(e))(i)})})):null}rowDeleteCell(e){var t=this.props;const n=t.setProps;return t.row_deletable?o.default.createElement("td",{key:"delete",className:"delete-cell",onClick:()=>n(u.deleteRow(e,this.props)),style:{width:"30px",maxWidth:"30px",minWidth:"30px"}},"×"):null}createCells(){var e=this.props;const t=e.active_cell,n=e.columns,u=e.column_conditional_dropdowns,s=e.column_conditional_styles,a=e.column_static_dropdown,l=e.column_static_style,c=e.dropdown_properties,p=e.editable,d=e.id,f=e.is_focused,h=e.row_deletable,v=e.row_selectable,g=e.selected_cell,y=e.viewport,b=n.filter(e=>!e.hidden),m=(h?1:0)+(v?1:0);return y.dataframe.map((e,h)=>{const v=y.indices[h],x=this.rowDeleteCell(v),E=this.rowSelectCell(v),w=b.map((y,b)=>{b+=m;let x=(c&&c[y.id]&&(c[y.id].length>v?c[y.id][v]:null)||y||{}).options;const E=n.indexOf(y),w=[`column-${E+m}`];let _=u.find(e=>e.id===y.id),O=a.find(e=>e.id===y.id);_=_&&_.dropdowns,O=x||O&&O.dropdown;let S=s.find(e=>e.id===y.id),C=l.find(e=>e.id===y.id);return S=S&&S.styles,C=C&&C.style,o.default.createElement(i.default,{key:`${y.id}-${b}`,active:t[0]===h&&t[1]===E+m,classes:w,clearable:y.clearable,conditionalDropdowns:_,conditionalStyles:S,datum:e,editable:p,focused:!!f,onClick:this.getEventHandler(this.handleClick,h,E),onDoubleClick:this.getEventHandler(this.handleDoubleClick,h,E),onPaste:this.handlePaste,onChange:this.getEventHandler(this.handleChange,v,E),property:y.id,selected:r.contains([h,E+m],g),staticDropdown:O,staticStyle:C,tableId:d,type:y.type,value:e[y.id]})});return E&&w.unshift(E),x&&w.unshift(x),w})}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),o=n(1),i=f(o),u=f(n(39)),s=n(11),a=n(5),l=f(n(40)),c=f(n(17)),p=n(14),d=f(n(19));function f(e){return e&&e.__esModule?e:{default:e}}class h extends o.Component{constructor(e){super(e),this.getDropdown=(0,a.memoizeOne)((...e)=>e.length?e.slice(-1)[0]:void 0),this.getStyle=(0,a.memoizeOne)((...e)=>e.length?r.mergeAll(e):void 0),this.propagateChange=(()=>{if(this.state.value===this.props.value)return;(0,this.props.onChange)(this.state.value)}),this.handleChange=(e=>{this.setState({value:e.target.value})}),this.handleKeyDown=(e=>{e.keyCode===p.KEY_CODES.ENTER&&this.propagateChange()}),this.handleOpenDropdown=(()=>{var e=this.refs;const t=e.dropdown,n=e.td;(0,d.default)(t.wrapper.querySelector(".Select-menu-outer"),n)}),this.state={value:e.value}}get propsWithDefaults(){return this.props}get classes(){var e=this.propsWithDefaults;let t=e.active,n=e.classes,r=e.editable,o=e.selected,i=e.type;return[...t?["focused"]:[],...r?[]:["cell--uneditable"],...o?["cell--selected"]:[],..."dropdown"===i?["dropdown"]:[],...n]}renderDropdown(){var e=this.propsWithDefaults;const t=e.clearable,n=e.onChange,r=e.value,o=this.dropdown;return o?i.default.createElement(u.default,{ref:"dropdown",clearable:t,onChange:e=>{n(e?e.value:e)},onOpen:this.handleOpenDropdown,options:o,placeholder:"",value:r}):this.renderValue()}renderInput(){var e=this.propsWithDefaults;const t=e.active,n=e.focused,r=e.onClick,o=e.onDoubleClick,u=e.onPaste,s={className:[...t?["input-active"]:[],...n?["focused"]:["unfocused"],...["cell-value"]].join(" "),onClick:r,onDoubleClick:o};return t||this.state.value!==this.props.value?i.default.createElement("input",Object.assign({ref:"textInput",type:"text",value:this.state.value,onBlur:this.propagateChange,onChange:this.handleChange,onKeyDown:this.handleKeyDown,onPaste:u},s)):this.renderValue(s)}renderValue(e={}){const t=this.propsWithDefaults.value;return i.default.createElement("div",Object.assign({},e),t)}renderInner(){switch(this.props.type){case"text":case"numeric":return this.renderInput();case"dropdown":return this.renderDropdown();default:return this.renderValue()}}get dropdown(){var e=this.propsWithDefaults;let t=e.conditionalDropdowns,n=e.datum,o=e.property,i=e.staticDropdown,u=e.tableId;const s=[...i?[i]:[],...r.map(([e])=>e.dropdown,r.filter(([e,t])=>h.dropdownAstCache([u,o,t],[e.condition]).evaluate(n),r.addIndex(r.map)((e,t)=>[e,t],t)))];return this.getDropdown(...s)}get style(){var e=this.propsWithDefaults;let t=e.conditionalStyles,n=e.datum,o=e.property,i=e.staticStyle,u=e.tableId;const s=[i,...r.map(([e])=>e.style,r.filter(([e,t])=>h.styleAstCache([u,o,t],[e.condition]).evaluate(n),r.addIndex(r.map)((e,t)=>[e,t],t)))];return this.getStyle(...s)}render(){return i.default.createElement("td",{ref:"td",tabIndex:-1,className:this.classes.join(" "),style:this.style},this.renderInner())}componentWillReceiveProps(e){const t=e.value;this.state.value!==t&&this.setState({value:t})}componentDidUpdate(){const e=this.propsWithDefaults.active,t=this.refs.textInput;e&&t&&document.activeElement!==t&&(t.focus(),t.setSelectionRange(0,t.value?t.value.length:0)),e&&this.refs.dropdown&&this.refs.td.focus()}shouldComponentUpdate(e,t){const n=this.props,r=this.state;return!(0,s.isEqual)(n,e,!0)||!(0,s.isEqual)(r,t,!0)}}t.default=h,h.dropdownAstCache=(0,l.default)(e=>new c.default(e)),h.styleAstCache=(0,l.default)(e=>new c.default(e)),h.defaultProps={classes:[],conditionalDropdowns:[],conditionalStyles:[],staticStyle:{},type:"text"}},function(e,t,n){"use strict";n.r(t),n.d(t,"Async",function(){return V}),n.d(t,"AsyncCreatable",function(){return Y}),n.d(t,"Creatable",function(){return L}),n.d(t,"Value",function(){return F}),n.d(t,"Option",function(){return k}),n.d(t,"defaultMenuRenderer",function(){return b}),n.d(t,"defaultArrowRenderer",function(){return d}),n.d(t,"defaultClearRenderer",function(){return f}),n.d(t,"defaultFilterOptions",function(){return y});var r=n(21),o=n.n(r),i=n(4),u=n.n(i),s=n(0),a=n.n(s),l=n(1),c=n.n(l),p=n(6),d=function(e){var t=e.onMouseDown;return c.a.createElement("span",{className:"Select-arrow",onMouseDown:t})};d.propTypes={onMouseDown:a.a.func};var f=function(){return c.a.createElement("span",{className:"Select-clear",dangerouslySetInnerHTML:{__html:"×"}})},h=[{base:"A",letters:/[\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F]/g},{base:"AA",letters:/[\uA732]/g},{base:"AE",letters:/[\u00C6\u01FC\u01E2]/g},{base:"AO",letters:/[\uA734]/g},{base:"AU",letters:/[\uA736]/g},{base:"AV",letters:/[\uA738\uA73A]/g},{base:"AY",letters:/[\uA73C]/g},{base:"B",letters:/[\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181]/g},{base:"C",letters:/[\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E]/g},{base:"D",letters:/[\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779]/g},{base:"DZ",letters:/[\u01F1\u01C4]/g},{base:"Dz",letters:/[\u01F2\u01C5]/g},{base:"E",letters:/[\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E]/g},{base:"F",letters:/[\u0046\u24BB\uFF26\u1E1E\u0191\uA77B]/g},{base:"G",letters:/[\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E]/g},{base:"H",letters:/[\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D]/g},{base:"I",letters:/[\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197]/g},{base:"J",letters:/[\u004A\u24BF\uFF2A\u0134\u0248]/g},{base:"K",letters:/[\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2]/g},{base:"L",letters:/[\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780]/g},{base:"LJ",letters:/[\u01C7]/g},{base:"Lj",letters:/[\u01C8]/g},{base:"M",letters:/[\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C]/g},{base:"N",letters:/[\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4]/g},{base:"NJ",letters:/[\u01CA]/g},{base:"Nj",letters:/[\u01CB]/g},{base:"O",letters:/[\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u00D6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C]/g},{base:"OI",letters:/[\u01A2]/g},{base:"OO",letters:/[\uA74E]/g},{base:"OU",letters:/[\u0222]/g},{base:"P",letters:/[\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754]/g},{base:"Q",letters:/[\u0051\u24C6\uFF31\uA756\uA758\u024A]/g},{base:"R",letters:/[\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782]/g},{base:"S",letters:/[\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784]/g},{base:"T",letters:/[\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786]/g},{base:"TZ",letters:/[\uA728]/g},{base:"U",letters:/[\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u00DC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244]/g},{base:"V",letters:/[\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245]/g},{base:"VY",letters:/[\uA760]/g},{base:"W",letters:/[\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72]/g},{base:"X",letters:/[\u0058\u24CD\uFF38\u1E8A\u1E8C]/g},{base:"Y",letters:/[\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE]/g},{base:"Z",letters:/[\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762]/g},{base:"a",letters:/[\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250]/g},{base:"aa",letters:/[\uA733]/g},{base:"ae",letters:/[\u00E6\u01FD\u01E3]/g},{base:"ao",letters:/[\uA735]/g},{base:"au",letters:/[\uA737]/g},{base:"av",letters:/[\uA739\uA73B]/g},{base:"ay",letters:/[\uA73D]/g},{base:"b",letters:/[\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253]/g},{base:"c",letters:/[\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184]/g},{base:"d",letters:/[\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A]/g},{base:"dz",letters:/[\u01F3\u01C6]/g},{base:"e",letters:/[\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD]/g},{base:"f",letters:/[\u0066\u24D5\uFF46\u1E1F\u0192\uA77C]/g},{base:"g",letters:/[\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F]/g},{base:"h",letters:/[\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265]/g},{base:"hv",letters:/[\u0195]/g},{base:"i",letters:/[\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131]/g},{base:"j",letters:/[\u006A\u24D9\uFF4A\u0135\u01F0\u0249]/g},{base:"k",letters:/[\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3]/g},{base:"l",letters:/[\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747]/g},{base:"lj",letters:/[\u01C9]/g},{base:"m",letters:/[\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F]/g},{base:"n",letters:/[\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5]/g},{base:"nj",letters:/[\u01CC]/g},{base:"o",letters:/[\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275]/g},{base:"oi",letters:/[\u01A3]/g},{base:"ou",letters:/[\u0223]/g},{base:"oo",letters:/[\uA74F]/g},{base:"p",letters:/[\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755]/g},{base:"q",letters:/[\u0071\u24E0\uFF51\u024B\uA757\uA759]/g},{base:"r",letters:/[\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783]/g},{base:"s",letters:/[\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B]/g},{base:"t",letters:/[\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787]/g},{base:"tz",letters:/[\uA729]/g},{base:"u",letters:/[\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289]/g},{base:"v",letters:/[\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C]/g},{base:"vy",letters:/[\uA761]/g},{base:"w",letters:/[\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73]/g},{base:"x",letters:/[\u0078\u24E7\uFF58\u1E8B\u1E8D]/g},{base:"y",letters:/[\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF]/g},{base:"z",letters:/[\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763]/g}],v=function(e){for(var t=0;t-1)return!1;if(r.filterOption)return r.filterOption.call(void 0,e,t);if(!t)return!0;var o=e[r.valueKey],i=e[r.labelKey],u=g(o),s=g(i);if(!u&&!s)return!1;var a=u?String(o):null,l=s?String(i):null;return r.ignoreAccents&&(a&&"label"!==r.matchProp&&(a=v(a)),l&&"value"!==r.matchProp&&(l=v(l))),r.ignoreCase&&(a&&"label"!==r.matchProp&&(a=a.toLowerCase()),l&&"value"!==r.matchProp&&(l=l.toLowerCase())),"start"===r.matchPos?a&&"label"!==r.matchProp&&a.substr(0,t.length)===t||l&&"value"!==r.matchProp&&l.substr(0,t.length)===t:a&&"label"!==r.matchProp&&a.indexOf(t)>=0||l&&"value"!==r.matchProp&&l.indexOf(t)>=0})},b=function(e){var t=e.focusedOption,n=e.focusOption,r=e.inputValue,o=e.instancePrefix,i=e.onFocus,s=e.onOptionRef,a=e.onSelect,l=e.optionClassName,p=e.optionComponent,d=e.optionRenderer,f=e.options,h=e.removeValue,v=e.selectValue,g=e.valueArray,y=e.valueKey,b=p;return f.map(function(e,p){var f=g&&g.some(function(t){return t[y]===e[y]}),m=e===t,x=u()(l,{"Select-option":!0,"is-selected":f,"is-focused":m,"is-disabled":e.disabled});return c.a.createElement(b,{className:x,focusOption:n,inputValue:r,instancePrefix:o,isDisabled:e.disabled,isFocused:m,isSelected:f,key:"option-"+p+"-"+e[y],onFocus:i,onSelect:a,option:e,optionIndex:p,ref:function(e){s(e,m)},removeValue:h,selectValue:v},d(e,p,r))})};b.propTypes={focusOption:a.a.func,focusedOption:a.a.object,inputValue:a.a.string,instancePrefix:a.a.string,onFocus:a.a.func,onOptionRef:a.a.func,onSelect:a.a.func,optionClassName:a.a.string,optionComponent:a.a.func,optionRenderer:a.a.func,options:a.a.array,removeValue:a.a.func,selectValue:a.a.func,valueArray:a.a.array,valueKey:a.a.string};var m=function(e){e.preventDefault(),e.stopPropagation(),"A"===e.target.tagName&&"href"in e.target&&(e.target.target?window.open(e.target.href,e.target.target):window.location.href=e.target.href)},x="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},E=(function(){function e(e){this.value=e}function t(t){var n,r;function o(n,r){try{var u=t[n](r),s=u.value;s instanceof e?Promise.resolve(s.value).then(function(e){o("next",e)},function(e){o("throw",e)}):i(u.done?"return":"normal",u.value)}catch(e){i("throw",e)}}function i(e,t){switch(e){case"return":n.resolve({value:t,done:!0});break;case"throw":n.reject(t);break;default:n.resolve({value:t,done:!1})}(n=n.next)?o(n.key,n.arg):r=null}this._invoke=function(e,t){return new Promise(function(i,u){var s={key:e,arg:t,resolve:i,reject:u,next:null};r?r=r.next=s:(n=r=s,o(e,t))})},"function"!=typeof t.return&&(this.return=void 0)}"function"==typeof Symbol&&Symbol.asyncIterator&&(t.prototype[Symbol.asyncIterator]=function(){return this}),t.prototype.next=function(e){return this._invoke("next",e)},t.prototype.throw=function(e){return this._invoke("throw",e)},t.prototype.return=function(e){return this._invoke("return",e)}}(),function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}),w=function(){function e(e,t){for(var n=0;n=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n},A=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t},k=function(e){function t(e){E(this,t);var n=A(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.handleMouseDown=n.handleMouseDown.bind(n),n.handleMouseEnter=n.handleMouseEnter.bind(n),n.handleMouseMove=n.handleMouseMove.bind(n),n.handleTouchStart=n.handleTouchStart.bind(n),n.handleTouchEnd=n.handleTouchEnd.bind(n),n.handleTouchMove=n.handleTouchMove.bind(n),n.onFocus=n.onFocus.bind(n),n}return S(t,e),w(t,[{key:"handleMouseDown",value:function(e){e.preventDefault(),e.stopPropagation(),this.props.onSelect(this.props.option,e)}},{key:"handleMouseEnter",value:function(e){this.onFocus(e)}},{key:"handleMouseMove",value:function(e){this.onFocus(e)}},{key:"handleTouchEnd",value:function(e){this.dragging||this.handleMouseDown(e)}},{key:"handleTouchMove",value:function(){this.dragging=!0}},{key:"handleTouchStart",value:function(){this.dragging=!1}},{key:"onFocus",value:function(e){this.props.isFocused||this.props.onFocus(this.props.option,e)}},{key:"render",value:function(){var e=this.props,t=e.option,n=e.instancePrefix,r=e.optionIndex,o=u()(this.props.className,t.className);return t.disabled?c.a.createElement("div",{className:o,onMouseDown:m,onClick:m},this.props.children):c.a.createElement("div",{className:o,style:t.style,role:"option","aria-label":t.label,onMouseDown:this.handleMouseDown,onMouseEnter:this.handleMouseEnter,onMouseMove:this.handleMouseMove,onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove,onTouchEnd:this.handleTouchEnd,id:n+"-option-"+r,title:t.title},this.props.children)}}]),t}(c.a.Component);k.propTypes={children:a.a.node,className:a.a.string,instancePrefix:a.a.string.isRequired,isDisabled:a.a.bool,isFocused:a.a.bool,isSelected:a.a.bool,onFocus:a.a.func,onSelect:a.a.func,onUnfocus:a.a.func,option:a.a.object.isRequired,optionIndex:a.a.number};var F=function(e){function t(e){E(this,t);var n=A(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.handleMouseDown=n.handleMouseDown.bind(n),n.onRemove=n.onRemove.bind(n),n.handleTouchEndRemove=n.handleTouchEndRemove.bind(n),n.handleTouchMove=n.handleTouchMove.bind(n),n.handleTouchStart=n.handleTouchStart.bind(n),n}return S(t,e),w(t,[{key:"handleMouseDown",value:function(e){if("mousedown"!==e.type||0===e.button)return this.props.onClick?(e.stopPropagation(),void this.props.onClick(this.props.value,e)):void(this.props.value.href&&e.stopPropagation())}},{key:"onRemove",value:function(e){e.preventDefault(),e.stopPropagation(),this.props.onRemove(this.props.value)}},{key:"handleTouchEndRemove",value:function(e){this.dragging||this.onRemove(e)}},{key:"handleTouchMove",value:function(){this.dragging=!0}},{key:"handleTouchStart",value:function(){this.dragging=!1}},{key:"renderRemoveIcon",value:function(){if(!this.props.disabled&&this.props.onRemove)return c.a.createElement("span",{className:"Select-value-icon","aria-hidden":"true",onMouseDown:this.onRemove,onTouchEnd:this.handleTouchEndRemove,onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove},"×")}},{key:"renderLabel",value:function(){return this.props.onClick||this.props.value.href?c.a.createElement("a",{className:"Select-value-label",href:this.props.value.href,target:this.props.value.target,onMouseDown:this.handleMouseDown,onTouchEnd:this.handleMouseDown},this.props.children):c.a.createElement("span",{className:"Select-value-label",role:"option","aria-selected":"true",id:this.props.id},this.props.children)}},{key:"render",value:function(){return c.a.createElement("div",{className:u()("Select-value",this.props.value.className),style:this.props.value.style,title:this.props.value.title},this.renderRemoveIcon(),this.renderLabel())}}]),t}(c.a.Component);F.propTypes={children:a.a.node,disabled:a.a.bool,id:a.a.string,onClick:a.a.func,onRemove:a.a.func,value:a.a.object.isRequired}; /*! Copyright (c) 2018 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/react-select */ -var D=function(e){return"string"==typeof e?e:null!==e&&JSON.stringify(e)||""},P=a.a.oneOfType([a.a.string,a.a.node]),R=a.a.oneOfType([a.a.string,a.a.number]),T=1,I=function(e,t){var n=void 0===e?"undefined":x(e);if("string"!==n&&"number"!==n&&"boolean"!==n)return e;var r=t.options,o=t.valueKey;if(r)for(var i=0;iu||id.bottom?l.scrollTop=a.offsetTop+a.clientHeight-l.offsetHeight:c.topt.offsetHeight&&t.scrollHeight-t.offsetHeight-t.scrollTop<=0&&this.props.onMenuScrollToBottom()}}},{key:"getOptionLabel",value:function(e){return e[this.props.labelKey]}},{key:"getValueArray",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,n="object"===(void 0===t?"undefined":x(t))?t:this.props;if(n.multi){if("string"==typeof e&&(e=e.split(n.delimiter)),!Array.isArray(e)){if(null===e||void 0===e)return[];e=[e]}return e.map(function(e){return I(e,n)}).filter(function(e){return e})}var r=I(e,n);return r?[r]:[]}},{key:"setValue",value:function(e){var t=this;if(this.props.autoBlur&&this.blurInput(),this.props.required){var n=j(e,this.props.multi);this.setState({required:n})}this.props.simpleValue&&e&&(e=this.props.multi?e.map(function(e){return e[t.props.valueKey]}).join(this.props.delimiter):e[this.props.valueKey]),this.props.onChange&&this.props.onChange(e)}},{key:"selectValue",value:function(e){var t=this;this.props.closeOnSelect&&(this.hasScrolledToOption=!1);var n=this.props.onSelectResetsInput?"":this.state.inputValue;this.props.multi?this.setState({focusedIndex:null,inputValue:this.handleInputValueChange(n),isOpen:!this.props.closeOnSelect},function(){t.getValueArray(t.props.value).some(function(n){return n[t.props.valueKey]===e[t.props.valueKey]})?t.removeValue(e):t.addValue(e)}):this.setState({inputValue:this.handleInputValueChange(n),isOpen:!this.props.closeOnSelect,isPseudoFocused:this.state.isFocused},function(){t.setValue(e)})}},{key:"addValue",value:function(e){var t=this.getValueArray(this.props.value),n=this._visibleOptions.filter(function(e){return!e.disabled}),r=n.indexOf(e);this.setValue(t.concat(e)),n.length-1===r?this.focusOption(n[r-1]):n.length>r&&this.focusOption(n[r+1])}},{key:"popValue",value:function(){var e=this.getValueArray(this.props.value);e.length&&!1!==e[e.length-1].clearableValue&&this.setValue(this.props.multi?e.slice(0,e.length-1):null)}},{key:"removeValue",value:function(e){var t=this,n=this.getValueArray(this.props.value);this.setValue(n.filter(function(n){return n[t.props.valueKey]!==e[t.props.valueKey]})),this.focus()}},{key:"clearValue",value:function(e){e&&"mousedown"===e.type&&0!==e.button||(e.preventDefault(),this.setValue(this.getResetValue()),this.setState({inputValue:this.handleInputValueChange(""),isOpen:!1},this.focus),this._focusAfterClear=!0)}},{key:"getResetValue",value:function(){return void 0!==this.props.resetValue?this.props.resetValue:this.props.multi?[]:null}},{key:"focusOption",value:function(e){this.setState({focusedOption:e})}},{key:"focusNextOption",value:function(){this.focusAdjacentOption("next")}},{key:"focusPreviousOption",value:function(){this.focusAdjacentOption("previous")}},{key:"focusPageUpOption",value:function(){this.focusAdjacentOption("page_up")}},{key:"focusPageDownOption",value:function(){this.focusAdjacentOption("page_down")}},{key:"focusStartOption",value:function(){this.focusAdjacentOption("start")}},{key:"focusEndOption",value:function(){this.focusAdjacentOption("end")}},{key:"focusAdjacentOption",value:function(e){var t=this._visibleOptions.map(function(e,t){return{option:e,index:t}}).filter(function(e){return!e.option.disabled});if(this._scrollToFocusedOptionOnUpdate=!0,!this.state.isOpen){var n={focusedOption:this._focusedOption||(t.length?t["next"===e?0:t.length-1].option:null),isOpen:!0};return this.props.onSelectResetsInput&&(n.inputValue=""),void this.setState(n)}if(t.length){for(var r=-1,o=0;o0?r-=1:r=t.length-1;else if("start"===e)r=0;else if("end"===e)r=t.length-1;else if("page_up"===e){var i=r-this.props.pageSize;r=i<0?0:i}else if("page_down"===e){var u=r+this.props.pageSize;r=u>t.length-1?t.length-1:u}-1===r&&(r=0),this.setState({focusedIndex:t[r].index,focusedOption:t[r].option})}}},{key:"getFocusedOption",value:function(){return this._focusedOption}},{key:"selectFocusedOption",value:function(){if(this._focusedOption)return this.selectValue(this._focusedOption)}},{key:"renderLoading",value:function(){if(this.props.isLoading)return c.a.createElement("span",{className:"Select-loading-zone","aria-hidden":"true"},c.a.createElement("span",{className:"Select-loading"}))}},{key:"renderValue",value:function(e,t){var n=this,r=this.props.valueRenderer||this.getOptionLabel,o=this.props.valueComponent;if(!e.length)return function(e,t,n){var r=e.inputValue,o=e.isPseudoFocused,i=e.isFocused,u=t.onSelectResetsInput;return!r||!u&&!n&&!o&&!i}(this.state,this.props,t)?c.a.createElement("div",{className:"Select-placeholder"},this.props.placeholder):null;var i=this.props.onValueClick?this.handleValueClick:null;return this.props.multi?e.map(function(e,t){return c.a.createElement(o,{disabled:n.props.disabled||!1===e.clearableValue,id:n._instancePrefix+"-value-"+t,instancePrefix:n._instancePrefix,key:"value-"+t+"-"+e[n.props.valueKey],onClick:i,onRemove:n.removeValue,placeholder:n.props.placeholder,value:e},r(e,t),c.a.createElement("span",{className:"Select-aria-only"}," "))}):function(e,t){var n=e.inputValue,r=e.isPseudoFocused,o=e.isFocused,i=t.onSelectResetsInput;return!n||!i&&!(!o&&r||o&&!r)}(this.state,this.props)?(t&&(i=null),c.a.createElement(o,{disabled:this.props.disabled,id:this._instancePrefix+"-value-item",instancePrefix:this._instancePrefix,onClick:i,placeholder:this.props.placeholder,value:e[0]},r(e[0]))):void 0}},{key:"renderInput",value:function(e,t){var n,r=this,i=u()("Select-input",this.props.inputProps.className),s=this.state.isOpen,a=u()((_(n={},this._instancePrefix+"-list",s),_(n,this._instancePrefix+"-backspace-remove-message",this.props.multi&&!this.props.disabled&&this.state.isFocused&&!this.state.inputValue),n)),l=this.state.inputValue;!l||this.props.onSelectResetsInput||this.state.isFocused||(l="");var p=O({},this.props.inputProps,{"aria-activedescendant":s?this._instancePrefix+"-option-"+t:this._instancePrefix+"-value","aria-describedby":this.props["aria-describedby"],"aria-expanded":""+s,"aria-haspopup":""+s,"aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"],"aria-owns":a,className:i,onBlur:this.handleInputBlur,onChange:this.handleInputChange,onFocus:this.handleInputFocus,ref:function(e){return r.input=e},role:"combobox",required:this.state.required,tabIndex:this.props.tabIndex,value:l});if(this.props.inputRenderer)return this.props.inputRenderer(p);if(this.props.disabled||!this.props.searchable){var d=C(this.props.inputProps,[]),f=u()(_({},this._instancePrefix+"-list",s));return c.a.createElement("div",O({},d,{"aria-expanded":s,"aria-owns":f,"aria-activedescendant":s?this._instancePrefix+"-option-"+t:this._instancePrefix+"-value","aria-disabled":""+this.props.disabled,"aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"],className:i,onBlur:this.handleInputBlur,onFocus:this.handleInputFocus,ref:function(e){return r.input=e},role:"combobox",style:{border:0,width:1,display:"inline-block"},tabIndex:this.props.tabIndex||0}))}return this.props.autosize?c.a.createElement(o.a,O({id:this.props.id},p,{minWidth:"5"})):c.a.createElement("div",{className:i,key:"input-wrap",style:{display:"inline-block"}},c.a.createElement("input",O({id:this.props.id},p)))}},{key:"renderClear",value:function(){var e=this.getValueArray(this.props.value);if(this.props.clearable&&e.length&&!this.props.disabled&&!this.props.isLoading){var t=this.props.multi?this.props.clearAllText:this.props.clearValueText,n=this.props.clearRenderer();return c.a.createElement("span",{"aria-label":t,className:"Select-clear-zone",onMouseDown:this.clearValue,onTouchEnd:this.handleTouchEndClearValue,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,title:t},n)}}},{key:"renderArrow",value:function(){if(this.props.arrowRenderer){var e=this.handleMouseDownOnArrow,t=this.state.isOpen,n=this.props.arrowRenderer({onMouseDown:e,isOpen:t});return n?c.a.createElement("span",{className:"Select-arrow-zone",onMouseDown:e},n):null}}},{key:"filterOptions",value:function(e){var t=this.state.inputValue,n=this.props.options||[];if(this.props.filterOptions){var r="function"==typeof this.props.filterOptions?this.props.filterOptions:y;return r(n,t,e,{filterOption:this.props.filterOption,ignoreAccents:this.props.ignoreAccents,ignoreCase:this.props.ignoreCase,labelKey:this.props.labelKey,matchPos:this.props.matchPos,matchProp:this.props.matchProp,trimFilter:this.props.trimFilter,valueKey:this.props.valueKey})}return n}},{key:"onOptionRef",value:function(e,t){t&&(this.focused=e)}},{key:"renderMenu",value:function(e,t,n){return e&&e.length?this.props.menuRenderer({focusedOption:n,focusOption:this.focusOption,inputValue:this.state.inputValue,instancePrefix:this._instancePrefix,labelKey:this.props.labelKey,onFocus:this.focusOption,onOptionRef:this.onOptionRef,onSelect:this.selectValue,optionClassName:this.props.optionClassName,optionComponent:this.props.optionComponent,optionRenderer:this.props.optionRenderer||this.getOptionLabel,options:e,removeValue:this.removeValue,selectValue:this.selectValue,valueArray:t,valueKey:this.props.valueKey}):this.props.noResultsText?c.a.createElement("div",{className:"Select-noresults"},this.props.noResultsText):null}},{key:"renderHiddenField",value:function(e){var t=this;if(this.props.name){if(this.props.joinValues){var n=e.map(function(e){return D(e[t.props.valueKey])}).join(this.props.delimiter);return c.a.createElement("input",{disabled:this.props.disabled,name:this.props.name,ref:function(e){return t.value=e},type:"hidden",value:n})}return e.map(function(e,n){return c.a.createElement("input",{disabled:t.props.disabled,key:"hidden."+n,name:t.props.name,ref:"value"+n,type:"hidden",value:D(e[t.props.valueKey])})})}}},{key:"getFocusableOptionIndex",value:function(e){var t=this._visibleOptions;if(!t.length)return null;var n=this.props.valueKey,r=this.state.focusedOption||e;if(r&&!r.disabled){var o=-1;if(t.some(function(e,t){var i=e[n]===r[n];return i&&(o=t),i}),-1!==o)return o}for(var i=0;i{const u=n.slice(-1)[0],s=n.slice(0,-1),a=r.reduce((e,t)=>e.get(t)||e.set(t,new Map).get(t),t,s);return(a.get(u)||a.set(u,function(e){return(0,o.memoizeOne)((...t)=>e(...t))}(e)).get(u))(...i)}};var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),o=n(5)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),o=d(n(1)),i=d(n(3)),u=d(n(47)),s=d(n(48)),a=n(49),l=d(n(11)),c=n(17),p=d(n(19));function d(e){return e&&e.__esModule?e:{default:e}}t.default=class{constructor(e){this.propsFn=e,this.handlers=new Map,this.ops=new Map,this.onChange=((e,t,n,o)=>{i.default.debug("Filter -- onChange",e,o.target.value&&o.target.value.trim());const u=o.target.value.trim();u&&u.length?t.set(e,u):t.delete(e),n(r.map(([e,t])=>`${e} ${t}`,r.filter(([e])=>this.isFragmentValid(e),Array.from(t.entries()))).join(" && "))}),this.getEventHandler=((e,t,n,r)=>{const o=this.handlers.get(e)||this.handlers.set(e,new Map).get(e),i=o.get(t)||o.set(t,new Map).get(t);return i.get(r)||i.set(r,e.bind(this,t,n,r)).get(r)})}get props(){return this.propsFn()}respectsBasicSyntax(e,t=!0){const n=[c.LexemeType.BinaryOperator,c.LexemeType.Expression,c.LexemeType.Operand,c.LexemeType.UnaryOperator];if(t&&n.push(c.LexemeType.And),!r.all(e=>r.contains(e.lexeme.name,n),e))return!1;const o=r.map(e=>e.value,r.filter(e=>e.lexeme.name===c.LexemeType.Operand,e)),i=r.uniq(o);return o.length===i.length}isBasicFilter(e,t,n=!0){return e.valid&&t.valid&&this.respectsBasicSyntax(e.lexemes,n)}updateOps(e){const t=(0,l.default)(e),n=(0,p.default)(t);if(!this.isBasicFilter(t,n))return;const r=[n.tree];for(;r.length;){const e=r.pop();e&&(e.lexeme.name===c.LexemeType.UnaryOperator&&e.block?this.ops.set(e.block.value,e.value):e.lexeme.name===c.LexemeType.BinaryOperator&&e.left&&e.right?this.ops.set(e.left.value,`${e.value} ${e.right.value}`):(r.push(e.left),r.push(e.block),r.push(e.right)))}}isFragmentValidOrNull(e){const t=this.ops.get(e);return!t||!t.trim().length||this.isFragmentValid(e)}isFragmentValid(e){const t=this.ops.get(e),n=(0,l.default)(`${e} ${t}`),r=(0,p.default)(n);return r.valid&&this.isBasicFilter(n,r,!1)}createFilters(){var e=this.props;const t=e.columns,n=e.filtering,i=e.filtering_settings,l=e.filtering_type,c=e.offset,p=e.setFilter;if(!n)return[];this.updateOps(i);const d=r.filter(e=>!e.hidden,t),f=r.range(0,c).map(e=>o.default.createElement("th",{key:`offset-${e}`})),h=l===a.FilteringType.Basic?r.addIndex(r.map)((e,t)=>o.default.createElement(u.default,{key:`column-${t+c}`,classes:`filter column-${t+c}`,isValid:this.isFragmentValidOrNull(e.id),property:e.id,setFilter:this.getEventHandler(this.onChange,e.id,this.ops,p),value:this.ops.get(e.id)}),d):[o.default.createElement(s.default,{key:`column-${c}`,classes:[],colSpan:d.length,value:"",setFilter:()=>void 0})];return[r.concat(f,h)]}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=u(r),i=u(n(21));function u(e){return e&&e.__esModule?e:{default:e}}t.default=class extends r.PureComponent{constructor(e){super(e),this.submit=(e=>{(0,this.props.setFilter)({target:{value:e}})}),this.state={value:e.value}}componentWillReceiveProps(e){const t=e.value;this.state.value!==t&&this.setState({value:t})}render(){var e=this.props;const t=e.classes,n=e.isValid,r=e.value;return o.default.createElement("th",{className:t+(n?"":" invalid")},o.default.createElement(i.default,{value:r,stopPropagation:!0,submit:this.submit}))}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=u(r),i=u(n(21));function u(e){return e&&e.__esModule?e:{default:e}}t.default=class extends r.PureComponent{constructor(e){super(e),this.submit=(e=>this.props.setFilter(e))}render(){var e=this.props;const t=e.colSpan,n=e.value;return o.default.createElement("th",{colSpan:t},o.default.createElement(i.default,{stopPropagation:!0,value:n,submit:this.submit}))}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=t.FilteringType=void 0;!function(e){e.Advanced="advanced",e.Basic="basic"}(r||(t.FilteringType=r={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),o=n(5),i=n(7),u=a(i),s=a(n(18));function a(e){return e&&e.__esModule?e:{default:e}}t.default=class{constructor(e){this.target=e,this.getDataframe=(0,o.memoizeOne)((e,t,n,o,a=[],l)=>{const c=new Map;if(r.addIndex(r.forEach)((e,t)=>{c.set(e,t)},e),"fe"===t||!0===t){const t=new s.default(n);e=t.isValid?t.filter(e):e}const p=l?e=>""===e||(0,i.defaultIsNully)(e):void 0;return"fe"!==o&&!0!==o||(e=(0,u.default)(e,a,p)),{dataframe:e,indices:r.map(e=>c.get(e),e)}})}get dataframeAndIndices(){var e=this.target.props;const t=e.dataframe,n=e.filtering,r=e.filtering_settings,o=e.sorting,i=e.sorting_settings,u=e.sorting_treat_empty_string_as_none;return this.getDataframe(t,n,r,o,i,u)}get dataframe(){return this.dataframeAndIndices.dataframe}get indices(){return this.dataframeAndIndices.indices}get settings(){return this.target.props.virtualization_settings}get virtualization(){return this.target.props.virtualization}get viewportDataframe(){return this.target.props.virtual_dataframe}get viewportIndices(){return this.target.props.virtual_dataframe_indices}update(e){const t=this.target.setProps,n=e.settings,o=e.viewportDataframe,i=e.viewportIndices;let u=r.mergeAll([n?{virtualization_settings:n}:{},o?{virtual_dataframe:o}:{},i?{virtual_dataframe_indices:i}:{}]);setTimeout(()=>{t(u)},0)}}},function(e,t,n){var r=n(52);"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(9)(r,o);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(8)(!1)).push([e.i,"/**\n * React Select\n * ============\n * Created by Jed Watson and Joss Mackison for KeystoneJS, http://www.keystonejs.com/\n * https://twitter.com/jedwatson https://twitter.com/jossmackison https://twitter.com/keystonejs\n * MIT License: https://github.com/JedWatson/react-select\n*/\n.Select {\n position: relative;\n}\n.Select input::-webkit-contacts-auto-fill-button,\n.Select input::-webkit-credentials-auto-fill-button {\n display: none !important;\n}\n.Select input::-ms-clear {\n display: none !important;\n}\n.Select input::-ms-reveal {\n display: none !important;\n}\n.Select,\n.Select div,\n.Select input,\n.Select span {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n.Select.is-disabled .Select-arrow-zone {\n cursor: default;\n pointer-events: none;\n opacity: 0.35;\n}\n.Select.is-disabled > .Select-control {\n background-color: #f9f9f9;\n}\n.Select.is-disabled > .Select-control:hover {\n box-shadow: none;\n}\n.Select.is-open > .Select-control {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n background: #fff;\n border-color: #b3b3b3 #ccc #d9d9d9;\n}\n.Select.is-open > .Select-control .Select-arrow {\n top: -2px;\n border-color: transparent transparent #999;\n border-width: 0 5px 5px;\n}\n.Select.is-searchable.is-open > .Select-control {\n cursor: text;\n}\n.Select.is-searchable.is-focused:not(.is-open) > .Select-control {\n cursor: text;\n}\n.Select.is-focused > .Select-control {\n background: #fff;\n}\n.Select.is-focused:not(.is-open) > .Select-control {\n border-color: #007eff;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 3px rgba(0, 126, 255, 0.1);\n background: #fff;\n}\n.Select.has-value.is-clearable.Select--single > .Select-control .Select-value {\n padding-right: 42px;\n}\n.Select.has-value.Select--single > .Select-control .Select-value .Select-value-label,\n.Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value .Select-value-label {\n color: #333;\n}\n.Select.has-value.Select--single > .Select-control .Select-value a.Select-value-label,\n.Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label {\n cursor: pointer;\n text-decoration: none;\n}\n.Select.has-value.Select--single > .Select-control .Select-value a.Select-value-label:hover,\n.Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label:hover,\n.Select.has-value.Select--single > .Select-control .Select-value a.Select-value-label:focus,\n.Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label:focus {\n color: #007eff;\n outline: none;\n text-decoration: underline;\n}\n.Select.has-value.Select--single > .Select-control .Select-value a.Select-value-label:focus,\n.Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label:focus {\n background: #fff;\n}\n.Select.has-value.is-pseudo-focused .Select-input {\n opacity: 0;\n}\n.Select.is-open .Select-arrow,\n.Select .Select-arrow-zone:hover > .Select-arrow {\n border-top-color: #666;\n}\n.Select.Select--rtl {\n direction: rtl;\n text-align: right;\n}\n.Select-control {\n background-color: #fff;\n border-color: #d9d9d9 #ccc #b3b3b3;\n border-radius: 4px;\n border: 1px solid #ccc;\n color: #333;\n cursor: default;\n display: table;\n border-spacing: 0;\n border-collapse: separate;\n height: 36px;\n outline: none;\n overflow: hidden;\n position: relative;\n width: 100%;\n}\n.Select-control:hover {\n box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);\n}\n.Select-control .Select-input:focus {\n outline: none;\n background: #fff;\n}\n.Select-placeholder,\n.Select--single > .Select-control .Select-value {\n bottom: 0;\n color: #aaa;\n left: 0;\n line-height: 34px;\n padding-left: 10px;\n padding-right: 10px;\n position: absolute;\n right: 0;\n top: 0;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.Select-input {\n height: 34px;\n padding-left: 10px;\n padding-right: 10px;\n vertical-align: middle;\n}\n.Select-input > input {\n width: 100%;\n background: none transparent;\n border: 0 none;\n box-shadow: none;\n cursor: default;\n display: inline-block;\n font-family: inherit;\n font-size: inherit;\n margin: 0;\n outline: none;\n line-height: 17px;\n /* For IE 8 compatibility */\n padding: 8px 0 12px;\n /* For IE 8 compatibility */\n -webkit-appearance: none;\n}\n.is-focused .Select-input > input {\n cursor: text;\n}\n.has-value.is-pseudo-focused .Select-input {\n opacity: 0;\n}\n.Select-control:not(.is-searchable) > .Select-input {\n outline: none;\n}\n.Select-loading-zone {\n cursor: pointer;\n display: table-cell;\n position: relative;\n text-align: center;\n vertical-align: middle;\n width: 16px;\n}\n.Select-loading {\n -webkit-animation: Select-animation-spin 400ms infinite linear;\n -o-animation: Select-animation-spin 400ms infinite linear;\n animation: Select-animation-spin 400ms infinite linear;\n width: 16px;\n height: 16px;\n box-sizing: border-box;\n border-radius: 50%;\n border: 2px solid #ccc;\n border-right-color: #333;\n display: inline-block;\n position: relative;\n vertical-align: middle;\n}\n.Select-clear-zone {\n -webkit-animation: Select-animation-fadeIn 200ms;\n -o-animation: Select-animation-fadeIn 200ms;\n animation: Select-animation-fadeIn 200ms;\n color: #999;\n cursor: pointer;\n display: table-cell;\n position: relative;\n text-align: center;\n vertical-align: middle;\n width: 17px;\n}\n.Select-clear-zone:hover {\n color: #D0021B;\n}\n.Select-clear {\n display: inline-block;\n font-size: 18px;\n line-height: 1;\n}\n.Select--multi .Select-clear-zone {\n width: 17px;\n}\n.Select-arrow-zone {\n cursor: pointer;\n display: table-cell;\n position: relative;\n text-align: center;\n vertical-align: middle;\n width: 25px;\n padding-right: 5px;\n}\n.Select--rtl .Select-arrow-zone {\n padding-right: 0;\n padding-left: 5px;\n}\n.Select-arrow {\n border-color: #999 transparent transparent;\n border-style: solid;\n border-width: 5px 5px 2.5px;\n display: inline-block;\n height: 0;\n width: 0;\n position: relative;\n}\n.Select-control > *:last-child {\n padding-right: 5px;\n}\n.Select--multi .Select-multi-value-wrapper {\n display: inline-block;\n}\n.Select .Select-aria-only {\n position: absolute;\n display: inline-block;\n height: 1px;\n width: 1px;\n margin: -1px;\n clip: rect(0, 0, 0, 0);\n overflow: hidden;\n float: left;\n}\n@-webkit-keyframes Select-animation-fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes Select-animation-fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n.Select-menu-outer {\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n background-color: #fff;\n border: 1px solid #ccc;\n border-top-color: #e6e6e6;\n box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);\n box-sizing: border-box;\n margin-top: -1px;\n max-height: 200px;\n position: absolute;\n left: 0;\n top: 100%;\n width: 100%;\n z-index: 1;\n -webkit-overflow-scrolling: touch;\n}\n.Select-menu {\n max-height: 198px;\n overflow-y: auto;\n}\n.Select-option {\n box-sizing: border-box;\n background-color: #fff;\n color: #666666;\n cursor: pointer;\n display: block;\n padding: 8px 10px;\n}\n.Select-option:last-child {\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.Select-option.is-selected {\n background-color: #f5faff;\n /* Fallback color for IE 8 */\n background-color: rgba(0, 126, 255, 0.04);\n color: #333;\n}\n.Select-option.is-focused {\n background-color: #ebf5ff;\n /* Fallback color for IE 8 */\n background-color: rgba(0, 126, 255, 0.08);\n color: #333;\n}\n.Select-option.is-disabled {\n color: #cccccc;\n cursor: default;\n}\n.Select-noresults {\n box-sizing: border-box;\n color: #999999;\n cursor: default;\n display: block;\n padding: 8px 10px;\n}\n.Select--multi .Select-input {\n vertical-align: middle;\n margin-left: 10px;\n padding: 0;\n}\n.Select--multi.Select--rtl .Select-input {\n margin-left: 0;\n margin-right: 10px;\n}\n.Select--multi.has-value .Select-input {\n margin-left: 5px;\n}\n.Select--multi .Select-value {\n background-color: #ebf5ff;\n /* Fallback color for IE 8 */\n background-color: rgba(0, 126, 255, 0.08);\n border-radius: 2px;\n border: 1px solid #c2e0ff;\n /* Fallback color for IE 8 */\n border: 1px solid rgba(0, 126, 255, 0.24);\n color: #007eff;\n display: inline-block;\n font-size: 0.9em;\n line-height: 1.4;\n margin-left: 5px;\n margin-top: 5px;\n vertical-align: top;\n}\n.Select--multi .Select-value-icon,\n.Select--multi .Select-value-label {\n display: inline-block;\n vertical-align: middle;\n}\n.Select--multi .Select-value-label {\n border-bottom-right-radius: 2px;\n border-top-right-radius: 2px;\n cursor: default;\n padding: 2px 5px;\n}\n.Select--multi a.Select-value-label {\n color: #007eff;\n cursor: pointer;\n text-decoration: none;\n}\n.Select--multi a.Select-value-label:hover {\n text-decoration: underline;\n}\n.Select--multi .Select-value-icon {\n cursor: pointer;\n border-bottom-left-radius: 2px;\n border-top-left-radius: 2px;\n border-right: 1px solid #c2e0ff;\n /* Fallback color for IE 8 */\n border-right: 1px solid rgba(0, 126, 255, 0.24);\n padding: 1px 5px 3px;\n}\n.Select--multi .Select-value-icon:hover,\n.Select--multi .Select-value-icon:focus {\n background-color: #d8eafd;\n /* Fallback color for IE 8 */\n background-color: rgba(0, 113, 230, 0.08);\n color: #0071e6;\n}\n.Select--multi .Select-value-icon:active {\n background-color: #c2e0ff;\n /* Fallback color for IE 8 */\n background-color: rgba(0, 126, 255, 0.24);\n}\n.Select--multi.Select--rtl .Select-value {\n margin-left: 0;\n margin-right: 5px;\n}\n.Select--multi.Select--rtl .Select-value-icon {\n border-right: none;\n border-left: 1px solid #c2e0ff;\n /* Fallback color for IE 8 */\n border-left: 1px solid rgba(0, 126, 255, 0.24);\n}\n.Select--multi.is-disabled .Select-value {\n background-color: #fcfcfc;\n border: 1px solid #e3e3e3;\n color: #333;\n}\n.Select--multi.is-disabled .Select-value-icon {\n cursor: not-allowed;\n border-right: 1px solid #e3e3e3;\n}\n.Select--multi.is-disabled .Select-value-icon:hover,\n.Select--multi.is-disabled .Select-value-icon:focus,\n.Select--multi.is-disabled .Select-value-icon:active {\n background-color: #fcfcfc;\n}\n@keyframes Select-animation-spin {\n to {\n transform: rotate(1turn);\n }\n}\n@-webkit-keyframes Select-animation-spin {\n to {\n -webkit-transform: rotate(1turn);\n }\n}\n",""])},function(e,t){e.exports=function(e){var t="undefined"!=typeof window&&window.location;if(!t)throw new Error("fixUrls requires window.location");if(!e||"string"!=typeof e)return e;var n=t.protocol+"//"+t.host,r=n+t.pathname.replace(/\/[^\/]*$/,"/");return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(e,t){var o,i=t.trim().replace(/^"(.*)"$/,function(e,t){return t}).replace(/^'(.*)'$/,function(e,t){return t});return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(i)?e:(o=0===i.indexOf("//")?i:0===i.indexOf("/")?n+i:r+i.replace(/^\.\//,""),"url("+JSON.stringify(o)+")")})}},function(e,t,n){var r=n(55);"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(9)(r,o);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(8)(!1)).push([e.i,".dash-spreadsheet.freeze-left {\n width: auto;\n width: fit-content;\n width: -moz-fit-content;\n width: -webkit-fit-content;\n max-width: 500px;\n}\n.dash-spreadsheet.freeze-top {\n width: auto;\n width: fit-content;\n width: -moz-fit-content;\n width: -webkit-fit-content;\n max-height: 500px;\n}\n.dash-spreadsheet-container {\n display: flex;\n flex-direction: row;\n position: relative;\n}\n.dash-spreadsheet-inner {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n}\n.dash-spreadsheet-inner.freeze-left,\n.dash-spreadsheet-inner.freeze-top {\n overflow: hidden !important;\n}\n.dash-spreadsheet-inner *,\n.dash-spreadsheet-inner *:after,\n.dash-spreadsheet-inner *:before {\n box-sizing: inherit;\n}\n.dash-spreadsheet-inner .Select {\n overflow: hidden;\n position: static;\n}\n.dash-spreadsheet-inner .Select,\n.dash-spreadsheet-inner .Select-control {\n background-color: inherit;\n}\n.dash-spreadsheet-inner .Select-value {\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-top: -2px;\n}\n.dash-spreadsheet-inner .marker-row tr {\n visibility: hidden !important;\n}\n.dash-spreadsheet-inner .marker-row td,\n.dash-spreadsheet-inner .marker-row th {\n height: 0 !important;\n padding: 0 !important;\n margin: 0 !important;\n}\n.dash-spreadsheet-inner .row-0 {\n display: flex;\n flex: 0 0 auto;\n flex-direction: row;\n}\n.dash-spreadsheet-inner .row-1 {\n display: flex;\n flex-direction: row;\n overflow: scroll;\n}\n.dash-spreadsheet-inner .cell-0-0,\n.dash-spreadsheet-inner .cell-1-0 {\n flex: 0 0 auto;\n left: 0;\n position: sticky;\n z-index: 400;\n}\n.dash-spreadsheet-inner:not(.freeze-top):not(.freeze-left) .cell-1-1 tr td:first-of-type,\n.dash-spreadsheet-inner:not(.freeze-top):not(.freeze-left) .cell-1-1 tr th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 0px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner:not(.freeze-top):not(.freeze-left) .cell-1-1 tr:first-of-type td,\n.dash-spreadsheet-inner:not(.freeze-top):not(.freeze-left) .cell-1-1 tr:first-of-type th {\n box-shadow: inset 0px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner:not(.freeze-top):not(.freeze-left) .cell-1-1 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner:not(.freeze-top):not(.freeze-left) .cell-1-1 tr:first-of-type th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-0 tr td:first-of-type,\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-0 tr th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 0px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-0 tr:first-of-type td,\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-0 tr:first-of-type th {\n box-shadow: inset 0px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-0 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-0 tr:first-of-type th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-1 tr:first-of-type td,\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-1 tr:first-of-type th {\n box-shadow: inset 0px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-0-1 tr td:first-of-type,\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-0-1 tr th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 0px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-0-1 tr:first-of-type td,\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-0-1 tr:first-of-type th {\n box-shadow: inset 0px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-0-1 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-0-1 tr:first-of-type th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-1-1 tr td:first-of-type,\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-1-1 tr th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 0px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-0 tr td:first-of-type,\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-0 tr th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 0px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-0 tr:first-of-type td,\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-0 tr:first-of-type th {\n box-shadow: inset 0px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-0 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-0 tr:first-of-type th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-1 tr:first-of-type td,\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-1 tr:first-of-type th {\n box-shadow: inset 0px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-1-0 tr td:first-of-type,\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-1-0 tr th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 0px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner .cell-0-1 {\n z-index: 300;\n flex: 0 0 auto;\n}\n.dash-spreadsheet-inner .cell-1-1 {\n flex: 0 0 auto;\n}\n.dash-spreadsheet-inner .cell td,\n.dash-spreadsheet-inner .cell th {\n box-shadow: inset 0px 0px 0px 0px var(--border), inset 0px 0px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner .cell td:focus,\n.dash-spreadsheet-inner .cell th:focus {\n outline: none;\n}\n.dash-spreadsheet-inner .filter.invalid {\n box-shadow: inset 1px 0px 0px 0px red, inset 0px 1px 0px 0px red, inset -1px 0px 0px red, inset 0px -1px 0px 0px red;\n background-color: pink;\n}\n.dash-spreadsheet-inner .selected-row td,\n.dash-spreadsheet-inner .selected-row th {\n background-color: var(--selected-row);\n}\n.dash-spreadsheet-inner tr {\n background-color: white;\n}\n.dash-spreadsheet-inner td {\n background-color: inherit;\n}\n.dash-spreadsheet-inner td.cell--selected {\n background-color: var(--selected-background);\n}\n.dash-spreadsheet-inner td.focused {\n box-shadow: 1px 0px 0px 0px var(--accent), 0px 1px 0px 0px var(--accent), 0 0px 0px var(--accent), 0px 0 0px 0px var(--accent);\n border: 1px solid var(--accent);\n margin: -1px;\n z-index: 200;\n}\n.dash-spreadsheet-inner td .cell-value {\n height: 100%;\n width: 100%;\n}\n.dash-spreadsheet-inner td div.cell-value {\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n.dash-spreadsheet-inner td,\n.dash-spreadsheet-inner th {\n padding: 2px;\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n height: 30px;\n text-align: right;\n}\n.dash-spreadsheet-inner th .column-header--edit,\n.dash-spreadsheet-inner th .column-header--delete,\n.dash-spreadsheet-inner th .sort {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: default;\n cursor: pointer;\n}\n.dash-spreadsheet-inner textarea {\n white-space: pre;\n}\n.dash-spreadsheet-inner table {\n border-collapse: collapse;\n font-family: monospace;\n --accent: hotpink;\n --border: lightgrey;\n --text-color: #3c3c3c;\n --hover: #fdfdfd;\n --background-color-ellipses: #fdfdfd;\n --faded-text: #fafafa;\n --faded-text-header: #b4b4b4;\n --selected-background: rgba(255, 65, 54, 0.2);\n --faded-dropdown: #f0f0f0;\n --selected-row: #fff0ff;\n --muted: #c8c8c8;\n}\n/* focus happens after copying to clipboard */\n.dash-spreadsheet-inner table:focus {\n outline: none;\n}\n.dash-spreadsheet-inner thead {\n display: table-row-group;\n}\n.elip {\n text-align: center;\n width: 100%;\n background-color: var(--background-color-ellipses);\n}\n.dash-spreadsheet-inner td.dropdown {\n /*\n * To view the dropdown's contents, we need\n * overflow-y: visible.\n * Unfortunately, overflow-x: hidden and overflow-y: visible\n * can't both be set at the same time.\n * So, we have to make both overflow-x: visible and overflow-y: visble\n *\n * See https://stackoverflow.com/questions/6421966/\n *\n * There might be another solution with parent divs, but I haven't\n * tried it.\n */\n overflow-x: visible;\n}\n.dash-spreadsheet-inner th {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner :not(.cell--selected) tr:hover,\ntr:hover input :not(.cell--selected) {\n background-color: var(--hover);\n}\n.dash-spreadsheet-inner th {\n background-color: #fafafa;\n}\n.sort {\n cursor: pointer;\n float: left;\n color: var(--faded-text-header);\n font-size: 20px;\n}\nth:hover .sort {\n color: var(--accent);\n}\n.sort:hover {\n text-decoration: underline;\n}\n.expanded-row--empty-cell {\n box-shadow: none;\n background-color: transparent;\n}\n.expanded-row {\n text-align: center;\n}\n.dash-spreadsheet-inner input:not([type=radio]):not([type=checkbox]) {\n padding: 0px;\n margin: 0px;\n height: calc(100% - 1px);\n width: calc(100% - 1px);\n line-height: 30px;\n border: none;\n font-family: inherit;\n text-align: right;\n box-sizing: border-box;\n color: var(--text-color);\n background-color: transparent;\n /* so as to not overlay the box shadow */\n /* browser's default text-shadow is `$color 0px 0px 0px;`\n * for `input`, which makes it look a little bit heavier than dropdowns\n * or bare `td`\n */\n text-shadow: none;\n}\n.dash-spreadsheet-inner input.unfocused {\n color: transparent;\n text-shadow: 0 0 0 var(--text-color);\n cursor: default;\n}\n.dash-spreadsheet-inner input.unfocused:focus {\n outline: none;\n}\n.numeric {\n font-family: monospace;\n}\n.toggle-row {\n border: none;\n box-shadow: none;\n width: 10px;\n padding-left: 10px;\n padding-right: 10px;\n cursor: pointer;\n color: var(--faded-text);\n}\n.toggle-row--expanded {\n color: var(--accent);\n}\n.dash-spreadsheet-inner tr:hover .toggle-row {\n color: var(--accent);\n}\n.cell--uneditable,\n.cell--uneditable input {\n cursor: not-allowed;\n}\n.expanded-row {\n box-shadow: inset 2px 0px 0px 0px var(--accent), inset -1px 0px 0px 0px var(--border);\n /* inset 0px 1px 0px 0px var(--border); */\n}\n.dash-spreadsheet-inner .delete-cell {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: default;\n font-size: 1.3rem;\n text-align: center;\n cursor: pointer;\n color: var(--muted);\n}\n.dash-spreadsheet-inner .delete-cell:hover {\n color: var(--accent);\n}\n.dash-spreadsheet-inner .column-header--edit {\n float: left;\n opacity: 0.1;\n padding-left: 2px;\n padding-right: 2px;\n cursor: pointer;\n}\n.dash-spreadsheet-inner th:hover .column-header--edit {\n color: var(--accent);\n opacity: 1;\n}\n.dash-spreadsheet-inner .column-header--delete {\n float: left;\n opacity: 0.1;\n padding-left: 2px;\n padding-right: 2px;\n cursor: pointer;\n}\n.dash-spreadsheet-inner th:hover .column-header--delete {\n color: var(--accent);\n opacity: 1;\n}\n",""])},function(e,t,n){var r=n(57);"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(9)(r,o);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(8)(!1)).push([e.i,".dash-spreadsheet .Select,\n.dash-spreadsheet .Select-control {\n border: none;\n cursor: pointer;\n height: 30px; /* matches the td height and line-height */\n border: none;\n}\n\n.dash-spreadsheet .Select-placeholder,\n.dash-spreadsheet .Select--single > .Select-control .Select-value {\n height: 100%;\n line-height: inherit;\n}\n\n.dash-spreadsheet .Select.has-value.Select--single > .Select-control .Select-value .Select-value-label,\n.dash-spreadsheet .Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value .Select-value-label {\n color: var(--text-color);\n}\n\n.dash-spreadsheet .Select:hover,\n.dash-spreadsheet .Select-control:hover {\n border: none;\n box-shadow: none;\n cursor: pointer;\n}\n\n.dash-spreadsheet .Select-menu-outer {\n z-index: 100;\n}\n\n.dash-spreadsheet .Select-arrow {\n border-top-color: var(--faded-dropdown);\n border-left-color: transparent;\n border-right-color: transparent;\n border-bottom-color: transparent;\n}\n\n.dash-spreadsheet .Select-control:hover .Select-arrow {\n border-top-color: var(--accent);\n border-left-color: transparent;\n border-right-color: transparent;\n border-bottom-color: transparent;\n}\n\n.dash-spreadsheet .is-open > .Select-control .Select-arrow {\n border-bottom-color: var(--background-color-8-react-select);\n border-left-color: transparent;\n border-right-color: transparent;\n border-top-color: transparent;\n}\n\n.dash-spreadsheet .Select--multi .Select-value,\n.dash-spreadsheet .Select--multi a.Select-value-label {\n color: var(--color-8-react-select);\n}\n\n.dash-spreadsheet .Select {\n border-radius: 0;\n}\n\n.dash-spreadsheet .Select.is-disabled > .Select-control {\n border: none;\n}\n\n.dash-spreadsheet .Select--multi .Select-value-icon:hover,\n.dash-spreadsheet .Select--multi .Select-value-icon:focus {\n font-weight: bold;\n}\n\n.dash-spreadsheet .Select.is-disabled .Select-control {\n cursor: not-allowed;\n}\n\n.dash-spreadsheet .Select-menu-outer {\n background-color: white;\n border: none;\n border-bottom: thin var(--border) solid;\n border-radius: 0;\n border-top: none;\n}\n\n.dash-spreadsheet .Select-option {\n background-color: inherit;\n color: var(--accent);\n}\n\n.dash-spreadsheet .Select-option:hover {\n font-weight: bold;\n color: var(--accent);\n background-color: var(--hover);\n}\n\n.dash-spreadsheet .Select.is-focused:not(.is-open) > .Select-control {\n border: none;\n -webkit-box-shadow: none;\n box-shadow: none;\n background: #fff;\n}\n\n.dash-spreadsheet .Select-option.is-focused {\n background-color: white;\n color: var(--accent);\n font-weight: bold;\n}\n\n.dash-spreadsheet .Select-clear {\n color: transparent;\n}\n.Select:hover .Select-clear {\n color: var(--accent);\n}\n\n.dash-spreadsheet .Select-control {\n padding-left: 2px;\n}\n\n.dash-spreadsheet .cell--selected .Select-control {\n background-color: var(--selected-background);\n border-radius: 0;\n}\n",""])},function(e,t,n){var r=n(59);"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(9)(r,o);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(8)(!1)).push([e.i,"/*RESET CSS*/\nhtml {\n color: #000;\n background: #FFF;\n}\nbody,\ndiv,\ndl,\ndt,\ndd,\nul,\nol,\nli,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\npre,\ncode,\nform,\nfieldset,\nlegend,\ninput,\ntextarea,\np,\nblockquote,\nth,\ntd {\n margin: 0;\n padding: 0;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\nfieldset,\nimg {\n border: 0;\n}\naddress,\ncaption,\ncite,\ncode,\ndfn,\nem,\nstrong,\nth,\nvar {\n font-style: normal;\n font-weight: normal;\n}\nol,\nul {\n list-style: none;\n}\ncaption,\nth {\n text-align: left;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: 100%;\n font-weight: normal;\n}\nq:before,\nq:after {\n content: '';\n}\nabbr,\nacronym {\n border: 0;\n font-variant: normal;\n}\nsup {\n vertical-align: text-top;\n}\nsub {\n vertical-align: text-bottom;\n}\ninput,\ntextarea,\nselect {\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n *font-size: 100%;\n}\nlegend {\n color: #000;\n}\n#yui3-css-stamp.cssreset {\n display: none;\n}\ninput[type=\"button\"] {\n border-radius: 0;\n -webkit-appearance: none;\n}\n*:focus {\n outline: none;\n}\n.dash-spreadsheet-container input,\n.dash-spreadsheet-container table {\n font-size: 13px;\n}\nbody {\n margin: 0;\n padding: 0;\n font-family: sans-serif;\n}\n",""])}]); \ No newline at end of file +var D=function(e){return"string"==typeof e?e:null!==e&&JSON.stringify(e)||""},P=a.a.oneOfType([a.a.string,a.a.node]),R=a.a.oneOfType([a.a.string,a.a.number]),T=1,j=function(e,t){var n=void 0===e?"undefined":x(e);if("string"!==n&&"number"!==n&&"boolean"!==n)return e;var r=t.options,o=t.valueKey;if(r)for(var i=0;iu||id.bottom?l.scrollTop=a.offsetTop+a.clientHeight-l.offsetHeight:c.topt.offsetHeight&&t.scrollHeight-t.offsetHeight-t.scrollTop<=0&&this.props.onMenuScrollToBottom()}}},{key:"getOptionLabel",value:function(e){return e[this.props.labelKey]}},{key:"getValueArray",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,n="object"===(void 0===t?"undefined":x(t))?t:this.props;if(n.multi){if("string"==typeof e&&(e=e.split(n.delimiter)),!Array.isArray(e)){if(null===e||void 0===e)return[];e=[e]}return e.map(function(e){return j(e,n)}).filter(function(e){return e})}var r=j(e,n);return r?[r]:[]}},{key:"setValue",value:function(e){var t=this;if(this.props.autoBlur&&this.blurInput(),this.props.required){var n=I(e,this.props.multi);this.setState({required:n})}this.props.simpleValue&&e&&(e=this.props.multi?e.map(function(e){return e[t.props.valueKey]}).join(this.props.delimiter):e[this.props.valueKey]),this.props.onChange&&this.props.onChange(e)}},{key:"selectValue",value:function(e){var t=this;this.props.closeOnSelect&&(this.hasScrolledToOption=!1);var n=this.props.onSelectResetsInput?"":this.state.inputValue;this.props.multi?this.setState({focusedIndex:null,inputValue:this.handleInputValueChange(n),isOpen:!this.props.closeOnSelect},function(){t.getValueArray(t.props.value).some(function(n){return n[t.props.valueKey]===e[t.props.valueKey]})?t.removeValue(e):t.addValue(e)}):this.setState({inputValue:this.handleInputValueChange(n),isOpen:!this.props.closeOnSelect,isPseudoFocused:this.state.isFocused},function(){t.setValue(e)})}},{key:"addValue",value:function(e){var t=this.getValueArray(this.props.value),n=this._visibleOptions.filter(function(e){return!e.disabled}),r=n.indexOf(e);this.setValue(t.concat(e)),n.length-1===r?this.focusOption(n[r-1]):n.length>r&&this.focusOption(n[r+1])}},{key:"popValue",value:function(){var e=this.getValueArray(this.props.value);e.length&&!1!==e[e.length-1].clearableValue&&this.setValue(this.props.multi?e.slice(0,e.length-1):null)}},{key:"removeValue",value:function(e){var t=this,n=this.getValueArray(this.props.value);this.setValue(n.filter(function(n){return n[t.props.valueKey]!==e[t.props.valueKey]})),this.focus()}},{key:"clearValue",value:function(e){e&&"mousedown"===e.type&&0!==e.button||(e.preventDefault(),this.setValue(this.getResetValue()),this.setState({inputValue:this.handleInputValueChange(""),isOpen:!1},this.focus),this._focusAfterClear=!0)}},{key:"getResetValue",value:function(){return void 0!==this.props.resetValue?this.props.resetValue:this.props.multi?[]:null}},{key:"focusOption",value:function(e){this.setState({focusedOption:e})}},{key:"focusNextOption",value:function(){this.focusAdjacentOption("next")}},{key:"focusPreviousOption",value:function(){this.focusAdjacentOption("previous")}},{key:"focusPageUpOption",value:function(){this.focusAdjacentOption("page_up")}},{key:"focusPageDownOption",value:function(){this.focusAdjacentOption("page_down")}},{key:"focusStartOption",value:function(){this.focusAdjacentOption("start")}},{key:"focusEndOption",value:function(){this.focusAdjacentOption("end")}},{key:"focusAdjacentOption",value:function(e){var t=this._visibleOptions.map(function(e,t){return{option:e,index:t}}).filter(function(e){return!e.option.disabled});if(this._scrollToFocusedOptionOnUpdate=!0,!this.state.isOpen){var n={focusedOption:this._focusedOption||(t.length?t["next"===e?0:t.length-1].option:null),isOpen:!0};return this.props.onSelectResetsInput&&(n.inputValue=""),void this.setState(n)}if(t.length){for(var r=-1,o=0;o0?r-=1:r=t.length-1;else if("start"===e)r=0;else if("end"===e)r=t.length-1;else if("page_up"===e){var i=r-this.props.pageSize;r=i<0?0:i}else if("page_down"===e){var u=r+this.props.pageSize;r=u>t.length-1?t.length-1:u}-1===r&&(r=0),this.setState({focusedIndex:t[r].index,focusedOption:t[r].option})}}},{key:"getFocusedOption",value:function(){return this._focusedOption}},{key:"selectFocusedOption",value:function(){if(this._focusedOption)return this.selectValue(this._focusedOption)}},{key:"renderLoading",value:function(){if(this.props.isLoading)return c.a.createElement("span",{className:"Select-loading-zone","aria-hidden":"true"},c.a.createElement("span",{className:"Select-loading"}))}},{key:"renderValue",value:function(e,t){var n=this,r=this.props.valueRenderer||this.getOptionLabel,o=this.props.valueComponent;if(!e.length)return function(e,t,n){var r=e.inputValue,o=e.isPseudoFocused,i=e.isFocused,u=t.onSelectResetsInput;return!r||!u&&!n&&!o&&!i}(this.state,this.props,t)?c.a.createElement("div",{className:"Select-placeholder"},this.props.placeholder):null;var i=this.props.onValueClick?this.handleValueClick:null;return this.props.multi?e.map(function(e,t){return c.a.createElement(o,{disabled:n.props.disabled||!1===e.clearableValue,id:n._instancePrefix+"-value-"+t,instancePrefix:n._instancePrefix,key:"value-"+t+"-"+e[n.props.valueKey],onClick:i,onRemove:n.removeValue,placeholder:n.props.placeholder,value:e},r(e,t),c.a.createElement("span",{className:"Select-aria-only"}," "))}):function(e,t){var n=e.inputValue,r=e.isPseudoFocused,o=e.isFocused,i=t.onSelectResetsInput;return!n||!i&&!(!o&&r||o&&!r)}(this.state,this.props)?(t&&(i=null),c.a.createElement(o,{disabled:this.props.disabled,id:this._instancePrefix+"-value-item",instancePrefix:this._instancePrefix,onClick:i,placeholder:this.props.placeholder,value:e[0]},r(e[0]))):void 0}},{key:"renderInput",value:function(e,t){var n,r=this,i=u()("Select-input",this.props.inputProps.className),s=this.state.isOpen,a=u()((_(n={},this._instancePrefix+"-list",s),_(n,this._instancePrefix+"-backspace-remove-message",this.props.multi&&!this.props.disabled&&this.state.isFocused&&!this.state.inputValue),n)),l=this.state.inputValue;!l||this.props.onSelectResetsInput||this.state.isFocused||(l="");var p=O({},this.props.inputProps,{"aria-activedescendant":s?this._instancePrefix+"-option-"+t:this._instancePrefix+"-value","aria-describedby":this.props["aria-describedby"],"aria-expanded":""+s,"aria-haspopup":""+s,"aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"],"aria-owns":a,className:i,onBlur:this.handleInputBlur,onChange:this.handleInputChange,onFocus:this.handleInputFocus,ref:function(e){return r.input=e},role:"combobox",required:this.state.required,tabIndex:this.props.tabIndex,value:l});if(this.props.inputRenderer)return this.props.inputRenderer(p);if(this.props.disabled||!this.props.searchable){var d=C(this.props.inputProps,[]),f=u()(_({},this._instancePrefix+"-list",s));return c.a.createElement("div",O({},d,{"aria-expanded":s,"aria-owns":f,"aria-activedescendant":s?this._instancePrefix+"-option-"+t:this._instancePrefix+"-value","aria-disabled":""+this.props.disabled,"aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"],className:i,onBlur:this.handleInputBlur,onFocus:this.handleInputFocus,ref:function(e){return r.input=e},role:"combobox",style:{border:0,width:1,display:"inline-block"},tabIndex:this.props.tabIndex||0}))}return this.props.autosize?c.a.createElement(o.a,O({id:this.props.id},p,{minWidth:"5"})):c.a.createElement("div",{className:i,key:"input-wrap",style:{display:"inline-block"}},c.a.createElement("input",O({id:this.props.id},p)))}},{key:"renderClear",value:function(){var e=this.getValueArray(this.props.value);if(this.props.clearable&&e.length&&!this.props.disabled&&!this.props.isLoading){var t=this.props.multi?this.props.clearAllText:this.props.clearValueText,n=this.props.clearRenderer();return c.a.createElement("span",{"aria-label":t,className:"Select-clear-zone",onMouseDown:this.clearValue,onTouchEnd:this.handleTouchEndClearValue,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,title:t},n)}}},{key:"renderArrow",value:function(){if(this.props.arrowRenderer){var e=this.handleMouseDownOnArrow,t=this.state.isOpen,n=this.props.arrowRenderer({onMouseDown:e,isOpen:t});return n?c.a.createElement("span",{className:"Select-arrow-zone",onMouseDown:e},n):null}}},{key:"filterOptions",value:function(e){var t=this.state.inputValue,n=this.props.options||[];if(this.props.filterOptions){var r="function"==typeof this.props.filterOptions?this.props.filterOptions:y;return r(n,t,e,{filterOption:this.props.filterOption,ignoreAccents:this.props.ignoreAccents,ignoreCase:this.props.ignoreCase,labelKey:this.props.labelKey,matchPos:this.props.matchPos,matchProp:this.props.matchProp,trimFilter:this.props.trimFilter,valueKey:this.props.valueKey})}return n}},{key:"onOptionRef",value:function(e,t){t&&(this.focused=e)}},{key:"renderMenu",value:function(e,t,n){return e&&e.length?this.props.menuRenderer({focusedOption:n,focusOption:this.focusOption,inputValue:this.state.inputValue,instancePrefix:this._instancePrefix,labelKey:this.props.labelKey,onFocus:this.focusOption,onOptionRef:this.onOptionRef,onSelect:this.selectValue,optionClassName:this.props.optionClassName,optionComponent:this.props.optionComponent,optionRenderer:this.props.optionRenderer||this.getOptionLabel,options:e,removeValue:this.removeValue,selectValue:this.selectValue,valueArray:t,valueKey:this.props.valueKey}):this.props.noResultsText?c.a.createElement("div",{className:"Select-noresults"},this.props.noResultsText):null}},{key:"renderHiddenField",value:function(e){var t=this;if(this.props.name){if(this.props.joinValues){var n=e.map(function(e){return D(e[t.props.valueKey])}).join(this.props.delimiter);return c.a.createElement("input",{disabled:this.props.disabled,name:this.props.name,ref:function(e){return t.value=e},type:"hidden",value:n})}return e.map(function(e,n){return c.a.createElement("input",{disabled:t.props.disabled,key:"hidden."+n,name:t.props.name,ref:"value"+n,type:"hidden",value:D(e[t.props.valueKey])})})}}},{key:"getFocusableOptionIndex",value:function(e){var t=this._visibleOptions;if(!t.length)return null;var n=this.props.valueKey,r=this.state.focusedOption||e;if(r&&!r.disabled){var o=-1;if(t.some(function(e,t){var i=e[n]===r[n];return i&&(o=t),i}),-1!==o)return o}for(var i=0;i{const u=n.slice(-1)[0],s=n.slice(0,-1),a=r.reduce((e,t)=>e.get(t)||e.set(t,new Map).get(t),t,s);return(a.get(u)||a.set(u,function(e){return(0,o.memoizeOne)((...t)=>e(...t))}(e)).get(u))(...i)}};var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),o=n(5)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),o=d(n(1)),i=d(n(3)),u=d(n(42)),s=d(n(43)),a=n(44),l=d(n(10)),c=n(16),p=d(n(18));function d(e){return e&&e.__esModule?e:{default:e}}t.default=class{constructor(e){this.propsFn=e,this.handlers=new Map,this.ops=new Map,this.onChange=((e,t,n,o)=>{i.default.debug("Filter -- onChange",e,o.target.value&&o.target.value.trim());const u=o.target.value.trim();u&&u.length?t.set(e,u):t.delete(e),n(r.map(([e,t])=>`${e} ${t}`,r.filter(([e])=>this.isFragmentValid(e),Array.from(t.entries()))).join(" && "))}),this.getEventHandler=((e,t,n,r)=>{const o=this.handlers.get(e)||this.handlers.set(e,new Map).get(e),i=o.get(t)||o.set(t,new Map).get(t);return i.get(r)||i.set(r,e.bind(this,t,n,r)).get(r)})}get props(){return this.propsFn()}respectsBasicSyntax(e,t=!0){const n=[c.LexemeType.BinaryOperator,c.LexemeType.Expression,c.LexemeType.Operand,c.LexemeType.UnaryOperator];if(t&&n.push(c.LexemeType.And),!r.all(e=>r.contains(e.lexeme.name,n),e))return!1;const o=r.map(e=>e.value,r.filter(e=>e.lexeme.name===c.LexemeType.Operand,e)),i=r.uniq(o);return o.length===i.length}isBasicFilter(e,t,n=!0){return e.valid&&t.valid&&this.respectsBasicSyntax(e.lexemes,n)}updateOps(e){const t=(0,l.default)(e),n=(0,p.default)(t);if(!this.isBasicFilter(t,n))return;const r=[n.tree];for(;r.length;){const e=r.pop();e&&(e.lexeme.name===c.LexemeType.UnaryOperator&&e.block?this.ops.set(e.block.value,e.value):e.lexeme.name===c.LexemeType.BinaryOperator&&e.left&&e.right?this.ops.set(e.left.value,`${e.value} ${e.right.value}`):(r.push(e.left),r.push(e.block),r.push(e.right)))}}isFragmentValidOrNull(e){const t=this.ops.get(e);return!t||!t.trim().length||this.isFragmentValid(e)}isFragmentValid(e){const t=this.ops.get(e),n=(0,l.default)(`${e} ${t}`),r=(0,p.default)(n);return r.valid&&this.isBasicFilter(n,r,!1)}createFilters(){var e=this.props;const t=e.columns,n=e.filtering,i=e.filtering_settings,l=e.filtering_type,c=e.offset,p=e.setFilter;if(!n)return[];this.updateOps(i);const d=r.filter(e=>!e.hidden,t),f=r.range(0,c).map(e=>o.default.createElement("th",{key:`offset-${e}`})),h=l===a.FilteringType.Basic?r.addIndex(r.map)((e,t)=>o.default.createElement(u.default,{key:`column-${t+c}`,classes:`filter column-${t+c}`,isValid:this.isFragmentValidOrNull(e.id),property:e.id,setFilter:this.getEventHandler(this.onChange,e.id,this.ops,p),value:this.ops.get(e.id)}),d):[o.default.createElement(s.default,{key:`column-${c}`,classes:[],colSpan:d.length,value:"",setFilter:()=>void 0})];return[r.concat(f,h)]}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=u(r),i=u(n(20));function u(e){return e&&e.__esModule?e:{default:e}}t.default=class extends r.PureComponent{constructor(e){super(e),this.submit=(e=>{(0,this.props.setFilter)({target:{value:e}})}),this.state={value:e.value}}componentWillReceiveProps(e){const t=e.value;this.state.value!==t&&this.setState({value:t})}render(){var e=this.props;const t=e.classes,n=e.isValid,r=e.value;return o.default.createElement("th",{className:t+(n?"":" invalid")},o.default.createElement(i.default,{value:r,stopPropagation:!0,submit:this.submit}))}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=u(r),i=u(n(20));function u(e){return e&&e.__esModule?e:{default:e}}t.default=class extends r.PureComponent{constructor(e){super(e),this.submit=(e=>this.props.setFilter(e))}render(){var e=this.props;const t=e.colSpan,n=e.value;return o.default.createElement("th",{colSpan:t},o.default.createElement(i.default,{stopPropagation:!0,value:n,submit:this.submit}))}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=t.FilteringType=void 0;!function(e){e.Advanced="advanced",e.Basic="basic"}(r||(t.FilteringType=r={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(5);t.default=(0,r.memoizeOneFactory)((e,t,n,r)=>{switch(e){case!1:return{loadNext:()=>{},loadPrevious:()=>{}};case!0:case"fe":return function(e,t,n){return{loadNext:()=>{let r=Math.floor(n.length/e.page_size);e.current_page>=r||(e.current_page++,t({pagination_settings:e}))},loadPrevious:()=>{e.current_page<=0||(e.current_page--,t({pagination_settings:e}))}}}(t,n,r);case"be":return function(e,t){return{loadNext:()=>{e.current_page++,t({pagination_settings:e})},loadPrevious:()=>{e.current_page<=0||(e.current_page--,t({pagination_settings:e}))}}}(t,n);default:throw new Error(`Unknown pagination mode: '${e}'`)}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(5);t.default=(0,r.memoizeOneFactory)((e,t,n,r)=>{switch(e){case!1:return function(e,t){return{dataframe:e,indices:t}}(n,r);case!0:case"fe":return function(e,t,n){let r=Math.min(e.current_page,Math.floor(t.length/e.page_size));const o=e.page_size*r,i=Math.min(o+e.displayed_pages*e.page_size,t.length);return{dataframe:t.slice(o,i),indices:n.slice(o,i)}}(t,n,r);case"be":return function(e,t){return{dataframe:e,indices:t}}(n,r);default:throw new Error(`Unknown pagination mode: '${e}'`)}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),o=n(5),i=n(7),u=a(i),s=a(n(17));function a(e){return e&&e.__esModule?e:{default:e}}t.default=(0,o.memoizeOneFactory)((e,t,n,o,a=[],l)=>{const c=new Map;if(r.addIndex(r.forEach)((e,t)=>{c.set(e,t)},e),"fe"===t||!0===t){const t=new s.default(n);e=t.isValid?t.filter(e):e}const p=l?e=>""===e||(0,i.defaultIsNully)(e):void 0;return"fe"!==o&&!0!==o||(e=(0,u.default)(e,a,p)),{dataframe:e,indices:r.map(e=>c.get(e),e)}})},function(e,t,n){var r=n(49);"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(9)(r,o);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(8)(!1)).push([e.i,"/**\n * React Select\n * ============\n * Created by Jed Watson and Joss Mackison for KeystoneJS, http://www.keystonejs.com/\n * https://twitter.com/jedwatson https://twitter.com/jossmackison https://twitter.com/keystonejs\n * MIT License: https://github.com/JedWatson/react-select\n*/\n.Select {\n position: relative;\n}\n.Select input::-webkit-contacts-auto-fill-button,\n.Select input::-webkit-credentials-auto-fill-button {\n display: none !important;\n}\n.Select input::-ms-clear {\n display: none !important;\n}\n.Select input::-ms-reveal {\n display: none !important;\n}\n.Select,\n.Select div,\n.Select input,\n.Select span {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n.Select.is-disabled .Select-arrow-zone {\n cursor: default;\n pointer-events: none;\n opacity: 0.35;\n}\n.Select.is-disabled > .Select-control {\n background-color: #f9f9f9;\n}\n.Select.is-disabled > .Select-control:hover {\n box-shadow: none;\n}\n.Select.is-open > .Select-control {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n background: #fff;\n border-color: #b3b3b3 #ccc #d9d9d9;\n}\n.Select.is-open > .Select-control .Select-arrow {\n top: -2px;\n border-color: transparent transparent #999;\n border-width: 0 5px 5px;\n}\n.Select.is-searchable.is-open > .Select-control {\n cursor: text;\n}\n.Select.is-searchable.is-focused:not(.is-open) > .Select-control {\n cursor: text;\n}\n.Select.is-focused > .Select-control {\n background: #fff;\n}\n.Select.is-focused:not(.is-open) > .Select-control {\n border-color: #007eff;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 3px rgba(0, 126, 255, 0.1);\n background: #fff;\n}\n.Select.has-value.is-clearable.Select--single > .Select-control .Select-value {\n padding-right: 42px;\n}\n.Select.has-value.Select--single > .Select-control .Select-value .Select-value-label,\n.Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value .Select-value-label {\n color: #333;\n}\n.Select.has-value.Select--single > .Select-control .Select-value a.Select-value-label,\n.Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label {\n cursor: pointer;\n text-decoration: none;\n}\n.Select.has-value.Select--single > .Select-control .Select-value a.Select-value-label:hover,\n.Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label:hover,\n.Select.has-value.Select--single > .Select-control .Select-value a.Select-value-label:focus,\n.Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label:focus {\n color: #007eff;\n outline: none;\n text-decoration: underline;\n}\n.Select.has-value.Select--single > .Select-control .Select-value a.Select-value-label:focus,\n.Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label:focus {\n background: #fff;\n}\n.Select.has-value.is-pseudo-focused .Select-input {\n opacity: 0;\n}\n.Select.is-open .Select-arrow,\n.Select .Select-arrow-zone:hover > .Select-arrow {\n border-top-color: #666;\n}\n.Select.Select--rtl {\n direction: rtl;\n text-align: right;\n}\n.Select-control {\n background-color: #fff;\n border-color: #d9d9d9 #ccc #b3b3b3;\n border-radius: 4px;\n border: 1px solid #ccc;\n color: #333;\n cursor: default;\n display: table;\n border-spacing: 0;\n border-collapse: separate;\n height: 36px;\n outline: none;\n overflow: hidden;\n position: relative;\n width: 100%;\n}\n.Select-control:hover {\n box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);\n}\n.Select-control .Select-input:focus {\n outline: none;\n background: #fff;\n}\n.Select-placeholder,\n.Select--single > .Select-control .Select-value {\n bottom: 0;\n color: #aaa;\n left: 0;\n line-height: 34px;\n padding-left: 10px;\n padding-right: 10px;\n position: absolute;\n right: 0;\n top: 0;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.Select-input {\n height: 34px;\n padding-left: 10px;\n padding-right: 10px;\n vertical-align: middle;\n}\n.Select-input > input {\n width: 100%;\n background: none transparent;\n border: 0 none;\n box-shadow: none;\n cursor: default;\n display: inline-block;\n font-family: inherit;\n font-size: inherit;\n margin: 0;\n outline: none;\n line-height: 17px;\n /* For IE 8 compatibility */\n padding: 8px 0 12px;\n /* For IE 8 compatibility */\n -webkit-appearance: none;\n}\n.is-focused .Select-input > input {\n cursor: text;\n}\n.has-value.is-pseudo-focused .Select-input {\n opacity: 0;\n}\n.Select-control:not(.is-searchable) > .Select-input {\n outline: none;\n}\n.Select-loading-zone {\n cursor: pointer;\n display: table-cell;\n position: relative;\n text-align: center;\n vertical-align: middle;\n width: 16px;\n}\n.Select-loading {\n -webkit-animation: Select-animation-spin 400ms infinite linear;\n -o-animation: Select-animation-spin 400ms infinite linear;\n animation: Select-animation-spin 400ms infinite linear;\n width: 16px;\n height: 16px;\n box-sizing: border-box;\n border-radius: 50%;\n border: 2px solid #ccc;\n border-right-color: #333;\n display: inline-block;\n position: relative;\n vertical-align: middle;\n}\n.Select-clear-zone {\n -webkit-animation: Select-animation-fadeIn 200ms;\n -o-animation: Select-animation-fadeIn 200ms;\n animation: Select-animation-fadeIn 200ms;\n color: #999;\n cursor: pointer;\n display: table-cell;\n position: relative;\n text-align: center;\n vertical-align: middle;\n width: 17px;\n}\n.Select-clear-zone:hover {\n color: #D0021B;\n}\n.Select-clear {\n display: inline-block;\n font-size: 18px;\n line-height: 1;\n}\n.Select--multi .Select-clear-zone {\n width: 17px;\n}\n.Select-arrow-zone {\n cursor: pointer;\n display: table-cell;\n position: relative;\n text-align: center;\n vertical-align: middle;\n width: 25px;\n padding-right: 5px;\n}\n.Select--rtl .Select-arrow-zone {\n padding-right: 0;\n padding-left: 5px;\n}\n.Select-arrow {\n border-color: #999 transparent transparent;\n border-style: solid;\n border-width: 5px 5px 2.5px;\n display: inline-block;\n height: 0;\n width: 0;\n position: relative;\n}\n.Select-control > *:last-child {\n padding-right: 5px;\n}\n.Select--multi .Select-multi-value-wrapper {\n display: inline-block;\n}\n.Select .Select-aria-only {\n position: absolute;\n display: inline-block;\n height: 1px;\n width: 1px;\n margin: -1px;\n clip: rect(0, 0, 0, 0);\n overflow: hidden;\n float: left;\n}\n@-webkit-keyframes Select-animation-fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes Select-animation-fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n.Select-menu-outer {\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n background-color: #fff;\n border: 1px solid #ccc;\n border-top-color: #e6e6e6;\n box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);\n box-sizing: border-box;\n margin-top: -1px;\n max-height: 200px;\n position: absolute;\n left: 0;\n top: 100%;\n width: 100%;\n z-index: 1;\n -webkit-overflow-scrolling: touch;\n}\n.Select-menu {\n max-height: 198px;\n overflow-y: auto;\n}\n.Select-option {\n box-sizing: border-box;\n background-color: #fff;\n color: #666666;\n cursor: pointer;\n display: block;\n padding: 8px 10px;\n}\n.Select-option:last-child {\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.Select-option.is-selected {\n background-color: #f5faff;\n /* Fallback color for IE 8 */\n background-color: rgba(0, 126, 255, 0.04);\n color: #333;\n}\n.Select-option.is-focused {\n background-color: #ebf5ff;\n /* Fallback color for IE 8 */\n background-color: rgba(0, 126, 255, 0.08);\n color: #333;\n}\n.Select-option.is-disabled {\n color: #cccccc;\n cursor: default;\n}\n.Select-noresults {\n box-sizing: border-box;\n color: #999999;\n cursor: default;\n display: block;\n padding: 8px 10px;\n}\n.Select--multi .Select-input {\n vertical-align: middle;\n margin-left: 10px;\n padding: 0;\n}\n.Select--multi.Select--rtl .Select-input {\n margin-left: 0;\n margin-right: 10px;\n}\n.Select--multi.has-value .Select-input {\n margin-left: 5px;\n}\n.Select--multi .Select-value {\n background-color: #ebf5ff;\n /* Fallback color for IE 8 */\n background-color: rgba(0, 126, 255, 0.08);\n border-radius: 2px;\n border: 1px solid #c2e0ff;\n /* Fallback color for IE 8 */\n border: 1px solid rgba(0, 126, 255, 0.24);\n color: #007eff;\n display: inline-block;\n font-size: 0.9em;\n line-height: 1.4;\n margin-left: 5px;\n margin-top: 5px;\n vertical-align: top;\n}\n.Select--multi .Select-value-icon,\n.Select--multi .Select-value-label {\n display: inline-block;\n vertical-align: middle;\n}\n.Select--multi .Select-value-label {\n border-bottom-right-radius: 2px;\n border-top-right-radius: 2px;\n cursor: default;\n padding: 2px 5px;\n}\n.Select--multi a.Select-value-label {\n color: #007eff;\n cursor: pointer;\n text-decoration: none;\n}\n.Select--multi a.Select-value-label:hover {\n text-decoration: underline;\n}\n.Select--multi .Select-value-icon {\n cursor: pointer;\n border-bottom-left-radius: 2px;\n border-top-left-radius: 2px;\n border-right: 1px solid #c2e0ff;\n /* Fallback color for IE 8 */\n border-right: 1px solid rgba(0, 126, 255, 0.24);\n padding: 1px 5px 3px;\n}\n.Select--multi .Select-value-icon:hover,\n.Select--multi .Select-value-icon:focus {\n background-color: #d8eafd;\n /* Fallback color for IE 8 */\n background-color: rgba(0, 113, 230, 0.08);\n color: #0071e6;\n}\n.Select--multi .Select-value-icon:active {\n background-color: #c2e0ff;\n /* Fallback color for IE 8 */\n background-color: rgba(0, 126, 255, 0.24);\n}\n.Select--multi.Select--rtl .Select-value {\n margin-left: 0;\n margin-right: 5px;\n}\n.Select--multi.Select--rtl .Select-value-icon {\n border-right: none;\n border-left: 1px solid #c2e0ff;\n /* Fallback color for IE 8 */\n border-left: 1px solid rgba(0, 126, 255, 0.24);\n}\n.Select--multi.is-disabled .Select-value {\n background-color: #fcfcfc;\n border: 1px solid #e3e3e3;\n color: #333;\n}\n.Select--multi.is-disabled .Select-value-icon {\n cursor: not-allowed;\n border-right: 1px solid #e3e3e3;\n}\n.Select--multi.is-disabled .Select-value-icon:hover,\n.Select--multi.is-disabled .Select-value-icon:focus,\n.Select--multi.is-disabled .Select-value-icon:active {\n background-color: #fcfcfc;\n}\n@keyframes Select-animation-spin {\n to {\n transform: rotate(1turn);\n }\n}\n@-webkit-keyframes Select-animation-spin {\n to {\n -webkit-transform: rotate(1turn);\n }\n}\n",""])},function(e,t){e.exports=function(e){var t="undefined"!=typeof window&&window.location;if(!t)throw new Error("fixUrls requires window.location");if(!e||"string"!=typeof e)return e;var n=t.protocol+"//"+t.host,r=n+t.pathname.replace(/\/[^\/]*$/,"/");return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(e,t){var o,i=t.trim().replace(/^"(.*)"$/,function(e,t){return t}).replace(/^'(.*)'$/,function(e,t){return t});return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(i)?e:(o=0===i.indexOf("//")?i:0===i.indexOf("/")?n+i:r+i.replace(/^\.\//,""),"url("+JSON.stringify(o)+")")})}},function(e,t,n){var r=n(52);"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(9)(r,o);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(8)(!1)).push([e.i,".dash-spreadsheet.freeze-left {\n width: auto;\n width: fit-content;\n width: -moz-fit-content;\n width: -webkit-fit-content;\n max-width: 500px;\n}\n.dash-spreadsheet.freeze-top {\n width: auto;\n width: fit-content;\n width: -moz-fit-content;\n width: -webkit-fit-content;\n max-height: 500px;\n}\n.dash-spreadsheet-container {\n display: flex;\n flex-direction: row;\n position: relative;\n}\n.dash-spreadsheet-inner {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n}\n.dash-spreadsheet-inner.freeze-left,\n.dash-spreadsheet-inner.freeze-top {\n overflow: hidden !important;\n}\n.dash-spreadsheet-inner *,\n.dash-spreadsheet-inner *:after,\n.dash-spreadsheet-inner *:before {\n box-sizing: inherit;\n}\n.dash-spreadsheet-inner .Select {\n overflow: hidden;\n position: static;\n}\n.dash-spreadsheet-inner .Select,\n.dash-spreadsheet-inner .Select-control {\n background-color: inherit;\n}\n.dash-spreadsheet-inner .Select-value {\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-top: -2px;\n}\n.dash-spreadsheet-inner .marker-row tr {\n visibility: hidden !important;\n}\n.dash-spreadsheet-inner .marker-row td,\n.dash-spreadsheet-inner .marker-row th {\n height: 0 !important;\n padding: 0 !important;\n margin: 0 !important;\n}\n.dash-spreadsheet-inner .row-0 {\n display: flex;\n flex: 0 0 auto;\n flex-direction: row;\n}\n.dash-spreadsheet-inner .row-1 {\n display: flex;\n flex-direction: row;\n overflow: scroll;\n}\n.dash-spreadsheet-inner .cell-0-0,\n.dash-spreadsheet-inner .cell-1-0 {\n flex: 0 0 auto;\n left: 0;\n position: sticky;\n z-index: 400;\n}\n.dash-spreadsheet-inner:not(.freeze-top):not(.freeze-left) .cell-1-1 tr td:first-of-type,\n.dash-spreadsheet-inner:not(.freeze-top):not(.freeze-left) .cell-1-1 tr th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 0px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner:not(.freeze-top):not(.freeze-left) .cell-1-1 tr:first-of-type td,\n.dash-spreadsheet-inner:not(.freeze-top):not(.freeze-left) .cell-1-1 tr:first-of-type th {\n box-shadow: inset 0px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner:not(.freeze-top):not(.freeze-left) .cell-1-1 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner:not(.freeze-top):not(.freeze-left) .cell-1-1 tr:first-of-type th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-0 tr td:first-of-type,\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-0 tr th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 0px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-0 tr:first-of-type td,\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-0 tr:first-of-type th {\n box-shadow: inset 0px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-0 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-0 tr:first-of-type th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-1 tr:first-of-type td,\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-1 tr:first-of-type th {\n box-shadow: inset 0px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-0-1 tr td:first-of-type,\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-0-1 tr th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 0px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-0-1 tr:first-of-type td,\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-0-1 tr:first-of-type th {\n box-shadow: inset 0px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-0-1 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-0-1 tr:first-of-type th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-1-1 tr td:first-of-type,\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-1-1 tr th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 0px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-0 tr td:first-of-type,\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-0 tr th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 0px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-0 tr:first-of-type td,\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-0 tr:first-of-type th {\n box-shadow: inset 0px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-0 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-0 tr:first-of-type th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-1 tr:first-of-type td,\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-1 tr:first-of-type th {\n box-shadow: inset 0px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-1-0 tr td:first-of-type,\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-1-0 tr th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 0px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner .cell-0-1 {\n z-index: 300;\n flex: 0 0 auto;\n}\n.dash-spreadsheet-inner .cell-1-1 {\n flex: 0 0 auto;\n}\n.dash-spreadsheet-inner .cell td,\n.dash-spreadsheet-inner .cell th {\n box-shadow: inset 0px 0px 0px 0px var(--border), inset 0px 0px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner .cell td:focus,\n.dash-spreadsheet-inner .cell th:focus {\n outline: none;\n}\n.dash-spreadsheet-inner .filter.invalid {\n box-shadow: inset 1px 0px 0px 0px red, inset 0px 1px 0px 0px red, inset -1px 0px 0px red, inset 0px -1px 0px 0px red;\n background-color: pink;\n}\n.dash-spreadsheet-inner .selected-row td,\n.dash-spreadsheet-inner .selected-row th {\n background-color: var(--selected-row);\n}\n.dash-spreadsheet-inner tr {\n background-color: white;\n}\n.dash-spreadsheet-inner td {\n background-color: inherit;\n}\n.dash-spreadsheet-inner td.cell--selected {\n background-color: var(--selected-background);\n}\n.dash-spreadsheet-inner td.focused {\n box-shadow: 1px 0px 0px 0px var(--accent), 0px 1px 0px 0px var(--accent), 0 0px 0px var(--accent), 0px 0 0px 0px var(--accent);\n border: 1px solid var(--accent);\n margin: -1px;\n z-index: 200;\n}\n.dash-spreadsheet-inner td .cell-value {\n height: 100%;\n width: 100%;\n}\n.dash-spreadsheet-inner td div.cell-value {\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n.dash-spreadsheet-inner td,\n.dash-spreadsheet-inner th {\n padding: 2px;\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n height: 30px;\n text-align: right;\n}\n.dash-spreadsheet-inner th .column-header--edit,\n.dash-spreadsheet-inner th .column-header--delete,\n.dash-spreadsheet-inner th .sort {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: default;\n cursor: pointer;\n}\n.dash-spreadsheet-inner textarea {\n white-space: pre;\n}\n.dash-spreadsheet-inner table {\n border-collapse: collapse;\n font-family: monospace;\n --accent: hotpink;\n --border: lightgrey;\n --text-color: #3c3c3c;\n --hover: #fdfdfd;\n --background-color-ellipses: #fdfdfd;\n --faded-text: #fafafa;\n --faded-text-header: #b4b4b4;\n --selected-background: rgba(255, 65, 54, 0.2);\n --faded-dropdown: #f0f0f0;\n --selected-row: #fff0ff;\n --muted: #c8c8c8;\n}\n/* focus happens after copying to clipboard */\n.dash-spreadsheet-inner table:focus {\n outline: none;\n}\n.dash-spreadsheet-inner thead {\n display: table-row-group;\n}\n.elip {\n text-align: center;\n width: 100%;\n background-color: var(--background-color-ellipses);\n}\n.dash-spreadsheet-inner td.dropdown {\n /*\n * To view the dropdown's contents, we need\n * overflow-y: visible.\n * Unfortunately, overflow-x: hidden and overflow-y: visible\n * can't both be set at the same time.\n * So, we have to make both overflow-x: visible and overflow-y: visble\n *\n * See https://stackoverflow.com/questions/6421966/\n *\n * There might be another solution with parent divs, but I haven't\n * tried it.\n */\n overflow-x: visible;\n}\n.dash-spreadsheet-inner th {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner :not(.cell--selected) tr:hover,\ntr:hover input :not(.cell--selected) {\n background-color: var(--hover);\n}\n.dash-spreadsheet-inner th {\n background-color: #fafafa;\n}\n.sort {\n cursor: pointer;\n float: left;\n color: var(--faded-text-header);\n font-size: 20px;\n}\nth:hover .sort {\n color: var(--accent);\n}\n.sort:hover {\n text-decoration: underline;\n}\n.expanded-row--empty-cell {\n box-shadow: none;\n background-color: transparent;\n}\n.expanded-row {\n text-align: center;\n}\n.dash-spreadsheet-inner input:not([type=radio]):not([type=checkbox]) {\n padding: 0px;\n margin: 0px;\n height: calc(100% - 1px);\n width: calc(100% - 1px);\n line-height: 30px;\n border: none;\n font-family: inherit;\n text-align: right;\n box-sizing: border-box;\n color: var(--text-color);\n background-color: transparent;\n /* so as to not overlay the box shadow */\n /* browser's default text-shadow is `$color 0px 0px 0px;`\n * for `input`, which makes it look a little bit heavier than dropdowns\n * or bare `td`\n */\n text-shadow: none;\n}\n.dash-spreadsheet-inner input.unfocused {\n color: transparent;\n text-shadow: 0 0 0 var(--text-color);\n cursor: default;\n}\n.dash-spreadsheet-inner input.unfocused:focus {\n outline: none;\n}\n.numeric {\n font-family: monospace;\n}\n.toggle-row {\n border: none;\n box-shadow: none;\n width: 10px;\n padding-left: 10px;\n padding-right: 10px;\n cursor: pointer;\n color: var(--faded-text);\n}\n.toggle-row--expanded {\n color: var(--accent);\n}\n.dash-spreadsheet-inner tr:hover .toggle-row {\n color: var(--accent);\n}\n.cell--uneditable,\n.cell--uneditable input {\n cursor: not-allowed;\n}\n.expanded-row {\n box-shadow: inset 2px 0px 0px 0px var(--accent), inset -1px 0px 0px 0px var(--border);\n /* inset 0px 1px 0px 0px var(--border); */\n}\n.dash-spreadsheet-inner .delete-cell {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: default;\n font-size: 1.3rem;\n text-align: center;\n cursor: pointer;\n color: var(--muted);\n}\n.dash-spreadsheet-inner .delete-cell:hover {\n color: var(--accent);\n}\n.dash-spreadsheet-inner .column-header--edit {\n float: left;\n opacity: 0.1;\n padding-left: 2px;\n padding-right: 2px;\n cursor: pointer;\n}\n.dash-spreadsheet-inner th:hover .column-header--edit {\n color: var(--accent);\n opacity: 1;\n}\n.dash-spreadsheet-inner .column-header--delete {\n float: left;\n opacity: 0.1;\n padding-left: 2px;\n padding-right: 2px;\n cursor: pointer;\n}\n.dash-spreadsheet-inner th:hover .column-header--delete {\n color: var(--accent);\n opacity: 1;\n}\n",""])},function(e,t,n){var r=n(54);"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(9)(r,o);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(8)(!1)).push([e.i,".dash-spreadsheet .Select,\n.dash-spreadsheet .Select-control {\n border: none;\n cursor: pointer;\n height: 30px; /* matches the td height and line-height */\n border: none;\n}\n\n.dash-spreadsheet .Select-placeholder,\n.dash-spreadsheet .Select--single > .Select-control .Select-value {\n height: 100%;\n line-height: inherit;\n}\n\n.dash-spreadsheet .Select.has-value.Select--single > .Select-control .Select-value .Select-value-label,\n.dash-spreadsheet .Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value .Select-value-label {\n color: var(--text-color);\n}\n\n.dash-spreadsheet .Select:hover,\n.dash-spreadsheet .Select-control:hover {\n border: none;\n box-shadow: none;\n cursor: pointer;\n}\n\n.dash-spreadsheet .Select-menu-outer {\n z-index: 100;\n}\n\n.dash-spreadsheet .Select-arrow {\n border-top-color: var(--faded-dropdown);\n border-left-color: transparent;\n border-right-color: transparent;\n border-bottom-color: transparent;\n}\n\n.dash-spreadsheet .Select-control:hover .Select-arrow {\n border-top-color: var(--accent);\n border-left-color: transparent;\n border-right-color: transparent;\n border-bottom-color: transparent;\n}\n\n.dash-spreadsheet .is-open > .Select-control .Select-arrow {\n border-bottom-color: var(--background-color-8-react-select);\n border-left-color: transparent;\n border-right-color: transparent;\n border-top-color: transparent;\n}\n\n.dash-spreadsheet .Select--multi .Select-value,\n.dash-spreadsheet .Select--multi a.Select-value-label {\n color: var(--color-8-react-select);\n}\n\n.dash-spreadsheet .Select {\n border-radius: 0;\n}\n\n.dash-spreadsheet .Select.is-disabled > .Select-control {\n border: none;\n}\n\n.dash-spreadsheet .Select--multi .Select-value-icon:hover,\n.dash-spreadsheet .Select--multi .Select-value-icon:focus {\n font-weight: bold;\n}\n\n.dash-spreadsheet .Select.is-disabled .Select-control {\n cursor: not-allowed;\n}\n\n.dash-spreadsheet .Select-menu-outer {\n background-color: white;\n border: none;\n border-bottom: thin var(--border) solid;\n border-radius: 0;\n border-top: none;\n}\n\n.dash-spreadsheet .Select-option {\n background-color: inherit;\n color: var(--accent);\n}\n\n.dash-spreadsheet .Select-option:hover {\n font-weight: bold;\n color: var(--accent);\n background-color: var(--hover);\n}\n\n.dash-spreadsheet .Select.is-focused:not(.is-open) > .Select-control {\n border: none;\n -webkit-box-shadow: none;\n box-shadow: none;\n background: #fff;\n}\n\n.dash-spreadsheet .Select-option.is-focused {\n background-color: white;\n color: var(--accent);\n font-weight: bold;\n}\n\n.dash-spreadsheet .Select-clear {\n color: transparent;\n}\n.Select:hover .Select-clear {\n color: var(--accent);\n}\n\n.dash-spreadsheet .Select-control {\n padding-left: 2px;\n}\n\n.dash-spreadsheet .cell--selected .Select-control {\n background-color: var(--selected-background);\n border-radius: 0;\n}\n",""])},function(e,t,n){var r=n(56);"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(9)(r,o);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(8)(!1)).push([e.i,"/*RESET CSS*/\nhtml {\n color: #000;\n background: #FFF;\n}\nbody,\ndiv,\ndl,\ndt,\ndd,\nul,\nol,\nli,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\npre,\ncode,\nform,\nfieldset,\nlegend,\ninput,\ntextarea,\np,\nblockquote,\nth,\ntd {\n margin: 0;\n padding: 0;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\nfieldset,\nimg {\n border: 0;\n}\naddress,\ncaption,\ncite,\ncode,\ndfn,\nem,\nstrong,\nth,\nvar {\n font-style: normal;\n font-weight: normal;\n}\nol,\nul {\n list-style: none;\n}\ncaption,\nth {\n text-align: left;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: 100%;\n font-weight: normal;\n}\nq:before,\nq:after {\n content: '';\n}\nabbr,\nacronym {\n border: 0;\n font-variant: normal;\n}\nsup {\n vertical-align: text-top;\n}\nsub {\n vertical-align: text-bottom;\n}\ninput,\ntextarea,\nselect {\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n *font-size: 100%;\n}\nlegend {\n color: #000;\n}\n#yui3-css-stamp.cssreset {\n display: none;\n}\ninput[type=\"button\"] {\n border-radius: 0;\n -webkit-appearance: none;\n}\n*:focus {\n outline: none;\n}\n.dash-spreadsheet-container input,\n.dash-spreadsheet-container table {\n font-size: 13px;\n}\nbody {\n margin: 0;\n padding: 0;\n font-family: sans-serif;\n}\n",""])}]); \ No newline at end of file diff --git a/dash_table/demo.js b/dash_table/demo.js index 8a01085b2..1816eb5b4 100644 --- a/dash_table/demo.js +++ b/dash_table/demo.js @@ -1,4 +1,4 @@ -window.dash_table=function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=60)}([function(e,t,n){e.exports=n(27)()},function(e,t){e.exports=window.React},function(e,t,n){"use strict";function r(e){return null!=e&&"object"==typeof e&&!0===e["@@functional/placeholder"]}function o(e){return function t(n){return 0===arguments.length||r(n)?t:e.apply(this,arguments)}}n.r(t);var i=o(function(e){return function(){return e}}),u=i(!1),a=i(!0),s={"@@functional/placeholder":!0};function l(e){return function t(n,i){switch(arguments.length){case 0:return t;case 1:return r(n)?t:o(function(t){return e(n,t)});default:return r(n)&&r(i)?t:r(n)?o(function(t){return e(t,i)}):r(i)?o(function(t){return e(n,t)}):e(n,i)}}}var c=l(function(e,t){return Number(e)+Number(t)});function p(e,t){var n;e=e||[],t=t||[];var r=e.length,o=t.length,i=[];for(n=0;n=arguments.length)?s=t[a]:(s=arguments[i],i+=1),o[a]=s,r(s)||(u-=1),a+=1}return u<=0?n.apply(this,o):d(u,f(e,o,n))}}var h=l(function(e,t){return 1===e?o(t):d(e,f(e,[],t))}),v=o(function(e){return h(e.length,function(){var t=0,n=arguments[0],r=arguments[arguments.length-1],o=Array.prototype.slice.call(arguments,0);return o[0]=function(){var e=n.apply(this,p(arguments,[t,r]));return t+=1,e},e.apply(this,o)})});function g(e){return function t(n,i,u){switch(arguments.length){case 0:return t;case 1:return r(n)?t:l(function(t,r){return e(n,t,r)});case 2:return r(n)&&r(i)?t:r(n)?l(function(t,n){return e(t,i,n)}):r(i)?l(function(t,r){return e(n,t,r)}):o(function(t){return e(n,i,t)});default:return r(n)&&r(i)&&r(u)?t:r(n)&&r(i)?l(function(t,n){return e(t,n,u)}):r(n)&&r(u)?l(function(t,n){return e(t,i,n)}):r(i)&&r(u)?l(function(t,r){return e(n,t,r)}):r(n)?o(function(t){return e(t,i,u)}):r(i)?o(function(t){return e(n,t,u)}):r(u)?o(function(t){return e(n,i,t)}):e(n,i,u)}}}var y=g(function(e,t,n){if(t>=n.length||t<-n.length)return n;var r=(t<0?n.length:0)+t,o=p(n);return o[r]=e(n[r]),o}),b=Array.isArray||function(e){return null!=e&&e.length>=0&&"[object Array]"===Object.prototype.toString.call(e)};function m(e){return"function"==typeof e["@@transducer/step"]}function x(e,t,n){return function(){if(0===arguments.length)return n();var r=Array.prototype.slice.call(arguments,0),o=r.pop();if(!b(o)){for(var i=0;ie?t:e});function C(e,t){for(var n=0,r=t.length,o=Array(r);n0&&(e.hasOwnProperty(0)&&e.hasOwnProperty(e.length-1)))))}),F=function(){function e(e){this.f=e}return e.prototype["@@transducer/init"]=function(){throw new Error("init not implemented on XWrap")},e.prototype["@@transducer/result"]=function(e){return e},e.prototype["@@transducer/step"]=function(e,t){return this.f(e,t)},e}();function D(e){return new F(e)}var P=l(function(e,t){return d(e.length,function(){return e.apply(t,arguments)})});function R(e,t,n){for(var r=n.next();!r.done;){if((t=e["@@transducer/step"](t,r.value))&&t["@@transducer/reduced"]){t=t["@@transducer/value"];break}r=n.next()}return e["@@transducer/result"](t)}function T(e,t,n,r){return e["@@transducer/result"](n[r](P(e["@@transducer/step"],e),t))}var j="undefined"!=typeof Symbol?Symbol.iterator:"@@iterator";function I(e,t,n){if("function"==typeof e&&(e=D(e)),k(n))return function(e,t,n){for(var r=0,o=n.length;r=0;)z(t=W[n],e)&&!U(r,t)&&(r[r.length]=t),n-=1;return r}:function(e){return Object(e)!==e?[]:Object.keys(e)}),$=l(x(["fantasy-land/map","map"],N,function(e,t){switch(Object.prototype.toString.call(t)){case"[object Function]":return h(t.length,function(){return e.call(this,t.apply(this,arguments))});case"[object Object]":return I(function(n,r){return n[r]=e(t[r]),n},{},q(t));default:return C(e,t)}})),H=l(function(e,t){for(var n=t,r=0;r=0?r:0);no?1:0}),de=g(function(e,t,n){var r={};for(var o in n)r[o]=n[o];return r[e]=t,r}),fe=Number.isInteger||function(e){return e<<0===e},he=o(function(e){return null==e}),ve=g(function e(t,n,r){if(0===t.length)return n;var o=t[0];if(t.length>1){var i=!he(r)&&z(o,r)?r[o]:fe(t[1])?[]:{};n=e(Array.prototype.slice.call(t,1),n,i)}if(fe(o)&&b(r)){var u=[].concat(r);return u[o]=n,u}return de(o,n,r)}),ge=l(function(e,t){switch(e){case 0:return function(){return t.call(this)};case 1:return function(e){return t.call(this,e)};case 2:return function(e,n){return t.call(this,e,n)};case 3:return function(e,n,r){return t.call(this,e,n,r)};case 4:return function(e,n,r,o){return t.call(this,e,n,r,o)};case 5:return function(e,n,r,o,i){return t.call(this,e,n,r,o,i)};case 6:return function(e,n,r,o,i,u){return t.call(this,e,n,r,o,i,u)};case 7:return function(e,n,r,o,i,u,a){return t.call(this,e,n,r,o,i,u,a)};case 8:return function(e,n,r,o,i,u,a,s){return t.call(this,e,n,r,o,i,u,a,s)};case 9:return function(e,n,r,o,i,u,a,s,l){return t.call(this,e,n,r,o,i,u,a,s,l)};case 10:return function(e,n,r,o,i,u,a,s,l,c){return t.call(this,e,n,r,o,i,u,a,s,l,c)};default:throw new Error("First argument to nAry must be a non-negative integer no greater than ten")}}),ye=o(function(e){return ge(2,e)});function be(e){return"[object Function]"===Object.prototype.toString.call(e)}var me=l(function(e,t){var n=h(e,t);return h(e,function(){return I(re,$(n,arguments[0]),Array.prototype.slice.call(arguments,1))})}),xe=o(function(e){return me(e.length,e)}),we=l(function(e,t){return be(e)?function(){return e.apply(this,arguments)&&t.apply(this,arguments)}:xe(Z)(e,t)}),Ee=o(function(e){return h(e.length,e)}),_e=Ee(function(e){return e.apply(this,Array.prototype.slice.call(arguments,1))});function Oe(e){return function t(n){for(var r,o,i,u=[],a=0,s=n.length;at)throw new Error("min must not be greater than max in clamp(min, max, value)");return nt?t:n});function ke(e){return new RegExp(e.source,(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.sticky?"y":"")+(e.unicode?"u":""))}var Fe=o(function(e){return null===e?"Null":void 0===e?"Undefined":Object.prototype.toString.call(e).slice(8,-1)});function De(e,t,n,r){var o=function(o){for(var i=t.length,u=0;u=0;){if(n[i]===e)return r[i]===t;i-=1}switch(o){case"Map":return e.size===t.size&&Ge(e.entries(),t.entries(),n.concat([e]),r.concat([t]));case"Set":return e.size===t.size&&Ge(e.values(),t.values(),n.concat([e]),r.concat([t]));case"Arguments":case"Array":case"Object":case"Boolean":case"Number":case"String":case"Date":case"Error":case"RegExp":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"ArrayBuffer":break;default:return!1}var u=q(e);if(u.length!==q(t).length)return!1;var a=n.concat([e]),s=r.concat([t]);for(i=u.length-1;i>=0;){var l=u[i];if(!z(l,t)||!Je(t[l],e[l],a,s))return!1;i-=1}return!0}var Xe=l(function(e,t){return Je(e,t,[],[])});function Ze(e,t,n){var r,o;if("function"==typeof e.indexOf)switch(typeof t){case"number":if(0===t){for(r=1/t;n=0}function et(e){return'"'+e.replace(/\\/g,"\\\\").replace(/[\b]/g,"\\b").replace(/\f/g,"\\f").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v").replace(/\0/g,"\\0").replace(/"/g,'\\"')+'"'}var tt=function(e){return(e<10?"0":"")+e},nt="function"==typeof Date.prototype.toISOString?function(e){return e.toISOString()}:function(e){return e.getUTCFullYear()+"-"+tt(e.getUTCMonth()+1)+"-"+tt(e.getUTCDate())+"T"+tt(e.getUTCHours())+":"+tt(e.getUTCMinutes())+":"+tt(e.getUTCSeconds())+"."+(e.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z"};function rt(e){return function(){return!e.apply(this,arguments)}}function ot(e,t){for(var n=0,r=t.length,o=[];n":e(r,o)},o=function(e,t){return C(function(t){return et(t)+": "+r(e[t])},t.slice().sort())};switch(Object.prototype.toString.call(t)){case"[object Arguments]":return"(function() { return arguments; }("+C(r,t).join(", ")+"))";case"[object Array]":return"["+C(r,t).concat(o(t,st(function(e){return/^\d+$/.test(e)},q(t)))).join(", ")+"]";case"[object Boolean]":return"object"==typeof t?"new Boolean("+r(t.valueOf())+")":t.toString();case"[object Date]":return"new Date("+(isNaN(t.valueOf())?r(NaN):et(nt(t)))+")";case"[object Null]":return"null";case"[object Number]":return"object"==typeof t?"new Number("+r(t.valueOf())+")":1/t==-1/0?"-0":t.toString(10);case"[object String]":return"object"==typeof t?"new String("+r(t.valueOf())+")":et(t);case"[object Undefined]":return"undefined";default:if("function"==typeof t.toString){var i=t.toString();if("[object Object]"!==i)return i}return"{"+o(t,q(t)).join(", ")+"}"}}(e,[])}),ct=l(function(e,t){if(b(e)){if(b(t))return e.concat(t);throw new TypeError(lt(t)+" is not an array")}if(A(e)){if(A(t))return e+t;throw new TypeError(lt(t)+" is not a string")}if(null!=e&&be(e["fantasy-land/concat"]))return e["fantasy-land/concat"](t);if(null!=e&&be(e.concat))return e.concat(t);throw new TypeError(lt(e)+' does not have a method named "concat" or "fantasy-land/concat"')}),pt=o(function(e){return d(J(S,0,$(function(e){return e[0].length},e)),function(){for(var t=0;t10)throw new Error("Constructor with greater than ten arguments");return 0===e?function(){return new t}:Ee(ge(e,function(e,n,r,o,i,u,a,s,l,c){switch(arguments.length){case 1:return new t(e);case 2:return new t(e,n);case 3:return new t(e,n,r);case 4:return new t(e,n,r,o);case 5:return new t(e,n,r,o,i);case 6:return new t(e,n,r,o,i,u);case 7:return new t(e,n,r,o,i,u,a);case 8:return new t(e,n,r,o,i,u,a,s);case 9:return new t(e,n,r,o,i,u,a,s,l);case 10:return new t(e,n,r,o,i,u,a,s,l,c)}}))}),ft=o(function(e){return dt(e.length,e)}),ht=l(Qe),vt=l(function(e,t){return h(J(S,0,G("length",t)),function(){var n=arguments,r=this;return e.apply(r,C(function(e){return e.apply(r,n)},t))})}),gt=function(){function e(e,t,n,r){this.valueFn=e,this.valueAcc=t,this.keyFn=n,this.xf=r,this.inputs={}}return e.prototype["@@transducer/init"]=E.init,e.prototype["@@transducer/result"]=function(e){var t;for(t in this.inputs)if(z(t,this.inputs)&&(e=this.xf["@@transducer/step"](e,this.inputs[t]))["@@transducer/reduced"]){e=e["@@transducer/value"];break}return this.inputs=null,this.xf["@@transducer/result"](e)},e.prototype["@@transducer/step"]=function(e,t){var n=this.keyFn(t);return this.inputs[n]=this.inputs[n]||[n,this.valueAcc],this.inputs[n][1]=this.valueFn(this.inputs[n][1],t),e},e}(),yt=f(4,[],x([],f(4,[],function(e,t,n,r){return new gt(e,t,n,r)}),function(e,t,n,r){return I(function(r,o){var i=n(o);return r[i]=e(z(i,r)?r[i]:t,o),r},{},r)})),bt=yt(function(e,t){return e+1},0),mt=c(-1),xt=l(function(e,t){return null==t||t!=t?e:t}),wt=g(function(e,t,n){var r=e(t),o=e(n);return r>o?-1:r0?(this.n-=1,e):this.xf["@@transducer/step"](e,t)},e}(),Dt=l(x(["drop"],l(function(e,t){return new Ft(e,t)}),function(e,t){return Ne(Math.max(0,e),1/0,t)})),Pt=function(){function e(e,t){this.xf=t,this.n=e,this.i=0}return e.prototype["@@transducer/init"]=E.init,e.prototype["@@transducer/result"]=E.result,e.prototype["@@transducer/step"]=function(e,t){this.i+=1;var n=0===this.n?e:this.xf["@@transducer/step"](e,t);return this.n>=0&&this.i>=this.n?w(n):n},e}(),Rt=l(x(["take"],l(function(e,t){return new Pt(e,t)}),function(e,t){return Ne(0,e<0?1/0:e,t)}));var Tt=function(){function e(e,t){this.xf=t,this.pos=0,this.full=!1,this.acc=new Array(e)}return e.prototype["@@transducer/init"]=E.init,e.prototype["@@transducer/result"]=function(e){return this.acc=null,this.xf["@@transducer/result"](e)},e.prototype["@@transducer/step"]=function(e,t){return this.full&&(e=this.xf["@@transducer/step"](e,this.acc[this.pos])),this.store(t),e},e.prototype.store=function(e){this.acc[this.pos]=e,this.pos+=1,this.pos===this.acc.length&&(this.pos=0,this.full=!0)},e}(),jt=l(x([],l(function(e,t){return new Tt(e,t)}),function(e,t){return Rt(e=0&&e(t[n]);)n-=1;return Ne(0,n+1,t)})),Nt=function(){function e(e,t){this.xf=t,this.pred=e,this.lastValue=void 0,this.seenFirstValue=!1}return e.prototype["@@transducer/init"]=E.init,e.prototype["@@transducer/result"]=E.result,e.prototype["@@transducer/step"]=function(e,t){var n=!1;return this.seenFirstValue?this.pred(this.lastValue,t)&&(n=!0):this.seenFirstValue=!0,this.lastValue=t,n?e:this.xf["@@transducer/step"](e,t)},e}(),zt=l(function(e,t){return new Nt(e,t)}),Bt=l(function(e,t){var n=e<0?t.length+e:e;return A(t)?t.charAt(n):t[n]}),Vt=Bt(-1),Lt=l(x([],zt,function(e,t){var n=[],r=1,o=t.length;if(0!==o)for(n[0]=t[0];r=0?t.length-e:0,t)}),Gt=l(function(e,t){return Xe(Yt(e.length,t),e)}),Jt=g(function(e,t,n){return Xe(e(t),e(n))}),Xt=g(function(e,t,n){return Xe(t[e],n[e])}),Zt=l(function e(t,n){var r,o,i,u={};for(o in n)i=typeof(r=t[o]),u[o]="function"===i?r(n[o]):r&&"object"===i?e(r,n[o]):n[o];return u}),Qt=function(){function e(e,t){this.xf=t,this.f=e,this.found=!1}return e.prototype["@@transducer/init"]=E.init,e.prototype["@@transducer/result"]=function(e){return this.found||(e=this.xf["@@transducer/step"](e,void 0)),this.xf["@@transducer/result"](e)},e.prototype["@@transducer/step"]=function(e,t){return this.f(t)&&(this.found=!0,e=w(this.xf["@@transducer/step"](e,t))),e},e}(),en=l(x(["find"],l(function(e,t){return new Qt(e,t)}),function(e,t){for(var n=0,r=t.length;n=0;){if(e(t[n]))return t[n];n-=1}})),un=function(){function e(e,t){this.xf=t,this.f=e,this.idx=-1,this.lastIdx=-1}return e.prototype["@@transducer/init"]=E.init,e.prototype["@@transducer/result"]=function(e){return this.xf["@@transducer/result"](this.xf["@@transducer/step"](e,this.lastIdx))},e.prototype["@@transducer/step"]=function(e,t){return this.idx+=1,this.f(t)&&(this.lastIdx=this.idx),e},e}(),an=l(x([],l(function(e,t){return new un(e,t)}),function(e,t){for(var n=t.length-1;n>=0;){if(e(t[n]))return n;n-=1}return-1})),sn=o(Oe(!0)),ln=o(function(e){return h(e.length,function(t,n){var r=Array.prototype.slice.call(arguments,0);return r[0]=n,r[1]=t,e.apply(this,r)})}),cn=l(Me("forEach",function(e,t){for(var n=t.length,r=0;rt}),gn=l(function(e,t){return e>=t}),yn=l(z),bn=l(function(e,t){return e in t}),mn=Bt(0);function xn(e){return e}var wn=o(xn),En=g(function(e,t,n){return h(Math.max(e.length,t.length,n.length),function(){return e.apply(this,arguments)?t.apply(this,arguments):n.apply(this,arguments)})}),_n=c(1),On=yt(function(e,t){return t},null),Sn=l(function(e,t){return"function"!=typeof t.indexOf||b(t)?Ze(t,e,0):t.indexOf(e)}),Cn=Ne(0,-1),An=g(function(e,t,n){return ot(function(t){return He(e,t,n)},t)}),kn=g(function(e,t,n){e=e=0?e:n.length;var r=Array.prototype.slice.call(n,0);return r.splice(e,0,t),r}),Fn=g(function(e,t,n){return e=e=0?e:n.length,[].concat(Array.prototype.slice.call(n,0,e),t,Array.prototype.slice.call(n,e))});function Dn(e,t,n){var r,o=typeof e;switch(o){case"string":case"number":return 0===e&&1/e==-1/0?!!n._items["-0"]||(t&&(n._items["-0"]=!0),!1):null!==n._nativeSet?t?(r=n._nativeSet.size,n._nativeSet.add(e),n._nativeSet.size===r):n._nativeSet.has(e):o in n._items?e in n._items[o]||(t&&(n._items[o][e]=!0),!1):(t&&(n._items[o]={},n._items[o][e]=!0),!1);case"boolean":if(o in n._items){var i=e?1:0;return!!n._items[o][i]||(t&&(n._items[o][i]=!0),!1)}return t&&(n._items[o]=e?[!1,!0]:[!0,!1]),!1;case"function":return null!==n._nativeSet?t?(r=n._nativeSet.size,n._nativeSet.add(e),n._nativeSet.size===r):n._nativeSet.has(e):o in n._items?!!Qe(e,n._items[o])||(t&&n._items[o].push(e),!1):(t&&(n._items[o]=[e]),!1);case"undefined":return!!n._items[o]||(t&&(n._items[o]=!0),!1);case"object":if(null===e)return!!n._items.null||(t&&(n._items.null=!0),!1);default:return(o=Object.prototype.toString.call(e))in n._items?!!Qe(e,n._items[o])||(t&&n._items[o].push(e),!1):(t&&(n._items[o]=[e]),!1)}}var Pn=function(){function e(){this._nativeSet="function"==typeof Set?new Set:null,this._items={}}return e.prototype.add=function(e){return!Dn(e,!0,this)},e.prototype.has=function(e){return Dn(e,!1,this)},e}(),Rn=l(function(e,t){for(var n,r,o=new Pn,i=[],u=0;ut.length?(n=e,r=t):(n=t,r=e),Tn(ot(ln(Qe)(n),r))}),In=l(Me("intersperse",function(e,t){for(var n=[],r=0,o=t.length;r=0;){if(Xe(t[n],e))return n;n-=1}return-1}return t.lastIndexOf(e)});function Xn(e){return"[object Number]"===Object.prototype.toString.call(e)}var Zn=o(function(e){return null!=e&&Xn(e.length)?e.length:NaN}),Qn=l(function(e,t){return function(n){return function(r){return $(function(e){return t(e,r)},n(e(r)))}}}),er=o(function(e){return Qn(Bt(e),Ct(e))}),tr=o(function(e){return Qn(H(e),ve(e))}),nr=o(function(e){return Qn(Y(e),de(e))}),rr=l(function(e,t){return e=0;)i=e(n[r],i[0]),o[r]=i[1],r-=1;return[o,i[0]]}),ar=l(function(e,t){return I(function(n,r){return n[r]=e(t[r],r,t),n},{},q(t))}),sr=l(function(e,t){return t.match(e)||[]}),lr=l(function(e,t){return fe(e)?!fe(t)||t<1?NaN:(e%t+t)%t:NaN}),cr=g(function(e,t,n){return e(n)>e(t)?n:t}),pr=J(c,0),dr=o(function(e){return pr(e)/e.length}),fr=o(function(e){var t=e.length;if(0===t)return NaN;var n=2-t%2,r=(t-n)/2;return dr(Array.prototype.slice.call(e,0).sort(function(e,t){return et?1:0}).slice(r,r+n))}),hr=l(function(e,t){var n={};return d(t.length,function(){var r=e.apply(this,arguments);return z(r,n)||(n[r]=t.apply(this,arguments)),n[r]})}),vr=hr(function(){return lt(arguments)}),gr=l(function(e,t){return Mn({},e,t)}),yr=o(function(e){return Mn.apply(null,[{}].concat(e))}),br=g(function(e,t,n){var r,o={};for(r in t)z(r,t)&&(o[r]=z(r,n)?e(r,t[r],n[r]):t[r]);for(r in n)z(r,n)&&!z(r,o)&&(o[r]=n[r]);return o}),mr=g(function e(t,n,r){return br(function(n,r,o){return it(r)&&it(o)?e(t,r,o):t(n,r,o)},n,r)}),xr=l(function(e,t){return mr(function(e,t,n){return t},e,t)}),wr=l(function(e,t){return mr(function(e,t,n){return n},e,t)}),Er=g(function(e,t,n){return mr(function(t,n,r){return e(n,r)},t,n)}),_r=g(function(e,t,n){return br(function(t,n,r){return e(n,r)},t,n)}),Or=l(function(e,t){return t0&&e(H(t,n))}),qr=l(function(e,t){for(var n={},r=0;r=0;)t=e(n[r],t),r-=1;return t}),uo=f(4,[],function(e,t,n,r){return I(function(n,r){return e(n,r)?t(n,r):w(n)},n,r)}),ao=o(w),so=l(function(e,t){var n,r=Number(t),o=0;if(r<0||isNaN(r))throw new RangeError("n must be a non-negative number");for(n=new Array(r);oo?1:0})}),yo=l(function(e,t){return Array.prototype.slice.call(t,0).sort(function(t,n){for(var r=0,o=0;0===r&&o=0&&e(t[n]);)n-=1;return Ne(n+1,1/0,t)}),Ao=function(){function e(e,t){this.xf=t,this.f=e}return e.prototype["@@transducer/init"]=E.init,e.prototype["@@transducer/result"]=E.result,e.prototype["@@transducer/step"]=function(e,t){return this.f(t)?this.xf["@@transducer/step"](e,t):w(e)},e}(),ko=l(x(["takeWhile"],l(function(e,t){return new Ao(e,t)}),function(e,t){for(var n=0,r=t.length;n{};let n,a="";switch(e){case o.TRACE:case o.INFO:n=window.console.log,a="color: white; background-color: #3166A2;";break;case r.DEBUG:case o.WARNING:n=window.console.warn,a="color: white; background-color: #E9B606;";break;case o.ERROR:case o.FATAL:n=window.console.error,a="color: white; background-color: #FF0000;"}let s=`${a&&u?"%c":""}[${i[e].toUpperCase()}]`;return a&&u?n.bind(window.console,s,a):n.bind(window.console,s)}u=!1;let c={setDebugLevel(e){s=e},setLogLevel(e){a=e}};Object.defineProperties(c,{trace:{get:()=>l(o.TRACE,a),configurable:!1,enumerable:!1},info:{get:()=>l(o.INFO,a),configurable:!1,enumerable:!1},warning:{get:()=>l(o.WARNING,a),configurable:!1,enumerable:!1},error:{get:()=>l(o.ERROR,a),configurable:!1,enumerable:!1},fatal:{get:()=>l(o.FATAL,a),configurable:!1,enumerable:!1},debug:{get:()=>l(r.DEBUG,s),configurable:!1,enumerable:!1}}),Object.freeze(c),t.default=c},function(e,t,n){var r; +window.dash_table=function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=57)}([function(e,t,n){e.exports=n(26)()},function(e,t){e.exports=window.React},function(e,t,n){"use strict";function r(e){return null!=e&&"object"==typeof e&&!0===e["@@functional/placeholder"]}function o(e){return function t(n){return 0===arguments.length||r(n)?t:e.apply(this,arguments)}}n.r(t);var i=o(function(e){return function(){return e}}),u=i(!1),a=i(!0),s={"@@functional/placeholder":!0};function l(e){return function t(n,i){switch(arguments.length){case 0:return t;case 1:return r(n)?t:o(function(t){return e(n,t)});default:return r(n)&&r(i)?t:r(n)?o(function(t){return e(t,i)}):r(i)?o(function(t){return e(n,t)}):e(n,i)}}}var c=l(function(e,t){return Number(e)+Number(t)});function p(e,t){var n;e=e||[],t=t||[];var r=e.length,o=t.length,i=[];for(n=0;n=arguments.length)?s=t[a]:(s=arguments[i],i+=1),o[a]=s,r(s)||(u-=1),a+=1}return u<=0?n.apply(this,o):d(u,f(e,o,n))}}var h=l(function(e,t){return 1===e?o(t):d(e,f(e,[],t))}),v=o(function(e){return h(e.length,function(){var t=0,n=arguments[0],r=arguments[arguments.length-1],o=Array.prototype.slice.call(arguments,0);return o[0]=function(){var e=n.apply(this,p(arguments,[t,r]));return t+=1,e},e.apply(this,o)})});function g(e){return function t(n,i,u){switch(arguments.length){case 0:return t;case 1:return r(n)?t:l(function(t,r){return e(n,t,r)});case 2:return r(n)&&r(i)?t:r(n)?l(function(t,n){return e(t,i,n)}):r(i)?l(function(t,r){return e(n,t,r)}):o(function(t){return e(n,i,t)});default:return r(n)&&r(i)&&r(u)?t:r(n)&&r(i)?l(function(t,n){return e(t,n,u)}):r(n)&&r(u)?l(function(t,n){return e(t,i,n)}):r(i)&&r(u)?l(function(t,r){return e(n,t,r)}):r(n)?o(function(t){return e(t,i,u)}):r(i)?o(function(t){return e(n,t,u)}):r(u)?o(function(t){return e(n,i,t)}):e(n,i,u)}}}var y=g(function(e,t,n){if(t>=n.length||t<-n.length)return n;var r=(t<0?n.length:0)+t,o=p(n);return o[r]=e(n[r]),o}),b=Array.isArray||function(e){return null!=e&&e.length>=0&&"[object Array]"===Object.prototype.toString.call(e)};function m(e){return"function"==typeof e["@@transducer/step"]}function x(e,t,n){return function(){if(0===arguments.length)return n();var r=Array.prototype.slice.call(arguments,0),o=r.pop();if(!b(o)){for(var i=0;ie?t:e});function C(e,t){for(var n=0,r=t.length,o=Array(r);n0&&(e.hasOwnProperty(0)&&e.hasOwnProperty(e.length-1)))))}),F=function(){function e(e){this.f=e}return e.prototype["@@transducer/init"]=function(){throw new Error("init not implemented on XWrap")},e.prototype["@@transducer/result"]=function(e){return e},e.prototype["@@transducer/step"]=function(e,t){return this.f(e,t)},e}();function D(e){return new F(e)}var P=l(function(e,t){return d(e.length,function(){return e.apply(t,arguments)})});function R(e,t,n){for(var r=n.next();!r.done;){if((t=e["@@transducer/step"](t,r.value))&&t["@@transducer/reduced"]){t=t["@@transducer/value"];break}r=n.next()}return e["@@transducer/result"](t)}function T(e,t,n,r){return e["@@transducer/result"](n[r](P(e["@@transducer/step"],e),t))}var j="undefined"!=typeof Symbol?Symbol.iterator:"@@iterator";function M(e,t,n){if("function"==typeof e&&(e=D(e)),k(n))return function(e,t,n){for(var r=0,o=n.length;r=0;)z(t=W[n],e)&&!U(r,t)&&(r[r.length]=t),n-=1;return r}:function(e){return Object(e)!==e?[]:Object.keys(e)}),$=l(x(["fantasy-land/map","map"],N,function(e,t){switch(Object.prototype.toString.call(t)){case"[object Function]":return h(t.length,function(){return e.call(this,t.apply(this,arguments))});case"[object Object]":return M(function(n,r){return n[r]=e(t[r]),n},{},q(t));default:return C(e,t)}})),H=l(function(e,t){for(var n=t,r=0;r=0?r:0);no?1:0}),de=g(function(e,t,n){var r={};for(var o in n)r[o]=n[o];return r[e]=t,r}),fe=Number.isInteger||function(e){return e<<0===e},he=o(function(e){return null==e}),ve=g(function e(t,n,r){if(0===t.length)return n;var o=t[0];if(t.length>1){var i=!he(r)&&z(o,r)?r[o]:fe(t[1])?[]:{};n=e(Array.prototype.slice.call(t,1),n,i)}if(fe(o)&&b(r)){var u=[].concat(r);return u[o]=n,u}return de(o,n,r)}),ge=l(function(e,t){switch(e){case 0:return function(){return t.call(this)};case 1:return function(e){return t.call(this,e)};case 2:return function(e,n){return t.call(this,e,n)};case 3:return function(e,n,r){return t.call(this,e,n,r)};case 4:return function(e,n,r,o){return t.call(this,e,n,r,o)};case 5:return function(e,n,r,o,i){return t.call(this,e,n,r,o,i)};case 6:return function(e,n,r,o,i,u){return t.call(this,e,n,r,o,i,u)};case 7:return function(e,n,r,o,i,u,a){return t.call(this,e,n,r,o,i,u,a)};case 8:return function(e,n,r,o,i,u,a,s){return t.call(this,e,n,r,o,i,u,a,s)};case 9:return function(e,n,r,o,i,u,a,s,l){return t.call(this,e,n,r,o,i,u,a,s,l)};case 10:return function(e,n,r,o,i,u,a,s,l,c){return t.call(this,e,n,r,o,i,u,a,s,l,c)};default:throw new Error("First argument to nAry must be a non-negative integer no greater than ten")}}),ye=o(function(e){return ge(2,e)});function be(e){return"[object Function]"===Object.prototype.toString.call(e)}var me=l(function(e,t){var n=h(e,t);return h(e,function(){return M(re,$(n,arguments[0]),Array.prototype.slice.call(arguments,1))})}),xe=o(function(e){return me(e.length,e)}),we=l(function(e,t){return be(e)?function(){return e.apply(this,arguments)&&t.apply(this,arguments)}:xe(Z)(e,t)}),Ee=o(function(e){return h(e.length,e)}),_e=Ee(function(e){return e.apply(this,Array.prototype.slice.call(arguments,1))});function Oe(e){return function t(n){for(var r,o,i,u=[],a=0,s=n.length;at)throw new Error("min must not be greater than max in clamp(min, max, value)");return nt?t:n});function ke(e){return new RegExp(e.source,(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.sticky?"y":"")+(e.unicode?"u":""))}var Fe=o(function(e){return null===e?"Null":void 0===e?"Undefined":Object.prototype.toString.call(e).slice(8,-1)});function De(e,t,n,r){var o=function(o){for(var i=t.length,u=0;u=0;){if(n[i]===e)return r[i]===t;i-=1}switch(o){case"Map":return e.size===t.size&&Ge(e.entries(),t.entries(),n.concat([e]),r.concat([t]));case"Set":return e.size===t.size&&Ge(e.values(),t.values(),n.concat([e]),r.concat([t]));case"Arguments":case"Array":case"Object":case"Boolean":case"Number":case"String":case"Date":case"Error":case"RegExp":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"ArrayBuffer":break;default:return!1}var u=q(e);if(u.length!==q(t).length)return!1;var a=n.concat([e]),s=r.concat([t]);for(i=u.length-1;i>=0;){var l=u[i];if(!z(l,t)||!Je(t[l],e[l],a,s))return!1;i-=1}return!0}var Xe=l(function(e,t){return Je(e,t,[],[])});function Ze(e,t,n){var r,o;if("function"==typeof e.indexOf)switch(typeof t){case"number":if(0===t){for(r=1/t;n=0}function et(e){return'"'+e.replace(/\\/g,"\\\\").replace(/[\b]/g,"\\b").replace(/\f/g,"\\f").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v").replace(/\0/g,"\\0").replace(/"/g,'\\"')+'"'}var tt=function(e){return(e<10?"0":"")+e},nt="function"==typeof Date.prototype.toISOString?function(e){return e.toISOString()}:function(e){return e.getUTCFullYear()+"-"+tt(e.getUTCMonth()+1)+"-"+tt(e.getUTCDate())+"T"+tt(e.getUTCHours())+":"+tt(e.getUTCMinutes())+":"+tt(e.getUTCSeconds())+"."+(e.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z"};function rt(e){return function(){return!e.apply(this,arguments)}}function ot(e,t){for(var n=0,r=t.length,o=[];n":e(r,o)},o=function(e,t){return C(function(t){return et(t)+": "+r(e[t])},t.slice().sort())};switch(Object.prototype.toString.call(t)){case"[object Arguments]":return"(function() { return arguments; }("+C(r,t).join(", ")+"))";case"[object Array]":return"["+C(r,t).concat(o(t,st(function(e){return/^\d+$/.test(e)},q(t)))).join(", ")+"]";case"[object Boolean]":return"object"==typeof t?"new Boolean("+r(t.valueOf())+")":t.toString();case"[object Date]":return"new Date("+(isNaN(t.valueOf())?r(NaN):et(nt(t)))+")";case"[object Null]":return"null";case"[object Number]":return"object"==typeof t?"new Number("+r(t.valueOf())+")":1/t==-1/0?"-0":t.toString(10);case"[object String]":return"object"==typeof t?"new String("+r(t.valueOf())+")":et(t);case"[object Undefined]":return"undefined";default:if("function"==typeof t.toString){var i=t.toString();if("[object Object]"!==i)return i}return"{"+o(t,q(t)).join(", ")+"}"}}(e,[])}),ct=l(function(e,t){if(b(e)){if(b(t))return e.concat(t);throw new TypeError(lt(t)+" is not an array")}if(A(e)){if(A(t))return e+t;throw new TypeError(lt(t)+" is not a string")}if(null!=e&&be(e["fantasy-land/concat"]))return e["fantasy-land/concat"](t);if(null!=e&&be(e.concat))return e.concat(t);throw new TypeError(lt(e)+' does not have a method named "concat" or "fantasy-land/concat"')}),pt=o(function(e){return d(J(S,0,$(function(e){return e[0].length},e)),function(){for(var t=0;t10)throw new Error("Constructor with greater than ten arguments");return 0===e?function(){return new t}:Ee(ge(e,function(e,n,r,o,i,u,a,s,l,c){switch(arguments.length){case 1:return new t(e);case 2:return new t(e,n);case 3:return new t(e,n,r);case 4:return new t(e,n,r,o);case 5:return new t(e,n,r,o,i);case 6:return new t(e,n,r,o,i,u);case 7:return new t(e,n,r,o,i,u,a);case 8:return new t(e,n,r,o,i,u,a,s);case 9:return new t(e,n,r,o,i,u,a,s,l);case 10:return new t(e,n,r,o,i,u,a,s,l,c)}}))}),ft=o(function(e){return dt(e.length,e)}),ht=l(Qe),vt=l(function(e,t){return h(J(S,0,G("length",t)),function(){var n=arguments,r=this;return e.apply(r,C(function(e){return e.apply(r,n)},t))})}),gt=function(){function e(e,t,n,r){this.valueFn=e,this.valueAcc=t,this.keyFn=n,this.xf=r,this.inputs={}}return e.prototype["@@transducer/init"]=E.init,e.prototype["@@transducer/result"]=function(e){var t;for(t in this.inputs)if(z(t,this.inputs)&&(e=this.xf["@@transducer/step"](e,this.inputs[t]))["@@transducer/reduced"]){e=e["@@transducer/value"];break}return this.inputs=null,this.xf["@@transducer/result"](e)},e.prototype["@@transducer/step"]=function(e,t){var n=this.keyFn(t);return this.inputs[n]=this.inputs[n]||[n,this.valueAcc],this.inputs[n][1]=this.valueFn(this.inputs[n][1],t),e},e}(),yt=f(4,[],x([],f(4,[],function(e,t,n,r){return new gt(e,t,n,r)}),function(e,t,n,r){return M(function(r,o){var i=n(o);return r[i]=e(z(i,r)?r[i]:t,o),r},{},r)})),bt=yt(function(e,t){return e+1},0),mt=c(-1),xt=l(function(e,t){return null==t||t!=t?e:t}),wt=g(function(e,t,n){var r=e(t),o=e(n);return r>o?-1:r0?(this.n-=1,e):this.xf["@@transducer/step"](e,t)},e}(),Dt=l(x(["drop"],l(function(e,t){return new Ft(e,t)}),function(e,t){return Ne(Math.max(0,e),1/0,t)})),Pt=function(){function e(e,t){this.xf=t,this.n=e,this.i=0}return e.prototype["@@transducer/init"]=E.init,e.prototype["@@transducer/result"]=E.result,e.prototype["@@transducer/step"]=function(e,t){this.i+=1;var n=0===this.n?e:this.xf["@@transducer/step"](e,t);return this.n>=0&&this.i>=this.n?w(n):n},e}(),Rt=l(x(["take"],l(function(e,t){return new Pt(e,t)}),function(e,t){return Ne(0,e<0?1/0:e,t)}));var Tt=function(){function e(e,t){this.xf=t,this.pos=0,this.full=!1,this.acc=new Array(e)}return e.prototype["@@transducer/init"]=E.init,e.prototype["@@transducer/result"]=function(e){return this.acc=null,this.xf["@@transducer/result"](e)},e.prototype["@@transducer/step"]=function(e,t){return this.full&&(e=this.xf["@@transducer/step"](e,this.acc[this.pos])),this.store(t),e},e.prototype.store=function(e){this.acc[this.pos]=e,this.pos+=1,this.pos===this.acc.length&&(this.pos=0,this.full=!0)},e}(),jt=l(x([],l(function(e,t){return new Tt(e,t)}),function(e,t){return Rt(e=0&&e(t[n]);)n-=1;return Ne(0,n+1,t)})),Nt=function(){function e(e,t){this.xf=t,this.pred=e,this.lastValue=void 0,this.seenFirstValue=!1}return e.prototype["@@transducer/init"]=E.init,e.prototype["@@transducer/result"]=E.result,e.prototype["@@transducer/step"]=function(e,t){var n=!1;return this.seenFirstValue?this.pred(this.lastValue,t)&&(n=!0):this.seenFirstValue=!0,this.lastValue=t,n?e:this.xf["@@transducer/step"](e,t)},e}(),zt=l(function(e,t){return new Nt(e,t)}),Bt=l(function(e,t){var n=e<0?t.length+e:e;return A(t)?t.charAt(n):t[n]}),Vt=Bt(-1),Lt=l(x([],zt,function(e,t){var n=[],r=1,o=t.length;if(0!==o)for(n[0]=t[0];r=0?t.length-e:0,t)}),Gt=l(function(e,t){return Xe(Yt(e.length,t),e)}),Jt=g(function(e,t,n){return Xe(e(t),e(n))}),Xt=g(function(e,t,n){return Xe(t[e],n[e])}),Zt=l(function e(t,n){var r,o,i,u={};for(o in n)i=typeof(r=t[o]),u[o]="function"===i?r(n[o]):r&&"object"===i?e(r,n[o]):n[o];return u}),Qt=function(){function e(e,t){this.xf=t,this.f=e,this.found=!1}return e.prototype["@@transducer/init"]=E.init,e.prototype["@@transducer/result"]=function(e){return this.found||(e=this.xf["@@transducer/step"](e,void 0)),this.xf["@@transducer/result"](e)},e.prototype["@@transducer/step"]=function(e,t){return this.f(t)&&(this.found=!0,e=w(this.xf["@@transducer/step"](e,t))),e},e}(),en=l(x(["find"],l(function(e,t){return new Qt(e,t)}),function(e,t){for(var n=0,r=t.length;n=0;){if(e(t[n]))return t[n];n-=1}})),un=function(){function e(e,t){this.xf=t,this.f=e,this.idx=-1,this.lastIdx=-1}return e.prototype["@@transducer/init"]=E.init,e.prototype["@@transducer/result"]=function(e){return this.xf["@@transducer/result"](this.xf["@@transducer/step"](e,this.lastIdx))},e.prototype["@@transducer/step"]=function(e,t){return this.idx+=1,this.f(t)&&(this.lastIdx=this.idx),e},e}(),an=l(x([],l(function(e,t){return new un(e,t)}),function(e,t){for(var n=t.length-1;n>=0;){if(e(t[n]))return n;n-=1}return-1})),sn=o(Oe(!0)),ln=o(function(e){return h(e.length,function(t,n){var r=Array.prototype.slice.call(arguments,0);return r[0]=n,r[1]=t,e.apply(this,r)})}),cn=l(Ie("forEach",function(e,t){for(var n=t.length,r=0;rt}),gn=l(function(e,t){return e>=t}),yn=l(z),bn=l(function(e,t){return e in t}),mn=Bt(0);function xn(e){return e}var wn=o(xn),En=g(function(e,t,n){return h(Math.max(e.length,t.length,n.length),function(){return e.apply(this,arguments)?t.apply(this,arguments):n.apply(this,arguments)})}),_n=c(1),On=yt(function(e,t){return t},null),Sn=l(function(e,t){return"function"!=typeof t.indexOf||b(t)?Ze(t,e,0):t.indexOf(e)}),Cn=Ne(0,-1),An=g(function(e,t,n){return ot(function(t){return He(e,t,n)},t)}),kn=g(function(e,t,n){e=e=0?e:n.length;var r=Array.prototype.slice.call(n,0);return r.splice(e,0,t),r}),Fn=g(function(e,t,n){return e=e=0?e:n.length,[].concat(Array.prototype.slice.call(n,0,e),t,Array.prototype.slice.call(n,e))});function Dn(e,t,n){var r,o=typeof e;switch(o){case"string":case"number":return 0===e&&1/e==-1/0?!!n._items["-0"]||(t&&(n._items["-0"]=!0),!1):null!==n._nativeSet?t?(r=n._nativeSet.size,n._nativeSet.add(e),n._nativeSet.size===r):n._nativeSet.has(e):o in n._items?e in n._items[o]||(t&&(n._items[o][e]=!0),!1):(t&&(n._items[o]={},n._items[o][e]=!0),!1);case"boolean":if(o in n._items){var i=e?1:0;return!!n._items[o][i]||(t&&(n._items[o][i]=!0),!1)}return t&&(n._items[o]=e?[!1,!0]:[!0,!1]),!1;case"function":return null!==n._nativeSet?t?(r=n._nativeSet.size,n._nativeSet.add(e),n._nativeSet.size===r):n._nativeSet.has(e):o in n._items?!!Qe(e,n._items[o])||(t&&n._items[o].push(e),!1):(t&&(n._items[o]=[e]),!1);case"undefined":return!!n._items[o]||(t&&(n._items[o]=!0),!1);case"object":if(null===e)return!!n._items.null||(t&&(n._items.null=!0),!1);default:return(o=Object.prototype.toString.call(e))in n._items?!!Qe(e,n._items[o])||(t&&n._items[o].push(e),!1):(t&&(n._items[o]=[e]),!1)}}var Pn=function(){function e(){this._nativeSet="function"==typeof Set?new Set:null,this._items={}}return e.prototype.add=function(e){return!Dn(e,!0,this)},e.prototype.has=function(e){return Dn(e,!1,this)},e}(),Rn=l(function(e,t){for(var n,r,o=new Pn,i=[],u=0;ut.length?(n=e,r=t):(n=t,r=e),Tn(ot(ln(Qe)(n),r))}),Mn=l(Ie("intersperse",function(e,t){for(var n=[],r=0,o=t.length;r=0;){if(Xe(t[n],e))return n;n-=1}return-1}return t.lastIndexOf(e)});function Xn(e){return"[object Number]"===Object.prototype.toString.call(e)}var Zn=o(function(e){return null!=e&&Xn(e.length)?e.length:NaN}),Qn=l(function(e,t){return function(n){return function(r){return $(function(e){return t(e,r)},n(e(r)))}}}),er=o(function(e){return Qn(Bt(e),Ct(e))}),tr=o(function(e){return Qn(H(e),ve(e))}),nr=o(function(e){return Qn(Y(e),de(e))}),rr=l(function(e,t){return e=0;)i=e(n[r],i[0]),o[r]=i[1],r-=1;return[o,i[0]]}),ar=l(function(e,t){return M(function(n,r){return n[r]=e(t[r],r,t),n},{},q(t))}),sr=l(function(e,t){return t.match(e)||[]}),lr=l(function(e,t){return fe(e)?!fe(t)||t<1?NaN:(e%t+t)%t:NaN}),cr=g(function(e,t,n){return e(n)>e(t)?n:t}),pr=J(c,0),dr=o(function(e){return pr(e)/e.length}),fr=o(function(e){var t=e.length;if(0===t)return NaN;var n=2-t%2,r=(t-n)/2;return dr(Array.prototype.slice.call(e,0).sort(function(e,t){return et?1:0}).slice(r,r+n))}),hr=l(function(e,t){var n={};return d(t.length,function(){var r=e.apply(this,arguments);return z(r,n)||(n[r]=t.apply(this,arguments)),n[r]})}),vr=hr(function(){return lt(arguments)}),gr=l(function(e,t){return In({},e,t)}),yr=o(function(e){return In.apply(null,[{}].concat(e))}),br=g(function(e,t,n){var r,o={};for(r in t)z(r,t)&&(o[r]=z(r,n)?e(r,t[r],n[r]):t[r]);for(r in n)z(r,n)&&!z(r,o)&&(o[r]=n[r]);return o}),mr=g(function e(t,n,r){return br(function(n,r,o){return it(r)&&it(o)?e(t,r,o):t(n,r,o)},n,r)}),xr=l(function(e,t){return mr(function(e,t,n){return t},e,t)}),wr=l(function(e,t){return mr(function(e,t,n){return n},e,t)}),Er=g(function(e,t,n){return mr(function(t,n,r){return e(n,r)},t,n)}),_r=g(function(e,t,n){return br(function(t,n,r){return e(n,r)},t,n)}),Or=l(function(e,t){return t0&&e(H(t,n))}),qr=l(function(e,t){for(var n={},r=0;r=0;)t=e(n[r],t),r-=1;return t}),uo=f(4,[],function(e,t,n,r){return M(function(n,r){return e(n,r)?t(n,r):w(n)},n,r)}),ao=o(w),so=l(function(e,t){var n,r=Number(t),o=0;if(r<0||isNaN(r))throw new RangeError("n must be a non-negative number");for(n=new Array(r);oo?1:0})}),yo=l(function(e,t){return Array.prototype.slice.call(t,0).sort(function(t,n){for(var r=0,o=0;0===r&&o=0&&e(t[n]);)n-=1;return Ne(n+1,1/0,t)}),Ao=function(){function e(e,t){this.xf=t,this.f=e}return e.prototype["@@transducer/init"]=E.init,e.prototype["@@transducer/result"]=E.result,e.prototype["@@transducer/step"]=function(e,t){return this.f(t)?this.xf["@@transducer/step"](e,t):w(e)},e}(),ko=l(x(["takeWhile"],l(function(e,t){return new Ao(e,t)}),function(e,t){for(var n=0,r=t.length;n{};let n,a="";switch(e){case o.TRACE:case o.INFO:n=window.console.log,a="color: white; background-color: #3166A2;";break;case r.DEBUG:case o.WARNING:n=window.console.warn,a="color: white; background-color: #E9B606;";break;case o.ERROR:case o.FATAL:n=window.console.error,a="color: white; background-color: #FF0000;"}let s=`${a&&u?"%c":""}[${i[e].toUpperCase()}]`;return a&&u?n.bind(window.console,s,a):n.bind(window.console,s)}u=!1;let c={setDebugLevel(e){s=e},setLogLevel(e){a=e}};Object.defineProperties(c,{trace:{get:()=>l(o.TRACE,a),configurable:!1,enumerable:!1},info:{get:()=>l(o.INFO,a),configurable:!1,enumerable:!1},warning:{get:()=>l(o.WARNING,a),configurable:!1,enumerable:!1},error:{get:()=>l(o.ERROR,a),configurable:!1,enumerable:!1},fatal:{get:()=>l(o.FATAL,a),configurable:!1,enumerable:!1},debug:{get:()=>l(r.DEBUG,s),configurable:!1,enumerable:!1}}),Object.freeze(c),t.default=c},function(e,t,n){var r; /*! Copyright (c) 2017 Jed Watson. Licensed under the MIT License (MIT), see @@ -9,10 +9,10 @@ window.dash_table=function(e){var t={};function n(r){if(t[r])return t[r].exports Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */ -!function(){"use strict";var n={}.hasOwnProperty;function o(){for(var e=[],t=0;t(0,r.isEqualArgs)(n,o)?t:(n=o)&&(t=e(...o))},t.memoizeAll=function(e){const t=[];return(...n)=>{let o=t.find(e=>(0,r.isEqualArgs)(e.args,n));return(o||t[t.push({args:n,result:e(...n)})-1]).result}};var r=n(12)},function(e,t){e.exports=window.ReactDOM},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.defaultIsNully=t.SortDirection=void 0;var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2));var o=t.SortDirection=void 0;!function(e){e.Ascending="asc",e.Descending="desc",e.None="none"}(o||(t.SortDirection=o={}));const i=t.defaultIsNully=(e=>void 0===e||null===e);t.default=((e,t,n=i)=>t.length?r.sortWith(r.map(e=>e.direction===o.Descending?r.comparator((t,r)=>{const o=e.columnId,i=t[o],u=r[o];return!n(i)&&(!!n(u)||i>u)}):r.comparator((t,r)=>{const o=e.columnId,i=t[o],u=r[o];return!n(i)&&(!!n(u)||i=0&&s.splice(t,1)}function h(e){var t=document.createElement("style");return void 0===e.attrs.type&&(e.attrs.type="text/css"),v(t,e.attrs),d(e,t),t}function v(e,t){Object.keys(t).forEach(function(n){e.setAttribute(n,t[n])})}function g(e,t){var n,r,o,i;if(t.transform&&e.css){if(!(i=t.transform(e.css)))return function(){};e.css=i}if(t.singleton){var s=a++;n=u||(u=h(t)),r=b.bind(null,n,s,!1),o=b.bind(null,n,s,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=function(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",v(t,e.attrs),d(e,t),t}(t),r=function(e,t,n){var r=n.css,o=n.sourceMap,i=void 0===t.convertToAbsoluteUrls&&o;(t.convertToAbsoluteUrls||i)&&(r=l(r));o&&(r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */");var u=new Blob([r],{type:"text/css"}),a=e.href;e.href=URL.createObjectURL(u),a&&URL.revokeObjectURL(a)}.bind(null,n,t),o=function(){f(n),n.href&&URL.revokeObjectURL(n.href)}):(n=h(t),r=function(e,t){var n=t.css,r=t.media;r&&e.setAttribute("media",r);if(e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}.bind(null,n),o=function(){f(n)});return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else o()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=o()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var n=p(e,t);return c(n,t),function(e){for(var o=[],i=0;ie===this.dataframe[t])||(this.__dataframe=n,this.__indices=o,this.target.update({viewportDataframe:n,viewportIndices:o}))}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){let t=null,n=[];for(;e.length;){e=e.replace(/^\s+/,"");let o=r.default.filter(e=>t&&e.when&&-1!==e.when.indexOf(t.name));if(o.length||(o=r.default),!(t=o.find(t=>t.regexp.test(e))||null))return{lexemes:n,valid:!1,error:e};const i=(e.match(t.regexp)||[])[0];n.push({lexeme:t,value:i}),e=e.substring(i.length)}return{lexemes:n,valid:!0}};var r=function(e){return e&&e.__esModule?e:{default:e}}(n(17))},function(e,t,n){"use strict";function r(e){return void 0!==e&&null!==e&&"object"==typeof e&&e.constructor===Object}function o(e,t,n=!1){return e===t||i(Object.values(e),Object.values(t),n)}function i(e,t,n=!1){return!!e&&e.length===t.length&&!!e.every((e,u)=>{const a=t[u];return e===a||n&&(Array.isArray(e)&&Array.isArray(a)&&i(e,a,n)||r(e)&&r(a)&&o(e,a,n))})}Object.defineProperty(t,"__esModule",{value:!0}),t.isEqual=o,t.isEqualArgs=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e&&e.__esModule?e:{default:e}}(n(3));class o{constructor(e){this.name=e}get rules(){const e=this.sheet;return Array.from(e.rules||e.cssRules)}addRule(e,t){this.sheet.addRule?this.sheet.addRule(e,t):this.sheet.insertRule(`${e} { ${t} }`,0)}deleteRule(e){this.sheet.deleteRule(e)}findRule(e){const t=this.rules,n=t.findIndex(t=>t.selectorText===e);return-1===n?null:{rule:t[n],index:n}}get sheet(){return(this.__stylesheet=this.__stylesheet||(()=>{const e=document.createElement("style");return e.type="text/css",e.id=this.name,document.getElementsByTagName("head")[0].appendChild(e),e})()).sheet}}class i{constructor(e){this.prefix=e,this.stylesheet=new o(`${e}-dynamic-inline.css`)}static unit(e,t="px"){return i.hasUnit(e)?e:`${e}${t}`}static hasUnit(e){return"string"==typeof e&&/^\d+(\.\d+)?(px|em|rem)$/.test(e)}deleteRule(e){e=`${this.prefix} ${e}`;const t=this.stylesheet.findRule(e);t&&this.stylesheet.deleteRule(t.index)}setRule(e,t){e=`${this.prefix} ${e}`;const n=this.stylesheet.findRule(e);if(n){if(n.rule.cssText===t||n.rule.cssText===`${e} { ${t} }`)return;this.stylesheet.deleteRule(n.index)}this.stylesheet.addRule(e,t),r.default.trace("stylesheet",e,t)}}t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.colIsEditable=function(e,t){return e&&(!r.has("editable",t)||t.editable)};var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isPrintableChar=function(e){return 32===e||e>=48&&e<=57||e>=96&&e<=111||e>=186&&e<=192||e>=219&&e<=222||e>=226||e>=65&&e<=90},t.isMetaKey=function(e){return-1!==o.indexOf(e)},t.isNavKey=function(e){return-1!==u.indexOf(e)},t.isArrowKey=function(e){return-1!==i.indexOf(e)},t.isCtrlKey=function(e){const t=[];window.navigator.platform.includes("Mac")?t.push(r.COMMAND_LEFT,r.COMMAND_RIGHT,r.COMMAND_FIREFOX):t.push(r.CONTROL);return t.includes(e)},t.isCtrlMetaKey=function(e){return[r.CONTROL,r.COMMAND_LEFT,r.COMMAND_RIGHT,r.COMMAND_FIREFOX].includes(e)};const r=t.KEY_CODES={MOUSE_LEFT:1,MOUSE_RIGHT:3,MOUSE_MIDDLE:2,BACKSPACE:8,COMMA:188,INSERT:45,DELETE:46,END:35,ENTER:13,ESCAPE:27,CONTROL:17,COMMAND_LEFT:91,COMMAND_RIGHT:93,COMMAND_FIREFOX:224,ALT:18,HOME:36,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,SPACE:32,SHIFT:16,CAPS_LOCK:20,TAB:9,ARROW_RIGHT:39,ARROW_LEFT:37,ARROW_UP:38,ARROW_DOWN:40,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,A:65,X:88,C:67,V:86},o=[r.ARROW_DOWN,r.ARROW_UP,r.ARROW_LEFT,r.ARROW_RIGHT,r.HOME,r.END,r.DELETE,r.BACKSPACE,r.F1,r.F2,r.F3,r.F4,r.F5,r.F6,r.F7,r.F8,r.F9,r.F10,r.F11,r.F12,r.TAB,r.PAGE_DOWN,r.PAGE_UP,r.ENTER,r.ESCAPE,r.SHIFT,r.CAPS_LOCK,r.ALT],i=[r.ARROW_DOWN,r.ARROW_UP,r.ARROW_LEFT,r.ARROW_RIGHT],u=[...i,r.TAB,r.ENTER];t.isCtrlDown=(e=>(e.ctrlKey||e.metaKey)&&!e.altKey)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.deleteRow=function(e,t){const n=t.active_cell,o=t.dataframe,i=t.end_cell,u=t.selected_cell,a=t.selected_rows,s=t.start_cell,l={dataframe:r.remove(e,1,o)};r.is(Array,n)&&n[0]===e&&(l.active_cell=[]);r.is(Array,i)&&i[0]===e&&(l.end_cell=[]);r.is(Array,u)&&u[0]===e&&(l.selected_cell=[]);r.is(Array,s)&&s[0]===e&&(l.start_cell=[0,0]);r.is(Array,a)&&r.contains(e,a)&&(l.selected_rows=r.without([e],a));return l},t.deleteColumn=function(e,t,n){const i=n.columns,u=n.dataframe;var a=o(e,t,n);const s=a.groupIndexFirst,l=a.groupIndexLast,c=r.slice(s,l+1,r.pluck("id",i));return{columns:r.remove(s,1+l-s,i),dataframe:r.map(r.omit(c),u),active_cell:[],end_cell:[],selected_cell:[],start_cell:[0]}},t.editColumnName=function(e,t,n){const i=n.columns;var u=o(e,t,n);const a=u.groupIndexFirst,s=u.groupIndexLast,l=window.prompt("Enter a new column name");let c=r.clone(i);return r.range(a,s+1).map(e=>{let n;n="Array"===r.type(i[e].name)?[e,"name",t]:[e,"name"],c=r.set(r.lensPath(n),l,c)}),{columns:c}};var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2));function o(e,t,n){const o=n.columns;let i,u;"Null"!==r.type(t)?(i=e.name[t],u=r.pluck(t,r.pluck("name",o))):(i=e.name,u=r.pluck("name",o));const a=r.findIndex(r.propEq("id",e.id),o);let s=a,l=a;for(;u[s-1]===i;)s--;for(;u[l+1]===i;)l++;return{groupIndexFirst:s,groupIndexLast:l}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LexemeType=void 0;var r=function(){return function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,o=!1,i=void 0;try{for(var u,a=e[Symbol.iterator]();!(r=(u=a.next()).done)&&(n.push(u.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{!r&&a.return&&a.return()}finally{if(o)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),o=function(e){return e&&e.__esModule?e:{default:e}}(n(3));var i=t.LexemeType=void 0;!function(e){e.And="and",e.BlockClose="close-block",e.BlockOpen="open-block",e.BinaryOperator="logical-binary-operator",e.Expression="expression",e.Or="or",e.Operand="operand",e.UnaryNot="unary-not",e.UnaryOperator="logical-unary-operator"}(i||(t.LexemeType=i={}));const u={resolve:(e,t)=>{if(o.default.trace("resolve -> exp",e,t),/^('.*')|(".*")$/.test(t.value))return t.value.slice(1,t.value.length-1);if(!/^\w+\(.*\)$/.test(t.value))return e[t.value];{const e=t.value.match(/^(\w+)\((.*)\)$/);if(!e)throw Error();{var n=r(e,3);const t=n[1],o=n[2];switch(t){case"num":return parseInt(o,10);case"str":default:return o}}}},regexp:/^(((num|str)\([^()]*\))|'([^()']|\\')+'|"([^()"]|\\")+"|\w+)/},a=[{evaluate:(e,t)=>{o.default.trace("evalute -> &&",e,t);const n=t,r=n.left.lexeme.evaluate(e,n.left),i=n.right.lexeme.evaluate(e,n.right);return r&&i},name:i.And,priority:2,regexp:/^(and\s|&&)/i,syntaxer:(e,t,n)=>Object.assign({left:e.slice(0,n),right:e.slice(n+1)},t)},{evaluate:(e,t)=>{o.default.trace("evalute -> ||",e,t);const n=t;return n.left.lexeme.evaluate(e,n.left)||n.right.lexeme.evaluate(e,n.right)},name:i.Or,priority:3,regexp:/^(or\s|\|\|)/i,syntaxer:(e,t,n)=>Object.assign({left:e.slice(0,n),right:e.slice(n+1)},t)},{name:i.BlockClose,nesting:-1,regexp:/^\)/},{evaluate:(e,t)=>{o.default.trace("evaluate -> ()",e,t);const n=t;return n.block.lexeme.evaluate(e,n.block)},name:i.BlockOpen,nesting:1,priority:1,regexp:/^\(/,syntaxer:e=>Object.assign({block:e.slice(1,e.length-1)},e[0]),when:[i.UnaryNot]},Object.assign({name:i.Operand},u),{evaluate:(e,t)=>{o.default.trace("evaluate -> binary",e,t);const n=t,r=n.left.lexeme.resolve(e,n.left),i=n.right.lexeme.resolve(e,n.right);switch(o.default.trace(`opValue: ${r}, expValue: ${i}`),t.value.toLowerCase()){case"eq":case"=":return r===i;case"gt":case">":return r>i;case"ge":case">=":return r>=i;case"lt":case"<":return r=|<=|>|<|!=|=|ge|le|gt|lt|eq|ne)/i,syntaxer:e=>{var t=r(e,3);let n=t[0],o=t[1],i=t[2];return Object.assign({left:n,right:i},o)},when:[i.Operand]},{evaluate:(e,t)=>{o.default.trace("evaluate -> unary",e,t);const n=t,r=n.block.lexeme.resolve(e,n.block);switch(t.value.toLowerCase()){case"is even":return"number"==typeof r&&r%2==0;case"is nil":return void 0===r||null===r;case"is bool":return"boolean"==typeof r;case"is odd":return"number"==typeof r&&r%2==1;case"is num":return"number"==typeof r;case"is object":return null!==r&&"object"==typeof r;case"is str":return"string"==typeof r;case"is prime":return"number"==typeof r&&(e=>{if(2===e)return!0;if(e<2||e%2==0)return!1;for(let t=3;t*t<=e;t+=2)if(e%t==0)return!1;return!0})(r);default:throw new Error}},name:i.UnaryOperator,priority:0,regexp:/^((is nil)|(is odd)|(is even)|(is bool)|(is num)|(is object)|(is str)|(is prime))/i,syntaxer:e=>{var t=r(e,2);let n=t[0],o=t[1];return Object.assign({block:n},o)},when:[i.Operand]},{evaluate:(e,t)=>{o.default.trace("evaluate -> unary not",e,t);const n=t;return!n.block.lexeme.evaluate(e,n.block)},name:i.UnaryNot,priority:1.5,regexp:/^!/,syntaxer:e=>Object.assign({block:e.slice(1,e.length)},e[0]),when:[i.UnaryNot]},Object.assign({name:i.Expression,when:[i.BinaryOperator]},u)];t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=u(n(3)),o=u(n(11)),i=u(n(19));function u(e){return e&&e.__esModule?e:{default:e}}t.default=class{constructor(e){this.query=e,this.evaluate=(e=>{if(!this.isValid||!this.tree){const e=`unable to evaluate target: syntax tree is invalid for query=${this.query}`;throw r.default.error(e),new Error(e)}const t=this.tree.lexeme.evaluate;return!!t&&t(e,this.tree)}),this.filter=(e=>e.filter(this.evaluate)),this.result=(0,i.default)((0,o.default)(this.query))}get isValid(){return this.result.valid}get tree(){return this.result.tree}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e&&e.__esModule?e:{default:e}}(n(3));const o=e=>{let t=0;const n=e.map(e=>{const n=Object.assign({},e,{nesting:t});return t+=e.lexeme.nesting||0,n}),i=n.filter(e=>0===e.nesting&&"number"==typeof e.lexeme.priority).sort((e,t)=>(t.lexeme.priority||-1)-(e.lexeme.priority||-1))[0];r.default.trace("parser -> pivot",i,e);const u=n.indexOf(i);if(i.lexeme.syntaxer){let t=i.lexeme.syntaxer(e,i,u);return Array.isArray(t.left)&&(t.left=o(t.left)),Array.isArray(t.right)&&(t.right=o(t.right)),Array.isArray(t.block)&&(t.block=o(t.block)),t}throw new Error(i.lexeme.name)};t.default=(e=>{const t=e.lexemes;if(!e.valid)return{valid:!1,error:`lexer -- ${e.error}`};try{return{tree:o(t),valid:!0}}catch(e){return{valid:!1,error:e}}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=((e,t=null)=>{if(t=t||(()=>{for(t=e;t&&"td"!==t.nodeName.toLowerCase();)t=t.parentElement;return t})(),!e||!t)return;let n=e;for(;"relative"!==getComputedStyle(n).position&&"sticky"!==getComputedStyle(n).position&&n.parentElement;)n=n.parentElement;let r=e;for(;"relative"!==getComputedStyle(r).position&&r.parentElement;)r=r.parentElement;const o=n.getBoundingClientRect(),i=r.getBoundingClientRect(),u=t.getBoundingClientRect(),a=u.left-o.left+n.scrollLeft,s=u.top-o.top+n.scrollTop+u.height;e.style.width=`${u.width}px`,e.style.top=`${s}px`,e.style.left=`${a}px`,e.style.position="absolute",u.top+u.height/2>i.bottom||u.top-u.height/2i.left+i.width?e.style.display="none":e.style.display="block"})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=function(e){return e&&e.__esModule?e:{default:e}}(r);class i extends r.PureComponent{constructor(e){super(e),this.handleChange=(e=>this.setState({value:e.target.value})),this.submit=(()=>this.state.value!==this.props.value&&this.props.submit(this.state.value)),this.state={value:e.value}}get propsWithDefaults(){return this.props}render(){var e=this.propsWithDefaults;const t=e.stopPropagation,n=e.updateOnBlur,r=e.updateOnSubmit;let i={onBlur:n?this.submit:void 0,onKeyDown:t?e=>e.stopPropagation():void 0,onSubmit:r?this.submit:void 0};return o.default.createElement("input",Object.assign({ref:"input",type:"text",value:this.state.value||"",onChange:this.handleChange},i))}}t.default=i,i.defaultProps={stopPropagation:!1,updateOnBlur:!0,updateOnSubmit:!0}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(this.props,[]);return function(e){c.forEach(function(t){return delete e[t]})}(o),o.className=this.props.inputClassName,o.id=this.state.inputId,o.style=n,u.default.createElement("div",{className:this.props.className,style:t},this.renderStyles(),u.default.createElement("input",r({},o,{ref:this.inputRef})),u.default.createElement("div",{ref:this.sizerRef,style:l},e),this.props.placeholder?u.default.createElement("div",{ref:this.placeHolderSizerRef,style:l},this.props.placeholder):null)}}]),t}();h.propTypes={className:a.default.string,defaultValue:a.default.any,extraWidth:a.default.oneOfType([a.default.number,a.default.string]),id:a.default.string,injectStyles:a.default.bool,inputClassName:a.default.string,inputRef:a.default.func,inputStyle:a.default.object,minWidth:a.default.oneOfType([a.default.number,a.default.string]),onAutosize:a.default.func,onChange:a.default.func,placeholder:a.default.string,placeholderIsMinWidth:a.default.bool,style:a.default.object,value:a.default.any},h.defaultProps={minWidth:1,injectStyles:!0},t.default=h},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Table=void 0;var r=u(n(24)),o=u(n(3)),i=u(n(26));function u(e){return e&&e.__esModule?e:{default:e}}o.default.setDebugLevel(r.default.debugLevel),o.default.setLogLevel(r.default.logLevel),t.Table=i.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3),o=function(e){return e&&e.__esModule?e:{default:e}}(n(25));const i="dash_debug",u="dash_log";t.default=class{static get searchParams(){return new URL(window.location.href).searchParams||{get:()=>null}}static get debugLevel(){const e=this.searchParams.get(i)||o.default.get(i);return e&&r.DebugLevel[e]||r.DebugLevel.NONE}static get logLevel(){const e=this.searchParams.get(u)||o.default.get(u);return e&&r.LogLevel[e]||r.LogLevel.ERROR}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=864e5,o=63072e7;class i{static delete(e,t="",n="/"){let o=new Date((new Date).getTime()-r).toUTCString();document.cookie=`${e}=;expires=${o};domain=${t};path=${n}`}static get(e){if(!e.length)return;return e=e.toLowerCase(),(document.cookie.split(";").map(e=>{let t=e.split("=");return{id:t[0].trim(),value:t[1]}}).find(t=>e===t.id.toLocaleLowerCase())||{}).value}static set(e,t,n="",r="/"){let u=`${e}=${t};expires=${new Date((new Date).getTime()+o).toUTCString()};domain=${n};path=${r}`;i.get(e)&&i.delete(e,n,r),document.cookie=u}}t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.propTypes=t.defaultProps=void 0;var r=n(1),o=a(r),i=a(n(0)),u=a(n(29));function a(e){return e&&e.__esModule?e:{default:e}}n(58);class s extends r.Component{render(){return o.default.createElement(u.default,this.props)}}t.default=s;const l=t.defaultProps={virtualization:"fe",virtualization_settings:{displayed_pages:1,current_page:0,page_size:250},navigation:"page",filtering:!1,filtering_settings:"",filtering_type:"basic",filtering_types:["basic"],sorting:!1,sorting_type:"single",sorting_settings:[],virtual_dataframe:[],virtual_dataframe_indices:[],column_conditional_dropdowns:[],column_static_dropdown:[],column_conditional_styles:[],column_static_style:[],row_conditional_styles:[],row_static_style:{},changed_data:{},dataframe:[],columns:[],editable:!1,active_cell:[],index_name:"",types:{},merged_styles:{},selected_cell:[[]],selected_rows:[],row_selectable:!1,table_style:[],base_styles:{numeric:{"text-align":"right","font-family":"'Droid Sans Mono', Courier, monospace"},string:{"text-align":"left"},input:{padding:0,margin:0,width:"80px",border:"none","font-size":"1rem"},"input-active":{outline:"#7FDBFF auto 3px"},table:{},thead:{},th:{},td:{}}},c=t.propTypes={active_cell:i.default.array,columns:i.default.arrayOf(i.default.object),dataframe:i.default.arrayOf(i.default.object),dataframe_previous:i.default.arrayOf(i.default.object),dataframe_timestamp:i.default.any,editable:i.default.bool,end_cell:i.default.arrayOf(i.default.number),id:i.default.string.isRequired,is_focused:i.default.bool,merge_duplicate_headers:i.default.bool,n_fixed_columns:i.default.number,n_fixed_rows:i.default.number,row_deletable:i.default.bool,row_selectable:i.default.oneOf(["single","multi",!1]),selected_cell:i.default.arrayOf(i.default.arrayOf(i.default.number)),selected_rows:i.default.arrayOf(i.default.number),setProps:i.default.any,start_cell:i.default.arrayOf(i.default.number),style_as_list_view:i.default.bool,table_style:i.default.arrayOf(i.default.shape({selector:i.default.string,rule:i.default.string})),virtualization:i.default.oneOf(["fe","be",!0,!1]),virtualization_settings:i.default.shape({displayed_pages:i.default.number,current_page:i.default.number,page_size:i.default.number}),navigation:i.default.string,column_conditional_dropdowns:i.default.arrayOf(i.default.shape({id:i.default.string,dropdowns:i.default.arrayOf(i.default.shape({condition:i.default.string,dropdown:i.default.arrayOf(i.default.shape({label:i.default.string,value:i.default.any}))}))})),column_static_dropdown:i.default.arrayOf(i.default.shape({id:i.default.string,dropdown:i.default.arrayOf(i.default.shape({label:i.default.string,value:i.default.any}))})),column_conditional_style:i.default.arrayOf(i.default.shape({id:i.default.string,styles:i.default.arrayOf(i.default.shape({condition:i.default.string,style:i.default.object}))})),column_static_style:i.default.arrayOf(i.default.shape({id:i.default.string,style:i.default.object})),row_conditional_styles:i.default.arrayOf(i.default.shape({condition:i.default.string,style:i.default.object})),row_static_style:i.default.object,filtering:i.default.oneOf(["fe","be",!0,!1]),filtering_settings:i.default.string,filtering_type:i.default.oneOf(["basic"]),filtering_types:i.default.arrayOf(i.default.oneOf(["basic"])),sorting:i.default.oneOf(["fe","be",!0,!1]),sorting_type:i.default.oneOf(["single","multi"]),sorting_settings:i.default.arrayOf(i.default.shape({columnId:i.default.oneOfType([i.default.string,i.default.number]),direction:i.default.oneOf(["asc","desc"])})),sorting_treat_empty_string_as_none:i.default.bool,virtual_dataframe:i.default.arrayOf(i.default.object),virtual_dataframe_indices:i.default.arrayOf(i.default.number),dropdown_properties:i.default.any};s.defaultProps=l,s.propTypes=c},function(e,t,n){"use strict";var r=n(28);function o(){}e.exports=function(){function e(e,t,n,o,i,u){if(u!==r){var a=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw a.name="Invariant Violation",a}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t};return n.checkPropTypes=o,n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=c(r),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),u=n(5),a=c(n(30)),s=c(n(34)),l=c(n(50));function c(e){return e&&e.__esModule?e:{default:e}}n(51),n(54),n(56);t.default=class extends r.Component{constructor(e){super(e),this.__adapter=(0,u.memoizeOne)(()=>new l.default(this)),this.__setProps=(0,u.memoizeOne)(e=>e?t=>{if(i.has("dataframe",t)){const e=this.props.dataframe;t.dataframe_timestamp=Date.now(),t.dataframe_previous=e}e(t)}:e=>this.setState(e)),this.__virtualizer=(0,u.memoizeOne)((e,t)=>a.default.getVirtualizer(this.adapter))}get setProps(){return this.__setProps(this.props.setProps)}render(){const e=this.setProps,t=this.virtualizer;return t.refresh(),o.default.createElement(s.default,Object.assign({},i.mergeAll([this.props,this.state,{setProps:e,virtualizer:t}])))}get adapter(){return this.__adapter()}get virtualizer(){var e=this.props;const t=e.virtualization,n=e.virtualization_settings;return this.__virtualizer(t,n)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=u(n(31)),o=u(n(32)),i=u(n(33));function u(e){return e&&e.__esModule?e:{default:e}}t.default=class{static getVirtualizer(e){switch(e.virtualization){case!1:return new i.default(e);case!0:case"fe":return new o.default(e);case"be":return new r.default(e);default:throw new Error(`Unknown virtualization type: '${e.virtualization}'`)}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e&&e.__esModule?e:{default:e}}(n(10));t.default=class extends r.default{constructor(e){super(e)}getDataframe(){var e=this.target;return{dataframe:e.dataframe,indices:e.indices}}get offset(){return 0}loadNext(){let e=this.target.settings;e.current_page++,this.target.update({settings:e})}loadPrevious(){let e=this.target.settings;e.current_page<=0||(e.current_page--,this.target.update({settings:e}))}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e&&e.__esModule?e:{default:e}}(n(10));t.default=class extends r.default{constructor(e){super(e)}getDataframe(){var e=this.target;let t=e.settings,n=e.dataframe,r=e.indices,o=Math.min(t.current_page,Math.floor(n.length/t.page_size));return this.firstIndex=t.page_size*o,this.lastIndex=Math.min(this.firstIndex+t.displayed_pages*t.page_size,n.length),{dataframe:n.slice(this.firstIndex,this.lastIndex),indices:r.slice(this.firstIndex,this.lastIndex)}}get offset(){return this.firstIndex}loadNext(){var e=this.target;let t=e.settings,n=e.dataframe,r=Math.floor(n.length/t.page_size);t.current_page>=r||(t.current_page++,this.target.update({settings:t}))}loadPrevious(){let e=this.target.settings;e.current_page<=0||(e.current_page--,this.target.update({settings:e}))}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),o=function(e){return e&&e.__esModule?e:{default:e}}(n(10));t.default=class extends o.default{constructor(e){super(e),this.refresh()}getDataframe(){let e=this.target.dataframe;return{dataframe:e,indices:r.range(0,e.length)}}get offset(){return 0}loadNext(){}loadPrevious(){}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=m(r),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),u=m(n(13)),a=n(14),s=n(15),l=n(35),c=n(36),p=m(c),d=m(n(3)),f=n(5),h=m(n(11)),v=m(n(39)),g=m(n(42)),y=m(n(20)),b=m(n(46));function m(e){return e&&e.__esModule?e:{default:e}}const x=i.sort((e,t)=>e-t);t.default=class extends r.Component{constructor(e){super(e),this.getLexerResult=(0,f.memoizeOne)(h.default),this.handleClickOutside=(e=>{const t=this.$el;t&&!t.contains(e.target)&&this.props.is_focused&&this.props.setProps({is_focused:!1})}),this.handlePaste=(e=>{const t=this.$el;t&&t.contains(document.activeElement)&&this.onPaste(e)}),this.handleResize=(()=>{var e=this.refs;const t=e.r0c0,n=e.r0c1,r=e.r1c0,o=e.r1c1;let i=n.querySelectorAll("tr");t.querySelectorAll("tr").forEach((e,t)=>{const n=i[t];e.style.height=getComputedStyle(n).height});let u=o.querySelectorAll("tr > th:first-of-type");r.querySelectorAll("tr > th:first-of-type").forEach((e,t)=>{const n=u[t].parentElement;e.parentElement.style.height=getComputedStyle(n).height});const a=o.querySelector("tr > td:first-of-type");if(a){const e=a.parentElement;this.stylesheet.setRule(".cell-1-0 tr",`height: ${getComputedStyle(e).height}`)}}),this.handleKeyDown=(e=>{var t=this.props;const n=t.active_cell,r=t.columns,o=t.setProps,i=t.is_focused,u=t.editable;if(d.default.trace(`handleKeyDown: ${e.key}`),(0,s.isCtrlMetaKey)(e.keyCode))return;const l=(0,s.isCtrlDown)(e);l&&e.keyCode===s.KEY_CODES.V||e.keyCode===s.KEY_CODES.C&&l&&!i||(e.keyCode!==s.KEY_CODES.ESCAPE?e.keyCode!==s.KEY_CODES.ENTER||i||!(0,a.colIsEditable)(u,r[n[1]])?i&&e.keyCode!==s.KEY_CODES.TAB&&e.keyCode!==s.KEY_CODES.ENTER||((0,s.isNavKey)(e.keyCode)?this.switchCell(e):e.keyCode===s.KEY_CODES.BACKSPACE||e.keyCode===s.KEY_CODES.DELETE?this.deleteCell(e):this.props.is_focused||!(0,a.colIsEditable)(u,r[n[1]])||(0,s.isMetaKey)(e.keyCode)||o({is_focused:!0})):o({is_focused:!0}):o({is_focused:!1}))}),this.switchCell=(e=>{const t=e;var n=this.props;const r=n.active_cell,o=n.columns,u=n.row_deletable,a=n.row_selectable,l=n.selected_cell,c=n.setProps,p=n.virtualizer.dataframe;e.preventDefault(),this.$el.focus();const d=l.length>1,f=t.keyCode===s.KEY_CODES.ENTER||t.keyCode===s.KEY_CODES.TAB;if(d&&f)return void c({is_focused:!1,active_cell:this.getNextCell(t,{currentCell:r,restrictToSelection:!0})});if(!t.shiftKey){const e=this.getNextCell(t,{currentCell:r,restrictToSelection:!1});return void c({is_focused:!1,selected_cell:[e],active_cell:e})}let h=[],v=[];const g=x(i.uniq(i.pluck(0,l))),y=x(i.uniq(i.pluck(1,l))),b=g[0],m=y[0],w=g[g.length-1],E=y[y.length-1],_=(u?1:0)+(a?1:0),O=[];o.forEach((e,t)=>{e.hidden||O.push(t+_)});const S=t.keyCode===s.KEY_CODES.ARROW_DOWN||t.keyCode===s.KEY_CODES.ENTER,C=t.keyCode===s.KEY_CODES.ARROW_UP,A=t.keyCode===s.KEY_CODES.ARROW_RIGHT||t.keyCode===s.KEY_CODES.TAB,k=t.keyCode===s.KEY_CODES.ARROW_LEFT;S&&r[0]>b?v=y.map(e=>[b,e]):S&&w!==p.length-1?h=y.map(e=>[w+1,e]):C&&r[0][w,e]):C&&b>0?h=y.map(e=>[b-1,e]):k&&r[1][e,E]):k&&m>0?h=g.map(e=>[e,m-1]):A&&r[1]>m?v=g.map(e=>[e,m]):A&&E+1<=i.last(O)&&(h=g.map(e=>[e,E+1])),c({is_focused:!1,selected_cell:i.without(v,i.uniq(i.concat(h,l)))})}),this.deleteCell=(e=>{var t=this.props;const n=t.columns,r=t.dataframe,o=t.editable,u=t.row_deletable,s=t.row_selectable,l=t.selected_cell,c=t.setProps,p=t.virtual_dataframe_indices;e.preventDefault();let d=r;const f=(u?1:0)+(s?1:0);i.map(e=>[p[e[0]],e[1]-f],l).forEach(e=>{(0,a.colIsEditable)(o,n[e[1]])&&(d=i.set(i.lensPath([e[0],n[e[1]].id]),"",d))}),c({dataframe:d})}),this.getNextCell=((e,{restrictToSelection:t,currentCell:n})=>{var r=this.props;const o=r.columns,u=r.row_deletable,a=r.row_selectable,c=r.selected_cell,p=r.virtualizer.dataframe,d=e,f=[],h=(u?1:0)+(a?1:0);switch(t||o.forEach((e,t)=>{e.hidden||f.push(t+h)}),d.keyCode){case s.KEY_CODES.ARROW_LEFT:return t?(0,l.selectionCycle)([n[0],n[1]-1],c):[n[0],i.max(f[0],f[i.indexOf(n[1],f)-1])];case s.KEY_CODES.ARROW_RIGHT:case s.KEY_CODES.TAB:return t?(0,l.selectionCycle)([n[0],n[1]+1],c):[n[0],i.min(i.last(f),f[i.indexOf(n[1],f)+1])];case s.KEY_CODES.ARROW_UP:return t?(0,l.selectionCycle)([n[0]-1,n[1]],c):[i.max(0,n[0]-1),n[1]];case s.KEY_CODES.ARROW_DOWN:case s.KEY_CODES.ENTER:return t?(0,l.selectionCycle)([n[0]+1,n[1]],c):[i.min(p.length-1,n[0]+1),n[1]];default:throw new Error(`Table.getNextCell: unknown navigation keycode ${d.keyCode}`)}}),this.onCopy=(e=>{var t=this.props;const n=t.columns,r=t.row_deletable,o=t.row_selectable,u=t.selected_cell,a=t.virtualizer.dataframe,s=(r?1:0)+(o?1:0),l=i.map(e=>[e[0],e[1]-s],u);v.default.toClipboard(e,l,n,a),this.$el.focus()}),this.onPaste=(e=>{var t=this.props;const n=t.active_cell,r=t.columns,o=t.dataframe,i=t.editable,u=t.filtering_settings,a=t.row_deletable,s=t.row_selectable,l=t.setProps,c=t.sorting_settings,p=t.virtual_dataframe_indices;if(!i)return;const d=(a?1:0)+(s?1:0),f=[n[0],n[1]-d],h=v.default.fromClipboard(e,f,p,r,o,!0,!c.length||!u.length);h&&l(h)}),this.loadNext=(()=>{this.props.virtualizer.loadNext()}),this.loadPrevious=(()=>{this.props.virtualizer.loadPrevious()}),this.onContainerScroll=(e=>{if(!this.props.n_fixed_columns)return;const t=this.refs.spreadsheet;e.target===t&&this.stylesheet.setRule(".frozen-left",`margin-top: ${-e.target.scrollTop}px;`)}),this.applyStyle=((e,t,n)=>{let r=0;t&&(this.stylesheet.setRule(`.dash-spreadsheet-inner td.column-${r}`,"width: 30px; max-width: 30px; min-width: 30px;"),this.stylesheet.setRule(`.dash-spreadsheet-inner th.column-${r}`,"width: 30px; max-width: 30px; min-width: 30px;"),++r),n&&(this.stylesheet.setRule(`.dash-spreadsheet-inner td.column-${r}`,"width: 30px; max-width: 30px; min-width: 30px;"),this.stylesheet.setRule(`.dash-spreadsheet-inner th.column-${r}`,"width: 30px; max-width: 30px; min-width: 30px;"),++r),i.forEach(e=>{const t=u.default.unit(e.width||c.DEFAULT_CELL_WIDTH,"px");this.stylesheet.setRule(`.dash-spreadsheet-inner td.column-${r}`,`width: ${t}; max-width: ${t}; min-width: ${t};`),this.stylesheet.setRule(`.dash-spreadsheet-inner th.column-${r}`,`width: ${t}; max-width: ${t}; min-width: ${t};`),++r},e)}),this.renderFragment=(e=>e?o.default.createElement("table",{tabIndex:-1},o.default.createElement("tbody",null,e.map((e,t)=>o.default.createElement("tr",{key:`row-${t}`},e)))):null),this.handleSetFilter=(e=>this.props.setProps({filtering_settings:e})),this.getCells=(()=>[...p.default.createHeaders(this.props),...this.filterFactory.createFilters(),...this.cellFactory.createCells()]),this.getFragments=((e,t,n)=>{const r=t?i.map(e=>e.splice(0,i.reduceWhile(e=>e.count(e.cells++,e.count+=t.props.colSpan||1,e),{cells:0,count:0},e).cells),e):null,o=n?e.splice(0,n):null,u=n&&r?r.splice(0,n):null;return[[this.renderFragment(u),this.renderFragment(o)],[this.renderFragment(r),this.renderFragment(e)]]}),this.handleDropdown=(()=>{const e=this.refs.r1c1;(0,y.default)(e.querySelector(".Select-menu-outer"))}),this.onScroll=(e=>{const t=this.refs.r0c1;d.default.trace(`ControlledTable fragment scrolled to (left,top)=(${e.target.scrollLeft},${e.target.scrollTop})`),t.style.marginLeft=`${-e.target.scrollLeft}px`,this.handleDropdown()}),this.cellFactory=new g.default(()=>this.props),this.filterFactory=new b.default(()=>{var e=this.props;const t=e.row_deletable,n=e.row_selectable,r=(t?1:0)+(n?1:0);return{columns:this.props.columns,filtering:this.props.filtering,filtering_settings:this.props.filtering_settings,filtering_type:this.props.filtering_type,id:this.props.id,offset:r,setFilter:this.handleSetFilter}}),this.stylesheet=new u.default(`#${e.id}`)}get lexerResult(){const e=this.props.filtering_settings;return this.getLexerResult(e)}componentDidMount(){this.props.selected_cell.length&&!i.contains(this.props.active_cell,this.props.selected_cell)&&this.props.setProps({active_cell:this.props.selected_cell[0]}),window.addEventListener("resize",this.handleResize),document.addEventListener("paste",this.handlePaste),document.addEventListener("mousedown",this.handleClickOutside)}componentWillUnmount(){window.removeEventListener("resize",this.handleResize),document.removeEventListener("mousedown",this.handleClickOutside),document.removeEventListener("paste",this.handlePaste)}componentWillUpdate(){const e=this.props.table_style;i.forEach(({selector:e,rule:t})=>{this.stylesheet.setRule(e,t)},e)}componentDidUpdate(){this.handleResize(),this.handleDropdown()}get $el(){return document.getElementById(this.props.id)}get displayPagination(){var e=this.props;const t=e.dataframe,n=e.navigation,r=e.virtualization,o=e.virtualization_settings;return"page"===n&&("fe"===r&&o.page_sizeo.default.createElement("div",{key:`r${t}`,ref:`r${t}`,className:`row row-${t}`,onScroll:this.onScroll},e.map((e,n)=>o.default.createElement("div",{key:n,ref:`r${t}c${n}`,className:`cell cell-${t}-${n}`},e)))))),this.displayPagination?o.default.createElement("div",null,o.default.createElement("button",{className:"previous-page",onClick:this.loadPrevious},"Previous"),o.default.createElement("button",{className:"next-page",onClick:this.loadNext},"Next")):null)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,o=!1,i=void 0;try{for(var u,a=e[Symbol.iterator]();!(r=(u=a.next()).done)&&(n.push(u.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{!r&&a.return&&a.return()}finally{if(o)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();t.selectionCycle=function(e,t){const n=o.uniq(o.pluck(0,t)).sort((e,t)=>e-t),i=o.uniq(o.pluck(1,t)).sort((e,t)=>e-t),u=n[0],a=i[0],s=n[n.length-1],l=i[i.length-1];var c=r(e,2);const p=c[0],d=c[1],f=[p,d];p>s&&(f[0]=u,f[1]=d+1>l?a:d+1);pl&&(f[1]=a,f[0]=p+1>s?u:p+1);dArray.isArray(e.name)?e.name.length:1,h=(e,t)=>Array.isArray(e.name)?e.name[t]:"";class v{static getSorting(e,t){const n=o.find(t=>t.columnId===e,t);return n?n.direction:u.SortDirection.None}static doSort(e,t){return()=>{const n=t.sorting_settings,r=t.sorting_type;let o;switch(v.getSorting(e,n)){case u.SortDirection.Descending:o=u.SortDirection.Ascending;break;case u.SortDirection.Ascending:o=u.SortDirection.None;break;case u.SortDirection.None:default:o=u.SortDirection.Descending}const i="single"===r?s.default:a.default;t.setProps({sorting_settings:i(n,{columnId:e,direction:o})})}}static getSortingIcon(e,t){const n=t.sorting_settings;switch(v.getSorting(e,n)){case u.SortDirection.Descending:return"↑";case u.SortDirection.Ascending:return"↓";case u.SortDirection.None:default:return"↕"}}static createHeaderCells(e){const t=e.columns,n=e.columnRowIndex,u=e.labels,a=e.mergeCells,s=e.n_fixed_columns,c=e.offset,p=e.rowSorting,f=e.virtualization;let h=[];if(a){h=[0];let e=0;u.forEach((n,r)=>{t[r].hidden||n===u[e]||(h.push(r),e=r)})}else h=o.range(0,t.length);const g=t.filter(e=>!e.hidden);return o.filter(e=>!!e,h.map((y,b)=>{const m=t[y];if(m.hidden)return null;const x=g.indexOf(m)+c;let w;if(a){const e=o.slice(y,h[b+1]||1/0,t).filter(o.propEq("hidden",!0)).length;w=y===o.last(h)?u.length-y-e:h[b+1]-y-e}else w=1;const E=g.indexOf(m),_=`calc(${g.filter((e,t)=>!e.hidden&&t>=E&&ti.default.unit(e.width||d,"px")).join(" + ")})`;return r.default.createElement("th",{key:`header-cell-${y}`,colSpan:w,className:`column-${y+c} `+(y===t.length-1||y===o.last(h)?"cell--right-last ":""),style:x{(0,n.setProps)(l.editColumnName(e,t,n))}}(m,n,e)},"✎"):"",m.deletable&&"be"!==f&&"Boolean"===o.type(m.deletable)||"Number"===o.type(m.deletable)&&m.deletable===n?r.default.createElement("span",{className:"column-header--delete",onClick:function(e,t,n){return()=>{(0,n.setProps)(l.deleteColumn(e,t,n))}}(m,n,e)},"×"):"",r.default.createElement("span",null,u[y]))}))}static createDeletableHeader(e){return e.row_deletable?r.default.createElement("th",{key:"delete",className:"expanded-row--empty-cell",style:{width:"30px",maxWidth:"30px",minWidth:"30px"}}):null}static createSelectableHeader(e){return e.row_selectable?r.default.createElement("th",{key:"select",className:"expanded-row--empty-cell",style:{width:"30px",maxWidth:"30px",minWidth:"30px"}}):null}static createHeaders(e){let t=e.columns,n=e.dataframe,r=e.sorting,i=e.merge_duplicate_headers,u=e.n_fixed_columns,a=e.row_deletable,s=e.row_selectable,l=e.setProps,c=e.sorting_settings,p=e.sorting_type,d=e.virtualization;const g=(a?1:0)+(s?1:0),y=this.createDeletableHeader(e),b=this.createSelectableHeader(e),m=Math.max.apply(Math,t.map(f));let x;return x=1===m?[[...y?[y]:[],...b?[b]:[],...v.createHeaderCells({columns:t,columnRowIndex:0,dataframe:n,labels:o.pluck("name",t),n_fixed_columns:u,offset:g,rowSorting:r,setProps:l,sorting_settings:c,sorting_type:p,virtualization:d})]]:o.range(0,m).map(e=>[...y?[y]:[],...b?[b]:[],...v.createHeaderCells({columns:t,columnRowIndex:e,dataframe:n,labels:t.map(t=>o.isNil(t.name)&&e===m-1?t.id:h(t,e)),n_fixed_columns:u,offset:g,rowSorting:!!r&&e+1===m,mergeCells:i&&e+1!==m,setProps:l,sorting_settings:c,sorting_type:p,virtualization:d})])}}t.default=v},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),o=function(e){return e&&e.__esModule?e:{default:e}}(n(3)),i=n(7);t.default=((e,t)=>{if(o.default.trace("multi - updateSettings",e,t),e=r.clone(e),t.direction===i.SortDirection.None){const n=r.findIndex(e=>e.columnId===t.columnId,e);-1!==n&&e.splice(n,1)}else{const n=r.find(e=>e.columnId===t.columnId,e);n?n.direction=t.direction:e.push(t)}return e})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e&&e.__esModule?e:{default:e}}(n(3)),o=n(7);t.default=((e,t)=>(r.default.trace("single - updateSettings",e,t),t.direction===o.SortDirection.None?[]:[t]))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),o=s(n(40)),i=s(n(41)),u=s(n(3)),a=n(14);function s(e){return e&&e.__esModule?e:{default:e}}t.default=class{static toClipboard(e,t,n,a){const s=r.uniq(r.pluck(0,t).sort((e,t)=>e-t)),l=r.uniq(r.pluck(1,t).sort((e,t)=>e-t)),c=r.slice(r.head(s),r.last(s)+1,a).map(e=>r.props(l,r.props(r.pluck("id",n),e))),p=o.default.prototype.stringify(c);u.default.trace("TableClipboard -- set clipboard data: ",p),i.default.set(e,p)}static fromClipboard(e,t,n,s,l,c=!0,p=!0){const d=i.default.get(e);if(u.default.trace("TableClipboard -- get clipboard data: ",d),!d)return;const f=o.default.prototype.parse(d);let h=l;const v=s;if(c&&f[0].length+t[1]>=s.length)for(let e=s.length;et[`Column ${e}`]="");p&&u.default.debug("Clipboard -- Sorting or filtering active, do not create new rows");const g=n[t[0]];if(p&&f.length+g>=l.length){const e={};s.forEach(t=>e[t.id]=""),h=r.concat(h,r.repeat(e,f.length+g-l.length))}return f.forEach((e,o)=>e.forEach((e,i)=>{const u=t[0]+o;if(n.length<=t[0]+o)return;const s=n[u],l=t[1]+i,c=v[l];c&&(0,a.colIsEditable)(!0,c)&&(h=r.set(r.lensPath([s,c.id]),e,h))})),{dataframe:h,columns:v}}}},function(e,t){!function(t){"use strict";function n(){}function r(e){return e.split('"').length-1}n.prototype=Object.create(Object.prototype,{parse:{value:function(e){var t,n,o,i,u,a,s,l=[],c=0;for((o=e.split("\n")).length>1&&""===o[o.length-1]&&o.pop(),t=0,n=o.length;t0&&(u+="\t"),"string"==typeof(i=e[t][r])?i.indexOf("\n")>-1?u+='"'+i.replace(/"/g,'""')+'"':u+=i:u+=null===i||void 0===i?"":i;u+="\n"}return u},enumerable:!0,configurable:!1,writable:!1}}),void 0!==e&&e.exports?e.exports=n:t.SheetClip=n}(this)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default=class{static set(e,t){e.clipboardData.setData("text/plain",t),e.preventDefault()}static get(e){let t;return t=e.clipboardData?e.clipboardData.getData("text/plain"):void 0}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=s(n(2)),o=a(n(1)),i=a(n(43)),u=s(n(16));function a(e){return e&&e.__esModule?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}t.default=class{constructor(e){this.propsFn=e,this.handlers=new Map,this.isCellSelected=((e,t,n)=>e&&r.contains([t,n],e)),this.getEventHandler=((e,t,n)=>{const r=this.handlers.get(e)||this.handlers.set(e,new Map).get(e),o=r.get(t)||r.set(t,new Map).get(t);return o.get(n)||o.set(n,e.bind(this,t,n)).get(n)}),this.handleClick=((e,t,n)=>{var o=this.props;const i=o.columns,u=o.editable,a=o.is_focused,s=o.row_deletable,l=o.row_selectable,c=o.selected_cell,p=o.setProps,d=this.isCellSelected(c,e,t);if(!u)return;if(a||n.preventDefault(),d)return;const f=(s?1:0)+(l?1:0);n.preventDefault();const h=[e,t+f],v={is_focused:!1,active_cell:h},g=[];i.forEach((e,t)=>{e.hidden||g.push(t+f)});const y=r.uniq(r.pluck(0,c)).sort((e,t)=>e-t),b=r.uniq(r.pluck(1,c)).sort((e,t)=>e-t),m=y[0],x=b[0];n.shiftKey?v.selected_cell=r.xprod(r.range(r.min(m,h[0]),r.max(m,h[0])+1),r.range(r.min(x,h[1]),r.max(x,h[1])+1)).filter(e=>r.contains(e[1],g)):v.selected_cell=[h],p(v)}),this.handleDoubleClick=((e,t,n)=>{var r=this.props;const o=r.editable,i=r.is_focused,u=r.row_deletable,a=r.row_selectable,s=r.setProps;if(!o)return;const l=[e,t+((u?1:0)+(a?1:0))];i||(n.preventDefault(),s({selected_cell:[l],active_cell:l,is_focused:!0}))}),this.handleChange=((e,t,n)=>{var o=this.props;const i=o.columns,u=o.dataframe,a=o.editable,s=o.setProps,l=i[t];a&&s({dataframe:r.set(r.lensPath([e,l.id]),n,u)})}),this.handlePaste=(e=>{e.preventDefault()})}get props(){return this.propsFn()}rowSelectCell(e){var t=this.props;const n=t.setProps,i=t.selected_rows,u=t.row_selectable;return u?o.default.createElement("td",{key:"select",className:"select-cell",style:{width:"30px",maxWidth:"30px",minWidth:"30px"}},o.default.createElement("input",{type:"single"===u?"radio":"checkbox",name:"row-select",checked:r.contains(e,i),onChange:()=>n({selected_rows:"single"===u?[e]:r.ifElse(r.contains(e),r.without([e]),r.append(e))(i)})})):null}rowDeleteCell(e){var t=this.props;const n=t.setProps;return t.row_deletable?o.default.createElement("td",{key:"delete",className:"delete-cell",onClick:()=>n(u.deleteRow(e,this.props)),style:{width:"30px",maxWidth:"30px",minWidth:"30px"}},"×"):null}createCells(){var e=this.props;const t=e.active_cell,n=e.columns,u=e.column_conditional_dropdowns,a=e.column_conditional_styles,s=e.column_static_dropdown,l=e.column_static_style,c=e.dropdown_properties,p=e.editable,d=e.id,f=e.is_focused,h=e.row_deletable,v=e.row_selectable,g=e.selected_cell,y=e.virtualizer,b=y.dataframe,m=y.indices,x=n.filter(e=>!e.hidden),w=(h?1:0)+(v?1:0);return b.map((e,h)=>{const v=m[h],y=this.rowDeleteCell(v),b=this.rowSelectCell(v),E=x.map((y,b)=>{b+=w;let m=(c&&c[y.id]&&(c[y.id].length>v?c[y.id][v]:null)||y||{}).options;const x=n.indexOf(y),E=[`column-${x+w}`];let _=u.find(e=>e.id===y.id),O=s.find(e=>e.id===y.id);_=_&&_.dropdowns,O=m||O&&O.dropdown;let S=a.find(e=>e.id===y.id),C=l.find(e=>e.id===y.id);return S=S&&S.styles,C=C&&C.style,o.default.createElement(i.default,{key:`${y.id}-${b}`,active:t[0]===h&&t[1]===x+w,classes:E,clearable:y.clearable,conditionalDropdowns:_,conditionalStyles:S,datum:e,editable:p,focused:!!f,onClick:this.getEventHandler(this.handleClick,h,x),onDoubleClick:this.getEventHandler(this.handleDoubleClick,h,x),onPaste:this.handlePaste,onChange:this.getEventHandler(this.handleChange,v,x),property:y.id,selected:r.contains([h,x+w],g),staticDropdown:O,staticStyle:C,tableId:d,type:y.type,value:e[y.id]})});return b&&E.unshift(b),y&&E.unshift(y),E})}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),o=n(1),i=f(o),u=f(n(44)),a=n(12),s=n(5),l=f(n(45)),c=f(n(18)),p=n(15),d=f(n(20));function f(e){return e&&e.__esModule?e:{default:e}}class h extends o.Component{constructor(e){super(e),this.getDropdown=(0,s.memoizeOne)((...e)=>e.length?e.slice(-1)[0]:void 0),this.getStyle=(0,s.memoizeOne)((...e)=>e.length?r.mergeAll(e):void 0),this.propagateChange=(()=>{if(this.state.value===this.props.value)return;(0,this.props.onChange)(this.state.value)}),this.handleChange=(e=>{this.setState({value:e.target.value})}),this.handleKeyDown=(e=>{e.keyCode===p.KEY_CODES.ENTER&&this.propagateChange()}),this.handleOpenDropdown=(()=>{var e=this.refs;const t=e.dropdown,n=e.td;(0,d.default)(t.wrapper.querySelector(".Select-menu-outer"),n)}),this.state={value:e.value}}get propsWithDefaults(){return this.props}get classes(){var e=this.propsWithDefaults;let t=e.active,n=e.classes,r=e.editable,o=e.selected,i=e.type;return[...t?["focused"]:[],...r?[]:["cell--uneditable"],...o?["cell--selected"]:[],..."dropdown"===i?["dropdown"]:[],...n]}renderDropdown(){var e=this.propsWithDefaults;const t=e.clearable,n=e.onChange,r=e.value,o=this.dropdown;return o?i.default.createElement(u.default,{ref:"dropdown",clearable:t,onChange:e=>{n(e?e.value:e)},onOpen:this.handleOpenDropdown,options:o,placeholder:"",value:r}):this.renderValue()}renderInput(){var e=this.propsWithDefaults;const t=e.active,n=e.focused,r=e.onClick,o=e.onDoubleClick,u=e.onPaste,a={className:[...t?["input-active"]:[],...n?["focused"]:["unfocused"],...["cell-value"]].join(" "),onClick:r,onDoubleClick:o};return t||this.state.value!==this.props.value?i.default.createElement("input",Object.assign({ref:"textInput",type:"text",value:this.state.value,onBlur:this.propagateChange,onChange:this.handleChange,onKeyDown:this.handleKeyDown,onPaste:u},a)):this.renderValue(a)}renderValue(e={}){const t=this.propsWithDefaults.value;return i.default.createElement("div",Object.assign({},e),t)}renderInner(){switch(this.props.type){case"text":case"numeric":return this.renderInput();case"dropdown":return this.renderDropdown();default:return this.renderValue()}}get dropdown(){var e=this.propsWithDefaults;let t=e.conditionalDropdowns,n=e.datum,o=e.property,i=e.staticDropdown,u=e.tableId;const a=[...i?[i]:[],...r.map(([e])=>e.dropdown,r.filter(([e,t])=>h.dropdownAstCache([u,o,t],[e.condition]).evaluate(n),r.addIndex(r.map)((e,t)=>[e,t],t)))];return this.getDropdown(...a)}get style(){var e=this.propsWithDefaults;let t=e.conditionalStyles,n=e.datum,o=e.property,i=e.staticStyle,u=e.tableId;const a=[i,...r.map(([e])=>e.style,r.filter(([e,t])=>h.styleAstCache([u,o,t],[e.condition]).evaluate(n),r.addIndex(r.map)((e,t)=>[e,t],t)))];return this.getStyle(...a)}render(){return i.default.createElement("td",{ref:"td",tabIndex:-1,className:this.classes.join(" "),style:this.style},this.renderInner())}componentWillReceiveProps(e){const t=e.value;this.state.value!==t&&this.setState({value:t})}componentDidUpdate(){const e=this.propsWithDefaults.active,t=this.refs.textInput;e&&t&&document.activeElement!==t&&(t.focus(),t.setSelectionRange(0,t.value?t.value.length:0)),e&&this.refs.dropdown&&this.refs.td.focus()}shouldComponentUpdate(e,t){const n=this.props,r=this.state;return!(0,a.isEqual)(n,e,!0)||!(0,a.isEqual)(r,t,!0)}}t.default=h,h.dropdownAstCache=(0,l.default)(e=>new c.default(e)),h.styleAstCache=(0,l.default)(e=>new c.default(e)),h.defaultProps={classes:[],conditionalDropdowns:[],conditionalStyles:[],staticStyle:{},type:"text"}},function(e,t,n){"use strict";n.r(t),n.d(t,"Async",function(){return V}),n.d(t,"AsyncCreatable",function(){return Y}),n.d(t,"Creatable",function(){return L}),n.d(t,"Value",function(){return F}),n.d(t,"Option",function(){return k}),n.d(t,"defaultMenuRenderer",function(){return b}),n.d(t,"defaultArrowRenderer",function(){return d}),n.d(t,"defaultClearRenderer",function(){return f}),n.d(t,"defaultFilterOptions",function(){return y});var r=n(22),o=n.n(r),i=n(4),u=n.n(i),a=n(0),s=n.n(a),l=n(1),c=n.n(l),p=n(6),d=function(e){var t=e.onMouseDown;return c.a.createElement("span",{className:"Select-arrow",onMouseDown:t})};d.propTypes={onMouseDown:s.a.func};var f=function(){return c.a.createElement("span",{className:"Select-clear",dangerouslySetInnerHTML:{__html:"×"}})},h=[{base:"A",letters:/[\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F]/g},{base:"AA",letters:/[\uA732]/g},{base:"AE",letters:/[\u00C6\u01FC\u01E2]/g},{base:"AO",letters:/[\uA734]/g},{base:"AU",letters:/[\uA736]/g},{base:"AV",letters:/[\uA738\uA73A]/g},{base:"AY",letters:/[\uA73C]/g},{base:"B",letters:/[\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181]/g},{base:"C",letters:/[\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E]/g},{base:"D",letters:/[\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779]/g},{base:"DZ",letters:/[\u01F1\u01C4]/g},{base:"Dz",letters:/[\u01F2\u01C5]/g},{base:"E",letters:/[\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E]/g},{base:"F",letters:/[\u0046\u24BB\uFF26\u1E1E\u0191\uA77B]/g},{base:"G",letters:/[\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E]/g},{base:"H",letters:/[\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D]/g},{base:"I",letters:/[\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197]/g},{base:"J",letters:/[\u004A\u24BF\uFF2A\u0134\u0248]/g},{base:"K",letters:/[\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2]/g},{base:"L",letters:/[\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780]/g},{base:"LJ",letters:/[\u01C7]/g},{base:"Lj",letters:/[\u01C8]/g},{base:"M",letters:/[\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C]/g},{base:"N",letters:/[\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4]/g},{base:"NJ",letters:/[\u01CA]/g},{base:"Nj",letters:/[\u01CB]/g},{base:"O",letters:/[\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u00D6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C]/g},{base:"OI",letters:/[\u01A2]/g},{base:"OO",letters:/[\uA74E]/g},{base:"OU",letters:/[\u0222]/g},{base:"P",letters:/[\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754]/g},{base:"Q",letters:/[\u0051\u24C6\uFF31\uA756\uA758\u024A]/g},{base:"R",letters:/[\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782]/g},{base:"S",letters:/[\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784]/g},{base:"T",letters:/[\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786]/g},{base:"TZ",letters:/[\uA728]/g},{base:"U",letters:/[\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u00DC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244]/g},{base:"V",letters:/[\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245]/g},{base:"VY",letters:/[\uA760]/g},{base:"W",letters:/[\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72]/g},{base:"X",letters:/[\u0058\u24CD\uFF38\u1E8A\u1E8C]/g},{base:"Y",letters:/[\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE]/g},{base:"Z",letters:/[\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762]/g},{base:"a",letters:/[\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250]/g},{base:"aa",letters:/[\uA733]/g},{base:"ae",letters:/[\u00E6\u01FD\u01E3]/g},{base:"ao",letters:/[\uA735]/g},{base:"au",letters:/[\uA737]/g},{base:"av",letters:/[\uA739\uA73B]/g},{base:"ay",letters:/[\uA73D]/g},{base:"b",letters:/[\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253]/g},{base:"c",letters:/[\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184]/g},{base:"d",letters:/[\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A]/g},{base:"dz",letters:/[\u01F3\u01C6]/g},{base:"e",letters:/[\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD]/g},{base:"f",letters:/[\u0066\u24D5\uFF46\u1E1F\u0192\uA77C]/g},{base:"g",letters:/[\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F]/g},{base:"h",letters:/[\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265]/g},{base:"hv",letters:/[\u0195]/g},{base:"i",letters:/[\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131]/g},{base:"j",letters:/[\u006A\u24D9\uFF4A\u0135\u01F0\u0249]/g},{base:"k",letters:/[\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3]/g},{base:"l",letters:/[\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747]/g},{base:"lj",letters:/[\u01C9]/g},{base:"m",letters:/[\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F]/g},{base:"n",letters:/[\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5]/g},{base:"nj",letters:/[\u01CC]/g},{base:"o",letters:/[\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275]/g},{base:"oi",letters:/[\u01A3]/g},{base:"ou",letters:/[\u0223]/g},{base:"oo",letters:/[\uA74F]/g},{base:"p",letters:/[\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755]/g},{base:"q",letters:/[\u0071\u24E0\uFF51\u024B\uA757\uA759]/g},{base:"r",letters:/[\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783]/g},{base:"s",letters:/[\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B]/g},{base:"t",letters:/[\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787]/g},{base:"tz",letters:/[\uA729]/g},{base:"u",letters:/[\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289]/g},{base:"v",letters:/[\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C]/g},{base:"vy",letters:/[\uA761]/g},{base:"w",letters:/[\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73]/g},{base:"x",letters:/[\u0078\u24E7\uFF58\u1E8B\u1E8D]/g},{base:"y",letters:/[\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF]/g},{base:"z",letters:/[\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763]/g}],v=function(e){for(var t=0;t-1)return!1;if(r.filterOption)return r.filterOption.call(void 0,e,t);if(!t)return!0;var o=e[r.valueKey],i=e[r.labelKey],u=g(o),a=g(i);if(!u&&!a)return!1;var s=u?String(o):null,l=a?String(i):null;return r.ignoreAccents&&(s&&"label"!==r.matchProp&&(s=v(s)),l&&"value"!==r.matchProp&&(l=v(l))),r.ignoreCase&&(s&&"label"!==r.matchProp&&(s=s.toLowerCase()),l&&"value"!==r.matchProp&&(l=l.toLowerCase())),"start"===r.matchPos?s&&"label"!==r.matchProp&&s.substr(0,t.length)===t||l&&"value"!==r.matchProp&&l.substr(0,t.length)===t:s&&"label"!==r.matchProp&&s.indexOf(t)>=0||l&&"value"!==r.matchProp&&l.indexOf(t)>=0})},b=function(e){var t=e.focusedOption,n=e.focusOption,r=e.inputValue,o=e.instancePrefix,i=e.onFocus,a=e.onOptionRef,s=e.onSelect,l=e.optionClassName,p=e.optionComponent,d=e.optionRenderer,f=e.options,h=e.removeValue,v=e.selectValue,g=e.valueArray,y=e.valueKey,b=p;return f.map(function(e,p){var f=g&&g.some(function(t){return t[y]===e[y]}),m=e===t,x=u()(l,{"Select-option":!0,"is-selected":f,"is-focused":m,"is-disabled":e.disabled});return c.a.createElement(b,{className:x,focusOption:n,inputValue:r,instancePrefix:o,isDisabled:e.disabled,isFocused:m,isSelected:f,key:"option-"+p+"-"+e[y],onFocus:i,onSelect:s,option:e,optionIndex:p,ref:function(e){a(e,m)},removeValue:h,selectValue:v},d(e,p,r))})};b.propTypes={focusOption:s.a.func,focusedOption:s.a.object,inputValue:s.a.string,instancePrefix:s.a.string,onFocus:s.a.func,onOptionRef:s.a.func,onSelect:s.a.func,optionClassName:s.a.string,optionComponent:s.a.func,optionRenderer:s.a.func,options:s.a.array,removeValue:s.a.func,selectValue:s.a.func,valueArray:s.a.array,valueKey:s.a.string};var m=function(e){e.preventDefault(),e.stopPropagation(),"A"===e.target.tagName&&"href"in e.target&&(e.target.target?window.open(e.target.href,e.target.target):window.location.href=e.target.href)},x="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},w=(function(){function e(e){this.value=e}function t(t){var n,r;function o(n,r){try{var u=t[n](r),a=u.value;a instanceof e?Promise.resolve(a.value).then(function(e){o("next",e)},function(e){o("throw",e)}):i(u.done?"return":"normal",u.value)}catch(e){i("throw",e)}}function i(e,t){switch(e){case"return":n.resolve({value:t,done:!0});break;case"throw":n.reject(t);break;default:n.resolve({value:t,done:!1})}(n=n.next)?o(n.key,n.arg):r=null}this._invoke=function(e,t){return new Promise(function(i,u){var a={key:e,arg:t,resolve:i,reject:u,next:null};r?r=r.next=a:(n=r=a,o(e,t))})},"function"!=typeof t.return&&(this.return=void 0)}"function"==typeof Symbol&&Symbol.asyncIterator&&(t.prototype[Symbol.asyncIterator]=function(){return this}),t.prototype.next=function(e){return this._invoke("next",e)},t.prototype.throw=function(e){return this._invoke("throw",e)},t.prototype.return=function(e){return this._invoke("return",e)}}(),function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}),E=function(){function e(e,t){for(var n=0;n=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n},A=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t},k=function(e){function t(e){w(this,t);var n=A(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.handleMouseDown=n.handleMouseDown.bind(n),n.handleMouseEnter=n.handleMouseEnter.bind(n),n.handleMouseMove=n.handleMouseMove.bind(n),n.handleTouchStart=n.handleTouchStart.bind(n),n.handleTouchEnd=n.handleTouchEnd.bind(n),n.handleTouchMove=n.handleTouchMove.bind(n),n.onFocus=n.onFocus.bind(n),n}return S(t,e),E(t,[{key:"handleMouseDown",value:function(e){e.preventDefault(),e.stopPropagation(),this.props.onSelect(this.props.option,e)}},{key:"handleMouseEnter",value:function(e){this.onFocus(e)}},{key:"handleMouseMove",value:function(e){this.onFocus(e)}},{key:"handleTouchEnd",value:function(e){this.dragging||this.handleMouseDown(e)}},{key:"handleTouchMove",value:function(){this.dragging=!0}},{key:"handleTouchStart",value:function(){this.dragging=!1}},{key:"onFocus",value:function(e){this.props.isFocused||this.props.onFocus(this.props.option,e)}},{key:"render",value:function(){var e=this.props,t=e.option,n=e.instancePrefix,r=e.optionIndex,o=u()(this.props.className,t.className);return t.disabled?c.a.createElement("div",{className:o,onMouseDown:m,onClick:m},this.props.children):c.a.createElement("div",{className:o,style:t.style,role:"option","aria-label":t.label,onMouseDown:this.handleMouseDown,onMouseEnter:this.handleMouseEnter,onMouseMove:this.handleMouseMove,onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove,onTouchEnd:this.handleTouchEnd,id:n+"-option-"+r,title:t.title},this.props.children)}}]),t}(c.a.Component);k.propTypes={children:s.a.node,className:s.a.string,instancePrefix:s.a.string.isRequired,isDisabled:s.a.bool,isFocused:s.a.bool,isSelected:s.a.bool,onFocus:s.a.func,onSelect:s.a.func,onUnfocus:s.a.func,option:s.a.object.isRequired,optionIndex:s.a.number};var F=function(e){function t(e){w(this,t);var n=A(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.handleMouseDown=n.handleMouseDown.bind(n),n.onRemove=n.onRemove.bind(n),n.handleTouchEndRemove=n.handleTouchEndRemove.bind(n),n.handleTouchMove=n.handleTouchMove.bind(n),n.handleTouchStart=n.handleTouchStart.bind(n),n}return S(t,e),E(t,[{key:"handleMouseDown",value:function(e){if("mousedown"!==e.type||0===e.button)return this.props.onClick?(e.stopPropagation(),void this.props.onClick(this.props.value,e)):void(this.props.value.href&&e.stopPropagation())}},{key:"onRemove",value:function(e){e.preventDefault(),e.stopPropagation(),this.props.onRemove(this.props.value)}},{key:"handleTouchEndRemove",value:function(e){this.dragging||this.onRemove(e)}},{key:"handleTouchMove",value:function(){this.dragging=!0}},{key:"handleTouchStart",value:function(){this.dragging=!1}},{key:"renderRemoveIcon",value:function(){if(!this.props.disabled&&this.props.onRemove)return c.a.createElement("span",{className:"Select-value-icon","aria-hidden":"true",onMouseDown:this.onRemove,onTouchEnd:this.handleTouchEndRemove,onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove},"×")}},{key:"renderLabel",value:function(){return this.props.onClick||this.props.value.href?c.a.createElement("a",{className:"Select-value-label",href:this.props.value.href,target:this.props.value.target,onMouseDown:this.handleMouseDown,onTouchEnd:this.handleMouseDown},this.props.children):c.a.createElement("span",{className:"Select-value-label",role:"option","aria-selected":"true",id:this.props.id},this.props.children)}},{key:"render",value:function(){return c.a.createElement("div",{className:u()("Select-value",this.props.value.className),style:this.props.value.style,title:this.props.value.title},this.renderRemoveIcon(),this.renderLabel())}}]),t}(c.a.Component);F.propTypes={children:s.a.node,disabled:s.a.bool,id:s.a.string,onClick:s.a.func,onRemove:s.a.func,value:s.a.object.isRequired}; +!function(){"use strict";var n={}.hasOwnProperty;function o(){for(var e=[],t=0;to(e)},t.memoizeOneWithFlag=function(e){let t,n=null,o=!0;return(...i)=>{let u=(0,r.isEqualArgs)(n,i)?{cached:!0,first:o,result:t}:{cached:!1,first:o,result:(n=i)&&(t=e(...i))};return o=!1,u}},t.memoizeAll=function(e){const t=[];return(...n)=>{let o=t.find(e=>(0,r.isEqualArgs)(e.args,n));return(o||t[t.push({args:n,result:e(...n)})-1]).result}};var r=n(11);function o(e){let t,n=null;return(...o)=>(0,r.isEqualArgs)(n,o)?t:(n=o)&&(t=e(...o))}},function(e,t){e.exports=window.ReactDOM},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.defaultIsNully=t.SortDirection=void 0;var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2));var o=t.SortDirection=void 0;!function(e){e.Ascending="asc",e.Descending="desc",e.None="none"}(o||(t.SortDirection=o={}));const i=t.defaultIsNully=(e=>void 0===e||null===e);t.default=((e,t,n=i)=>t.length?r.sortWith(r.map(e=>e.direction===o.Descending?r.comparator((t,r)=>{const o=e.columnId,i=t[o],u=r[o];return!n(i)&&(!!n(u)||i>u)}):r.comparator((t,r)=>{const o=e.columnId,i=t[o],u=r[o];return!n(i)&&(!!n(u)||i=0&&s.splice(t,1)}function h(e){var t=document.createElement("style");return void 0===e.attrs.type&&(e.attrs.type="text/css"),v(t,e.attrs),d(e,t),t}function v(e,t){Object.keys(t).forEach(function(n){e.setAttribute(n,t[n])})}function g(e,t){var n,r,o,i;if(t.transform&&e.css){if(!(i=t.transform(e.css)))return function(){};e.css=i}if(t.singleton){var s=a++;n=u||(u=h(t)),r=b.bind(null,n,s,!1),o=b.bind(null,n,s,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=function(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",v(t,e.attrs),d(e,t),t}(t),r=function(e,t,n){var r=n.css,o=n.sourceMap,i=void 0===t.convertToAbsoluteUrls&&o;(t.convertToAbsoluteUrls||i)&&(r=l(r));o&&(r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */");var u=new Blob([r],{type:"text/css"}),a=e.href;e.href=URL.createObjectURL(u),a&&URL.revokeObjectURL(a)}.bind(null,n,t),o=function(){f(n),n.href&&URL.revokeObjectURL(n.href)}):(n=h(t),r=function(e,t){var n=t.css,r=t.media;r&&e.setAttribute("media",r);if(e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}.bind(null,n),o=function(){f(n)});return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else o()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=o()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var n=p(e,t);return c(n,t),function(e){for(var o=[],i=0;it&&e.when&&-1!==e.when.indexOf(t.name));if(o.length||(o=r.default),!(t=o.find(t=>t.regexp.test(e))||null))return{lexemes:n,valid:!1,error:e};const i=(e.match(t.regexp)||[])[0];n.push({lexeme:t,value:i}),e=e.substring(i.length)}return{lexemes:n,valid:!0}};var r=function(e){return e&&e.__esModule?e:{default:e}}(n(16))},function(e,t,n){"use strict";function r(e){return void 0!==e&&null!==e&&"object"==typeof e&&e.constructor===Object}function o(e,t,n=!1){return e===t||i(Object.values(e),Object.values(t),n)}function i(e,t,n=!1){return!!e&&e.length===t.length&&!!e.every((e,u)=>{const a=t[u];return e===a||n&&(Array.isArray(e)&&Array.isArray(a)&&i(e,a,n)||r(e)&&r(a)&&o(e,a,n))})}Object.defineProperty(t,"__esModule",{value:!0}),t.isEqual=o,t.isEqualArgs=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e&&e.__esModule?e:{default:e}}(n(3));class o{constructor(e){this.name=e}get rules(){const e=this.sheet;return Array.from(e.rules||e.cssRules)}addRule(e,t){this.sheet.addRule?this.sheet.addRule(e,t):this.sheet.insertRule(`${e} { ${t} }`,0)}deleteRule(e){this.sheet.deleteRule(e)}findRule(e){const t=this.rules,n=t.findIndex(t=>t.selectorText===e);return-1===n?null:{rule:t[n],index:n}}get sheet(){return(this.__stylesheet=this.__stylesheet||(()=>{const e=document.createElement("style");return e.type="text/css",e.id=this.name,document.getElementsByTagName("head")[0].appendChild(e),e})()).sheet}}class i{constructor(e){this.prefix=e,this.stylesheet=new o(`${e}-dynamic-inline.css`)}static unit(e,t="px"){return i.hasUnit(e)?e:`${e}${t}`}static hasUnit(e){return"string"==typeof e&&/^\d+(\.\d+)?(px|em|rem)$/.test(e)}deleteRule(e){e=`${this.prefix} ${e}`;const t=this.stylesheet.findRule(e);t&&this.stylesheet.deleteRule(t.index)}setRule(e,t){e=`${this.prefix} ${e}`;const n=this.stylesheet.findRule(e);if(n){if(n.rule.cssText===t||n.rule.cssText===`${e} { ${t} }`)return;this.stylesheet.deleteRule(n.index)}this.stylesheet.addRule(e,t),r.default.trace("stylesheet",e,t)}}t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.colIsEditable=function(e,t){return e&&(!r.has("editable",t)||t.editable)};var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isPrintableChar=function(e){return 32===e||e>=48&&e<=57||e>=96&&e<=111||e>=186&&e<=192||e>=219&&e<=222||e>=226||e>=65&&e<=90},t.isMetaKey=function(e){return-1!==o.indexOf(e)},t.isNavKey=function(e){return-1!==u.indexOf(e)},t.isArrowKey=function(e){return-1!==i.indexOf(e)},t.isCtrlKey=function(e){const t=[];window.navigator.platform.includes("Mac")?t.push(r.COMMAND_LEFT,r.COMMAND_RIGHT,r.COMMAND_FIREFOX):t.push(r.CONTROL);return t.includes(e)},t.isCtrlMetaKey=function(e){return[r.CONTROL,r.COMMAND_LEFT,r.COMMAND_RIGHT,r.COMMAND_FIREFOX].includes(e)};const r=t.KEY_CODES={MOUSE_LEFT:1,MOUSE_RIGHT:3,MOUSE_MIDDLE:2,BACKSPACE:8,COMMA:188,INSERT:45,DELETE:46,END:35,ENTER:13,ESCAPE:27,CONTROL:17,COMMAND_LEFT:91,COMMAND_RIGHT:93,COMMAND_FIREFOX:224,ALT:18,HOME:36,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,SPACE:32,SHIFT:16,CAPS_LOCK:20,TAB:9,ARROW_RIGHT:39,ARROW_LEFT:37,ARROW_UP:38,ARROW_DOWN:40,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,A:65,X:88,C:67,V:86},o=[r.ARROW_DOWN,r.ARROW_UP,r.ARROW_LEFT,r.ARROW_RIGHT,r.HOME,r.END,r.DELETE,r.BACKSPACE,r.F1,r.F2,r.F3,r.F4,r.F5,r.F6,r.F7,r.F8,r.F9,r.F10,r.F11,r.F12,r.TAB,r.PAGE_DOWN,r.PAGE_UP,r.ENTER,r.ESCAPE,r.SHIFT,r.CAPS_LOCK,r.ALT],i=[r.ARROW_DOWN,r.ARROW_UP,r.ARROW_LEFT,r.ARROW_RIGHT],u=[...i,r.TAB,r.ENTER];t.isCtrlDown=(e=>(e.ctrlKey||e.metaKey)&&!e.altKey)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.deleteRow=function(e,t){const n=t.active_cell,o=t.dataframe,i=t.end_cell,u=t.selected_cell,a=t.selected_rows,s=t.start_cell,l={dataframe:r.remove(e,1,o)};r.is(Array,n)&&n[0]===e&&(l.active_cell=[]);r.is(Array,i)&&i[0]===e&&(l.end_cell=[]);r.is(Array,u)&&u[0]===e&&(l.selected_cell=[]);r.is(Array,s)&&s[0]===e&&(l.start_cell=[0,0]);r.is(Array,a)&&r.contains(e,a)&&(l.selected_rows=r.without([e],a));return l},t.deleteColumn=function(e,t,n){const i=n.columns,u=n.dataframe;var a=o(e,t,n);const s=a.groupIndexFirst,l=a.groupIndexLast,c=r.slice(s,l+1,r.pluck("id",i));return{columns:r.remove(s,1+l-s,i),dataframe:r.map(r.omit(c),u),active_cell:[],end_cell:[],selected_cell:[],start_cell:[0]}},t.editColumnName=function(e,t,n){const i=n.columns;var u=o(e,t,n);const a=u.groupIndexFirst,s=u.groupIndexLast,l=window.prompt("Enter a new column name");let c=r.clone(i);return r.range(a,s+1).map(e=>{let n;n="Array"===r.type(i[e].name)?[e,"name",t]:[e,"name"],c=r.set(r.lensPath(n),l,c)}),{columns:c}};var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2));function o(e,t,n){const o=n.columns;let i,u;"Null"!==r.type(t)?(i=e.name[t],u=r.pluck(t,r.pluck("name",o))):(i=e.name,u=r.pluck("name",o));const a=r.findIndex(r.propEq("id",e.id),o);let s=a,l=a;for(;u[s-1]===i;)s--;for(;u[l+1]===i;)l++;return{groupIndexFirst:s,groupIndexLast:l}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LexemeType=void 0;var r=function(){return function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,o=!1,i=void 0;try{for(var u,a=e[Symbol.iterator]();!(r=(u=a.next()).done)&&(n.push(u.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{!r&&a.return&&a.return()}finally{if(o)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),o=function(e){return e&&e.__esModule?e:{default:e}}(n(3));var i=t.LexemeType=void 0;!function(e){e.And="and",e.BlockClose="close-block",e.BlockOpen="open-block",e.BinaryOperator="logical-binary-operator",e.Expression="expression",e.Or="or",e.Operand="operand",e.UnaryNot="unary-not",e.UnaryOperator="logical-unary-operator"}(i||(t.LexemeType=i={}));const u={resolve:(e,t)=>{if(o.default.trace("resolve -> exp",e,t),/^('.*')|(".*")$/.test(t.value))return t.value.slice(1,t.value.length-1);if(!/^\w+\(.*\)$/.test(t.value))return e[t.value];{const e=t.value.match(/^(\w+)\((.*)\)$/);if(!e)throw Error();{var n=r(e,3);const t=n[1],o=n[2];switch(t){case"num":return parseInt(o,10);case"str":default:return o}}}},regexp:/^(((num|str)\([^()]*\))|'([^()']|\\')+'|"([^()"]|\\")+"|\w+)/},a=[{evaluate:(e,t)=>{o.default.trace("evalute -> &&",e,t);const n=t,r=n.left.lexeme.evaluate(e,n.left),i=n.right.lexeme.evaluate(e,n.right);return r&&i},name:i.And,priority:2,regexp:/^(and\s|&&)/i,syntaxer:(e,t,n)=>Object.assign({left:e.slice(0,n),right:e.slice(n+1)},t)},{evaluate:(e,t)=>{o.default.trace("evalute -> ||",e,t);const n=t;return n.left.lexeme.evaluate(e,n.left)||n.right.lexeme.evaluate(e,n.right)},name:i.Or,priority:3,regexp:/^(or\s|\|\|)/i,syntaxer:(e,t,n)=>Object.assign({left:e.slice(0,n),right:e.slice(n+1)},t)},{name:i.BlockClose,nesting:-1,regexp:/^\)/},{evaluate:(e,t)=>{o.default.trace("evaluate -> ()",e,t);const n=t;return n.block.lexeme.evaluate(e,n.block)},name:i.BlockOpen,nesting:1,priority:1,regexp:/^\(/,syntaxer:e=>Object.assign({block:e.slice(1,e.length-1)},e[0]),when:[i.UnaryNot]},Object.assign({name:i.Operand},u),{evaluate:(e,t)=>{o.default.trace("evaluate -> binary",e,t);const n=t,r=n.left.lexeme.resolve(e,n.left),i=n.right.lexeme.resolve(e,n.right);switch(o.default.trace(`opValue: ${r}, expValue: ${i}`),t.value.toLowerCase()){case"eq":case"=":return r===i;case"gt":case">":return r>i;case"ge":case">=":return r>=i;case"lt":case"<":return r=|<=|>|<|!=|=|ge|le|gt|lt|eq|ne)/i,syntaxer:e=>{var t=r(e,3);let n=t[0],o=t[1],i=t[2];return Object.assign({left:n,right:i},o)},when:[i.Operand]},{evaluate:(e,t)=>{o.default.trace("evaluate -> unary",e,t);const n=t,r=n.block.lexeme.resolve(e,n.block);switch(t.value.toLowerCase()){case"is even":return"number"==typeof r&&r%2==0;case"is nil":return void 0===r||null===r;case"is bool":return"boolean"==typeof r;case"is odd":return"number"==typeof r&&r%2==1;case"is num":return"number"==typeof r;case"is object":return null!==r&&"object"==typeof r;case"is str":return"string"==typeof r;case"is prime":return"number"==typeof r&&(e=>{if(2===e)return!0;if(e<2||e%2==0)return!1;for(let t=3;t*t<=e;t+=2)if(e%t==0)return!1;return!0})(r);default:throw new Error}},name:i.UnaryOperator,priority:0,regexp:/^((is nil)|(is odd)|(is even)|(is bool)|(is num)|(is object)|(is str)|(is prime))/i,syntaxer:e=>{var t=r(e,2);let n=t[0],o=t[1];return Object.assign({block:n},o)},when:[i.Operand]},{evaluate:(e,t)=>{o.default.trace("evaluate -> unary not",e,t);const n=t;return!n.block.lexeme.evaluate(e,n.block)},name:i.UnaryNot,priority:1.5,regexp:/^!/,syntaxer:e=>Object.assign({block:e.slice(1,e.length)},e[0]),when:[i.UnaryNot]},Object.assign({name:i.Expression,when:[i.BinaryOperator]},u)];t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=u(n(3)),o=u(n(10)),i=u(n(18));function u(e){return e&&e.__esModule?e:{default:e}}t.default=class{constructor(e){this.query=e,this.evaluate=(e=>{if(!this.isValid||!this.tree){const e=`unable to evaluate target: syntax tree is invalid for query=${this.query}`;throw r.default.error(e),new Error(e)}const t=this.tree.lexeme.evaluate;return!!t&&t(e,this.tree)}),this.filter=(e=>e.filter(this.evaluate)),this.result=(0,i.default)((0,o.default)(this.query))}get isValid(){return this.result.valid}get tree(){return this.result.tree}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e&&e.__esModule?e:{default:e}}(n(3));const o=e=>{let t=0;const n=e.map(e=>{const n=Object.assign({},e,{nesting:t});return t+=e.lexeme.nesting||0,n}),i=n.filter(e=>0===e.nesting&&"number"==typeof e.lexeme.priority).sort((e,t)=>(t.lexeme.priority||-1)-(e.lexeme.priority||-1))[0];r.default.trace("parser -> pivot",i,e);const u=n.indexOf(i);if(i.lexeme.syntaxer){let t=i.lexeme.syntaxer(e,i,u);return Array.isArray(t.left)&&(t.left=o(t.left)),Array.isArray(t.right)&&(t.right=o(t.right)),Array.isArray(t.block)&&(t.block=o(t.block)),t}throw new Error(i.lexeme.name)};t.default=(e=>{const t=e.lexemes;if(!e.valid)return{valid:!1,error:`lexer -- ${e.error}`};try{return{tree:o(t),valid:!0}}catch(e){return{valid:!1,error:e}}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=((e,t=null)=>{if(t=t||(()=>{for(t=e;t&&"td"!==t.nodeName.toLowerCase();)t=t.parentElement;return t})(),!e||!t)return;let n=e;for(;"relative"!==getComputedStyle(n).position&&"sticky"!==getComputedStyle(n).position&&n.parentElement;)n=n.parentElement;let r=e;for(;"relative"!==getComputedStyle(r).position&&r.parentElement;)r=r.parentElement;const o=n.getBoundingClientRect(),i=r.getBoundingClientRect(),u=t.getBoundingClientRect(),a=u.left-o.left+n.scrollLeft,s=u.top-o.top+n.scrollTop+u.height;e.style.width=`${u.width}px`,e.style.top=`${s}px`,e.style.left=`${a}px`,e.style.position="absolute",u.top+u.height/2>i.bottom||u.top-u.height/2i.left+i.width?e.style.display="none":e.style.display="block"})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=function(e){return e&&e.__esModule?e:{default:e}}(r);class i extends r.PureComponent{constructor(e){super(e),this.handleChange=(e=>this.setState({value:e.target.value})),this.submit=(()=>this.state.value!==this.props.value&&this.props.submit(this.state.value)),this.state={value:e.value}}get propsWithDefaults(){return this.props}render(){var e=this.propsWithDefaults;const t=e.stopPropagation,n=e.updateOnBlur,r=e.updateOnSubmit;let i={onBlur:n?this.submit:void 0,onKeyDown:t?e=>e.stopPropagation():void 0,onSubmit:r?this.submit:void 0};return o.default.createElement("input",Object.assign({ref:"input",type:"text",value:this.state.value||"",onChange:this.handleChange},i))}}t.default=i,i.defaultProps={stopPropagation:!1,updateOnBlur:!0,updateOnSubmit:!0}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(this.props,[]);return function(e){c.forEach(function(t){return delete e[t]})}(o),o.className=this.props.inputClassName,o.id=this.state.inputId,o.style=n,u.default.createElement("div",{className:this.props.className,style:t},this.renderStyles(),u.default.createElement("input",r({},o,{ref:this.inputRef})),u.default.createElement("div",{ref:this.sizerRef,style:l},e),this.props.placeholder?u.default.createElement("div",{ref:this.placeHolderSizerRef,style:l},this.props.placeholder):null)}}]),t}();h.propTypes={className:a.default.string,defaultValue:a.default.any,extraWidth:a.default.oneOfType([a.default.number,a.default.string]),id:a.default.string,injectStyles:a.default.bool,inputClassName:a.default.string,inputRef:a.default.func,inputStyle:a.default.object,minWidth:a.default.oneOfType([a.default.number,a.default.string]),onAutosize:a.default.func,onChange:a.default.func,placeholder:a.default.string,placeholderIsMinWidth:a.default.bool,style:a.default.object,value:a.default.any},h.defaultProps={minWidth:1,injectStyles:!0},t.default=h},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Table=void 0;var r=u(n(23)),o=u(n(3)),i=u(n(25));function u(e){return e&&e.__esModule?e:{default:e}}o.default.setDebugLevel(r.default.debugLevel),o.default.setLogLevel(r.default.logLevel),t.Table=i.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(3),o=function(e){return e&&e.__esModule?e:{default:e}}(n(24));const i="dash_debug",u="dash_log";t.default=class{static get searchParams(){return new URL(window.location.href).searchParams||{get:()=>null}}static get debugLevel(){const e=this.searchParams.get(i)||o.default.get(i);return e&&r.DebugLevel[e]||r.DebugLevel.NONE}static get logLevel(){const e=this.searchParams.get(u)||o.default.get(u);return e&&r.LogLevel[e]||r.LogLevel.ERROR}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=864e5,o=63072e7;class i{static delete(e,t="",n="/"){let o=new Date((new Date).getTime()-r).toUTCString();document.cookie=`${e}=;expires=${o};domain=${t};path=${n}`}static get(e){if(!e.length)return;return e=e.toLowerCase(),(document.cookie.split(";").map(e=>{let t=e.split("=");return{id:t[0].trim(),value:t[1]}}).find(t=>e===t.id.toLocaleLowerCase())||{}).value}static set(e,t,n="",r="/"){let u=`${e}=${t};expires=${new Date((new Date).getTime()+o).toUTCString()};domain=${n};path=${r}`;i.get(e)&&i.delete(e,n,r),document.cookie=u}}t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.propTypes=t.defaultProps=void 0;var r=n(1),o=a(r),i=a(n(0)),u=a(n(28));function a(e){return e&&e.__esModule?e:{default:e}}n(55);class s extends r.Component{render(){return o.default.createElement(u.default,this.props)}}t.default=s;const l=t.defaultProps={pagination_mode:"fe",pagination_settings:{displayed_pages:1,current_page:0,page_size:250},navigation:"page",filtering:!1,filtering_settings:"",filtering_type:"basic",filtering_types:["basic"],sorting:!1,sorting_type:"single",sorting_settings:[],derived_viewport_dataframe:[],derived_viewport_indices:[],derived_virtual_dataframe:[],derived_virtual_indices:[],column_conditional_dropdowns:[],column_static_dropdown:[],column_conditional_styles:[],column_static_style:[],row_conditional_styles:[],row_static_style:{},dataframe:[],columns:[],editable:!1,active_cell:[],selected_cell:[[]],selected_rows:[],row_selectable:!1,table_style:[]},c=t.propTypes={active_cell:i.default.array,columns:i.default.arrayOf(i.default.object),dataframe:i.default.arrayOf(i.default.object),dataframe_previous:i.default.arrayOf(i.default.object),dataframe_timestamp:i.default.any,editable:i.default.bool,end_cell:i.default.arrayOf(i.default.number),id:i.default.string.isRequired,is_focused:i.default.bool,merge_duplicate_headers:i.default.bool,n_fixed_columns:i.default.number,n_fixed_rows:i.default.number,row_deletable:i.default.bool,row_selectable:i.default.oneOf(["single","multi",!1]),selected_cell:i.default.arrayOf(i.default.arrayOf(i.default.number)),selected_rows:i.default.arrayOf(i.default.number),setProps:i.default.any,start_cell:i.default.arrayOf(i.default.number),style_as_list_view:i.default.bool,table_style:i.default.arrayOf(i.default.shape({selector:i.default.string,rule:i.default.string})),pagination_mode:i.default.oneOf(["fe","be",!0,!1]),pagination_settings:i.default.shape({displayed_pages:i.default.number,current_page:i.default.number,page_size:i.default.number}),navigation:i.default.string,column_conditional_dropdowns:i.default.arrayOf(i.default.shape({id:i.default.string,dropdowns:i.default.arrayOf(i.default.shape({condition:i.default.string,dropdown:i.default.arrayOf(i.default.shape({label:i.default.string,value:i.default.any}))}))})),column_static_dropdown:i.default.arrayOf(i.default.shape({id:i.default.string,dropdown:i.default.arrayOf(i.default.shape({label:i.default.string,value:i.default.any}))})),column_conditional_style:i.default.arrayOf(i.default.shape({id:i.default.string,styles:i.default.arrayOf(i.default.shape({condition:i.default.string,style:i.default.object}))})),column_static_style:i.default.arrayOf(i.default.shape({id:i.default.string,style:i.default.object})),row_conditional_styles:i.default.arrayOf(i.default.shape({condition:i.default.string,style:i.default.object})),row_static_style:i.default.object,filtering:i.default.oneOf(["fe","be",!0,!1]),filtering_settings:i.default.string,filtering_type:i.default.oneOf(["basic"]),filtering_types:i.default.arrayOf(i.default.oneOf(["basic"])),sorting:i.default.oneOf(["fe","be",!0,!1]),sorting_type:i.default.oneOf(["single","multi"]),sorting_settings:i.default.arrayOf(i.default.shape({columnId:i.default.oneOfType([i.default.string,i.default.number]),direction:i.default.oneOf(["asc","desc"])})),sorting_treat_empty_string_as_none:i.default.bool,derived_viewport_dataframe:i.default.arrayOf(i.default.object),derived_viewport_indices:i.default.arrayOf(i.default.number),derived_virtual_dataframe:i.default.arrayOf(i.default.object),derived_virtual_indices:i.default.arrayOf(i.default.number),dropdown_properties:i.default.any};s.defaultProps=l,s.propTypes=c},function(e,t,n){"use strict";var r=n(27);function o(){}e.exports=function(){function e(e,t,n,o,i,u){if(u!==r){var a=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw a.name="Invariant Violation",a}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t};return n.checkPropTypes=o,n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=p(r),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),u=n(5),a=p(n(29)),s=p(n(45)),l=p(n(46)),c=p(n(47));function p(e){return e&&e.__esModule?e:{default:e}}n(48),n(51),n(53);const d=/^derived_/;t.default=class extends r.Component{constructor(e){super(e),this.__setProps=(0,u.memoizeOne)(e=>e?t=>{if(i.has("dataframe",t)){const e=this.props.dataframe;t.dataframe_timestamp=Date.now(),t.dataframe_previous=e}e(t)}:e=>this.setState(e)),this.paginator=(0,s.default)(),this.viewport=(0,l.default)(),this.virtual=(0,c.default)(),this.filterCache=(0,u.memoizeOneWithFlag)(e=>e),this.paginationCache=(0,u.memoizeOneWithFlag)(e=>e),this.sortCache=(0,u.memoizeOneWithFlag)(e=>e),this.viewportCache=(0,u.memoizeOneWithFlag)(e=>e),this.virtualCache=(0,u.memoizeOneWithFlag)(e=>e),this.controlled=this.getControlledProps(this.props)}componentWillReceiveProps(e){this.controlled=this.getControlledProps(e),this.updateDerivedProps()}shouldComponentUpdate(e){const t=this.props;return i.any(n=>!d.test(n)&&t[n]!==e[n],i.keysIn(t))}render(){return o.default.createElement(a.default,Object.assign({},this.controlled))}getControlledProps(e){const t=this.setProps,n=e.dataframe,r=e.filtering,o=e.filtering_settings,u=e.pagination_mode,a=e.pagination_settings,s=e.sorting,l=e.sorting_settings,c=e.sorting_treat_empty_string_as_none,p=this.virtual(n,r,o,s,l,c),d=this.viewport(u,a,p.dataframe,p.indices),f=this.paginator(u,a,t,d.dataframe);return i.mergeAll([e,{paginator:f,setProps:t,viewport:d,virtual:p}])}updateDerivedProps(){var e=this.controlled;const t=e.filtering,n=e.filtering_settings,r=e.pagination_mode,o=e.pagination_settings,i=e.sorting,u=e.sorting_settings,a=e.viewport,s=e.virtual,l=this.viewportCache(a).cached,c=this.virtualCache(s).cached,p=this.filterCache(n),d=this.paginationCache(o),f=this.sortCache(u),h=!p.cached&&!p.first&&"be"===t||!d.cached&&!d.first&&"be"===r||!f.cached&&!f.first&&"be"===i;if(c&&l&&!h)return;const v=this.setProps;let g={};c||(g.derived_virtual_dataframe=s.dataframe,g.derived_virtual_indices=s.indices),l||(g.derived_viewport_dataframe=a.dataframe,g.derived_viewport_indices=a.indices),h&&(g.active_cell=void 0,g.selected_cell=void 0,g.selected_rows=void 0),setTimeout(()=>v(g),0)}get setProps(){return this.__setProps(this.props.setProps)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=m(r),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),u=m(n(12)),a=n(13),s=n(14),l=n(30),c=n(31),p=m(c),d=m(n(3)),f=n(5),h=m(n(10)),v=m(n(34)),g=m(n(37)),y=m(n(19)),b=m(n(41));function m(e){return e&&e.__esModule?e:{default:e}}const x=i.sort((e,t)=>e-t);t.default=class extends r.PureComponent{constructor(e){super(e),this.getLexerResult=(0,f.memoizeOne)(h.default),this.handleClickOutside=(e=>{const t=this.$el;t&&!t.contains(e.target)&&this.props.is_focused&&this.props.setProps({is_focused:!1})}),this.handlePaste=(e=>{const t=this.$el;t&&t.contains(document.activeElement)&&this.onPaste(e)}),this.handleResize=(()=>{var e=this.refs;const t=e.r0c0,n=e.r0c1,r=e.r1c0,o=e.r1c1;let i=n.querySelectorAll("tr");t.querySelectorAll("tr").forEach((e,t)=>{const n=i[t];e.style.height=getComputedStyle(n).height});let u=o.querySelectorAll("tr > th:first-of-type");r.querySelectorAll("tr > th:first-of-type").forEach((e,t)=>{const n=u[t].parentElement;e.parentElement.style.height=getComputedStyle(n).height});const a=o.querySelector("tr > td:first-of-type");if(a){const e=a.parentElement;this.stylesheet.setRule(".cell-1-0 tr",`height: ${getComputedStyle(e).height}`)}}),this.handleKeyDown=(e=>{var t=this.props;const n=t.active_cell,r=t.columns,o=t.setProps,i=t.is_focused,u=t.editable;if(d.default.trace(`handleKeyDown: ${e.key}`),(0,s.isCtrlMetaKey)(e.keyCode))return;const l=(0,s.isCtrlDown)(e);l&&e.keyCode===s.KEY_CODES.V||e.keyCode===s.KEY_CODES.C&&l&&!i||(e.keyCode!==s.KEY_CODES.ESCAPE?e.keyCode!==s.KEY_CODES.ENTER||i||!(0,a.colIsEditable)(u,r[n[1]])?i&&e.keyCode!==s.KEY_CODES.TAB&&e.keyCode!==s.KEY_CODES.ENTER||((0,s.isNavKey)(e.keyCode)?this.switchCell(e):e.keyCode===s.KEY_CODES.BACKSPACE||e.keyCode===s.KEY_CODES.DELETE?this.deleteCell(e):this.props.is_focused||!(0,a.colIsEditable)(u,r[n[1]])||(0,s.isMetaKey)(e.keyCode)||o({is_focused:!0})):o({is_focused:!0}):o({is_focused:!1}))}),this.switchCell=(e=>{const t=e;var n=this.props;const r=n.active_cell,o=n.columns,u=n.row_deletable,a=n.row_selectable,l=n.selected_cell,c=n.setProps,p=n.viewport;e.preventDefault(),this.$el.focus();const d=l.length>1,f=t.keyCode===s.KEY_CODES.ENTER||t.keyCode===s.KEY_CODES.TAB;if(d&&f)return void c({is_focused:!1,active_cell:this.getNextCell(t,{currentCell:r,restrictToSelection:!0})});if(!t.shiftKey){const e=this.getNextCell(t,{currentCell:r,restrictToSelection:!1});return void c({is_focused:!1,selected_cell:[e],active_cell:e})}let h=[],v=[];const g=x(i.uniq(i.pluck(0,l))),y=x(i.uniq(i.pluck(1,l))),b=g[0],m=y[0],w=g[g.length-1],E=y[y.length-1],_=(u?1:0)+(a?1:0),O=[];o.forEach((e,t)=>{e.hidden||O.push(t+_)});const S=t.keyCode===s.KEY_CODES.ARROW_DOWN||t.keyCode===s.KEY_CODES.ENTER,C=t.keyCode===s.KEY_CODES.ARROW_UP,A=t.keyCode===s.KEY_CODES.ARROW_RIGHT||t.keyCode===s.KEY_CODES.TAB,k=t.keyCode===s.KEY_CODES.ARROW_LEFT;S&&r[0]>b?v=y.map(e=>[b,e]):S&&w!==p.dataframe.length-1?h=y.map(e=>[w+1,e]):C&&r[0][w,e]):C&&b>0?h=y.map(e=>[b-1,e]):k&&r[1][e,E]):k&&m>0?h=g.map(e=>[e,m-1]):A&&r[1]>m?v=g.map(e=>[e,m]):A&&E+1<=i.last(O)&&(h=g.map(e=>[e,E+1])),c({is_focused:!1,selected_cell:i.without(v,i.uniq(i.concat(h,l)))})}),this.deleteCell=(e=>{var t=this.props;const n=t.columns,r=t.dataframe,o=t.editable,u=t.row_deletable,s=t.row_selectable,l=t.selected_cell,c=t.setProps,p=t.viewport;e.preventDefault();let d=r;const f=(u?1:0)+(s?1:0);i.map(e=>[p.indices[e[0]],e[1]-f],l).forEach(e=>{(0,a.colIsEditable)(o,n[e[1]])&&(d=i.set(i.lensPath([e[0],n[e[1]].id]),"",d))}),c({dataframe:d})}),this.getNextCell=((e,{restrictToSelection:t,currentCell:n})=>{var r=this.props;const o=r.columns,u=r.row_deletable,a=r.row_selectable,c=r.selected_cell,p=r.viewport,d=e,f=[],h=(u?1:0)+(a?1:0);switch(t||o.forEach((e,t)=>{e.hidden||f.push(t+h)}),d.keyCode){case s.KEY_CODES.ARROW_LEFT:return t?(0,l.selectionCycle)([n[0],n[1]-1],c):[n[0],i.max(f[0],f[i.indexOf(n[1],f)-1])];case s.KEY_CODES.ARROW_RIGHT:case s.KEY_CODES.TAB:return t?(0,l.selectionCycle)([n[0],n[1]+1],c):[n[0],i.min(i.last(f),f[i.indexOf(n[1],f)+1])];case s.KEY_CODES.ARROW_UP:return t?(0,l.selectionCycle)([n[0]-1,n[1]],c):[i.max(0,n[0]-1),n[1]];case s.KEY_CODES.ARROW_DOWN:case s.KEY_CODES.ENTER:return t?(0,l.selectionCycle)([n[0]+1,n[1]],c):[i.min(p.dataframe.length-1,n[0]+1),n[1]];default:throw new Error(`Table.getNextCell: unknown navigation keycode ${d.keyCode}`)}}),this.onCopy=(e=>{var t=this.props;const n=t.columns,r=t.row_deletable,o=t.row_selectable,u=t.selected_cell,a=t.viewport,s=(r?1:0)+(o?1:0),l=i.map(e=>[e[0],e[1]-s],u);v.default.toClipboard(e,l,n,a.dataframe),this.$el.focus()}),this.onPaste=(e=>{var t=this.props;const n=t.active_cell,r=t.columns,o=t.dataframe,i=t.editable,u=t.filtering_settings,a=t.row_deletable,s=t.row_selectable,l=t.setProps,c=t.sorting_settings,p=t.viewport;if(!i)return;const d=(a?1:0)+(s?1:0),f=[n[0],n[1]-d],h=v.default.fromClipboard(e,f,p.indices,r,o,!0,!c.length||!u.length);h&&l(h)}),this.loadNext=(()=>{this.props.paginator.loadNext()}),this.loadPrevious=(()=>{this.props.paginator.loadPrevious()}),this.onContainerScroll=(e=>{if(!this.props.n_fixed_columns)return;const t=this.refs.spreadsheet;e.target===t&&this.stylesheet.setRule(".frozen-left",`margin-top: ${-e.target.scrollTop}px;`)}),this.applyStyle=((e,t,n)=>{let r=0;t&&(this.stylesheet.setRule(`.dash-spreadsheet-inner td.column-${r}`,"width: 30px; max-width: 30px; min-width: 30px;"),this.stylesheet.setRule(`.dash-spreadsheet-inner th.column-${r}`,"width: 30px; max-width: 30px; min-width: 30px;"),++r),n&&(this.stylesheet.setRule(`.dash-spreadsheet-inner td.column-${r}`,"width: 30px; max-width: 30px; min-width: 30px;"),this.stylesheet.setRule(`.dash-spreadsheet-inner th.column-${r}`,"width: 30px; max-width: 30px; min-width: 30px;"),++r),i.forEach(e=>{const t=u.default.unit(e.width||c.DEFAULT_CELL_WIDTH,"px");this.stylesheet.setRule(`.dash-spreadsheet-inner td.column-${r}`,`width: ${t}; max-width: ${t}; min-width: ${t};`),this.stylesheet.setRule(`.dash-spreadsheet-inner th.column-${r}`,`width: ${t}; max-width: ${t}; min-width: ${t};`),++r},e)}),this.renderFragment=(e=>e?o.default.createElement("table",{tabIndex:-1},o.default.createElement("tbody",null,e.map((e,t)=>o.default.createElement("tr",{key:`row-${t}`},e)))):null),this.handleSetFilter=(e=>this.props.setProps({filtering_settings:e})),this.getCells=(()=>[...this.headerFactory.createHeaders(),...this.filterFactory.createFilters(),...this.cellFactory.createCells()]),this.getFragments=((e,t,n)=>{const r=t?i.map(e=>e.splice(0,i.reduceWhile(e=>e.count(e.cells++,e.count+=t.props.colSpan||1,e),{cells:0,count:0},e).cells),e):null,o=n?e.splice(0,n):null,u=n&&r?r.splice(0,n):null;return[[this.renderFragment(u),this.renderFragment(o)],[this.renderFragment(r),this.renderFragment(e)]]}),this.handleDropdown=(()=>{const e=this.refs.r1c1;(0,y.default)(e.querySelector(".Select-menu-outer"))}),this.onScroll=(e=>{const t=this.refs.r0c1;d.default.trace(`ControlledTable fragment scrolled to (left,top)=(${e.target.scrollLeft},${e.target.scrollTop})`),t.style.marginLeft=`${-e.target.scrollLeft}px`,this.handleDropdown()}),this.cellFactory=new g.default(()=>this.props),this.filterFactory=new b.default(()=>{var e=this.props;const t=e.row_deletable,n=e.row_selectable,r=(t?1:0)+(n?1:0);return{columns:this.props.columns,filtering:this.props.filtering,filtering_settings:this.props.filtering_settings,filtering_type:this.props.filtering_type,id:this.props.id,offset:r,setFilter:this.handleSetFilter}}),this.headerFactory=new p.default(()=>this.props),this.stylesheet=new u.default(`#${e.id}`)}get lexerResult(){const e=this.props.filtering_settings;return this.getLexerResult(e)}componentDidMount(){this.props.selected_cell.length&&!i.contains(this.props.active_cell,this.props.selected_cell)&&this.props.setProps({active_cell:this.props.selected_cell[0]}),window.addEventListener("resize",this.handleResize),document.addEventListener("paste",this.handlePaste),document.addEventListener("mousedown",this.handleClickOutside)}componentWillUnmount(){window.removeEventListener("resize",this.handleResize),document.removeEventListener("mousedown",this.handleClickOutside),document.removeEventListener("paste",this.handlePaste)}componentWillUpdate(){const e=this.props.table_style;i.forEach(({selector:e,rule:t})=>{this.stylesheet.setRule(e,t)},e)}componentDidUpdate(){this.handleResize(),this.handleDropdown()}get $el(){return document.getElementById(this.props.id)}get displayPagination(){var e=this.props;const t=e.dataframe,n=e.navigation,r=e.pagination_mode,o=e.pagination_settings;return"page"===n&&("fe"===r&&o.page_sizeo.default.createElement("div",{key:`r${t}`,ref:`r${t}`,className:`row row-${t}`,onScroll:this.onScroll},e.map((e,n)=>o.default.createElement("div",{key:n,ref:`r${t}c${n}`,className:`cell cell-${t}-${n}`},e)))))),this.displayPagination?o.default.createElement("div",null,o.default.createElement("button",{className:"previous-page",onClick:this.loadPrevious},"Previous"),o.default.createElement("button",{className:"next-page",onClick:this.loadNext},"Next")):null)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){return function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,o=!1,i=void 0;try{for(var u,a=e[Symbol.iterator]();!(r=(u=a.next()).done)&&(n.push(u.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{!r&&a.return&&a.return()}finally{if(o)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();t.selectionCycle=function(e,t){const n=o.uniq(o.pluck(0,t)).sort((e,t)=>e-t),i=o.uniq(o.pluck(1,t)).sort((e,t)=>e-t),u=n[0],a=i[0],s=n[n.length-1],l=i[i.length-1];var c=r(e,2);const p=c[0],d=c[1],f=[p,d];p>s&&(f[0]=u,f[1]=d+1>l?a:d+1);pl&&(f[1]=a,f[0]=p+1>s?u:p+1);dArray.isArray(e.name)?e.name.length:1,h=(e,t)=>Array.isArray(e.name)?e.name[t]:"";t.default=class{constructor(e){this.propsFn=e}get props(){return this.propsFn()}getSorting(e,t){const n=o.find(t=>t.columnId===e,t);return n?n.direction:u.SortDirection.None}doSort(e,t){return()=>{const n=t.sorting_settings,r=t.sorting_type;let o;switch(this.getSorting(e,n)){case u.SortDirection.Descending:o=u.SortDirection.Ascending;break;case u.SortDirection.Ascending:o=u.SortDirection.None;break;case u.SortDirection.None:default:o=u.SortDirection.Descending}const i="single"===r?s.default:a.default;t.setProps({sorting_settings:i(n,{columnId:e,direction:o})})}}getSortingIcon(e,t){const n=t.sorting_settings;switch(this.getSorting(e,n)){case u.SortDirection.Descending:return"↑";case u.SortDirection.Ascending:return"↓";case u.SortDirection.None:default:return"↕"}}createHeaderCells(e){const t=e.columns,n=e.columnRowIndex,u=e.labels,a=e.mergeCells,s=e.n_fixed_columns,c=e.offset,p=e.pagination_mode,f=e.rowSorting;let h=[];if(a){h=[0];let e=0;u.forEach((n,r)=>{t[r].hidden||n===u[e]||(h.push(r),e=r)})}else h=o.range(0,t.length);const v=t.filter(e=>!e.hidden);return o.filter(e=>!!e,h.map((g,y)=>{const b=t[g];if(b.hidden)return null;const m=v.indexOf(b)+c;let x;if(a){const e=o.slice(g,h[y+1]||1/0,t).filter(o.propEq("hidden",!0)).length;x=g===o.last(h)?u.length-g-e:h[y+1]-g-e}else x=1;const w=v.indexOf(b),E=`calc(${v.filter((e,t)=>!e.hidden&&t>=w&&ti.default.unit(e.width||d,"px")).join(" + ")})`;return r.default.createElement("th",{key:`header-cell-${g}`,colSpan:x,className:`column-${g+c} `+(g===t.length-1||g===o.last(h)?"cell--right-last ":""),style:m{(0,n.setProps)(l.editColumnName(e,t,n))}}(b,n,e)},"✎"):"",b.deletable&&"be"!==p&&"Boolean"===o.type(b.deletable)||"Number"===o.type(b.deletable)&&b.deletable===n?r.default.createElement("span",{className:"column-header--delete",onClick:function(e,t,n){return()=>{(0,n.setProps)(l.deleteColumn(e,t,n))}}(b,n,e)},"×"):"",r.default.createElement("span",null,u[g]))}))}createDeletableHeader(e){return e.row_deletable?r.default.createElement("th",{key:"delete",className:"expanded-row--empty-cell",style:{width:"30px",maxWidth:"30px",minWidth:"30px"}}):null}createSelectableHeader(e){return e.row_selectable?r.default.createElement("th",{key:"select",className:"expanded-row--empty-cell",style:{width:"30px",maxWidth:"30px",minWidth:"30px"}}):null}createHeaders(){const e=this.props;let t=e.columns,n=e.dataframe,r=e.sorting,i=e.merge_duplicate_headers,u=e.n_fixed_columns,a=e.pagination_mode,s=e.row_deletable,l=e.row_selectable,c=e.setProps,p=e.sorting_settings,d=e.sorting_type;const v=(s?1:0)+(l?1:0),g=this.createDeletableHeader(e),y=this.createSelectableHeader(e),b=Math.max.apply(Math,t.map(f));let m;return m=1===b?[[...g?[g]:[],...y?[y]:[],...this.createHeaderCells({columns:t,columnRowIndex:0,dataframe:n,labels:o.pluck("name",t),n_fixed_columns:u,offset:v,pagination_mode:a,rowSorting:r,setProps:c,sorting_settings:p,sorting_type:d})]]:o.range(0,b).map(e=>[...g?[g]:[],...y?[y]:[],...this.createHeaderCells({columns:t,columnRowIndex:e,dataframe:n,labels:t.map(t=>o.isNil(t.name)&&e===b-1?t.id:h(t,e)),n_fixed_columns:u,offset:v,pagination_mode:a,rowSorting:!!r&&e+1===b,mergeCells:i&&e+1!==b,setProps:c,sorting_settings:p,sorting_type:d})])}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),o=function(e){return e&&e.__esModule?e:{default:e}}(n(3)),i=n(7);t.default=((e,t)=>{if(o.default.trace("multi - updateSettings",e,t),e=r.clone(e),t.direction===i.SortDirection.None){const n=r.findIndex(e=>e.columnId===t.columnId,e);-1!==n&&e.splice(n,1)}else{const n=r.find(e=>e.columnId===t.columnId,e);n?n.direction=t.direction:e.push(t)}return e})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e&&e.__esModule?e:{default:e}}(n(3)),o=n(7);t.default=((e,t)=>(r.default.trace("single - updateSettings",e,t),t.direction===o.SortDirection.None?[]:[t]))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),o=s(n(35)),i=s(n(36)),u=s(n(3)),a=n(13);function s(e){return e&&e.__esModule?e:{default:e}}t.default=class{static toClipboard(e,t,n,a){const s=r.uniq(r.pluck(0,t).sort((e,t)=>e-t)),l=r.uniq(r.pluck(1,t).sort((e,t)=>e-t)),c=r.slice(r.head(s),r.last(s)+1,a).map(e=>r.props(l,r.props(r.pluck("id",n),e))),p=o.default.prototype.stringify(c);u.default.trace("TableClipboard -- set clipboard data: ",p),i.default.set(e,p)}static fromClipboard(e,t,n,s,l,c=!0,p=!0){const d=i.default.get(e);if(u.default.trace("TableClipboard -- get clipboard data: ",d),!d)return;const f=o.default.prototype.parse(d);let h=l;const v=s;if(c&&f[0].length+t[1]>=s.length)for(let e=s.length;et[`Column ${e}`]="");p&&u.default.debug("Clipboard -- Sorting or filtering active, do not create new rows");const g=n[t[0]];if(p&&f.length+g>=l.length){const e={};s.forEach(t=>e[t.id]=""),h=r.concat(h,r.repeat(e,f.length+g-l.length))}return f.forEach((e,o)=>e.forEach((e,i)=>{const u=t[0]+o;if(n.length<=t[0]+o)return;const s=n[u],l=t[1]+i,c=v[l];c&&(0,a.colIsEditable)(!0,c)&&(h=r.set(r.lensPath([s,c.id]),e,h))})),{dataframe:h,columns:v}}}},function(e,t){!function(t){"use strict";function n(){}function r(e){return e.split('"').length-1}n.prototype=Object.create(Object.prototype,{parse:{value:function(e){var t,n,o,i,u,a,s,l=[],c=0;for((o=e.split("\n")).length>1&&""===o[o.length-1]&&o.pop(),t=0,n=o.length;t0&&(u+="\t"),"string"==typeof(i=e[t][r])?i.indexOf("\n")>-1?u+='"'+i.replace(/"/g,'""')+'"':u+=i:u+=null===i||void 0===i?"":i;u+="\n"}return u},enumerable:!0,configurable:!1,writable:!1}}),void 0!==e&&e.exports?e.exports=n:t.SheetClip=n}(this)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.default=class{static set(e,t){e.clipboardData.setData("text/plain",t),e.preventDefault()}static get(e){let t;return t=e.clipboardData?e.clipboardData.getData("text/plain"):void 0}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=s(n(2)),o=a(n(1)),i=a(n(38)),u=s(n(15));function a(e){return e&&e.__esModule?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}t.default=class{constructor(e){this.propsFn=e,this.handlers=new Map,this.isCellSelected=((e,t,n)=>e&&r.contains([t,n],e)),this.getEventHandler=((e,t,n)=>{const r=this.handlers.get(e)||this.handlers.set(e,new Map).get(e),o=r.get(t)||r.set(t,new Map).get(t);return o.get(n)||o.set(n,e.bind(this,t,n)).get(n)}),this.handleClick=((e,t,n)=>{var o=this.props;const i=o.columns,u=o.editable,a=o.is_focused,s=o.row_deletable,l=o.row_selectable,c=o.selected_cell,p=o.setProps,d=this.isCellSelected(c,e,t);if(!u)return;if(a||n.preventDefault(),d)return;const f=(s?1:0)+(l?1:0);n.preventDefault();const h=[e,t+f],v={is_focused:!1,active_cell:h},g=[];i.forEach((e,t)=>{e.hidden||g.push(t+f)});const y=r.uniq(r.pluck(0,c)).sort((e,t)=>e-t),b=r.uniq(r.pluck(1,c)).sort((e,t)=>e-t),m=y[0],x=b[0];n.shiftKey?v.selected_cell=r.xprod(r.range(r.min(m,h[0]),r.max(m,h[0])+1),r.range(r.min(x,h[1]),r.max(x,h[1])+1)).filter(e=>r.contains(e[1],g)):v.selected_cell=[h],p(v)}),this.handleDoubleClick=((e,t,n)=>{var r=this.props;const o=r.editable,i=r.is_focused,u=r.row_deletable,a=r.row_selectable,s=r.setProps;if(!o)return;const l=[e,t+((u?1:0)+(a?1:0))];i||(n.preventDefault(),s({selected_cell:[l],active_cell:l,is_focused:!0}))}),this.handleChange=((e,t,n)=>{var o=this.props;const i=o.columns,u=o.dataframe,a=o.editable,s=o.setProps,l=i[t];a&&s({dataframe:r.set(r.lensPath([e,l.id]),n,u)})}),this.handlePaste=(e=>{e.preventDefault()})}get props(){return this.propsFn()}rowSelectCell(e){var t=this.props;const n=t.setProps,i=t.selected_rows,u=t.row_selectable;return u?o.default.createElement("td",{key:"select",className:"select-cell",style:{width:"30px",maxWidth:"30px",minWidth:"30px"}},o.default.createElement("input",{type:"single"===u?"radio":"checkbox",name:"row-select",checked:r.contains(e,i),onChange:()=>n({selected_rows:"single"===u?[e]:r.ifElse(r.contains(e),r.without([e]),r.append(e))(i)})})):null}rowDeleteCell(e){var t=this.props;const n=t.setProps;return t.row_deletable?o.default.createElement("td",{key:"delete",className:"delete-cell",onClick:()=>n(u.deleteRow(e,this.props)),style:{width:"30px",maxWidth:"30px",minWidth:"30px"}},"×"):null}createCells(){var e=this.props;const t=e.active_cell,n=e.columns,u=e.column_conditional_dropdowns,a=e.column_conditional_styles,s=e.column_static_dropdown,l=e.column_static_style,c=e.dropdown_properties,p=e.editable,d=e.id,f=e.is_focused,h=e.row_deletable,v=e.row_selectable,g=e.selected_cell,y=e.viewport,b=n.filter(e=>!e.hidden),m=(h?1:0)+(v?1:0);return y.dataframe.map((e,h)=>{const v=y.indices[h],x=this.rowDeleteCell(v),w=this.rowSelectCell(v),E=b.map((y,b)=>{b+=m;let x=(c&&c[y.id]&&(c[y.id].length>v?c[y.id][v]:null)||y||{}).options;const w=n.indexOf(y),E=[`column-${w+m}`];let _=u.find(e=>e.id===y.id),O=s.find(e=>e.id===y.id);_=_&&_.dropdowns,O=x||O&&O.dropdown;let S=a.find(e=>e.id===y.id),C=l.find(e=>e.id===y.id);return S=S&&S.styles,C=C&&C.style,o.default.createElement(i.default,{key:`${y.id}-${b}`,active:t[0]===h&&t[1]===w+m,classes:E,clearable:y.clearable,conditionalDropdowns:_,conditionalStyles:S,datum:e,editable:p,focused:!!f,onClick:this.getEventHandler(this.handleClick,h,w),onDoubleClick:this.getEventHandler(this.handleDoubleClick,h,w),onPaste:this.handlePaste,onChange:this.getEventHandler(this.handleChange,v,w),property:y.id,selected:r.contains([h,w+m],g),staticDropdown:O,staticStyle:C,tableId:d,type:y.type,value:e[y.id]})});return w&&E.unshift(w),x&&E.unshift(x),E})}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),o=n(1),i=f(o),u=f(n(39)),a=n(11),s=n(5),l=f(n(40)),c=f(n(17)),p=n(14),d=f(n(19));function f(e){return e&&e.__esModule?e:{default:e}}class h extends o.Component{constructor(e){super(e),this.getDropdown=(0,s.memoizeOne)((...e)=>e.length?e.slice(-1)[0]:void 0),this.getStyle=(0,s.memoizeOne)((...e)=>e.length?r.mergeAll(e):void 0),this.propagateChange=(()=>{if(this.state.value===this.props.value)return;(0,this.props.onChange)(this.state.value)}),this.handleChange=(e=>{this.setState({value:e.target.value})}),this.handleKeyDown=(e=>{e.keyCode===p.KEY_CODES.ENTER&&this.propagateChange()}),this.handleOpenDropdown=(()=>{var e=this.refs;const t=e.dropdown,n=e.td;(0,d.default)(t.wrapper.querySelector(".Select-menu-outer"),n)}),this.state={value:e.value}}get propsWithDefaults(){return this.props}get classes(){var e=this.propsWithDefaults;let t=e.active,n=e.classes,r=e.editable,o=e.selected,i=e.type;return[...t?["focused"]:[],...r?[]:["cell--uneditable"],...o?["cell--selected"]:[],..."dropdown"===i?["dropdown"]:[],...n]}renderDropdown(){var e=this.propsWithDefaults;const t=e.clearable,n=e.onChange,r=e.value,o=this.dropdown;return o?i.default.createElement(u.default,{ref:"dropdown",clearable:t,onChange:e=>{n(e?e.value:e)},onOpen:this.handleOpenDropdown,options:o,placeholder:"",value:r}):this.renderValue()}renderInput(){var e=this.propsWithDefaults;const t=e.active,n=e.focused,r=e.onClick,o=e.onDoubleClick,u=e.onPaste,a={className:[...t?["input-active"]:[],...n?["focused"]:["unfocused"],...["cell-value"]].join(" "),onClick:r,onDoubleClick:o};return t||this.state.value!==this.props.value?i.default.createElement("input",Object.assign({ref:"textInput",type:"text",value:this.state.value,onBlur:this.propagateChange,onChange:this.handleChange,onKeyDown:this.handleKeyDown,onPaste:u},a)):this.renderValue(a)}renderValue(e={}){const t=this.propsWithDefaults.value;return i.default.createElement("div",Object.assign({},e),t)}renderInner(){switch(this.props.type){case"text":case"numeric":return this.renderInput();case"dropdown":return this.renderDropdown();default:return this.renderValue()}}get dropdown(){var e=this.propsWithDefaults;let t=e.conditionalDropdowns,n=e.datum,o=e.property,i=e.staticDropdown,u=e.tableId;const a=[...i?[i]:[],...r.map(([e])=>e.dropdown,r.filter(([e,t])=>h.dropdownAstCache([u,o,t],[e.condition]).evaluate(n),r.addIndex(r.map)((e,t)=>[e,t],t)))];return this.getDropdown(...a)}get style(){var e=this.propsWithDefaults;let t=e.conditionalStyles,n=e.datum,o=e.property,i=e.staticStyle,u=e.tableId;const a=[i,...r.map(([e])=>e.style,r.filter(([e,t])=>h.styleAstCache([u,o,t],[e.condition]).evaluate(n),r.addIndex(r.map)((e,t)=>[e,t],t)))];return this.getStyle(...a)}render(){return i.default.createElement("td",{ref:"td",tabIndex:-1,className:this.classes.join(" "),style:this.style},this.renderInner())}componentWillReceiveProps(e){const t=e.value;this.state.value!==t&&this.setState({value:t})}componentDidUpdate(){const e=this.propsWithDefaults.active,t=this.refs.textInput;e&&t&&document.activeElement!==t&&(t.focus(),t.setSelectionRange(0,t.value?t.value.length:0)),e&&this.refs.dropdown&&this.refs.td.focus()}shouldComponentUpdate(e,t){const n=this.props,r=this.state;return!(0,a.isEqual)(n,e,!0)||!(0,a.isEqual)(r,t,!0)}}t.default=h,h.dropdownAstCache=(0,l.default)(e=>new c.default(e)),h.styleAstCache=(0,l.default)(e=>new c.default(e)),h.defaultProps={classes:[],conditionalDropdowns:[],conditionalStyles:[],staticStyle:{},type:"text"}},function(e,t,n){"use strict";n.r(t),n.d(t,"Async",function(){return V}),n.d(t,"AsyncCreatable",function(){return Y}),n.d(t,"Creatable",function(){return L}),n.d(t,"Value",function(){return F}),n.d(t,"Option",function(){return k}),n.d(t,"defaultMenuRenderer",function(){return b}),n.d(t,"defaultArrowRenderer",function(){return d}),n.d(t,"defaultClearRenderer",function(){return f}),n.d(t,"defaultFilterOptions",function(){return y});var r=n(21),o=n.n(r),i=n(4),u=n.n(i),a=n(0),s=n.n(a),l=n(1),c=n.n(l),p=n(6),d=function(e){var t=e.onMouseDown;return c.a.createElement("span",{className:"Select-arrow",onMouseDown:t})};d.propTypes={onMouseDown:s.a.func};var f=function(){return c.a.createElement("span",{className:"Select-clear",dangerouslySetInnerHTML:{__html:"×"}})},h=[{base:"A",letters:/[\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F]/g},{base:"AA",letters:/[\uA732]/g},{base:"AE",letters:/[\u00C6\u01FC\u01E2]/g},{base:"AO",letters:/[\uA734]/g},{base:"AU",letters:/[\uA736]/g},{base:"AV",letters:/[\uA738\uA73A]/g},{base:"AY",letters:/[\uA73C]/g},{base:"B",letters:/[\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181]/g},{base:"C",letters:/[\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E]/g},{base:"D",letters:/[\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779]/g},{base:"DZ",letters:/[\u01F1\u01C4]/g},{base:"Dz",letters:/[\u01F2\u01C5]/g},{base:"E",letters:/[\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E]/g},{base:"F",letters:/[\u0046\u24BB\uFF26\u1E1E\u0191\uA77B]/g},{base:"G",letters:/[\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E]/g},{base:"H",letters:/[\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D]/g},{base:"I",letters:/[\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197]/g},{base:"J",letters:/[\u004A\u24BF\uFF2A\u0134\u0248]/g},{base:"K",letters:/[\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2]/g},{base:"L",letters:/[\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780]/g},{base:"LJ",letters:/[\u01C7]/g},{base:"Lj",letters:/[\u01C8]/g},{base:"M",letters:/[\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C]/g},{base:"N",letters:/[\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4]/g},{base:"NJ",letters:/[\u01CA]/g},{base:"Nj",letters:/[\u01CB]/g},{base:"O",letters:/[\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u00D6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C]/g},{base:"OI",letters:/[\u01A2]/g},{base:"OO",letters:/[\uA74E]/g},{base:"OU",letters:/[\u0222]/g},{base:"P",letters:/[\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754]/g},{base:"Q",letters:/[\u0051\u24C6\uFF31\uA756\uA758\u024A]/g},{base:"R",letters:/[\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782]/g},{base:"S",letters:/[\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784]/g},{base:"T",letters:/[\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786]/g},{base:"TZ",letters:/[\uA728]/g},{base:"U",letters:/[\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u00DC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244]/g},{base:"V",letters:/[\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245]/g},{base:"VY",letters:/[\uA760]/g},{base:"W",letters:/[\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72]/g},{base:"X",letters:/[\u0058\u24CD\uFF38\u1E8A\u1E8C]/g},{base:"Y",letters:/[\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE]/g},{base:"Z",letters:/[\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762]/g},{base:"a",letters:/[\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250]/g},{base:"aa",letters:/[\uA733]/g},{base:"ae",letters:/[\u00E6\u01FD\u01E3]/g},{base:"ao",letters:/[\uA735]/g},{base:"au",letters:/[\uA737]/g},{base:"av",letters:/[\uA739\uA73B]/g},{base:"ay",letters:/[\uA73D]/g},{base:"b",letters:/[\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253]/g},{base:"c",letters:/[\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184]/g},{base:"d",letters:/[\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A]/g},{base:"dz",letters:/[\u01F3\u01C6]/g},{base:"e",letters:/[\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD]/g},{base:"f",letters:/[\u0066\u24D5\uFF46\u1E1F\u0192\uA77C]/g},{base:"g",letters:/[\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F]/g},{base:"h",letters:/[\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265]/g},{base:"hv",letters:/[\u0195]/g},{base:"i",letters:/[\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131]/g},{base:"j",letters:/[\u006A\u24D9\uFF4A\u0135\u01F0\u0249]/g},{base:"k",letters:/[\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3]/g},{base:"l",letters:/[\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747]/g},{base:"lj",letters:/[\u01C9]/g},{base:"m",letters:/[\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F]/g},{base:"n",letters:/[\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5]/g},{base:"nj",letters:/[\u01CC]/g},{base:"o",letters:/[\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275]/g},{base:"oi",letters:/[\u01A3]/g},{base:"ou",letters:/[\u0223]/g},{base:"oo",letters:/[\uA74F]/g},{base:"p",letters:/[\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755]/g},{base:"q",letters:/[\u0071\u24E0\uFF51\u024B\uA757\uA759]/g},{base:"r",letters:/[\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783]/g},{base:"s",letters:/[\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B]/g},{base:"t",letters:/[\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787]/g},{base:"tz",letters:/[\uA729]/g},{base:"u",letters:/[\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289]/g},{base:"v",letters:/[\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C]/g},{base:"vy",letters:/[\uA761]/g},{base:"w",letters:/[\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73]/g},{base:"x",letters:/[\u0078\u24E7\uFF58\u1E8B\u1E8D]/g},{base:"y",letters:/[\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF]/g},{base:"z",letters:/[\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763]/g}],v=function(e){for(var t=0;t-1)return!1;if(r.filterOption)return r.filterOption.call(void 0,e,t);if(!t)return!0;var o=e[r.valueKey],i=e[r.labelKey],u=g(o),a=g(i);if(!u&&!a)return!1;var s=u?String(o):null,l=a?String(i):null;return r.ignoreAccents&&(s&&"label"!==r.matchProp&&(s=v(s)),l&&"value"!==r.matchProp&&(l=v(l))),r.ignoreCase&&(s&&"label"!==r.matchProp&&(s=s.toLowerCase()),l&&"value"!==r.matchProp&&(l=l.toLowerCase())),"start"===r.matchPos?s&&"label"!==r.matchProp&&s.substr(0,t.length)===t||l&&"value"!==r.matchProp&&l.substr(0,t.length)===t:s&&"label"!==r.matchProp&&s.indexOf(t)>=0||l&&"value"!==r.matchProp&&l.indexOf(t)>=0})},b=function(e){var t=e.focusedOption,n=e.focusOption,r=e.inputValue,o=e.instancePrefix,i=e.onFocus,a=e.onOptionRef,s=e.onSelect,l=e.optionClassName,p=e.optionComponent,d=e.optionRenderer,f=e.options,h=e.removeValue,v=e.selectValue,g=e.valueArray,y=e.valueKey,b=p;return f.map(function(e,p){var f=g&&g.some(function(t){return t[y]===e[y]}),m=e===t,x=u()(l,{"Select-option":!0,"is-selected":f,"is-focused":m,"is-disabled":e.disabled});return c.a.createElement(b,{className:x,focusOption:n,inputValue:r,instancePrefix:o,isDisabled:e.disabled,isFocused:m,isSelected:f,key:"option-"+p+"-"+e[y],onFocus:i,onSelect:s,option:e,optionIndex:p,ref:function(e){a(e,m)},removeValue:h,selectValue:v},d(e,p,r))})};b.propTypes={focusOption:s.a.func,focusedOption:s.a.object,inputValue:s.a.string,instancePrefix:s.a.string,onFocus:s.a.func,onOptionRef:s.a.func,onSelect:s.a.func,optionClassName:s.a.string,optionComponent:s.a.func,optionRenderer:s.a.func,options:s.a.array,removeValue:s.a.func,selectValue:s.a.func,valueArray:s.a.array,valueKey:s.a.string};var m=function(e){e.preventDefault(),e.stopPropagation(),"A"===e.target.tagName&&"href"in e.target&&(e.target.target?window.open(e.target.href,e.target.target):window.location.href=e.target.href)},x="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},w=(function(){function e(e){this.value=e}function t(t){var n,r;function o(n,r){try{var u=t[n](r),a=u.value;a instanceof e?Promise.resolve(a.value).then(function(e){o("next",e)},function(e){o("throw",e)}):i(u.done?"return":"normal",u.value)}catch(e){i("throw",e)}}function i(e,t){switch(e){case"return":n.resolve({value:t,done:!0});break;case"throw":n.reject(t);break;default:n.resolve({value:t,done:!1})}(n=n.next)?o(n.key,n.arg):r=null}this._invoke=function(e,t){return new Promise(function(i,u){var a={key:e,arg:t,resolve:i,reject:u,next:null};r?r=r.next=a:(n=r=a,o(e,t))})},"function"!=typeof t.return&&(this.return=void 0)}"function"==typeof Symbol&&Symbol.asyncIterator&&(t.prototype[Symbol.asyncIterator]=function(){return this}),t.prototype.next=function(e){return this._invoke("next",e)},t.prototype.throw=function(e){return this._invoke("throw",e)},t.prototype.return=function(e){return this._invoke("return",e)}}(),function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}),E=function(){function e(e,t){for(var n=0;n=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n},A=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t},k=function(e){function t(e){w(this,t);var n=A(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.handleMouseDown=n.handleMouseDown.bind(n),n.handleMouseEnter=n.handleMouseEnter.bind(n),n.handleMouseMove=n.handleMouseMove.bind(n),n.handleTouchStart=n.handleTouchStart.bind(n),n.handleTouchEnd=n.handleTouchEnd.bind(n),n.handleTouchMove=n.handleTouchMove.bind(n),n.onFocus=n.onFocus.bind(n),n}return S(t,e),E(t,[{key:"handleMouseDown",value:function(e){e.preventDefault(),e.stopPropagation(),this.props.onSelect(this.props.option,e)}},{key:"handleMouseEnter",value:function(e){this.onFocus(e)}},{key:"handleMouseMove",value:function(e){this.onFocus(e)}},{key:"handleTouchEnd",value:function(e){this.dragging||this.handleMouseDown(e)}},{key:"handleTouchMove",value:function(){this.dragging=!0}},{key:"handleTouchStart",value:function(){this.dragging=!1}},{key:"onFocus",value:function(e){this.props.isFocused||this.props.onFocus(this.props.option,e)}},{key:"render",value:function(){var e=this.props,t=e.option,n=e.instancePrefix,r=e.optionIndex,o=u()(this.props.className,t.className);return t.disabled?c.a.createElement("div",{className:o,onMouseDown:m,onClick:m},this.props.children):c.a.createElement("div",{className:o,style:t.style,role:"option","aria-label":t.label,onMouseDown:this.handleMouseDown,onMouseEnter:this.handleMouseEnter,onMouseMove:this.handleMouseMove,onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove,onTouchEnd:this.handleTouchEnd,id:n+"-option-"+r,title:t.title},this.props.children)}}]),t}(c.a.Component);k.propTypes={children:s.a.node,className:s.a.string,instancePrefix:s.a.string.isRequired,isDisabled:s.a.bool,isFocused:s.a.bool,isSelected:s.a.bool,onFocus:s.a.func,onSelect:s.a.func,onUnfocus:s.a.func,option:s.a.object.isRequired,optionIndex:s.a.number};var F=function(e){function t(e){w(this,t);var n=A(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.handleMouseDown=n.handleMouseDown.bind(n),n.onRemove=n.onRemove.bind(n),n.handleTouchEndRemove=n.handleTouchEndRemove.bind(n),n.handleTouchMove=n.handleTouchMove.bind(n),n.handleTouchStart=n.handleTouchStart.bind(n),n}return S(t,e),E(t,[{key:"handleMouseDown",value:function(e){if("mousedown"!==e.type||0===e.button)return this.props.onClick?(e.stopPropagation(),void this.props.onClick(this.props.value,e)):void(this.props.value.href&&e.stopPropagation())}},{key:"onRemove",value:function(e){e.preventDefault(),e.stopPropagation(),this.props.onRemove(this.props.value)}},{key:"handleTouchEndRemove",value:function(e){this.dragging||this.onRemove(e)}},{key:"handleTouchMove",value:function(){this.dragging=!0}},{key:"handleTouchStart",value:function(){this.dragging=!1}},{key:"renderRemoveIcon",value:function(){if(!this.props.disabled&&this.props.onRemove)return c.a.createElement("span",{className:"Select-value-icon","aria-hidden":"true",onMouseDown:this.onRemove,onTouchEnd:this.handleTouchEndRemove,onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove},"×")}},{key:"renderLabel",value:function(){return this.props.onClick||this.props.value.href?c.a.createElement("a",{className:"Select-value-label",href:this.props.value.href,target:this.props.value.target,onMouseDown:this.handleMouseDown,onTouchEnd:this.handleMouseDown},this.props.children):c.a.createElement("span",{className:"Select-value-label",role:"option","aria-selected":"true",id:this.props.id},this.props.children)}},{key:"render",value:function(){return c.a.createElement("div",{className:u()("Select-value",this.props.value.className),style:this.props.value.style,title:this.props.value.title},this.renderRemoveIcon(),this.renderLabel())}}]),t}(c.a.Component);F.propTypes={children:s.a.node,disabled:s.a.bool,id:s.a.string,onClick:s.a.func,onRemove:s.a.func,value:s.a.object.isRequired}; /*! Copyright (c) 2018 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/react-select */ -var D=function(e){return"string"==typeof e?e:null!==e&&JSON.stringify(e)||""},P=s.a.oneOfType([s.a.string,s.a.node]),R=s.a.oneOfType([s.a.string,s.a.number]),T=1,j=function(e,t){var n=void 0===e?"undefined":x(e);if("string"!==n&&"number"!==n&&"boolean"!==n)return e;var r=t.options,o=t.valueKey;if(r)for(var i=0;iu||id.bottom?l.scrollTop=s.offsetTop+s.clientHeight-l.offsetHeight:c.topt.offsetHeight&&t.scrollHeight-t.offsetHeight-t.scrollTop<=0&&this.props.onMenuScrollToBottom()}}},{key:"getOptionLabel",value:function(e){return e[this.props.labelKey]}},{key:"getValueArray",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,n="object"===(void 0===t?"undefined":x(t))?t:this.props;if(n.multi){if("string"==typeof e&&(e=e.split(n.delimiter)),!Array.isArray(e)){if(null===e||void 0===e)return[];e=[e]}return e.map(function(e){return j(e,n)}).filter(function(e){return e})}var r=j(e,n);return r?[r]:[]}},{key:"setValue",value:function(e){var t=this;if(this.props.autoBlur&&this.blurInput(),this.props.required){var n=I(e,this.props.multi);this.setState({required:n})}this.props.simpleValue&&e&&(e=this.props.multi?e.map(function(e){return e[t.props.valueKey]}).join(this.props.delimiter):e[this.props.valueKey]),this.props.onChange&&this.props.onChange(e)}},{key:"selectValue",value:function(e){var t=this;this.props.closeOnSelect&&(this.hasScrolledToOption=!1);var n=this.props.onSelectResetsInput?"":this.state.inputValue;this.props.multi?this.setState({focusedIndex:null,inputValue:this.handleInputValueChange(n),isOpen:!this.props.closeOnSelect},function(){t.getValueArray(t.props.value).some(function(n){return n[t.props.valueKey]===e[t.props.valueKey]})?t.removeValue(e):t.addValue(e)}):this.setState({inputValue:this.handleInputValueChange(n),isOpen:!this.props.closeOnSelect,isPseudoFocused:this.state.isFocused},function(){t.setValue(e)})}},{key:"addValue",value:function(e){var t=this.getValueArray(this.props.value),n=this._visibleOptions.filter(function(e){return!e.disabled}),r=n.indexOf(e);this.setValue(t.concat(e)),n.length-1===r?this.focusOption(n[r-1]):n.length>r&&this.focusOption(n[r+1])}},{key:"popValue",value:function(){var e=this.getValueArray(this.props.value);e.length&&!1!==e[e.length-1].clearableValue&&this.setValue(this.props.multi?e.slice(0,e.length-1):null)}},{key:"removeValue",value:function(e){var t=this,n=this.getValueArray(this.props.value);this.setValue(n.filter(function(n){return n[t.props.valueKey]!==e[t.props.valueKey]})),this.focus()}},{key:"clearValue",value:function(e){e&&"mousedown"===e.type&&0!==e.button||(e.preventDefault(),this.setValue(this.getResetValue()),this.setState({inputValue:this.handleInputValueChange(""),isOpen:!1},this.focus),this._focusAfterClear=!0)}},{key:"getResetValue",value:function(){return void 0!==this.props.resetValue?this.props.resetValue:this.props.multi?[]:null}},{key:"focusOption",value:function(e){this.setState({focusedOption:e})}},{key:"focusNextOption",value:function(){this.focusAdjacentOption("next")}},{key:"focusPreviousOption",value:function(){this.focusAdjacentOption("previous")}},{key:"focusPageUpOption",value:function(){this.focusAdjacentOption("page_up")}},{key:"focusPageDownOption",value:function(){this.focusAdjacentOption("page_down")}},{key:"focusStartOption",value:function(){this.focusAdjacentOption("start")}},{key:"focusEndOption",value:function(){this.focusAdjacentOption("end")}},{key:"focusAdjacentOption",value:function(e){var t=this._visibleOptions.map(function(e,t){return{option:e,index:t}}).filter(function(e){return!e.option.disabled});if(this._scrollToFocusedOptionOnUpdate=!0,!this.state.isOpen){var n={focusedOption:this._focusedOption||(t.length?t["next"===e?0:t.length-1].option:null),isOpen:!0};return this.props.onSelectResetsInput&&(n.inputValue=""),void this.setState(n)}if(t.length){for(var r=-1,o=0;o0?r-=1:r=t.length-1;else if("start"===e)r=0;else if("end"===e)r=t.length-1;else if("page_up"===e){var i=r-this.props.pageSize;r=i<0?0:i}else if("page_down"===e){var u=r+this.props.pageSize;r=u>t.length-1?t.length-1:u}-1===r&&(r=0),this.setState({focusedIndex:t[r].index,focusedOption:t[r].option})}}},{key:"getFocusedOption",value:function(){return this._focusedOption}},{key:"selectFocusedOption",value:function(){if(this._focusedOption)return this.selectValue(this._focusedOption)}},{key:"renderLoading",value:function(){if(this.props.isLoading)return c.a.createElement("span",{className:"Select-loading-zone","aria-hidden":"true"},c.a.createElement("span",{className:"Select-loading"}))}},{key:"renderValue",value:function(e,t){var n=this,r=this.props.valueRenderer||this.getOptionLabel,o=this.props.valueComponent;if(!e.length)return function(e,t,n){var r=e.inputValue,o=e.isPseudoFocused,i=e.isFocused,u=t.onSelectResetsInput;return!r||!u&&!n&&!o&&!i}(this.state,this.props,t)?c.a.createElement("div",{className:"Select-placeholder"},this.props.placeholder):null;var i=this.props.onValueClick?this.handleValueClick:null;return this.props.multi?e.map(function(e,t){return c.a.createElement(o,{disabled:n.props.disabled||!1===e.clearableValue,id:n._instancePrefix+"-value-"+t,instancePrefix:n._instancePrefix,key:"value-"+t+"-"+e[n.props.valueKey],onClick:i,onRemove:n.removeValue,placeholder:n.props.placeholder,value:e},r(e,t),c.a.createElement("span",{className:"Select-aria-only"}," "))}):function(e,t){var n=e.inputValue,r=e.isPseudoFocused,o=e.isFocused,i=t.onSelectResetsInput;return!n||!i&&!(!o&&r||o&&!r)}(this.state,this.props)?(t&&(i=null),c.a.createElement(o,{disabled:this.props.disabled,id:this._instancePrefix+"-value-item",instancePrefix:this._instancePrefix,onClick:i,placeholder:this.props.placeholder,value:e[0]},r(e[0]))):void 0}},{key:"renderInput",value:function(e,t){var n,r=this,i=u()("Select-input",this.props.inputProps.className),a=this.state.isOpen,s=u()((_(n={},this._instancePrefix+"-list",a),_(n,this._instancePrefix+"-backspace-remove-message",this.props.multi&&!this.props.disabled&&this.state.isFocused&&!this.state.inputValue),n)),l=this.state.inputValue;!l||this.props.onSelectResetsInput||this.state.isFocused||(l="");var p=O({},this.props.inputProps,{"aria-activedescendant":a?this._instancePrefix+"-option-"+t:this._instancePrefix+"-value","aria-describedby":this.props["aria-describedby"],"aria-expanded":""+a,"aria-haspopup":""+a,"aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"],"aria-owns":s,className:i,onBlur:this.handleInputBlur,onChange:this.handleInputChange,onFocus:this.handleInputFocus,ref:function(e){return r.input=e},role:"combobox",required:this.state.required,tabIndex:this.props.tabIndex,value:l});if(this.props.inputRenderer)return this.props.inputRenderer(p);if(this.props.disabled||!this.props.searchable){var d=C(this.props.inputProps,[]),f=u()(_({},this._instancePrefix+"-list",a));return c.a.createElement("div",O({},d,{"aria-expanded":a,"aria-owns":f,"aria-activedescendant":a?this._instancePrefix+"-option-"+t:this._instancePrefix+"-value","aria-disabled":""+this.props.disabled,"aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"],className:i,onBlur:this.handleInputBlur,onFocus:this.handleInputFocus,ref:function(e){return r.input=e},role:"combobox",style:{border:0,width:1,display:"inline-block"},tabIndex:this.props.tabIndex||0}))}return this.props.autosize?c.a.createElement(o.a,O({id:this.props.id},p,{minWidth:"5"})):c.a.createElement("div",{className:i,key:"input-wrap",style:{display:"inline-block"}},c.a.createElement("input",O({id:this.props.id},p)))}},{key:"renderClear",value:function(){var e=this.getValueArray(this.props.value);if(this.props.clearable&&e.length&&!this.props.disabled&&!this.props.isLoading){var t=this.props.multi?this.props.clearAllText:this.props.clearValueText,n=this.props.clearRenderer();return c.a.createElement("span",{"aria-label":t,className:"Select-clear-zone",onMouseDown:this.clearValue,onTouchEnd:this.handleTouchEndClearValue,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,title:t},n)}}},{key:"renderArrow",value:function(){if(this.props.arrowRenderer){var e=this.handleMouseDownOnArrow,t=this.state.isOpen,n=this.props.arrowRenderer({onMouseDown:e,isOpen:t});return n?c.a.createElement("span",{className:"Select-arrow-zone",onMouseDown:e},n):null}}},{key:"filterOptions",value:function(e){var t=this.state.inputValue,n=this.props.options||[];if(this.props.filterOptions){var r="function"==typeof this.props.filterOptions?this.props.filterOptions:y;return r(n,t,e,{filterOption:this.props.filterOption,ignoreAccents:this.props.ignoreAccents,ignoreCase:this.props.ignoreCase,labelKey:this.props.labelKey,matchPos:this.props.matchPos,matchProp:this.props.matchProp,trimFilter:this.props.trimFilter,valueKey:this.props.valueKey})}return n}},{key:"onOptionRef",value:function(e,t){t&&(this.focused=e)}},{key:"renderMenu",value:function(e,t,n){return e&&e.length?this.props.menuRenderer({focusedOption:n,focusOption:this.focusOption,inputValue:this.state.inputValue,instancePrefix:this._instancePrefix,labelKey:this.props.labelKey,onFocus:this.focusOption,onOptionRef:this.onOptionRef,onSelect:this.selectValue,optionClassName:this.props.optionClassName,optionComponent:this.props.optionComponent,optionRenderer:this.props.optionRenderer||this.getOptionLabel,options:e,removeValue:this.removeValue,selectValue:this.selectValue,valueArray:t,valueKey:this.props.valueKey}):this.props.noResultsText?c.a.createElement("div",{className:"Select-noresults"},this.props.noResultsText):null}},{key:"renderHiddenField",value:function(e){var t=this;if(this.props.name){if(this.props.joinValues){var n=e.map(function(e){return D(e[t.props.valueKey])}).join(this.props.delimiter);return c.a.createElement("input",{disabled:this.props.disabled,name:this.props.name,ref:function(e){return t.value=e},type:"hidden",value:n})}return e.map(function(e,n){return c.a.createElement("input",{disabled:t.props.disabled,key:"hidden."+n,name:t.props.name,ref:"value"+n,type:"hidden",value:D(e[t.props.valueKey])})})}}},{key:"getFocusableOptionIndex",value:function(e){var t=this._visibleOptions;if(!t.length)return null;var n=this.props.valueKey,r=this.state.focusedOption||e;if(r&&!r.disabled){var o=-1;if(t.some(function(e,t){var i=e[n]===r[n];return i&&(o=t),i}),-1!==o)return o}for(var i=0;i{const u=n.slice(-1)[0],a=n.slice(0,-1),s=r.reduce((e,t)=>e.get(t)||e.set(t,new Map).get(t),t,a);return(s.get(u)||s.set(u,function(e){return(0,o.memoizeOne)((...t)=>e(...t))}(e)).get(u))(...i)}};var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),o=n(5)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),o=d(n(1)),i=d(n(3)),u=d(n(47)),a=d(n(48)),s=n(49),l=d(n(11)),c=n(17),p=d(n(19));function d(e){return e&&e.__esModule?e:{default:e}}t.default=class{constructor(e){this.propsFn=e,this.handlers=new Map,this.ops=new Map,this.onChange=((e,t,n,o)=>{i.default.debug("Filter -- onChange",e,o.target.value&&o.target.value.trim());const u=o.target.value.trim();u&&u.length?t.set(e,u):t.delete(e),n(r.map(([e,t])=>`${e} ${t}`,r.filter(([e])=>this.isFragmentValid(e),Array.from(t.entries()))).join(" && "))}),this.getEventHandler=((e,t,n,r)=>{const o=this.handlers.get(e)||this.handlers.set(e,new Map).get(e),i=o.get(t)||o.set(t,new Map).get(t);return i.get(r)||i.set(r,e.bind(this,t,n,r)).get(r)})}get props(){return this.propsFn()}respectsBasicSyntax(e,t=!0){const n=[c.LexemeType.BinaryOperator,c.LexemeType.Expression,c.LexemeType.Operand,c.LexemeType.UnaryOperator];if(t&&n.push(c.LexemeType.And),!r.all(e=>r.contains(e.lexeme.name,n),e))return!1;const o=r.map(e=>e.value,r.filter(e=>e.lexeme.name===c.LexemeType.Operand,e)),i=r.uniq(o);return o.length===i.length}isBasicFilter(e,t,n=!0){return e.valid&&t.valid&&this.respectsBasicSyntax(e.lexemes,n)}updateOps(e){const t=(0,l.default)(e),n=(0,p.default)(t);if(!this.isBasicFilter(t,n))return;const r=[n.tree];for(;r.length;){const e=r.pop();e&&(e.lexeme.name===c.LexemeType.UnaryOperator&&e.block?this.ops.set(e.block.value,e.value):e.lexeme.name===c.LexemeType.BinaryOperator&&e.left&&e.right?this.ops.set(e.left.value,`${e.value} ${e.right.value}`):(r.push(e.left),r.push(e.block),r.push(e.right)))}}isFragmentValidOrNull(e){const t=this.ops.get(e);return!t||!t.trim().length||this.isFragmentValid(e)}isFragmentValid(e){const t=this.ops.get(e),n=(0,l.default)(`${e} ${t}`),r=(0,p.default)(n);return r.valid&&this.isBasicFilter(n,r,!1)}createFilters(){var e=this.props;const t=e.columns,n=e.filtering,i=e.filtering_settings,l=e.filtering_type,c=e.offset,p=e.setFilter;if(!n)return[];this.updateOps(i);const d=r.filter(e=>!e.hidden,t),f=r.range(0,c).map(e=>o.default.createElement("th",{key:`offset-${e}`})),h=l===s.FilteringType.Basic?r.addIndex(r.map)((e,t)=>o.default.createElement(u.default,{key:`column-${t+c}`,classes:`filter column-${t+c}`,isValid:this.isFragmentValidOrNull(e.id),property:e.id,setFilter:this.getEventHandler(this.onChange,e.id,this.ops,p),value:this.ops.get(e.id)}),d):[o.default.createElement(a.default,{key:`column-${c}`,classes:[],colSpan:d.length,value:"",setFilter:()=>void 0})];return[r.concat(f,h)]}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=u(r),i=u(n(21));function u(e){return e&&e.__esModule?e:{default:e}}t.default=class extends r.PureComponent{constructor(e){super(e),this.submit=(e=>{(0,this.props.setFilter)({target:{value:e}})}),this.state={value:e.value}}componentWillReceiveProps(e){const t=e.value;this.state.value!==t&&this.setState({value:t})}render(){var e=this.props;const t=e.classes,n=e.isValid,r=e.value;return o.default.createElement("th",{className:t+(n?"":" invalid")},o.default.createElement(i.default,{value:r,stopPropagation:!0,submit:this.submit}))}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=u(r),i=u(n(21));function u(e){return e&&e.__esModule?e:{default:e}}t.default=class extends r.PureComponent{constructor(e){super(e),this.submit=(e=>this.props.setFilter(e))}render(){var e=this.props;const t=e.colSpan,n=e.value;return o.default.createElement("th",{colSpan:t},o.default.createElement(i.default,{stopPropagation:!0,value:n,submit:this.submit}))}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=t.FilteringType=void 0;!function(e){e.Advanced="advanced",e.Basic="basic"}(r||(t.FilteringType=r={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),o=n(5),i=n(7),u=s(i),a=s(n(18));function s(e){return e&&e.__esModule?e:{default:e}}t.default=class{constructor(e){this.target=e,this.getDataframe=(0,o.memoizeOne)((e,t,n,o,s=[],l)=>{const c=new Map;if(r.addIndex(r.forEach)((e,t)=>{c.set(e,t)},e),"fe"===t||!0===t){const t=new a.default(n);e=t.isValid?t.filter(e):e}const p=l?e=>""===e||(0,i.defaultIsNully)(e):void 0;return"fe"!==o&&!0!==o||(e=(0,u.default)(e,s,p)),{dataframe:e,indices:r.map(e=>c.get(e),e)}})}get dataframeAndIndices(){var e=this.target.props;const t=e.dataframe,n=e.filtering,r=e.filtering_settings,o=e.sorting,i=e.sorting_settings,u=e.sorting_treat_empty_string_as_none;return this.getDataframe(t,n,r,o,i,u)}get dataframe(){return this.dataframeAndIndices.dataframe}get indices(){return this.dataframeAndIndices.indices}get settings(){return this.target.props.virtualization_settings}get virtualization(){return this.target.props.virtualization}get viewportDataframe(){return this.target.props.virtual_dataframe}get viewportIndices(){return this.target.props.virtual_dataframe_indices}update(e){const t=this.target.setProps,n=e.settings,o=e.viewportDataframe,i=e.viewportIndices;let u=r.mergeAll([n?{virtualization_settings:n}:{},o?{virtual_dataframe:o}:{},i?{virtual_dataframe_indices:i}:{}]);setTimeout(()=>{t(u)},0)}}},function(e,t,n){var r=n(52);"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(9)(r,o);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(8)(!1)).push([e.i,"/**\n * React Select\n * ============\n * Created by Jed Watson and Joss Mackison for KeystoneJS, http://www.keystonejs.com/\n * https://twitter.com/jedwatson https://twitter.com/jossmackison https://twitter.com/keystonejs\n * MIT License: https://github.com/JedWatson/react-select\n*/\n.Select {\n position: relative;\n}\n.Select input::-webkit-contacts-auto-fill-button,\n.Select input::-webkit-credentials-auto-fill-button {\n display: none !important;\n}\n.Select input::-ms-clear {\n display: none !important;\n}\n.Select input::-ms-reveal {\n display: none !important;\n}\n.Select,\n.Select div,\n.Select input,\n.Select span {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n.Select.is-disabled .Select-arrow-zone {\n cursor: default;\n pointer-events: none;\n opacity: 0.35;\n}\n.Select.is-disabled > .Select-control {\n background-color: #f9f9f9;\n}\n.Select.is-disabled > .Select-control:hover {\n box-shadow: none;\n}\n.Select.is-open > .Select-control {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n background: #fff;\n border-color: #b3b3b3 #ccc #d9d9d9;\n}\n.Select.is-open > .Select-control .Select-arrow {\n top: -2px;\n border-color: transparent transparent #999;\n border-width: 0 5px 5px;\n}\n.Select.is-searchable.is-open > .Select-control {\n cursor: text;\n}\n.Select.is-searchable.is-focused:not(.is-open) > .Select-control {\n cursor: text;\n}\n.Select.is-focused > .Select-control {\n background: #fff;\n}\n.Select.is-focused:not(.is-open) > .Select-control {\n border-color: #007eff;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 3px rgba(0, 126, 255, 0.1);\n background: #fff;\n}\n.Select.has-value.is-clearable.Select--single > .Select-control .Select-value {\n padding-right: 42px;\n}\n.Select.has-value.Select--single > .Select-control .Select-value .Select-value-label,\n.Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value .Select-value-label {\n color: #333;\n}\n.Select.has-value.Select--single > .Select-control .Select-value a.Select-value-label,\n.Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label {\n cursor: pointer;\n text-decoration: none;\n}\n.Select.has-value.Select--single > .Select-control .Select-value a.Select-value-label:hover,\n.Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label:hover,\n.Select.has-value.Select--single > .Select-control .Select-value a.Select-value-label:focus,\n.Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label:focus {\n color: #007eff;\n outline: none;\n text-decoration: underline;\n}\n.Select.has-value.Select--single > .Select-control .Select-value a.Select-value-label:focus,\n.Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label:focus {\n background: #fff;\n}\n.Select.has-value.is-pseudo-focused .Select-input {\n opacity: 0;\n}\n.Select.is-open .Select-arrow,\n.Select .Select-arrow-zone:hover > .Select-arrow {\n border-top-color: #666;\n}\n.Select.Select--rtl {\n direction: rtl;\n text-align: right;\n}\n.Select-control {\n background-color: #fff;\n border-color: #d9d9d9 #ccc #b3b3b3;\n border-radius: 4px;\n border: 1px solid #ccc;\n color: #333;\n cursor: default;\n display: table;\n border-spacing: 0;\n border-collapse: separate;\n height: 36px;\n outline: none;\n overflow: hidden;\n position: relative;\n width: 100%;\n}\n.Select-control:hover {\n box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);\n}\n.Select-control .Select-input:focus {\n outline: none;\n background: #fff;\n}\n.Select-placeholder,\n.Select--single > .Select-control .Select-value {\n bottom: 0;\n color: #aaa;\n left: 0;\n line-height: 34px;\n padding-left: 10px;\n padding-right: 10px;\n position: absolute;\n right: 0;\n top: 0;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.Select-input {\n height: 34px;\n padding-left: 10px;\n padding-right: 10px;\n vertical-align: middle;\n}\n.Select-input > input {\n width: 100%;\n background: none transparent;\n border: 0 none;\n box-shadow: none;\n cursor: default;\n display: inline-block;\n font-family: inherit;\n font-size: inherit;\n margin: 0;\n outline: none;\n line-height: 17px;\n /* For IE 8 compatibility */\n padding: 8px 0 12px;\n /* For IE 8 compatibility */\n -webkit-appearance: none;\n}\n.is-focused .Select-input > input {\n cursor: text;\n}\n.has-value.is-pseudo-focused .Select-input {\n opacity: 0;\n}\n.Select-control:not(.is-searchable) > .Select-input {\n outline: none;\n}\n.Select-loading-zone {\n cursor: pointer;\n display: table-cell;\n position: relative;\n text-align: center;\n vertical-align: middle;\n width: 16px;\n}\n.Select-loading {\n -webkit-animation: Select-animation-spin 400ms infinite linear;\n -o-animation: Select-animation-spin 400ms infinite linear;\n animation: Select-animation-spin 400ms infinite linear;\n width: 16px;\n height: 16px;\n box-sizing: border-box;\n border-radius: 50%;\n border: 2px solid #ccc;\n border-right-color: #333;\n display: inline-block;\n position: relative;\n vertical-align: middle;\n}\n.Select-clear-zone {\n -webkit-animation: Select-animation-fadeIn 200ms;\n -o-animation: Select-animation-fadeIn 200ms;\n animation: Select-animation-fadeIn 200ms;\n color: #999;\n cursor: pointer;\n display: table-cell;\n position: relative;\n text-align: center;\n vertical-align: middle;\n width: 17px;\n}\n.Select-clear-zone:hover {\n color: #D0021B;\n}\n.Select-clear {\n display: inline-block;\n font-size: 18px;\n line-height: 1;\n}\n.Select--multi .Select-clear-zone {\n width: 17px;\n}\n.Select-arrow-zone {\n cursor: pointer;\n display: table-cell;\n position: relative;\n text-align: center;\n vertical-align: middle;\n width: 25px;\n padding-right: 5px;\n}\n.Select--rtl .Select-arrow-zone {\n padding-right: 0;\n padding-left: 5px;\n}\n.Select-arrow {\n border-color: #999 transparent transparent;\n border-style: solid;\n border-width: 5px 5px 2.5px;\n display: inline-block;\n height: 0;\n width: 0;\n position: relative;\n}\n.Select-control > *:last-child {\n padding-right: 5px;\n}\n.Select--multi .Select-multi-value-wrapper {\n display: inline-block;\n}\n.Select .Select-aria-only {\n position: absolute;\n display: inline-block;\n height: 1px;\n width: 1px;\n margin: -1px;\n clip: rect(0, 0, 0, 0);\n overflow: hidden;\n float: left;\n}\n@-webkit-keyframes Select-animation-fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes Select-animation-fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n.Select-menu-outer {\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n background-color: #fff;\n border: 1px solid #ccc;\n border-top-color: #e6e6e6;\n box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);\n box-sizing: border-box;\n margin-top: -1px;\n max-height: 200px;\n position: absolute;\n left: 0;\n top: 100%;\n width: 100%;\n z-index: 1;\n -webkit-overflow-scrolling: touch;\n}\n.Select-menu {\n max-height: 198px;\n overflow-y: auto;\n}\n.Select-option {\n box-sizing: border-box;\n background-color: #fff;\n color: #666666;\n cursor: pointer;\n display: block;\n padding: 8px 10px;\n}\n.Select-option:last-child {\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.Select-option.is-selected {\n background-color: #f5faff;\n /* Fallback color for IE 8 */\n background-color: rgba(0, 126, 255, 0.04);\n color: #333;\n}\n.Select-option.is-focused {\n background-color: #ebf5ff;\n /* Fallback color for IE 8 */\n background-color: rgba(0, 126, 255, 0.08);\n color: #333;\n}\n.Select-option.is-disabled {\n color: #cccccc;\n cursor: default;\n}\n.Select-noresults {\n box-sizing: border-box;\n color: #999999;\n cursor: default;\n display: block;\n padding: 8px 10px;\n}\n.Select--multi .Select-input {\n vertical-align: middle;\n margin-left: 10px;\n padding: 0;\n}\n.Select--multi.Select--rtl .Select-input {\n margin-left: 0;\n margin-right: 10px;\n}\n.Select--multi.has-value .Select-input {\n margin-left: 5px;\n}\n.Select--multi .Select-value {\n background-color: #ebf5ff;\n /* Fallback color for IE 8 */\n background-color: rgba(0, 126, 255, 0.08);\n border-radius: 2px;\n border: 1px solid #c2e0ff;\n /* Fallback color for IE 8 */\n border: 1px solid rgba(0, 126, 255, 0.24);\n color: #007eff;\n display: inline-block;\n font-size: 0.9em;\n line-height: 1.4;\n margin-left: 5px;\n margin-top: 5px;\n vertical-align: top;\n}\n.Select--multi .Select-value-icon,\n.Select--multi .Select-value-label {\n display: inline-block;\n vertical-align: middle;\n}\n.Select--multi .Select-value-label {\n border-bottom-right-radius: 2px;\n border-top-right-radius: 2px;\n cursor: default;\n padding: 2px 5px;\n}\n.Select--multi a.Select-value-label {\n color: #007eff;\n cursor: pointer;\n text-decoration: none;\n}\n.Select--multi a.Select-value-label:hover {\n text-decoration: underline;\n}\n.Select--multi .Select-value-icon {\n cursor: pointer;\n border-bottom-left-radius: 2px;\n border-top-left-radius: 2px;\n border-right: 1px solid #c2e0ff;\n /* Fallback color for IE 8 */\n border-right: 1px solid rgba(0, 126, 255, 0.24);\n padding: 1px 5px 3px;\n}\n.Select--multi .Select-value-icon:hover,\n.Select--multi .Select-value-icon:focus {\n background-color: #d8eafd;\n /* Fallback color for IE 8 */\n background-color: rgba(0, 113, 230, 0.08);\n color: #0071e6;\n}\n.Select--multi .Select-value-icon:active {\n background-color: #c2e0ff;\n /* Fallback color for IE 8 */\n background-color: rgba(0, 126, 255, 0.24);\n}\n.Select--multi.Select--rtl .Select-value {\n margin-left: 0;\n margin-right: 5px;\n}\n.Select--multi.Select--rtl .Select-value-icon {\n border-right: none;\n border-left: 1px solid #c2e0ff;\n /* Fallback color for IE 8 */\n border-left: 1px solid rgba(0, 126, 255, 0.24);\n}\n.Select--multi.is-disabled .Select-value {\n background-color: #fcfcfc;\n border: 1px solid #e3e3e3;\n color: #333;\n}\n.Select--multi.is-disabled .Select-value-icon {\n cursor: not-allowed;\n border-right: 1px solid #e3e3e3;\n}\n.Select--multi.is-disabled .Select-value-icon:hover,\n.Select--multi.is-disabled .Select-value-icon:focus,\n.Select--multi.is-disabled .Select-value-icon:active {\n background-color: #fcfcfc;\n}\n@keyframes Select-animation-spin {\n to {\n transform: rotate(1turn);\n }\n}\n@-webkit-keyframes Select-animation-spin {\n to {\n -webkit-transform: rotate(1turn);\n }\n}\n",""])},function(e,t){e.exports=function(e){var t="undefined"!=typeof window&&window.location;if(!t)throw new Error("fixUrls requires window.location");if(!e||"string"!=typeof e)return e;var n=t.protocol+"//"+t.host,r=n+t.pathname.replace(/\/[^\/]*$/,"/");return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(e,t){var o,i=t.trim().replace(/^"(.*)"$/,function(e,t){return t}).replace(/^'(.*)'$/,function(e,t){return t});return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(i)?e:(o=0===i.indexOf("//")?i:0===i.indexOf("/")?n+i:r+i.replace(/^\.\//,""),"url("+JSON.stringify(o)+")")})}},function(e,t,n){var r=n(55);"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(9)(r,o);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(8)(!1)).push([e.i,".dash-spreadsheet.freeze-left {\n width: auto;\n width: fit-content;\n width: -moz-fit-content;\n width: -webkit-fit-content;\n max-width: 500px;\n}\n.dash-spreadsheet.freeze-top {\n width: auto;\n width: fit-content;\n width: -moz-fit-content;\n width: -webkit-fit-content;\n max-height: 500px;\n}\n.dash-spreadsheet-container {\n display: flex;\n flex-direction: row;\n position: relative;\n}\n.dash-spreadsheet-inner {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n}\n.dash-spreadsheet-inner.freeze-left,\n.dash-spreadsheet-inner.freeze-top {\n overflow: hidden !important;\n}\n.dash-spreadsheet-inner *,\n.dash-spreadsheet-inner *:after,\n.dash-spreadsheet-inner *:before {\n box-sizing: inherit;\n}\n.dash-spreadsheet-inner .Select {\n overflow: hidden;\n position: static;\n}\n.dash-spreadsheet-inner .Select,\n.dash-spreadsheet-inner .Select-control {\n background-color: inherit;\n}\n.dash-spreadsheet-inner .Select-value {\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-top: -2px;\n}\n.dash-spreadsheet-inner .marker-row tr {\n visibility: hidden !important;\n}\n.dash-spreadsheet-inner .marker-row td,\n.dash-spreadsheet-inner .marker-row th {\n height: 0 !important;\n padding: 0 !important;\n margin: 0 !important;\n}\n.dash-spreadsheet-inner .row-0 {\n display: flex;\n flex: 0 0 auto;\n flex-direction: row;\n}\n.dash-spreadsheet-inner .row-1 {\n display: flex;\n flex-direction: row;\n overflow: scroll;\n}\n.dash-spreadsheet-inner .cell-0-0,\n.dash-spreadsheet-inner .cell-1-0 {\n flex: 0 0 auto;\n left: 0;\n position: sticky;\n z-index: 400;\n}\n.dash-spreadsheet-inner:not(.freeze-top):not(.freeze-left) .cell-1-1 tr td:first-of-type,\n.dash-spreadsheet-inner:not(.freeze-top):not(.freeze-left) .cell-1-1 tr th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 0px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner:not(.freeze-top):not(.freeze-left) .cell-1-1 tr:first-of-type td,\n.dash-spreadsheet-inner:not(.freeze-top):not(.freeze-left) .cell-1-1 tr:first-of-type th {\n box-shadow: inset 0px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner:not(.freeze-top):not(.freeze-left) .cell-1-1 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner:not(.freeze-top):not(.freeze-left) .cell-1-1 tr:first-of-type th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-0 tr td:first-of-type,\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-0 tr th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 0px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-0 tr:first-of-type td,\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-0 tr:first-of-type th {\n box-shadow: inset 0px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-0 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-0 tr:first-of-type th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-1 tr:first-of-type td,\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-1 tr:first-of-type th {\n box-shadow: inset 0px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-0-1 tr td:first-of-type,\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-0-1 tr th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 0px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-0-1 tr:first-of-type td,\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-0-1 tr:first-of-type th {\n box-shadow: inset 0px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-0-1 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-0-1 tr:first-of-type th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-1-1 tr td:first-of-type,\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-1-1 tr th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 0px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-0 tr td:first-of-type,\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-0 tr th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 0px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-0 tr:first-of-type td,\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-0 tr:first-of-type th {\n box-shadow: inset 0px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-0 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-0 tr:first-of-type th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-1 tr:first-of-type td,\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-1 tr:first-of-type th {\n box-shadow: inset 0px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-1-0 tr td:first-of-type,\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-1-0 tr th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 0px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner .cell-0-1 {\n z-index: 300;\n flex: 0 0 auto;\n}\n.dash-spreadsheet-inner .cell-1-1 {\n flex: 0 0 auto;\n}\n.dash-spreadsheet-inner .cell td,\n.dash-spreadsheet-inner .cell th {\n box-shadow: inset 0px 0px 0px 0px var(--border), inset 0px 0px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner .cell td:focus,\n.dash-spreadsheet-inner .cell th:focus {\n outline: none;\n}\n.dash-spreadsheet-inner .filter.invalid {\n box-shadow: inset 1px 0px 0px 0px red, inset 0px 1px 0px 0px red, inset -1px 0px 0px red, inset 0px -1px 0px 0px red;\n background-color: pink;\n}\n.dash-spreadsheet-inner .selected-row td,\n.dash-spreadsheet-inner .selected-row th {\n background-color: var(--selected-row);\n}\n.dash-spreadsheet-inner tr {\n background-color: white;\n}\n.dash-spreadsheet-inner td {\n background-color: inherit;\n}\n.dash-spreadsheet-inner td.cell--selected {\n background-color: var(--selected-background);\n}\n.dash-spreadsheet-inner td.focused {\n box-shadow: 1px 0px 0px 0px var(--accent), 0px 1px 0px 0px var(--accent), 0 0px 0px var(--accent), 0px 0 0px 0px var(--accent);\n border: 1px solid var(--accent);\n margin: -1px;\n z-index: 200;\n}\n.dash-spreadsheet-inner td .cell-value {\n height: 100%;\n width: 100%;\n}\n.dash-spreadsheet-inner td div.cell-value {\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n.dash-spreadsheet-inner td,\n.dash-spreadsheet-inner th {\n padding: 2px;\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n height: 30px;\n text-align: right;\n}\n.dash-spreadsheet-inner th .column-header--edit,\n.dash-spreadsheet-inner th .column-header--delete,\n.dash-spreadsheet-inner th .sort {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: default;\n cursor: pointer;\n}\n.dash-spreadsheet-inner textarea {\n white-space: pre;\n}\n.dash-spreadsheet-inner table {\n border-collapse: collapse;\n font-family: monospace;\n --accent: hotpink;\n --border: lightgrey;\n --text-color: #3c3c3c;\n --hover: #fdfdfd;\n --background-color-ellipses: #fdfdfd;\n --faded-text: #fafafa;\n --faded-text-header: #b4b4b4;\n --selected-background: rgba(255, 65, 54, 0.2);\n --faded-dropdown: #f0f0f0;\n --selected-row: #fff0ff;\n --muted: #c8c8c8;\n}\n/* focus happens after copying to clipboard */\n.dash-spreadsheet-inner table:focus {\n outline: none;\n}\n.dash-spreadsheet-inner thead {\n display: table-row-group;\n}\n.elip {\n text-align: center;\n width: 100%;\n background-color: var(--background-color-ellipses);\n}\n.dash-spreadsheet-inner td.dropdown {\n /*\n * To view the dropdown's contents, we need\n * overflow-y: visible.\n * Unfortunately, overflow-x: hidden and overflow-y: visible\n * can't both be set at the same time.\n * So, we have to make both overflow-x: visible and overflow-y: visble\n *\n * See https://stackoverflow.com/questions/6421966/\n *\n * There might be another solution with parent divs, but I haven't\n * tried it.\n */\n overflow-x: visible;\n}\n.dash-spreadsheet-inner th {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner :not(.cell--selected) tr:hover,\ntr:hover input :not(.cell--selected) {\n background-color: var(--hover);\n}\n.dash-spreadsheet-inner th {\n background-color: #fafafa;\n}\n.sort {\n cursor: pointer;\n float: left;\n color: var(--faded-text-header);\n font-size: 20px;\n}\nth:hover .sort {\n color: var(--accent);\n}\n.sort:hover {\n text-decoration: underline;\n}\n.expanded-row--empty-cell {\n box-shadow: none;\n background-color: transparent;\n}\n.expanded-row {\n text-align: center;\n}\n.dash-spreadsheet-inner input:not([type=radio]):not([type=checkbox]) {\n padding: 0px;\n margin: 0px;\n height: calc(100% - 1px);\n width: calc(100% - 1px);\n line-height: 30px;\n border: none;\n font-family: inherit;\n text-align: right;\n box-sizing: border-box;\n color: var(--text-color);\n background-color: transparent;\n /* so as to not overlay the box shadow */\n /* browser's default text-shadow is `$color 0px 0px 0px;`\n * for `input`, which makes it look a little bit heavier than dropdowns\n * or bare `td`\n */\n text-shadow: none;\n}\n.dash-spreadsheet-inner input.unfocused {\n color: transparent;\n text-shadow: 0 0 0 var(--text-color);\n cursor: default;\n}\n.dash-spreadsheet-inner input.unfocused:focus {\n outline: none;\n}\n.numeric {\n font-family: monospace;\n}\n.toggle-row {\n border: none;\n box-shadow: none;\n width: 10px;\n padding-left: 10px;\n padding-right: 10px;\n cursor: pointer;\n color: var(--faded-text);\n}\n.toggle-row--expanded {\n color: var(--accent);\n}\n.dash-spreadsheet-inner tr:hover .toggle-row {\n color: var(--accent);\n}\n.cell--uneditable,\n.cell--uneditable input {\n cursor: not-allowed;\n}\n.expanded-row {\n box-shadow: inset 2px 0px 0px 0px var(--accent), inset -1px 0px 0px 0px var(--border);\n /* inset 0px 1px 0px 0px var(--border); */\n}\n.dash-spreadsheet-inner .delete-cell {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: default;\n font-size: 1.3rem;\n text-align: center;\n cursor: pointer;\n color: var(--muted);\n}\n.dash-spreadsheet-inner .delete-cell:hover {\n color: var(--accent);\n}\n.dash-spreadsheet-inner .column-header--edit {\n float: left;\n opacity: 0.1;\n padding-left: 2px;\n padding-right: 2px;\n cursor: pointer;\n}\n.dash-spreadsheet-inner th:hover .column-header--edit {\n color: var(--accent);\n opacity: 1;\n}\n.dash-spreadsheet-inner .column-header--delete {\n float: left;\n opacity: 0.1;\n padding-left: 2px;\n padding-right: 2px;\n cursor: pointer;\n}\n.dash-spreadsheet-inner th:hover .column-header--delete {\n color: var(--accent);\n opacity: 1;\n}\n",""])},function(e,t,n){var r=n(57);"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(9)(r,o);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(8)(!1)).push([e.i,".dash-spreadsheet .Select,\n.dash-spreadsheet .Select-control {\n border: none;\n cursor: pointer;\n height: 30px; /* matches the td height and line-height */\n border: none;\n}\n\n.dash-spreadsheet .Select-placeholder,\n.dash-spreadsheet .Select--single > .Select-control .Select-value {\n height: 100%;\n line-height: inherit;\n}\n\n.dash-spreadsheet .Select.has-value.Select--single > .Select-control .Select-value .Select-value-label,\n.dash-spreadsheet .Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value .Select-value-label {\n color: var(--text-color);\n}\n\n.dash-spreadsheet .Select:hover,\n.dash-spreadsheet .Select-control:hover {\n border: none;\n box-shadow: none;\n cursor: pointer;\n}\n\n.dash-spreadsheet .Select-menu-outer {\n z-index: 100;\n}\n\n.dash-spreadsheet .Select-arrow {\n border-top-color: var(--faded-dropdown);\n border-left-color: transparent;\n border-right-color: transparent;\n border-bottom-color: transparent;\n}\n\n.dash-spreadsheet .Select-control:hover .Select-arrow {\n border-top-color: var(--accent);\n border-left-color: transparent;\n border-right-color: transparent;\n border-bottom-color: transparent;\n}\n\n.dash-spreadsheet .is-open > .Select-control .Select-arrow {\n border-bottom-color: var(--background-color-8-react-select);\n border-left-color: transparent;\n border-right-color: transparent;\n border-top-color: transparent;\n}\n\n.dash-spreadsheet .Select--multi .Select-value,\n.dash-spreadsheet .Select--multi a.Select-value-label {\n color: var(--color-8-react-select);\n}\n\n.dash-spreadsheet .Select {\n border-radius: 0;\n}\n\n.dash-spreadsheet .Select.is-disabled > .Select-control {\n border: none;\n}\n\n.dash-spreadsheet .Select--multi .Select-value-icon:hover,\n.dash-spreadsheet .Select--multi .Select-value-icon:focus {\n font-weight: bold;\n}\n\n.dash-spreadsheet .Select.is-disabled .Select-control {\n cursor: not-allowed;\n}\n\n.dash-spreadsheet .Select-menu-outer {\n background-color: white;\n border: none;\n border-bottom: thin var(--border) solid;\n border-radius: 0;\n border-top: none;\n}\n\n.dash-spreadsheet .Select-option {\n background-color: inherit;\n color: var(--accent);\n}\n\n.dash-spreadsheet .Select-option:hover {\n font-weight: bold;\n color: var(--accent);\n background-color: var(--hover);\n}\n\n.dash-spreadsheet .Select.is-focused:not(.is-open) > .Select-control {\n border: none;\n -webkit-box-shadow: none;\n box-shadow: none;\n background: #fff;\n}\n\n.dash-spreadsheet .Select-option.is-focused {\n background-color: white;\n color: var(--accent);\n font-weight: bold;\n}\n\n.dash-spreadsheet .Select-clear {\n color: transparent;\n}\n.Select:hover .Select-clear {\n color: var(--accent);\n}\n\n.dash-spreadsheet .Select-control {\n padding-left: 2px;\n}\n\n.dash-spreadsheet .cell--selected .Select-control {\n background-color: var(--selected-background);\n border-radius: 0;\n}\n",""])},function(e,t,n){var r=n(59);"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(9)(r,o);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(8)(!1)).push([e.i,"/*RESET CSS*/\nhtml {\n color: #000;\n background: #FFF;\n}\nbody,\ndiv,\ndl,\ndt,\ndd,\nul,\nol,\nli,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\npre,\ncode,\nform,\nfieldset,\nlegend,\ninput,\ntextarea,\np,\nblockquote,\nth,\ntd {\n margin: 0;\n padding: 0;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\nfieldset,\nimg {\n border: 0;\n}\naddress,\ncaption,\ncite,\ncode,\ndfn,\nem,\nstrong,\nth,\nvar {\n font-style: normal;\n font-weight: normal;\n}\nol,\nul {\n list-style: none;\n}\ncaption,\nth {\n text-align: left;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: 100%;\n font-weight: normal;\n}\nq:before,\nq:after {\n content: '';\n}\nabbr,\nacronym {\n border: 0;\n font-variant: normal;\n}\nsup {\n vertical-align: text-top;\n}\nsub {\n vertical-align: text-bottom;\n}\ninput,\ntextarea,\nselect {\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n *font-size: 100%;\n}\nlegend {\n color: #000;\n}\n#yui3-css-stamp.cssreset {\n display: none;\n}\ninput[type=\"button\"] {\n border-radius: 0;\n -webkit-appearance: none;\n}\n*:focus {\n outline: none;\n}\n.dash-spreadsheet-container input,\n.dash-spreadsheet-container table {\n font-size: 13px;\n}\nbody {\n margin: 0;\n padding: 0;\n font-family: sans-serif;\n}\n",""])},function(e,t,n){n(61),e.exports=n(64)},function(e,t,n){"use strict";var r=s(n(1)),o=s(n(6)),i=s(n(62)),u=n(3),a=s(u);function s(e){return e&&e.__esModule?e:{default:e}}a.default.setDebugLevel(u.DebugLevel.DEBUG),a.default.setLogLevel(u.LogLevel.WARNING),o.default.render(r.default.createElement(i.default,null),document.getElementById("root"))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;tJSON.parse(JSON.stringify(e));class f extends i.Component{constructor(){super();const e=d(l.mockData.dataframe);this.state={filter:"",tableProps:{id:"table",dataframe:e,columns:d(l.mockData.columns).map(e=>o.merge(e,{editable_name:!0,deletable:!0})),editable:!0,sorting:!0,n_fixed_rows:4,n_fixed_columns:2,merge_duplicate_headers:!1,row_deletable:!0,row_selectable:"single",column_static_dropdown:[{id:"bbb",dropdown:["Humid","Wet","Snowy","Tropical Beaches"].map(e=>({label:e,value:e}))}],table_style:[{selector:".dash-spreadsheet.freeze-left",rule:"width: 1000px; max-width: 1000px;"}]}};const t=(0,c.memoizeOne)(()=>e=>{console.info("---\x3e",e),this.setState(t=>({tableProps:o.merge(t.tableProps,e)}))});Object.defineProperty(this,"setProps",{get:()=>t()})}render(){return u.default.createElement(s.Table,r({setProps:this.setProps},this.state.tableProps,{filtering:"fe"}))}}f.propTypes={value:a.default.any},t.default=f},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.miniData=t.mockDataSimple=t.mockData=void 0;var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2));const o=5e3;t.mockData=i([{id:"rows",type:"numeric",width:40,editable:!1,data:u(e=>e)},{id:"ccc",name:["City","Canada","Toronto"],type:"numeric",width:150,data:u(e=>e)},{id:"ddd",name:["City","Canada","Montréal"],type:"numeric",width:150,data:u(e=>100*e)},{id:"eee",name:["City","America","New York City"],type:"numeric",width:150,data:u(e=>e)},{id:"fff",name:["City","America","Boston"],type:"numeric",width:150,data:u(e=>e+1)},{id:"ggg",name:["City","France","Paris"],type:"numeric",editable:!0,width:150,data:u(e=>10*e)},{id:"bbb",name:["","Weather","Climate"],type:"dropdown",clearable:!0,width:200,data:u(e=>["Humid","Wet","Snowy","Tropical Beaches"][e%4])},{id:"aaa",name:["","Weather","Temperature"],type:"numeric",width:150,data:u(e=>e+1)}]),t.mockDataSimple=i([{id:"aaa",name:"Temperature",type:"numeric",width:150,data:u(e=>e+1)},{id:"bbb",name:"Climate",type:"numeric",options:["Humid","Wet","Snowy","Tropical Beaches"].map(e=>({label:e,value:e})),clearable:!0,width:200,data:u(e=>["Humid","Wet","Snowy","Tropical Beaches"][e%4])}]),t.miniData=i([{id:"aaa",name:"cheese",data:[1,2,3]},{id:"bbb",name:"tomato",data:[3,2,1]}]);function i(e){const t={columns:[],dataframe:[]};return e.forEach(e=>{e.data.forEach((n,r)=>{t.dataframe[r]||(t.dataframe[r]={}),t.dataframe[r][e.id]=n}),t.columns.push(r.dissoc("data",e))}),t}function u(e,t=o){return r.range(1,t).map(e)}},function(e,t,n){e.exports=n.p+"index.html"}]); \ No newline at end of file +var D=function(e){return"string"==typeof e?e:null!==e&&JSON.stringify(e)||""},P=s.a.oneOfType([s.a.string,s.a.node]),R=s.a.oneOfType([s.a.string,s.a.number]),T=1,j=function(e,t){var n=void 0===e?"undefined":x(e);if("string"!==n&&"number"!==n&&"boolean"!==n)return e;var r=t.options,o=t.valueKey;if(r)for(var i=0;iu||id.bottom?l.scrollTop=s.offsetTop+s.clientHeight-l.offsetHeight:c.topt.offsetHeight&&t.scrollHeight-t.offsetHeight-t.scrollTop<=0&&this.props.onMenuScrollToBottom()}}},{key:"getOptionLabel",value:function(e){return e[this.props.labelKey]}},{key:"getValueArray",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,n="object"===(void 0===t?"undefined":x(t))?t:this.props;if(n.multi){if("string"==typeof e&&(e=e.split(n.delimiter)),!Array.isArray(e)){if(null===e||void 0===e)return[];e=[e]}return e.map(function(e){return j(e,n)}).filter(function(e){return e})}var r=j(e,n);return r?[r]:[]}},{key:"setValue",value:function(e){var t=this;if(this.props.autoBlur&&this.blurInput(),this.props.required){var n=M(e,this.props.multi);this.setState({required:n})}this.props.simpleValue&&e&&(e=this.props.multi?e.map(function(e){return e[t.props.valueKey]}).join(this.props.delimiter):e[this.props.valueKey]),this.props.onChange&&this.props.onChange(e)}},{key:"selectValue",value:function(e){var t=this;this.props.closeOnSelect&&(this.hasScrolledToOption=!1);var n=this.props.onSelectResetsInput?"":this.state.inputValue;this.props.multi?this.setState({focusedIndex:null,inputValue:this.handleInputValueChange(n),isOpen:!this.props.closeOnSelect},function(){t.getValueArray(t.props.value).some(function(n){return n[t.props.valueKey]===e[t.props.valueKey]})?t.removeValue(e):t.addValue(e)}):this.setState({inputValue:this.handleInputValueChange(n),isOpen:!this.props.closeOnSelect,isPseudoFocused:this.state.isFocused},function(){t.setValue(e)})}},{key:"addValue",value:function(e){var t=this.getValueArray(this.props.value),n=this._visibleOptions.filter(function(e){return!e.disabled}),r=n.indexOf(e);this.setValue(t.concat(e)),n.length-1===r?this.focusOption(n[r-1]):n.length>r&&this.focusOption(n[r+1])}},{key:"popValue",value:function(){var e=this.getValueArray(this.props.value);e.length&&!1!==e[e.length-1].clearableValue&&this.setValue(this.props.multi?e.slice(0,e.length-1):null)}},{key:"removeValue",value:function(e){var t=this,n=this.getValueArray(this.props.value);this.setValue(n.filter(function(n){return n[t.props.valueKey]!==e[t.props.valueKey]})),this.focus()}},{key:"clearValue",value:function(e){e&&"mousedown"===e.type&&0!==e.button||(e.preventDefault(),this.setValue(this.getResetValue()),this.setState({inputValue:this.handleInputValueChange(""),isOpen:!1},this.focus),this._focusAfterClear=!0)}},{key:"getResetValue",value:function(){return void 0!==this.props.resetValue?this.props.resetValue:this.props.multi?[]:null}},{key:"focusOption",value:function(e){this.setState({focusedOption:e})}},{key:"focusNextOption",value:function(){this.focusAdjacentOption("next")}},{key:"focusPreviousOption",value:function(){this.focusAdjacentOption("previous")}},{key:"focusPageUpOption",value:function(){this.focusAdjacentOption("page_up")}},{key:"focusPageDownOption",value:function(){this.focusAdjacentOption("page_down")}},{key:"focusStartOption",value:function(){this.focusAdjacentOption("start")}},{key:"focusEndOption",value:function(){this.focusAdjacentOption("end")}},{key:"focusAdjacentOption",value:function(e){var t=this._visibleOptions.map(function(e,t){return{option:e,index:t}}).filter(function(e){return!e.option.disabled});if(this._scrollToFocusedOptionOnUpdate=!0,!this.state.isOpen){var n={focusedOption:this._focusedOption||(t.length?t["next"===e?0:t.length-1].option:null),isOpen:!0};return this.props.onSelectResetsInput&&(n.inputValue=""),void this.setState(n)}if(t.length){for(var r=-1,o=0;o0?r-=1:r=t.length-1;else if("start"===e)r=0;else if("end"===e)r=t.length-1;else if("page_up"===e){var i=r-this.props.pageSize;r=i<0?0:i}else if("page_down"===e){var u=r+this.props.pageSize;r=u>t.length-1?t.length-1:u}-1===r&&(r=0),this.setState({focusedIndex:t[r].index,focusedOption:t[r].option})}}},{key:"getFocusedOption",value:function(){return this._focusedOption}},{key:"selectFocusedOption",value:function(){if(this._focusedOption)return this.selectValue(this._focusedOption)}},{key:"renderLoading",value:function(){if(this.props.isLoading)return c.a.createElement("span",{className:"Select-loading-zone","aria-hidden":"true"},c.a.createElement("span",{className:"Select-loading"}))}},{key:"renderValue",value:function(e,t){var n=this,r=this.props.valueRenderer||this.getOptionLabel,o=this.props.valueComponent;if(!e.length)return function(e,t,n){var r=e.inputValue,o=e.isPseudoFocused,i=e.isFocused,u=t.onSelectResetsInput;return!r||!u&&!n&&!o&&!i}(this.state,this.props,t)?c.a.createElement("div",{className:"Select-placeholder"},this.props.placeholder):null;var i=this.props.onValueClick?this.handleValueClick:null;return this.props.multi?e.map(function(e,t){return c.a.createElement(o,{disabled:n.props.disabled||!1===e.clearableValue,id:n._instancePrefix+"-value-"+t,instancePrefix:n._instancePrefix,key:"value-"+t+"-"+e[n.props.valueKey],onClick:i,onRemove:n.removeValue,placeholder:n.props.placeholder,value:e},r(e,t),c.a.createElement("span",{className:"Select-aria-only"}," "))}):function(e,t){var n=e.inputValue,r=e.isPseudoFocused,o=e.isFocused,i=t.onSelectResetsInput;return!n||!i&&!(!o&&r||o&&!r)}(this.state,this.props)?(t&&(i=null),c.a.createElement(o,{disabled:this.props.disabled,id:this._instancePrefix+"-value-item",instancePrefix:this._instancePrefix,onClick:i,placeholder:this.props.placeholder,value:e[0]},r(e[0]))):void 0}},{key:"renderInput",value:function(e,t){var n,r=this,i=u()("Select-input",this.props.inputProps.className),a=this.state.isOpen,s=u()((_(n={},this._instancePrefix+"-list",a),_(n,this._instancePrefix+"-backspace-remove-message",this.props.multi&&!this.props.disabled&&this.state.isFocused&&!this.state.inputValue),n)),l=this.state.inputValue;!l||this.props.onSelectResetsInput||this.state.isFocused||(l="");var p=O({},this.props.inputProps,{"aria-activedescendant":a?this._instancePrefix+"-option-"+t:this._instancePrefix+"-value","aria-describedby":this.props["aria-describedby"],"aria-expanded":""+a,"aria-haspopup":""+a,"aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"],"aria-owns":s,className:i,onBlur:this.handleInputBlur,onChange:this.handleInputChange,onFocus:this.handleInputFocus,ref:function(e){return r.input=e},role:"combobox",required:this.state.required,tabIndex:this.props.tabIndex,value:l});if(this.props.inputRenderer)return this.props.inputRenderer(p);if(this.props.disabled||!this.props.searchable){var d=C(this.props.inputProps,[]),f=u()(_({},this._instancePrefix+"-list",a));return c.a.createElement("div",O({},d,{"aria-expanded":a,"aria-owns":f,"aria-activedescendant":a?this._instancePrefix+"-option-"+t:this._instancePrefix+"-value","aria-disabled":""+this.props.disabled,"aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"],className:i,onBlur:this.handleInputBlur,onFocus:this.handleInputFocus,ref:function(e){return r.input=e},role:"combobox",style:{border:0,width:1,display:"inline-block"},tabIndex:this.props.tabIndex||0}))}return this.props.autosize?c.a.createElement(o.a,O({id:this.props.id},p,{minWidth:"5"})):c.a.createElement("div",{className:i,key:"input-wrap",style:{display:"inline-block"}},c.a.createElement("input",O({id:this.props.id},p)))}},{key:"renderClear",value:function(){var e=this.getValueArray(this.props.value);if(this.props.clearable&&e.length&&!this.props.disabled&&!this.props.isLoading){var t=this.props.multi?this.props.clearAllText:this.props.clearValueText,n=this.props.clearRenderer();return c.a.createElement("span",{"aria-label":t,className:"Select-clear-zone",onMouseDown:this.clearValue,onTouchEnd:this.handleTouchEndClearValue,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,title:t},n)}}},{key:"renderArrow",value:function(){if(this.props.arrowRenderer){var e=this.handleMouseDownOnArrow,t=this.state.isOpen,n=this.props.arrowRenderer({onMouseDown:e,isOpen:t});return n?c.a.createElement("span",{className:"Select-arrow-zone",onMouseDown:e},n):null}}},{key:"filterOptions",value:function(e){var t=this.state.inputValue,n=this.props.options||[];if(this.props.filterOptions){var r="function"==typeof this.props.filterOptions?this.props.filterOptions:y;return r(n,t,e,{filterOption:this.props.filterOption,ignoreAccents:this.props.ignoreAccents,ignoreCase:this.props.ignoreCase,labelKey:this.props.labelKey,matchPos:this.props.matchPos,matchProp:this.props.matchProp,trimFilter:this.props.trimFilter,valueKey:this.props.valueKey})}return n}},{key:"onOptionRef",value:function(e,t){t&&(this.focused=e)}},{key:"renderMenu",value:function(e,t,n){return e&&e.length?this.props.menuRenderer({focusedOption:n,focusOption:this.focusOption,inputValue:this.state.inputValue,instancePrefix:this._instancePrefix,labelKey:this.props.labelKey,onFocus:this.focusOption,onOptionRef:this.onOptionRef,onSelect:this.selectValue,optionClassName:this.props.optionClassName,optionComponent:this.props.optionComponent,optionRenderer:this.props.optionRenderer||this.getOptionLabel,options:e,removeValue:this.removeValue,selectValue:this.selectValue,valueArray:t,valueKey:this.props.valueKey}):this.props.noResultsText?c.a.createElement("div",{className:"Select-noresults"},this.props.noResultsText):null}},{key:"renderHiddenField",value:function(e){var t=this;if(this.props.name){if(this.props.joinValues){var n=e.map(function(e){return D(e[t.props.valueKey])}).join(this.props.delimiter);return c.a.createElement("input",{disabled:this.props.disabled,name:this.props.name,ref:function(e){return t.value=e},type:"hidden",value:n})}return e.map(function(e,n){return c.a.createElement("input",{disabled:t.props.disabled,key:"hidden."+n,name:t.props.name,ref:"value"+n,type:"hidden",value:D(e[t.props.valueKey])})})}}},{key:"getFocusableOptionIndex",value:function(e){var t=this._visibleOptions;if(!t.length)return null;var n=this.props.valueKey,r=this.state.focusedOption||e;if(r&&!r.disabled){var o=-1;if(t.some(function(e,t){var i=e[n]===r[n];return i&&(o=t),i}),-1!==o)return o}for(var i=0;i{const u=n.slice(-1)[0],a=n.slice(0,-1),s=r.reduce((e,t)=>e.get(t)||e.set(t,new Map).get(t),t,a);return(s.get(u)||s.set(u,function(e){return(0,o.memoizeOne)((...t)=>e(...t))}(e)).get(u))(...i)}};var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),o=n(5)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),o=d(n(1)),i=d(n(3)),u=d(n(42)),a=d(n(43)),s=n(44),l=d(n(10)),c=n(16),p=d(n(18));function d(e){return e&&e.__esModule?e:{default:e}}t.default=class{constructor(e){this.propsFn=e,this.handlers=new Map,this.ops=new Map,this.onChange=((e,t,n,o)=>{i.default.debug("Filter -- onChange",e,o.target.value&&o.target.value.trim());const u=o.target.value.trim();u&&u.length?t.set(e,u):t.delete(e),n(r.map(([e,t])=>`${e} ${t}`,r.filter(([e])=>this.isFragmentValid(e),Array.from(t.entries()))).join(" && "))}),this.getEventHandler=((e,t,n,r)=>{const o=this.handlers.get(e)||this.handlers.set(e,new Map).get(e),i=o.get(t)||o.set(t,new Map).get(t);return i.get(r)||i.set(r,e.bind(this,t,n,r)).get(r)})}get props(){return this.propsFn()}respectsBasicSyntax(e,t=!0){const n=[c.LexemeType.BinaryOperator,c.LexemeType.Expression,c.LexemeType.Operand,c.LexemeType.UnaryOperator];if(t&&n.push(c.LexemeType.And),!r.all(e=>r.contains(e.lexeme.name,n),e))return!1;const o=r.map(e=>e.value,r.filter(e=>e.lexeme.name===c.LexemeType.Operand,e)),i=r.uniq(o);return o.length===i.length}isBasicFilter(e,t,n=!0){return e.valid&&t.valid&&this.respectsBasicSyntax(e.lexemes,n)}updateOps(e){const t=(0,l.default)(e),n=(0,p.default)(t);if(!this.isBasicFilter(t,n))return;const r=[n.tree];for(;r.length;){const e=r.pop();e&&(e.lexeme.name===c.LexemeType.UnaryOperator&&e.block?this.ops.set(e.block.value,e.value):e.lexeme.name===c.LexemeType.BinaryOperator&&e.left&&e.right?this.ops.set(e.left.value,`${e.value} ${e.right.value}`):(r.push(e.left),r.push(e.block),r.push(e.right)))}}isFragmentValidOrNull(e){const t=this.ops.get(e);return!t||!t.trim().length||this.isFragmentValid(e)}isFragmentValid(e){const t=this.ops.get(e),n=(0,l.default)(`${e} ${t}`),r=(0,p.default)(n);return r.valid&&this.isBasicFilter(n,r,!1)}createFilters(){var e=this.props;const t=e.columns,n=e.filtering,i=e.filtering_settings,l=e.filtering_type,c=e.offset,p=e.setFilter;if(!n)return[];this.updateOps(i);const d=r.filter(e=>!e.hidden,t),f=r.range(0,c).map(e=>o.default.createElement("th",{key:`offset-${e}`})),h=l===s.FilteringType.Basic?r.addIndex(r.map)((e,t)=>o.default.createElement(u.default,{key:`column-${t+c}`,classes:`filter column-${t+c}`,isValid:this.isFragmentValidOrNull(e.id),property:e.id,setFilter:this.getEventHandler(this.onChange,e.id,this.ops,p),value:this.ops.get(e.id)}),d):[o.default.createElement(a.default,{key:`column-${c}`,classes:[],colSpan:d.length,value:"",setFilter:()=>void 0})];return[r.concat(f,h)]}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=u(r),i=u(n(20));function u(e){return e&&e.__esModule?e:{default:e}}t.default=class extends r.PureComponent{constructor(e){super(e),this.submit=(e=>{(0,this.props.setFilter)({target:{value:e}})}),this.state={value:e.value}}componentWillReceiveProps(e){const t=e.value;this.state.value!==t&&this.setState({value:t})}render(){var e=this.props;const t=e.classes,n=e.isValid,r=e.value;return o.default.createElement("th",{className:t+(n?"":" invalid")},o.default.createElement(i.default,{value:r,stopPropagation:!0,submit:this.submit}))}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=u(r),i=u(n(20));function u(e){return e&&e.__esModule?e:{default:e}}t.default=class extends r.PureComponent{constructor(e){super(e),this.submit=(e=>this.props.setFilter(e))}render(){var e=this.props;const t=e.colSpan,n=e.value;return o.default.createElement("th",{colSpan:t},o.default.createElement(i.default,{stopPropagation:!0,value:n,submit:this.submit}))}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=t.FilteringType=void 0;!function(e){e.Advanced="advanced",e.Basic="basic"}(r||(t.FilteringType=r={}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(5);t.default=(0,r.memoizeOneFactory)((e,t,n,r)=>{switch(e){case!1:return{loadNext:()=>{},loadPrevious:()=>{}};case!0:case"fe":return function(e,t,n){return{loadNext:()=>{let r=Math.floor(n.length/e.page_size);e.current_page>=r||(e.current_page++,t({pagination_settings:e}))},loadPrevious:()=>{e.current_page<=0||(e.current_page--,t({pagination_settings:e}))}}}(t,n,r);case"be":return function(e,t){return{loadNext:()=>{e.current_page++,t({pagination_settings:e})},loadPrevious:()=>{e.current_page<=0||(e.current_page--,t({pagination_settings:e}))}}}(t,n);default:throw new Error(`Unknown pagination mode: '${e}'`)}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(5);t.default=(0,r.memoizeOneFactory)((e,t,n,r)=>{switch(e){case!1:return function(e,t){return{dataframe:e,indices:t}}(n,r);case!0:case"fe":return function(e,t,n){let r=Math.min(e.current_page,Math.floor(t.length/e.page_size));const o=e.page_size*r,i=Math.min(o+e.displayed_pages*e.page_size,t.length);return{dataframe:t.slice(o,i),indices:n.slice(o,i)}}(t,n,r);case"be":return function(e,t){return{dataframe:e,indices:t}}(n,r);default:throw new Error(`Unknown pagination mode: '${e}'`)}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2)),o=n(5),i=n(7),u=s(i),a=s(n(17));function s(e){return e&&e.__esModule?e:{default:e}}t.default=(0,o.memoizeOneFactory)((e,t,n,o,s=[],l)=>{const c=new Map;if(r.addIndex(r.forEach)((e,t)=>{c.set(e,t)},e),"fe"===t||!0===t){const t=new a.default(n);e=t.isValid?t.filter(e):e}const p=l?e=>""===e||(0,i.defaultIsNully)(e):void 0;return"fe"!==o&&!0!==o||(e=(0,u.default)(e,s,p)),{dataframe:e,indices:r.map(e=>c.get(e),e)}})},function(e,t,n){var r=n(49);"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(9)(r,o);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(8)(!1)).push([e.i,"/**\n * React Select\n * ============\n * Created by Jed Watson and Joss Mackison for KeystoneJS, http://www.keystonejs.com/\n * https://twitter.com/jedwatson https://twitter.com/jossmackison https://twitter.com/keystonejs\n * MIT License: https://github.com/JedWatson/react-select\n*/\n.Select {\n position: relative;\n}\n.Select input::-webkit-contacts-auto-fill-button,\n.Select input::-webkit-credentials-auto-fill-button {\n display: none !important;\n}\n.Select input::-ms-clear {\n display: none !important;\n}\n.Select input::-ms-reveal {\n display: none !important;\n}\n.Select,\n.Select div,\n.Select input,\n.Select span {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n.Select.is-disabled .Select-arrow-zone {\n cursor: default;\n pointer-events: none;\n opacity: 0.35;\n}\n.Select.is-disabled > .Select-control {\n background-color: #f9f9f9;\n}\n.Select.is-disabled > .Select-control:hover {\n box-shadow: none;\n}\n.Select.is-open > .Select-control {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n background: #fff;\n border-color: #b3b3b3 #ccc #d9d9d9;\n}\n.Select.is-open > .Select-control .Select-arrow {\n top: -2px;\n border-color: transparent transparent #999;\n border-width: 0 5px 5px;\n}\n.Select.is-searchable.is-open > .Select-control {\n cursor: text;\n}\n.Select.is-searchable.is-focused:not(.is-open) > .Select-control {\n cursor: text;\n}\n.Select.is-focused > .Select-control {\n background: #fff;\n}\n.Select.is-focused:not(.is-open) > .Select-control {\n border-color: #007eff;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 0 3px rgba(0, 126, 255, 0.1);\n background: #fff;\n}\n.Select.has-value.is-clearable.Select--single > .Select-control .Select-value {\n padding-right: 42px;\n}\n.Select.has-value.Select--single > .Select-control .Select-value .Select-value-label,\n.Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value .Select-value-label {\n color: #333;\n}\n.Select.has-value.Select--single > .Select-control .Select-value a.Select-value-label,\n.Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label {\n cursor: pointer;\n text-decoration: none;\n}\n.Select.has-value.Select--single > .Select-control .Select-value a.Select-value-label:hover,\n.Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label:hover,\n.Select.has-value.Select--single > .Select-control .Select-value a.Select-value-label:focus,\n.Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label:focus {\n color: #007eff;\n outline: none;\n text-decoration: underline;\n}\n.Select.has-value.Select--single > .Select-control .Select-value a.Select-value-label:focus,\n.Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label:focus {\n background: #fff;\n}\n.Select.has-value.is-pseudo-focused .Select-input {\n opacity: 0;\n}\n.Select.is-open .Select-arrow,\n.Select .Select-arrow-zone:hover > .Select-arrow {\n border-top-color: #666;\n}\n.Select.Select--rtl {\n direction: rtl;\n text-align: right;\n}\n.Select-control {\n background-color: #fff;\n border-color: #d9d9d9 #ccc #b3b3b3;\n border-radius: 4px;\n border: 1px solid #ccc;\n color: #333;\n cursor: default;\n display: table;\n border-spacing: 0;\n border-collapse: separate;\n height: 36px;\n outline: none;\n overflow: hidden;\n position: relative;\n width: 100%;\n}\n.Select-control:hover {\n box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);\n}\n.Select-control .Select-input:focus {\n outline: none;\n background: #fff;\n}\n.Select-placeholder,\n.Select--single > .Select-control .Select-value {\n bottom: 0;\n color: #aaa;\n left: 0;\n line-height: 34px;\n padding-left: 10px;\n padding-right: 10px;\n position: absolute;\n right: 0;\n top: 0;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.Select-input {\n height: 34px;\n padding-left: 10px;\n padding-right: 10px;\n vertical-align: middle;\n}\n.Select-input > input {\n width: 100%;\n background: none transparent;\n border: 0 none;\n box-shadow: none;\n cursor: default;\n display: inline-block;\n font-family: inherit;\n font-size: inherit;\n margin: 0;\n outline: none;\n line-height: 17px;\n /* For IE 8 compatibility */\n padding: 8px 0 12px;\n /* For IE 8 compatibility */\n -webkit-appearance: none;\n}\n.is-focused .Select-input > input {\n cursor: text;\n}\n.has-value.is-pseudo-focused .Select-input {\n opacity: 0;\n}\n.Select-control:not(.is-searchable) > .Select-input {\n outline: none;\n}\n.Select-loading-zone {\n cursor: pointer;\n display: table-cell;\n position: relative;\n text-align: center;\n vertical-align: middle;\n width: 16px;\n}\n.Select-loading {\n -webkit-animation: Select-animation-spin 400ms infinite linear;\n -o-animation: Select-animation-spin 400ms infinite linear;\n animation: Select-animation-spin 400ms infinite linear;\n width: 16px;\n height: 16px;\n box-sizing: border-box;\n border-radius: 50%;\n border: 2px solid #ccc;\n border-right-color: #333;\n display: inline-block;\n position: relative;\n vertical-align: middle;\n}\n.Select-clear-zone {\n -webkit-animation: Select-animation-fadeIn 200ms;\n -o-animation: Select-animation-fadeIn 200ms;\n animation: Select-animation-fadeIn 200ms;\n color: #999;\n cursor: pointer;\n display: table-cell;\n position: relative;\n text-align: center;\n vertical-align: middle;\n width: 17px;\n}\n.Select-clear-zone:hover {\n color: #D0021B;\n}\n.Select-clear {\n display: inline-block;\n font-size: 18px;\n line-height: 1;\n}\n.Select--multi .Select-clear-zone {\n width: 17px;\n}\n.Select-arrow-zone {\n cursor: pointer;\n display: table-cell;\n position: relative;\n text-align: center;\n vertical-align: middle;\n width: 25px;\n padding-right: 5px;\n}\n.Select--rtl .Select-arrow-zone {\n padding-right: 0;\n padding-left: 5px;\n}\n.Select-arrow {\n border-color: #999 transparent transparent;\n border-style: solid;\n border-width: 5px 5px 2.5px;\n display: inline-block;\n height: 0;\n width: 0;\n position: relative;\n}\n.Select-control > *:last-child {\n padding-right: 5px;\n}\n.Select--multi .Select-multi-value-wrapper {\n display: inline-block;\n}\n.Select .Select-aria-only {\n position: absolute;\n display: inline-block;\n height: 1px;\n width: 1px;\n margin: -1px;\n clip: rect(0, 0, 0, 0);\n overflow: hidden;\n float: left;\n}\n@-webkit-keyframes Select-animation-fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes Select-animation-fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n.Select-menu-outer {\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n background-color: #fff;\n border: 1px solid #ccc;\n border-top-color: #e6e6e6;\n box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);\n box-sizing: border-box;\n margin-top: -1px;\n max-height: 200px;\n position: absolute;\n left: 0;\n top: 100%;\n width: 100%;\n z-index: 1;\n -webkit-overflow-scrolling: touch;\n}\n.Select-menu {\n max-height: 198px;\n overflow-y: auto;\n}\n.Select-option {\n box-sizing: border-box;\n background-color: #fff;\n color: #666666;\n cursor: pointer;\n display: block;\n padding: 8px 10px;\n}\n.Select-option:last-child {\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.Select-option.is-selected {\n background-color: #f5faff;\n /* Fallback color for IE 8 */\n background-color: rgba(0, 126, 255, 0.04);\n color: #333;\n}\n.Select-option.is-focused {\n background-color: #ebf5ff;\n /* Fallback color for IE 8 */\n background-color: rgba(0, 126, 255, 0.08);\n color: #333;\n}\n.Select-option.is-disabled {\n color: #cccccc;\n cursor: default;\n}\n.Select-noresults {\n box-sizing: border-box;\n color: #999999;\n cursor: default;\n display: block;\n padding: 8px 10px;\n}\n.Select--multi .Select-input {\n vertical-align: middle;\n margin-left: 10px;\n padding: 0;\n}\n.Select--multi.Select--rtl .Select-input {\n margin-left: 0;\n margin-right: 10px;\n}\n.Select--multi.has-value .Select-input {\n margin-left: 5px;\n}\n.Select--multi .Select-value {\n background-color: #ebf5ff;\n /* Fallback color for IE 8 */\n background-color: rgba(0, 126, 255, 0.08);\n border-radius: 2px;\n border: 1px solid #c2e0ff;\n /* Fallback color for IE 8 */\n border: 1px solid rgba(0, 126, 255, 0.24);\n color: #007eff;\n display: inline-block;\n font-size: 0.9em;\n line-height: 1.4;\n margin-left: 5px;\n margin-top: 5px;\n vertical-align: top;\n}\n.Select--multi .Select-value-icon,\n.Select--multi .Select-value-label {\n display: inline-block;\n vertical-align: middle;\n}\n.Select--multi .Select-value-label {\n border-bottom-right-radius: 2px;\n border-top-right-radius: 2px;\n cursor: default;\n padding: 2px 5px;\n}\n.Select--multi a.Select-value-label {\n color: #007eff;\n cursor: pointer;\n text-decoration: none;\n}\n.Select--multi a.Select-value-label:hover {\n text-decoration: underline;\n}\n.Select--multi .Select-value-icon {\n cursor: pointer;\n border-bottom-left-radius: 2px;\n border-top-left-radius: 2px;\n border-right: 1px solid #c2e0ff;\n /* Fallback color for IE 8 */\n border-right: 1px solid rgba(0, 126, 255, 0.24);\n padding: 1px 5px 3px;\n}\n.Select--multi .Select-value-icon:hover,\n.Select--multi .Select-value-icon:focus {\n background-color: #d8eafd;\n /* Fallback color for IE 8 */\n background-color: rgba(0, 113, 230, 0.08);\n color: #0071e6;\n}\n.Select--multi .Select-value-icon:active {\n background-color: #c2e0ff;\n /* Fallback color for IE 8 */\n background-color: rgba(0, 126, 255, 0.24);\n}\n.Select--multi.Select--rtl .Select-value {\n margin-left: 0;\n margin-right: 5px;\n}\n.Select--multi.Select--rtl .Select-value-icon {\n border-right: none;\n border-left: 1px solid #c2e0ff;\n /* Fallback color for IE 8 */\n border-left: 1px solid rgba(0, 126, 255, 0.24);\n}\n.Select--multi.is-disabled .Select-value {\n background-color: #fcfcfc;\n border: 1px solid #e3e3e3;\n color: #333;\n}\n.Select--multi.is-disabled .Select-value-icon {\n cursor: not-allowed;\n border-right: 1px solid #e3e3e3;\n}\n.Select--multi.is-disabled .Select-value-icon:hover,\n.Select--multi.is-disabled .Select-value-icon:focus,\n.Select--multi.is-disabled .Select-value-icon:active {\n background-color: #fcfcfc;\n}\n@keyframes Select-animation-spin {\n to {\n transform: rotate(1turn);\n }\n}\n@-webkit-keyframes Select-animation-spin {\n to {\n -webkit-transform: rotate(1turn);\n }\n}\n",""])},function(e,t){e.exports=function(e){var t="undefined"!=typeof window&&window.location;if(!t)throw new Error("fixUrls requires window.location");if(!e||"string"!=typeof e)return e;var n=t.protocol+"//"+t.host,r=n+t.pathname.replace(/\/[^\/]*$/,"/");return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(e,t){var o,i=t.trim().replace(/^"(.*)"$/,function(e,t){return t}).replace(/^'(.*)'$/,function(e,t){return t});return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(i)?e:(o=0===i.indexOf("//")?i:0===i.indexOf("/")?n+i:r+i.replace(/^\.\//,""),"url("+JSON.stringify(o)+")")})}},function(e,t,n){var r=n(52);"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(9)(r,o);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(8)(!1)).push([e.i,".dash-spreadsheet.freeze-left {\n width: auto;\n width: fit-content;\n width: -moz-fit-content;\n width: -webkit-fit-content;\n max-width: 500px;\n}\n.dash-spreadsheet.freeze-top {\n width: auto;\n width: fit-content;\n width: -moz-fit-content;\n width: -webkit-fit-content;\n max-height: 500px;\n}\n.dash-spreadsheet-container {\n display: flex;\n flex-direction: row;\n position: relative;\n}\n.dash-spreadsheet-inner {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n}\n.dash-spreadsheet-inner.freeze-left,\n.dash-spreadsheet-inner.freeze-top {\n overflow: hidden !important;\n}\n.dash-spreadsheet-inner *,\n.dash-spreadsheet-inner *:after,\n.dash-spreadsheet-inner *:before {\n box-sizing: inherit;\n}\n.dash-spreadsheet-inner .Select {\n overflow: hidden;\n position: static;\n}\n.dash-spreadsheet-inner .Select,\n.dash-spreadsheet-inner .Select-control {\n background-color: inherit;\n}\n.dash-spreadsheet-inner .Select-value {\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-top: -2px;\n}\n.dash-spreadsheet-inner .marker-row tr {\n visibility: hidden !important;\n}\n.dash-spreadsheet-inner .marker-row td,\n.dash-spreadsheet-inner .marker-row th {\n height: 0 !important;\n padding: 0 !important;\n margin: 0 !important;\n}\n.dash-spreadsheet-inner .row-0 {\n display: flex;\n flex: 0 0 auto;\n flex-direction: row;\n}\n.dash-spreadsheet-inner .row-1 {\n display: flex;\n flex-direction: row;\n overflow: scroll;\n}\n.dash-spreadsheet-inner .cell-0-0,\n.dash-spreadsheet-inner .cell-1-0 {\n flex: 0 0 auto;\n left: 0;\n position: sticky;\n z-index: 400;\n}\n.dash-spreadsheet-inner:not(.freeze-top):not(.freeze-left) .cell-1-1 tr td:first-of-type,\n.dash-spreadsheet-inner:not(.freeze-top):not(.freeze-left) .cell-1-1 tr th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 0px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner:not(.freeze-top):not(.freeze-left) .cell-1-1 tr:first-of-type td,\n.dash-spreadsheet-inner:not(.freeze-top):not(.freeze-left) .cell-1-1 tr:first-of-type th {\n box-shadow: inset 0px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner:not(.freeze-top):not(.freeze-left) .cell-1-1 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner:not(.freeze-top):not(.freeze-left) .cell-1-1 tr:first-of-type th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-0 tr td:first-of-type,\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-0 tr th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 0px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-0 tr:first-of-type td,\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-0 tr:first-of-type th {\n box-shadow: inset 0px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-0 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-0 tr:first-of-type th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-1 tr:first-of-type td,\n.dash-spreadsheet-inner:not(.freeze-top).freeze-left .cell-1-1 tr:first-of-type th {\n box-shadow: inset 0px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-0-1 tr td:first-of-type,\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-0-1 tr th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 0px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-0-1 tr:first-of-type td,\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-0-1 tr:first-of-type th {\n box-shadow: inset 0px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-0-1 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-0-1 tr:first-of-type th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-1-1 tr td:first-of-type,\n.dash-spreadsheet-inner.freeze-top:not(.freeze-left) .cell-1-1 tr th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 0px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-0 tr td:first-of-type,\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-0 tr th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 0px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-0 tr:first-of-type td,\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-0 tr:first-of-type th {\n box-shadow: inset 0px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-0 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-0 tr:first-of-type th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-1 tr:first-of-type td,\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-0-1 tr:first-of-type th {\n box-shadow: inset 0px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-1-0 tr td:first-of-type,\n.dash-spreadsheet-inner.freeze-top.freeze-left .cell-1-0 tr th:first-of-type {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 0px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner .cell-0-1 {\n z-index: 300;\n flex: 0 0 auto;\n}\n.dash-spreadsheet-inner .cell-1-1 {\n flex: 0 0 auto;\n}\n.dash-spreadsheet-inner .cell td,\n.dash-spreadsheet-inner .cell th {\n box-shadow: inset 0px 0px 0px 0px var(--border), inset 0px 0px 0px 0px var(--border), inset -1px 0px 0px var(--border), inset 0px -1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner .cell td:focus,\n.dash-spreadsheet-inner .cell th:focus {\n outline: none;\n}\n.dash-spreadsheet-inner .filter.invalid {\n box-shadow: inset 1px 0px 0px 0px red, inset 0px 1px 0px 0px red, inset -1px 0px 0px red, inset 0px -1px 0px 0px red;\n background-color: pink;\n}\n.dash-spreadsheet-inner .selected-row td,\n.dash-spreadsheet-inner .selected-row th {\n background-color: var(--selected-row);\n}\n.dash-spreadsheet-inner tr {\n background-color: white;\n}\n.dash-spreadsheet-inner td {\n background-color: inherit;\n}\n.dash-spreadsheet-inner td.cell--selected {\n background-color: var(--selected-background);\n}\n.dash-spreadsheet-inner td.focused {\n box-shadow: 1px 0px 0px 0px var(--accent), 0px 1px 0px 0px var(--accent), 0 0px 0px var(--accent), 0px 0 0px 0px var(--accent);\n border: 1px solid var(--accent);\n margin: -1px;\n z-index: 200;\n}\n.dash-spreadsheet-inner td .cell-value {\n height: 100%;\n width: 100%;\n}\n.dash-spreadsheet-inner td div.cell-value {\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n.dash-spreadsheet-inner td,\n.dash-spreadsheet-inner th {\n padding: 2px;\n white-space: nowrap;\n overflow-x: hidden;\n text-overflow: ellipsis;\n height: 30px;\n text-align: right;\n}\n.dash-spreadsheet-inner th .column-header--edit,\n.dash-spreadsheet-inner th .column-header--delete,\n.dash-spreadsheet-inner th .sort {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: default;\n cursor: pointer;\n}\n.dash-spreadsheet-inner textarea {\n white-space: pre;\n}\n.dash-spreadsheet-inner table {\n border-collapse: collapse;\n font-family: monospace;\n --accent: hotpink;\n --border: lightgrey;\n --text-color: #3c3c3c;\n --hover: #fdfdfd;\n --background-color-ellipses: #fdfdfd;\n --faded-text: #fafafa;\n --faded-text-header: #b4b4b4;\n --selected-background: rgba(255, 65, 54, 0.2);\n --faded-dropdown: #f0f0f0;\n --selected-row: #fff0ff;\n --muted: #c8c8c8;\n}\n/* focus happens after copying to clipboard */\n.dash-spreadsheet-inner table:focus {\n outline: none;\n}\n.dash-spreadsheet-inner thead {\n display: table-row-group;\n}\n.elip {\n text-align: center;\n width: 100%;\n background-color: var(--background-color-ellipses);\n}\n.dash-spreadsheet-inner td.dropdown {\n /*\n * To view the dropdown's contents, we need\n * overflow-y: visible.\n * Unfortunately, overflow-x: hidden and overflow-y: visible\n * can't both be set at the same time.\n * So, we have to make both overflow-x: visible and overflow-y: visble\n *\n * See https://stackoverflow.com/questions/6421966/\n *\n * There might be another solution with parent divs, but I haven't\n * tried it.\n */\n overflow-x: visible;\n}\n.dash-spreadsheet-inner th {\n box-shadow: inset 1px 0px 0px 0px var(--border), inset 0px 1px 0px 0px var(--border);\n}\n.dash-spreadsheet-inner :not(.cell--selected) tr:hover,\ntr:hover input :not(.cell--selected) {\n background-color: var(--hover);\n}\n.dash-spreadsheet-inner th {\n background-color: #fafafa;\n}\n.sort {\n cursor: pointer;\n float: left;\n color: var(--faded-text-header);\n font-size: 20px;\n}\nth:hover .sort {\n color: var(--accent);\n}\n.sort:hover {\n text-decoration: underline;\n}\n.expanded-row--empty-cell {\n box-shadow: none;\n background-color: transparent;\n}\n.expanded-row {\n text-align: center;\n}\n.dash-spreadsheet-inner input:not([type=radio]):not([type=checkbox]) {\n padding: 0px;\n margin: 0px;\n height: calc(100% - 1px);\n width: calc(100% - 1px);\n line-height: 30px;\n border: none;\n font-family: inherit;\n text-align: right;\n box-sizing: border-box;\n color: var(--text-color);\n background-color: transparent;\n /* so as to not overlay the box shadow */\n /* browser's default text-shadow is `$color 0px 0px 0px;`\n * for `input`, which makes it look a little bit heavier than dropdowns\n * or bare `td`\n */\n text-shadow: none;\n}\n.dash-spreadsheet-inner input.unfocused {\n color: transparent;\n text-shadow: 0 0 0 var(--text-color);\n cursor: default;\n}\n.dash-spreadsheet-inner input.unfocused:focus {\n outline: none;\n}\n.numeric {\n font-family: monospace;\n}\n.toggle-row {\n border: none;\n box-shadow: none;\n width: 10px;\n padding-left: 10px;\n padding-right: 10px;\n cursor: pointer;\n color: var(--faded-text);\n}\n.toggle-row--expanded {\n color: var(--accent);\n}\n.dash-spreadsheet-inner tr:hover .toggle-row {\n color: var(--accent);\n}\n.cell--uneditable,\n.cell--uneditable input {\n cursor: not-allowed;\n}\n.expanded-row {\n box-shadow: inset 2px 0px 0px 0px var(--accent), inset -1px 0px 0px 0px var(--border);\n /* inset 0px 1px 0px 0px var(--border); */\n}\n.dash-spreadsheet-inner .delete-cell {\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: default;\n font-size: 1.3rem;\n text-align: center;\n cursor: pointer;\n color: var(--muted);\n}\n.dash-spreadsheet-inner .delete-cell:hover {\n color: var(--accent);\n}\n.dash-spreadsheet-inner .column-header--edit {\n float: left;\n opacity: 0.1;\n padding-left: 2px;\n padding-right: 2px;\n cursor: pointer;\n}\n.dash-spreadsheet-inner th:hover .column-header--edit {\n color: var(--accent);\n opacity: 1;\n}\n.dash-spreadsheet-inner .column-header--delete {\n float: left;\n opacity: 0.1;\n padding-left: 2px;\n padding-right: 2px;\n cursor: pointer;\n}\n.dash-spreadsheet-inner th:hover .column-header--delete {\n color: var(--accent);\n opacity: 1;\n}\n",""])},function(e,t,n){var r=n(54);"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(9)(r,o);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(8)(!1)).push([e.i,".dash-spreadsheet .Select,\n.dash-spreadsheet .Select-control {\n border: none;\n cursor: pointer;\n height: 30px; /* matches the td height and line-height */\n border: none;\n}\n\n.dash-spreadsheet .Select-placeholder,\n.dash-spreadsheet .Select--single > .Select-control .Select-value {\n height: 100%;\n line-height: inherit;\n}\n\n.dash-spreadsheet .Select.has-value.Select--single > .Select-control .Select-value .Select-value-label,\n.dash-spreadsheet .Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value .Select-value-label {\n color: var(--text-color);\n}\n\n.dash-spreadsheet .Select:hover,\n.dash-spreadsheet .Select-control:hover {\n border: none;\n box-shadow: none;\n cursor: pointer;\n}\n\n.dash-spreadsheet .Select-menu-outer {\n z-index: 100;\n}\n\n.dash-spreadsheet .Select-arrow {\n border-top-color: var(--faded-dropdown);\n border-left-color: transparent;\n border-right-color: transparent;\n border-bottom-color: transparent;\n}\n\n.dash-spreadsheet .Select-control:hover .Select-arrow {\n border-top-color: var(--accent);\n border-left-color: transparent;\n border-right-color: transparent;\n border-bottom-color: transparent;\n}\n\n.dash-spreadsheet .is-open > .Select-control .Select-arrow {\n border-bottom-color: var(--background-color-8-react-select);\n border-left-color: transparent;\n border-right-color: transparent;\n border-top-color: transparent;\n}\n\n.dash-spreadsheet .Select--multi .Select-value,\n.dash-spreadsheet .Select--multi a.Select-value-label {\n color: var(--color-8-react-select);\n}\n\n.dash-spreadsheet .Select {\n border-radius: 0;\n}\n\n.dash-spreadsheet .Select.is-disabled > .Select-control {\n border: none;\n}\n\n.dash-spreadsheet .Select--multi .Select-value-icon:hover,\n.dash-spreadsheet .Select--multi .Select-value-icon:focus {\n font-weight: bold;\n}\n\n.dash-spreadsheet .Select.is-disabled .Select-control {\n cursor: not-allowed;\n}\n\n.dash-spreadsheet .Select-menu-outer {\n background-color: white;\n border: none;\n border-bottom: thin var(--border) solid;\n border-radius: 0;\n border-top: none;\n}\n\n.dash-spreadsheet .Select-option {\n background-color: inherit;\n color: var(--accent);\n}\n\n.dash-spreadsheet .Select-option:hover {\n font-weight: bold;\n color: var(--accent);\n background-color: var(--hover);\n}\n\n.dash-spreadsheet .Select.is-focused:not(.is-open) > .Select-control {\n border: none;\n -webkit-box-shadow: none;\n box-shadow: none;\n background: #fff;\n}\n\n.dash-spreadsheet .Select-option.is-focused {\n background-color: white;\n color: var(--accent);\n font-weight: bold;\n}\n\n.dash-spreadsheet .Select-clear {\n color: transparent;\n}\n.Select:hover .Select-clear {\n color: var(--accent);\n}\n\n.dash-spreadsheet .Select-control {\n padding-left: 2px;\n}\n\n.dash-spreadsheet .cell--selected .Select-control {\n background-color: var(--selected-background);\n border-radius: 0;\n}\n",""])},function(e,t,n){var r=n(56);"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(9)(r,o);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(8)(!1)).push([e.i,"/*RESET CSS*/\nhtml {\n color: #000;\n background: #FFF;\n}\nbody,\ndiv,\ndl,\ndt,\ndd,\nul,\nol,\nli,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\npre,\ncode,\nform,\nfieldset,\nlegend,\ninput,\ntextarea,\np,\nblockquote,\nth,\ntd {\n margin: 0;\n padding: 0;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\nfieldset,\nimg {\n border: 0;\n}\naddress,\ncaption,\ncite,\ncode,\ndfn,\nem,\nstrong,\nth,\nvar {\n font-style: normal;\n font-weight: normal;\n}\nol,\nul {\n list-style: none;\n}\ncaption,\nth {\n text-align: left;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: 100%;\n font-weight: normal;\n}\nq:before,\nq:after {\n content: '';\n}\nabbr,\nacronym {\n border: 0;\n font-variant: normal;\n}\nsup {\n vertical-align: text-top;\n}\nsub {\n vertical-align: text-bottom;\n}\ninput,\ntextarea,\nselect {\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n *font-size: 100%;\n}\nlegend {\n color: #000;\n}\n#yui3-css-stamp.cssreset {\n display: none;\n}\ninput[type=\"button\"] {\n border-radius: 0;\n -webkit-appearance: none;\n}\n*:focus {\n outline: none;\n}\n.dash-spreadsheet-container input,\n.dash-spreadsheet-container table {\n font-size: 13px;\n}\nbody {\n margin: 0;\n padding: 0;\n font-family: sans-serif;\n}\n",""])},function(e,t,n){n(58),e.exports=n(61)},function(e,t,n){"use strict";var r=s(n(1)),o=s(n(6)),i=s(n(59)),u=n(3),a=s(u);function s(e){return e&&e.__esModule?e:{default:e}}a.default.setDebugLevel(u.DebugLevel.DEBUG),a.default.setLogLevel(u.LogLevel.WARNING),o.default.render(r.default.createElement(i.default,null),document.getElementById("root"))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;tJSON.parse(JSON.stringify(e));class f extends i.Component{constructor(){super();const e=d(l.mockData.dataframe);this.state={filter:"",tableProps:{id:"table",dataframe:e,columns:d(l.mockData.columns).map(e=>o.merge(e,{editable_name:!0,deletable:!0})),editable:!0,sorting:!0,n_fixed_rows:4,n_fixed_columns:2,merge_duplicate_headers:!1,row_deletable:!0,row_selectable:"single",column_static_dropdown:[{id:"bbb",dropdown:["Humid","Wet","Snowy","Tropical Beaches"].map(e=>({label:e,value:e}))}],table_style:[{selector:".dash-spreadsheet.freeze-left",rule:"width: 1000px; max-width: 1000px;"}]}};const t=(0,c.memoizeOne)(()=>e=>{console.info("---\x3e",e),this.setState(t=>({tableProps:o.merge(t.tableProps,e)}))});Object.defineProperty(this,"setProps",{get:()=>t()})}render(){return u.default.createElement(s.Table,r({setProps:this.setProps},this.state.tableProps,{filtering:"fe"}))}}f.propTypes={value:a.default.any},t.default=f},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.miniData=t.mockDataSimple=t.mockData=void 0;var r=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(2));const o=5e3;t.mockData=i([{id:"rows",type:"numeric",width:40,editable:!1,data:u(e=>e)},{id:"ccc",name:["City","Canada","Toronto"],type:"numeric",width:150,data:u(e=>e)},{id:"ddd",name:["City","Canada","Montréal"],type:"numeric",width:150,data:u(e=>100*e)},{id:"eee",name:["City","America","New York City"],type:"numeric",width:150,data:u(e=>e)},{id:"fff",name:["City","America","Boston"],type:"numeric",width:150,data:u(e=>e+1)},{id:"ggg",name:["City","France","Paris"],type:"numeric",editable:!0,width:150,data:u(e=>10*e)},{id:"bbb",name:["","Weather","Climate"],type:"dropdown",clearable:!0,width:200,data:u(e=>["Humid","Wet","Snowy","Tropical Beaches"][e%4])},{id:"aaa",name:["","Weather","Temperature"],type:"numeric",width:150,data:u(e=>e+1)}]),t.mockDataSimple=i([{id:"aaa",name:"Temperature",type:"numeric",width:150,data:u(e=>e+1)},{id:"bbb",name:"Climate",type:"numeric",options:["Humid","Wet","Snowy","Tropical Beaches"].map(e=>({label:e,value:e})),clearable:!0,width:200,data:u(e=>["Humid","Wet","Snowy","Tropical Beaches"][e%4])}]),t.miniData=i([{id:"aaa",name:"cheese",data:[1,2,3]},{id:"bbb",name:"tomato",data:[3,2,1]}]);function i(e){const t={columns:[],dataframe:[]};return e.forEach(e=>{e.data.forEach((n,r)=>{t.dataframe[r]||(t.dataframe[r]={}),t.dataframe[r][e.id]=n}),t.columns.push(r.dissoc("data",e))}),t}function u(e,t=o){return r.range(1,t).map(e)}},function(e,t,n){e.exports=n.p+"index.html"}]); \ No newline at end of file diff --git a/dash_table/metadata.json b/dash_table/metadata.json index 341e350f1..b4a07915f 100644 --- a/dash_table/metadata.json +++ b/dash_table/metadata.json @@ -227,7 +227,7 @@ "computed": false } }, - "virtualization": { + "pagination_mode": { "type": { "name": "enum", "value": [ @@ -256,7 +256,7 @@ "computed": false } }, - "virtualization_settings": { + "pagination_settings": { "type": { "name": "shape", "value": { @@ -647,7 +647,7 @@ "required": false, "description": "" }, - "virtual_dataframe": { + "derived_viewport_dataframe": { "type": { "name": "arrayOf", "value": { @@ -661,7 +661,7 @@ "computed": false } }, - "virtual_dataframe_indices": { + "derived_viewport_indices": { "type": { "name": "arrayOf", "value": { @@ -675,51 +675,44 @@ "computed": false } }, - "dropdown_properties": { + "derived_virtual_dataframe": { "type": { - "name": "any" + "name": "arrayOf", + "value": { + "name": "object" + } }, "required": false, - "description": "" - }, - "column_conditional_styles": { + "description": "", "defaultValue": { "value": "[]", "computed": false - }, - "required": false - }, - "changed_data": { - "defaultValue": { - "value": "{}", - "computed": false - }, - "required": false + } }, - "index_name": { - "defaultValue": { - "value": "''", - "computed": false + "derived_virtual_indices": { + "type": { + "name": "arrayOf", + "value": { + "name": "number" + } }, - "required": false - }, - "types": { + "required": false, + "description": "", "defaultValue": { - "value": "{}", + "value": "[]", "computed": false - }, - "required": false + } }, - "merged_styles": { - "defaultValue": { - "value": "{}", - "computed": false + "dropdown_properties": { + "type": { + "name": "any" }, - "required": false + "required": false, + "description": "" }, - "base_styles": { + "column_conditional_styles": { "defaultValue": { - "value": "{\n numeric: {\n 'text-align': 'right',\n 'font-family': `'Droid Sans Mono', Courier, monospace`\n },\n\n string: {\n 'text-align': 'left'\n },\n\n input: {\n padding: 0,\n margin: 0,\n width: '80px',\n border: 'none',\n 'font-size': '1rem'\n },\n\n 'input-active': {\n outline: '#7FDBFF auto 3px'\n },\n\n table: {},\n\n thead: {},\n\n th: {},\n\n td: {}\n}", + "value": "[]", "computed": false }, "required": false diff --git a/dash_table/package.json b/dash_table/package.json index b1880128b..4ec597997 100644 --- a/dash_table/package.json +++ b/dash_table/package.json @@ -1,6 +1,6 @@ { "name": "dash-table", - "version": "3.0.0rc22", + "version": "3.1.0rc1", "description": "Dash table", "main": "build/index.js", "scripts": { diff --git a/package.json b/package.json index b1880128b..4ec597997 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dash-table", - "version": "3.0.0rc22", + "version": "3.1.0rc1", "description": "Dash table", "main": "build/index.js", "scripts": { diff --git a/src/core/memoizer.ts b/src/core/memoizer.ts index cd43ebea3..8a1a8ee6b 100644 --- a/src/core/memoizer.ts +++ b/src/core/memoizer.ts @@ -1,6 +1,12 @@ import { isEqualArgs } from 'core/comparer'; import { ResultFn } from 'core/generic'; +interface ICachedResultFn { + result: TEntry; + cached: boolean; + first: boolean; +} + export function memoizeOne< TArgs extends any[], TEntry @@ -15,6 +21,31 @@ export function memoizeOne< }; } +export function memoizeOneFactory< + TArgs extends any[], + TEntry + >(fn: ResultFn): () => ResultFn { + return () => memoizeOne(fn); +} + +export function memoizeOneWithFlag< + TArgs extends any[], + TEntry + >(fn: ResultFn): ResultFn> { + let lastArgs: any[] | null = null; + let lastResult: any; + let isFirst = true; + + return (...args: TArgs): ICachedResultFn => { + let res = isEqualArgs(lastArgs, args) ? + { cached: true, first: isFirst, result: lastResult } : + { cached: false, first: isFirst, result: (lastArgs = args) && (lastResult = fn(...args)) }; + isFirst = false; + + return res; + }; +} + export function memoizeAll< TArgs extends any[], TEntry diff --git a/src/dash-table/Table.js b/src/dash-table/Table.js index 49c08870e..3b41c66c9 100644 --- a/src/dash-table/Table.js +++ b/src/dash-table/Table.js @@ -12,8 +12,8 @@ export default class Table extends Component { } export const defaultProps = { - virtualization: 'fe', - virtualization_settings: { + pagination_mode: 'fe', + pagination_settings: { displayed_pages: 1, current_page: 0, page_size: 250 @@ -28,8 +28,10 @@ export const defaultProps = { sorting_type: 'single', sorting_settings: [], - virtual_dataframe: [], - virtual_dataframe_indices: [], + derived_viewport_dataframe: [], + derived_viewport_indices: [], + derived_virtual_dataframe: [], + derived_virtual_indices: [], column_conditional_dropdowns: [], column_static_dropdown: [], @@ -40,48 +42,14 @@ export const defaultProps = { row_conditional_styles: [], row_static_style: {}, - changed_data: {}, dataframe: [], columns: [], editable: false, active_cell: [], - index_name: '', - types: {}, - merged_styles: {}, selected_cell: [[]], selected_rows: [], row_selectable: false, - table_style: [], - base_styles: { - numeric: { - 'text-align': 'right', - 'font-family': `'Droid Sans Mono', Courier, monospace` - }, - - string: { - 'text-align': 'left' - }, - - input: { - padding: 0, - margin: 0, - width: '80px', - border: 'none', - 'font-size': '1rem' - }, - - 'input-active': { - outline: '#7FDBFF auto 3px' - }, - - table: {}, - - thead: {}, - - th: {}, - - td: {} - } + table_style: [] }; export const propTypes = { @@ -111,8 +79,8 @@ export const propTypes = { rule: PropTypes.string })), - virtualization: PropTypes.oneOf(['fe', 'be', true, false]), - virtualization_settings: PropTypes.shape({ + pagination_mode: PropTypes.oneOf(['fe', 'be', true, false]), + pagination_settings: PropTypes.shape({ displayed_pages: PropTypes.number, current_page: PropTypes.number, page_size: PropTypes.number @@ -171,8 +139,10 @@ export const propTypes = { })), sorting_treat_empty_string_as_none: PropTypes.bool, - virtual_dataframe: PropTypes.arrayOf(PropTypes.object), - virtual_dataframe_indices: PropTypes.arrayOf(PropTypes.number), + derived_viewport_dataframe: PropTypes.arrayOf(PropTypes.object), + derived_viewport_indices: PropTypes.arrayOf(PropTypes.number), + derived_virtual_dataframe: PropTypes.arrayOf(PropTypes.object), + derived_virtual_indices: PropTypes.arrayOf(PropTypes.number), dropdown_properties: PropTypes.any, }; diff --git a/src/dash-table/components/CellFactory.tsx b/src/dash-table/components/CellFactory.tsx index 6ca80d2e3..4b8c59f17 100644 --- a/src/dash-table/components/CellFactory.tsx +++ b/src/dash-table/components/CellFactory.tsx @@ -217,19 +217,17 @@ export default class CellFactory { row_deletable, row_selectable, selected_cell, - virtualizer + viewport } = this.props; - const { dataframe, indices } = virtualizer; - const visibleColumns = columns.filter(column => !column.hidden); const offset = (row_deletable ? 1 : 0) + (row_selectable ? 1 : 0); - return dataframe.map((datum, virtualIdx) => { - const realIdx = indices[virtualIdx]; + return viewport.dataframe.map((datum, viewportIdx) => { + const realIdx = viewport.indices[viewportIdx]; const deleteCell = this.rowDeleteCell(realIdx); const selectCell = this.rowSelectCell(realIdx); @@ -267,7 +265,7 @@ export default class CellFactory { return (((a, b) => a - b); @@ -29,16 +29,17 @@ interface IAccumulator { count: number; } -export default class ControlledTable extends Component { +export default class ControlledTable extends PureComponent { private stylesheet: Stylesheet; private cellFactory: CellFactory; - private filterFactory: HeaderFilterFactory; + private filterFactory: FilterFactory; + private headerFactory: HeaderFactory; constructor(props: ControlledTableProps) { super(props); this.cellFactory = new CellFactory(() => this.props); - this.filterFactory = new HeaderFilterFactory(() => { + this.filterFactory = new FilterFactory(() => { const { row_deletable, row_selectable } = this.props; const offset = @@ -55,6 +56,8 @@ export default class ControlledTable extends Component { setFilter: this.handleSetFilter }; }); + this.headerFactory = new HeaderFactory(() => this.props); + this.stylesheet = new Stylesheet(`#${props.id}`); } @@ -245,11 +248,9 @@ export default class ControlledTable extends Component { row_selectable, selected_cell, setProps, - virtualizer + viewport } = this.props; - const dataframe = virtualizer.dataframe; - // This is mostly to prevent TABing also triggering native HTML tab // navigation. If the preventDefault is too greedy here we must // continue to use it for at least the case we are navigating with @@ -330,7 +331,7 @@ export default class ControlledTable extends Component { // the active cell. if (selectingDown && active_cell[0] > minRow) { removeCells = selectedCols.map(col => [minRow, col]); - } else if (selectingDown && maxRow !== dataframe.length - 1) { + } else if (selectingDown && maxRow !== viewport.dataframe.length - 1) { // Otherwise if we are selecting down select the next row if possible. targetCells = selectedCols.map(col => [maxRow + 1, col]); } else if (selectingUp && active_cell[0] < maxRow) { @@ -375,7 +376,7 @@ export default class ControlledTable extends Component { row_selectable, selected_cell, setProps, - virtual_dataframe_indices + viewport } = this.props; event.preventDefault(); @@ -387,7 +388,7 @@ export default class ControlledTable extends Component { (row_selectable ? 1 : 0); const realCells: [number, number][] = R.map( - cell => [virtual_dataframe_indices[cell[0]], cell[1] - columnIndexOffset] as [number, number], + cell => [viewport.indices[cell[0]], cell[1] - columnIndexOffset] as [number, number], selected_cell ); @@ -407,8 +408,7 @@ export default class ControlledTable extends Component { } getNextCell = (event: any, { restrictToSelection, currentCell }: any) => { - const { columns, row_deletable, row_selectable, selected_cell, virtualizer } = this.props; - const dataframe = virtualizer.dataframe; + const { columns, row_deletable, row_selectable, selected_cell, viewport } = this.props; const e = event; const vci: any[] = []; @@ -471,7 +471,7 @@ export default class ControlledTable extends Component { selected_cell ) : [ - R.min(dataframe.length - 1, currentCell[0] + 1), + R.min(viewport.dataframe.length - 1, currentCell[0] + 1), currentCell[1] ]; @@ -488,9 +488,8 @@ export default class ControlledTable extends Component { row_deletable, row_selectable, selected_cell, - virtualizer + viewport } = this.props; - const dataframe = virtualizer.dataframe; const columnIndexOffset = (row_deletable ? 1 : 0) + @@ -501,7 +500,7 @@ export default class ControlledTable extends Component { selected_cell ); - TableClipboardHelper.toClipboard(e, noOffsetSelectedCells, columns, dataframe); + TableClipboardHelper.toClipboard(e, noOffsetSelectedCells, columns, viewport.dataframe); this.$el.focus(); } @@ -516,7 +515,7 @@ export default class ControlledTable extends Component { row_selectable, setProps, sorting_settings, - virtual_dataframe_indices + viewport } = this.props; if (!editable) { @@ -532,7 +531,7 @@ export default class ControlledTable extends Component { const result = TableClipboardHelper.fromClipboard( e, noOffsetActiveCell, - virtual_dataframe_indices, + viewport.indices, columns, dataframe, true, @@ -548,27 +547,27 @@ export default class ControlledTable extends Component { const { dataframe, navigation, - virtualization, - virtualization_settings + pagination_mode, + pagination_settings } = this.props; return navigation === 'page' && ( - (virtualization === 'fe' && virtualization_settings.page_size < dataframe.length) || - virtualization === 'be' + (pagination_mode === 'fe' && pagination_settings.page_size < dataframe.length) || + pagination_mode === 'be' ); } loadNext = () => { - const { virtualizer } = this.props; + const { paginator } = this.props; - virtualizer.loadNext(); + paginator.loadNext(); } loadPrevious = () => { - const { virtualizer } = this.props; + const { paginator } = this.props; - virtualizer.loadPrevious(); + paginator.loadPrevious(); } onContainerScroll = (ev: any) => { @@ -647,7 +646,7 @@ export default class ControlledTable extends Component { getCells = () => { return [ - ...HeaderCellFactory.createHeaders(this.props), + ...this.headerFactory.createHeaders(), ...this.filterFactory.createFilters(), ...this.cellFactory.createCells() ]; @@ -725,7 +724,7 @@ export default class ControlledTable extends Component { 'dash-spreadsheet-container', ...(n_fixed_rows ? ['freeze-top'] : []), ...(n_fixed_columns ? ['freeze-left'] : []) - ] + ]; const cells = this.getCells(); const grid = this.getFragments(cells, n_fixed_columns, n_fixed_rows); diff --git a/src/dash-table/components/HeaderFactory.tsx b/src/dash-table/components/HeaderFactory.tsx index 2194e07b9..7896399f7 100644 --- a/src/dash-table/components/HeaderFactory.tsx +++ b/src/dash-table/components/HeaderFactory.tsx @@ -7,7 +7,17 @@ import multiUpdateSettings from 'core/sorting/multi'; import singleUpdateSettings from 'core/sorting/single'; import * as actions from 'dash-table/utils/actions'; -import { ColumnId, Columns, Dataframe, RowSelection, SetProps, SortingType } from 'dash-table/components/Table/props'; +import { + ColumnId, + Columns, + ControlledTableProps, + Dataframe, + PaginationMode, + RowSelection, + SetProps, + Sorting, + SortingType +} from 'dash-table/components/Table/props'; export const DEFAULT_CELL_WIDTH = 200; @@ -19,11 +29,11 @@ interface ICellOptions { mergeCells?: boolean; n_fixed_columns: number; offset: number; - rowSorting: string | boolean; + rowSorting: Sorting; setProps: SetProps; sorting_settings: SortSettings; sorting_type: SortingType; - virtualization: any; + pagination_mode: PaginationMode; } interface IOptions { @@ -36,10 +46,10 @@ interface IOptions { row_deletable: boolean; row_selectable: RowSelection; setProps: SetProps; - sorting: string | boolean; + sorting: Sorting; sorting_settings: SortSettings; sorting_type: SortingType; - virtualization: any; + pagination_mode: PaginationMode; } const getColLength = (c: any) => (Array.isArray(c.name) ? c.name.length : 1); @@ -60,18 +70,26 @@ function deleteColumn(column: any, columnRowIndex: any, options: ICellOptions) { } export default class HeaderFactory { - private static getSorting(columnId: ColumnId, settings: SortSettings): SortDirection { + private get props() { + return this.propsFn(); + } + + constructor(private readonly propsFn: () => ControlledTableProps) { + + } + + private getSorting(columnId: ColumnId, settings: SortSettings): SortDirection { const setting = R.find(s => s.columnId === columnId, settings); return setting ? setting.direction : SortDirection.None; } - private static doSort(columnId: ColumnId, options: ICellOptions) { + private doSort(columnId: ColumnId, options: ICellOptions) { return () => { const { sorting_settings, sorting_type } = options; let direction: SortDirection; - switch (HeaderFactory.getSorting(columnId, sorting_settings)) { + switch (this.getSorting(columnId, sorting_settings)) { case SortDirection.Descending: direction = SortDirection.Ascending; break; @@ -97,10 +115,10 @@ export default class HeaderFactory { }; } - private static getSortingIcon(columnId: ColumnId, options: ICellOptions) { + private getSortingIcon(columnId: ColumnId, options: ICellOptions) { const { sorting_settings } = options; - switch (HeaderFactory.getSorting(columnId, sorting_settings)) { + switch (this.getSorting(columnId, sorting_settings)) { case SortDirection.Descending: return '↑'; case SortDirection.Ascending: @@ -111,7 +129,7 @@ export default class HeaderFactory { } } - private static createHeaderCells(options: ICellOptions) { + private createHeaderCells(options: ICellOptions) { const { columns, columnRowIndex, @@ -119,8 +137,8 @@ export default class HeaderFactory { mergeCells, n_fixed_columns, offset, - rowSorting, - virtualization + pagination_mode, + rowSorting } = options; let columnIndices: any[] = []; @@ -199,9 +217,9 @@ export default class HeaderFactory { {rowSorting ? ( - {HeaderFactory.getSortingIcon(c.id, options)} + {this.getSortingIcon(c.id, options)} ) : ('') } @@ -216,7 +234,7 @@ export default class HeaderFactory { ) : ''} - {((c.deletable && virtualization !== 'be' && R.type(c.deletable) === 'Boolean') || + {((c.deletable && pagination_mode !== 'be' && R.type(c.deletable) === 'Boolean') || (R.type(c.deletable) === 'Number' && c.deletable === columnRowIndex)) ? ( ([ ...(deletableCell ? [deletableCell] : []), ...(selectableCell ? [selectableCell] : []), - ...(HeaderFactory.createHeaderCells({ + ...(this.createHeaderCells({ columns, columnRowIndex: i, dataframe, @@ -317,14 +337,14 @@ export default class HeaderFactory { ), n_fixed_columns, offset, + pagination_mode, rowSorting: !!sorting && i + 1 === headerDepth, mergeCells: merge_duplicate_headers && i + 1 !== headerDepth, setProps, sorting_settings, - sorting_type, - virtualization + sorting_type })) ])); } diff --git a/src/dash-table/components/Table/VirtualizationAdapter.ts b/src/dash-table/components/Table/VirtualizationAdapter.ts deleted file mode 100644 index 152be8f75..000000000 --- a/src/dash-table/components/Table/VirtualizationAdapter.ts +++ /dev/null @@ -1,111 +0,0 @@ -import * as R from 'ramda'; - -import { ITarget, IViewport } from 'dash-table/virtualization/AbstractStrategy'; -import { memoizeOne } from 'core/memoizer'; -import sort, { defaultIsNully, SortSettings } from 'core/sorting'; -import SyntaxTree from 'core/syntax-tree'; -import Table from 'dash-table/components/Table'; -import { Dataframe, IVirtualizationSettings, Virtualization, Datum, Indices } from 'dash-table/components/Table/props'; - -export default class VirtualizationAdapter implements ITarget { - constructor(private readonly target: Table) { - - } - - private getDataframe = memoizeOne(( - dataframe: Dataframe, - filtering: string | boolean, - filtering_settings: string, - sorting: string | boolean, - sorting_settings: SortSettings = [], - sorting_treat_empty_string_as_none: boolean - ): { dataframe: Dataframe, indices: Indices } => { - const map = new Map(); - R.addIndex(R.forEach)((datum, index) => { - map.set(datum, index); - }, dataframe); - - if (filtering === 'fe' || filtering === true) { - const tree = new SyntaxTree(filtering_settings); - - dataframe = tree.isValid ? - tree.filter(dataframe) : - dataframe; - } - - const isNully = sorting_treat_empty_string_as_none ? - (value: any) => value === '' || defaultIsNully(value) : - undefined; - - if (sorting === 'fe' || sorting === true) { - dataframe = sort(dataframe, sorting_settings, isNully); - } - - // virtual_indices - const indices = R.map(datum => map.get(datum) as number, dataframe); - - return { dataframe, indices }; - }); - - private get dataframeAndIndices() { - const { - dataframe, - filtering, - filtering_settings, - sorting, - sorting_settings, - sorting_treat_empty_string_as_none - } = this.target.props; - - return this.getDataframe( - dataframe, - filtering, - filtering_settings, - sorting, - sorting_settings, - sorting_treat_empty_string_as_none - ); - } - - get dataframe(): Dataframe { - return this.dataframeAndIndices.dataframe; - } - - get indices(): Indices { - return this.dataframeAndIndices.indices; - } - - get settings(): IVirtualizationSettings { - return this.target.props.virtualization_settings; - } - - get virtualization(): Virtualization { - return this.target.props.virtualization; - } - - get viewportDataframe(): Dataframe { - return this.target.props.virtual_dataframe; - } - - get viewportIndices(): number[] { - return this.target.props.virtual_dataframe_indices; - } - - update(viewport: Partial) { - const setProps = this.target.setProps; - - const { - settings, - viewportDataframe, - viewportIndices - } = viewport; - - let props = R.mergeAll([ - settings ? { virtualization_settings: settings } : {}, - viewportDataframe ? { virtual_dataframe: viewportDataframe } : {}, - viewportIndices ? { virtual_dataframe_indices: viewportIndices } : {} - ]); - - setTimeout(() => { setProps(props); }, 0); - } -} \ No newline at end of file diff --git a/src/dash-table/components/Table/index.tsx b/src/dash-table/components/Table/index.tsx index c6bb52302..5ea1f1b77 100644 --- a/src/dash-table/components/Table/index.tsx +++ b/src/dash-table/components/Table/index.tsx @@ -1,59 +1,147 @@ import React, { Component } from 'react'; import * as R from 'ramda'; -import { memoizeOne } from 'core/memoizer'; - -import VirtualizationFactory from 'dash-table/virtualization/Factory'; +import { memoizeOne, memoizeOneWithFlag } from 'core/memoizer'; import ControlledTable from 'dash-table/components/ControlledTable'; -import { PropsWithDefaults, SetProps } from './props'; -import VirtualizationAdapter from './VirtualizationAdapter'; + +import derivedPaginator from 'dash-table/derived/paginator'; +import derivedViewportDataframe from 'dash-table/derived/viewportDataframe'; +import derivedVirtualDataframe from 'dash-table/derived/virtualDataframe'; + +import { + ControlledTableProps, + PropsWithDefaultsAndDerived, + SetProps +} from './props'; import 'react-select/dist/react-select.css'; import './Table.less'; import './Dropdown.css'; -export default class Table extends Component { - constructor(props: any) { +const DERIVED_REGEX = /^derived_/; + +export default class Table extends Component { + private controlled: ControlledTableProps; + + constructor(props: PropsWithDefaultsAndDerived) { super(props); - } - public get setProps() { - return this.__setProps(this.props.setProps); + this.controlled = this.getControlledProps(this.props); } - render() { - const { setProps, virtualizer } = this; + componentWillReceiveProps(nextProps: PropsWithDefaultsAndDerived) { + this.controlled = this.getControlledProps(nextProps); + this.updateDerivedProps(); + } - virtualizer.refresh(); + shouldComponentUpdate(nextProps: any) { + const props: any = this.props; - return (); + return R.any(key => + !DERIVED_REGEX.test(key) && props[key] !== nextProps[key], + R.keysIn(props) + ); } - private get adapter() { - return this.__adapter(); + render() { + return (); } - private get virtualizer() { - const { virtualization, virtualization_settings } = this.props; + private getControlledProps(props: PropsWithDefaultsAndDerived): ControlledTableProps { + const { setProps } = this; + + const { + dataframe, + filtering, + filtering_settings, + pagination_mode, + pagination_settings, + sorting, + sorting_settings, + sorting_treat_empty_string_as_none + } = props; + + const virtual = this.virtual( + dataframe, + filtering, + filtering_settings, + sorting, + sorting_settings, + sorting_treat_empty_string_as_none + ); + + const viewport = this.viewport( + pagination_mode, + pagination_settings, + virtual.dataframe, + virtual.indices + ); - return this.__virtualizer( - virtualization, - virtualization_settings + const paginator = this.paginator( + pagination_mode, + pagination_settings, + setProps, + viewport.dataframe ); + + return R.mergeAll([ + props, + { + paginator, + setProps, + viewport, + virtual + } + ]); } - private __adapter = memoizeOne( - () => new VirtualizationAdapter(this) - ); + private updateDerivedProps() { + const { filtering, filtering_settings, pagination_mode, pagination_settings, sorting, sorting_settings, viewport, virtual } = this.controlled; - private __setProps = memoizeOne((setProps?: SetProps) => { + const viewportCached = this.viewportCache(viewport).cached; + const virtualCached = this.virtualCache(virtual).cached; + + const invalidatedFilter = this.filterCache(filtering_settings); + const invalidatedPagination = this.paginationCache(pagination_settings); + const invalidatedSort = this.sortCache(sorting_settings); + + const invalidateSelection = + (!invalidatedFilter.cached && !invalidatedFilter.first && filtering === 'be') || + (!invalidatedPagination.cached && !invalidatedPagination.first && pagination_mode === 'be') || + (!invalidatedSort.cached && !invalidatedSort.first && sorting === 'be'); + + if (virtualCached && viewportCached && !invalidateSelection) { + return; + } + + const { setProps } = this; + let newProps: Partial = {}; + + if (!virtualCached) { + newProps.derived_virtual_dataframe = virtual.dataframe; + newProps.derived_virtual_indices = virtual.indices; + } + + if (!viewportCached) { + newProps.derived_viewport_dataframe = viewport.dataframe; + newProps.derived_viewport_indices = viewport.indices; + } + + if (invalidateSelection) { + newProps.active_cell = undefined; + newProps.selected_cell = undefined; + newProps.selected_rows = undefined; + } + + setTimeout(() => setProps(newProps), 0); + } + + private get setProps() { + return this.__setProps(this.props.setProps); + } + + private readonly __setProps = memoizeOne((setProps?: SetProps) => { return setProps ? (newProps: any) => { if (R.has('dataframe', newProps)) { const { dataframe } = this.props; @@ -63,10 +151,16 @@ export default class Table extends Component { } setProps(newProps); - } : (newProps: Partial) => this.setState(newProps); + } : (newProps: Partial) => this.setState(newProps); }); - private __virtualizer = memoizeOne((_virtualization, _settings) => { - return VirtualizationFactory.getVirtualizer(this.adapter); - }); + private readonly paginator = derivedPaginator(); + private readonly viewport = derivedViewportDataframe(); + private readonly virtual = derivedVirtualDataframe(); + + private readonly filterCache = memoizeOneWithFlag(filter => filter); + private readonly paginationCache = memoizeOneWithFlag(pagination => pagination); + private readonly sortCache = memoizeOneWithFlag(sort => sort); + private readonly viewportCache = memoizeOneWithFlag(viewport => viewport); + private readonly virtualCache = memoizeOneWithFlag(virtual => virtual); } \ No newline at end of file diff --git a/src/dash-table/components/Table/props.ts b/src/dash-table/components/Table/props.ts index 86e1e9755..3c23998fb 100644 --- a/src/dash-table/components/Table/props.ts +++ b/src/dash-table/components/Table/props.ts @@ -1,5 +1,5 @@ import { SortSettings } from 'core/sorting'; -import AbstractVirtualizationStrategy from 'dash-table/virtualization/AbstractStrategy'; +import { IPaginator } from 'dash-table/derived/paginator'; export enum FilteringType { Advanced = 'advanced', @@ -15,12 +15,12 @@ export type Datum = IDatumObject | any; export type Filtering = 'fe' | 'be' | boolean; export type Indices = number[]; export type Navigation = 'page'; +export type PaginationMode = 'fe' | 'be' | boolean; export type RowSelection = 'single' | 'multi' | false; export type SelectedCells = CellCoordinates[]; export type SetProps = (...args: any[]) => void; export type Sorting = 'fe' | 'be' | boolean; export type SortingType = 'multi' | 'single'; -export type Virtualization = 'fe' | 'be' | boolean; export interface IColumn { id: ColumnId; @@ -39,7 +39,7 @@ interface IStylesheetRule { rule: string; } -export interface IVirtualizationSettings { +export interface IPaginationSettings { displayed_pages: number; current_page: number; page_size: number; @@ -83,8 +83,8 @@ interface IProps { sorting_type?: SortingType; table_style?: IStylesheetRule[]; sorting_treat_empty_string_as_none?: boolean; - virtualization?: Virtualization; - virtualization_settings?: IVirtualizationSettings; + pagination_mode?: PaginationMode; + pagination_settings?: IPaginationSettings; } interface IDefaultProps { @@ -115,17 +115,32 @@ interface IDefaultProps { sorting_type: SortingType; table_style: IStylesheetRule[]; sorting_treat_empty_string_as_none: boolean; - virtual_dataframe: Dataframe; - virtual_dataframe_indices: Indices; - virtualization: Virtualization; - virtualization_settings: IVirtualizationSettings; + pagination_mode: PaginationMode; + pagination_settings: IPaginationSettings; +} + +interface IDerivedProps { + derived_viewport_dataframe: Dataframe; + derived_viewport_indices: Indices; + derived_virtual_dataframe: Dataframe; + derived_virtual_indices: Indices; } export type PropsWithDefaults = IProps & IDefaultProps; +export type PropsWithDefaultsAndDerived = PropsWithDefaults & IDerivedProps; export type ControlledTableProps = PropsWithDefaults & { setProps: SetProps; - virtualizer: AbstractVirtualizationStrategy + + paginator: IPaginator + viewport: { + dataframe: Dataframe, + indices: Indices + }, + virtual: { + dataframe: Dataframe, + indices: Indices + } }; export interface ICellFactoryOptions { @@ -142,12 +157,15 @@ export interface ICellFactoryOptions { is_focused?: boolean; n_fixed_columns: number; n_fixed_rows: number; + paginator: IPaginator; row_deletable: boolean; row_selectable: RowSelection; selected_cell: SelectedCells; selected_rows: number[]; setProps: SetProps; - virtual_dataframe: Dataframe; - virtual_dataframe_indices: Indices; - virtualizer: AbstractVirtualizationStrategy; + + viewport: { + dataframe: Dataframe, + indices: Indices + }; } \ No newline at end of file diff --git a/src/dash-table/derived/paginator.ts b/src/dash-table/derived/paginator.ts new file mode 100644 index 000000000..e6c4116c4 --- /dev/null +++ b/src/dash-table/derived/paginator.ts @@ -0,0 +1,88 @@ +import { memoizeOneFactory } from 'core/memoizer'; + +import { + Dataframe, + PaginationMode, + SetProps, + IPaginationSettings +} from 'dash-table/components/Table/props'; + +export interface IPaginator { + loadNext(): void; + loadPrevious(): void; +} + +function getBackEndPagination( + pagination_settings: IPaginationSettings, + setProps: SetProps +): IPaginator { + return { + loadNext: () => { + pagination_settings.current_page++; + setProps({ pagination_settings }); + }, + loadPrevious: () => { + if (pagination_settings.current_page <= 0) { + return; + } + + pagination_settings.current_page--; + setProps({ pagination_settings }); + } + }; +} + +function getFrontEndPagination( + pagination_settings: IPaginationSettings, + setProps: SetProps, + virtual_dataframe: Dataframe +) { + return { + loadNext: () => { + let maxPageIndex = Math.floor(virtual_dataframe.length / pagination_settings.page_size); + + if (pagination_settings.current_page >= maxPageIndex) { + return; + } + + pagination_settings.current_page++; + setProps({ pagination_settings }); + }, + loadPrevious: () => { + if (pagination_settings.current_page <= 0) { + return; + } + + pagination_settings.current_page--; + setProps({ pagination_settings }); + } + }; +} + +function getNoPagination() { + return { + loadNext: () => { }, + loadPrevious: () => { } + }; +} + +const getter = ( + pagination_mode: PaginationMode, + pagination_settings: IPaginationSettings, + setProps: SetProps, + virtual_dataframe: Dataframe +): IPaginator => { + switch (pagination_mode) { + case false: + return getNoPagination(); + case true: + case 'fe': + return getFrontEndPagination(pagination_settings, setProps, virtual_dataframe); + case 'be': + return getBackEndPagination(pagination_settings, setProps); + default: + throw new Error(`Unknown pagination mode: '${pagination_mode}'`); + } +}; + +export default memoizeOneFactory(getter); \ No newline at end of file diff --git a/src/dash-table/derived/viewportDataframe.ts b/src/dash-table/derived/viewportDataframe.ts new file mode 100644 index 000000000..72fd780a4 --- /dev/null +++ b/src/dash-table/derived/viewportDataframe.ts @@ -0,0 +1,60 @@ +import { memoizeOneFactory } from 'core/memoizer'; + +import { + Dataframe, + Indices, + IPaginationSettings, + PaginationMode +} from 'dash-table/components/Table/props'; + +interface IResult { + dataframe: Dataframe; + indices: Indices; +} + +function getNoPagination(dataframe: Dataframe, indices: Indices): IResult { + return { dataframe, indices }; +} + +function getFrontEndPagination(settings: IPaginationSettings, dataframe: Dataframe, indices: Indices): IResult { + let currentPage = Math.min( + settings.current_page, + Math.floor(dataframe.length / settings.page_size) + ); + + const firstIndex = settings.page_size * currentPage; + const lastIndex = Math.min( + firstIndex + settings.displayed_pages * settings.page_size, + dataframe.length + ); + + return { + dataframe: dataframe.slice(firstIndex, lastIndex), + indices: indices.slice(firstIndex, lastIndex) + }; +} + +function getBackEndPagination(dataframe: Dataframe, indices: Indices): IResult { + return { dataframe, indices }; +} + +const getter = ( + pagination_mode: PaginationMode, + pagination_settings: IPaginationSettings, + dataframe: Dataframe, + indices: Indices +): IResult => { + switch (pagination_mode) { + case false: + return getNoPagination(dataframe, indices); + case true: + case 'fe': + return getFrontEndPagination(pagination_settings, dataframe, indices); + case 'be': + return getBackEndPagination(dataframe, indices); + default: + throw new Error(`Unknown pagination mode: '${pagination_mode}'`); + } +}; + +export default memoizeOneFactory(getter); diff --git a/src/dash-table/derived/virtualDataframe.ts b/src/dash-table/derived/virtualDataframe.ts new file mode 100644 index 000000000..4242dbaee --- /dev/null +++ b/src/dash-table/derived/virtualDataframe.ts @@ -0,0 +1,54 @@ +import * as R from 'ramda'; + +import { memoizeOneFactory } from 'core/memoizer'; +import sort, { defaultIsNully, SortSettings } from 'core/sorting'; +import SyntaxTree from 'core/syntax-tree'; +import { + Dataframe, + Datum, + Indices, + Filtering, + Sorting +} from 'dash-table/components/Table/props'; + +interface IResult { + dataframe: Dataframe; + indices: Indices; +} + +const getter = ( + dataframe: Dataframe, + filtering: Filtering, + filtering_settings: string, + sorting: Sorting, + sorting_settings: SortSettings = [], + sorting_treat_empty_string_as_none: boolean +): IResult => { + const map = new Map(); + R.addIndex(R.forEach)((datum, index) => { + map.set(datum, index); + }, dataframe); + + if (filtering === 'fe' || filtering === true) { + const tree = new SyntaxTree(filtering_settings); + + dataframe = tree.isValid ? + tree.filter(dataframe) : + dataframe; + } + + const isNully = sorting_treat_empty_string_as_none ? + (value: any) => value === '' || defaultIsNully(value) : + undefined; + + if (sorting === 'fe' || sorting === true) { + dataframe = sort(dataframe, sorting_settings, isNully); + } + + // virtual_indices + const indices = R.map(datum => map.get(datum) as number, dataframe); + + return { dataframe, indices }; +}; + +export default memoizeOneFactory(getter); diff --git a/src/dash-table/utils/TableClipboardHelper.ts b/src/dash-table/utils/TableClipboardHelper.ts index 2fe6d4d3e..9f23239ae 100644 --- a/src/dash-table/utils/TableClipboardHelper.ts +++ b/src/dash-table/utils/TableClipboardHelper.ts @@ -30,7 +30,7 @@ export default class TableClipboardHelper { public static fromClipboard( ev: ClipboardEvent, activeCell: ActiveCell, - virtual_dataframe_indices: number[], + derived_viewport_indices: number[], columns: Columns, dataframe: Dataframe, overflowColumns: boolean = true, @@ -67,7 +67,7 @@ export default class TableClipboardHelper { Logger.debug(`Clipboard -- Sorting or filtering active, do not create new rows`); } - const realActiveRow = virtual_dataframe_indices[activeCell[0]]; + const realActiveRow = derived_viewport_indices[activeCell[0]]; if (overflowRows && values.length + realActiveRow >= dataframe.length) { const emptyRow: any = {}; columns.forEach(c => (emptyRow[c.id] = '')); @@ -83,10 +83,10 @@ export default class TableClipboardHelper { values.forEach((row: string[], i: number) => row.forEach((cell: string, j: number) => { const iOffset = activeCell[0] + i; - if (virtual_dataframe_indices.length <= activeCell[0] + i) { + if (derived_viewport_indices.length <= activeCell[0] + i) { return; } - const iRealCell = virtual_dataframe_indices[iOffset]; + const iRealCell = derived_viewport_indices[iOffset]; const jOffset = activeCell[1] + j; // let newDataframe = dataframe; diff --git a/src/dash-table/virtualization/AbstractStrategy.ts b/src/dash-table/virtualization/AbstractStrategy.ts deleted file mode 100644 index cb17d38c3..000000000 --- a/src/dash-table/virtualization/AbstractStrategy.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { Dataframe, IVirtualizationSettings, Virtualization, Indices } from 'dash-table/components/Table/props'; - -export interface IViewport { - readonly dataframe: Dataframe; - readonly indices: Indices; - readonly settings: IVirtualizationSettings; - readonly virtualization: Virtualization; - - readonly viewportDataframe: Dataframe; - readonly viewportIndices: number[]; -} - -export interface ITarget extends IViewport { - update: (viewport: Partial) => void; -} - -export default abstract class AbstractVirtualizationStrategy -{ - protected __dataframe: Dataframe; - protected __indices: Indices; - - constructor(protected readonly target: ITarget) { - - } - - public get dataframe(): Dataframe { - return this.__dataframe; - } - - public get indices(): Indices { - return this.__indices; - } - - public refresh() { - let { dataframe = [], indices = [] } = this.target.dataframe && this.getDataframe(); - - let isEqual = - !!this.__dataframe && - dataframe.length === this.dataframe.length && - !!dataframe.every((datum, index) => datum === this.dataframe[index]); - - if (isEqual) { - return; - } - - this.__dataframe = dataframe; - this.__indices = indices; - - this.target.update({ - viewportDataframe: dataframe, - viewportIndices: indices - }); - } - - // Abstract - public abstract get offset(): number; - - public abstract loadNext(): void; - public abstract loadPrevious(): void; - - protected abstract getDataframe(): { dataframe: Dataframe, indices: number[] }; -} \ No newline at end of file diff --git a/src/dash-table/virtualization/BackEndVirtualization.ts b/src/dash-table/virtualization/BackEndVirtualization.ts deleted file mode 100644 index 7fd28d57b..000000000 --- a/src/dash-table/virtualization/BackEndVirtualization.ts +++ /dev/null @@ -1,35 +0,0 @@ -import AbstractStrategy, { ITarget } from 'dash-table/virtualization/AbstractStrategy'; - -export default class BackEndPageStrategy extends AbstractStrategy { - constructor(target: ITarget) { - super(target); - } - - protected getDataframe() { - let { dataframe, indices } = this.target; - - return { dataframe, indices }; - } - - public get offset() { - return 0; - } - - public loadNext() { - let { settings } = this.target; - - settings.current_page++; - this.target.update({ settings }); - } - - public loadPrevious() { - let { settings } = this.target; - - if (settings.current_page <= 0) { - return; - } - - settings.current_page--; - this.target.update({ settings }); - } -} \ No newline at end of file diff --git a/src/dash-table/virtualization/Factory.ts b/src/dash-table/virtualization/Factory.ts deleted file mode 100644 index c21b5c638..000000000 --- a/src/dash-table/virtualization/Factory.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { ITarget } from 'dash-table/virtualization/AbstractStrategy'; - -import BackEndVirtualization from 'dash-table/virtualization/BackEndVirtualization'; -import FrontEndVirtualization from 'dash-table/virtualization/FrontEndVirtualization'; -import NoVirtualization from 'dash-table/virtualization/NoVirtualization'; - -export default class VirtualizationFactory { - public static getVirtualizer(target: ITarget) { - switch (target.virtualization) { - case false: - return new NoVirtualization(target); - case true: - case 'fe': - return new FrontEndVirtualization(target); - case 'be': - return new BackEndVirtualization(target); - default: - throw new Error(`Unknown virtualization type: '${target.virtualization}'`); - } - } -} \ No newline at end of file diff --git a/src/dash-table/virtualization/FrontEndVirtualization.ts b/src/dash-table/virtualization/FrontEndVirtualization.ts deleted file mode 100644 index 8a717da72..000000000 --- a/src/dash-table/virtualization/FrontEndVirtualization.ts +++ /dev/null @@ -1,65 +0,0 @@ -import AbstractStrategy, { ITarget } from 'dash-table/virtualization/AbstractStrategy'; - -export default class FrontEndPageStrategy extends AbstractStrategy { - private firstIndex: number; - private lastIndex: number; - - constructor(target: ITarget) { - super(target); - } - - protected getDataframe() { - let { settings, dataframe, indices } = this.target; - - let currentPage = Math.min( - settings.current_page, - Math.floor(dataframe.length / settings.page_size) - ); - - this.firstIndex = settings.page_size * currentPage; - - this.lastIndex = Math.min( - this.firstIndex + settings.displayed_pages * settings.page_size, - dataframe.length - ); - - return { - dataframe: dataframe.slice( - this.firstIndex, - this.lastIndex - ), - indices: indices.slice( - this.firstIndex, - this.lastIndex - ) - }; - } - - public get offset() { - return this.firstIndex; - } - - public loadNext() { - let { settings, dataframe } = this.target; - - let maxPageIndex = Math.floor(dataframe.length / settings.page_size); - - if (settings.current_page >= maxPageIndex) { - return; - } - - settings.current_page++; - this.target.update({ settings }); - } - - public loadPrevious() { - let { settings } = this.target; - - if (settings.current_page <= 0) { - return; - } - - settings.current_page--; - this.target.update({ settings }); - } -} \ No newline at end of file diff --git a/src/dash-table/virtualization/NoVirtualization.ts b/src/dash-table/virtualization/NoVirtualization.ts deleted file mode 100644 index 78580cdb5..000000000 --- a/src/dash-table/virtualization/NoVirtualization.ts +++ /dev/null @@ -1,29 +0,0 @@ -import * as R from 'ramda'; - -import AbstractStrategy, { ITarget } from 'dash-table/virtualization/AbstractStrategy'; - -export default class NoStrategy extends AbstractStrategy { - constructor(target: ITarget) { - super(target); - - this.refresh(); - } - - protected getDataframe() { - let { dataframe } = this.target; - - return { dataframe, indices: R.range(0, dataframe.length) }; - } - - public get offset() { - return 0; - } - - public loadNext() { - - } - - public loadPrevious() { - - } -} \ No newline at end of file diff --git a/tests/dash/app_dataframe_updating_graph_fe.py b/tests/dash/app_dataframe_updating_graph_fe.py new file mode 100644 index 000000000..5b06043a2 --- /dev/null +++ b/tests/dash/app_dataframe_updating_graph_fe.py @@ -0,0 +1,137 @@ +from dash.dependencies import Input, Output +import dash_core_components as dcc +import dash_html_components as html +import pandas as pd +from textwrap import dedent + +import dash_table +from index import app + +ID_PREFIX = "app_dataframe_updating_graph" +IDS = {"table": ID_PREFIX, "container": "{}-container".format(ID_PREFIX)} +df = pd.read_csv("./datasets/gapminder.csv") +df = df[df["year"] == 2007] + + +def layout(): + return html.Div( + [ + html.Div( + dash_table.Table( + id=IDS["table"], + columns=[ + {"name": i, "id": i, "deletable": True} for i in df.columns + ], + dataframe=df.to_dict("rows"), + editable=True, + filtering=True, + sorting=True, + sorting_type="multi", + row_selectable="multi", + row_deletable=True, + selected_rows=[], + derived_viewport_indices=[], + n_fixed_rows=1, + ), + style={"height": 300, "overflowY": "scroll"}, + ), + html.Div(id=IDS["container"]), + dcc.Markdown( + dedent( + """ + *** + + `Table` includes several features for modifying and transforming the + view of the data. These include: + + - Sorting by column (`sorting=True`) + - Filtering by column (`filtering=True`) + - Editing the cells (`editable=True`) + - Deleting rows (`row_deletable=True`) + - Deleting columns (`columns[i].deletable=True`) + - Selecting rows (`row_selectable='single' | 'multi'`) + + > A quick note on filtering. We have defined our own + > syntax for performing filtering operations. Here are some + > examples for this particular dataset: + > - `lt num(50)` in the `lifeExp` column + > - `eq "Canada"` in the `country` column + + By default, these transformations are done clientside. + Your Dash callbacks can respond to these modifications + by listening to the `dataframe` property as an `Input`. + + Note that if `dataframe` is an `Input` then the entire + `dataframe` will be passed over the network: if your dataframe is + large, then this will become slow. For large dataframes, you have + two options: + - Use `dataframe_indicies` instead + - Perform the sorting or filtering in Python instead + + Issues with this example: + - Row selection callbacks don't work yet: `derived_viewport_indices` + isn't getting updated on row selection and `selected_rows` doesn't + track the underlying data (e.g. it will always be [1, 3] even after sorting or filtering) + """ + ) + ), + ] + ) + + +@app.callback( + Output(IDS["container"], "children"), + [ + Input(IDS["table"], "derived_virtual_dataframe"), + Input(IDS["table"], "selected_rows"), + ], +) +def update_graph(rows, selected_rows): + # When the table is first rendered, `derived_virtual_dataframe` + # will be `None`. This is due to an idiosyncracy in Dash + # (unsupplied properties are always None and Dash calls the dependent + # callbacks when the component is first rendered). + # So, if `selected_rows` is `None`, then the component was just rendered + # and its value will be the same as the component's dataframe. + # Instead of setting `None` in here, you could also set + # `derived_virtual_dataframe=df.to_rows('dict')` when you initialize + # the component. + if rows is None: + dff = df + else: + dff = pd.DataFrame(rows) + + colors = [] + for i in range(len(dff)): + if i in selected_rows: + colors.append("#7FDBFF") + else: + colors.append("#0074D9") + + return html.Div( + [ + dcc.Graph( + id=column, + figure={ + "data": [ + { + "x": dff["country"], + # check if column exists - user may have deleted it + # If `column.deletable=False`, then you don't + # need to do this check. + "y": dff[column] if column in dff else [], + "type": "bar", + "marker": {"color": colors}, + } + ], + "layout": { + "xaxis": {"automargin": True}, + "yaxis": {"automargin": True}, + "height": 250, + "margin": {"t": 10, "l": 10, "r": 10}, + }, + }, + ) + for column in ["pop", "lifeExp", "gdpPercap"] + ] + ) diff --git a/tests/dash/app_editor_with_configurable_options.py b/tests/dash/app_editor_with_configurable_options.py index 744e76c38..c25dc1170 100644 --- a/tests/dash/app_editor_with_configurable_options.py +++ b/tests/dash/app_editor_with_configurable_options.py @@ -50,9 +50,9 @@ options=[{"label": str(i), "value": i} for i in ["single", "multi", False]], value="single", ), - html.Label("Virtualization"), + html.Label("Pagination Mode"), dcc.RadioItems( - id="virtualization", + id="pagination_mode", options=[{"label": str(i), "value": i} for i in ["fe", True, False]], value="fe", ), @@ -99,7 +99,7 @@ def layout(): "sorting_type", # 2 "sorting_treat_empty_string_as_none", # 3 "row_selectable", # 4 - "virtualization", # 5 + "pagination_mode", # 5 "n_fixed_rows", # 6 "n_fixed_columns", # 7 "dataset", @@ -120,7 +120,7 @@ def update_table(*args): sorting_type=args[2], sorting_treat_empty_string_as_none=args[3], row_selectable=args[4], - virtualization=args[5], + pagination_mode=args[5], n_fixed_rows=args[6], n_fixed_columns=args[7], ) diff --git a/tests/dash/app_sizing.py b/tests/dash/app_sizing.py new file mode 100644 index 000000000..e2169eea6 --- /dev/null +++ b/tests/dash/app_sizing.py @@ -0,0 +1,275 @@ +from collections import OrderedDict +from dash.dependencies import Input, Output +import dash_core_components as dcc +import dash_html_components as html +import pandas as pd +from textwrap import dedent + +import dash_table +from index import app +from .utils import section_title, html_table + + +def layout(): + data = OrderedDict( + [ + ( + "Date", + [ + "July 12th, 2013 - July 25th, 2013", + "July 12th, 2013 - August 25th, 2013", + "July 12th, 2014 - August 25th, 2014", + ], + ), + ( + "Election Polling Organization", + ["The New York Times", "Pew Research", "The Washington Post"], + ), + ("Rep", [1, -20, 3.512]), + ("Dem", [10, 20, 30]), + ("Ind", [2, 10924, 3912]), + ( + "Region", + [ + "Northern New York State to the Southern Appalachian Mountains", + "Canada", + "Southern Vermont", + ], + ), + ] + ) + + df = pd.DataFrame(data) + df_long = pd.DataFrame( + OrderedDict([(name, col_data * 10) for (name, col_data) in data.items()]) + ) + + return [ + html.H1("Sizing Guide"), + html.Div( + style={ + "marginLeft": "auto", + "marginRight": "auto", + "width": "80%", + "borderLeft": "thin hotpink solid", + "borderRight": "thin hotpink solid", + }, + children=[ + html.H1("Background - HTML Tables"), + section_title("HTML Table - Default Styles"), + html.Div("By default, HTML tables expand to their contents"), + html_table(df, table_style={}, base_column_style={}), + section_title("HTML Table - Padding"), + html.Div( + """ + Since the table content is packed so tightly, + it's usually a good idea to place some left + on the columns. + """ + ), + html_table(df, table_style={}, cell_style={"paddingLeft": 10}), + section_title("HTML Table - Responsive Table"), + html.Div( + """ + With 100% width, the tables will expand to their + container. When the table gets small, the text will break into + multiple lines. + """ + ), + html_table(df, table_style={"width": "100%"}, base_column_style={}), + section_title("HTML Table - Columns with min-width"), + html.Div( + "Here, the min-width for the first column is 130px, or about the width of this line: " + ), + html.Div( + style={"width": 130, "height": 10, "backgroundColor": "hotpink"} + ), + html_table( + df, + table_style={"width": "100%"}, + column_style={"Date": {"minWidth": "130"}}, + ), + section_title("HTML Table - Underspecified Widths"), + html.Div( + """ + The widths can be under-specified. Here, we're only setting the width for the three + columns in the middle, the rest of the columns are automatically sized to fit the rest of the container. + The columns have a width of 50, or the width of this line: + """ + ), + html.Div( + style={"width": 50, "height": 10, "backgroundColor": "hotpink"} + ), + html_table( + df, + table_style={"width": "100%"}, + column_style={ + "Dem": {"width": 50}, + "Rep": {"width": 50}, + "Ind": {"width": 50}, + }, + ), + section_title("HTML Table - Widths that are smaller than the content"), + html.Div( + """ + In this case, we're setting the width to 20px, which is smaller + than the "10924" number in the "Ind" column. + The table does not allow it. + """ + ), + html.Div( + style={"width": 20, "height": 10, "backgroundColor": "hotpink"} + ), + html_table( + df, + table_style={"width": "100%"}, + column_style={ + "Dem": {"width": 20}, + "Rep": {"width": 20}, + "Ind": {"width": 20}, + }, + ), + section_title("HTML Table - Content with Ellipses"), + html.Div( + """ + With `max-width`, the content can collapse into + ellipses once the content doesn't fit. + + Here, `max-width` is set to 0. It could be any number, the only + important thing is that it is supplied. The behaviour will be + the same whether it is 0 or 50. + """ + ), + html_table( + df, + table_style={"width": "100%"}, + cell_style={ + "whiteSpace": "nowrap", + "overflow": "hidden", + "textOverflow": "ellipsis", + "maxWidth": 0, + }, + ), + section_title("HTML Table - Vertical Scrolling"), + html.Div( + """ + By supplying a max-height of the Table container and supplying + `overflow-y: scroll`, the table will become scrollable if the + table's contents are larger than the container. + """ + ), + html.Div( + style={"maxHeight": 300, "overflowY": "scroll"}, + children=html_table(df_long, table_style={"width": "100%"}), + ), + section_title("HTML Table - Vertical Scrolling with Max Height"), + html.Div( + """ + With `max-height`, if the table's contents are shorter than the + `max-height`, then the container will be shorter. + If you want a container with a constant height no matter the + contents, then use `height`. + + Here, we're setting max-height to 300, or the height of this line: + """ + ), + html.Div( + style={"width": 5, "height": 300, "backgroundColor": "hotpink"} + ), + html.Div( + style={"maxHeight": 300, "overflowY": "scroll"}, + children=html_table(df, table_style={"width": "100%"}), + ), + section_title("HTML Table - Vertical Scrolling with Height"), + html.Div("and here is `height` with the same content"), + html.Div( + style={"height": 300, "overflowY": "scroll"}, + children=html_table(df, table_style={"width": "100%"}), + ), + section_title("HTML Table - Horizontal Scrolling"), + html.Div( + """ + With HTML tables, we can set `min-width` to be 100%. + If the content is small, then the columns will have some extra + space. + But if the content of any of the cells is really large, then the + cells will expand beyond the container and a scrollbar will appear. + + In this way, `min-width` and `overflow-x: scroll` is an alternative + to `text-overflow: ellipses`. With scroll, the content that can't + fit on the container will get pushed out into a scrollable zone. + With text-overflow: ellipses, the content will get truncated by + ellipses. Both strategies work with or without line breaks on the + white spaces (`white-space: normal` or `white-space: nowrap`). + + These next two examples have the same styles applied: + - `min-width: 100%` + - `white-space: nowrap` (to keep the content on a single line) + - A parent with `overflow-x: scroll` + + """ + ), + section_title("HTML Table - Two Columns, 100% Min-Width"), + html.Div( + html_table( + pd.DataFrame({"Column 1": [1, 2], "Column 2": [3, 3]}), + table_style={"minWidth": "100%"}, + cell_style={"whiteSpace": "nowrap"}, + ), + style={"overflowX": "scroll"}, + ), + section_title("HTML Table - Long Columns, 100% Min-Width"), + html.Div( + """ + Here is a table with several columns with long titles, + 100% min-width, and `'white-space': 'nowrap'` + (to keep the text on a single line) + """ + ), + html.Div( + html_table( + pd.DataFrame( + { + "This is Column {} Data".format(i): [1, 2] + for i in range(10) + } + ), + table_style={"minWidth": "100%", "overflowX": "scroll"}, + cell_style={"whiteSpace": "nowrap"}, + ), + style={"overflowX": "scroll"}, + ), + html.Hr(), + html.H3("Dash Interactive Table"), + html.Div("These same styles can be applied to the dash table"), + section_title("Dash Table - Default Styles"), + dash_table.Table( + id="sizing-1", + dataframe=df.to_dict("rows"), + columns=[{"name": i, "id": i} for i in df.columns], + ), + section_title("Dash Table - Padding"), + # ... + section_title("Dash Table - Underspecified Widths"), + # ... + section_title("Dash Table - Widths that are smaller than the content"), + # ... + section_title("Dash Table - Content with Ellipses"), + # ... + section_title("Dash Table - Vertical Scrolling"), + # ... + section_title("Dash Table - Vertical Scrolling with Max Height"), + # ... + section_title("Dash Table - Vertical Scrolling with Height"), + # ... + section_title("Dash Table - Horizontal Scrolling"), + # ... + section_title("Dash Table - Two Columns, 100% Min-Width"), + # ... + section_title("Dash Table - Long Columns, 100% Min-Width"), + # ... + section_title("Dash Table - Alignment"), + # ... + ], + ), + ] diff --git a/tests/dash/app_styling.py b/tests/dash/app_styling.py new file mode 100644 index 000000000..71fba8961 --- /dev/null +++ b/tests/dash/app_styling.py @@ -0,0 +1,57 @@ +from collections import OrderedDict +from dash.dependencies import Input, Output +import dash_core_components as dcc +import dash_html_components as html +import pandas as pd +from textwrap import dedent + +import dash_table +from index import app +from .utils import html_table, section_title + + +def layout(): + data = OrderedDict( + [ + ("Date", ["2015-01-01", "2015-10-24", "2016-05-10"]), + ("Region", ["Montreal", "Vermont", "New York City"]), + ("Temperature", [1, -20, 3.512]), + ("Humidity", [10, 20, 30]), + ("Pressure", [2, 10924, 3912]), + ] + ) + + df = pd.DataFrame(data) + + return html.Div( + style={"marginLeft": "auto", "marginRight": "auto", "width": "80%"}, + children=[ + html.H1("[WIP] - Styling the Table"), + section_title("HTML Table - Alignment"), + html.Div( + """ + When displaying numerical data, it's a good practice to use + monospaced fonts, to right-align the data, and to provide the same + number of decimals throughout the column. + + Note that it's not possible to modify the number of decimal places + in css. `dash-table` will provide formatting options in the future, + until then you'll have to modify your data before displaying it. + + For textual data, left-aligning the data is usually easier to read. + + In both cases, the column headers should have the same alignment + as the cell content. + """ + ), + html_table( + df, + cell_style={"paddingLeft": 5, "paddingRight": 5}, + cell_style_by_column={ + "Temperature": {"textAlign": "right", "fontFamily": "monospaced"}, + "Humidity": {"textAlign": "right", "fontFamily": "monospaced"}, + "Pressure": {"textAlign": "right", "fontFamily": "monospaced"}, + }, + ), + ], + ) diff --git a/tests/dash/utils.py b/tests/dash/utils.py new file mode 100644 index 000000000..4deb688bd --- /dev/null +++ b/tests/dash/utils.py @@ -0,0 +1,53 @@ +import dash_html_components as html + + +def merge(*args): + merged = {} + for arg in args: + for key in arg: + merged[key] = arg[key] + return merged + + +def section_title(title): + return html.H4(title, style={"marginTop": "20px"}) + + +def html_table( + df, + base_column_style={}, + table_style={}, + column_style={}, + cell_style={}, + cell_style_by_column={}, +): + header = [] + for column in df.columns: + header.append( + html.Th( + column, + style=merge( + base_column_style, + cell_style, + column_style.get(column, {}), + cell_style_by_column.get(column, {}), + ), + ) + ) + + rows = [] + for i in range(len(df)): + row = [] + for column in df.columns: + row.append( + html.Td( + df.iloc[i][column], + style=merge(cell_style, cell_style_by_column.get(column, {})), + ) + ) + rows.append(html.Tr(row)) + + return html.Table( + [html.Thead(header), html.Tbody(rows)], + style=merge(table_style, {"marginTop": "20px", "marginBottom": "20px"}), + ) diff --git a/tests/e2e/cypress/integration/delete_row_test.ts b/tests/e2e/cypress/integration/delete_row_test.ts index 2bc291f4a..330e66a55 100644 --- a/tests/e2e/cypress/integration/delete_row_test.ts +++ b/tests/e2e/cypress/integration/delete_row_test.ts @@ -12,9 +12,9 @@ describe('delete', () => { it('can delete row when sorted', () => { cy.get('tr th.column-2 .sort').click({ force: true }); - DashTable.getCell(0, 2).within(() => cy.get('.cell-value').should('have.html', '249')); + DashTable.getCell(0, 2).within(() => cy.get('.cell-value').should('have.html', '28155')); DashTable.getDelete(0).click(); - DashTable.getCell(0, 2).within(() => cy.get('.cell-value').should('have.html', '248')); + DashTable.getCell(0, 2).within(() => cy.get('.cell-value').should('have.html', '28154')); }); }); diff --git a/tests/e2e/dash/v_be_page.py b/tests/e2e/dash/v_be_page.py index e6fc623e6..85cf5453a 100644 --- a/tests/e2e/dash/v_be_page.py +++ b/tests/e2e/dash/v_be_page.py @@ -17,7 +17,6 @@ url = "https://github.com/plotly/datasets/raw/master/" "26k-consumer-complaints.csv" df = pd.read_csv(url) -df = df.values app = dash.Dash() app.css.config.serve_locally = True @@ -29,8 +28,8 @@ dash_table.Table( id="table", dataframe=[], - virtualization="be", - virtualization_settings={ + pagination_mode="be", + pagination_settings={ "displayed_pages": 1, "current_page": 0, "page_size": 250, @@ -56,26 +55,39 @@ n_fixed_rows=1, row_selectable=True, row_deletable=True, - sorting=True, + sorting="be", + filtering=False, editable=True, ), ] ) -@app.callback(Output("table", "dataframe"), [Input("table", "virtualization_settings")]) -def updateDataframe(virtualization_settings): - print(virtualization_settings) +@app.callback(Output("table", "dataframe"), [ + Input("table", "pagination_settings"), + Input("table", "sorting_settings") +]) +def updateDataframe(pagination_settings, sorting_settings): + print(pagination_settings) - current_page = virtualization_settings["current_page"] - displayed_pages = virtualization_settings["displayed_pages"] - page_size = virtualization_settings["page_size"] + current_page = pagination_settings["current_page"] + displayed_pages = pagination_settings["displayed_pages"] + page_size = pagination_settings["page_size"] start_index = current_page * page_size end_index = start_index + displayed_pages * page_size print(str(start_index) + "," + str(end_index)) + print(sorting_settings) - return df[start_index:end_index] + if (sorting_settings is None or len(sorting_settings) == 0): + sorted_df = df.values + else: + sorted_df = df.sort_index( + axis=sorting_settings[0]['columnId'], + ascending=(sorting_settings[0]['direction'] == 'asc') + ).values + + return sorted_df[start_index:end_index] @app.callback( @@ -99,4 +111,4 @@ def findModifiedValue(dataframe, previous): if __name__ == "__main__": - app.run_server(port=8081, debug=False) + app.run_server(port=8081, debug=False) \ No newline at end of file diff --git a/tests/visual/percy-storybook/fixtures.ts b/tests/visual/percy-storybook/fixtures.ts index e7d96eb18..00e8226c9 100644 --- a/tests/visual/percy-storybook/fixtures.ts +++ b/tests/visual/percy-storybook/fixtures.ts @@ -357,6 +357,7 @@ export default [ props: { id: 'table', editable: true, + active_cell: [2, 1], selected_cell: [[2, 1], [2, 2], [1, 1], [1, 2]], columns: [ { diff --git a/usage.py b/usage.py index d9e921b9d..37b187acc 100644 --- a/usage.py +++ b/usage.py @@ -27,8 +27,8 @@ dash_table.Table( id='table', dataframe=dataframe, - virtualization='be', - virtualization_settings={ + pagination_mode='be', + pagination_settings={ 'displayed_pages': 1, 'current_page': 0, 'page_size': 100 @@ -56,7 +56,7 @@ @app.callback( Output('table', 'dataframe'), - [Input('table', 'virtualization')] + [Input('table', 'pagination_mode')] ) def updateDataframe(): return dataframe2 @@ -65,8 +65,8 @@ def updateDataframe(): @app.callback( Output('container', 'children'), [ - Input('table', 'virtual_dataframe'), - Input('table', 'virtual_dataframe_indices') + Input('table', 'derived_viewport_dataframe'), + Input('table', 'derived_viewport_indices') ] ) def updateContainer(): diff --git a/v_be_page_usage.py b/v_be_page_usage.py index f18964e82..761975bc5 100644 --- a/v_be_page_usage.py +++ b/v_be_page_usage.py @@ -20,8 +20,8 @@ dash_table.Table( id='table', dataframe=[], - virtualization='be', - virtualization_settings={ + pagination_mode='be', + pagination_settings={ 'displayed_pages': 1, 'current_page': 0, 'page_size': 5 @@ -49,14 +49,14 @@ @app.callback( Output('table', 'dataframe'), - [Input('table', 'virtualization_settings')] + [Input('table', 'pagination_settings')] ) -def updateDataframe(virtualization_settings): - print(virtualization_settings) +def updateDataframe(pagination_settings): + print(pagination_settings) - current_page = virtualization_settings['current_page'] - displayed_pages = virtualization_settings['displayed_pages'] - page_size = virtualization_settings['page_size'] + current_page = pagination_settings['current_page'] + displayed_pages = pagination_settings['displayed_pages'] + page_size = pagination_settings['page_size'] start_index = current_page * page_size end_index = start_index + displayed_pages * page_size @@ -67,10 +67,10 @@ def updateDataframe(virtualization_settings): hidden = False @app.callback( Output('container', 'hidden'), - [Input('table', 'virtual_dataframe'), Input('table', 'virtual_dataframe_indices')] + [Input('table', 'derived_viewport_dataframe'), Input('table', 'derived_viewport_indices')] ) -def updateVirtualDataframe(virtual_dataframe, virtual_dataframe_indices): - print(virtual_dataframe) +def updateViewportDataframe(derived_viewport_dataframe, derived_viewport_indices): + print(derived_viewport_dataframe) global hidden diff --git a/v_fe_page_usage.py b/v_fe_page_usage.py index a7652c149..1e69b700b 100644 --- a/v_fe_page_usage.py +++ b/v_fe_page_usage.py @@ -16,8 +16,8 @@ dash_table.Table( id='table', dataframe=df, - virtualization='fe', - virtualization_settings={ + pagination_mode='fe', + pagination_settings={ 'current_page': 0, 'displayed_pages': 1, 'page_size': 500