fin-hypergrid
Version:
Canvas-based high-performance grid
1 lines • 263 kB
JavaScript
!function o(s,a,l){function c(t,e){if(!a[t]){if(!s[t]){var i="function"==typeof require&&require;if(!e&&i)return i(t,!0);if(h)return h(t,!0);var n=new Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}var r=a[t]={exports:{}};s[t][0].call(r.exports,function(e){return c(s[t][1][e]||e)},r,r.exports,o,s,a,l)}return a[t].exports}for(var h="function"==typeof require&&require,e=0;e<l.length;e++)c(l[e]);return c}({1:[function(e,t,i){"use strict";var r=(window.fin=window.fin||{}).Hypergrid=e("fin-hypergrid");r.require=e("./module-loader"),r.src={};var n={};function o(e,t){var i;switch(t=t||"src"){case"src":i="Reference to the `Hypergrid."+e+"` namespace has been deprecated as of v3.0.0 and will be removed in a future release. Update dereferencing of this namespace such as `Hypergrid."+e+".modulename` to `Hypergrid.require('fin-hypergrid/src/"+e+"/modulename')`. See https://fin-hypergrid.github.io#internal-modules.";break;case"modules":i="Reference to the `"+e+"` external module through `Hypergrid."+e+"` has been deprecated as of v3.0.0 in favor of `Hypergrid.require('"+e+"')`. The deprecated usage will be removed in a future release. See https://fin-hypergrid.github.io#external-dependencies."}o.warned[e]||(console.warn(i),o.warned[e]=!0);var n=r[t];return(n.items||n)[e]}Object.defineProperties(r.src,{lib:{value:{assignOrDelete:e("fin-hypergrid/src/lib/assignOrDelete"),cellEventFactory:e("fin-hypergrid/src/lib/cellEventFactory"),dynamicProperties:e("fin-hypergrid/src/lib/dynamicProperties"),dispatchGridEvent:e("fin-hypergrid/src/lib/dispatchGridEvent"),fields:e("fin-hypergrid/src/lib/fields"),graphics:e("fin-hypergrid/src/lib/graphics"),Canvas:e("fin-hypergrid/src/lib/Canvas"),InclusiveRectangle:e("fin-hypergrid/src/lib/InclusiveRectangle"),Registry:e("fin-hypergrid/src/lib/Registry"),get DataSourceOrigin(){return n.DataSourceOrigin||(console.warn("The `DataSourceOrigin` module has been retired as of v3.0.0. The new default data model, `datasaur-local`, will be returned instead. Note, however, that it may be removed from the build in a future release. Developers are advised and encouraged to provide their own data model going forward. For example: `new Hypergrid({ DataSource: require('datasaur-local') })`; or provide a live data model instance in the `dataSource` (small \"d\") option."),n.DataSourceOrigin=!0),e("datasaur-local")},get dynamicPropertyDescriptors(){return n.dynamicPropertyDescriptors||(console.warn("The `dynamicPropertyDescriptors` module has been renamed as of v3.0.0 to `dynamicProperties`. (This legacy name will be removed in a future version.)"),n.dynamicPropertyDescriptors=!0),e("fin-hypergrid/src/lib/dynamicProperties")}}},behaviors:{value:{Behavior:e("fin-hypergrid/src/behaviors/Behavior"),Local:e("fin-hypergrid/src/behaviors/Local"),Column:e("fin-hypergrid/src/behaviors/Column"),get JSON(){return n.behaviorsJSON||console.warn("fin-hypergrid/src/behaviors/src/behaviors/JSON has been renamed to Local as of v3.0.0. (Will be removed in a future release.)"),n.behaviorsJSON=!0,e("fin-hypergrid/src/behaviors/Local")}}},cellEditors:{value:e("fin-hypergrid/src/cellEditors")},cellRenderers:{value:e("fin-hypergrid/src/cellRenderers")},dataModels:{value:e("fin-hypergrid/src/dataModels")},features:{value:e("fin-hypergrid/src/features")},Base:{value:e("fin-hypergrid/src/Base")},defaults:{value:e("fin-hypergrid/src/defaults")}}),Object.defineProperties(r,{lib:{get:o.bind(null,"lib")},behaviors:{get:o.bind(null,"behaviors")},dataModels:{get:function(){return o("dataModels").items}},features:{get:o.bind(null,"features")},rectangular:{get:o.bind(null,"rectangular","modules")}}),o.warned={}},{"./module-loader":2,"datasaur-local":4,"fin-hypergrid":27,"fin-hypergrid/src/Base":25,"fin-hypergrid/src/behaviors/Behavior":33,"fin-hypergrid/src/behaviors/Column":34,"fin-hypergrid/src/behaviors/Local":41,"fin-hypergrid/src/cellEditors":56,"fin-hypergrid/src/cellRenderers":67,"fin-hypergrid/src/dataModels":69,"fin-hypergrid/src/defaults":70,"fin-hypergrid/src/features":85,"fin-hypergrid/src/lib/Canvas":86,"fin-hypergrid/src/lib/InclusiveRectangle":88,"fin-hypergrid/src/lib/Registry":90,"fin-hypergrid/src/lib/assignOrDelete":93,"fin-hypergrid/src/lib/cellEventFactory":94,"fin-hypergrid/src/lib/dispatchGridEvent":96,"fin-hypergrid/src/lib/dynamicProperties":97,"fin-hypergrid/src/lib/fields":99,"fin-hypergrid/src/lib/graphics":100}],2:[function(e,t,i){"use strict";var o=e("fin-hypergrid"),s=e("fin-hypergrid/images"),a=/^fin-hypergrid\/src\/(Base|defaults|cellEditors|cellRenderers|dataModels|features)$/,l=/^fin-hypergrid\/src\/(lib|behaviors|cellEditors|cellRenderers|dataModels|features)\/(\w+)$/,c=/^\.\.?\/(((\.\.?)|(\w[.\w]*))\/)*(\w[.\w]*)$/,h=/(\/(index(\.js)?)?|\.js)$/;t.exports=function(e){var t,i;switch(e){case"fin-hypergrid":t=o;break;case"fin-hypergrid/images":t=s;break;default:t=(i=e.match(a))?o.src[i[1]]:(i=e.match(l))?((t=o.src[i[1]]).items||t)[i[2]]:(i=e.match(c))?o.modules[i[5]]:o.modules[e]}if(!t){var n="Unknown module "+e,r=e.match(h);throw r&&(n+=' (try omitting the trailing "'+r[1]+'")'),n}return t}},{"fin-hypergrid":27,"fin-hypergrid/images":8}],3:[function(e,t,i){"use strict";var o=e("extend-me").Base.extend("DatasaurBase",{isNullObject:!0,drillDownCharMap:{true:"▼",false:"▶",undefined:"",null:" "},DataError:n,initialize:function(e,t){if(e)for(this.handlers=e.handlers,this.next=e;e;)e=(this.source=e).next;else this.handlers=[],this.source=this;this.install(Object.getPrototypeOf(this))},install:function(t,i){i=i||{};var n=this,e=function(t){var e,i=t.hasOwnProperty("!!keys")&&t["!!keys"],n=s.concat(t.hasOwnProperty("!keys")&&t["!keys"]||[]);e=Array.isArray(t)?t:Object.keys(t).filter(function(e){return"function"==typeof Object.getOwnPropertyDescriptor(t,e).value});return e.filter(function(e){return!(i&&i.indexOf(e)<0||0<=n.indexOf(e))})}(t),r=i.inject&&!Array.isArray(t);e.forEach(function(e){r&&(function(e,t,i){do{if(e[t])if(i)for(var n=e;n&&n!==Object.prototype;n=Object.getPrototypeOf(n))delete n[t];else if(e[t]!==o.prototype[t])return e[t];e=e.next}while(e)}(n,e,i.force)||(this.source[e]=t[e])),o.prototype[e]||(o.prototype[e]=function(){if(this.next)return this.next[e].apply(this.next,arguments)})},this)},dispatchEvent:function(t){this.handlers.forEach(function(e){e.call(this,t)},this)},addListener:function(e){this.handlers.indexOf(e)<0&&this.handlers.push(e)},removeListener:function(e){var t=this.handlers.indexOf(e);0<=t&&delete this.handlers[t]},removeAllListeners:function(){this.handlers.length=0},dump:function(e){e=Math.min(this.getRowCount(),e||Math.max(100,this.getRowCount()));for(var t=[],i=this.getSchema(),n=i?i.map(function(e){return e.name}):this.getHeaders(),r=this.getColumnCount(),o=this.viewMakesSense,s=0;s<e;s++){for(var a={},l=0;l<r;l++){var c=this.getValue(l,s);0===l&&o&&(c=this.fixIndentForTableDisplay(c)),a[n[l]]=c}t[s]=a}console.table(t)}});var s=["constructor","initialize","!keys","!!keys"];function n(e){this.message=e}(n.prototype=Object.create(Error.prototype)).name="DataError",t.exports=o},{"extend-me":5}],4:[function(e,t,i){"use strict";var n=e("datasaur-base").extend("DatasaurLocal",{initialize:function(e,t){this.reset()},reset:function(){this.schema=[],this.data=[]},setData:function(e,t){this.data=e||[],t?this.setSchema(t):this.data.length&&!this.schema.length&&this.setSchema([]),this.dispatchEvent("fin-hypergrid-data-loaded")},getSchema:function(){return this.schema},setSchema:function(e){if(!e.length){var t=this.getFirstRow();t&&(e=Object.keys(t))}this.schema=e,this.dispatchEvent("fin-hypergrid-schema-loaded")},getFirstRow:function(){for(var e in this.data)if(this.data[e])return this.data[e]},getRow:function(e){return this.data[e]},setRow:function(e,t){this.data[e]=t||void 0},getRowMetadata:function(e,t){var i=this.data[e];return i&&(i.__META||void 0!==t&&(i.__META=Object.create(t)))},setRowMetadata:function(e,t){var i=this.data[e];return i&&(t?i.__META=t:delete i.__META),!!i},addRow:function(e,t){1===arguments.length&&(t=e,e=void 0),void 0===e||e>=this.getRowCount()?this.data.push(t):this.data.splice(e,0,t),this.dispatchEvent("fin-hypergrid-data-shape-changed")},delRow:function(e,t){var i=this.data.splice(e,void 0===t?1:t);return i.length&&this.dispatchEvent("fin-hypergrid-data-shape-changed"),i},getValue:function(e,t){var i=this.data[t];return i?i[this.schema[e].name]:null},setValue:function(e,t,i){this.data[t][this.schema[e].name]=i},getRowCount:function(){return this.data.length},getColumnCount:function(){return this.schema.length}});t.exports=n},{"datasaur-base":3}],5:[function(e,t,i){"use strict";function s(e,t){switch(arguments.length){case 0:t={};break;case 1:switch(typeof e){case"object":t=e,e=void 0;break;case"string":t={};break;default:throw"Single-parameter overload must be either string or object."}break;case 2:if("string"!=typeof e||"object"!=typeof t)throw"Two-parameter overload must be string, object.";break;default:throw"Too many parameters"}function i(){this.preInitialize&&this.preInitialize.apply(this,arguments),function(){var n=this,r=arguments;!function e(t){var i=Object.getPrototypeOf(t);i.constructor!==Object&&(e(i),i.hasOwnProperty("initialize")&&i.initialize.apply(n,r))}(n)}.apply(this,arguments),this.postInitialize&&this.postInitialize.apply(this,arguments)}i.extend=s,i.getClassName=a,i.parent=l;var n,r,o=i.prototype=Object.create(this.prototype);for(n in o.constructor=i,(e=e||o.$$CLASS_NAME||o.name)&&(Object.defineProperty(i,"name",{value:e,configurable:!0}),o.$$CLASS_NAME=e),t)(r=Object.getOwnPropertyDescriptor(t,n))&&Object.defineProperty(o,n,r);return"function"==typeof this.postExtend&&this.postExtend(o),i}function n(){}function a(){return this.prototype.$$CLASS_NAME||this.prototype.name||this.name}function l(e){var t=this.prototype;if(t)for(;t=Object.getPrototypeOf(t),e&&t&&t.constructor.name!==e;);return t&&t.constructor}n.prototype={constructor:n.prototype.constructor,getClassName:function(){return this.$$CLASS_NAME||this.name||this.constructor.name},get super(){return Object.getPrototypeOf(Object.getPrototypeOf(this))},superMember:function(e){for(var t=this.super;!(t=Object.getPrototypeOf(t)).hasOwnProperty(e););return t&&t[e]},superMethod:function(e){var t=this.superMember(e);if("function"!=typeof t)throw new TypeError("this."+e+" is not a function");return t},callSuperMethod:function(e){return this.superMethod(e).apply(this,Array.prototype.slice.call(arguments,1))}},(n.extend=s).Base=n,t.exports=s},{}],6:[function(e,t,i){"use strict";i.grid=[".hypergrid-container {","\tposition: relative;","\theight: 500px;","}",".hypergrid-container > div:first-child {","\tposition: absolute;","\tleft: 0;","\ttop: 0;","\tright: 0;","\tbottom: 0;","}",".hypergrid-container > div:first-child > div.info {","\tposition: absolute;","\tdisplay: none; /* initially hidden */","\tmargin-top: 150px; /* to place below headers */","\tcolor: #eee;","\ttext-shadow: 1px 1px #ccc;","\tfont-size: 36pt;","\tfont-weight: bold;","\ttext-align: center;","\ttop: 0; right: 0; bottom: 0; left: 0;","}",".hypergrid-textfield {","\tposition: absolute;","\tfont-size: 12px;","\tcolor: black;","\tbackground-color: ivory;","\tbox-sizing: border-box;","\tmargin: 0;","\tpadding: 0 5px;","\tborder: 0; /*border: 1px solid #777;*/","\toutline: 0;","}","",".hypergrid {","\ttouch-action: none;","}"].join("\n")},{}],7:[function(e,t,i){t.exports={calendar:{type:"image/png",data:"iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAc0lEQVR4nIXQwQkCMRSE4U9ZLMCT9Xjaq2AfNhfYU5oQLMAOtoN48EWei5iBIRPe/yYQ3qrhf1lFG7iKcEaJxSfukUvMWgdHavt0uWHtg2QwxXnAnJZ2uOLyVZtybzzhgWNmfoFl0/YB87NbzR1cjP9xeQHSDC6mcL1xFQAAAABJRU5ErkJggg=="},checked:{type:"image/png",data:"iVBORw0KGgoAAAANSUhEUgAAAAsAAAALCAMAAACecocUAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4xpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDMwMiwgMjAxNy8wMy8wMi0xNjo1OTozOCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoxZmM0YjdjYS01N2U3LTRjZTUtYWE3Zi1kYmFjZTU0ODJmZjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkIzRUM3OEQzNkMyMTFFODhEOUJCMzRBRUM0QUQ5QUMiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkIzRUM3OEMzNkMyMTFFODhEOUJCMzRBRUM0QUQ5QUMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIEVsZW1lbnRzIDE2LjAgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDphZjdjMDA1NS1mMzJlLTQ1NjAtOGQxOS1lYTU1NGVhNDkzMmEiIHN0UmVmOmRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo0YmZiODQwOS03ZWY0LTExN2ItYjI4MS05MDYxODEwMDAwMDAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5PI8IaAAAAkFBMVEVOTk5NTU29vb1paWnPz8/AwMC7u7u5ublDQ0NSUlJFRUVfX1/IyMixsbHi4uKFhYXT09PDw8NXV1fKysrMzMxYWFhzc3N7e3ve3t6ioqK+vr7Ly8uhoaHa2tqysrKurq7s7Oyvr6/Jycm2trbt7e3X19fh4eG1tbW/v7+3t7fo6OhERES6urrW1tbd3d0AAADC/hfQAAAAMHRSTlP//////////////////////////////////////////////////////////////wBipdB4AAAAcElEQVR42hTIRRbDMAwAUYVTZoa4ZleyfP/btZrVfwOlq4l66utlge5lrbIqq0cL9JX07Onv8PZr791pvm8H+DBrbhBiTn9f4IzjjcW6Qhw3zNnAxLHChln+iq9xsRUPQNFlyYUjlF0KwZiQDuUnwACjfw8FagWYLwAAAABJRU5ErkJggg=="},"down-rectangle":{type:"image/png",data:"iVBORw0KGgoAAAANSUhEUgAAAAkAAAAECAYAAABcDxXOAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjExR/NCNwAAABpJREFUGFdjgIL/eDAKIKgABggqgAE0BQwMAPTlD/Fpi0JfAAAAAElFTkSuQmCC"},"filter-off":{type:"image/png",data:"iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuNWWFMmUAAAChSURBVChTzZHBCoUgFET9TqEiskgyWoutQvRLRIr+cR7XQAjiJW/1BgZmMUevXsY5xy9OoDEGMcYiUzeB67qibVuwQjVNA6311V+WBeM4vsLDMEApde/1fY9pmtI453neHEKAlBJd1z0fXtc16PbjODK07zvmeUZVVd8nooc75zJIOX3Gm6i0bVsGKf8xKIRIuyJTLgJJ3nvQzsjW2geIsQ/pr9hMVrSncAAAAABJRU5ErkJggg=="},"filter-on":{type:"image/png",data:"iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuNWWFMmUAAACoSURBVChTY3BqfP2fHAzWmDbj7f8p294RhVOBasEa02e+/e/VBmQQCTxaX/9PnvYGoj5ywpv/Qd2ENft3vv4f1gfVBAP+nW/+h/a+ATtn1q73KHjytvdgg3070DTBgHvL6/8g22fsQGiaDmSHA21xaybgIpDHixa8hWssnA8NDEIApCh3LkIjiD2INYJCL2X6W3B8gdhEaQQBUOCA4gyE8+e9xaKJgQEA/74BNE3cElkAAAAASUVORK5CYII="},unchecked:{type:"image/png",data:"iVBORw0KGgoAAAANSUhEUgAAAAsAAAALCAMAAACecocUAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4xpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDMwMiwgMjAxNy8wMy8wMi0xNjo1OTozOCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDphNDQ3MTQ0Zi0wYmFmLTQ3YzMtYjBmNi1kODRlNDI0MjU4ZDIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkIzRUM3OTEzNkMyMTFFODhEOUJCMzRBRUM0QUQ5QUMiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkIzRUM3OTAzNkMyMTFFODhEOUJCMzRBRUM0QUQ5QUMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIEVsZW1lbnRzIDE2LjAgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1OWY2YWVhMC0xZjJkLTRjM2UtYTRiZi02MWYyMDNlMmI4YjciIHN0UmVmOmRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo2Nzk3NWVjNC03ZWY0LTExN2ItYjI4MS05MDYxODEwMDAwMDAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6ywX99AAAAYFBMVEW5ubm/v7/X19fLy8vp6ene3t69vb2xsbG6urq+vr6urq7a2tq4uLji4uLIyMjBwcHDw8PJycnPz8/V1dW1tbWvr6/t7e23t7e7u7vs7Oy2trbo6Ojh4eHW1tbd3d0AAAAm0pqPAAAAIHRSTlP/////////////////////////////////////////AFxcG+0AAABZSURBVHjaTIqHDoAgEEOLC9wL5RTP+/+/VIIxdCTNSyFjZQwR1YNAtftxhOQLUHjvQ68K+orqW2C7P7FL9okmrjLl5cv1/+lAKuOVmTObQyZ32tdulkeAAQCpggrEM7zMmAAAAABJRU5ErkJggg=="},"up-down-spin":{type:"image/png",data:"iVBORw0KGgoAAAANSUhEUgAAAA4AAAAPCAYAAADUFP50AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOwQAADsEBuJFr7QAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC41ZYUyZQAAAGJJREFUOE+lkwEKACEIBH2Zb/PnHsoGeaVJDUjGOgRRpKpkiIj+y4MME3eDR7kaKOVNsJyMNjIHzGy9YnW6J7qIcrriQimeCqORNABd0fpRTkt8uVUj7EsxC6vs/q3e/Q6iD2bwnByjPXHNAAAAAElFTkSuQmCC"},"up-down":{type:"image/png",data:"iVBORw0KGgoAAAANSUhEUgAAAA4AAAAPCAYAAADUFP50AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOwQAADsEBuJFr7QAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC41ZYUyZQAAAGFJREFUOE+lkkEKQCEIRD2ZJ3Ph3iN4WD9GflpYhj0YYowpGgJmbikd3gjMDFokwbuT1iAiurG5nomgqo5QaPo9ERQRI6Jf7sfGjudy2je23+i0Wl2oQ85TOdlfrJQOazF8br+rqTXQKn0AAAAASUVORK5CYII="}}},{}],8:[function(e,t,i){"use strict";var n=e("object-iterators"),s=e("svg-themer"),a=e("./images");n(a).each(function(e,t){var i=new Image;i.src="data:"+e.type+";base64,"+e.data,a[t]=i}),a["checkbox-on"]=a.checked,a["checkbox-off"]=a.unchecked,Object.defineProperties(a,{add:{value:function(e,t,i,n,r){return/^data:image\/svg\+xml|\.svg/.test(t.src)&&(t.themeable=!!i,"object"==typeof n&&(r=n,n=void 0),n&&(t.setSvgProps=n),r&&(t.themeableRules=function(l,c,h,e){var t=document.querySelector("style#injected-stylesheet-themeables");t||((t=document.createElement("style")).id="injected-stylesheet-themeables",document.head.appendChild(t));var u=t.sheet;return(e.length?e:["background-image"]).reduce(function(e,t){var i=".hypergrid-"+t+"-"+l,n=Array.prototype.findIndex.call(u.cssRules,function(e){return e.selectorText===i});-1!==n&&u.deleteRule(n);var r={};r[t]="url("+c.src+")",c.width&&(r.width=c.width+"px"),c.height&&(r.height=c.height+"px");var o=Object.keys(r).map(function(e){return e+":"+r[e]}).join(";"),s="{"+o+"}";u.insertRule(i+s);var a={rule:u.cssRules[0]};return h&&(a.setSvgProps=h),e.push(a),e},[])}(e,t,n,r))),a[e]=t}},setTheme:{value:function(o){Object.keys(a).forEach(function(e){var r=a[e];r.themeable&&s.setImgSvgProps.call(r,o,r.setSvgProps),r.themeableRules&&r.themeableRules.forEach(function(e){var t=e.rule.selectorText,i=new RegExp("^.hypergrid-("+s.cssImagePropertyNames.join("|")+")-.*$"),n=t.replace(i,"$1");s.setRuleSvgProps.call(e.rule,o,r.setSvgProps,n)})})}},checkbox:{value:function(e){return a[e?"checked":"unchecked"]}},filter:{value:function(e){return a[e?"filter-on":"filter-off"]}}}),t.exports=a},{"./images":7,"object-iterators":17,"svg-themer":21}],9:[function(e,t,i){"use strict";function o(e,t){var i=1<arguments.length;if("function"==typeof e&&(e=e.call(this)),i){var n=arguments;e=(e=e.replace(o.replacersRegex,function(e,t){return t-=-1,n.length>t?n[t]:""})).replace(o.encodersRegex,function(e,t){if(t-=-1,n.length>t){var i=document.createElement("DIV");return i.textContent=n[t],i.innerHTML}return""})}return e}function a(e,t,i){var n="object"!=typeof t,r=Array.prototype.slice.call(arguments,1);return n?(t=document.createElement("DIV"),r.unshift(e)):r[0]=e,t.innerHTML=o.apply(null,r),t}o.encodersRegex=/%\{(\d+)\}/g,o.replacersRegex=/\$\{(.*?)\}/g,(o.format=o).replace=a,o.append=function(e,t,i,n){var r=3;"object"!=typeof i&&(i=null,r=2),n=Array.prototype.slice.call(arguments,r);for(var o=[],s=a.apply(null,[e].concat(n));s.childNodes.length;)o.push(s.firstChild),t.insertBefore(s.firstChild,i);return o},o.firstChild=function(e,t){return a.apply(null,arguments).firstChild},o.firstElement=function(e,t){return a.apply(null,arguments).firstElementChild},t.exports=o},{}],10:[function(e,t,i){"use strict";function o(e,t,i){if("string"==typeof i){if(!(i=document.querySelector(i)))throw"Cannot find reference element for CSS injection."}else if(i&&!(i instanceof Element))throw"Given value not a reference element.";var n=i&&i.parentNode||document.head||document.getElementsByTagName("head")[0];if(!t||(t=o.idPrefix+t,!n.querySelector("#"+t))){var r=document.createElement("style");return r.type="text/css",t&&(r.id=t),e instanceof Array&&(e=e.join("\n")),e="\n"+e+"\n",r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e)),void 0===i&&(i=n.firstChild),n.insertBefore(r,i),r}}o.idPrefix="injected-stylesheet-",t.exports=o},{}],11:[function(e,t,i){arguments[4][3][0].apply(i,arguments)},{dup:3,"extend-me":13}],12:[function(e,t,i){arguments[4][4][0].apply(i,arguments)},{"datasaur-base":11,dup:4}],13:[function(e,t,i){arguments[4][5][0].apply(i,arguments)},{dup:5}],14:[function(e,t,i){"use strict";var l=e("css-injector"),c="position: absolute;",h="position: absolute;";function u(i){var t=this._bound={};Object.keys(f).forEach(function(e){t[e]=f[e].bind(this)},this);var e=this.thumb=document.createElement("div");e.classList.add("thumb"),e.setAttribute("style",h),e.onclick=t.shortStop,e.onmouseover=t.onmouseover,e.onmouseout=this._bound.onmouseout;var n,r,o,s,a=this.bar=document.createElement("div");a.classList.add("finbar-vertical"),a.setAttribute("style",c),a.onmousedown=this._bound.onmousedown,this.paging&&(a.onclick=t.onclick),a.appendChild(e),i=i||{},this.orientation="vertical",this._min=this._index=0,this._max=100,this.normal=(n=window.navigator,r=n.userAgent,o=n.platform.substr(0,3).toLowerCase(),s=/Edge/.test(r)?"edge":/Opera|OPR|Chrome|Safari/.test(r)?"webkit":/Firefox/.test(r)?"moz":document.documentMode?"ms":void 0,(u.normals[o]||{})[s]||1),Object.keys(i).forEach(function(e){var t=i[e];if(void 0!==t)switch(e){case"index":this._index=t;break;case"range":d(t),this._min=t.min,this._max=t.max,this.contentSize=t.max-t.min+1;break;default:"_"!==e.charAt(0)&&"function"!=typeof u.prototype[e]&&(this[e]=t)}},this),l(g,"finbar-base",i.cssStylesheetReferenceElement)}function d(e){2===Object.keys(e).length&&"number"==typeof e.min&&"number"==typeof e.max&&e.min<=e.max||n("Invalid .range object.")}u.prototype={set orientation(e){e!==this._orientation&&(this._orientation=e,this.oh=r[this._orientation],this.oh||n("Invalid value for `options._orientation."),this.deltaProp=this.oh.delta,this.bar.className=this.bar.className.replace(/(vertical|horizontal)/g,e),this.bar.style.cssText===c&&this.thumb.style.cssText===h||(this.bar.setAttribute("style",c),this.thumb.setAttribute("style",h),this.resize()))},get orientation(){return this._orientation},onchange:null,set classPrefix(e){this._classPrefix&&this.bar.classList.remove(this._classPrefix+this.orientation),(this._classPrefix=e)&&this.bar.classList.add(e+"-"+this.orientation)},get classPrefix(){return this._classPrefix},increment:1,deltaXFactor:1,deltaYFactor:1,deltaZFactor:1,barStyles:null,set style(r){var e=Object.keys(r=function(e){for(var t=1;t<arguments.length;++t){var i=arguments[t];if(i)for(var n in i)e[n]=i[n]}return e}({},r,this._auxStyles));if(e.length){var o=this.bar,s=o.getBoundingClientRect(),a=(this.container||o.parentElement).getBoundingClientRect(),l=this.oh;o.setAttribute("style",c),e.forEach(function(e){var t=r[e];if(e in l&&(e=l[e]),isNaN(Number(t))){if(/%$/.test(t)){var i=p[e],n=s[i.marginLeading]+s[i.marginTrailing];n&&(t=parseInt(t,10)/100*a[i.size]-n+"px")}}else t=(t||0)+"px";o.style[e]=t})}},paging:!0,set range(e){d(e),this._min=e.min,this._max=e.max,this.contentSize=e.max-e.min+1,this.index=this.index},get range(){return{min:this._min,max:this._max}},set index(e){e=Math.min(this._max,Math.max(this._min,e)),this._setScroll(e)},get index(){return this._index},_setScroll:function(e,t){this._index=e,this.testPanelItem&&this.testPanelItem.index instanceof Element&&(this.testPanelItem.index.innerHTML=Math.round(e)),this.onchange&&this.onchange.call(this,Math.round(e)),void 0===t&&(t=(e-this._min)/(this._max-this._min)*this._thumbMax),this.thumb.style[this.oh.leading]=t+"px"},scrollRealContent:function(e){var t=this.content.parentElement.getBoundingClientRect(),i=this.oh.size,n=Math.max(0,this.content[i]-t[i]),r=(e-this._min)/(this._max-this._min)*n;this.content.style[this.oh.leading]=-r+"px"},resize:function(e,t){var i=this.bar;if(i.parentNode){var n=this.container||i.parentElement,r=n.getBoundingClientRect();"object"==typeof e&&(t=e,e=void 0),this.style=this.barStyles=t||this.barStyles,this.content&&(this.onchange||(this.onchange=this.scrollRealContent,this.contentSize=this.content[this.oh.size],this._min=0,this._max=this.contentSize-1)),this.onchange===this.scrollRealContent?(this.containerSize=r[this.oh.size],this.increment=this.containerSize/(this.contentSize-this.containerSize)*(this._max-this._min)):(this.containerSize=1,this.increment=e||this.increment);var o=this.index;return this.testPanelItem=this.testPanelItem||this._addTestPanelItem(),this._setThumbSize(),this.index=o,null!==this.deltaProp&&n.addEventListener("wheel",this._bound.onwheel),this}},shortenBy:function(e){return this.shortenEndBy("trailing",e)},foreshortenBy:function(e){return this.shortenEndBy("leading",e)},shortenEndBy:function(e,t){if(t){if(t instanceof u&&t.orientation!==this.orientation){var i=window.getComputedStyle(t.bar),n=r[t.orientation];this._auxStyles={},this._auxStyles[e]=i[n.thickness]}}else delete this._auxStyles;return this},_setThumbSize:function(){var e=this.oh,t=window.getComputedStyle(this.thumb),i=parseInt(t[e.marginLeading]),n=i+parseInt(t[e.marginTrailing]),r=this.bar.getBoundingClientRect()[e.size],o=Math.max(20,r*this.containerSize/this.contentSize);this.containerSize<this.contentSize?(this.bar.style.visibility="visible",this.thumb.style[e.size]=o+"px"):this.bar.style.visibility="hidden",this._thumbMax=r-o-n,this._thumbMarginLeading=i},remove:function(){this.bar.onmousedown=null,this._removeEvt("mousemove"),this._removeEvt("mouseup"),(this.container||this.bar.parentElement)._removeEvt("wheel"),this.bar.onclick=this.thumb.onclick=this.thumb.onmouseover=this.thumb.transitionend=this.thumb.onmouseout=null,this.bar.remove()},_addTestPanelItem:function(){var t,e=document.querySelector("."+this._classPrefix+".test-panel")||document.querySelector(".test-panel");if(e){var i=["mousedown","mousemove","mouseup","index"],n=document.createElement("li");i.forEach(function(e){n.innerHTML+='<span class="'+e+'">'+e.replace("mouse","")+"</span>"}),e.appendChild(n),t={},i.forEach(function(e){t[e]=n.getElementsByClassName(e)[0]})}return t},_addEvt:function(e){var t=this.testPanelItem&&this.testPanelItem[e];t&&t.classList.add("listening"),window.addEventListener(e,this._bound["on"+e])},_removeEvt:function(e){var t=this.testPanelItem&&this.testPanelItem[e];t&&t.classList.remove("listening"),window.removeEventListener(e,this._bound["on"+e])}};var f={shortStop:function(e){e.stopPropagation()},onwheel:function(e){this.index+=e[this.deltaProp]*this[this.deltaProp+"Factor"]*this.normal,e.stopPropagation(),e.preventDefault()},onclick:function(t){var e=this.thumb.getBoundingClientRect(),i=t[this.oh.coordinate]<e[this.oh.leading];"object"==typeof this.paging?this.index=this.paging[i?"up":"down"](Math.round(this.index)):this.index+=i?-this.increment:this.increment,this.thumb.classList.add("hover");var n=this;this.thumb.addEventListener("transitionend",function e(){this.removeEventListener("transitionend",e),n._bound.onmouseup(t)}),t.stopPropagation()},onmouseover:function(){this.thumb.classList.add("hover")},onmouseout:function(){this.dragging||this.thumb.classList.remove("hover")},onmousedown:function(e){var t=this.thumb.getBoundingClientRect();this.pinOffset=e[this.oh.axis]-t[this.oh.leading]+this.bar.getBoundingClientRect()[this.oh.leading]+this._thumbMarginLeading,document.documentElement.style.cursor="default",this.dragging=!0,this._addEvt("mousemove"),this._addEvt("mouseup"),e.stopPropagation(),e.preventDefault()},onmousemove:function(e){if(1&e.buttons){var t=Math.min(this._thumbMax,Math.max(0,e[this.oh.axis]-this.pinOffset)),i=t/this._thumbMax*(this._max-this._min)+this._min;this._setScroll(i,t),e.stopPropagation(),e.preventDefault()}else window.dispatchEvent(new MouseEvent("mouseup",e))},onmouseup:function(e){this._removeEvt("mousemove"),this._removeEvt("mouseup"),this.dragging=!1,document.documentElement.style.cursor="auto";var t=this.thumb.getBoundingClientRect();t.left<=e.clientX&&e.clientX<=t.right&&t.top<=e.clientY&&e.clientY<=t.bottom?this._bound.onmouseover(e):this._bound.onmouseout(e),e.stopPropagation(),e.preventDefault()}};u.normals={mac:{webkit:1,moz:35},win:{webkit:2.6,moz:85,ms:2.9,edge:2}};var g,r={vertical:{coordinate:"clientY",axis:"pageY",size:"height",outside:"right",inside:"left",leading:"top",trailing:"bottom",marginLeading:"marginTop",marginTrailing:"marginBottom",thickness:"width",delta:"deltaY"},horizontal:{coordinate:"clientX",axis:"pageX",size:"width",outside:"bottom",inside:"top",leading:"left",trailing:"right",marginLeading:"marginLeft",marginTrailing:"marginRight",thickness:"height",delta:"deltaX"}},p={top:"vertical",bottom:"vertical",height:"vertical",left:"horizontal",right:"horizontal",width:"horizontal"};function n(e){throw"finbars: "+e}g="div.finbar-horizontal,div.finbar-vertical{margin:3px}div.finbar-horizontal>.thumb,div.finbar-vertical>.thumb{background-color:#d3d3d3;-webkit-box-shadow:0 0 1px #000;-moz-box-shadow:0 0 1px #000;box-shadow:0 0 1px #000;border-radius:4px;margin:2px;opacity:.4;transition:opacity .5s}div.finbar-horizontal>.thumb.hover,div.finbar-vertical>.thumb.hover{opacity:1;transition:opacity .5s}div.finbar-vertical{top:0;bottom:0;right:0;width:11px}div.finbar-vertical>.thumb{top:0;right:0;width:7px}div.finbar-horizontal{left:0;right:0;bottom:0;height:11px}div.finbar-horizontal>.thumb{left:0;bottom:0;height:7px}",t.exports=u},{"css-injector":10}],15:[function(e,t,i){"use strict";var c=e("automat");function h(e,t){var i,n,r,o,s,a,l=h.prefix;if("boolean"==typeof e?i=2:(t=e,e=h.before,i=1),!(n=document.getElementById(l+t))){if(r=document.querySelector("head"),e&&(o=Array.prototype.slice.call(r.children).find(function(e){var t=e.getAttribute("id");return"STYLE"===e.tagName&&(!t||t.indexOf(l)!==l)||"LINK"===e.tagName&&"stylesheet"===e.getAttribute("rel")})),!(s=this[t]))throw"Expected to find member `"+t+"` in calling context.";a=["<style>\n"+s+"\n</style>\n",r,o||null],1<arguments.length&&(a=a.concat(Array.prototype.slice.call(arguments,i))),(n=c.append.apply(null,a)[0]).id=l+t}return n}h.before=!0,h.prefix="injected-stylesheet-",t.exports=h},{automat:9}],16:[function(e,t,i){var n,r;n=this,r=function(w){var t=Object.prototype.toString,x=Array.isArray||function(e){return"[object Array]"===t.call(e)};function c(e){return"function"==typeof e}function S(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function a(e,t){return null!=e&&"object"==typeof e&&t in e}var n=RegExp.prototype.test;var r=/\S/;function R(e){return t=r,i=e,!n.call(t,i);var t,i}var i={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};var E=/\s*/,A=/\s+/,M=/\s*=/,D=/\s*\}/,k=/#|\^|\/|>|\{|&|=|!/;function P(e){this.string=e,this.tail=e,this.pos=0}function o(e,t){this.view=e,this.cache={".":this.view},this.parent=t}function e(){this.cache={}}P.prototype.eos=function(){return""===this.tail},P.prototype.scan=function(e){var t=this.tail.match(e);if(!t||0!==t.index)return"";var i=t[0];return this.tail=this.tail.substring(i.length),this.pos+=i.length,i},P.prototype.scanUntil=function(e){var t,i=this.tail.search(e);switch(i){case-1:t=this.tail,this.tail="";break;case 0:t="";break;default:t=this.tail.substring(0,i),this.tail=this.tail.substring(i)}return this.pos+=t.length,t},o.prototype.push=function(e){return new o(e,this)},o.prototype.lookup=function(e){var t,i=this.cache;if(i.hasOwnProperty(e))t=i[e];else{for(var n,r,o=this,s=!1;o;){if(0<e.indexOf("."))for(t=o.view,n=e.split("."),r=0;null!=t&&r<n.length;)r===n.length-1&&(s=a(t,n[r])),t=t[n[r++]];else t=o.view[e],s=a(o.view,e);if(s)break;o=o.parent}i[e]=t}return c(t)&&(t=t.call(this.view)),t},e.prototype.clearCache=function(){this.cache={}},e.prototype.parse=function(e,t){var i=this.cache,n=i[e];return null==n&&(n=i[e]=function(e,t){if(!e)return[];var i,n,r,o=[],s=[],a=[],l=!1,c=!1;function h(){if(l&&!c)for(;a.length;)delete s[a.pop()];else a=[];c=l=!1}function u(e){if("string"==typeof e&&(e=e.split(A,2)),!x(e)||2!==e.length)throw new Error("Invalid tags: "+e);i=new RegExp(S(e[0])+"\\s*"),n=new RegExp("\\s*"+S(e[1])),r=new RegExp("\\s*"+S("}"+e[1]))}u(t||w.tags);for(var d,f,g,p,m,v,b=new P(e);!b.eos();){if(d=b.pos,g=b.scanUntil(i))for(var C=0,y=g.length;C<y;++C)R(p=g.charAt(C))?a.push(s.length):c=!0,s.push(["text",p,d,d+1]),d+=1,"\n"===p&&h();if(!b.scan(i))break;if(l=!0,f=b.scan(k)||"name",b.scan(E),"="===f?(g=b.scanUntil(M),b.scan(M),b.scanUntil(n)):"{"===f?(g=b.scanUntil(r),b.scan(D),b.scanUntil(n),f="&"):g=b.scanUntil(n),!b.scan(n))throw new Error("Unclosed tag at "+b.pos);if(m=[f,g,d,b.pos],s.push(m),"#"===f||"^"===f)o.push(m);else if("/"===f){if(!(v=o.pop()))throw new Error('Unopened section "'+g+'" at '+d);if(v[1]!==g)throw new Error('Unclosed section "'+v[1]+'" at '+d)}else"name"===f||"{"===f||"&"===f?c=!0:"="===f&&u(g)}if(v=o.pop())throw new Error('Unclosed section "'+v[1]+'" at '+b.pos);return function(e){for(var t,i=[],n=i,r=[],o=0,s=e.length;o<s;++o)switch((t=e[o])[0]){case"#":case"^":n.push(t),r.push(t),n=t[4]=[];break;case"/":r.pop()[5]=t[2],n=0<r.length?r[r.length-1][4]:i;break;default:n.push(t)}return i}(function(e){for(var t,i,n=[],r=0,o=e.length;r<o;++r)(t=e[r])&&("text"===t[0]&&i&&"text"===i[0]?(i[1]+=t[1],i[3]=t[3]):(n.push(t),i=t));return n}(s))}(e,t)),n},e.prototype.render=function(e,t,i){var n=this.parse(e),r=t instanceof o?t:new o(t);return this.renderTokens(n,r,i,e)},e.prototype.renderTokens=function(e,t,i,n){for(var r,o,s,a="",l=0,c=e.length;l<c;++l)s=void 0,"#"===(o=(r=e[l])[0])?s=this.renderSection(r,t,i,n):"^"===o?s=this.renderInverted(r,t,i,n):">"===o?s=this.renderPartial(r,t,i,n):"&"===o?s=this.unescapedValue(r,t):"name"===o?s=this.escapedValue(r,t):"text"===o&&(s=this.rawValue(r)),void 0!==s&&(a+=s);return a},e.prototype.renderSection=function(e,t,i,n){var r=this,o="",s=t.lookup(e[1]);if(s){if(x(s))for(var a=0,l=s.length;a<l;++a)o+=this.renderTokens(e[4],t.push(s[a]),i,n);else if("object"==typeof s||"string"==typeof s||"number"==typeof s)o+=this.renderTokens(e[4],t.push(s),i,n);else if(c(s)){if("string"!=typeof n)throw new Error("Cannot use higher-order sections without the original template");null!=(s=s.call(t.view,n.slice(e[3],e[5]),function(e){return r.render(e,t,i)}))&&(o+=s)}else o+=this.renderTokens(e[4],t,i,n);return o}},e.prototype.renderInverted=function(e,t,i,n){var r=t.lookup(e[1]);if(!r||x(r)&&0===r.length)return this.renderTokens(e[4],t,i,n)},e.prototype.renderPartial=function(e,t,i){if(i){var n=c(i)?i(e[1]):i[e[1]];return null!=n?this.renderTokens(this.parse(n),t,i,n):void 0}},e.prototype.unescapedValue=function(e,t){var i=t.lookup(e[1]);if(null!=i)return i},e.prototype.escapedValue=function(e,t){var i=t.lookup(e[1]);if(null!=i)return w.escape(i)},e.prototype.rawValue=function(e){return e[1]},w.name="mustache.js",w.version="2.3.2",w.tags=["{{","}}"];var s=new e;return w.clearCache=function(){return s.clearCache()},w.parse=function(e,t){return s.parse(e,t)},w.render=function(e,t,i){if("string"!=typeof e)throw new TypeError('Invalid template! Template should be a "string" but "'+(x(n=e)?"array":typeof n)+'" was given as the first argument for mustache#render(template, view, partials)');var n;return s.render(e,t,i)},w.to_html=function(e,t,i,n){var r=w.render(e,t,i);if(!c(n))return r;n(r)},w.escape=function(e){return String(e).replace(/[&<>"'`=\/]/g,function(e){return i[e]})},w.Scanner=P,w.Context=o,w.Writer=e,w},"object"==typeof i&&i&&"string"!=typeof i.nodeName?r(i):"function"==typeof define&&define.amd?define(["exports"],r):(n.Mustache={},r(n.Mustache))},{}],17:[function(e,t,i){"use strict";function n(e){return e instanceof n?e:this instanceof n?(this.originalValue=e,void(this.o=e||{})):new n(e)}n.chain=function(e){var t=n(e);return t.chaining=!0,t},n.prototype={value:function(){return this.originalValue},each:function(t,e){var i=this.o;return Object.keys(i).forEach(function(e){t.call(this,i[e],e,i)},e||i),this},find:function(t,e){var i,n=this.o;return n&&void 0!==(i=Object.keys(n).find(function(e){return t.call(this,n[e],e,n)},e||n))&&(i=n[i]),i},filter:function(t,e){var i=this.o,n=[];return i&&Object.keys(i).forEach(function(e){t.call(this,i[e],e,i)&&n.push(i[e])},e||i),n},map:function(t,e){var i=this.o,n=[];return i&&Object.keys(i).forEach(function(e){n.push(t.call(this,i[e],e,i))},e||i),n},reduce:function(i,n,e){var r=this.o;return r&&Object.keys(r).forEach(function(e,t){n=t||void 0!==n?i(n,r[e],e,r):r[e]},e||r),n},extend:function(e){var i=this.o;return Array.prototype.slice.call(arguments).forEach(function(e){if(e)for(var t in e)i[t]=e[t]}),this.chaining?this:i},extendOwn:function(e){var i=this.o;return Array.prototype.slice.call(arguments).forEach(function(e){n(e).each(function(e,t){i[t]=e})}),this.chaining?this:i}},Array.prototype.find||(Array.prototype.find=function(e){if(null===this)throw new TypeError("Array.prototype.find called on null or undefined");if("function"!=typeof e)throw new TypeError("predicate must be a function");for(var t,i=Object(this),n=i.length>>>0,r=arguments[1],o=0;o<n;o++)if(t=i[o],e.call(r,t,o,i))return t}),t.exports=n},{}],18:[function(e,t,i){"use strict";function n(e,t){for(var i=1;i<arguments.length;++i)r.call(e,arguments[i]);return e}function r(e){var t;for(var i in e)(t=Object.getOwnPropertyDescriptor(e,i))&&Object.defineProperty(this,i,t);return this}n.mixInTo=function(e){var t;for(var i in this)(t=Object.getOwnPropertyDescriptor(this,i))&&Object.defineProperty(e,i,t);return e},n.mixIn=r,t.exports=n},{}],19:[function(e,t,i){"use strict";function r(e,t){Object.defineProperty(this,e,{value:t,writable:!1,enumerable:!0,configurable:!1})}function o(e,t){r.call(this,"x",Number(e)||0),r.call(this,"y",Number(t)||0)}function s(e,t,i,n){e=Number(e)||0,t=Number(t)||0,(i=Number(i)||0)<0&&(e+=i,i=-i),(n=Number(n)||0)<0&&(t+=n,n=-n),r.call(this,"origin",new o(e,t)),r.call(this,"extent",new o(i,n)),r.call(this,"corner",new o(e+i,t+n)),r.call(this,"center",new o(e+i/2,t+n/2))}(o.prototype={plus:function(e){return new o(this.x+e.x,this.y+e.y)},plusXY:function(e,t){return new o(this.x+(e||0),this.y+(t||0))},minus:function(e){return new o(this.x-e.x,this.y-e.y)},min:function(e){return new o(Math.min(this.x,e.x),Math.min(this.y,e.y))},max:function(e){return new o(Math.max(this.x,e.x),Math.max(this.y,e.y))},distance:function(e){var t=e.x-this.x,i=e.y-this.y;return Math.sqrt(t*t+i*i)},equals:function(e){var t=!1;return e&&(t=this.x===e.x&&this.y===e.y),t},greaterThan:function(e){return this.x>e.x&&this.y>e.y},lessThan:function(e){return this.x<e.x&&this.y<e.y},greaterThanOrEqualTo:function(e){return this.x>=e.x&&this.y>=e.y},lessThanOrEqualTo:function(e){return this.x<=e.x&&this.y<=e.y},within:function(e){var t=e.origin.x,i=t+e.extent.x,n=e.origin.y,r=n+e.extent.y;return e.extent.x<0&&(t=i,i=e.origin.x),e.extent.y<0&&(n=r,r=e.origin.y),t<=this.x&&this.x<i&&n<=this.y&&this.y<r}}).EQ=o.prototype.equals,o.prototype.GT=o.prototype.greaterThan,o.prototype.LT=o.prototype.lessThan,o.prototype.GE=o.prototype.greaterThanOrEqualTo,o.prototype.LE=o.prototype.lessThanOrEqualTo,s.prototype={get top(){return this.origin.y},get left(){return this.origin.x},get bottom(){return this.corner.y},get right(){return this.corner.x},get width(){return this.extent.x},get height(){return this.extent.y},get area(){return this.width*this.height},flattenXAt:function(e){return new s(e,this.origin.y,0,this.extent.y)},flattenYAt:function(e){return new s(this.origin.x,e,this.extent.x,0)},contains:function(e){return e.within(this)},within:function(e){return e.origin.lessThanOrEqualTo(this.origin)&&e.corner.greaterThanOrEqualTo(this.corner)},growBy:function(e){return new s(this.origin.x+e,this.origin.y+e,this.extent.x-e-e,this.extent.y-e-e)},shrinkBy:function(e){return this.growBy(-e)},union:function(e){var t=this.origin.min(e.origin),i=this.corner.max(e.corner).minus(t);return new s(t.x,t.y,i.x,i.y)},forEach:function(e,t){t=t||this;for(var i=this.origin.x,n=this.corner.x;i<n;i++)for(var r=this.origin.y,o=this.corner.y;r<o;r++)e.call(t,i,r)},intersect:function(e,t,i){var n=null,r=this.origin.max(e.origin),o=this.corner.min(e.corner).minus(r);return 0<o.x&&0<o.y?n=new s(r.x,r.y,o.x,o.y):"function"==typeof t&&(n=t.call(i||this,e)),n},intersects:function(e){return e.corner.x>this.origin.x&&e.corner.y>this.origin.y&&e.origin.x<this.corner.x&&e.origin.y<this.corner.y}},i.Point=o,i.Rectangle=s},{}],20:[function(e,t,i){"use strict";(function(e){function t(){this.selection=[],this.states=[],this.storeState=function(){for(var e,t=this.selection,i=[],n=0;n<t.length;n++)e=[].concat(t[n]),i.push(e);this.states.push(i)}}function r(e,t){return e instanceof Array?r.apply(this,e):void 0===t?[e,e]:e<=t?[e,t]:[t,e]}function c(e,t){return e[0]<=t[0]&&t[0]<=e[1]||e[0]<=t[1]&&t[1]<=e[1]||t[0]<e[0]&&e[1]<t[1]}t.prototype={select:function(e,t){this.storeState();var a=r(e,t),l=[0,1];return this.selection.forEach(function(e){var t,i,n,r,o,s;c(e,a)||(s=a,(o=e)[1]===s[0]-1||s[1]===o[0]-1)?(t=e,i=a,n=Math.min(Math.min.apply(Math,t),Math.min.apply(Math,i)),r=Math.max(Math.max.apply(Math,t),Math.max.apply(Math,i)),a=[n,r]):l.push(e)}),l.push(a),l[1]=this.selection.length,this.selection.splice.apply(this.selection,l),this},deselect:function(e,t){var i=r(e,t),n=[0,0];return this.selection.forEach(function(e){if(c(e,i)){var t=function(e,t){var i=e[0],n=e[1],r=t[0],o=t[1],s=[];r<=i&&o<n?s.push([o+1,n]):i<r&&n<=o?s.push([i,r-1]):i<r&&o<n?(s.push([i,r-1]),s.push([o+1,n])):(o<i||n<r)&&s.push(e);return s}(e,i);n=n.concat(t)}else n.push(e)}),n[1]=this.selection.length,this.selection.splice.apply(this.selection,n),this},clear:function(){return this.states.length=0,this.selection.length=0,this},clearMostRecentSelection:function(){0!==this.states.length&&(this.selection=this.states.pop())},isSelected:function(t){return this.selection.some(function(e){return e[0]<=t&&t<=e[1]})},isEmpty:function(){return 0===this.selection.length},getSelections:function(){var i=[];return this.selection.forEach(function(e){for(var t=e[0];t<=e[1];t++)i.push(t)}),i.sort(function(e,t){return e-t}),i}},e.exports=t})("object"==typeof t&&t||(window.RangeSelectionModel={}),"object"==typeof t&&t.exports||(window.RangeSelectionModel.exports={}))||"object"==typeof t||(window.RangeSelectionModel=window.RangeSelectionModel.exports)},{}],21:[function(e,t,i){"use strict";var l,n="((data:image/svg\\+xml)(;\\w+)?(,)(.*)|(.*\\.svg))",r=new RegExp("^()"+n+"()$"),a=new RegExp('^(url\\(")'+n+'("\\))$'),c=0,h=2,u=3,d=4,f=5,g=6,p=7;function m(t,i,n,r){var e,o,s,a=this;t[p]?(e=t[p],o=function(e){t[u]="data:image/svg+xml",t[d]=";base64",t[f]=",",t[g]=e,t[p]="",C.call(a,t,i,n,r)},(s=new XMLHttpRequest).open("GET",e,!0),s.onreadystatechange=function(){s.readyState===v&&s.status===b&&o(s.responseText)},s.send(null)):C.call(this,t,i,n,r)}void 0===i?window.svgThemer=l={}:l=i,l.cssImagePropertyNames=["background-image","list-style-image","border-image","content"],l.setSvgProps=function(e){e.color&&(this.style.stroke=this.style.color=e.color),e.backgroundColor&&(this.style.fill=e.backgroundColor)},l.setImgSvgProps=function(e,t){if("IMG"===this.tagName){var i=this.src.match(r);i&&m.call(this,i,e,t,function(e){this.src=e})}return this},l.setRuleSvgProps=function(e,t,i){var n,r=this.style;function o(e){return n=r[e].match(a)}if("string"==typeof t&&(i=t,t=void 0),i)o(i);else for(var s=0;s<l.cssImagePropertyNames.length&&!o(i=l.cssImagePropertyNames[s]);++s);return n&&m.call(this,n,e,t,function(e){r[i]=e}),this};var v=4,b=200;function C(e,t,i,n){var r=e[d],o=e[g],s=document.createElement("div");switch(i=i||this.setSvgProps||l.setSvgProps,r){case void 0:s.innerHTML=0<=o.indexOf("%3C")?decodeURIComponent(o):o,i.call(s.firstElementChild,t);var a=(new XMLSerializer).serializeToString(s.firstElementChild);e[g]=encodeURIComponent(a);break;case";base64":s.innerHTML=o.indexOf("<")<0?atob(o):o,i.call(s.firstElementChild,t);a=(new XMLSerializer).serializeToString(s.firstElementChild);e[g]=btoa(a);break;default:throw new TypeError('Unexpected encoding "'+r+'"')}e[c]=e[h]=void 0,n.call(this,e.join(""))}l.mixin=function(e,t){return"svg"===e.tagName?t?e.setTheme=t:Object.defineProperty(e,"setTheme",{get:function(){return l.setSvgProps}}):"IMG"===e.tagName?(t&&(e.setSvgProps=t),e.setTheme=l.setImgSvgProps):"[object CSSStyleRule]"==e&&(t&&(e.setSvgProps=t),e.setTheme=l.setRuleSvgProps),e}},{}],22:[function(e,t,i){"use strict";var l=e("./transformers"),s=/^\d+$/,n=["transformations","propPath","dictPath","force"];function r(t){t&&n.forEach(function(e){t[e]&&(this[e]=t[e])},this)}function c(e,t){return t.reduce(function(e,t){return e[t]||(e[t]=Object.create(null))},e)}function o(e){return(e=e?Array.isArray(e)?e.slice():(e+"").split("."):[]).toString=a,e}function a(){return this.join(".")}(r.prototype={constructor:r,transformations:["verbatim","toCamelCase"],set propPath(e){this._propPath=o(e)},get propPath(){return this._propPath},_propPath:["name"],set dictPath(e){this._dictPath=o(e)},get dictPath(){return this._dictPath},_dictPath:[],getSynonyms:function(i,e){var n=[];return"string"==typeof i&&i&&(e=e||this.transformations,Array.isArray(e)||(e=Object.keys(e)),e.forEach(function(e){if("function"!=typeof l[e])throw new ReferenceError('Unknown transformer "'+e+'"');var t=l[e](i);""===t||t in n||n.push(t)})),n},decorate:function(e,t,i){var n=c(e,this.dictPath),r=n===e,o=this.force;return t.forEach(function(e){r&&s.test(e)||!o&&e in n||(n[e]=i)}),e},decorateList:function(e,n,r){var t;return"number"==typeof e?t=[n[e]]:(n=t=e,r=n),r=r?o(r):this.propPath,t.forEach(function(e){var t=void 0!==r&&"object"==typeof e?c(e,r):e;if(Array.isArray(this.transformations)){var i=this.getSynonyms(t);this.decorate(n,i,e)}else Object.keys(this.transformations).forEach(function(e,t,i){var n=l[i],r=this.transformations[i],o=Array.isArray(r)?r.slice():r.split("."),s=o.splice(o.length-1,1)[0],a=c(e,o);!this.force&&s in a||(a[s]=n(t))}.bind(this,e,t))},this),n}}).decorateObject=r.prototype.decorate,r.prototype.decorateArray=r.prototype.decorateList,t.exports=r},{"./transformers":23}],23:[function(e,t,i){"use strict";var n=/([^_A-Z])([A-Z]+)/g,r=/[^a-z0-9]+/gi,o=/[^a-z0-9]+([a-z0-9])?/gi;function s(e,t){return void 0===t?"":t.toUpperCase()}var a=/^(\d)/,l=/^([A-Z])/;function c(e,t){return t.toLowerCase()}var h=/[a-z]/,u=/[\s\-_]*([^\s\-_])([^\s\-_]+)/g,d=function(e,t,i){return t.toUpperCase()+i},f=/[A-Z]+/g,g=/([A-Z]+)([A-Z][a-z])/g;t.exports={verbatim:function(e){return e+""},toCamelCase:function(e){return e.replace(o,s).replace(a,"$$$1").replace(l,c)},toAllCaps:function(e){return e.replace(r,"_").replace(n,"$1_$2").replace(a,"$$$1").toUpperCase()},toTitle:function(e){return(h.test(e)?e:e.toLowerCase()).replace(u,d).replace(f," $&").replace(g,"$1 $2").trim()}}},{}],24:[function(e,t,i){t.exports={name:"fin-hypergrid",version:"3.3.2",description:"Canvas-based high-performance grid",main:"src/Hypergrid",repository:{type:"git",url:"git://github.com/fin-hypergrid/core.git"},author:"Steve Wirts (https://github.com/stevewirts)",contributors:["Jonathan Eiten (https://github.com/joneit)","Dwayne Jones (https://github.com/dwaynekj)","Naveen Michaud-Agrawal (https://github.com/nmichaud)","Hugo Nogueira (https://github.com/hugoeanogueira)"],license:"MIT",readmeFilename:"README.md",gitHead:"",keywords:["spreadsheet","grid"],dependencies:{"datasaur-base":"^3.0.0","datasaur-local":"^3.0.0","extend-me":"^2.7.0",finbars:"^2.0.0","inject-stylesheet-template":"^1.0.1",mustache:"^2.3.0","object-iterators":"1.3.0",overrider:"^0",rectangular:"1.0.1","sparse-boolean-array":"1.0.1","svg-themer":"^1.1.2",synonomous:"^2.1.2"},devDependencies:{gulp:"^3.9.0","gulp-concat":"^2.6.0","gulp-each":"^0.1.1","gulp-eslint":"^4.0.2","gulp-footer":"^1.1.1","gulp-header":"^1.8.2","gulp-imagine-64":"^2.0.1","gulp-load-plugins":"^1.1.0","gulp-mocha":"^6.0.0","run-sequence":"^1.1.4"}}},{}],25:[function(e,t,i){"use strict";var n=e("extend-me").Base;Object.defineProperty(n.prototype,"version",{enumerable:!0,writable:!1,configurable:!1,value:e("../package.json").version}),n.prototype.versionAtLeast=function(e){var i=e.split(".").map(Number),t=this.version.split(".").map(function(e,t){return Number(e)-i[t]});return 0<t[0]||0===t[0]&&(0<t[1]||0===t[1]&&0<=t[2])},n.prototype.deprecated=e("./lib/deprecated"),n.prototype.HypergridError=e("./lib/error"),n.prototype.notify=function(e,t){switch(t){case"warn":console.warn(e);break;case"alert":alert(e);break;default:throw new this.HypergridError(e)}},n.prototype.unwrap=function(e){return"f"===(typeof e)[0]&&(e=e()),e},n.prototype.mixIn=e("overrider").mixIn,n.prototype.createApply=function(e,t,i){var n=Array.prototype.slice.call(arguments,2),r=[null].concat(n).concat(t);return new(e.bind.apply(e,r))},t.exports=n},{"../package.json":24,"./lib/deprecated":95,"./lib/error":98,"extend-me":13,overrider:18}],26:[function(e,t,i){"use strict";var r=e("../lib/dispatchGridEvent"),n=e("../cellRenderers/Button");i.mixin={addEventListener:function(e,t,i){var n=this,r=this.listeners[e]=this.listeners[e]||[];if(!r.find(function(e){return e.listener===t})){var o={internal:i,listener:t,decorator:function(e){n.allowEventHandlers&&t(e)}};r.push(o),this.canvas.addEventListener(e,o.decorator)}},addInternalEventListener:function(e,t){this.addEventListener(e,t,!0)},removeEventListener:function(i,n){var r=this.listeners[i];r&&r.find(function(e,t){if(e.listener===n)return 1===r.length?delete this.listeners[i]:r.splice(t,1),this.canvas.removeEventListener(i,e.decorator),!0},this)},removeAllEventListeners:function(i){Object.keys(this.listeners).forEach(function(t){this.listeners[t].slice().forEach(function(e){!i&&e.internal||this.removeEventListener(t,e.listener)},this)},this)},allowEvents:fu