diff --git a/dash_table/bundle.js b/dash_table/bundle.js index a2e376311..49b5b9c7d 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=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)}),Oe=we(function(e){return e.apply(this,Array.prototype.slice.call(arguments,1))});function _e(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(_e(!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)})}),On=c(1),_n=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)}),Or=g(function(e,t,n){return br(function(t,n,r){return e(n,r)},t,n)}),_r=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){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.memoizeOne=o,t.memoizeOneFactory=function(e){return()=>o(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,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=26)}([function(e,t,n){e.exports=n(30)()},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 d(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):p(u,f(e,o,n))}}var h=l(function(e,t){return 1===e?o(t):p(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,d(arguments,[t,r]));return t+=1,e},e.apply(this,o)})});function y(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 g=y(function(e,t,n){if(t>=n.length||t<-n.length)return n;var r=(t<0?n.length:0)+t,o=d(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 p(e.length,function(){return e.apply(t,arguments)})});function M(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 j(e,t,n,r){return e["@@transducer/result"](n[r](P(e["@@transducer/step"],e),t))}var T="undefined"!=typeof Symbol?Symbol.iterator:"@@iterator";function R(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 R(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}),pe=y(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=y(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 pe(o,n,r)}),ye=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")}}),ge=o(function(e){return ye(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 R(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=[],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"')}),dt=o(function(e){return p(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(ye(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 pt(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))})}),yt=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}(),gt=f(4,[],x([],f(4,[],function(e,t,n,r){return new yt(e,t,n,r)}),function(e,t,n,r){return R(function(r,o){var i=n(o);return r[i]=e(z(i,r)?r[i]:t,o),r},{},r)})),bt=gt(function(e,t){return e+1},0),mt=c(-1),xt=l(function(e,t){return null==t||t!=t?e:t}),Et=y(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}(),Mt=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 jt=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}(),Tt=l(x([],l(function(e,t){return new jt(e,t)}),function(e,t){return Mt(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=y(function(e,t,n){return Xe(e(t),e(n))}),Xt=y(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}(),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}),yn=l(function(e,t){return e>=t}),gn=l(z),bn=l(function(e,t){return e in t}),mn=Bt(0);function xn(e){return e}var En=o(xn),wn=y(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=gt(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=y(function(e,t,n){return ot(function(t){return He(e,t,n)},t)}),kn=y(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=y(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}(),Mn=l(function(e,t){for(var n,r,o=new Pn,i=[],u=0;ut.length?(n=e,r=t):(n=t,r=e),jn(ot(ln(Qe)(n),r))}),Rn=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),pe(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 R(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=y(function(e,t,n){return e(n)>e(t)?n:t}),dr=J(c,0),pr=o(function(e){return dr(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 pr(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 p(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)}),yr=l(function(e,t){return In({},e,t)}),gr=o(function(e){return In.apply(null,[{}].concat(e))}),br=y(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=y(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=y(function(e,t,n){return mr(function(t,n,r){return e(n,r)},t,n)}),_r=y(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 R(function(n,r){return e(n,r)?t(n,r):E(n)},n,r)}),ao=o(E),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})}),go=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;no(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(33);function o(e){let t,n=null;return(...o)=>(0,r.isEqualArgs)(n,o)?t:(n=o)&&(t=e(...o))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=t.DebugLevel=void 0;!function(e){e[e.DEBUG=6]="DEBUG",e[e.NONE=7]="NONE"}(r||(t.DebugLevel=r={}));var o=t.LogLevel=void 0;!function(e){e[e.TRACE=0]="TRACE",e[e.INFO=1]="INFO",e[e.WARNING=2]="WARNING",e[e.ERROR=3]="ERROR",e[e.FATAL=4]="FATAL",e[e.NONE=5]="NONE"}(o||(t.LogLevel=o={}));let i=[];i[o.TRACE]="trace",i[o.INFO]="info",i[o.WARNING]="warning",i[o.ERROR]="error",i[o.FATAL]="fatal",i[o.NONE]="none",i[r.DEBUG]="debug",i[r.NONE]="trace";let u,a=o.NONE,s=r.NONE;function l(e,t){if(e{};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;tvoid 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=a(r),i=a(n(0)),u=a(n(28));n(56);var s=a(n(3));function a(e){return e&&e.__esModule?e:{default:e}}class l extends r.Component{render(){var e=this.props;const t=e.filtering,n=e.sorting,r=e.pagination_mode;function i(e){return-1!==["be",!1].indexOf(e)}return function(e){return-1!==["fe",!0,!1].indexOf(e)}(r)||i(t)&&i(n)?o.default.createElement(u.default,this.props):(s.default.error("Invalid combination of filtering / sorting / pagination",t,n,r),o.default.createElement("div",null,"Invalid props combination"))}}t.default=l;const c=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:[]},p=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};l.defaultProps=c,l.propTypes=p},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=d(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(4),s=d(n(29)),a=d(n(45)),l=d(n(46)),c=d(n(47)),p=d(n(48));function d(e){return e&&e.__esModule?e:{default:e}}n(49),n(52),n(54);const f=/^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.visibleColumns=(0,p.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),this.updateDerivedProps()}componentWillReceiveProps(e){this.controlled=this.getControlledProps(e),this.updateDerivedProps()}shouldComponentUpdate(e){const t=this.props;return i.any(n=>!f.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.columns,r=e.dataframe,o=e.filtering,u=e.filtering_settings,s=e.pagination_mode,a=e.pagination_settings,l=e.sorting,c=e.sorting_settings,p=e.sorting_treat_empty_string_as_none,d=this.virtual(r,o,u,l,c,p),f=this.viewport(s,a,d.dataframe,d.indices),h=this.paginator(s,a,t,d.dataframe),v=this.visibleColumns(n);return i.mergeAll([e,{columns:v,paginator:h,setProps:t,viewport:f,virtual:d}])}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(4),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.selected_cell,s=n.setProps,l=n.viewport;e.preventDefault(),this.$el.focus();const c=u.length>1,p=t.keyCode===a.KEY_CODES.ENTER||t.keyCode===a.KEY_CODES.TAB;if(c&&p)return void s({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 s({is_focused:!1,selected_cell:[e],active_cell:e})}let d=[],f=[];const h=x(i.uniq(i.pluck(0,u))),v=x(i.uniq(i.pluck(1,u))),g=h[0],y=v[0],b=h[h.length-1],m=v[v.length-1],E=t.keyCode===a.KEY_CODES.ARROW_DOWN||t.keyCode===a.KEY_CODES.ENTER,w=t.keyCode===a.KEY_CODES.ARROW_UP,O=t.keyCode===a.KEY_CODES.ARROW_RIGHT||t.keyCode===a.KEY_CODES.TAB,_=t.keyCode===a.KEY_CODES.ARROW_LEFT;E&&r[0]>g?f=v.map(e=>[g,e]):E&&b!==l.dataframe.length-1?d=v.map(e=>[b+1,e]):w&&r[0][b,e]):w&&g>0?d=v.map(e=>[g-1,e]):_&&r[1][e,m]):_&&y>0?d=h.map(e=>[e,y-1]):O&&r[1]>y?f=h.map(e=>[e,y]):O&&m+1<=o.length-1&&(d=h.map(e=>[e,m+1])),s({is_focused:!1,selected_cell:i.without(f,i.uniq(i.concat(d,u)))})}),this.deleteCell=(e=>{var t=this.props;const n=t.columns,r=t.dataframe,o=t.editable,u=t.selected_cell,a=t.setProps,l=t.viewport;e.preventDefault();let c=r;i.map(e=>[l.indices[e[0]],e[1]],u).forEach(e=>{(0,s.colIsEditable)(o,n[e[1]])&&(c=i.set(i.lensPath([e[0],n[e[1]].id]),"",c))}),a({dataframe:c})}),this.getNextCell=((e,{restrictToSelection:t,currentCell:n})=>{var r=this.props;const o=r.columns,u=r.selected_cell,s=r.viewport,c=e;switch(c.keyCode){case a.KEY_CODES.ARROW_LEFT:return t?(0,l.selectionCycle)([n[0],n[1]-1],u):[n[0],i.max(0,n[1]-1)];case a.KEY_CODES.ARROW_RIGHT:case a.KEY_CODES.TAB:return t?(0,l.selectionCycle)([n[0],n[1]+1],u):[n[0],i.min(o.length-1,n[1]+1)];case a.KEY_CODES.ARROW_UP:return t?(0,l.selectionCycle)([n[0]-1,n[1]],u):[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]],u):[i.min(s.dataframe.length-1,n[0]+1),n[1]];default:throw new Error(`Table.getNextCell: unknown navigation keycode ${c.keyCode}`)}}),this.onCopy=(e=>{var t=this.props;const n=t.columns,r=t.selected_cell,o=t.viewport;v.default.toClipboard(e,r,n,o.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.setProps,a=t.sorting_settings,l=t.viewport;if(!i)return;const c=v.default.fromClipboard(e,n,l.indices,r,o,!0,!a.length||!u.length);c&&s(c)}),this.loadNext=(()=>{this.props.paginator.loadNext()}),this.loadPrevious=(()=>{this.props.paginator.loadPrevious()}),this.applyStyle=((e,t,n)=>{t&&(this.stylesheet.setRule(".dash-spreadsheet-inner td.dash-delete-cell","width: 30px; max-width: 30px; min-width: 30px;"),this.stylesheet.setRule(".dash-spreadsheet-inner th.dash-delete-header","width: 30px; max-width: 30px; min-width: 30px;")),n&&(this.stylesheet.setRule(".dash-spreadsheet-inner td.dash-select-cell","width: 30px; max-width: 30px; min-width: 30px;"),this.stylesheet.setRule(".dash-spreadsheet-inner th.dash-select-header","width: 30px; max-width: 30px; min-width: 30px;")),i.addIndex(i.forEach)((e,t)=>{const n=u.default.unit(e.width||c.DEFAULT_CELL_WIDTH,"px"),r=u.default.unit(e.maxWidth||e.width||c.DEFAULT_CELL_WIDTH,"px"),o=u.default.unit(e.minWidth||e.width||c.DEFAULT_CELL_WIDTH,"px");this.stylesheet.setRule(`.dash-spreadsheet-inner td.column-${t}`,`width: ${n}; max-width: ${r}; min-width: ${o};`),this.stylesheet.setRule(`.dash-spreadsheet-inner th.column-${t}`,`width: ${n}; max-width: ${r}; min-width: ${o};`)},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,fillerColumns:r,filtering:this.props.filtering,filtering_settings:this.props.filtering_settings,filtering_type:this.props.filtering_type,id:this.props.id,setFilter:this.handleSetFilter}}),this.headerFactory=new p.default(()=>this.props),this.stylesheet=new u.default(`#${e.id}`),this.updateStylesheet()}get lexerResult(){const e=this.props.filtering_settings;return this.getLexerResult(e)}updateStylesheet(){const e=this.props.table_style;i.forEach(({selector:e,rule:t})=>{this.stylesheet.setRule(e,t)},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(){this.updateStylesheet()}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.pagination_mode,p=e.rowSorting;let f=[];if(s){f=[0];let e=0;u.forEach((t,n)=>{t!==u[e]&&(f.push(n),e=n)})}else f=o.range(0,t.length);return o.filter(e=>!!e,f.map((h,v)=>{const g=t[h],y=t.indexOf(g);let b;b=s?h===o.last(f)?u.length-h:f[v+1]-h:1;const m=t.indexOf(g),x=t.filter((e,t)=>t>=m&&ti.default.unit(e.width||d,"px")).join(" + ")})`,w=`calc(${x.map(e=>i.default.unit(e.maxWidth||e.width||d,"px")).join(" + ")})`,O=`calc(${x.map(e=>i.default.unit(e.minWidth||e.width||d,"px")).join(" + ")})`;return r.default.createElement("th",{key:`header-cell-${h}`,"data-dash-column":g.id,colSpan:b,className:"dash-header "+`column-${h} `+(h===t.length-1||h===o.last(f)?"cell--right-last ":""),style:y{(0,n.setProps)(l.editColumnName(e,t,n))}}(g,n,e)},"✎"):"",g.deletable&&"be"!==c&&"Boolean"===o.type(g.deletable)||"Number"===o.type(g.deletable)&&g.deletable===n?r.default.createElement("span",{className:"column-header--delete",onClick:function(e,t,n){return()=>{(0,n.setProps)(l.deleteColumn(e,t,n))}}(g,n,e)},"×"):"",r.default.createElement("span",null,u[h]))}))}createDeletableHeader(e){return e.row_deletable?r.default.createElement("th",{key:"delete",className:"expanded-row--empty-cell dash-delete-header",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 dash-select-header",style:{width:"30px",maxWidth:"30px",minWidth:"30px"}}):null}createHeaders(){const e=this.props;let t=e.columns,n=e.sorting,r=e.merge_duplicate_headers,i=e.n_fixed_columns,u=e.pagination_mode,s=e.row_deletable,a=e.row_selectable,l=e.setProps,c=e.sorting_settings,p=e.sorting_type;const d=(s?1:0)+(a?1:0);i=Math.max(0,i-d);const v=this.createDeletableHeader(e),g=this.createSelectableHeader(e),y=Math.max.apply(Math,t.map(f));let b;return b=1===y?[[...v?[v]:[],...g?[g]:[],...this.createHeaderCells({columns:t,columnRowIndex:0,labels:o.pluck("name",t),n_fixed_columns:i,pagination_mode:u,rowSorting:n,setProps:l,sorting_settings:c,sorting_type:p})]]:o.range(0,y).map(e=>[...v?[v]:[],...g?[g]:[],...this.createHeaderCells({columns:t,columnRowIndex:e,labels:t.map(t=>o.isNil(t.name)&&e===y-1?t.id:h(t,e)),n_fixed_columns:i,pagination_mode:u,rowSorting:!!n&&e+1===y,mergeCells:r&&e+1!==y,setProps:l,sorting_settings:c,sorting_type:p})])}}},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.editable,u=o.is_focused,s=o.selected_cell,a=o.setProps,l=this.isCellSelected(s,e,t);if(!i)return;if(u||n.preventDefault(),l)return;n.preventDefault();const c=[e,t],p={is_focused:!1,active_cell:c},d=r.uniq(r.pluck(0,s)).sort((e,t)=>e-t),f=r.uniq(r.pluck(1,s)).sort((e,t)=>e-t),h=d[0],v=f[0];n.shiftKey?p.selected_cell=r.xprod(r.range(r.min(h,c[0]),r.max(h,c[0])+1),r.range(r.min(v,c[1]),r.max(v,c[1])+1)):p.selected_cell=[c],a(p)}),this.handleDoubleClick=((e,t,n)=>{var r=this.props;const o=r.editable,i=r.is_focused,u=r.setProps;if(!o)return;const s=[e,t];i||(n.preventDefault(),u({selected_cell:[s],active_cell:s,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:"dash-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:"dash-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.selected_cell,v=e.viewport;return v.dataframe.map((e,g)=>{const y=v.indices[g],b=this.rowDeleteCell(y),m=this.rowSelectCell(y),x=n.map((v,b)=>{let m=(c&&c[v.id]&&(c[v.id].length>y?c[v.id][y]:null)||v||{}).options;const x=n.indexOf(v),E=[`column-${x}`];let w=u.find(e=>e.id===v.id),O=a.find(e=>e.id===v.id);w=w&&w.dropdowns,O=m||O&&O.dropdown;let _=s.find(e=>e.id===v.id),S=l.find(e=>e.id===v.id);return _=_&&_.styles,S=S&&S.style,o.default.createElement(i.default,{key:`${v.id}-${b}`,active:t[0]===g&&t[1]===x,classes:E,clearable:v.clearable,conditionalDropdowns:w,conditionalStyles:_,datum:e,editable:p,focused:!!f,onClick:this.getEventHandler(this.handleClick,g,x),onDoubleClick:this.getEventHandler(this.handleDoubleClick,g,x),onPaste:this.handlePaste,onChange:this.getEventHandler(this.handleChange,y,x),property:v.id,selected:r.contains([g,x],h),staticDropdown:O,staticStyle:S,tableId:d,type:v.type,value:e[v.id]})});return m&&x.unshift(m),b&&x.unshift(b),x})}}},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(4),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&&e.keyCode!==p.KEY_CODES.TAB||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["dash-cell",...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"],...["dash-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(){const e=this.props.property;return i.default.createElement("td",{ref:"td",tabIndex:-1,className:this.classes.join(" "),style:this.style,"data-dash-column":e},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(5),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;tvoid 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{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(3)},function(e,t){e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=function(e,t){var n=e[1]||"",r=e[3];if(!r)return n;if(t&&"function"==typeof btoa){var o=function(e){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+" */"}(r),i=r.sources.map(function(e){return"/*# sourceURL="+r.sourceRoot+e+" */"});return[n].concat(i).concat([o]).join("\n")}return[n].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n}).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var r={},o=0;o=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),p(e,t),t}function v(e,t){Object.keys(t).forEach(function(n){e.setAttribute(n,t[n])})}function y(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),p(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=d(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(20))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=u(n(4)),o=u(n(12)),i=u(n(23));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(4));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.DEFAULT_CELL_WIDTH=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=h(n(1)),i=n(18),u=n(19),a=h(n(36)),s=h(n(40)),l=h(n(41)),c=h(n(42)),d=h(n(43)),p=h(n(44)),f=h(n(45));function h(e){return e&&e.__esModule?e:{default:e}}t.DEFAULT_CELL_WIDTH=200;t.default=class{constructor(e){this.propsFn=e,this.headerContent=(0,a.default)(),this.headerOperations=(0,p.default)(),this.headerWrappers=(0,f.default)()}get props(){return this.propsFn()}createHeaders(){const e=this.props;let t=e.columns,n=e.merge_duplicate_headers,a=e.n_fixed_columns,p=e.pagination_mode,f=e.row_deletable,h=e.row_selectable,v=e.setProps,y=e.sorting,g=e.sorting_settings,b=e.sorting_type;const m=(0,s.default)(a,f,h),x=(0,l.default)(t),E=(0,d.default)(t,x),w=(0,c.default)(t,E,n),_=r.zip(E,w),O=this.headerOperations(x,h,f),S=this.headerWrappers(t,_,n,m),C=this.headerContent(t,_,y,b,g,p,v,e),A=(0,u.matrixMap)(S,C,(e,t)=>o.default.cloneElement(e,{children:[t]}));return(0,i.arrayMap)(O,A,(e,t)=>Array.prototype.concat(e,t))}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.arrayMap=function(e,t,n){return r.addIndex(r.map)((e,r)=>n(e,t[r],r),e)},t.arrayMap3=function(e,t,n,o){return r.addIndex(r.map)((e,r)=>o(e,t[r],n[r],r),e)},t.arrayMapN=function(e,...t){const n=t.slice(0,1),o=t.slice(1);return r.addIndex(r.map)((t,n)=>e(n,[t,...o.map(e=>e[n])]),n)};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.matrixMap=function(e,t,n){const o=r.addIndex(r.map),i=r.addIndex(r.map);return o((e,r)=>i((e,o)=>n(e,t[r][o],r,o),e),e)},t.matrixMap3=function(e,t,n,o){const i=r.addIndex(r.map),u=r.addIndex(r.map);return i((e,r)=>u((e,i)=>o(e,t[r][i],n[r][i],r,i),e),e)},t.matrixMap4=function(e,t,n,o,i){const u=r.addIndex(r.map),a=r.addIndex(r.map);return u((e,r)=>a((e,u)=>i(e,t[r][u],n[r][u],o[r][u],r,u),e),e)},t.matrixMapN=function(e,...t){const n=t.slice(0,1),o=t.slice(1),i=r.addIndex(r.map),u=r.addIndex(r.map);return i((t,n)=>u((t,r)=>e(n,r,[t,...o.map(e=>e[n][r])]),t),n)};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.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(4));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}),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}),t.default=((e,t,n)=>e[0]===t&&e[1]===n)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e&&e.__esModule?e:{default:e}}(n(4));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});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(27)),o=u(n(4)),i=u(n(29));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(4),o=function(e){return e&&e.__esModule?e:{default:e}}(n(28));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(32));n(78);var a=s(n(4));function s(e){return e&&e.__esModule?e:{default:e}}class l extends r.Component{render(){var e=this.props;const t=e.filtering,n=e.sorting,r=e.pagination_mode;function i(e){return-1!==["be",!1].indexOf(e)}return function(e){return-1!==["fe",!0,!1].indexOf(e)}(r)||i(t)&&i(n)?o.default.createElement(u.default,this.props):(a.default.error("Invalid combination of filtering / sorting / pagination",t,n,r),o.default.createElement("div",null,"Invalid props combination"))}}t.default=l;const c=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:[]},d=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};l.defaultProps=c,l.propTypes=d},function(e,t,n){"use strict";var r=n(31);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(3),a=p(n(34)),s=p(n(67)),l=p(n(68)),c=p(n(69)),d=p(n(70));function p(e){return e&&e.__esModule?e:{default:e}}n(71),n(74),n(76);const f=/^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.visibleColumns=(0,d.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),this.updateDerivedProps()}componentWillReceiveProps(e){this.controlled=this.getControlledProps(e),this.updateDerivedProps()}shouldComponentUpdate(e){const t=this.props;return i.any(n=>!f.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.columns,r=e.dataframe,o=e.filtering,u=e.filtering_settings,a=e.pagination_mode,s=e.pagination_settings,l=e.sorting,c=e.sorting_settings,d=e.sorting_treat_empty_string_as_none,p=this.virtual(r,o,u,l,c,d),f=this.viewport(a,s,p.dataframe,p.indices),h=this.paginator(a,s,t,p.dataframe),v=this.visibleColumns(n);return i.mergeAll([e,{columns:v,paginator:h,setProps:t,viewport:f,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,d=this.filterCache(n),p=this.paginationCache(o),f=this.sortCache(u),h=!d.cached&&!d.first&&"be"===t||!p.cached&&!p.first&&"be"===r||!f.cached&&!f.first&&"be"===i;if(c&&l&&!h)return;const v=this.setProps;let y={};c||(y.derived_virtual_dataframe=s.dataframe,y.derived_virtual_indices=s.indices),l||(y.derived_viewport_dataframe=a.dataframe,y.derived_viewport_indices=a.indices),h&&(y.active_cell=void 0,y.selected_cell=void 0,y.selected_rows=void 0),setTimeout(()=>v(y),0)}get setProps(){return this.__setProps(this.props.setProps)}}},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=n(1),o=b(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=b(n(14)),a=n(15),s=n(16),l=n(35),c=n(17),d=b(n(4)),p=n(3),f=b(n(12)),h=b(n(46)),v=b(n(21)),y=b(n(49)),g=b(n(66));function b(e){return e&&e.__esModule?e:{default:e}}const m=i.sort((e,t)=>e-t);t.default=class extends r.PureComponent{constructor(e){super(e),this.getLexerResult=(0,p.memoizeOne)(f.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.forceHandleResize=(()=>this.handleResize(!0)),this.handleResize=((e=!1)=>{if(this.state.forcedResizeOnly&&!e)return;e||this.setState({forcedResizeOnly:!0});var t=this.refs;const n=t.r0c0,r=t.r0c1,o=t.r1c0,i=t.r1c1;let u=r.querySelectorAll("tr");n.querySelectorAll("tr").forEach((e,t)=>{const n=u[t];e.style.height=`${n.clientHeight}px`});let a=i.querySelectorAll("tr > th:first-of-type");o.querySelectorAll("tr > th:first-of-type").forEach((e,t)=>{const n=a[t].parentElement;e.parentElement.style.height=getComputedStyle(n).height});const s=i.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,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.selected_cell,a=n.setProps,l=n.viewport;e.preventDefault(),this.$el.focus();const c=u.length>1,d=t.keyCode===s.KEY_CODES.ENTER||t.keyCode===s.KEY_CODES.TAB;if(c&&d)return void a({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 a({is_focused:!1,selected_cell:[e],active_cell:e})}let p=[],f=[];const h=m(i.uniq(i.pluck(0,u))),v=m(i.uniq(i.pluck(1,u))),y=h[0],g=v[0],b=h[h.length-1],x=v[v.length-1],E=t.keyCode===s.KEY_CODES.ARROW_DOWN||t.keyCode===s.KEY_CODES.ENTER,w=t.keyCode===s.KEY_CODES.ARROW_UP,_=t.keyCode===s.KEY_CODES.ARROW_RIGHT||t.keyCode===s.KEY_CODES.TAB,O=t.keyCode===s.KEY_CODES.ARROW_LEFT;E&&r[0]>y?f=v.map(e=>[y,e]):E&&b!==l.dataframe.length-1?p=v.map(e=>[b+1,e]):w&&r[0][b,e]):w&&y>0?p=v.map(e=>[y-1,e]):O&&r[1][e,x]):O&&g>0?p=h.map(e=>[e,g-1]):_&&r[1]>g?f=h.map(e=>[e,g]):_&&x+1<=o.length-1&&(p=h.map(e=>[e,x+1])),a({is_focused:!1,selected_cell:i.without(f,i.uniq(i.concat(p,u)))})}),this.deleteCell=(e=>{var t=this.props;const n=t.columns,r=t.dataframe,o=t.editable,u=t.selected_cell,s=t.setProps,l=t.viewport;e.preventDefault();let c=r;i.map(e=>[l.indices[e[0]],e[1]],u).forEach(e=>{(0,a.colIsEditable)(o,n[e[1]])&&(c=i.set(i.lensPath([e[0],n[e[1]].id]),"",c))}),s({dataframe:c})}),this.getNextCell=((e,{restrictToSelection:t,currentCell:n})=>{var r=this.props;const o=r.columns,u=r.selected_cell,a=r.viewport,c=e;switch(c.keyCode){case s.KEY_CODES.ARROW_LEFT:return t?(0,l.selectionCycle)([n[0],n[1]-1],u):[n[0],i.max(0,n[1]-1)];case s.KEY_CODES.ARROW_RIGHT:case s.KEY_CODES.TAB:return t?(0,l.selectionCycle)([n[0],n[1]+1],u):[n[0],i.min(o.length-1,n[1]+1)];case s.KEY_CODES.ARROW_UP:return t?(0,l.selectionCycle)([n[0]-1,n[1]],u):[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]],u):[i.min(a.dataframe.length-1,n[0]+1),n[1]];default:throw new Error(`Table.getNextCell: unknown navigation keycode ${c.keyCode}`)}}),this.onCopy=(e=>{var t=this.props;const n=t.columns,r=t.selected_cell,o=t.viewport;h.default.toClipboard(e,r,n,o.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.setProps,s=t.sorting_settings,l=t.viewport;if(!i)return;const c=h.default.fromClipboard(e,n,l.indices,r,o,!0,!s.length||!u.length);c&&a(c)}),this.loadNext=(()=>{this.props.paginator.loadNext()}),this.loadPrevious=(()=>{this.props.paginator.loadPrevious()}),this.applyStyle=((e,t,n)=>{t&&(this.stylesheet.setRule(".dash-spreadsheet-inner td.dash-delete-cell","width: 30px; max-width: 30px; min-width: 30px;"),this.stylesheet.setRule(".dash-spreadsheet-inner th.dash-delete-header","width: 30px; max-width: 30px; min-width: 30px;")),n&&(this.stylesheet.setRule(".dash-spreadsheet-inner td.dash-select-cell","width: 30px; max-width: 30px; min-width: 30px;"),this.stylesheet.setRule(".dash-spreadsheet-inner th.dash-select-header","width: 30px; max-width: 30px; min-width: 30px;")),i.addIndex(i.forEach)((e,t)=>{const n=u.default.unit(e.width||c.DEFAULT_CELL_WIDTH,"px"),r=u.default.unit(e.maxWidth||e.width||c.DEFAULT_CELL_WIDTH,"px"),o=u.default.unit(e.minWidth||e.width||c.DEFAULT_CELL_WIDTH,"px");this.stylesheet.setRule(`.dash-spreadsheet-inner td.column-${t}`,`width: ${n}; max-width: ${r}; min-width: ${o};`),this.stylesheet.setRule(`.dash-spreadsheet-inner th.column-${t}`,`width: ${n}; max-width: ${r}; min-width: ${o};`)},e)}),this.handleDropdown=(()=>{const e=this.refs.r1c1;(0,v.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.state={forcedResizeOnly:!1},this.stylesheet=new u.default(`#${e.id}`),this.tableFn=(0,y.default)(()=>this.props),this.updateStylesheet()}get lexerResult(){const e=this.props.filtering_settings;return this.getLexerResult(e)}updateStylesheet(){const e=this.props.table_style;i.forEach(({selector:e,rule:t})=>{this.stylesheet.setRule(e,t)},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.forceHandleResize),document.addEventListener("paste",this.handlePaste),document.addEventListener("mousedown",this.handleClickOutside),this.handleResize()}componentWillUnmount(){window.removeEventListener("resize",this.forceHandleResize),document.removeEventListener("mousedown",this.handleClickOutside),document.removeEventListener("paste",this.handlePaste)}componentWillUpdate(){this.updateStylesheet()}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 d=c[0],p=c[1],f=[d,p];d>s&&(f[0]=u,f[1]=p+1>l?a:p+1);dl&&(f[1]=a,f[0]=d+1>s?u:d+1);pt.columnId===e,t);return n?n.direction:u.SortDirection.None}t.default=(0,i.memoizeOneFactory)(function(e,t,n,i,c,d,f,h){return r.addIndex(r.map)(([v,y],g)=>{const b=g===t.length-1;return r.addIndex(r.map)(t=>{const y=e[t],m=y.editable_name&&"Boolean"===r.type(y.editable_name)||"Number"===r.type(y.editable_name)&&y.editable_name===g,x="be"!==d&&(y.deletable&&"Boolean"===r.type(y.deletable)||"Number"===r.type(y.deletable)&&y.deletable===g);return o.default.createElement("div",null,n&&b?o.default.createElement("span",{className:"sort",onClick:function(e,t,n,r){return()=>{let o;switch(p(e,t)){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"===n?s.default:a.default;r({sorting_settings:i(t,{columnId:e,direction:o})})}}(y.id,c,i,f)},function(e,t){switch(p(e,t)){case u.SortDirection.Descending:return"↑";case u.SortDirection.Ascending:return"↓";case u.SortDirection.None:default:return"↕"}}(y.id,c)):"",m?o.default.createElement("span",{className:"column-header--edit",onClick:function(e,t,n,r,o){return()=>{r(l.editColumnName(e,t,n,o))}}(y,e,g,f,h)},"✎"):"",x?o.default.createElement("span",{className:"column-header--delete",onClick:function(e,t,n,r,o){return()=>{r(l.deleteColumn(e,t,n,o))}}(y,e,g,f,h)},"×"):"",o.default.createElement("span",null,v[t]))},y)},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=function(e){return e&&e.__esModule?e:{default:e}}(n(4)),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(4)),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}),t.deleteColumn=function(e,t,n,i){const u=i.dataframe;var a=o(e,t,n);const s=a.groupIndexFirst,l=a.groupIndexLast,c=r.slice(s,l+1,r.pluck("id",t));return{columns:r.remove(s,1+l-s,t),dataframe:r.map(r.omit(c),u),active_cell:[],end_cell:[],selected_cell:[],start_cell:[0]}},t.editColumnName=function(e,t,n,i){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(t);return r.range(a,s+1).map(e=>{let o;o="Array"===r.type(t[e].name)?[e,"name",n]:[e,"name"],c=r.set(r.lensPath(o),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 r=t.indexOf(e);if(!e.name||Array.isArray(e.name)&&e.name.lengthn&&r.name[n]===e.name[n]))break;o=i}return{groupIndexFirst:r,groupIndexLast:o}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=((e,t,n)=>{const r=(t?1:0)+(n?1:0);return Math.max(0,e-r)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=e=>Array.isArray(e.name)?e.name.length:1;t.default=(e=>Math.max(...e.map(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));t.default=((e,t,n)=>r.map(t=>{if(n){let e=[0],n=0;return t.forEach((r,o)=>{r!==t[n]&&(e.push(o),n=o)}),e}return r.range(0,e.length)},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));t.default=((e,t)=>r.map(n=>e.map(e=>r.isNil(e.name)&&n===t-1?e.id:((e,t)=>Array.isArray(e.name)?e.name[t]:e.name)(e,n)),r.range(0,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=function(e){return e&&e.__esModule?e:{default:e}}(n(1)),i=n(3);t.default=(0,i.memoizeOneFactory)((e,t,n)=>r.addIndex(r.map)(()=>[...n?[o.default.createElement("th",{key:"delete",className:"expanded-row--empty-cell dash-delete-header",style:{width:"30px",maxWidth:"30px",minWidth:"30px"}})]:[],...t?[o.default.createElement("th",{key:"select",className:"expanded-row--empty-cell dash-select-header",style:{width:"30px",maxWidth:"30px",minWidth:"30px"}})]:[]],r.range(0,e)))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_CELL_WIDTH=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=a(n(1)),i=n(3),u=a(n(14));function a(e){return e&&e.__esModule?e:{default:e}}const s=t.DEFAULT_CELL_WIDTH=200;t.default=(0,i.memoizeOneFactory)(function(e,t,n,i){return r.map(([t,a])=>r.addIndex(r.map)((l,c)=>{const d=e[l];let p;p=n?l===r.last(a)?t.length-l:a[c+1]-l:1;const f=e.filter((e,t)=>t>=l&&tu.default.unit(e.width||s,"px")).join(" + ")})`,v=`calc(${f.map(e=>u.default.unit(e.maxWidth||e.width||s,"px")).join(" + ")})`,y=`calc(${f.map(e=>u.default.unit(e.minWidth||e.width||s,"px")).join(" + ")})`;return o.default.createElement("th",{key:`header-cell-${l}`,"data-dash-column":d.id,colSpan:p,className:"dash-header "+`column-${l} `+(l===e.length-1||l===r.last(a)?"cell--right-last ":""),style:le-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))),d=o.default.prototype.stringify(c);u.default.trace("TableClipboard -- set clipboard data: ",d),i.default.set(e,d)}static fromClipboard(e,t,n,l,c,d=!0,p=!0){const f=i.default.get(e);if(u.default.trace("TableClipboard -- get clipboard data: ",f),!f)return;p||u.default.debug("Clipboard -- Sorting or filtering active, do not create new rows"),d||u.default.debug("Clipboard -- Do not create new columns");const h=o.default.prototype.parse(f);let v=c;const y=l;if(d&&h[0].length+t[1]>=l.length)for(let e=l.length;et[`Column ${e}`]="");const g=n[t[0]];if(p&&h.length+g>=c.length){const e={};l.forEach(t=>e[t.id]=""),v=r.concat(v,r.repeat(e,h.length+g-c.length))}return h.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=y[l];c&&(0,a.colIsEditable)(!0,c)&&(v=r.set(r.lensPath([s,c.id]),e,v))})),{dataframe:v,columns:y}}}},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=u(n(50)),o=u(n(63)),i=u(n(17));function u(e){return e&&e.__esModule?e:{default:e}}const a=(e,t)=>e({filtering_settings:t});t.default=(e=>{const t=new r.default(e),n=new o.default(()=>(function(e){var t=e();const n=t.columns,r=t.filtering,o=t.filtering_settings,i=t.filtering_type,u=t.id,s=t.row_deletable,l=t.row_selectable,c=t.setProps;return{columns:n,fillerColumns:(s?1:0)+(l?1:0),filtering:r,filtering_settings:o,filtering_type:i,id:u,setFilter:a.bind(void 0,c)}})(e)),u=new i.default(e);return function(e,t,n){const r=[];return r.push(...n.createHeaders()),r.push(...t.createFilters()),r.push(...e.createCells()),r}.bind(void 0,t,n,u)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=d(n(1)),o=d(n(51)),i=d(n(54)),u=d(n(60)),a=d(n(61)),s=d(n(62)),l=n(19),c=n(18);function d(e){return e&&e.__esModule?e:{default:e}}t.default=class{constructor(e,t=(0,a.default)(e().id),n=(0,o.default)(e().id)){this.propsFn=e,this.cellStyles=t,this.cellWrappers=n,this.cellInputs=(0,i.default)(),this.cellOperations=(0,u.default)(),this.cellDropdowns=(0,s.default)()}get props(){return this.propsFn()}createCells(){var e=this.props;const t=e.active_cell,n=e.columns,o=e.column_conditional_dropdowns,i=e.column_conditional_styles,u=e.column_static_dropdown,a=e.column_static_style,s=e.dataframe,d=e.dropdown_properties,p=e.editable,f=e.id,h=e.is_focused,v=e.row_deletable,y=e.row_selectable,g=e.selected_cell,b=e.selected_rows,m=e.setProps,x=e.viewport,E=this.cellOperations(t,s,x.dataframe,x.indices,y,v,b,m),w=this.cellWrappers(t,n,x.dataframe,p,g),_=this.cellStyles(n,i,a,x.dataframe),O=this.cellDropdowns(f)(n,x.dataframe,x.indices,o,u,d),S=this.cellInputs(t,n,x.dataframe,p,!!h,f,O,this.propsFn),C=(0,l.matrixMap3)(w,_,S,(e,t,n)=>r.default.cloneElement(e,{children:[n],style:t}));return(0,c.arrayMap)(E,C,(e,t)=>Array.prototype.concat(e,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=d(n(1)),i=n(3),u=n(8),a=d(n(52)),s=d(n(22)),l=d(n(53)),c=d(n(9));function d(e){return e&&e.__esModule?e:{default:e}}function p(e,t,n,o,i,a){return r.addIndex(r.map)((o,c)=>r.addIndex(r.map)((n,r)=>{const o=(0,s.default)(t,c,r),d=(0,l.default)(a,c,r),p="dash-cell"+` column-${r}`+(o?" focused":"")+(i?"":" cell--uneditable")+(d?" cell--selected":"")+(n.type===u.ColumnType.Dropdown?" dropdown":"");return e([c,r],o,p,r,n.id)},n),o)}t.default=(0,i.memoizeAll)(function(e){const t=(0,c.default)((e,t,n,r)=>o.default.createElement(a.default,{active:e,classes:t,key:`column-${n}`,property:r}));return(0,i.memoizeOne)(p).bind(void 0,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=n(1),i=function(e){return e&&e.__esModule?e:{default:e}}(o);const u=/^children$/;t.default=class extends o.Component{constructor(e){super(e)}get propsWithDefaults(){return this.props}render(){var e=this.propsWithDefaults;const t=e.classes,n=e.property,r=e.style;return i.default.createElement("td",{ref:"td",children:this.props.children,tabIndex:-1,className:t,style:r,"data-dash-column":n})}shouldComponentUpdate(e){const t=this.props,n=this.getChildProps(t),o=this.getChildProps(e);return r.any(n=>!u.test(n)&&t[n]!==e[n],r.keysIn(t))||r.any(e=>n[e]!==o[e],r.keysIn(n))}getChildProps(e){return e&&e.children&&e.children[0]&&e.children[0].props}}},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));t.default=((e,t,n)=>r.contains([t,n],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=l(n(1)),i=n(3),u=l(n(55)),a=l(n(57)),s=l(n(22));function l(e){return e&&e.__esModule?e:{default:e}}const c=r.addIndex(r.map),d=r.addIndex(r.map),p=(0,a.default)();t.default=(0,i.memoizeOneFactory)((e,t,n,r,i,a,l,f)=>c((n,c)=>d((t,d)=>{const h=(0,s.default)(e,c,d),v=l[c][d],y=p(f)(c,d);return o.default.createElement(u.default,Object.assign({key:`column-${d}`,active:h,clearable:t.clearable,datum:n,dropdown:v,editable:r,focused:i,property:t.id,tableId:a,type:t.type,value:n[t.id]},y))},t),n))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(1),o=l(r),i=l(n(56)),u=n(16),a=n(8),s=l(n(21));function l(e){return e&&e.__esModule?e:{default:e}}class c extends r.PureComponent{constructor(e){super(e),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!==u.KEY_CODES.ENTER&&e.keyCode!==u.KEY_CODES.TAB||this.propagateChange()}),this.handleOpenDropdown=(()=>{var e=this.refs;const t=e.dropdown,n=e.td;(0,s.default)(t.wrapper.querySelector(".Select-menu-outer"),n)}),this.state={value:e.value}}get propsWithDefaults(){return this.props}renderDropdown(){var e=this.propsWithDefaults;const t=e.clearable,n=e.dropdown,r=e.onChange,u=e.value;return n?o.default.createElement(i.default,{ref:"dropdown",clearable:t,onChange:e=>{r(e?e.value:e)},onOpen:this.handleOpenDropdown,options:n,placeholder:"",value:u}):this.renderValue()}renderInput(){var e=this.propsWithDefaults;const t=e.active,n=e.focused,r=e.onClick,i=e.onDoubleClick,u=e.onPaste,a={className:[...t?["input-active"]:[],...n?["focused"]:["unfocused"],...["dash-cell-value"]].join(" "),onClick:r,onDoubleClick:i};return t||this.state.value!==this.props.value?o.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 o.default.createElement("div",Object.assign({},e),t)}render(){switch(this.props.type){case a.ColumnType.Text:case a.ColumnType.Numeric:return this.renderInput();case a.ColumnType.Dropdown:return this.renderDropdown();default:return this.renderValue()}}componentWillReceiveProps(e){const t=e.value;this.state.value!==t&&this.setState({value:t})}componentDidUpdate(){if(!this.propsWithDefaults.active)return;const e=this.refs.textInput,t=this.refs.dropdown;e&&document.activeElement!==e&&(e.focus(),e.setSelectionRange(0,e.value?e.value.length:0)),t&&document.activeElement!==t&&t.wrapper.parentElement.focus()}}t.default=c,c.defaultProps={conditionalDropdowns:[],type:a.ColumnType.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 p}),n.d(t,"defaultClearRenderer",function(){return f}),n.d(t,"defaultFilterOptions",function(){return g});var r=n(25),o=n.n(r),i=n(5),u=n.n(i),a=n(0),s=n.n(a),l=n(1),c=n.n(l),d=n(6),p=function(e){var t=e.onMouseDown;return c.a.createElement("span",{className:"Select-arrow",onMouseDown:t})};p.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=y(o),a=y(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,d=e.optionComponent,p=e.optionRenderer,f=e.options,h=e.removeValue,v=e.selectValue,y=e.valueArray,g=e.valueKey,b=d;return f.map(function(e,d){var f=y&&y.some(function(t){return t[g]===e[g]}),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-"+d+"-"+e[g],onFocus:i,onSelect:s,option:e,optionIndex:d,ref:function(e){a(e,m)},removeValue:h,selectValue:v},p(e,d,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},E=(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")}),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: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){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: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=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()((O(n={},this._instancePrefix+"-list",s),O(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=_({},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()(O({},this._instancePrefix+"-list",s));return c.a.createElement("div",_({},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,_({id:this.props.id},p,{minWidth:"5"})):c.a.createElement("div",{className:i,key:"input-wrap",style:{display:"inline-block"}},c.a.createElement("input",_({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(4)},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.toString(),u):t.delete(e.toString()),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.toString());return!t||!t.trim().length||this.isFragmentValid(e)}isFragmentValid(e){const t=this.ops.get(e.toString()),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.fillerColumns,i=e.filtering,l=e.filtering_settings,c=e.filtering_type,p=e.setFilter;if(!i)return[];this.updateOps(l);const d=r.range(0,n).map(e=>o.default.createElement("th",{key:`offset-${e}`})),f=c===a.FilteringType.Basic?r.addIndex(r.map)((e,t)=>o.default.createElement(u.default,{key:`column-${t}`,classes:`filter column-${t}`,isValid:this.isFragmentValidOrNull(e.id),property:e.id,setFilter:this.getEventHandler(this.onChange,e.id,this.ops,p),value:this.ops.get(e.id.toString())}),t):[o.default.createElement(s.default,{key:"column-0",classes:[],colSpan:t.length,value:"",setFilter:()=>void 0})];return[r.concat(d,f)]}}},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=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(4);t.default=(0,o.memoizeOneFactory)((e,t,n,o)=>{switch(e){case!1:return{loadNext:()=>{},loadPrevious:()=>{}};case!0:case"fe":return function(e,t,n){return{loadNext:()=>{let o=Math.floor(n.length/e.page_size);e.current_page>=o||(e=r.merge(e,{current_page:e.current_page+1}),t({pagination_settings:e}))},loadPrevious:()=>{e.current_page<=0||(e=r.merge(e,{current_page:e.current_page-1}),t({pagination_settings:e}))}}}(t,n,o);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(4);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(4),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){"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(4);t.default=(0,o.memoizeOneFactory)(e=>r.filter(e=>!e.hidden,e))},function(e,t,n){var r=n(50);"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(53);"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.dash-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.dash-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 *,\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.dash-freeze-left,\n.dash-spreadsheet-inner.dash-freeze-top {\n overflow: hidden !important;\n}\n.dash-spreadsheet-inner.dash-freeze-left .row-0,\n.dash-spreadsheet-inner.dash-freeze-top .row-0 {\n display: flex;\n flex: 0 0 auto;\n flex-direction: row;\n}\n.dash-spreadsheet-inner.dash-freeze-left .row-1,\n.dash-spreadsheet-inner.dash-freeze-top .row-1 {\n display: flex;\n flex-direction: row;\n overflow: scroll;\n}\n.dash-spreadsheet-inner.dash-freeze-left .cell-0-0,\n.dash-spreadsheet-inner.dash-freeze-top .cell-0-0,\n.dash-spreadsheet-inner.dash-freeze-left .cell-1-0,\n.dash-spreadsheet-inner.dash-freeze-top .cell-1-0 {\n flex: 0 0 auto;\n left: 0;\n position: sticky;\n z-index: 400;\n}\n.dash-spreadsheet-inner.dash-freeze-left .cell-0-1,\n.dash-spreadsheet-inner.dash-freeze-top .cell-0-1 {\n z-index: 300;\n flex: 0 0 auto;\n}\n.dash-spreadsheet-inner.dash-freeze-left .cell-1-1,\n.dash-spreadsheet-inner.dash-freeze-top .cell-1-1 {\n flex: 0 0 auto;\n}\n.dash-spreadsheet-inner:not(.dash-freeze-top):not(.dash-freeze-left) .cell-1-1 tr td:first-of-type,\n.dash-spreadsheet-inner:not(.dash-freeze-top):not(.dash-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(.dash-freeze-top):not(.dash-freeze-left) .cell-1-1 tr:first-of-type td,\n.dash-spreadsheet-inner:not(.dash-freeze-top):not(.dash-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(.dash-freeze-top):not(.dash-freeze-left) .cell-1-1 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner:not(.dash-freeze-top):not(.dash-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(.dash-freeze-top).dash-freeze-left .cell-1-0 tr td:first-of-type,\n.dash-spreadsheet-inner:not(.dash-freeze-top).dash-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(.dash-freeze-top).dash-freeze-left .cell-1-0 tr:first-of-type td,\n.dash-spreadsheet-inner:not(.dash-freeze-top).dash-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(.dash-freeze-top).dash-freeze-left .cell-1-0 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner:not(.dash-freeze-top).dash-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(.dash-freeze-top).dash-freeze-left .cell-1-1 tr:first-of-type td,\n.dash-spreadsheet-inner:not(.dash-freeze-top).dash-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.dash-freeze-top:not(.dash-freeze-left) .cell-0-1 tr td:first-of-type,\n.dash-spreadsheet-inner.dash-freeze-top:not(.dash-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.dash-freeze-top:not(.dash-freeze-left) .cell-0-1 tr:first-of-type td,\n.dash-spreadsheet-inner.dash-freeze-top:not(.dash-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.dash-freeze-top:not(.dash-freeze-left) .cell-0-1 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner.dash-freeze-top:not(.dash-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.dash-freeze-top:not(.dash-freeze-left) .cell-1-1 tr td:first-of-type,\n.dash-spreadsheet-inner.dash-freeze-top:not(.dash-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.dash-freeze-top.dash-freeze-left .cell-0-0 tr td:first-of-type,\n.dash-spreadsheet-inner.dash-freeze-top.dash-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.dash-freeze-top.dash-freeze-left .cell-0-0 tr:first-of-type td,\n.dash-spreadsheet-inner.dash-freeze-top.dash-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.dash-freeze-top.dash-freeze-left .cell-0-0 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner.dash-freeze-top.dash-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.dash-freeze-top.dash-freeze-left .cell-0-1 tr:first-of-type td,\n.dash-spreadsheet-inner.dash-freeze-top.dash-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.dash-freeze-top.dash-freeze-left .cell-1-0 tr td:first-of-type,\n.dash-spreadsheet-inner.dash-freeze-top.dash-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 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 .dash-cell-value {\n height: 100%;\n width: 100%;\n}\n.dash-spreadsheet-inner td div.dash-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 .dash-delete-cell,\n.dash-spreadsheet-inner .dash-delete-header {\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 .dash-delete-cell:hover,\n.dash-spreadsheet-inner .dash-delete-header: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(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 .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(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,"/*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=s.a.oneOfType([s.a.string,s.a.node]),M=s.a.oneOfType([s.a.string,s.a.number]),j=1,T=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||ip.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 T(e,n)}).filter(function(e){return e})}var r=T(e,n);return r?[r]:[]}},{key:"setValue",value:function(e){var t=this;if(this.props.autoBlur&&this.blurInput(),this.props.required){var n=R(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 d=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(d);if(this.props.disabled||!this.props.searchable){var p=C(this.props.inputProps,[]),f=u()(_({},this._instancePrefix+"-list",a));return c.a.createElement("div",O({},p,{"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},d,{minWidth:"5"})):c.a.createElement("div",{className:i,key:"input-wrap",style:{display:"inline-block"}},c.a.createElement("input",O({id:this.props.id},d)))}},{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:g;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 t=(0,i.default)()(e);return(...e)=>{const n=e[0],r=e[1];return{onChange:t(o.Handler.Change,n,r),onClick:t(o.Handler.Click,n,r),onDoubleClick:t(o.Handler.DoubleClick,n,r),onPaste:t(o.Handler.Paste,n,r)}}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Handler=void 0;var r=n(3),o=function(e){return e&&e.__esModule?e:{default:e}}(n(9)),i=n(59);var u=t.Handler=void 0;!function(e){e.Change="change",e.Click="click",e.DoubleClick="doubleclick",e.Paste="paste"}(u||(t.Handler=u={}));t.default=(0,r.memoizeOneFactory)(e=>{const t=(0,o.default)((...e)=>{let t=e[0],n=e[1],r=e[2];return t&&t.bind(void 0,n,r)}),n=new Map([[u.Change,i.handleChange.bind(void 0,e)],[u.Click,i.handleClick.bind(void 0,e)],[u.DoubleClick,i.handleDoubleClick.bind(void 0,e)],[u.Paste,i.handlePaste.bind(void 0,e)]]);return(...e)=>{let r=e[0],o=e[1],i=e[2];return t(e,n.get(r),o,i)}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.handlePaste=t.handleChange=t.handleDoubleClick=t.handleClick=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));t.handleClick=((e,t,n,o)=>{var i=e();const u=i.editable,a=i.is_focused,s=i.selected_cell,l=i.setProps,c=function(e,t,n){return e&&r.contains([t,n],e)}(s,t,n);if(!u)return;if(a||o.preventDefault(),c)return;o.preventDefault();const d=[t,n],p={is_focused:!1,active_cell:d},f=r.uniq(r.pluck(0,s)).sort((e,t)=>e-t),h=r.uniq(r.pluck(1,s)).sort((e,t)=>e-t),v=f[0],y=h[0];o.shiftKey?p.selected_cell=r.xprod(r.range(r.min(v,d[0]),r.max(v,d[0])+1),r.range(r.min(y,d[1]),r.max(y,d[1])+1)):p.selected_cell=[d],l(p)}),t.handleDoubleClick=((e,t,n,r)=>{var o=e();const i=o.editable,u=o.is_focused,a=o.setProps;if(!i)return;const s=[t,n];if(!u){r.preventDefault(),a({selected_cell:[s],active_cell:s,is_focused:!0})}}),t.handleChange=((e,t,n,o)=>{var i=e();const u=i.columns,a=i.dataframe,s=i.editable,l=i.setProps,c=i.viewport,d=u[n],p=c.indices[t];s&&l({dataframe:r.set(r.lensPath([p,d.id]),o,a)})}),t.handlePaste=((e,t,n,r)=>{r.preventDefault()})},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(1)),i=n(3);t.default=(0,i.memoizeOneFactory)((e,t,n,i,u,a,s,l)=>r.addIndex(r.map)((n,c)=>[...a?[function(e,t){return o.default.createElement("td",{key:"delete",className:"dash-delete-cell",onClick:()=>e(t()),style:{width:"30px",maxWidth:"30px",minWidth:"30px"}},"×")}(l,function(e,t,n,o){const i={dataframe:r.remove(e,1,n)};return r.is(Array,t)&&t[0]===e&&(i.active_cell=[]),r.is(Array,o)&&r.contains(e,o)&&(i.selected_rows=r.without([e],o)),i}.bind(void 0,i[c],e,t,s))]:[],...u?[function(e,t,n,i){return o.default.createElement("td",{key:"select",className:"dash-select-cell",style:{width:"30px",maxWidth:"30px",minWidth:"30px"}},o.default.createElement("input",{type:"single"===t?"radio":"checkbox",name:"row-select",checked:r.contains(e,n),onChange:()=>i({selected_rows:"single"===t?[e]:r.ifElse(r.contains(e),r.without([e]),r.append(e))(n)})}))}(i[c],u,s,l)]:[]],n))},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(3),i=a(n(13)),u=a(n(9));function a(e){return e&&e.__esModule?e:{default:e}}const s=[];function l(e,t,n,o,i){const u=r.map(([e])=>e.style,r.filter(([t,r])=>e([o,r],t.condition).evaluate(n),r.addIndex(r.map)((e,t)=>[e,t],t)));if(i&&u.push(i.style),u.length)return r.mergeAll(u)}function c(e,t,n,o,i,u){return r.addIndex(r.map)((u,a)=>r.addIndex(r.map)((n,r)=>{let l=o.find(e=>e.id===n.id),c=i.find(e=>e.id===n.id);return l=l&&l.styles||s,c=c&&c.style,t([a,r],e,l,u[n.id],n.id,c)},n),u)}t.default=(0,o.memoizeAll)(function(e){const t=(0,u.default)(e=>new i.default(e)),n=(0,u.default)(l);return(0,o.memoizeOne)(c).bind(void 0,t,n)})},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(3),i=a(n(13)),u=a(n(9));function a(e){return e&&e.__esModule?e:{default:e}}const s=r.addIndex(r.map),l=(0,o.memoizeOneFactory)((e,t,n,o,i,u,a)=>s((n,s)=>r.map(t=>{const l=o[s];let c=(a&&a[t.id]&&(a[t.id].length>l?a[t.id][l]:null)||t||{}).options,d=i.find(e=>e.id===t.id),p=u.find(e=>e.id===t.id);return d=d&&d.dropdowns||[],p=c||p&&p.dropdown,((e,t,n,o,i)=>{const u=[...i?[i]:[],...r.map(([e])=>e.dropdown,r.filter(([t,r])=>e([o,r],t.condition).evaluate(n),r.addIndex(r.map)((e,t)=>[e,t],t)))];return u.length?u.slice(-1)[0]:void 0})(e,d,n,t.id,p)},t),n));t.default=(0,o.memoizeOneFactory)(e=>{const t=(0,u.default)(e=>new i.default(e));return l().bind(void 0,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=p(n(1)),i=p(n(4)),u=p(n(64)),a=p(n(65)),s=n(8),l=p(n(12)),c=n(20),d=p(n(23));function p(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.toString(),u):t.delete(e.toString()),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,d.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.toString());return!t||!t.trim().length||this.isFragmentValid(e)}isFragmentValid(e){const t=this.ops.get(e.toString()),n=(0,l.default)(`${e} ${t}`),r=(0,d.default)(n);return r.valid&&this.isBasicFilter(n,r,!1)}createFilters(){var e=this.props;const t=e.columns,n=e.fillerColumns,i=e.filtering,l=e.filtering_settings,c=e.filtering_type,d=e.setFilter;if(!i)return[];this.updateOps(l);const p=r.range(0,n).map(e=>o.default.createElement("th",{key:`offset-${e}`})),f=c===s.FilteringType.Basic?r.addIndex(r.map)((e,t)=>o.default.createElement(u.default,{key:`column-${t}`,classes:`filter column-${t}`,isValid:this.isFragmentValidOrNull(e.id),property:e.id,setFilter:this.getEventHandler(this.onChange,e.id,this.ops,d),value:this.ops.get(e.id.toString())}),t):[o.default.createElement(a.default,{key:"column-0",classes:[],colSpan:t.length,value:"",setFilter:()=>void 0})];return[r.concat(p,f)]}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=u(r),i=u(n(24));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(24));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=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(1));function i(e){return 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}t.default=((e,t,n)=>{const o=e?r.map(t=>t.splice(0,r.reduceWhile(t=>t.count(e.cells++,e.count+=t.props.colSpan||1,e),{cells:0,count:0},t).cells),n):null,u=t?n.splice(0,t):null;return[[i(t&&o?o.splice(0,t):null),i(u)],[i(o),i(n)]]})},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(3);t.default=(0,o.memoizeOneFactory)((e,t,n,o)=>{switch(e){case!1:return{loadNext:()=>{},loadPrevious:()=>{}};case!0:case"fe":return function(e,t,n){return{loadNext:()=>{let o=Math.floor(n.length/e.page_size);e.current_page>=o||(e=r.merge(e,{current_page:e.current_page+1}),t({pagination_settings:e}))},loadPrevious:()=>{e.current_page<=0||(e=r.merge(e,{current_page:e.current_page-1}),t({pagination_settings:e}))}}}(t,n,o);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(3);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(3),i=n(7),u=s(i),a=s(n(13));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 d=l?e=>""===e||(0,i.defaultIsNully)(e):void 0;return"fe"!==o&&!0!==o||(e=(0,u.default)(e,s,d)),{dataframe:e,indices:r.map(e=>c.get(e),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(3);t.default=(0,o.memoizeOneFactory)(e=>r.filter(e=>!e.hidden,e))},function(e,t,n){var r=n(72);"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(11)(r,o);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(10)(!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(75);"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(11)(r,o);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(10)(!1)).push([e.i,".dash-spreadsheet.dash-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.dash-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 *,\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.dash-freeze-left,\n.dash-spreadsheet-inner.dash-freeze-top {\n overflow: hidden !important;\n}\n.dash-spreadsheet-inner.dash-freeze-left .row-0,\n.dash-spreadsheet-inner.dash-freeze-top .row-0 {\n display: flex;\n flex: 0 0 auto;\n flex-direction: row;\n}\n.dash-spreadsheet-inner.dash-freeze-left .row-1,\n.dash-spreadsheet-inner.dash-freeze-top .row-1 {\n display: flex;\n flex-direction: row;\n overflow: scroll;\n}\n.dash-spreadsheet-inner.dash-freeze-left .cell-0-0,\n.dash-spreadsheet-inner.dash-freeze-top .cell-0-0,\n.dash-spreadsheet-inner.dash-freeze-left .cell-1-0,\n.dash-spreadsheet-inner.dash-freeze-top .cell-1-0 {\n flex: 0 0 auto;\n left: 0;\n position: sticky;\n z-index: 400;\n}\n.dash-spreadsheet-inner.dash-freeze-left .cell-0-1,\n.dash-spreadsheet-inner.dash-freeze-top .cell-0-1 {\n z-index: 300;\n flex: 0 0 auto;\n}\n.dash-spreadsheet-inner.dash-freeze-left .cell-1-1,\n.dash-spreadsheet-inner.dash-freeze-top .cell-1-1 {\n flex: 0 0 auto;\n}\n.dash-spreadsheet-inner:not(.dash-freeze-top):not(.dash-freeze-left) .cell-1-1 tr td:first-of-type,\n.dash-spreadsheet-inner:not(.dash-freeze-top):not(.dash-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(.dash-freeze-top):not(.dash-freeze-left) .cell-1-1 tr:first-of-type td,\n.dash-spreadsheet-inner:not(.dash-freeze-top):not(.dash-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(.dash-freeze-top):not(.dash-freeze-left) .cell-1-1 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner:not(.dash-freeze-top):not(.dash-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(.dash-freeze-top).dash-freeze-left .cell-1-0 tr td:first-of-type,\n.dash-spreadsheet-inner:not(.dash-freeze-top).dash-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(.dash-freeze-top).dash-freeze-left .cell-1-0 tr:first-of-type td,\n.dash-spreadsheet-inner:not(.dash-freeze-top).dash-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(.dash-freeze-top).dash-freeze-left .cell-1-0 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner:not(.dash-freeze-top).dash-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(.dash-freeze-top).dash-freeze-left .cell-1-1 tr:first-of-type td,\n.dash-spreadsheet-inner:not(.dash-freeze-top).dash-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.dash-freeze-top:not(.dash-freeze-left) .cell-0-1 tr td:first-of-type,\n.dash-spreadsheet-inner.dash-freeze-top:not(.dash-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.dash-freeze-top:not(.dash-freeze-left) .cell-0-1 tr:first-of-type td,\n.dash-spreadsheet-inner.dash-freeze-top:not(.dash-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.dash-freeze-top:not(.dash-freeze-left) .cell-0-1 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner.dash-freeze-top:not(.dash-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.dash-freeze-top:not(.dash-freeze-left) .cell-1-1 tr td:first-of-type,\n.dash-spreadsheet-inner.dash-freeze-top:not(.dash-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.dash-freeze-top.dash-freeze-left .cell-0-0 tr td:first-of-type,\n.dash-spreadsheet-inner.dash-freeze-top.dash-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.dash-freeze-top.dash-freeze-left .cell-0-0 tr:first-of-type td,\n.dash-spreadsheet-inner.dash-freeze-top.dash-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.dash-freeze-top.dash-freeze-left .cell-0-0 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner.dash-freeze-top.dash-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.dash-freeze-top.dash-freeze-left .cell-0-1 tr:first-of-type td,\n.dash-spreadsheet-inner.dash-freeze-top.dash-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.dash-freeze-top.dash-freeze-left .cell-1-0 tr td:first-of-type,\n.dash-spreadsheet-inner.dash-freeze-top.dash-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 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 .dash-cell-value {\n height: 100%;\n width: 100%;\n}\n.dash-spreadsheet-inner td div.dash-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 .dash-delete-cell,\n.dash-spreadsheet-inner .dash-delete-header {\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 .dash-delete-cell:hover,\n.dash-spreadsheet-inner .dash-delete-header: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(77);"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(11)(r,o);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(10)(!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(79);"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(11)(r,o);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(10)(!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 f2b96cca5..ecd2d7690 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=58)}([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}),m=Array.isArray||function(e){return null!=e&&e.length>=0&&"[object Array]"===Object.prototype.toString.call(e)};function b(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(!m(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 T(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 R(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)&&m(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 me(e){return"[object Function]"===Object.prototype.toString.call(e)}var be=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 be(e.length,e)}),we=l(function(e,t){return me(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(m(e)){if(m(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&&me(e["fantasy-land/concat"]))return e["fantasy-land/concat"](t);if(null!=e&&me(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)})),mt=yt(function(e,t){return e+1},0),bt=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}(),Tt=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 Rt=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 Rt(e,t)}),function(e,t){return Tt(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),mn=l(function(e,t){return e in t}),bn=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||m(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}(),Tn=l(function(e,t){for(var n,r,o=new Pn,i=[],u=0;ut.length?(n=e,r=t):(n=t,r=e),Rn(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))}),mr=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}),br=g(function e(t,n,r){return mr(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 br(function(e,t,n){return t},e,t)}),wr=l(function(e,t){return br(function(e,t,n){return n},e,t)}),Er=g(function(e,t,n){return br(function(t,n,r){return e(n,r)},t,n)}),_r=g(function(e,t,n){return mr(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){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.memoizeOne=o,t.memoizeOneFactory=function(e){return()=>o(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,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=80)}([function(e,t,n){e.exports=n(30)()},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 d(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):p(u,f(e,o,n))}}var h=l(function(e,t){return 1===e?o(t):p(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,d(arguments,[t,r]));return t+=1,e},e.apply(this,o)})});function y(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 g=y(function(e,t,n){if(t>=n.length||t<-n.length)return n;var r=(t<0?n.length:0)+t,o=d(n);return o[r]=e(n[r]),o}),m=Array.isArray||function(e){return null!=e&&e.length>=0&&"[object Array]"===Object.prototype.toString.call(e)};function b(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(!m(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 p(e.length,function(){return e.apply(t,arguments)})});function M(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 R(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 R(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}),pe=y(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=y(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)&&m(r)){var u=[].concat(r);return u[o]=n,u}return pe(o,n,r)}),ye=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")}}),ge=o(function(e){return ye(2,e)});function me(e){return"[object Function]"===Object.prototype.toString.call(e)}var be=l(function(e,t){var n=h(e,t);return h(e,function(){return R(re,$(n,arguments[0]),Array.prototype.slice.call(arguments,1))})}),xe=o(function(e){return be(e.length,e)}),Ee=l(function(e,t){return me(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=[],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(m(e)){if(m(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&&me(e["fantasy-land/concat"]))return e["fantasy-land/concat"](t);if(null!=e&&me(e.concat))return e.concat(t);throw new TypeError(lt(e)+' does not have a method named "concat" or "fantasy-land/concat"')}),dt=o(function(e){return p(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(ye(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 pt(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))})}),yt=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}(),gt=f(4,[],x([],f(4,[],function(e,t,n,r){return new yt(e,t,n,r)}),function(e,t,n,r){return R(function(r,o){var i=n(o);return r[i]=e(z(i,r)?r[i]:t,o),r},{},r)})),mt=gt(function(e,t){return e+1},0),bt=c(-1),xt=l(function(e,t){return null==t||t!=t?e:t}),Et=y(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}(),Mt=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 Mt(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]}),Lt=Bt(-1),Vt=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=y(function(e,t,n){return Xe(e(t),e(n))}),Xt=y(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}(),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}),yn=l(function(e,t){return e>=t}),gn=l(z),mn=l(function(e,t){return e in t}),bn=Bt(0);function xn(e){return e}var En=o(xn),wn=y(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=gt(function(e,t){return t},null),Sn=l(function(e,t){return"function"!=typeof t.indexOf||m(t)?Ze(t,e,0):t.indexOf(e)}),Cn=Ne(0,-1),An=y(function(e,t,n){return ot(function(t){return He(e,t,n)},t)}),kn=y(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=y(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}(),Mn=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))}),Rn=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),pe(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 R(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=y(function(e,t,n){return e(n)>e(t)?n:t}),dr=J(c,0),pr=o(function(e){return dr(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 pr(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 p(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)}),yr=l(function(e,t){return In({},e,t)}),gr=o(function(e){return In.apply(null,[{}].concat(e))}),mr=y(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}),br=y(function e(t,n,r){return mr(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 br(function(e,t,n){return t},e,t)}),Er=l(function(e,t){return br(function(e,t,n){return n},e,t)}),wr=y(function(e,t,n){return br(function(t,n,r){return e(n,r)},t,n)}),_r=y(function(e,t,n){return mr(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 R(function(n,r){return e(n,r)?t(n,r):E(n)},n,r)}),ao=o(E),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})}),go=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;no(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(33);function o(e){let t,n=null;return(...o)=>(0,r.isEqualArgs)(n,o)?t:(n=o)&&(t=e(...o))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=t.DebugLevel=void 0;!function(e){e[e.DEBUG=6]="DEBUG",e[e.NONE=7]="NONE"}(r||(t.DebugLevel=r={}));var o=t.LogLevel=void 0;!function(e){e[e.TRACE=0]="TRACE",e[e.INFO=1]="INFO",e[e.WARNING=2]="WARNING",e[e.ERROR=3]="ERROR",e[e.FATAL=4]="FATAL",e[e.NONE=5]="NONE"}(o||(t.LogLevel=o={}));let i=[];i[o.TRACE]="trace",i[o.INFO]="info",i[o.WARNING]="warning",i[o.ERROR]="error",i[o.FATAL]="fatal",i[o.NONE]="none",i[r.DEBUG]="debug",i[r.NONE]="trace";let u,a=o.NONE,s=r.NONE;function l(e,t){if(e{};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;tvoid 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=m.bind(null,n,s,!1),o=m.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=s(r),i=s(n(0)),u=s(n(28));n(56);var a=s(n(3));function s(e){return e&&e.__esModule?e:{default:e}}class l extends r.Component{render(){var e=this.props;const t=e.filtering,n=e.sorting,r=e.pagination_mode;function i(e){return-1!==["be",!1].indexOf(e)}return function(e){return-1!==["fe",!0,!1].indexOf(e)}(r)||i(t)&&i(n)?o.default.createElement(u.default,this.props):(a.default.error("Invalid combination of filtering / sorting / pagination",t,n,r),o.default.createElement("div",null,"Invalid props combination"))}}t.default=l;const c=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:[]},p=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};l.defaultProps=c,l.propTypes=p},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=d(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(4),a=d(n(29)),s=d(n(45)),l=d(n(46)),c=d(n(47)),p=d(n(48));function d(e){return e&&e.__esModule?e:{default:e}}n(49),n(52),n(54);const f=/^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.visibleColumns=(0,p.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),this.updateDerivedProps()}componentWillReceiveProps(e){this.controlled=this.getControlledProps(e),this.updateDerivedProps()}shouldComponentUpdate(e){const t=this.props;return i.any(n=>!f.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.columns,r=e.dataframe,o=e.filtering,u=e.filtering_settings,a=e.pagination_mode,s=e.pagination_settings,l=e.sorting,c=e.sorting_settings,p=e.sorting_treat_empty_string_as_none,d=this.virtual(r,o,u,l,c,p),f=this.viewport(a,s,d.dataframe,d.indices),h=this.paginator(a,s,t,d.dataframe),v=this.visibleColumns(n);return i.mergeAll([e,{columns:v,paginator:h,setProps:t,viewport:f,virtual:d}])}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=b(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=b(n(12)),a=n(13),s=n(14),l=n(30),c=n(31),p=b(c),d=b(n(3)),f=n(4),h=b(n(10)),v=b(n(34)),g=b(n(37)),y=b(n(19)),m=b(n(41));function b(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.selected_cell,a=n.setProps,l=n.viewport;e.preventDefault(),this.$el.focus();const c=u.length>1,p=t.keyCode===s.KEY_CODES.ENTER||t.keyCode===s.KEY_CODES.TAB;if(c&&p)return void a({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 a({is_focused:!1,selected_cell:[e],active_cell:e})}let d=[],f=[];const h=x(i.uniq(i.pluck(0,u))),v=x(i.uniq(i.pluck(1,u))),g=h[0],y=v[0],m=h[h.length-1],b=v[v.length-1],w=t.keyCode===s.KEY_CODES.ARROW_DOWN||t.keyCode===s.KEY_CODES.ENTER,E=t.keyCode===s.KEY_CODES.ARROW_UP,_=t.keyCode===s.KEY_CODES.ARROW_RIGHT||t.keyCode===s.KEY_CODES.TAB,O=t.keyCode===s.KEY_CODES.ARROW_LEFT;w&&r[0]>g?f=v.map(e=>[g,e]):w&&m!==l.dataframe.length-1?d=v.map(e=>[m+1,e]):E&&r[0][m,e]):E&&g>0?d=v.map(e=>[g-1,e]):O&&r[1][e,b]):O&&y>0?d=h.map(e=>[e,y-1]):_&&r[1]>y?f=h.map(e=>[e,y]):_&&b+1<=o.length-1&&(d=h.map(e=>[e,b+1])),a({is_focused:!1,selected_cell:i.without(f,i.uniq(i.concat(d,u)))})}),this.deleteCell=(e=>{var t=this.props;const n=t.columns,r=t.dataframe,o=t.editable,u=t.selected_cell,s=t.setProps,l=t.viewport;e.preventDefault();let c=r;i.map(e=>[l.indices[e[0]],e[1]],u).forEach(e=>{(0,a.colIsEditable)(o,n[e[1]])&&(c=i.set(i.lensPath([e[0],n[e[1]].id]),"",c))}),s({dataframe:c})}),this.getNextCell=((e,{restrictToSelection:t,currentCell:n})=>{var r=this.props;const o=r.columns,u=r.selected_cell,a=r.viewport,c=e;switch(c.keyCode){case s.KEY_CODES.ARROW_LEFT:return t?(0,l.selectionCycle)([n[0],n[1]-1],u):[n[0],i.max(0,n[1]-1)];case s.KEY_CODES.ARROW_RIGHT:case s.KEY_CODES.TAB:return t?(0,l.selectionCycle)([n[0],n[1]+1],u):[n[0],i.min(o.length-1,n[1]+1)];case s.KEY_CODES.ARROW_UP:return t?(0,l.selectionCycle)([n[0]-1,n[1]],u):[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]],u):[i.min(a.dataframe.length-1,n[0]+1),n[1]];default:throw new Error(`Table.getNextCell: unknown navigation keycode ${c.keyCode}`)}}),this.onCopy=(e=>{var t=this.props;const n=t.columns,r=t.selected_cell,o=t.viewport;v.default.toClipboard(e,r,n,o.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.setProps,s=t.sorting_settings,l=t.viewport;if(!i)return;const c=v.default.fromClipboard(e,n,l.indices,r,o,!0,!s.length||!u.length);c&&a(c)}),this.loadNext=(()=>{this.props.paginator.loadNext()}),this.loadPrevious=(()=>{this.props.paginator.loadPrevious()}),this.applyStyle=((e,t,n)=>{t&&(this.stylesheet.setRule(".dash-spreadsheet-inner td.dash-delete-cell","width: 30px; max-width: 30px; min-width: 30px;"),this.stylesheet.setRule(".dash-spreadsheet-inner th.dash-delete-header","width: 30px; max-width: 30px; min-width: 30px;")),n&&(this.stylesheet.setRule(".dash-spreadsheet-inner td.dash-select-cell","width: 30px; max-width: 30px; min-width: 30px;"),this.stylesheet.setRule(".dash-spreadsheet-inner th.dash-select-header","width: 30px; max-width: 30px; min-width: 30px;")),i.addIndex(i.forEach)((e,t)=>{const n=u.default.unit(e.width||c.DEFAULT_CELL_WIDTH,"px"),r=u.default.unit(e.maxWidth||e.width||c.DEFAULT_CELL_WIDTH,"px"),o=u.default.unit(e.minWidth||e.width||c.DEFAULT_CELL_WIDTH,"px");this.stylesheet.setRule(`.dash-spreadsheet-inner td.column-${t}`,`width: ${n}; max-width: ${r}; min-width: ${o};`),this.stylesheet.setRule(`.dash-spreadsheet-inner th.column-${t}`,`width: ${n}; max-width: ${r}; min-width: ${o};`)},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 m.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,fillerColumns:r,filtering:this.props.filtering,filtering_settings:this.props.filtering_settings,filtering_type:this.props.filtering_type,id:this.props.id,setFilter:this.handleSetFilter}}),this.headerFactory=new p.default(()=>this.props),this.stylesheet=new u.default(`#${e.id}`),this.updateStylesheet()}get lexerResult(){const e=this.props.filtering_settings;return this.getLexerResult(e)}updateStylesheet(){const e=this.props.table_style;i.forEach(({selector:e,rule:t})=>{this.stylesheet.setRule(e,t)},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(){this.updateStylesheet()}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.pagination_mode,p=e.rowSorting;let f=[];if(a){f=[0];let e=0;u.forEach((t,n)=>{t!==u[e]&&(f.push(n),e=n)})}else f=o.range(0,t.length);return o.filter(e=>!!e,f.map((h,v)=>{const g=t[h],y=t.indexOf(g);let m;m=a?h===o.last(f)?u.length-h:f[v+1]-h:1;const b=t.indexOf(g),x=t.filter((e,t)=>t>=b&&ti.default.unit(e.width||d,"px")).join(" + ")})`,E=`calc(${x.map(e=>i.default.unit(e.maxWidth||e.width||d,"px")).join(" + ")})`,_=`calc(${x.map(e=>i.default.unit(e.minWidth||e.width||d,"px")).join(" + ")})`;return r.default.createElement("th",{key:`header-cell-${h}`,"data-dash-column":g.id,colSpan:m,className:"dash-header "+`column-${h} `+(h===t.length-1||h===o.last(f)?"cell--right-last ":""),style:y{(0,n.setProps)(l.editColumnName(e,t,n))}}(g,n,e)},"✎"):"",g.deletable&&"be"!==c&&"Boolean"===o.type(g.deletable)||"Number"===o.type(g.deletable)&&g.deletable===n?r.default.createElement("span",{className:"column-header--delete",onClick:function(e,t,n){return()=>{(0,n.setProps)(l.deleteColumn(e,t,n))}}(g,n,e)},"×"):"",r.default.createElement("span",null,u[h]))}))}createDeletableHeader(e){return e.row_deletable?r.default.createElement("th",{key:"delete",className:"expanded-row--empty-cell dash-delete-header",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 dash-select-header",style:{width:"30px",maxWidth:"30px",minWidth:"30px"}}):null}createHeaders(){const e=this.props;let t=e.columns,n=e.sorting,r=e.merge_duplicate_headers,i=e.n_fixed_columns,u=e.pagination_mode,a=e.row_deletable,s=e.row_selectable,l=e.setProps,c=e.sorting_settings,p=e.sorting_type;const d=(a?1:0)+(s?1:0);i=Math.max(0,i-d);const v=this.createDeletableHeader(e),g=this.createSelectableHeader(e),y=Math.max.apply(Math,t.map(f));let m;return m=1===y?[[...v?[v]:[],...g?[g]:[],...this.createHeaderCells({columns:t,columnRowIndex:0,labels:o.pluck("name",t),n_fixed_columns:i,pagination_mode:u,rowSorting:n,setProps:l,sorting_settings:c,sorting_type:p})]]:o.range(0,y).map(e=>[...v?[v]:[],...g?[g]:[],...this.createHeaderCells({columns:t,columnRowIndex:e,labels:t.map(t=>o.isNil(t.name)&&e===y-1?t.id:h(t,e)),n_fixed_columns:i,pagination_mode:u,rowSorting:!!n&&e+1===y,mergeCells:r&&e+1!==y,setProps:l,sorting_settings:c,sorting_type:p})])}}},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.editable,u=o.is_focused,a=o.selected_cell,s=o.setProps,l=this.isCellSelected(a,e,t);if(!i)return;if(u||n.preventDefault(),l)return;n.preventDefault();const c=[e,t],p={is_focused:!1,active_cell:c},d=r.uniq(r.pluck(0,a)).sort((e,t)=>e-t),f=r.uniq(r.pluck(1,a)).sort((e,t)=>e-t),h=d[0],v=f[0];n.shiftKey?p.selected_cell=r.xprod(r.range(r.min(h,c[0]),r.max(h,c[0])+1),r.range(r.min(v,c[1]),r.max(v,c[1])+1)):p.selected_cell=[c],s(p)}),this.handleDoubleClick=((e,t,n)=>{var r=this.props;const o=r.editable,i=r.is_focused,u=r.setProps;if(!o)return;const a=[e,t];i||(n.preventDefault(),u({selected_cell:[a],active_cell:a,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:"dash-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:"dash-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.selected_cell,v=e.viewport;return v.dataframe.map((e,g)=>{const y=v.indices[g],m=this.rowDeleteCell(y),b=this.rowSelectCell(y),x=n.map((v,m)=>{let b=(c&&c[v.id]&&(c[v.id].length>y?c[v.id][y]:null)||v||{}).options;const x=n.indexOf(v),w=[`column-${x}`];let E=u.find(e=>e.id===v.id),_=s.find(e=>e.id===v.id);E=E&&E.dropdowns,_=b||_&&_.dropdown;let O=a.find(e=>e.id===v.id),S=l.find(e=>e.id===v.id);return O=O&&O.styles,S=S&&S.style,o.default.createElement(i.default,{key:`${v.id}-${m}`,active:t[0]===g&&t[1]===x,classes:w,clearable:v.clearable,conditionalDropdowns:E,conditionalStyles:O,datum:e,editable:p,focused:!!f,onClick:this.getEventHandler(this.handleClick,g,x),onDoubleClick:this.getEventHandler(this.handleDoubleClick,g,x),onPaste:this.handlePaste,onChange:this.getEventHandler(this.handleChange,y,x),property:v.id,selected:r.contains([g,x],h),staticDropdown:_,staticStyle:S,tableId:d,type:v.type,value:e[v.id]})});return b&&x.unshift(b),m&&x.unshift(m),x})}}},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(4),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&&e.keyCode!==p.KEY_CODES.TAB||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["dash-cell",...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"],...["dash-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(){const e=this.props.property;return i.default.createElement("td",{ref:"td",tabIndex:-1,className:this.classes.join(" "),style:this.style,"data-dash-column":e},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 m}),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(5),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})},m=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,m=p;return f.map(function(e,p){var f=g&&g.some(function(t){return t[y]===e[y]}),b=e===t,x=u()(l,{"Select-option":!0,"is-selected":f,"is-focused":b,"is-disabled":e.disabled});return c.a.createElement(m,{className:x,focusOption:n,inputValue:r,instancePrefix:o,isDisabled:e.disabled,isFocused:b,isSelected:f,key:"option-"+p+"-"+e[y],onFocus:i,onSelect:s,option:e,optionIndex:p,ref:function(e){a(e,b)},removeValue:h,selectValue:v},d(e,p,r))})};m.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 b=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:b,onClick:b},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;tvoid 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{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(3)},function(e,t){e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=function(e,t){var n=e[1]||"",r=e[3];if(!r)return n;if(t&&"function"==typeof btoa){var o=function(e){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+" */"}(r),i=r.sources.map(function(e){return"/*# sourceURL="+r.sourceRoot+e+" */"});return[n].concat(i).concat([o]).join("\n")}return[n].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n}).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var r={},o=0;o=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),p(e,t),t}function v(e,t){Object.keys(t).forEach(function(n){e.setAttribute(n,t[n])})}function y(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=m.bind(null,n,s,!1),o=m.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),p(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=d(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(20))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=u(n(4)),o=u(n(12)),i=u(n(23));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(4));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.DEFAULT_CELL_WIDTH=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=h(n(1)),i=n(18),u=n(19),a=h(n(36)),s=h(n(40)),l=h(n(41)),c=h(n(42)),d=h(n(43)),p=h(n(44)),f=h(n(45));function h(e){return e&&e.__esModule?e:{default:e}}t.DEFAULT_CELL_WIDTH=200;t.default=class{constructor(e){this.propsFn=e,this.headerContent=(0,a.default)(),this.headerOperations=(0,p.default)(),this.headerWrappers=(0,f.default)()}get props(){return this.propsFn()}createHeaders(){const e=this.props;let t=e.columns,n=e.merge_duplicate_headers,a=e.n_fixed_columns,p=e.pagination_mode,f=e.row_deletable,h=e.row_selectable,v=e.setProps,y=e.sorting,g=e.sorting_settings,m=e.sorting_type;const b=(0,s.default)(a,f,h),x=(0,l.default)(t),E=(0,d.default)(t,x),w=(0,c.default)(t,E,n),_=r.zip(E,w),O=this.headerOperations(x,h,f),S=this.headerWrappers(t,_,n,b),C=this.headerContent(t,_,y,m,g,p,v,e),A=(0,u.matrixMap)(S,C,(e,t)=>o.default.cloneElement(e,{children:[t]}));return(0,i.arrayMap)(O,A,(e,t)=>Array.prototype.concat(e,t))}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.arrayMap=function(e,t,n){return r.addIndex(r.map)((e,r)=>n(e,t[r],r),e)},t.arrayMap3=function(e,t,n,o){return r.addIndex(r.map)((e,r)=>o(e,t[r],n[r],r),e)},t.arrayMapN=function(e,...t){const n=t.slice(0,1),o=t.slice(1);return r.addIndex(r.map)((t,n)=>e(n,[t,...o.map(e=>e[n])]),n)};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.matrixMap=function(e,t,n){const o=r.addIndex(r.map),i=r.addIndex(r.map);return o((e,r)=>i((e,o)=>n(e,t[r][o],r,o),e),e)},t.matrixMap3=function(e,t,n,o){const i=r.addIndex(r.map),u=r.addIndex(r.map);return i((e,r)=>u((e,i)=>o(e,t[r][i],n[r][i],r,i),e),e)},t.matrixMap4=function(e,t,n,o,i){const u=r.addIndex(r.map),a=r.addIndex(r.map);return u((e,r)=>a((e,u)=>i(e,t[r][u],n[r][u],o[r][u],r,u),e),e)},t.matrixMapN=function(e,...t){const n=t.slice(0,1),o=t.slice(1),i=r.addIndex(r.map),u=r.addIndex(r.map);return i((t,n)=>u((t,r)=>e(n,r,[t,...o.map(e=>e[n][r])]),t),n)};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.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(4));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}),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}),t.default=((e,t,n)=>e[0]===t&&e[1]===n)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e&&e.__esModule?e:{default:e}}(n(4));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});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(27)),o=u(n(4)),i=u(n(29));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(4),o=function(e){return e&&e.__esModule?e:{default:e}}(n(28));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(32));n(78);var a=s(n(4));function s(e){return e&&e.__esModule?e:{default:e}}class l extends r.Component{render(){var e=this.props;const t=e.filtering,n=e.sorting,r=e.pagination_mode;function i(e){return-1!==["be",!1].indexOf(e)}return function(e){return-1!==["fe",!0,!1].indexOf(e)}(r)||i(t)&&i(n)?o.default.createElement(u.default,this.props):(a.default.error("Invalid combination of filtering / sorting / pagination",t,n,r),o.default.createElement("div",null,"Invalid props combination"))}}t.default=l;const c=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:[]},d=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};l.defaultProps=c,l.propTypes=d},function(e,t,n){"use strict";var r=n(31);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(3),a=p(n(34)),s=p(n(67)),l=p(n(68)),c=p(n(69)),d=p(n(70));function p(e){return e&&e.__esModule?e:{default:e}}n(71),n(74),n(76);const f=/^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.visibleColumns=(0,d.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),this.updateDerivedProps()}componentWillReceiveProps(e){this.controlled=this.getControlledProps(e),this.updateDerivedProps()}shouldComponentUpdate(e){const t=this.props;return i.any(n=>!f.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.columns,r=e.dataframe,o=e.filtering,u=e.filtering_settings,a=e.pagination_mode,s=e.pagination_settings,l=e.sorting,c=e.sorting_settings,d=e.sorting_treat_empty_string_as_none,p=this.virtual(r,o,u,l,c,d),f=this.viewport(a,s,p.dataframe,p.indices),h=this.paginator(a,s,t,p.dataframe),v=this.visibleColumns(n);return i.mergeAll([e,{columns:v,paginator:h,setProps:t,viewport:f,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,d=this.filterCache(n),p=this.paginationCache(o),f=this.sortCache(u),h=!d.cached&&!d.first&&"be"===t||!p.cached&&!p.first&&"be"===r||!f.cached&&!f.first&&"be"===i;if(c&&l&&!h)return;const v=this.setProps;let y={};c||(y.derived_virtual_dataframe=s.dataframe,y.derived_virtual_indices=s.indices),l||(y.derived_viewport_dataframe=a.dataframe,y.derived_viewport_indices=a.indices),h&&(y.active_cell=void 0,y.selected_cell=void 0,y.selected_rows=void 0),setTimeout(()=>v(y),0)}get setProps(){return this.__setProps(this.props.setProps)}}},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=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(14)),a=n(15),s=n(16),l=n(35),c=n(17),d=m(n(4)),p=n(3),f=m(n(12)),h=m(n(46)),v=m(n(21)),y=m(n(49)),g=m(n(66));function m(e){return e&&e.__esModule?e:{default:e}}const b=i.sort((e,t)=>e-t);t.default=class extends r.PureComponent{constructor(e){super(e),this.getLexerResult=(0,p.memoizeOne)(f.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.forceHandleResize=(()=>this.handleResize(!0)),this.handleResize=((e=!1)=>{if(this.state.forcedResizeOnly&&!e)return;e||this.setState({forcedResizeOnly:!0});var t=this.refs;const n=t.r0c0,r=t.r0c1,o=t.r1c0,i=t.r1c1;let u=r.querySelectorAll("tr");n.querySelectorAll("tr").forEach((e,t)=>{const n=u[t];e.style.height=`${n.clientHeight}px`});let a=i.querySelectorAll("tr > th:first-of-type");o.querySelectorAll("tr > th:first-of-type").forEach((e,t)=>{const n=a[t].parentElement;e.parentElement.style.height=getComputedStyle(n).height});const s=i.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,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.selected_cell,a=n.setProps,l=n.viewport;e.preventDefault(),this.$el.focus();const c=u.length>1,d=t.keyCode===s.KEY_CODES.ENTER||t.keyCode===s.KEY_CODES.TAB;if(c&&d)return void a({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 a({is_focused:!1,selected_cell:[e],active_cell:e})}let p=[],f=[];const h=b(i.uniq(i.pluck(0,u))),v=b(i.uniq(i.pluck(1,u))),y=h[0],g=v[0],m=h[h.length-1],x=v[v.length-1],E=t.keyCode===s.KEY_CODES.ARROW_DOWN||t.keyCode===s.KEY_CODES.ENTER,w=t.keyCode===s.KEY_CODES.ARROW_UP,_=t.keyCode===s.KEY_CODES.ARROW_RIGHT||t.keyCode===s.KEY_CODES.TAB,O=t.keyCode===s.KEY_CODES.ARROW_LEFT;E&&r[0]>y?f=v.map(e=>[y,e]):E&&m!==l.dataframe.length-1?p=v.map(e=>[m+1,e]):w&&r[0][m,e]):w&&y>0?p=v.map(e=>[y-1,e]):O&&r[1][e,x]):O&&g>0?p=h.map(e=>[e,g-1]):_&&r[1]>g?f=h.map(e=>[e,g]):_&&x+1<=o.length-1&&(p=h.map(e=>[e,x+1])),a({is_focused:!1,selected_cell:i.without(f,i.uniq(i.concat(p,u)))})}),this.deleteCell=(e=>{var t=this.props;const n=t.columns,r=t.dataframe,o=t.editable,u=t.selected_cell,s=t.setProps,l=t.viewport;e.preventDefault();let c=r;i.map(e=>[l.indices[e[0]],e[1]],u).forEach(e=>{(0,a.colIsEditable)(o,n[e[1]])&&(c=i.set(i.lensPath([e[0],n[e[1]].id]),"",c))}),s({dataframe:c})}),this.getNextCell=((e,{restrictToSelection:t,currentCell:n})=>{var r=this.props;const o=r.columns,u=r.selected_cell,a=r.viewport,c=e;switch(c.keyCode){case s.KEY_CODES.ARROW_LEFT:return t?(0,l.selectionCycle)([n[0],n[1]-1],u):[n[0],i.max(0,n[1]-1)];case s.KEY_CODES.ARROW_RIGHT:case s.KEY_CODES.TAB:return t?(0,l.selectionCycle)([n[0],n[1]+1],u):[n[0],i.min(o.length-1,n[1]+1)];case s.KEY_CODES.ARROW_UP:return t?(0,l.selectionCycle)([n[0]-1,n[1]],u):[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]],u):[i.min(a.dataframe.length-1,n[0]+1),n[1]];default:throw new Error(`Table.getNextCell: unknown navigation keycode ${c.keyCode}`)}}),this.onCopy=(e=>{var t=this.props;const n=t.columns,r=t.selected_cell,o=t.viewport;h.default.toClipboard(e,r,n,o.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.setProps,s=t.sorting_settings,l=t.viewport;if(!i)return;const c=h.default.fromClipboard(e,n,l.indices,r,o,!0,!s.length||!u.length);c&&a(c)}),this.loadNext=(()=>{this.props.paginator.loadNext()}),this.loadPrevious=(()=>{this.props.paginator.loadPrevious()}),this.applyStyle=((e,t,n)=>{t&&(this.stylesheet.setRule(".dash-spreadsheet-inner td.dash-delete-cell","width: 30px; max-width: 30px; min-width: 30px;"),this.stylesheet.setRule(".dash-spreadsheet-inner th.dash-delete-header","width: 30px; max-width: 30px; min-width: 30px;")),n&&(this.stylesheet.setRule(".dash-spreadsheet-inner td.dash-select-cell","width: 30px; max-width: 30px; min-width: 30px;"),this.stylesheet.setRule(".dash-spreadsheet-inner th.dash-select-header","width: 30px; max-width: 30px; min-width: 30px;")),i.addIndex(i.forEach)((e,t)=>{const n=u.default.unit(e.width||c.DEFAULT_CELL_WIDTH,"px"),r=u.default.unit(e.maxWidth||e.width||c.DEFAULT_CELL_WIDTH,"px"),o=u.default.unit(e.minWidth||e.width||c.DEFAULT_CELL_WIDTH,"px");this.stylesheet.setRule(`.dash-spreadsheet-inner td.column-${t}`,`width: ${n}; max-width: ${r}; min-width: ${o};`),this.stylesheet.setRule(`.dash-spreadsheet-inner th.column-${t}`,`width: ${n}; max-width: ${r}; min-width: ${o};`)},e)}),this.handleDropdown=(()=>{const e=this.refs.r1c1;(0,v.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.state={forcedResizeOnly:!1},this.stylesheet=new u.default(`#${e.id}`),this.tableFn=(0,y.default)(()=>this.props),this.updateStylesheet()}get lexerResult(){const e=this.props.filtering_settings;return this.getLexerResult(e)}updateStylesheet(){const e=this.props.table_style;i.forEach(({selector:e,rule:t})=>{this.stylesheet.setRule(e,t)},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.forceHandleResize),document.addEventListener("paste",this.handlePaste),document.addEventListener("mousedown",this.handleClickOutside),this.handleResize()}componentWillUnmount(){window.removeEventListener("resize",this.forceHandleResize),document.removeEventListener("mousedown",this.handleClickOutside),document.removeEventListener("paste",this.handlePaste)}componentWillUpdate(){this.updateStylesheet()}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 d=c[0],p=c[1],f=[d,p];d>s&&(f[0]=u,f[1]=p+1>l?a:p+1);dl&&(f[1]=a,f[0]=d+1>s?u:d+1);pt.columnId===e,t);return n?n.direction:u.SortDirection.None}t.default=(0,i.memoizeOneFactory)(function(e,t,n,i,c,d,f,h){return r.addIndex(r.map)(([v,y],g)=>{const m=g===t.length-1;return r.addIndex(r.map)(t=>{const y=e[t],b=y.editable_name&&"Boolean"===r.type(y.editable_name)||"Number"===r.type(y.editable_name)&&y.editable_name===g,x="be"!==d&&(y.deletable&&"Boolean"===r.type(y.deletable)||"Number"===r.type(y.deletable)&&y.deletable===g);return o.default.createElement("div",null,n&&m?o.default.createElement("span",{className:"sort",onClick:function(e,t,n,r){return()=>{let o;switch(p(e,t)){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"===n?s.default:a.default;r({sorting_settings:i(t,{columnId:e,direction:o})})}}(y.id,c,i,f)},function(e,t){switch(p(e,t)){case u.SortDirection.Descending:return"↑";case u.SortDirection.Ascending:return"↓";case u.SortDirection.None:default:return"↕"}}(y.id,c)):"",b?o.default.createElement("span",{className:"column-header--edit",onClick:function(e,t,n,r,o){return()=>{r(l.editColumnName(e,t,n,o))}}(y,e,g,f,h)},"✎"):"",x?o.default.createElement("span",{className:"column-header--delete",onClick:function(e,t,n,r,o){return()=>{r(l.deleteColumn(e,t,n,o))}}(y,e,g,f,h)},"×"):"",o.default.createElement("span",null,v[t]))},y)},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=function(e){return e&&e.__esModule?e:{default:e}}(n(4)),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(4)),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}),t.deleteColumn=function(e,t,n,i){const u=i.dataframe;var a=o(e,t,n);const s=a.groupIndexFirst,l=a.groupIndexLast,c=r.slice(s,l+1,r.pluck("id",t));return{columns:r.remove(s,1+l-s,t),dataframe:r.map(r.omit(c),u),active_cell:[],end_cell:[],selected_cell:[],start_cell:[0]}},t.editColumnName=function(e,t,n,i){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(t);return r.range(a,s+1).map(e=>{let o;o="Array"===r.type(t[e].name)?[e,"name",n]:[e,"name"],c=r.set(r.lensPath(o),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 r=t.indexOf(e);if(!e.name||Array.isArray(e.name)&&e.name.lengthn&&r.name[n]===e.name[n]))break;o=i}return{groupIndexFirst:r,groupIndexLast:o}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=((e,t,n)=>{const r=(t?1:0)+(n?1:0);return Math.max(0,e-r)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=e=>Array.isArray(e.name)?e.name.length:1;t.default=(e=>Math.max(...e.map(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));t.default=((e,t,n)=>r.map(t=>{if(n){let e=[0],n=0;return t.forEach((r,o)=>{r!==t[n]&&(e.push(o),n=o)}),e}return r.range(0,e.length)},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));t.default=((e,t)=>r.map(n=>e.map(e=>r.isNil(e.name)&&n===t-1?e.id:((e,t)=>Array.isArray(e.name)?e.name[t]:e.name)(e,n)),r.range(0,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=function(e){return e&&e.__esModule?e:{default:e}}(n(1)),i=n(3);t.default=(0,i.memoizeOneFactory)((e,t,n)=>r.addIndex(r.map)(()=>[...n?[o.default.createElement("th",{key:"delete",className:"expanded-row--empty-cell dash-delete-header",style:{width:"30px",maxWidth:"30px",minWidth:"30px"}})]:[],...t?[o.default.createElement("th",{key:"select",className:"expanded-row--empty-cell dash-select-header",style:{width:"30px",maxWidth:"30px",minWidth:"30px"}})]:[]],r.range(0,e)))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_CELL_WIDTH=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=a(n(1)),i=n(3),u=a(n(14));function a(e){return e&&e.__esModule?e:{default:e}}const s=t.DEFAULT_CELL_WIDTH=200;t.default=(0,i.memoizeOneFactory)(function(e,t,n,i){return r.map(([t,a])=>r.addIndex(r.map)((l,c)=>{const d=e[l];let p;p=n?l===r.last(a)?t.length-l:a[c+1]-l:1;const f=e.filter((e,t)=>t>=l&&tu.default.unit(e.width||s,"px")).join(" + ")})`,v=`calc(${f.map(e=>u.default.unit(e.maxWidth||e.width||s,"px")).join(" + ")})`,y=`calc(${f.map(e=>u.default.unit(e.minWidth||e.width||s,"px")).join(" + ")})`;return o.default.createElement("th",{key:`header-cell-${l}`,"data-dash-column":d.id,colSpan:p,className:"dash-header "+`column-${l} `+(l===e.length-1||l===r.last(a)?"cell--right-last ":""),style:le-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))),d=o.default.prototype.stringify(c);u.default.trace("TableClipboard -- set clipboard data: ",d),i.default.set(e,d)}static fromClipboard(e,t,n,l,c,d=!0,p=!0){const f=i.default.get(e);if(u.default.trace("TableClipboard -- get clipboard data: ",f),!f)return;p||u.default.debug("Clipboard -- Sorting or filtering active, do not create new rows"),d||u.default.debug("Clipboard -- Do not create new columns");const h=o.default.prototype.parse(f);let v=c;const y=l;if(d&&h[0].length+t[1]>=l.length)for(let e=l.length;et[`Column ${e}`]="");const g=n[t[0]];if(p&&h.length+g>=c.length){const e={};l.forEach(t=>e[t.id]=""),v=r.concat(v,r.repeat(e,h.length+g-c.length))}return h.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=y[l];c&&(0,a.colIsEditable)(!0,c)&&(v=r.set(r.lensPath([s,c.id]),e,v))})),{dataframe:v,columns:y}}}},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=u(n(50)),o=u(n(63)),i=u(n(17));function u(e){return e&&e.__esModule?e:{default:e}}const a=(e,t)=>e({filtering_settings:t});t.default=(e=>{const t=new r.default(e),n=new o.default(()=>(function(e){var t=e();const n=t.columns,r=t.filtering,o=t.filtering_settings,i=t.filtering_type,u=t.id,s=t.row_deletable,l=t.row_selectable,c=t.setProps;return{columns:n,fillerColumns:(s?1:0)+(l?1:0),filtering:r,filtering_settings:o,filtering_type:i,id:u,setFilter:a.bind(void 0,c)}})(e)),u=new i.default(e);return function(e,t,n){const r=[];return r.push(...n.createHeaders()),r.push(...t.createFilters()),r.push(...e.createCells()),r}.bind(void 0,t,n,u)})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=d(n(1)),o=d(n(51)),i=d(n(54)),u=d(n(60)),a=d(n(61)),s=d(n(62)),l=n(19),c=n(18);function d(e){return e&&e.__esModule?e:{default:e}}t.default=class{constructor(e,t=(0,a.default)(e().id),n=(0,o.default)(e().id)){this.propsFn=e,this.cellStyles=t,this.cellWrappers=n,this.cellInputs=(0,i.default)(),this.cellOperations=(0,u.default)(),this.cellDropdowns=(0,s.default)()}get props(){return this.propsFn()}createCells(){var e=this.props;const t=e.active_cell,n=e.columns,o=e.column_conditional_dropdowns,i=e.column_conditional_styles,u=e.column_static_dropdown,a=e.column_static_style,s=e.dataframe,d=e.dropdown_properties,p=e.editable,f=e.id,h=e.is_focused,v=e.row_deletable,y=e.row_selectable,g=e.selected_cell,m=e.selected_rows,b=e.setProps,x=e.viewport,E=this.cellOperations(t,s,x.dataframe,x.indices,y,v,m,b),w=this.cellWrappers(t,n,x.dataframe,p,g),_=this.cellStyles(n,i,a,x.dataframe),O=this.cellDropdowns(f)(n,x.dataframe,x.indices,o,u,d),S=this.cellInputs(t,n,x.dataframe,p,!!h,f,O,this.propsFn),C=(0,l.matrixMap3)(w,_,S,(e,t,n)=>r.default.cloneElement(e,{children:[n],style:t}));return(0,c.arrayMap)(E,C,(e,t)=>Array.prototype.concat(e,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=d(n(1)),i=n(3),u=n(8),a=d(n(52)),s=d(n(22)),l=d(n(53)),c=d(n(9));function d(e){return e&&e.__esModule?e:{default:e}}function p(e,t,n,o,i,a){return r.addIndex(r.map)((o,c)=>r.addIndex(r.map)((n,r)=>{const o=(0,s.default)(t,c,r),d=(0,l.default)(a,c,r),p="dash-cell"+` column-${r}`+(o?" focused":"")+(i?"":" cell--uneditable")+(d?" cell--selected":"")+(n.type===u.ColumnType.Dropdown?" dropdown":"");return e([c,r],o,p,r,n.id)},n),o)}t.default=(0,i.memoizeAll)(function(e){const t=(0,c.default)((e,t,n,r)=>o.default.createElement(a.default,{active:e,classes:t,key:`column-${n}`,property:r}));return(0,i.memoizeOne)(p).bind(void 0,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=n(1),i=function(e){return e&&e.__esModule?e:{default:e}}(o);const u=/^children$/;t.default=class extends o.Component{constructor(e){super(e)}get propsWithDefaults(){return this.props}render(){var e=this.propsWithDefaults;const t=e.classes,n=e.property,r=e.style;return i.default.createElement("td",{ref:"td",children:this.props.children,tabIndex:-1,className:t,style:r,"data-dash-column":n})}shouldComponentUpdate(e){const t=this.props,n=this.getChildProps(t),o=this.getChildProps(e);return r.any(n=>!u.test(n)&&t[n]!==e[n],r.keysIn(t))||r.any(e=>n[e]!==o[e],r.keysIn(n))}getChildProps(e){return e&&e.children&&e.children[0]&&e.children[0].props}}},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));t.default=((e,t,n)=>r.contains([t,n],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=l(n(1)),i=n(3),u=l(n(55)),a=l(n(57)),s=l(n(22));function l(e){return e&&e.__esModule?e:{default:e}}const c=r.addIndex(r.map),d=r.addIndex(r.map),p=(0,a.default)();t.default=(0,i.memoizeOneFactory)((e,t,n,r,i,a,l,f)=>c((n,c)=>d((t,d)=>{const h=(0,s.default)(e,c,d),v=l[c][d],y=p(f)(c,d);return o.default.createElement(u.default,Object.assign({key:`column-${d}`,active:h,clearable:t.clearable,datum:n,dropdown:v,editable:r,focused:i,property:t.id,tableId:a,type:t.type,value:n[t.id]},y))},t),n))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(1),o=l(r),i=l(n(56)),u=n(16),a=n(8),s=l(n(21));function l(e){return e&&e.__esModule?e:{default:e}}class c extends r.PureComponent{constructor(e){super(e),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!==u.KEY_CODES.ENTER&&e.keyCode!==u.KEY_CODES.TAB||this.propagateChange()}),this.handleOpenDropdown=(()=>{var e=this.refs;const t=e.dropdown,n=e.td;(0,s.default)(t.wrapper.querySelector(".Select-menu-outer"),n)}),this.state={value:e.value}}get propsWithDefaults(){return this.props}renderDropdown(){var e=this.propsWithDefaults;const t=e.clearable,n=e.dropdown,r=e.onChange,u=e.value;return n?o.default.createElement(i.default,{ref:"dropdown",clearable:t,onChange:e=>{r(e?e.value:e)},onOpen:this.handleOpenDropdown,options:n,placeholder:"",value:u}):this.renderValue()}renderInput(){var e=this.propsWithDefaults;const t=e.active,n=e.focused,r=e.onClick,i=e.onDoubleClick,u=e.onPaste,a={className:[...t?["input-active"]:[],...n?["focused"]:["unfocused"],...["dash-cell-value"]].join(" "),onClick:r,onDoubleClick:i};return t||this.state.value!==this.props.value?o.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 o.default.createElement("div",Object.assign({},e),t)}render(){switch(this.props.type){case a.ColumnType.Text:case a.ColumnType.Numeric:return this.renderInput();case a.ColumnType.Dropdown:return this.renderDropdown();default:return this.renderValue()}}componentWillReceiveProps(e){const t=e.value;this.state.value!==t&&this.setState({value:t})}componentDidUpdate(){if(!this.propsWithDefaults.active)return;const e=this.refs.textInput,t=this.refs.dropdown;e&&document.activeElement!==e&&(e.focus(),e.setSelectionRange(0,e.value?e.value.length:0)),t&&document.activeElement!==t&&t.wrapper.parentElement.focus()}}t.default=c,c.defaultProps={conditionalDropdowns:[],type:a.ColumnType.Text}},function(e,t,n){"use strict";n.r(t),n.d(t,"Async",function(){return L}),n.d(t,"AsyncCreatable",function(){return Y}),n.d(t,"Creatable",function(){return V}),n.d(t,"Value",function(){return F}),n.d(t,"Option",function(){return k}),n.d(t,"defaultMenuRenderer",function(){return m}),n.d(t,"defaultArrowRenderer",function(){return p}),n.d(t,"defaultClearRenderer",function(){return f}),n.d(t,"defaultFilterOptions",function(){return g});var r=n(25),o=n.n(r),i=n(5),u=n.n(i),a=n(0),s=n.n(a),l=n(1),c=n.n(l),d=n(6),p=function(e){var t=e.onMouseDown;return c.a.createElement("span",{className:"Select-arrow",onMouseDown:t})};p.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=y(o),a=y(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})},m=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,d=e.optionComponent,p=e.optionRenderer,f=e.options,h=e.removeValue,v=e.selectValue,y=e.valueArray,g=e.valueKey,m=d;return f.map(function(e,d){var f=y&&y.some(function(t){return t[g]===e[g]}),b=e===t,x=u()(l,{"Select-option":!0,"is-selected":f,"is-focused":b,"is-disabled":e.disabled});return c.a.createElement(m,{className:x,focusOption:n,inputValue:r,instancePrefix:o,isDisabled:e.disabled,isFocused:b,isSelected:f,key:"option-"+d+"-"+e[g],onFocus:i,onSelect:s,option:e,optionIndex:d,ref:function(e){a(e,b)},removeValue:h,selectValue:v},p(e,d,r))})};m.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 b=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),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")}),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:b,onClick:b},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){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: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]),T=s.a.oneOfType([s.a.string,s.a.number]),R=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(4)},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.toString(),u):t.delete(e.toString()),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.toString());return!t||!t.trim().length||this.isFragmentValid(e)}isFragmentValid(e){const t=this.ops.get(e.toString()),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.fillerColumns,i=e.filtering,l=e.filtering_settings,c=e.filtering_type,p=e.setFilter;if(!i)return[];this.updateOps(l);const d=r.range(0,n).map(e=>o.default.createElement("th",{key:`offset-${e}`})),f=c===s.FilteringType.Basic?r.addIndex(r.map)((e,t)=>o.default.createElement(u.default,{key:`column-${t}`,classes:`filter column-${t}`,isValid:this.isFragmentValidOrNull(e.id),property:e.id,setFilter:this.getEventHandler(this.onChange,e.id,this.ops,p),value:this.ops.get(e.id.toString())}),t):[o.default.createElement(a.default,{key:"column-0",classes:[],colSpan:t.length,value:"",setFilter:()=>void 0})];return[r.concat(d,f)]}}},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=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(4);t.default=(0,o.memoizeOneFactory)((e,t,n,o)=>{switch(e){case!1:return{loadNext:()=>{},loadPrevious:()=>{}};case!0:case"fe":return function(e,t,n){return{loadNext:()=>{let o=Math.floor(n.length/e.page_size);e.current_page>=o||(e=r.merge(e,{current_page:e.current_page+1}),t({pagination_settings:e}))},loadPrevious:()=>{e.current_page<=0||(e=r.merge(e,{current_page:e.current_page-1}),t({pagination_settings:e}))}}}(t,n,o);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(4);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(4),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){"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(4);t.default=(0,o.memoizeOneFactory)(e=>r.filter(e=>!e.hidden,e))},function(e,t,n){var r=n(50);"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(53);"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.dash-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.dash-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 *,\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.dash-freeze-left,\n.dash-spreadsheet-inner.dash-freeze-top {\n overflow: hidden !important;\n}\n.dash-spreadsheet-inner.dash-freeze-left .row-0,\n.dash-spreadsheet-inner.dash-freeze-top .row-0 {\n display: flex;\n flex: 0 0 auto;\n flex-direction: row;\n}\n.dash-spreadsheet-inner.dash-freeze-left .row-1,\n.dash-spreadsheet-inner.dash-freeze-top .row-1 {\n display: flex;\n flex-direction: row;\n overflow: scroll;\n}\n.dash-spreadsheet-inner.dash-freeze-left .cell-0-0,\n.dash-spreadsheet-inner.dash-freeze-top .cell-0-0,\n.dash-spreadsheet-inner.dash-freeze-left .cell-1-0,\n.dash-spreadsheet-inner.dash-freeze-top .cell-1-0 {\n flex: 0 0 auto;\n left: 0;\n position: sticky;\n z-index: 400;\n}\n.dash-spreadsheet-inner.dash-freeze-left .cell-0-1,\n.dash-spreadsheet-inner.dash-freeze-top .cell-0-1 {\n z-index: 300;\n flex: 0 0 auto;\n}\n.dash-spreadsheet-inner.dash-freeze-left .cell-1-1,\n.dash-spreadsheet-inner.dash-freeze-top .cell-1-1 {\n flex: 0 0 auto;\n}\n.dash-spreadsheet-inner:not(.dash-freeze-top):not(.dash-freeze-left) .cell-1-1 tr td:first-of-type,\n.dash-spreadsheet-inner:not(.dash-freeze-top):not(.dash-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(.dash-freeze-top):not(.dash-freeze-left) .cell-1-1 tr:first-of-type td,\n.dash-spreadsheet-inner:not(.dash-freeze-top):not(.dash-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(.dash-freeze-top):not(.dash-freeze-left) .cell-1-1 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner:not(.dash-freeze-top):not(.dash-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(.dash-freeze-top).dash-freeze-left .cell-1-0 tr td:first-of-type,\n.dash-spreadsheet-inner:not(.dash-freeze-top).dash-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(.dash-freeze-top).dash-freeze-left .cell-1-0 tr:first-of-type td,\n.dash-spreadsheet-inner:not(.dash-freeze-top).dash-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(.dash-freeze-top).dash-freeze-left .cell-1-0 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner:not(.dash-freeze-top).dash-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(.dash-freeze-top).dash-freeze-left .cell-1-1 tr:first-of-type td,\n.dash-spreadsheet-inner:not(.dash-freeze-top).dash-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.dash-freeze-top:not(.dash-freeze-left) .cell-0-1 tr td:first-of-type,\n.dash-spreadsheet-inner.dash-freeze-top:not(.dash-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.dash-freeze-top:not(.dash-freeze-left) .cell-0-1 tr:first-of-type td,\n.dash-spreadsheet-inner.dash-freeze-top:not(.dash-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.dash-freeze-top:not(.dash-freeze-left) .cell-0-1 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner.dash-freeze-top:not(.dash-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.dash-freeze-top:not(.dash-freeze-left) .cell-1-1 tr td:first-of-type,\n.dash-spreadsheet-inner.dash-freeze-top:not(.dash-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.dash-freeze-top.dash-freeze-left .cell-0-0 tr td:first-of-type,\n.dash-spreadsheet-inner.dash-freeze-top.dash-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.dash-freeze-top.dash-freeze-left .cell-0-0 tr:first-of-type td,\n.dash-spreadsheet-inner.dash-freeze-top.dash-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.dash-freeze-top.dash-freeze-left .cell-0-0 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner.dash-freeze-top.dash-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.dash-freeze-top.dash-freeze-left .cell-0-1 tr:first-of-type td,\n.dash-spreadsheet-inner.dash-freeze-top.dash-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.dash-freeze-top.dash-freeze-left .cell-1-0 tr td:first-of-type,\n.dash-spreadsheet-inner.dash-freeze-top.dash-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 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 .dash-cell-value {\n height: 100%;\n width: 100%;\n}\n.dash-spreadsheet-inner td div.dash-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 .dash-delete-cell,\n.dash-spreadsheet-inner .dash-delete-header {\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 .dash-delete-cell:hover,\n.dash-spreadsheet-inner .dash-delete-header: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(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 .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(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,"/*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(59),e.exports=n(62)},function(e,t,n){"use strict";var r=s(n(1)),o=s(n(6)),i=s(n(60)),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.dash-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]),M=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||ip.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=R(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 d=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(d);if(this.props.disabled||!this.props.searchable){var p=C(this.props.inputProps,[]),f=u()(_({},this._instancePrefix+"-list",a));return c.a.createElement("div",O({},p,{"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},d,{minWidth:"5"})):c.a.createElement("div",{className:i,key:"input-wrap",style:{display:"inline-block"}},c.a.createElement("input",O({id:this.props.id},d)))}},{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:g;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 t=(0,i.default)()(e);return(...e)=>{const n=e[0],r=e[1];return{onChange:t(o.Handler.Change,n,r),onClick:t(o.Handler.Click,n,r),onDoubleClick:t(o.Handler.DoubleClick,n,r),onPaste:t(o.Handler.Paste,n,r)}}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Handler=void 0;var r=n(3),o=function(e){return e&&e.__esModule?e:{default:e}}(n(9)),i=n(59);var u=t.Handler=void 0;!function(e){e.Change="change",e.Click="click",e.DoubleClick="doubleclick",e.Paste="paste"}(u||(t.Handler=u={}));t.default=(0,r.memoizeOneFactory)(e=>{const t=(0,o.default)((...e)=>{let t=e[0],n=e[1],r=e[2];return t&&t.bind(void 0,n,r)}),n=new Map([[u.Change,i.handleChange.bind(void 0,e)],[u.Click,i.handleClick.bind(void 0,e)],[u.DoubleClick,i.handleDoubleClick.bind(void 0,e)],[u.Paste,i.handlePaste.bind(void 0,e)]]);return(...e)=>{let r=e[0],o=e[1],i=e[2];return t(e,n.get(r),o,i)}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.handlePaste=t.handleChange=t.handleDoubleClick=t.handleClick=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));t.handleClick=((e,t,n,o)=>{var i=e();const u=i.editable,a=i.is_focused,s=i.selected_cell,l=i.setProps,c=function(e,t,n){return e&&r.contains([t,n],e)}(s,t,n);if(!u)return;if(a||o.preventDefault(),c)return;o.preventDefault();const d=[t,n],p={is_focused:!1,active_cell:d},f=r.uniq(r.pluck(0,s)).sort((e,t)=>e-t),h=r.uniq(r.pluck(1,s)).sort((e,t)=>e-t),v=f[0],y=h[0];o.shiftKey?p.selected_cell=r.xprod(r.range(r.min(v,d[0]),r.max(v,d[0])+1),r.range(r.min(y,d[1]),r.max(y,d[1])+1)):p.selected_cell=[d],l(p)}),t.handleDoubleClick=((e,t,n,r)=>{var o=e();const i=o.editable,u=o.is_focused,a=o.setProps;if(!i)return;const s=[t,n];if(!u){r.preventDefault(),a({selected_cell:[s],active_cell:s,is_focused:!0})}}),t.handleChange=((e,t,n,o)=>{var i=e();const u=i.columns,a=i.dataframe,s=i.editable,l=i.setProps,c=i.viewport,d=u[n],p=c.indices[t];s&&l({dataframe:r.set(r.lensPath([p,d.id]),o,a)})}),t.handlePaste=((e,t,n,r)=>{r.preventDefault()})},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(1)),i=n(3);t.default=(0,i.memoizeOneFactory)((e,t,n,i,u,a,s,l)=>r.addIndex(r.map)((n,c)=>[...a?[function(e,t){return o.default.createElement("td",{key:"delete",className:"dash-delete-cell",onClick:()=>e(t()),style:{width:"30px",maxWidth:"30px",minWidth:"30px"}},"×")}(l,function(e,t,n,o){const i={dataframe:r.remove(e,1,n)};return r.is(Array,t)&&t[0]===e&&(i.active_cell=[]),r.is(Array,o)&&r.contains(e,o)&&(i.selected_rows=r.without([e],o)),i}.bind(void 0,i[c],e,t,s))]:[],...u?[function(e,t,n,i){return o.default.createElement("td",{key:"select",className:"dash-select-cell",style:{width:"30px",maxWidth:"30px",minWidth:"30px"}},o.default.createElement("input",{type:"single"===t?"radio":"checkbox",name:"row-select",checked:r.contains(e,n),onChange:()=>i({selected_rows:"single"===t?[e]:r.ifElse(r.contains(e),r.without([e]),r.append(e))(n)})}))}(i[c],u,s,l)]:[]],n))},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(3),i=a(n(13)),u=a(n(9));function a(e){return e&&e.__esModule?e:{default:e}}const s=[];function l(e,t,n,o,i){const u=r.map(([e])=>e.style,r.filter(([t,r])=>e([o,r],t.condition).evaluate(n),r.addIndex(r.map)((e,t)=>[e,t],t)));if(i&&u.push(i.style),u.length)return r.mergeAll(u)}function c(e,t,n,o,i,u){return r.addIndex(r.map)((u,a)=>r.addIndex(r.map)((n,r)=>{let l=o.find(e=>e.id===n.id),c=i.find(e=>e.id===n.id);return l=l&&l.styles||s,c=c&&c.style,t([a,r],e,l,u[n.id],n.id,c)},n),u)}t.default=(0,o.memoizeAll)(function(e){const t=(0,u.default)(e=>new i.default(e)),n=(0,u.default)(l);return(0,o.memoizeOne)(c).bind(void 0,t,n)})},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(3),i=a(n(13)),u=a(n(9));function a(e){return e&&e.__esModule?e:{default:e}}const s=r.addIndex(r.map),l=(0,o.memoizeOneFactory)((e,t,n,o,i,u,a)=>s((n,s)=>r.map(t=>{const l=o[s];let c=(a&&a[t.id]&&(a[t.id].length>l?a[t.id][l]:null)||t||{}).options,d=i.find(e=>e.id===t.id),p=u.find(e=>e.id===t.id);return d=d&&d.dropdowns||[],p=c||p&&p.dropdown,((e,t,n,o,i)=>{const u=[...i?[i]:[],...r.map(([e])=>e.dropdown,r.filter(([t,r])=>e([o,r],t.condition).evaluate(n),r.addIndex(r.map)((e,t)=>[e,t],t)))];return u.length?u.slice(-1)[0]:void 0})(e,d,n,t.id,p)},t),n));t.default=(0,o.memoizeOneFactory)(e=>{const t=(0,u.default)(e=>new i.default(e));return l().bind(void 0,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=p(n(1)),i=p(n(4)),u=p(n(64)),a=p(n(65)),s=n(8),l=p(n(12)),c=n(20),d=p(n(23));function p(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.toString(),u):t.delete(e.toString()),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,d.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.toString());return!t||!t.trim().length||this.isFragmentValid(e)}isFragmentValid(e){const t=this.ops.get(e.toString()),n=(0,l.default)(`${e} ${t}`),r=(0,d.default)(n);return r.valid&&this.isBasicFilter(n,r,!1)}createFilters(){var e=this.props;const t=e.columns,n=e.fillerColumns,i=e.filtering,l=e.filtering_settings,c=e.filtering_type,d=e.setFilter;if(!i)return[];this.updateOps(l);const p=r.range(0,n).map(e=>o.default.createElement("th",{key:`offset-${e}`})),f=c===s.FilteringType.Basic?r.addIndex(r.map)((e,t)=>o.default.createElement(u.default,{key:`column-${t}`,classes:`filter column-${t}`,isValid:this.isFragmentValidOrNull(e.id),property:e.id,setFilter:this.getEventHandler(this.onChange,e.id,this.ops,d),value:this.ops.get(e.id.toString())}),t):[o.default.createElement(a.default,{key:"column-0",classes:[],colSpan:t.length,value:"",setFilter:()=>void 0})];return[r.concat(p,f)]}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=u(r),i=u(n(24));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(24));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=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(1));function i(e){return 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}t.default=((e,t,n)=>{const o=e?r.map(t=>t.splice(0,r.reduceWhile(t=>t.count(e.cells++,e.count+=t.props.colSpan||1,e),{cells:0,count:0},t).cells),n):null,u=t?n.splice(0,t):null;return[[i(t&&o?o.splice(0,t):null),i(u)],[i(o),i(n)]]})},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(3);t.default=(0,o.memoizeOneFactory)((e,t,n,o)=>{switch(e){case!1:return{loadNext:()=>{},loadPrevious:()=>{}};case!0:case"fe":return function(e,t,n){return{loadNext:()=>{let o=Math.floor(n.length/e.page_size);e.current_page>=o||(e=r.merge(e,{current_page:e.current_page+1}),t({pagination_settings:e}))},loadPrevious:()=>{e.current_page<=0||(e=r.merge(e,{current_page:e.current_page-1}),t({pagination_settings:e}))}}}(t,n,o);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(3);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(3),i=n(7),u=s(i),a=s(n(13));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 d=l?e=>""===e||(0,i.defaultIsNully)(e):void 0;return"fe"!==o&&!0!==o||(e=(0,u.default)(e,s,d)),{dataframe:e,indices:r.map(e=>c.get(e),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(3);t.default=(0,o.memoizeOneFactory)(e=>r.filter(e=>!e.hidden,e))},function(e,t,n){var r=n(72);"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(11)(r,o);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(10)(!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(75);"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(11)(r,o);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(10)(!1)).push([e.i,".dash-spreadsheet.dash-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.dash-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 *,\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.dash-freeze-left,\n.dash-spreadsheet-inner.dash-freeze-top {\n overflow: hidden !important;\n}\n.dash-spreadsheet-inner.dash-freeze-left .row-0,\n.dash-spreadsheet-inner.dash-freeze-top .row-0 {\n display: flex;\n flex: 0 0 auto;\n flex-direction: row;\n}\n.dash-spreadsheet-inner.dash-freeze-left .row-1,\n.dash-spreadsheet-inner.dash-freeze-top .row-1 {\n display: flex;\n flex-direction: row;\n overflow: scroll;\n}\n.dash-spreadsheet-inner.dash-freeze-left .cell-0-0,\n.dash-spreadsheet-inner.dash-freeze-top .cell-0-0,\n.dash-spreadsheet-inner.dash-freeze-left .cell-1-0,\n.dash-spreadsheet-inner.dash-freeze-top .cell-1-0 {\n flex: 0 0 auto;\n left: 0;\n position: sticky;\n z-index: 400;\n}\n.dash-spreadsheet-inner.dash-freeze-left .cell-0-1,\n.dash-spreadsheet-inner.dash-freeze-top .cell-0-1 {\n z-index: 300;\n flex: 0 0 auto;\n}\n.dash-spreadsheet-inner.dash-freeze-left .cell-1-1,\n.dash-spreadsheet-inner.dash-freeze-top .cell-1-1 {\n flex: 0 0 auto;\n}\n.dash-spreadsheet-inner:not(.dash-freeze-top):not(.dash-freeze-left) .cell-1-1 tr td:first-of-type,\n.dash-spreadsheet-inner:not(.dash-freeze-top):not(.dash-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(.dash-freeze-top):not(.dash-freeze-left) .cell-1-1 tr:first-of-type td,\n.dash-spreadsheet-inner:not(.dash-freeze-top):not(.dash-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(.dash-freeze-top):not(.dash-freeze-left) .cell-1-1 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner:not(.dash-freeze-top):not(.dash-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(.dash-freeze-top).dash-freeze-left .cell-1-0 tr td:first-of-type,\n.dash-spreadsheet-inner:not(.dash-freeze-top).dash-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(.dash-freeze-top).dash-freeze-left .cell-1-0 tr:first-of-type td,\n.dash-spreadsheet-inner:not(.dash-freeze-top).dash-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(.dash-freeze-top).dash-freeze-left .cell-1-0 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner:not(.dash-freeze-top).dash-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(.dash-freeze-top).dash-freeze-left .cell-1-1 tr:first-of-type td,\n.dash-spreadsheet-inner:not(.dash-freeze-top).dash-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.dash-freeze-top:not(.dash-freeze-left) .cell-0-1 tr td:first-of-type,\n.dash-spreadsheet-inner.dash-freeze-top:not(.dash-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.dash-freeze-top:not(.dash-freeze-left) .cell-0-1 tr:first-of-type td,\n.dash-spreadsheet-inner.dash-freeze-top:not(.dash-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.dash-freeze-top:not(.dash-freeze-left) .cell-0-1 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner.dash-freeze-top:not(.dash-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.dash-freeze-top:not(.dash-freeze-left) .cell-1-1 tr td:first-of-type,\n.dash-spreadsheet-inner.dash-freeze-top:not(.dash-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.dash-freeze-top.dash-freeze-left .cell-0-0 tr td:first-of-type,\n.dash-spreadsheet-inner.dash-freeze-top.dash-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.dash-freeze-top.dash-freeze-left .cell-0-0 tr:first-of-type td,\n.dash-spreadsheet-inner.dash-freeze-top.dash-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.dash-freeze-top.dash-freeze-left .cell-0-0 tr:first-of-type td:first-of-type,\n.dash-spreadsheet-inner.dash-freeze-top.dash-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.dash-freeze-top.dash-freeze-left .cell-0-1 tr:first-of-type td,\n.dash-spreadsheet-inner.dash-freeze-top.dash-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.dash-freeze-top.dash-freeze-left .cell-1-0 tr td:first-of-type,\n.dash-spreadsheet-inner.dash-freeze-top.dash-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 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 .dash-cell-value {\n height: 100%;\n width: 100%;\n}\n.dash-spreadsheet-inner td div.dash-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 .dash-delete-cell,\n.dash-spreadsheet-inner .dash-delete-header {\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 .dash-delete-cell:hover,\n.dash-spreadsheet-inner .dash-delete-header: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(77);"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(11)(r,o);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(10)(!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(79);"string"==typeof r&&(r=[[e.i,r,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(11)(r,o);r.locals&&(e.exports=r.locals)},function(e,t,n){(e.exports=n(10)(!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(81),e.exports=n(84)},function(e,t,n){"use strict";var r=s(n(1)),o=s(n(6)),i=s(n(82)),u=n(4),a=s(u);function s(e){return e&&e.__esModule?e:{default:e}}a.default.setDebugLevel(u.DebugLevel.DEBUG),a.default.setLogLevel(u.LogLevel.NONE),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 h extends i.Component{constructor(){super();const e=f(l.mockData.dataframe);this.state={filter:"",tableProps:{id:"table",dataframe:e,columns:f(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.dash-freeze-left",rule:"width: 1000px; max-width: 1000px;"}]}};const t=(0,c.memoizeOne)(()=>e=>{d.default.debug("---\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"}))}}h.propTypes={value:a.default.any},t.default=h},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/demo/App.js b/demo/App.js index b907bdcc8..2e65d8276 100644 --- a/demo/App.js +++ b/demo/App.js @@ -5,6 +5,7 @@ import PropTypes from 'prop-types'; import { Table } from 'dash-table'; import {mockData} from './data'; import { memoizeOne } from 'core/memoizer'; +import Logger from 'core/Logger'; const clone = o => JSON.parse(JSON.stringify(o)); @@ -49,7 +50,7 @@ class App extends Component { const setProps = memoizeOne(() => { return newProps => { - console.info('--->', newProps); + Logger.debug('--->', newProps); this.setState(prevState => ({ tableProps: R.merge(prevState.tableProps, newProps) })); diff --git a/demo/index.js b/demo/index.js index 80274b2d6..768563213 100644 --- a/demo/index.js +++ b/demo/index.js @@ -5,6 +5,6 @@ import App from './App'; import Logger, { DebugLevel, LogLevel } from 'core/Logger'; Logger.setDebugLevel(DebugLevel.DEBUG); -Logger.setLogLevel(LogLevel.WARNING); +Logger.setLogLevel(LogLevel.NONE); ReactDOM.render(, document.getElementById('root')); diff --git a/src/core/math/arrayZipMap.ts b/src/core/math/arrayZipMap.ts new file mode 100644 index 000000000..2c3909399 --- /dev/null +++ b/src/core/math/arrayZipMap.ts @@ -0,0 +1,37 @@ +import * as R from 'ramda'; + +type Array = T[]; + +export function arrayMap( + a1: Array, + a2: Array, + cb: (d1: T1, d2: T2, i: number) => TR +) { + const mapArray = R.addIndex(R.map); + + return mapArray((iValue, i) => cb(iValue, a2[i], i), a1); +} + +export function arrayMap3( + a1: Array, + a2: Array, + a3: Array, + cb: (d1: T1, d2: T2, d3: T3, i: number) => TR +) { + const mapArray = R.addIndex(R.map); + + return mapArray((iValue, i) => cb(iValue, a2[i], a3[i], i), a1); + +} + +export function arrayMapN( + cb: (i: number, ...args: any[]) => TR, + ...arrays: (any[])[] +) { + const a1 = arrays.slice(0, 1); + const as = arrays.slice(1); + + const mapArray = R.addIndex(R.map); + + return mapArray((iValue, i) => cb(i, [iValue, ...as.map(a => a[i])]), a1); +} \ No newline at end of file diff --git a/src/core/math/matrixZipMap.ts b/src/core/math/matrixZipMap.ts new file mode 100644 index 000000000..874da4af6 --- /dev/null +++ b/src/core/math/matrixZipMap.ts @@ -0,0 +1,72 @@ +import * as R from 'ramda'; + +type Matrix = T[][]; + +export function matrixMap( + m1: Matrix, + m2: Matrix, + cb: (d1: T1, d2: T2, i: number, j: number) => TR +) { + const mapMatrix = R.addIndex(R.map); + const mapRow = R.addIndex(R.map); + + return mapMatrix((iRow, i) => + mapRow( + (ijValue, j) => cb(ijValue, m2[i][j], i, j), + iRow + ), m1 + ); +} + +export function matrixMap3( + m1: Matrix, + m2: Matrix, + m3: Matrix, + cb: (d1: T1, d2: T2, d3: T3, i: number, j: number) => TR +) { + const mapMatrix = R.addIndex(R.map); + const mapRow = R.addIndex(R.map); + + return mapMatrix((iRow, i) => + mapRow( + (ijValue, j) => cb(ijValue, m2[i][j], m3[i][j], i, j), + iRow + ), m1 + ); +} + +export function matrixMap4( + m1: Matrix, + m2: Matrix, + m3: Matrix, + m4: Matrix, + cb: (d1: T1, d2: T2, d3: T3, d4: T4, i: number, j: number) => TR +) { + const mapMatrix = R.addIndex(R.map); + const mapRow = R.addIndex(R.map); + + return mapMatrix((iRow, i) => + mapRow( + (ijValue, j) => cb(ijValue, m2[i][j], m3[i][j], m4[i][j], i, j), + iRow + ), m1 + ); +} + +export function matrixMapN( + cb: (i: number, j: number, ...args: any[]) => TR, + ...matrices: (any[][])[] +) { + const m1 = matrices.slice(0, 1); + const ms = matrices.slice(1); + + const mapMatrix = R.addIndex(R.map); + const mapRow = R.addIndex(R.map); + + return mapMatrix((iRow, i) => + mapRow( + (ijValue, j) => cb(i, j, [ijValue, ...ms.map(m => m[i][j])]), + iRow + ), m1 + ); +} \ No newline at end of file diff --git a/src/core/memoizer.ts b/src/core/memoizer.ts index 8a1a8ee6b..0d6f97142 100644 --- a/src/core/memoizer.ts +++ b/src/core/memoizer.ts @@ -14,11 +14,10 @@ export function memoizeOne< let lastArgs: any[] | null = null; let lastResult: any; - return (...args: TArgs): TEntry => { - return isEqualArgs(lastArgs, args) ? + return (...args: TArgs): TEntry => + isEqualArgs(lastArgs, args) ? lastResult : (lastArgs = args) && (lastResult = fn(...args)); - }; } export function memoizeOneFactory< diff --git a/src/core/memoizerCache.ts b/src/core/memoizerCache.ts index f492d45d5..567e0653e 100644 --- a/src/core/memoizerCache.ts +++ b/src/core/memoizerCache.ts @@ -15,7 +15,7 @@ export default function memoizerCache< { const cache = new Map(); - return (key: TKey, args: TArgs): TEntry => { + return (key: TKey, ...args: TArgs): TEntry => { const lastKey = key.slice(-1)[0]; const cacheKeys = key.slice(0, -1); diff --git a/src/dash-table/components/Cell/index.tsx b/src/dash-table/components/Cell/index.tsx index dcfdb1879..18f223a2c 100644 --- a/src/dash-table/components/Cell/index.tsx +++ b/src/dash-table/components/Cell/index.tsx @@ -1,298 +1,53 @@ import * as R from 'ramda'; import React, { - Component, - CSSProperties, - KeyboardEvent + Component } from 'react'; -import Dropdown from 'react-select'; - -import { isEqual } from 'core/comparer'; -import { memoizeOne } from 'core/memoizer'; -import memoizerCache from 'core/memoizerCache'; -import SyntaxTree from 'core/syntax-tree'; import { - ICellDefaultProps, ICellProps, - ICellPropsWithDefaults, - ICellState + ICellPropsWithDefaults } from 'dash-table/components/Cell/props'; -import { - IDropdownOptions, - IConditionalDropdown, - IConditionalStyle -} from 'dash-table/components/Cell/types'; - -import { - KEY_CODES -} from 'dash-table/utils/unicode'; -import { ColumnId } from 'dash-table/components/Table/props'; -import dropdownHelper from 'dash-table/components/dropdownHelper'; - -export default class Cell extends Component { - private static readonly dropdownAstCache = memoizerCache<[string, ColumnId, number], [string], SyntaxTree>( - (query: string) => new SyntaxTree(query) - ); - - private static readonly styleAstCache = memoizerCache<[string, ColumnId, number], [string], SyntaxTree>( - (query: string) => new SyntaxTree(query) - ); - - public static defaultProps: ICellDefaultProps = { - classes: [], - conditionalDropdowns: [], - conditionalStyles: [], - staticStyle: {}, - type: 'text' - }; +const CHILDREN_REGEX = /^children$/; +export default class Cell extends Component { constructor(props: ICellProps) { super(props); - - this.state = { - value: props.value - }; } private get propsWithDefaults(): ICellPropsWithDefaults { return this.props as ICellPropsWithDefaults; } - private get classes(): string[] { - let { - active, - classes, - editable, - selected, - type - } = this.propsWithDefaults; - - return [ - 'dash-cell', - ...(active ? ['focused'] : []), - ...(!editable ? ['cell--uneditable'] : []), - ...(selected ? ['cell--selected'] : []), - ...(type === 'dropdown' ? ['dropdown'] : []), - ...classes - ]; - } - - private renderDropdown() { - const { - clearable, - onChange, - value - } = this.propsWithDefaults; - - const dropdown = this.dropdown; - - return !dropdown ? - this.renderValue() : - ( { - onChange(newValue ? newValue.value : newValue); - }} - onOpen={this.handleOpenDropdown} - options={dropdown} - placeholder={''} - value={value} - />); - } - - private renderInput() { - const { - active, - focused, - onClick, - onDoubleClick, - onPaste - } = this.propsWithDefaults; - - const classes = [ - ...(active ? ['input-active'] : []), - ...(focused ? ['focused'] : ['unfocused']), - ...['dash-cell-value'] - ]; - - const attributes = { - className: classes.join(' '), - onClick: onClick, - onDoubleClick: onDoubleClick - }; - - return (!active && this.state.value === this.props.value) ? - this.renderValue(attributes) : - (); - } - - private renderValue(attributes = {}) { - const { value } = this.propsWithDefaults; - - return (
- {value} -
); - } - - private renderInner() { - const { - type - } = this.props; - - switch (type) { - case 'text': - case 'numeric': - return this.renderInput(); - case 'dropdown': - return this.renderDropdown(); - default: - return this.renderValue(); - } - } - - private getDropdown = memoizeOne((...dropdowns: IDropdownOptions[]): IDropdownOptions | undefined => { - return dropdowns.length ? dropdowns.slice(-1)[0] : undefined; - }); - - private get dropdown() { - let { - conditionalDropdowns, - datum, - property, - staticDropdown, - tableId - } = this.propsWithDefaults; - - const dropdowns = [ - ...(staticDropdown ? [staticDropdown] : []), - ...R.map( - ([cd]) => cd.dropdown, - R.filter( - ([cd, i]) => Cell.dropdownAstCache([tableId, property, i], [cd.condition]).evaluate(datum), - R.addIndex(R.map)( - (cd, i) => [cd, i], - conditionalDropdowns - )) - ) - ]; - - return this.getDropdown(...dropdowns); - } - - private getStyle = memoizeOne((...styles: CSSProperties[]) => { - return styles.length ? R.mergeAll(styles) : undefined; - }); - - private get style() { - let { - conditionalStyles, - datum, - property, - staticStyle, - tableId - } = this.propsWithDefaults; - - const styles = [staticStyle, ...R.map( - ([cs]) => cs.style, - R.filter( - ([cs, i]) => Cell.styleAstCache([tableId, property, i], [cs.condition]).evaluate(datum), - R.addIndex(R.map)( - (cs, i) => [cs, i], - conditionalStyles - ) - ) - )]; - - return this.getStyle(...styles); - } - render() { - const { property } = this.props; + const { classes, property, style } = this.propsWithDefaults; return ( - {this.renderInner()} - ); - } - - propagateChange = () => { - if (this.state.value === this.props.value) { - return; - } - - const { onChange } = this.props; - - onChange(this.state.value); - } - - handleChange = (e: any) => { - this.setState({ value: e.target.value }); + />); } - handleKeyDown = (e: KeyboardEvent) => { - if (e.keyCode !== KEY_CODES.ENTER && e.keyCode !== KEY_CODES.TAB) { - return; - } + shouldComponentUpdate(nextProps: any) { + const props: any = this.props; - this.propagateChange(); - } + const childProps: any = this.getChildProps(props); + const nextChildProps: any = this.getChildProps(nextProps); - handleOpenDropdown = () => { - const { dropdown, td }: { [key: string]: any } = this.refs; - - dropdownHelper( - dropdown.wrapper.querySelector('.Select-menu-outer'), - td + return R.any(key => + !CHILDREN_REGEX.test(key) && props[key] !== nextProps[key], + R.keysIn(props) + ) || R.any( + key => childProps[key] !== nextChildProps[key], + R.keysIn(childProps) ); } - componentWillReceiveProps(nextProps: ICellPropsWithDefaults) { - const { value: nextValue } = nextProps; - - if (this.state.value !== nextValue) { - this.setState({ - value: nextValue - }); - } - } - - componentDidUpdate() { - const { active } = this.propsWithDefaults; - const input = this.refs.textInput as HTMLInputElement; - - if (active && input && document.activeElement !== input) { - input.focus(); - input.setSelectionRange(0, input.value ? input.value.length : 0); - } - - if (active && this.refs.dropdown) { - (this.refs.td as HTMLElement).focus(); - } - } - - shouldComponentUpdate(nextProps: ICellPropsWithDefaults, nextState: ICellState) { - const props = this.props; - const state = this.state; - - return !isEqual(props, nextProps, true) || - !isEqual(state, nextState, true); + private getChildProps(props: any) { + return props && props.children && props.children[0] && props.children[0].props; } } \ No newline at end of file diff --git a/src/dash-table/components/Cell/props.ts b/src/dash-table/components/Cell/props.ts index 8d16e5f9a..97837784c 100644 --- a/src/dash-table/components/Cell/props.ts +++ b/src/dash-table/components/Cell/props.ts @@ -1,45 +1,14 @@ -import { ChangeEvent, CSSProperties } from 'react'; +import { CSSProperties } from 'react'; import { - IConditionalDropdown, - IConditionalStyle, - IDropdownOptions, - IStyle -} from 'dash-table/components/Cell/types'; -import { ColumnId } from 'dash-table/components/Table/props'; + ColumnId +} from 'dash-table/components/Table/props'; export interface ICellProps { active: boolean; - classes?: string[]; - clearable?: boolean; - conditionalDropdowns?: IConditionalDropdown[]; - conditionalStyles?: IConditionalStyle[]; - datum: any; - editable: boolean; - focused: boolean; - onChange: (e: ChangeEvent) => void; - onClick: (e: React.MouseEvent) => void; - onDoubleClick: (e: React.MouseEvent) => void; - onPaste: (e: React.ClipboardEvent) => void; + classes: string; property: ColumnId; - selected: boolean; - staticDropdown?: IDropdownOptions; - staticStyle?: IStyle; - tableId: string; - type?: string; - value: any; + style?: CSSProperties; } -export interface ICellDefaultProps { - classes: string[]; - conditionalDropdowns: IConditionalDropdown[]; - conditionalStyles: IConditionalStyle[]; - staticStyle: CSSProperties; - type: string; -} - -export interface ICellState { - value: any; -} - -export type ICellPropsWithDefaults = ICellProps & ICellDefaultProps; +export type ICellPropsWithDefaults = ICellProps; diff --git a/src/dash-table/components/CellFactory.tsx b/src/dash-table/components/CellFactory.tsx index 9bc80d8b6..fedbbeadc 100644 --- a/src/dash-table/components/CellFactory.tsx +++ b/src/dash-table/components/CellFactory.tsx @@ -1,184 +1,29 @@ -import * as R from 'ramda'; -import React, { ClipboardEvent } from 'react'; +import React from 'react'; -import Cell from 'dash-table/components/Cell'; -import { ICellFactoryOptions, SelectedCells } from 'dash-table/components/Table/props'; -import * as actions from 'dash-table/utils/actions'; +import { ICellFactoryOptions } from 'dash-table/components/Table/props'; +import derivedCellWrappers from 'dash-table/derived/cell/wrappers'; +import derivedCellInputs from 'dash-table/derived/cell/inputs'; +import derivedCellOperations from 'dash-table/derived/cell/operations'; +import derivedCellStyles from 'dash-table/derived/cell/wrapperStyles'; +import derivedDropdowns from 'dash-table/derived/cell/dropdowns'; + +import { matrixMap3 } from 'core/math/matrixZipMap'; +import { arrayMap } from 'core/math/arrayZipMap'; export default class CellFactory { - private readonly handlers = new Map(); + private readonly cellInputs = derivedCellInputs(); + private readonly cellOperations = derivedCellOperations(); + private readonly cellDropdowns = derivedDropdowns(); private get props() { return this.propsFn(); } - constructor(private readonly propsFn: () => ICellFactoryOptions) { - - } - - private isCellSelected = (selectedCells: SelectedCells, idx: number, i: number) => { - return selectedCells && R.contains([idx, i], selectedCells); - } - - private getEventHandler = (fn: Function, idx: number, i: number): any => { - const fnHandler = (this.handlers.get(fn) || this.handlers.set(fn, new Map()).get(fn)); - const idxHandler = (fnHandler.get(idx) || fnHandler.set(idx, new Map()).get(idx)); - - return ( - idxHandler.get(i) || - (idxHandler.set(i, fn.bind(this, idx, i)).get(i)) - ); - } - - private handleClick = (idx: number, i: number, e: any) => { - const { - editable, - is_focused, - selected_cell, - setProps - } = this.props; - - const selected = this.isCellSelected(selected_cell, idx, i); - - if (!editable) { - return; - } - if (!is_focused) { - e.preventDefault(); - } - - // don't update if already selected - if (selected) { - return; - } - - e.preventDefault(); - const cellLocation: [number, number] = [idx, i]; - const newProps: Partial = { - is_focused: false, - active_cell: cellLocation - }; - - const selectedRows = R.uniq(R.pluck(0, selected_cell)).sort((a, b) => a - b); - const selectedCols = R.uniq(R.pluck(1, selected_cell)).sort((a, b) => a - b); - const minRow = selectedRows[0]; - const minCol = selectedCols[0]; - - if (e.shiftKey) { - newProps.selected_cell = R.xprod( - R.range( - R.min(minRow, cellLocation[0]), - R.max(minRow, cellLocation[0]) + 1 - ), - R.range( - R.min(minCol, cellLocation[1]), - R.max(minCol, cellLocation[1]) + 1 - ) - ) as any; - } else { - newProps.selected_cell = [cellLocation]; - } - - setProps(newProps); - } - - private handleDoubleClick = (idx: number, i: number, e: any) => { - const { - editable, - is_focused, - setProps - } = this.props; - - if (!editable) { - return; - } - - const cellLocation: [number, number] = [idx, i]; - - if (!is_focused) { - e.preventDefault(); - const newProps = { - selected_cell: [cellLocation], - active_cell: cellLocation, - is_focused: true - }; - setProps(newProps); - } - } - - private handleChange = (idx: number, i: number, value: any) => { - const { - columns, - dataframe, - editable, - setProps - } = this.props; - - const c = columns[i]; - - if (!editable) { - return; - } - - const newDataframe = R.set( - R.lensPath([idx, c.id]), - value, - dataframe - ); - setProps({ - dataframe: newDataframe - }); - } - - private handlePaste = (e: ClipboardEvent) => { - e.preventDefault(); - } - - private rowSelectCell(idx: number) { - const { - setProps, - selected_rows, - row_selectable - } = this.props; - - return !row_selectable ? null : ( - setProps({ - selected_rows: - row_selectable === 'single' ? - [idx] : - R.ifElse( - R.contains(idx), - R.without([idx]), - R.append(idx) - )(selected_rows) - })} - /> - ); - } - - private rowDeleteCell(idx: number) { - const { - setProps, - row_deletable - } = this.props; - - return !row_deletable ? null : ( setProps(actions.deleteRow(idx, this.props))} - style={{ width: `30px`, maxWidth: `30px`, minWidth: `30px` }} - > - {'×'} - ); - } + constructor( + private readonly propsFn: () => ICellFactoryOptions, + private readonly cellStyles = derivedCellStyles(propsFn().id), + private readonly cellWrappers = derivedCellWrappers(propsFn().id) + ) { } public createCells() { const { @@ -188,82 +33,76 @@ export default class CellFactory { column_conditional_styles, column_static_dropdown, column_static_style, + dataframe, dropdown_properties, // legacy editable, id, is_focused, + row_deletable, + row_selectable, selected_cell, + selected_rows, + setProps, viewport } = this.props; - return viewport.dataframe.map((datum, viewportIdx) => { - const realIdx = viewport.indices[viewportIdx]; - - const deleteCell = this.rowDeleteCell(realIdx); - const selectCell = this.rowSelectCell(realIdx); - - const cells = columns.map((column, visibleIndex) => { - let legacyDropdown: any = ( - ( - dropdown_properties && - dropdown_properties[column.id] && - ( - dropdown_properties[column.id].length > realIdx ? - dropdown_properties[column.id][realIdx] : - null - ) - ) || column || {} - ).options; - - const index = columns.indexOf(column); - - const classes = [`column-${index}`]; - - let conditionalDropdowns = column_conditional_dropdowns.find((cd: any) => cd.id === column.id); - let staticDropdown = column_static_dropdown.find((sd: any) => sd.id === column.id); - - conditionalDropdowns = conditionalDropdowns && conditionalDropdowns.dropdowns; - staticDropdown = legacyDropdown || (staticDropdown && staticDropdown.dropdown); + const operations = this.cellOperations( + active_cell, + dataframe, + viewport.dataframe, + viewport.indices, + row_selectable, + row_deletable, + selected_rows, + setProps + ); - let conditionalStyles = column_conditional_styles.find((cs: any) => cs.id === column.id); - let staticStyle = column_static_style.find((ss: any) => ss.id === column.id); + const wrappers = this.cellWrappers( + active_cell, + columns, + viewport.dataframe, + editable, + selected_cell + ); - conditionalStyles = conditionalStyles && conditionalStyles.styles; - staticStyle = staticStyle && staticStyle.style; + const wrapperStyles = this.cellStyles( + columns, + column_conditional_styles, + column_static_style, + viewport.dataframe + ); - return (); - }); + const dropdowns = this.cellDropdowns(id)( + columns, + viewport.dataframe, + viewport.indices, + column_conditional_dropdowns, + column_static_dropdown, + dropdown_properties + ); - if (selectCell) { - cells.unshift(selectCell); - } + const inputs = this.cellInputs( + active_cell, + columns, + viewport.dataframe, + editable, + !!is_focused, + id, + dropdowns, + this.propsFn + ); - if (deleteCell) { - cells.unshift(deleteCell); - } + const cells = matrixMap3( + wrappers, + wrapperStyles, + inputs, + (w, s, i) => React.cloneElement(w, { children: [i], style: s }) + ); - return cells; - }); + return arrayMap( + operations, + cells, + (o, c) => Array.prototype.concat(o, c) + ); } } \ No newline at end of file diff --git a/src/dash-table/components/CellInput/index.tsx b/src/dash-table/components/CellInput/index.tsx new file mode 100644 index 000000000..6dc790486 --- /dev/null +++ b/src/dash-table/components/CellInput/index.tsx @@ -0,0 +1,181 @@ +import React, { + PureComponent, + KeyboardEvent +} from 'react'; +import Dropdown from 'react-select'; + +import { + ICellDefaultProps, + ICellProps, + ICellPropsWithDefaults, + ICellState +} from 'dash-table/components/CellInput/props'; + +import { + KEY_CODES +} from 'dash-table/utils/unicode'; +import { ColumnType } from 'dash-table/components/Table/props'; +import dropdownHelper from 'dash-table/components/dropdownHelper'; + +export default class CellInput extends PureComponent { + + public static defaultProps: ICellDefaultProps = { + conditionalDropdowns: [], + type: ColumnType.Text + }; + + constructor(props: ICellProps) { + super(props); + + this.state = { + value: props.value + }; + } + + private get propsWithDefaults(): ICellPropsWithDefaults { + return this.props as ICellPropsWithDefaults; + } + + private renderDropdown() { + const { + clearable, + dropdown, + onChange, + value + } = this.propsWithDefaults; + + return !dropdown ? + this.renderValue() : + ( { + onChange(newValue ? newValue.value : newValue); + }} + onOpen={this.handleOpenDropdown} + options={dropdown} + placeholder={''} + value={value} + />); + } + + private renderInput() { + const { + active, + focused, + onClick, + onDoubleClick, + onPaste + } = this.propsWithDefaults; + + const classes = [ + ...(active ? ['input-active'] : []), + ...(focused ? ['focused'] : ['unfocused']), + ...['dash-cell-value'] + ]; + + const attributes = { + className: classes.join(' '), + onClick: onClick, + onDoubleClick: onDoubleClick + }; + + return (!active && this.state.value === this.props.value) ? + this.renderValue(attributes) : + (); + } + + private renderValue(attributes = {}) { + const { value } = this.propsWithDefaults; + + return (
+ {value} +
); + } + + render() { + const { type } = this.props; + + switch (type) { + case ColumnType.Text: + case ColumnType.Numeric: + return this.renderInput(); + case ColumnType.Dropdown: + return this.renderDropdown(); + default: + return this.renderValue(); + } + } + + propagateChange = () => { + if (this.state.value === this.props.value) { + return; + } + + const { onChange } = this.props; + + onChange(this.state.value); + } + + handleChange = (e: any) => { + this.setState({ value: e.target.value }); + } + + handleKeyDown = (e: KeyboardEvent) => { + if (e.keyCode !== KEY_CODES.ENTER && e.keyCode !== KEY_CODES.TAB) { + return; + } + + this.propagateChange(); + } + + handleOpenDropdown = () => { + const { dropdown, td }: { [key: string]: any } = this.refs; + + dropdownHelper( + dropdown.wrapper.querySelector('.Select-menu-outer'), + td + ); + } + + componentWillReceiveProps(nextProps: ICellPropsWithDefaults) { + const { value: nextValue } = nextProps; + + if (this.state.value !== nextValue) { + this.setState({ + value: nextValue + }); + } + } + + componentDidUpdate() { + const { active } = this.propsWithDefaults; + if (!active) { + return; + } + + const input = this.refs.textInput as HTMLInputElement; + const dropdown = this.refs.dropdown as any; + + if (input && document.activeElement !== input) { + input.focus(); + input.setSelectionRange(0, input.value ? input.value.length : 0); + } + + if (dropdown && document.activeElement !== dropdown) { + // Limitation. If React >= 16 --> Use React.createRef instead to pass parent ref to child + (dropdown.wrapper.parentElement as HTMLElement).focus(); + } + } +} \ No newline at end of file diff --git a/src/dash-table/components/CellInput/props.ts b/src/dash-table/components/CellInput/props.ts new file mode 100644 index 000000000..1ad1b9846 --- /dev/null +++ b/src/dash-table/components/CellInput/props.ts @@ -0,0 +1,42 @@ +import { ChangeEvent } from 'react'; + +import { + IConditionalDropdown, + IDropdownOptions +} from 'dash-table/components/CellInput/types'; + +import { + ColumnId, + ColumnType +} from 'dash-table/components/Table/props'; + +export interface ICellHandlerProps { + onChange: (e: ChangeEvent) => void; + onClick: (e: React.MouseEvent) => void; + onDoubleClick: (e: React.MouseEvent) => void; + onPaste: (e: React.ClipboardEvent) => void; +} + +export interface ICellProps extends ICellHandlerProps { + active: boolean; + clearable?: boolean; + datum: any; + dropdown: IDropdownOptions | undefined; + editable: boolean; + focused: boolean; + property: ColumnId; + tableId: string; + type?: string; + value: any; +} + +export interface ICellDefaultProps { + conditionalDropdowns: IConditionalDropdown[]; + type: ColumnType; +} + +export interface ICellState { + value: any; +} + +export type ICellPropsWithDefaults = ICellProps & ICellDefaultProps; diff --git a/src/dash-table/components/Cell/types.ts b/src/dash-table/components/CellInput/types.ts similarity index 100% rename from src/dash-table/components/Cell/types.ts rename to src/dash-table/components/CellInput/types.ts diff --git a/src/dash-table/components/ControlledTable/index.tsx b/src/dash-table/components/ControlledTable/index.tsx index 6a2de06d9..08d5777b8 100644 --- a/src/dash-table/components/ControlledTable/index.tsx +++ b/src/dash-table/components/ControlledTable/index.tsx @@ -11,54 +11,37 @@ import { } from 'dash-table/utils/unicode'; import { selectionCycle } from 'dash-table/utils/navigation'; -import HeaderFactory, { DEFAULT_CELL_WIDTH } from 'dash-table/components/HeaderFactory'; +import { DEFAULT_CELL_WIDTH } from 'dash-table/components/HeaderFactory'; import Logger from 'core/Logger'; import { memoizeOne } from 'core/memoizer'; import lexer from 'core/syntax-tree/lexer'; import TableClipboardHelper from 'dash-table/utils/TableClipboardHelper'; -import CellFactory from 'dash-table/components/CellFactory'; import { ControlledTableProps, Columns, RowSelection, IColumn } from 'dash-table/components/Table/props'; import dropdownHelper from 'dash-table/components/dropdownHelper'; -import FilterFactory from 'dash-table/components/FilterFactory'; + +import derivedTable from 'dash-table/derived/table'; +import derivedTableFragments from 'dash-table/derived/table/fragments'; const sortNumerical = R.sort((a, b) => a - b); -interface IAccumulator { - cells: number; - count: number; +interface IState { + forcedResizeOnly: boolean; } -export default class ControlledTable extends PureComponent { - private stylesheet: Stylesheet; - private cellFactory: CellFactory; - private filterFactory: FilterFactory; - private headerFactory: HeaderFactory; +export default class ControlledTable extends PureComponent { + private readonly stylesheet: Stylesheet; + private readonly tableFn: () => JSX.Element[][]; constructor(props: ControlledTableProps) { super(props); - this.cellFactory = new CellFactory(() => this.props); - this.filterFactory = new FilterFactory(() => { - const { row_deletable, row_selectable } = this.props; - - const fillerColumns = - (row_deletable ? 1 : 0) + - (row_selectable ? 1 : 0); - - return { - columns: this.props.columns, - fillerColumns, - filtering: this.props.filtering, - filtering_settings: this.props.filtering_settings, - filtering_type: this.props.filtering_type, - id: this.props.id, - setFilter: this.handleSetFilter - }; - }); - this.headerFactory = new HeaderFactory(() => this.props); + this.state = { + forcedResizeOnly: false + }; this.stylesheet = new Stylesheet(`#${props.id}`); + this.tableFn = derivedTable(() => this.props); this.updateStylesheet(); } @@ -88,13 +71,15 @@ export default class ControlledTable extends PureComponent // Fallback method for paste handling in Chrome // when no input element has focused inside the table - window.addEventListener('resize', this.handleResize); + window.addEventListener('resize', this.forceHandleResize); document.addEventListener('paste', this.handlePaste); document.addEventListener('mousedown', this.handleClickOutside); + + this.handleResize(); } componentWillUnmount() { - window.removeEventListener('resize', this.handleResize); + window.removeEventListener('resize', this.forceHandleResize); document.removeEventListener('mousedown', this.handleClickOutside); document.removeEventListener('paste', this.handlePaste); } @@ -133,7 +118,17 @@ export default class ControlledTable extends PureComponent } } - handleResize = () => { + forceHandleResize = () => this.handleResize(true); + + handleResize = (force: boolean = false) => { + if (this.state.forcedResizeOnly && !force) { + return; + } + + if (!force) { + this.setState({ forcedResizeOnly: true }); + } + const { r0c0, r0c1, r1c0, r1c1 } = this.refs as { [key: string]: HTMLElement }; // Adjust [fixed columns/fixed rows combo] to fixed rows height @@ -141,7 +136,7 @@ export default class ControlledTable extends PureComponent r0c0.querySelectorAll('tr').forEach((tr, index) => { const tr2 = trs[index]; - tr.style.height = getComputedStyle(tr2).height; + tr.style.height = `${tr2.clientHeight}px`; }); // Adjust fixed columns headers to header's height @@ -158,7 +153,7 @@ export default class ControlledTable extends PureComponent if (contentTd) { const contentTr = contentTd.parentElement as HTMLElement; - this.stylesheet.setRule('.cell-1-0 tr', `height: ${getComputedStyle(contentTr).height}`); + this.stylesheet.setRule('.cell-1-0 tr', `height: ${getComputedStyle(contentTr).height};`); } } @@ -556,61 +551,6 @@ export default class ControlledTable extends PureComponent }, columns); } - renderFragment = (cells: any[][] | null) => ( - cells ? - ( - - {cells.map( - (row, idx) => {row}) - } - -
) : - null - ) - - handleSetFilter = (filtering_settings: string) => this.props.setProps({ filtering_settings }); - - getCells = () => { - return [ - ...this.headerFactory.createHeaders(), - ...this.filterFactory.createFilters(), - ...this.cellFactory.createCells() - ]; - } - - getFragments = (cells: any, fixedColumns: number, fixedRows: number) => { - // slice out fixed columns - const fixedColumnCells = fixedColumns ? - R.map(row => - row.splice(0, R.reduceWhile( - acc => acc.count < fixedColumns, - (acc, cell) => { - acc.cells++; - acc.count += (cell.props.colSpan || 1); - - return acc; - }, - { cells: 0, count: 0 }, - row as any - ).cells), - cells) : - null; - - // slice out fixed rows - const fixedRowCells = fixedRows ? - cells.splice(0, fixedRows) : - null; - - const fixedRowAndColumnCells = fixedRows && fixedColumnCells ? - fixedColumnCells.splice(0, fixedRows) : - null; - - return [ - [this.renderFragment(fixedRowAndColumnCells), this.renderFragment(fixedRowCells)], - [this.renderFragment(fixedColumnCells), this.renderFragment(cells)] - ]; - } - handleDropdown = () => { const { r1c1 } = this.refs as { [key: string]: HTMLElement }; @@ -652,8 +592,8 @@ export default class ControlledTable extends PureComponent ...(n_fixed_columns ? ['dash-freeze-left'] : []) ]; - const cells = this.getCells(); - const grid = this.getFragments(cells, n_fixed_columns, n_fixed_rows); + const rawTable = this.tableFn(); + const grid = derivedTableFragments(n_fixed_columns, n_fixed_rows, rawTable); return (
(Array.isArray(c.name) ? c.name.length : 1); -const getColNameAt = (c: any, i: number) => (Array.isArray(c.name) ? c.name[i] : ''); +import { ControlledTableProps } from 'dash-table/components/Table/props'; -function editColumnName(column: any, columnRowIndex: any, options: ICellOptions) { - return () => { - const { setProps } = options; - setProps(actions.editColumnName(column, columnRowIndex, options)); - }; -} +import derivedHeaderContent from 'dash-table/derived/header/content'; +import getFixedHeaders from 'dash-table/derived/header/fixedHeaders'; +import getHeaderRows from 'dash-table/derived/header/headerRows'; +import getIndices from 'dash-table/derived/header/indices'; +import getLabels from 'dash-table/derived/header/labels'; +import derivedHeaderOperations from 'dash-table/derived/header/operations'; +import derivedHeaderWrappers from 'dash-table/derived/header/wrappers'; -function deleteColumn(column: any, columnRowIndex: any, options: ICellOptions) { - return () => { - const { setProps } = options; - setProps(actions.deleteColumn(column, columnRowIndex, options)); - }; -} +export const DEFAULT_CELL_WIDTH = 200; export default class HeaderFactory { + private readonly headerContent = derivedHeaderContent(); + private readonly headerOperations = derivedHeaderOperations(); + private readonly headerWrappers = derivedHeaderWrappers(); + private get props() { return this.propsFn(); } @@ -73,261 +29,56 @@ export default class HeaderFactory { } - private getSorting(columnId: ColumnId, settings: SortSettings): SortDirection { - const setting = R.find(s => s.columnId === columnId, settings); - - return setting ? setting.direction : SortDirection.None; - } - - private doSort(columnId: ColumnId, options: ICellOptions) { - return () => { - const { sorting_settings, sorting_type } = options; - - let direction: SortDirection; - switch (this.getSorting(columnId, sorting_settings)) { - case SortDirection.Descending: - direction = SortDirection.Ascending; - break; - case SortDirection.Ascending: - direction = SortDirection.None; - break; - case SortDirection.None: - default: - direction = SortDirection.Descending; - break; - } - - const sortingStrategy = sorting_type === 'single' ? - singleUpdateSettings : - multiUpdateSettings; - - options.setProps({ - sorting_settings: sortingStrategy( - sorting_settings, - { columnId, direction } - ) - }); - }; - } - - private getSortingIcon(columnId: ColumnId, options: ICellOptions) { - const { sorting_settings } = options; - - switch (this.getSorting(columnId, sorting_settings)) { - case SortDirection.Descending: - return '↑'; - case SortDirection.Ascending: - return '↓'; - case SortDirection.None: - default: - return '↕'; - } - } - - private createHeaderCells(options: ICellOptions) { - const { - columns, - columnRowIndex, - labels, - mergeCells, - n_fixed_columns, - pagination_mode, - rowSorting - } = options; - - let columnIndices: any[] = []; - - if (!mergeCells) { - columnIndices = R.range(0, columns.length); - } else { - columnIndices = [0]; - let compareIndex = 0; - labels.forEach((label, i) => { - // Skip over hidden columns for labels selection / filtering; - // otherwise they will be filtered out when generating the headers - if (label === labels[compareIndex]) { - return; - } - columnIndices.push(i); - compareIndex = i; - }); - } - - return R.filter(column => !!column, columnIndices.map((columnId, spanId) => { - const c = columns[columnId]; - - const visibleIndex = columns.indexOf(c); - - let colSpan: number; - if (!mergeCells) { - colSpan = 1; - } else { - if (columnId === R.last(columnIndices)) { - colSpan = labels.length - columnId; - } else { - colSpan = columnIndices[spanId + 1] - columnId; - } - } - - // This is not efficient and can be improved upon... - // Fixed columns need to override the default cell behavior when they span multiple columns - // Find all columns that fit the header's range [index, index+colspan[ and keep the fixed/visible ones - const visibleColumnId = columns.indexOf(c); - - const spannedColumns = columns.filter((_column, index) => - index >= visibleColumnId && - index < visibleColumnId + colSpan && - index < n_fixed_columns - ); - - // Calculate the width of all those columns combined - const width = `calc(${spannedColumns.map(column => Stylesheet.unit(column.width || DEFAULT_CELL_WIDTH, 'px')).join(' + ')})`; - const maxWidth = `calc(${spannedColumns.map(column => Stylesheet.unit(column.maxWidth || column.width || DEFAULT_CELL_WIDTH, 'px')).join(' + ')})`; - const minWidth = `calc(${spannedColumns.map(column => Stylesheet.unit(column.minWidth || column.width || DEFAULT_CELL_WIDTH, 'px')).join(' + ')})`; - - return ( - {rowSorting ? ( - - {this.getSortingIcon(c.id, options)} - ) : ('') - } - - {((c.editable_name && R.type(c.editable_name) === 'Boolean') || - (R.type(c.editable_name) === 'Number' && - c.editable_name === columnRowIndex)) ? ( - - {`✎`} - - ) : ''} - - {((c.deletable && pagination_mode !== 'be' && R.type(c.deletable) === 'Boolean') || - (R.type(c.deletable) === 'Number' && - c.deletable === columnRowIndex)) ? ( - - {'×'} - - ) : ''} - - {labels[columnId]} - ); - })); - } - - private createDeletableHeader(options: IOptions) { - const { row_deletable } = options; - - return !row_deletable ? null : ( - - ); - } - - private createSelectableHeader(options: IOptions) { - const { row_selectable } = options; - - return !row_selectable ? null : ( - - ); - } - public createHeaders() { const props = this.props; let { columns, - sorting, merge_duplicate_headers, n_fixed_columns, pagination_mode, row_deletable, row_selectable, setProps, + sorting, sorting_settings, sorting_type } = props; - const offset = - (row_deletable ? 1 : 0) + - (row_selectable ? 1 : 0); + const fixedHeaders = getFixedHeaders(n_fixed_columns, row_deletable, row_selectable); + const headerRows = getHeaderRows(columns); - n_fixed_columns = Math.max(0, n_fixed_columns - offset); + const labels = getLabels(columns, headerRows); + const indices = getIndices(columns, labels, merge_duplicate_headers); - const deletableCell = this.createDeletableHeader(props); - const selectableCell = this.createSelectableHeader(props); + const labelsAndIndices = R.zip(labels, indices); + + const operations = this.headerOperations( + headerRows, + row_selectable, + row_deletable + ); - const headerDepth = Math.max.apply(Math, columns.map(getColLength)); + const wrappers = this.headerWrappers( + columns, + labelsAndIndices, + merge_duplicate_headers, + fixedHeaders + ); + + const content = this.headerContent( + columns, + labelsAndIndices, + sorting, + sorting_type, + sorting_settings, + pagination_mode, + setProps, + props + ); - let headers: any[][]; - if (headerDepth === 1) { - headers = [[ - ...(deletableCell ? [deletableCell] : []), - ...(selectableCell ? [selectableCell] : []), - ...(this.createHeaderCells({ - columns, - columnRowIndex: 0, - labels: R.pluck('name', columns), - n_fixed_columns, - pagination_mode, - rowSorting: sorting, - setProps, - sorting_settings, - sorting_type - })) - ]]; - } else { - headers = R.range(0, headerDepth).map(i => ([ - ...(deletableCell ? [deletableCell] : []), - ...(selectableCell ? [selectableCell] : []), - ...(this.createHeaderCells({ - columns, - columnRowIndex: i, - labels: columns.map( - c => - R.isNil(c.name) && i === headerDepth - 1 - ? c.id - : getColNameAt(c, i) - ), - n_fixed_columns, - pagination_mode, - rowSorting: !!sorting && i + 1 === headerDepth, - mergeCells: - merge_duplicate_headers && - i + 1 !== headerDepth, - setProps, - sorting_settings, - sorting_type - })) - ])); - } + const headers = matrixMap(wrappers, content, (w, c) => React.cloneElement(w, { children: [c] })); - return headers; + return arrayMap(operations, headers, (o, h) => Array.prototype.concat(o, h)); } } \ 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 e40efd1c2..b471acd60 100644 --- a/src/dash-table/components/Table/index.tsx +++ b/src/dash-table/components/Table/index.tsx @@ -6,9 +6,9 @@ import { memoizeOne, memoizeOneWithFlag } from 'core/memoizer'; import ControlledTable from 'dash-table/components/ControlledTable'; import derivedPaginator from 'dash-table/derived/paginator'; -import derivedViewportDataframe from 'dash-table/derived/viewportDataframe'; -import derivedVirtualDataframe from 'dash-table/derived/virtualDataframe'; -import derivedVisibleColumns from 'dash-table/derived/visibleColumns'; +import derivedViewportDataframe from 'dash-table/derived/dataframe/viewport'; +import derivedVirtualDataframe from 'dash-table/derived/dataframe/virtual'; +import derivedVisibleColumns from 'dash-table/derived/column/visible'; import { ControlledTableProps, diff --git a/src/dash-table/components/Table/props.ts b/src/dash-table/components/Table/props.ts index f42de4af9..ed383be20 100644 --- a/src/dash-table/components/Table/props.ts +++ b/src/dash-table/components/Table/props.ts @@ -1,6 +1,12 @@ import { SortSettings } from 'core/sorting'; import { IPaginator } from 'dash-table/derived/paginator'; +export enum ColumnType { + Dropdown = 'dropdown', + Numeric = 'numeric', + Text = 'text' +} + export enum FilteringType { Advanced = 'advanced', Basic = 'basic' @@ -34,15 +40,15 @@ export interface IColumn extends IVisibleColumn { export interface IVisibleColumn { clearable?: boolean; - deletable?: boolean; + deletable?: boolean | number; editable?: boolean; - editable_name?: boolean; + editable_name?: boolean | number; id: ColumnId; name: string; options?: { label: string | number, value: any }[]; maxWidth?: string | number; minWidth?: string | number; - type?: string; + type?: ColumnType; width?: string | number; } diff --git a/src/dash-table/derived/cell/dropdowns.ts b/src/dash-table/derived/cell/dropdowns.ts new file mode 100644 index 000000000..2efeaa162 --- /dev/null +++ b/src/dash-table/derived/cell/dropdowns.ts @@ -0,0 +1,101 @@ +import * as R from 'ramda'; + +import { memoizeOneFactory } from 'core/memoizer'; + +import { + Dataframe, + Datum, + VisibleColumns, + ColumnId, + Indices +} from 'dash-table/components/Table/props'; +import SyntaxTree from 'core/syntax-tree'; +import memoizerCache from 'core/memoizerCache'; + +interface IDropdownOption { + label: string; + value: string; +} + +type IDropdownOptions = IDropdownOption[]; + +interface IConditionalDropdown { + condition: string; + dropdown: IDropdownOptions; +} + +const mapDataframe = R.addIndex(R.map); + +const getDropdown = ( + astCache: (key: [ColumnId, number], query: string) => SyntaxTree, + conditionalDropdowns: any, + datum: Datum, + property: ColumnId, + staticDropdown: any +) => { + const dropdowns = [ + ...(staticDropdown ? [staticDropdown] : []), + ...R.map( + ([cd]) => cd.dropdown, + R.filter( + ([cd, i]) => astCache([property, i], cd.condition).evaluate(datum), + R.addIndex(R.map)( + (cd, i) => [cd, i], + conditionalDropdowns + )) + ) + ]; + + return dropdowns.length ? dropdowns.slice(-1)[0] : undefined; +}; + +const getter = ( + astCache: (key: [ColumnId, number], query: string) => SyntaxTree, + columns: VisibleColumns, + dataframe: Dataframe, + indices: Indices, + columnConditionalDropdown: any, + columnStaticDropdown: any, + dropdown_properties: any +): any[][] => mapDataframe((datum, rowIndex) => R.map(column => { + const realIndex = indices[rowIndex]; + + let legacyDropdown: any = ( + ( + dropdown_properties && + dropdown_properties[column.id] && + ( + dropdown_properties[column.id].length > realIndex ? + dropdown_properties[column.id][realIndex] : + null + ) + ) || column || {} + ).options; + + let conditionalDropdowns = columnConditionalDropdown.find((cs: any) => cs.id === column.id); + let staticDropdown = columnStaticDropdown.find((ss: any) => ss.id === column.id); + + conditionalDropdowns = (conditionalDropdowns && conditionalDropdowns.dropdowns) || []; + staticDropdown = legacyDropdown || (staticDropdown && staticDropdown.dropdown); + + return getDropdown(astCache, conditionalDropdowns, datum, column.id, staticDropdown); +}, columns), dataframe); + +const getterFactory = memoizeOneFactory(getter); + +const decoratedGetter = (_id: string): (( + columns: VisibleColumns, + dataframe: Dataframe, + indices: Indices, + columnConditionalDropdown: any, + columnStaticDropdown: any, + dropdown_properties: any +) => any[][]) => { + const astCache = memoizerCache<[ColumnId, number], [string], SyntaxTree>( + (query: string) => new SyntaxTree(query) + ); + + return getterFactory().bind(undefined, astCache); +}; + +export default memoizeOneFactory(decoratedGetter); diff --git a/src/dash-table/derived/cell/eventHandler.ts b/src/dash-table/derived/cell/eventHandler.ts new file mode 100644 index 000000000..2532a7453 --- /dev/null +++ b/src/dash-table/derived/cell/eventHandler.ts @@ -0,0 +1,49 @@ + +import { memoizeOneFactory } from 'core/memoizer'; +import memoizerCache from 'core/memoizerCache'; +import { ICellFactoryOptions } from 'dash-table/components/Table/props'; +import { handleChange, handleClick, handleDoubleClick, handlePaste } from 'dash-table/handlers/cellEvents'; + +type CacheArgs = [Handler, number, number]; +type GetterArgs = [HandlerFn, number, number]; + +export enum Handler { + Change = 'change', + Click = 'click', + DoubleClick = 'doubleclick', + Paste = 'paste' +} + +export type CacheFn = (...args: CacheArgs) => Function; +export type HandlerFn = (...args: any[]) => any; + +const getter = (propsFn: () => ICellFactoryOptions): CacheFn => { + const cache = memoizerCache((...args: GetterArgs) => { + let [ + handler, + rowIndex, + columnIndex + ] = args; + + return handler && handler.bind(undefined, rowIndex, columnIndex); + }); + + const handlers = new Map([ + [Handler.Change, handleChange.bind(undefined, propsFn)], + [Handler.Click, handleClick.bind(undefined, propsFn)], + [Handler.DoubleClick, handleDoubleClick.bind(undefined, propsFn)], + [Handler.Paste, handlePaste.bind(undefined, propsFn)] + ]); + + return (...args: CacheArgs) => { + let [ + handler, + rowIndex, + columnIndex + ] = args; + + return cache(args, handlers.get(handler) as HandlerFn, rowIndex, columnIndex); + }; +}; + +export default memoizeOneFactory(getter); \ No newline at end of file diff --git a/src/dash-table/derived/cell/eventHandlerProps.ts b/src/dash-table/derived/cell/eventHandlerProps.ts new file mode 100644 index 000000000..34b4b0d6b --- /dev/null +++ b/src/dash-table/derived/cell/eventHandlerProps.ts @@ -0,0 +1,30 @@ + +import { memoizeOneFactory } from 'core/memoizer'; +import { ICellFactoryOptions } from 'dash-table/components/Table/props'; +import cellEventHandler, { Handler } from 'dash-table/derived/cell/eventHandler'; +import { ICellHandlerProps } from 'dash-table/components/CellInput/props'; + +type CacheArgs = [number, number]; + +export type CacheFn = (...args: CacheArgs) => ICellHandlerProps; +export type HandlerFn = (...args: any[]) => any; + +const getter = (propsFn: () => ICellFactoryOptions): CacheFn => { + const derivedHandlers = cellEventHandler()(propsFn); + + return (...args: CacheArgs) => { + const [ + rowIndex, + columnIndex + ] = args; + + return { + onChange: derivedHandlers(Handler.Change, rowIndex, columnIndex), + onClick: derivedHandlers(Handler.Click, rowIndex, columnIndex), + onDoubleClick: derivedHandlers(Handler.DoubleClick, rowIndex, columnIndex), + onPaste: derivedHandlers(Handler.Paste, rowIndex, columnIndex) + } as ICellHandlerProps; + }; +}; + +export default memoizeOneFactory(getter); \ No newline at end of file diff --git a/src/dash-table/derived/cell/inputs.tsx b/src/dash-table/derived/cell/inputs.tsx new file mode 100644 index 000000000..19c657afe --- /dev/null +++ b/src/dash-table/derived/cell/inputs.tsx @@ -0,0 +1,60 @@ +import * as R from 'ramda'; +import React from 'react'; + +import { memoizeOneFactory } from 'core/memoizer'; + +import { + ActiveCell, + Dataframe, + Datum, + IVisibleColumn, + VisibleColumns, + ICellFactoryOptions +} from 'dash-table/components/Table/props'; +import CellInput from 'dash-table/components/CellInput'; +import derivedCellEventHandlerProps from 'dash-table/derived/cell/eventHandlerProps'; +import isActiveCell from 'dash-table/derived/cell/isActive'; + +const mapDataframe = R.addIndex(R.map); +const mapRow = R.addIndex(R.map); + +const cellEventHandlerProps = derivedCellEventHandlerProps(); + +const getter = ( + activeCell: ActiveCell, + columns: VisibleColumns, + dataframe: Dataframe, + editable: boolean, + isFocused: boolean, + tableId: string, + dropdowns: any[][], + propsFn: () => ICellFactoryOptions +): JSX.Element[][] => mapDataframe( + (datum, rowIndex) => mapRow( + (column, columnIndex) => { + const active = isActiveCell(activeCell, rowIndex, columnIndex); + + const dropdown = dropdowns[rowIndex][columnIndex]; + const handlers = cellEventHandlerProps(propsFn)(rowIndex, columnIndex); + + return (); + }, + columns + ), + dataframe +); + +export default memoizeOneFactory(getter); diff --git a/src/dash-table/derived/cell/isActive.ts b/src/dash-table/derived/cell/isActive.ts new file mode 100644 index 000000000..78b705788 --- /dev/null +++ b/src/dash-table/derived/cell/isActive.ts @@ -0,0 +1,7 @@ +import { ActiveCell } from 'dash-table/components/Table/props'; + +export default ( + activeCell: ActiveCell, + row: number, + column: number +) => activeCell[0] === row && activeCell[1] === column; \ No newline at end of file diff --git a/src/dash-table/derived/cell/isSelected.ts b/src/dash-table/derived/cell/isSelected.ts new file mode 100644 index 000000000..8e701b864 --- /dev/null +++ b/src/dash-table/derived/cell/isSelected.ts @@ -0,0 +1,9 @@ +import * as R from 'ramda'; + +import { SelectedCells } from 'dash-table/components/Table/props'; + +export default ( + selectedCells: SelectedCells, + row: number, + column: number +) => R.contains([row, column], selectedCells); \ No newline at end of file diff --git a/src/dash-table/derived/cell/operations.tsx b/src/dash-table/derived/cell/operations.tsx new file mode 100644 index 000000000..531f806c5 --- /dev/null +++ b/src/dash-table/derived/cell/operations.tsx @@ -0,0 +1,81 @@ +import * as R from 'ramda'; +import React from 'react'; + +import { memoizeOneFactory } from 'core/memoizer'; + +import { + Dataframe, + Datum, + SetProps, + RowSelection, + ActiveCell, + Indices +} from 'dash-table/components/Table/props'; + +function deleteRow(idx: number, activeCell: ActiveCell, dataframe: Dataframe, selectedRows: number[]) { + const newProps: any = { + dataframe: R.remove(idx, 1, dataframe) + }; + if (R.is(Array, activeCell) && activeCell[0] === idx) { + newProps.active_cell = []; + } + + if (R.is(Array, selectedRows) && R.contains(idx, selectedRows)) { + newProps.selected_rows = R.without([idx], selectedRows); + } + return newProps; +} + +function rowSelectCell(idx: number, rowSelectable: RowSelection, selectedRows: number[], setProps: SetProps) { + return ( + setProps({ + selected_rows: + rowSelectable === 'single' ? + [idx] : + R.ifElse( + R.contains(idx), + R.without([idx]), + R.append(idx) + )(selectedRows) + })} + /> + ); +} + +function rowDeleteCell(setProps: SetProps, deleteFn: () => any) { + return ( setProps(deleteFn())} + style={{ width: `30px`, maxWidth: `30px`, minWidth: `30px` }} + > + {'×'} + ); +} + +const getter = ( + activeCell: ActiveCell, + dataframe: Dataframe, + viewportDataframe: Dataframe, + viewportIndices: Indices, + rowSelectable: RowSelection, + rowDeletable: boolean, + selectedRows: number[], + setProps: SetProps +): JSX.Element[][] => R.addIndex(R.map)( + (_, rowIndex) => [ + ...(rowDeletable ? [rowDeleteCell(setProps, deleteRow.bind(undefined, viewportIndices[rowIndex], activeCell, dataframe, selectedRows))] : []), + ...(rowSelectable ? [rowSelectCell(viewportIndices[rowIndex], rowSelectable, selectedRows, setProps)] : []) + ], + viewportDataframe +); + +export default memoizeOneFactory(getter); diff --git a/src/dash-table/derived/cell/wrapperStyles.ts b/src/dash-table/derived/cell/wrapperStyles.ts new file mode 100644 index 000000000..e4b9a841c --- /dev/null +++ b/src/dash-table/derived/cell/wrapperStyles.ts @@ -0,0 +1,117 @@ +import * as R from 'ramda'; +import { CSSProperties } from 'react'; + +import { memoizeAll, memoizeOne } from 'core/memoizer'; +import { ColumnId, Dataframe, Datum, VisibleColumns } from 'dash-table/components/Table/props'; +import SyntaxTree from 'core/syntax-tree'; +import memoizerCache from 'core/memoizerCache'; + +interface IStyle { + target?: undefined; + style: CSSProperties; +} + +interface IConditionalStyle extends IStyle { + condition: string; +} + +type Style = CSSProperties | undefined; + +type Key = [ColumnId, number]; +type AstCacheFn = (key: Key, query: string) => SyntaxTree; +type StyleCacheFn = ( + key: Key, + astCache: AstCacheFn, + conditionalStyles: IConditionalStyle[], + datum: Datum, + property: ColumnId, + staticStyle: IStyle +) => Style; + +const NULL_CONDITIONAL_STYLES: IConditionalStyle[] = []; + +function getStyle( + astCache: AstCacheFn, + conditionalStyles: IConditionalStyle[], + datum: Datum, + property: ColumnId, + staticStyle: IStyle +) { + const styles = R.map( + ([cs]) => cs.style, + R.filter( + ([cs, i]) => astCache([property, i], cs.condition).evaluate(datum), + R.addIndex(R.map)( + (cs, i) => [cs, i], + conditionalStyles + ) + ) + ); + + if (staticStyle) { + styles.push(staticStyle.style); + } + + if (!styles.length) { + return undefined; + } + + return R.mergeAll(styles); +} + +function getter( + astCache: AstCacheFn, + styleCache: StyleCacheFn, + columns: VisibleColumns, + columnConditionalStyle: any, + columnStaticStyle: any, + dataframe: Dataframe +): Style[][] { + return R.addIndex(R.map)( + (datum, rowIndex) => R.addIndex(R.map)( + (column, columnIndex) => { + let conditionalStyles = columnConditionalStyle.find((cs: any) => cs.id === column.id); + let staticStyle = columnStaticStyle.find((ss: any) => ss.id === column.id); + + conditionalStyles = (conditionalStyles && conditionalStyles.styles) || NULL_CONDITIONAL_STYLES; + staticStyle = staticStyle && staticStyle.style; + + return styleCache( + [rowIndex, columnIndex], + astCache, + conditionalStyles, + datum[column.id], + column.id, + staticStyle + ); + }, + columns), + dataframe); +} + +function decorator(_id: string): (( + columns: VisibleColumns, + columnConditionalStyle: any, + columnStaticStyle: any, + dataframe: Dataframe +) => Style[][]) { + const astCache = memoizerCache( + (query: string) => new SyntaxTree(query) + ); + + const styleCache = memoizerCache< + Key, + [ + (key: Key, query: string) => SyntaxTree, + IConditionalStyle[], + Datum, + ColumnId, + IStyle + ], + Style + >(getStyle); + + return memoizeOne(getter).bind(undefined, astCache, styleCache); +} + +export default memoizeAll(decorator); diff --git a/src/dash-table/derived/cell/wrappers.tsx b/src/dash-table/derived/cell/wrappers.tsx new file mode 100644 index 000000000..fe865abd4 --- /dev/null +++ b/src/dash-table/derived/cell/wrappers.tsx @@ -0,0 +1,69 @@ +import * as R from 'ramda'; +import React from 'react'; + +import { memoizeAll, memoizeOne } from 'core/memoizer'; +import { Dataframe, IVisibleColumn, VisibleColumns, ColumnType, ActiveCell, SelectedCells, Datum, ColumnId } from 'dash-table/components/Table/props'; +import Cell from 'dash-table/components/Cell'; +import isActiveCell from 'dash-table/derived/cell/isActive'; +import isSelectedCell from 'dash-table/derived/cell/isSelected'; +import memoizerCache from 'core/memoizerCache'; + +type Key = [number, number]; +type ElementCacheFn = ( + key: Key, + active: boolean, + classes: string, + columnIndex: number, + columnId: ColumnId +) => JSX.Element; + +function getter( + elementCache: ElementCacheFn, + activeCell: ActiveCell, + columns: VisibleColumns, + dataframe: Dataframe, + editable: boolean, + selectedCells: SelectedCells +): JSX.Element[][] { + return R.addIndex(R.map)( + (_, rowIndex) => R.addIndex(R.map)( + (column, columnIndex) => { + const active = isActiveCell(activeCell, rowIndex, columnIndex); + const selected = isSelectedCell(selectedCells, rowIndex, columnIndex); + + const classes = + 'dash-cell' + + ` column-${columnIndex}` + + (active ? ' focused' : '') + + (!editable ? ' cell--uneditable' : '') + + (selected ? ' cell--selected' : '') + + (column.type === ColumnType.Dropdown ? ' dropdown' : ''); + + return elementCache([rowIndex, columnIndex], active, classes, columnIndex, column.id); + }, + columns + ), + dataframe + ) +} + +function decorator(_id: string): (( + activeCell: ActiveCell, + columns: VisibleColumns, + columnConditionalStyle: any, + columnStaticStyle: any, + dataframe: Dataframe +) => JSX.Element[][]) { + const elementCache = memoizerCache( + (active: boolean, classes: string, columnIndex: number, columnId: ColumnId) => () + ); + + return memoizeOne(getter).bind(undefined, elementCache); +} + +export default memoizeAll(decorator); diff --git a/src/dash-table/derived/visibleColumns.ts b/src/dash-table/derived/column/visible.ts similarity index 100% rename from src/dash-table/derived/visibleColumns.ts rename to src/dash-table/derived/column/visible.ts diff --git a/src/dash-table/derived/viewportDataframe.ts b/src/dash-table/derived/dataframe/viewport.ts similarity index 100% rename from src/dash-table/derived/viewportDataframe.ts rename to src/dash-table/derived/dataframe/viewport.ts diff --git a/src/dash-table/derived/virtualDataframe.ts b/src/dash-table/derived/dataframe/virtual.ts similarity index 100% rename from src/dash-table/derived/virtualDataframe.ts rename to src/dash-table/derived/dataframe/virtual.ts diff --git a/src/dash-table/derived/header/content.tsx b/src/dash-table/derived/header/content.tsx new file mode 100644 index 000000000..3fbef7ba9 --- /dev/null +++ b/src/dash-table/derived/header/content.tsx @@ -0,0 +1,148 @@ +import * as R from 'ramda'; +import React from 'react'; + +import { memoizeOneFactory } from 'core/memoizer'; +import { SortDirection, SortSettings } from 'core/sorting'; +import multiUpdateSettings from 'core/sorting/multi'; +import singleUpdateSettings from 'core/sorting/single'; + +import { + ColumnId, + PaginationMode, + SortingType, + VisibleColumns, + IVisibleColumn, + SetProps, + ControlledTableProps, + Sorting +} from 'dash-table/components/Table/props'; +import * as actions from 'dash-table/utils/actions'; + +function deleteColumn(column: IVisibleColumn, columns: VisibleColumns, columnRowIndex: any, setProps: SetProps, options: ControlledTableProps) { + return () => { + setProps(actions.deleteColumn(column, columns, columnRowIndex, options)); + }; +} + +function doSort(columnId: ColumnId, sortSettings: SortSettings, sortType: SortingType, setProps: SetProps) { + return () => { + let direction: SortDirection; + switch (getSorting(columnId, sortSettings)) { + case SortDirection.Descending: + direction = SortDirection.Ascending; + break; + case SortDirection.Ascending: + direction = SortDirection.None; + break; + case SortDirection.None: + default: + direction = SortDirection.Descending; + break; + } + + const sortingStrategy = sortType === 'single' ? + singleUpdateSettings : + multiUpdateSettings; + + setProps({ + sorting_settings: sortingStrategy( + sortSettings, + { columnId, direction } + ) + }); + }; +} + +function editColumnName(column: IVisibleColumn, columns: VisibleColumns, columnRowIndex: any, setProps: SetProps, options: ControlledTableProps) { + return () => { + setProps(actions.editColumnName(column, columns, columnRowIndex, options)); + }; +} + +function getSorting(columnId: ColumnId, settings: SortSettings): SortDirection { + const setting = R.find(s => s.columnId === columnId, settings); + + return setting ? setting.direction : SortDirection.None; +} + +function getSortingIcon(columnId: ColumnId, sortSettings: SortSettings) { + switch (getSorting(columnId, sortSettings)) { + case SortDirection.Descending: + return '↑'; + case SortDirection.Ascending: + return '↓'; + case SortDirection.None: + default: + return '↕'; + } +} + +function getter( + columns: VisibleColumns, + labelsAndIndices: R.KeyValuePair[], + sorting: Sorting, + sortType: SortingType, + sortSettings: SortSettings, + paginationMode: PaginationMode, + setProps: SetProps, + options: ControlledTableProps +): JSX.Element[][] { + return R.addIndex, JSX.Element[]>(R.map)( + ([labels, indices], headerRowIndex) => { + const isLastRow = headerRowIndex === labelsAndIndices.length - 1; + + return R.addIndex(R.map)( + columnIndex => { + const column = columns[columnIndex]; + + const editable = (column.editable_name && R.type(column.editable_name) === 'Boolean') || + (R.type(column.editable_name) === 'Number' && column.editable_name === headerRowIndex); + + const deletable = paginationMode !== 'be' && + ( + (column.deletable && R.type(column.deletable) === 'Boolean') || + (R.type(column.deletable) === 'Number' && column.deletable === headerRowIndex) + ); + + return (
+ {sorting && isLastRow ? + ( + {getSortingIcon(column.id, sortSettings)} + ) : + '' + } + + {editable ? + ( + {`✎`} + ) : + '' + } + + {deletable ? + ( + {'×'} + ) : + '' + } + + {labels[columnIndex]} +
); + }, + indices + ); + }, + labelsAndIndices + ); +} + +export default memoizeOneFactory(getter); diff --git a/src/dash-table/derived/header/fixedHeaders.ts b/src/dash-table/derived/header/fixedHeaders.ts new file mode 100644 index 000000000..4c6ca9396 --- /dev/null +++ b/src/dash-table/derived/header/fixedHeaders.ts @@ -0,0 +1,13 @@ +import { RowSelection } from 'dash-table/components/Table/props'; + +export default ( + fixedColumns: number, + rowDeletable: boolean, + rowSelectable: RowSelection +): number => { + const offset = + (rowDeletable ? 1 : 0) + + (rowSelectable ? 1 : 0); + + return Math.max(0, fixedColumns - offset); +}; \ No newline at end of file diff --git a/src/dash-table/derived/header/headerRows.ts b/src/dash-table/derived/header/headerRows.ts new file mode 100644 index 000000000..50c7e36c1 --- /dev/null +++ b/src/dash-table/derived/header/headerRows.ts @@ -0,0 +1,7 @@ +import { VisibleColumns } from 'dash-table/components/Table/props'; + +const getColLength = (c: any) => (Array.isArray(c.name) ? c.name.length : 1); + +export default ( + columns: VisibleColumns +): number => Math.max(...columns.map(getColLength)); \ No newline at end of file diff --git a/src/dash-table/derived/header/indices.ts b/src/dash-table/derived/header/indices.ts new file mode 100644 index 000000000..93ac7493c --- /dev/null +++ b/src/dash-table/derived/header/indices.ts @@ -0,0 +1,27 @@ +import * as R from 'ramda'; + +import { VisibleColumns } from 'dash-table/components/Table/props'; + +export default ( + columns: VisibleColumns, + labels: any[][], + mergeHeaders: boolean +): number[][] => { + return R.map(rowLabels => { + if (!mergeHeaders) { + return R.range(0, columns.length); + } else { + let columnIndices = [0]; + let compareIndex = 0; + rowLabels.forEach((label, i) => { + if (label === rowLabels[compareIndex]) { + return; + } + columnIndices.push(i); + compareIndex = i; + }); + + return columnIndices; + } + }, labels); +}; \ No newline at end of file diff --git a/src/dash-table/derived/header/labels.ts b/src/dash-table/derived/header/labels.ts new file mode 100644 index 000000000..5ca394d95 --- /dev/null +++ b/src/dash-table/derived/header/labels.ts @@ -0,0 +1,19 @@ +import * as R from 'ramda'; + +import { VisibleColumns } from 'dash-table/components/Table/props'; + +const getColNameAt = (c: any, i: number) => (Array.isArray(c.name) ? c.name[i] : c.name); + +export default ( + columns: VisibleColumns, + headerRows: number +): any[][] => { + return R.map( + headerRowIndex => columns.map(c => + R.isNil(c.name) && headerRowIndex === headerRows - 1 + ? c.id + : getColNameAt(c, headerRowIndex) + ), + R.range(0, headerRows) + ); +}; \ No newline at end of file diff --git a/src/dash-table/derived/header/operations.tsx b/src/dash-table/derived/header/operations.tsx new file mode 100644 index 000000000..e84114140 --- /dev/null +++ b/src/dash-table/derived/header/operations.tsx @@ -0,0 +1,40 @@ +import * as R from 'ramda'; +import React from 'react'; + +import { memoizeOneFactory } from 'core/memoizer'; + +import { + Datum, + RowSelection +} from 'dash-table/components/Table/props'; + +function rowSelectCell() { + return (); +} + +function rowDeleteHeader() { + return (); +} + +const getter = ( + headerRows: number, + rowSelectable: RowSelection, + rowDeletable: boolean +): JSX.Element[][] => R.addIndex(R.map)( + () => [ + ...(rowDeletable ? [rowDeleteHeader()] : []), + ...(rowSelectable ? [rowSelectCell()] : []) + ], + R.range(0, headerRows) +); + +export default memoizeOneFactory(getter); diff --git a/src/dash-table/derived/header/wrappers.tsx b/src/dash-table/derived/header/wrappers.tsx new file mode 100644 index 000000000..6e26765e4 --- /dev/null +++ b/src/dash-table/derived/header/wrappers.tsx @@ -0,0 +1,63 @@ +import * as R from 'ramda'; +import React from 'react'; + +import { memoizeOneFactory } from 'core/memoizer'; +import Stylesheet from 'core/Stylesheet'; + +import { VisibleColumns } from 'dash-table/components/Table/props'; + +export const DEFAULT_CELL_WIDTH = 200; + +function getter( + columns: VisibleColumns, + labelsAndIndices: R.KeyValuePair[], + mergeHeaders: boolean, + fixedColumns: number +): JSX.Element[][] { + return R.map(([labels, indices]) => { + return R.addIndex(R.map)( + (columnIndex, index) => { + const column = columns[columnIndex]; + + let colSpan: number; + if (!mergeHeaders) { + colSpan = 1; + } else { + if (columnIndex === R.last(indices)) { + colSpan = labels.length - columnIndex; + } else { + colSpan = indices[index + 1] - columnIndex; + } + } + + const spannedColumns = columns.filter((_column, i) => + i >= columnIndex && + i < columnIndex + colSpan && + i < fixedColumns + ); + + // Calculate the width of all those columns combined + const width = `calc(${spannedColumns.map(c => Stylesheet.unit(c.width || DEFAULT_CELL_WIDTH, 'px')).join(' + ')})`; + const maxWidth = `calc(${spannedColumns.map(c => Stylesheet.unit(c.maxWidth || c.width || DEFAULT_CELL_WIDTH, 'px')).join(' + ')})`; + const minWidth = `calc(${spannedColumns.map(c => Stylesheet.unit(c.minWidth || c.width || DEFAULT_CELL_WIDTH, 'px')).join(' + ')})`; + + return (); + }, + indices + ); + }, + labelsAndIndices + ); +} + +export default memoizeOneFactory(getter); diff --git a/src/dash-table/derived/table/fragments.tsx b/src/dash-table/derived/table/fragments.tsx new file mode 100644 index 000000000..14aca4746 --- /dev/null +++ b/src/dash-table/derived/table/fragments.tsx @@ -0,0 +1,56 @@ +import * as R from 'ramda'; +import React from 'react'; + +interface IAccumulator { + cells: number; + count: number; +} + +function renderFragment(cells: any[][] | null) { + return cells ? + ( + + {cells.map( + (row, idx) => {row}) + } + +
) : + null; +} + +export default ( + fixedColumns: number, + fixedRows: number, + cells: JSX.Element[][] +): (JSX.Element | null)[][] => { + // slice out fixed columns + const fixedColumnCells = fixedColumns ? + R.map(row => + row.splice(0, R.reduceWhile( + acc => acc.count < fixedColumns, + (acc, cell) => { + acc.cells++; + acc.count += (cell.props.colSpan || 1); + + return acc; + }, + { cells: 0, count: 0 }, + row as any + ).cells), + cells) : + null; + + // slice out fixed rows + const fixedRowCells = fixedRows ? + cells.splice(0, fixedRows) : + null; + + const fixedRowAndColumnCells = fixedRows && fixedColumnCells ? + fixedColumnCells.splice(0, fixedRows) : + null; + + return [ + [renderFragment(fixedRowAndColumnCells), renderFragment(fixedRowCells)], + [renderFragment(fixedColumnCells), renderFragment(cells)] + ]; +}; \ No newline at end of file diff --git a/src/dash-table/derived/table/index.tsx b/src/dash-table/derived/table/index.tsx new file mode 100644 index 000000000..176917161 --- /dev/null +++ b/src/dash-table/derived/table/index.tsx @@ -0,0 +1,56 @@ +import CellFactory from 'dash-table/components/CellFactory'; +import FilterFactory from 'dash-table/components/FilterFactory'; +import HeaderFactory from 'dash-table/components/HeaderFactory'; +import { ControlledTableProps, SetProps } from 'dash-table/components/Table/props'; + +const handleSetFilter = (setProps: SetProps, filtering_settings: string) => setProps({ filtering_settings }); + +function filterPropsFn(propsFn: () => ControlledTableProps) { + const { + columns, + filtering, + filtering_settings, + filtering_type, + id, + row_deletable, + row_selectable, + setProps + } = propsFn(); + + const fillerColumns = + (row_deletable ? 1 : 0) + + (row_selectable ? 1 : 0); + + + return { + columns: columns, + fillerColumns, + filtering: filtering, + filtering_settings: filtering_settings, + filtering_type: filtering_type, + id: id, + setFilter: handleSetFilter.bind(undefined, setProps) + }; +} + +function getter( + cellFactory: CellFactory, + filterFactory: FilterFactory, + headerFactory: HeaderFactory +): JSX.Element[][] { + const rows: JSX.Element[][] = []; + + rows.push(...headerFactory.createHeaders()); + rows.push(...filterFactory.createFilters()); + rows.push(...cellFactory.createCells()); + + return rows; +} + +export default (propsFn: () => ControlledTableProps): (() => JSX.Element[][]) => { + const cellFactory = new CellFactory(propsFn); + const filterFactory = new FilterFactory(() => filterPropsFn(propsFn)); + const headerFactory = new HeaderFactory(propsFn); + + return getter.bind(undefined, cellFactory, filterFactory, headerFactory); +}; \ No newline at end of file diff --git a/src/dash-table/handlers/cellEvents.ts b/src/dash-table/handlers/cellEvents.ts new file mode 100644 index 000000000..6b7325221 --- /dev/null +++ b/src/dash-table/handlers/cellEvents.ts @@ -0,0 +1,112 @@ +import * as R from 'ramda'; +import { SelectedCells, ICellFactoryOptions } from 'dash-table/components/Table/props'; + +function isCellSelected(selectedCells: SelectedCells, idx: number, i: number) { + return selectedCells && R.contains([idx, i], selectedCells); +} + +export const handleClick = (propsFn: () => ICellFactoryOptions, idx: number, i: number, e: any) => { + const { + editable, + is_focused, + selected_cell, + setProps + } = propsFn(); + + const selected = isCellSelected(selected_cell, idx, i); + + if (!editable) { + return; + } + if (!is_focused) { + e.preventDefault(); + } + + // don't update if already selected + if (selected) { + return; + } + + e.preventDefault(); + const cellLocation: [number, number] = [idx, i]; + const newProps: Partial = { + is_focused: false, + active_cell: cellLocation + }; + + const selectedRows = R.uniq(R.pluck(0, selected_cell)).sort((a, b) => a - b); + const selectedCols = R.uniq(R.pluck(1, selected_cell)).sort((a, b) => a - b); + const minRow = selectedRows[0]; + const minCol = selectedCols[0]; + + if (e.shiftKey) { + newProps.selected_cell = R.xprod( + R.range( + R.min(minRow, cellLocation[0]), + R.max(minRow, cellLocation[0]) + 1 + ), + R.range( + R.min(minCol, cellLocation[1]), + R.max(minCol, cellLocation[1]) + 1 + ) + ) as any; + } else { + newProps.selected_cell = [cellLocation]; + } + + setProps(newProps); +}; + +export const handleDoubleClick = (propsFn: () => ICellFactoryOptions, idx: number, i: number, e: any) => { + const { + editable, + is_focused, + setProps + } = propsFn(); + + if (!editable) { + return; + } + + const cellLocation: [number, number] = [idx, i]; + + if (!is_focused) { + e.preventDefault(); + const newProps = { + selected_cell: [cellLocation], + active_cell: cellLocation, + is_focused: true + }; + setProps(newProps); + } +}; + +export const handleChange = (propsFn: () => ICellFactoryOptions, idx: number, i: number, value: any) => { + const { + columns, + dataframe, + editable, + setProps, + viewport + } = propsFn(); + + const c = columns[i]; + const realIdx = viewport.indices[idx]; + + if (!editable) { + return; + } + + const newDataframe = R.set( + R.lensPath([realIdx, c.id]), + value, + dataframe + ); + setProps({ + dataframe: newDataframe + }); +}; + +export const handlePaste = (_propsFn: () => ICellFactoryOptions, _idx: number, _i: number, e: ClipboardEvent) => { + e.preventDefault(); +}; \ No newline at end of file diff --git a/src/dash-table/utils/TableClipboardHelper.ts b/src/dash-table/utils/TableClipboardHelper.ts index 9f23239ae..ac91032b0 100644 --- a/src/dash-table/utils/TableClipboardHelper.ts +++ b/src/dash-table/utils/TableClipboardHelper.ts @@ -5,7 +5,7 @@ import Clipboard from 'core/Clipboard'; import Logger from 'core/Logger'; import { colIsEditable } from 'dash-table/components/derivedState'; -import { ActiveCell, Columns, Dataframe, SelectedCells } from 'dash-table/components/Table/props'; +import { ActiveCell, Columns, Dataframe, SelectedCells, ColumnType } from 'dash-table/components/Table/props'; export default class TableClipboardHelper { public static toClipboard(e: any, selectedCells: SelectedCells, columns: Columns, dataframe: Dataframe) { @@ -43,6 +43,14 @@ export default class TableClipboardHelper { return; } + if (!overflowRows) { + Logger.debug(`Clipboard -- Sorting or filtering active, do not create new rows`); + } + + if (!overflowColumns) { + Logger.debug(`Clipboard -- Do not create new columns`); + } + const values = SheetClip.prototype.parse(text); let newDataframe = dataframe; @@ -57,16 +65,12 @@ export default class TableClipboardHelper { newColumns.push({ id: `Column ${i + 1}`, name: `Column ${i + 1}`, - type: 'numeric' + type: ColumnType.Text }); newDataframe.forEach(row => (row[`Column ${i}`] = '')); } } - if (overflowRows) { - Logger.debug(`Clipboard -- Sorting or filtering active, do not create new rows`); - } - const realActiveRow = derived_viewport_indices[activeCell[0]]; if (overflowRows && values.length + realActiveRow >= dataframe.length) { const emptyRow: any = {}; @@ -89,7 +93,6 @@ export default class TableClipboardHelper { const iRealCell = derived_viewport_indices[iOffset]; const jOffset = activeCell[1] + j; - // let newDataframe = dataframe; const col = newColumns[jOffset]; if (col && colIsEditable(true, col)) { newDataframe = R.set( diff --git a/src/dash-table/utils/actions.js b/src/dash-table/utils/actions.js index 6d91ce239..84657001a 100644 --- a/src/dash-table/utils/actions.js +++ b/src/dash-table/utils/actions.js @@ -1,75 +1,31 @@ import * as R from 'ramda'; +function getGroupedColumnIndices(column, columns, headerRowIndex) { + const columnIndex = columns.indexOf(column); -export function deleteRow(rowIndex, props) { - const { - active_cell, - dataframe, - end_cell, - selected_cell, - selected_rows, - start_cell - } = props; - - const newProps = { - dataframe: R.remove(rowIndex, 1, dataframe), - }; - if (R.is(Array, active_cell) && active_cell[0] === rowIndex) { - newProps.active_cell = []; - } - if (R.is(Array, end_cell) && end_cell[0] === rowIndex) { - newProps.end_cell = []; - } - if (R.is(Array, selected_cell) && selected_cell[0] === rowIndex) { - newProps.selected_cell = []; + if (!column.name || (Array.isArray(column.name) && column.name.length < headerRowIndex)) { + return { groupIndexFirst: columnIndex, groupIndexLast: columnIndex }; } - if (R.is(Array, start_cell) && start_cell[0] === rowIndex) { - newProps.start_cell = [0, 0]; - } - if (R.is(Array, selected_rows) && R.contains(rowIndex, selected_rows)) { - newProps.selected_rows = R.without([rowIndex], selected_rows); - } - return newProps; -} + let lastColumnIndex = columnIndex; -function getGroupedColumnIndices(column, headerRowIndex, props) { - // Find the set of column indices that share the same name and are adjacent - // as the given column ("group") - const {columns} = props; + for (let i = columnIndex; i < columns.length; ++i) { + const c = columns[i]; - // if the columns are merged, then deleting will delete all of the - // merged columns - let columnName; - let names; - if (R.type(headerRowIndex) !== 'Null') { - columnName = column.name[headerRowIndex]; - names = R.pluck( - headerRowIndex, - R.pluck('name', columns) - ); - } else { - columnName = column.name; - names = R.pluck('name', columns); - } - const columnIndex = R.findIndex(R.propEq('id', column.id), columns); - let groupIndexFirst = columnIndex; - let groupIndexLast = columnIndex; - while(names[groupIndexFirst - 1] === columnName) { - groupIndexFirst--; - } - - while(names[groupIndexLast + 1] === columnName) { - groupIndexLast++; + if (c.name && Array.isArray(c.name) && c.name.length > headerRowIndex && c.name[headerRowIndex] === column.name[headerRowIndex]) { + lastColumnIndex = i; + } else { + break; + } } - return {groupIndexFirst, groupIndexLast}; + return { groupIndexFirst: columnIndex, groupIndexLast: lastColumnIndex }; } -export function deleteColumn(column, headerRowIndex, props) { - const {columns, dataframe} = props; +export function deleteColumn(column, columns, headerRowIndex, props) { + const { dataframe} = props; const {groupIndexFirst, groupIndexLast} = getGroupedColumnIndices( - column, headerRowIndex, props + column, columns, headerRowIndex ); const rejectedColumnIds = R.slice( groupIndexFirst, @@ -94,10 +50,9 @@ export function deleteColumn(column, headerRowIndex, props) { } } -export function editColumnName(column, headerRowIndex, props) { - const {columns} = props; - const {groupIndexFirst, groupIndexLast} = getGroupedColumnIndices( - column, headerRowIndex, props +export function editColumnName(column, columns, headerRowIndex, props) { + const { groupIndexFirst, groupIndexLast } = getGroupedColumnIndices( + column, columns, headerRowIndex, props ); /* eslint no-alert: 0 */ const newColumnName = window.prompt('Enter a new column name'); diff --git a/tests/cypress/tests/server/copy_paste_test.ts b/tests/cypress/tests/server/copy_paste_test.ts index 051746b41..b06dfff3c 100644 --- a/tests/cypress/tests/server/copy_paste_test.ts +++ b/tests/cypress/tests/server/copy_paste_test.ts @@ -98,7 +98,7 @@ describe('copy paste', () => { }); it('BE rountrip with sorted, unfiltered data', () => { - cy.get('tr th.column-0 .sort').click(); + cy.get('tr th.column-0 .sort').last().click(); DashTable.getCell(0, 0).click(); DashTable.getCell(0, 0).within(() => cy.get('.dash-cell-value').should('have.value', '249')); diff --git a/tests/cypress/tests/server/delete_cells_test.ts b/tests/cypress/tests/server/delete_cells_test.ts index e99a45536..1e680288e 100644 --- a/tests/cypress/tests/server/delete_cells_test.ts +++ b/tests/cypress/tests/server/delete_cells_test.ts @@ -31,7 +31,7 @@ describe('delete cells', () => { describe('sorted dataframe', () => { beforeEach(() => { - cy.get('tr th.column-0 .sort').click(); + cy.get('tr th.column-0 .sort').last().click(); }); it('can delete single cell', () => { diff --git a/tests/cypress/tests/server/delete_row_test.ts b/tests/cypress/tests/server/delete_row_test.ts index 01625348d..d29af34bf 100644 --- a/tests/cypress/tests/server/delete_row_test.ts +++ b/tests/cypress/tests/server/delete_row_test.ts @@ -10,7 +10,7 @@ describe('delete', () => { }); it('can delete row when sorted', () => { - cy.get('tr th.column-0 .sort').click({ force: true }); + cy.get('tr th.column-0 .sort').last().click({ force: true }); DashTable.getCell(0, 0).within(() => cy.get('.dash-cell-value').should('have.html', '28155')); DashTable.getDelete(0).click(); DashTable.getCell(0, 0).within(() => cy.get('.dash-cell-value').should('have.html', '28154')); diff --git a/tests/cypress/tests/server/select_row_test.ts b/tests/cypress/tests/server/select_row_test.ts index 9833db046..ce960a22d 100644 --- a/tests/cypress/tests/server/select_row_test.ts +++ b/tests/cypress/tests/server/select_row_test.ts @@ -10,7 +10,7 @@ describe('select row', () => { }); it('can select row when sorted', () => { - cy.get('tr th.column-0 .sort').click({ force: true }); + cy.get('tr th.column-0 .sort').last().click({ force: true }); DashTable.getSelect(0).within(() => cy.get('input').click()); DashTable.getSelect(0).within(() => cy.get('input').should('be.checked')); }); @@ -18,7 +18,7 @@ describe('select row', () => { it('select, sort, new row is not selected', () => { DashTable.getSelect(0).within(() => cy.get('input').click()); DashTable.getSelect(0).within(() => cy.get('input').should('be.checked')); - cy.get('tr th.column-0 .sort').click({ force: true }); + cy.get('tr th.column-0 .sort').last().click({ force: true }); DashTable.getSelect(0).within(() => cy.get('input').should('not.be.checked')); }); }); diff --git a/tests/cypress/tests/standalone/delete_row_test.ts b/tests/cypress/tests/standalone/delete_row_test.ts index f9d445a20..c586f0286 100644 --- a/tests/cypress/tests/standalone/delete_row_test.ts +++ b/tests/cypress/tests/standalone/delete_row_test.ts @@ -10,7 +10,7 @@ describe('delete', () => { }); it('can delete row when sorted', () => { - cy.get('tr th.column-0 .sort').click({ force: true }); + cy.get('tr th.column-0 .sort').last().click({ force: true }); DashTable.getCell(0, 0).within(() => cy.get('.dash-cell-value').should('have.html', '4999')); DashTable.getDelete(0).click(); DashTable.getCell(0, 0).within(() => cy.get('.dash-cell-value').should('have.html', '4998')); diff --git a/tests/cypress/tests/standalone/edit_cell_test.ts b/tests/cypress/tests/standalone/edit_cell_test.ts index 5caac002b..2bdda094b 100644 --- a/tests/cypress/tests/standalone/edit_cell_test.ts +++ b/tests/cypress/tests/standalone/edit_cell_test.ts @@ -62,6 +62,30 @@ describe('edit cell', () => { }); }); + it('can edit on 2nd page', () => { + DashTable.getCell(0, 0).click(); + DashTable.getCell(0, 0).within(() => cy.get('input').should('have.value', '1')); + cy.get('button.next-page').click(); + DashTable.getCell(0, 0).within(() => cy.get('input').should('have.value', '251')); + + DOM.focused.type(`abc${Key.Enter}`); + DashTable.getCell(0, 0).click(); + DashTable.getCell(0, 0).within(() => cy.get('input').should('have.value', 'abc')); + }); + + it.only('can delete then edit on 2nd page', () => { + DashTable.getCell(0, 0).click(); + DashTable.getCell(0, 0).within(() => cy.get('input').should('have.value', '1')); + cy.get('button.next-page').click(); + DashTable.getCell(0, 0).within(() => cy.get('input').should('have.value', '251')); + DashTable.getDelete(0).click(); + DashTable.getCell(0, 0).within(() => cy.get('input').should('have.value', '252')); + + DOM.focused.type(`abc${Key.Enter}`); + DashTable.getCell(0, 0).click(); + DashTable.getCell(0, 0).within(() => cy.get('input').should('have.value', 'abc')); + }); + // https://github.com/plotly/dash-table/issues/50 it('can edit on "enter"', () => { DashTable.getCell(0, 1).click(); diff --git a/tests/cypress/tests/standalone/select_row_test.ts b/tests/cypress/tests/standalone/select_row_test.ts index 6af3e3417..37539d891 100644 --- a/tests/cypress/tests/standalone/select_row_test.ts +++ b/tests/cypress/tests/standalone/select_row_test.ts @@ -10,7 +10,7 @@ describe('select row', () => { }); it('can select row when sorted', () => { - cy.get('tr th.column-0 .sort').click({ force: true }); + cy.get('tr th.column-0 .sort').last().click({ force: true }); DashTable.getSelect(0).within(() => cy.get('input').click()); DashTable.getSelect(0).within(() => cy.get('input').should('be.checked')); }); @@ -18,7 +18,7 @@ describe('select row', () => { it('select, sort, new row is not selected', () => { DashTable.getSelect(0).within(() => cy.get('input').click()); DashTable.getSelect(0).within(() => cy.get('input').should('be.checked')); - cy.get('tr th.column-0 .sort').click({ force: true }); + cy.get('tr th.column-0 .sort').last().click({ force: true }); DashTable.getSelect(0).within(() => cy.get('input').should('not.be.checked')); }); }); diff --git a/tests/cypress/tests/standalone/sorting_test.ts b/tests/cypress/tests/standalone/sorting_test.ts index c8f5b3f15..3f254c65c 100644 --- a/tests/cypress/tests/standalone/sorting_test.ts +++ b/tests/cypress/tests/standalone/sorting_test.ts @@ -10,7 +10,7 @@ describe('sort', () => { DashTable.getCell(1, 6).within(() => cy.get('.Select-value-label').should('have.html', 'Snowy')); DashTable.getCell(2, 6).within(() => cy.get('.Select-value-label').should('have.html', 'Tropical Beaches')); DashTable.getCell(3, 6).within(() => cy.get('.Select-value-label').should('have.html', 'Humid')); - cy.get('tr th.column-6 .sort').click(); + cy.get('tr th.column-6 .sort').last().click(); DashTable.getCell(0, 6).within(() => cy.get('.Select-value-label').should('have.html', 'Wet')); DashTable.getCell(1, 6).within(() => cy.get('.Select-value-label').should('have.html', 'Wet')); DashTable.getCell(2, 6).within(() => cy.get('.Select-value-label').should('have.html', 'Wet')); diff --git a/tests/cypress/tests/unit/derivedViewport_test.ts b/tests/cypress/tests/unit/derivedViewport_test.ts index 8a67656da..26e941257 100644 --- a/tests/cypress/tests/unit/derivedViewport_test.ts +++ b/tests/cypress/tests/unit/derivedViewport_test.ts @@ -1,6 +1,6 @@ import * as R from 'ramda'; -import derivedViewportDataframe from 'dash-table/derived/viewportDataframe'; +import derivedViewportDataframe from 'dash-table/derived/dataframe/viewport'; describe('derived viewport', () => { const viewportDataframe = derivedViewportDataframe(); diff --git a/tests/cypress/tsconfig.json b/tests/cypress/tsconfig.json index d9986bf8a..af6c03762 100644 --- a/tests/cypress/tsconfig.json +++ b/tests/cypress/tsconfig.json @@ -21,7 +21,7 @@ "strict": true, "strictPropertyInitialization": false, "target": "esnext", - "traceResolution": true, + "traceResolution": false, "types": [ "cypress" ] diff --git a/tests/visual/percy-storybook/tsconfig.json b/tests/visual/percy-storybook/tsconfig.json index 2dbe79bb3..17ea601d7 100644 --- a/tests/visual/percy-storybook/tsconfig.json +++ b/tests/visual/percy-storybook/tsconfig.json @@ -20,6 +20,6 @@ "strict": true, "strictPropertyInitialization": false, "target": "esnext", - "traceResolution": true + "traceResolution": false } } \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 2e2fd4ecf..c552cdb9f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -21,7 +21,7 @@ "strict": true, "strictPropertyInitialization": false, "target": "esnext", - "traceResolution": true + "traceResolution": false }, "exclude": [ "tests/*"