UNPKG

@jpmorganchase/perspective-examples

Version:
2 lines 17 kB
!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory(require("babel-runtime/core-js/json/stringify"),require("babel-runtime/core-js/object/get-prototype-of"),require("babel-runtime/helpers/classCallCheck"),require("babel-runtime/helpers/createClass"),require("babel-runtime/helpers/possibleConstructorReturn"),require("babel-runtime/helpers/inherits"),require("babel-runtime/core-js/promise")):"function"==typeof define&&define.amd?define(["babel-runtime/core-js/json/stringify","babel-runtime/core-js/object/get-prototype-of","babel-runtime/helpers/classCallCheck","babel-runtime/helpers/createClass","babel-runtime/helpers/possibleConstructorReturn","babel-runtime/helpers/inherits","babel-runtime/core-js/promise"],factory):"object"==typeof exports?exports.perspective=factory(require("babel-runtime/core-js/json/stringify"),require("babel-runtime/core-js/object/get-prototype-of"),require("babel-runtime/helpers/classCallCheck"),require("babel-runtime/helpers/createClass"),require("babel-runtime/helpers/possibleConstructorReturn"),require("babel-runtime/helpers/inherits"),require("babel-runtime/core-js/promise")):root.perspective=factory(root["babel-runtime/core-js/json/stringify"],root["babel-runtime/core-js/object/get-prototype-of"],root["babel-runtime/helpers/classCallCheck"],root["babel-runtime/helpers/createClass"],root["babel-runtime/helpers/possibleConstructorReturn"],root["babel-runtime/helpers/inherits"],root["babel-runtime/core-js/promise"])}("undefined"!=typeof self?self:this,function(__WEBPACK_EXTERNAL_MODULE_1__,__WEBPACK_EXTERNAL_MODULE_2__,__WEBPACK_EXTERNAL_MODULE_3__,__WEBPACK_EXTERNAL_MODULE_4__,__WEBPACK_EXTERNAL_MODULE_5__,__WEBPACK_EXTERNAL_MODULE_6__,__WEBPACK_EXTERNAL_MODULE_10__){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.l=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.d=function(exports,name,getter){__webpack_require__.o(exports,name)||Object.defineProperty(exports,name,{configurable:!1,enumerable:!0,get:getter})},__webpack_require__.n=function(module){var getter=module&&module.__esModule?function(){return module.default}:function(){return module};return __webpack_require__.d(getter,"a",getter),getter},__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=0)}([function(module,exports,__webpack_require__){"use strict";function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function detect_iphone(){return/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream}function XHRWorker(url,ready,scope){var oReq=new XMLHttpRequest;oReq.addEventListener("load",function(){var blob=new Blob([this.responseText]),obj=window.URL.createObjectURL(blob),worker=new Worker(obj);ready&&ready.call(scope,worker)},oReq),oReq.open("get",url,!0),oReq.send()}Object.defineProperty(exports,"__esModule",{value:!0});var _stringify=__webpack_require__(1),_stringify2=_interopRequireDefault(_stringify),_getPrototypeOf=__webpack_require__(2),_getPrototypeOf2=_interopRequireDefault(_getPrototypeOf),_classCallCheck2=__webpack_require__(3),_classCallCheck3=_interopRequireDefault(_classCallCheck2),_createClass2=__webpack_require__(4),_createClass3=_interopRequireDefault(_createClass2),_possibleConstructorReturn2=__webpack_require__(5),_possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2),_inherits2=__webpack_require__(6),_inherits3=_interopRequireDefault(_inherits2),_utils=__webpack_require__(7),_defaults=__webpack_require__(8),_api=__webpack_require__(9),__SCRIPT_PATH__=new _utils.ScriptPath;(0,_utils.detectIE)()&&-1===window.location.href.indexOf(__SCRIPT_PATH__.host())&&(console.warn("Perspective does not support parallel mode in IE when loading cross-origin. Falling back to single-process mode ..."),function(d,script){script=d.createElement("script"),script.type="text/javascript",script.async=!0,script.src=__SCRIPT_PATH__.path()+"perspective.worker.asm.js",d.getElementsByTagName("head")[0].appendChild(script)}(document));var WebWorker=function(_worker){function WebWorker(){(0,_classCallCheck3.default)(this,WebWorker);var _this=(0,_possibleConstructorReturn3.default)(this,(WebWorker.__proto__||(0,_getPrototypeOf2.default)(WebWorker)).call(this));return window.__PSP_WORKER__?_this._start_embedded():window.location.href.indexOf(__SCRIPT_PATH__.host())>-1?_this._start_same_origin():_this._start_cross_origin(),_this}return(0,_inherits3.default)(WebWorker,_worker),(0,_createClass3.default)(WebWorker,[{key:"send",value:function(msg){this._worker.transferable&&msg.args&&msg.args[0]instanceof ArrayBuffer?this._worker.postMessage(msg,msg.args):this._worker.postMessage(msg)}},{key:"terminate",value:function(){this._worker.terminate(),this._worker=void 0}},{key:"_detect_transferable",value:function(){var ab=new ArrayBuffer(1);this._worker.postMessage(ab,[ab]),this._worker.transferable=0===ab.byteLength,this._worker.transferable?console.log("Transferable support detected"):console.warn("Transferable support not detected")}},{key:"_start_embedded",value:function(){console.log("Running PSP in embedded mode");var w=new window.__PSP_WORKER__;for(var key in this._worker)w[key]=this._worker[key];this._worker=w,this._worker.addEventListener("message",this._handle.bind(this)),this._worker.postMessage({cmd:"init",data:window.__PSP_WASM__,path:__SCRIPT_PATH__.path()}),this._detect_transferable()}},{key:"_start_cross_origin",value:function(){var dir="undefined"==typeof WebAssembly?"asmjs":"async";XHRWorker(__SCRIPT_PATH__.path()+"perspective.worker."+dir+".js",function(worker){for(var key in this._worker)worker[key]=this._worker[key];this._worker.postMessage=worker.postMessage.bind(worker),this._worker.terminate=worker.terminate.bind(worker),this._worker=worker,this._detect_transferable(),this._worker.addEventListener("message",this._handle.bind(this)),"undefined"==typeof WebAssembly?this._start_cross_origin_asmjs():this._start_cross_origin_wasm()},this)}},{key:"_start_cross_origin_asmjs",value:function(){this._worker.postMessage({cmd:"init",path:__SCRIPT_PATH__.path()})}},{key:"_start_cross_origin_wasm",value:function(){var _this2=this,wasmXHR=new XMLHttpRequest;wasmXHR.open("GET",__SCRIPT_PATH__.path()+"psp.async.wasm",!0),wasmXHR.responseType="arraybuffer",wasmXHR.onload=function(){var msg={cmd:"init",data:wasmXHR.response,path:__SCRIPT_PATH__.path()};_this2._worker.transferable?_this2._worker.postMessage(msg,[wasmXHR.response]):_this2._worker.postMessage(msg)},wasmXHR.send(null)}},{key:"_start_same_origin",value:function(){var dir="undefined"==typeof WebAssembly||detect_iphone()?"asmjs":"async",w=new Worker(__SCRIPT_PATH__.path()+"perspective.worker."+dir+".js");for(var key in this._worker)w[key]=this._worker[key];this._worker=w,this._worker.addEventListener("message",this._handle.bind(this)),this._worker.postMessage({cmd:"init",path:__SCRIPT_PATH__.path()}),this._detect_transferable()}}]),WebWorker}(_api.worker),WebSocketWorker=function(_worker2){function WebSocketWorker(url){(0,_classCallCheck3.default)(this,WebSocketWorker);var _this3=(0,_possibleConstructorReturn3.default)(this,(WebSocketWorker.__proto__||(0,_getPrototypeOf2.default)(WebSocketWorker)).call(this));return _this3._ws=new WebSocket(url),_this3._ws.onopen=function(){_this3.send({id:-1,cmd:"init"})},_this3._ws.onmessage=function(msg){_this3._handle({data:JSON.parse(msg.data)})},_this3}return(0,_inherits3.default)(WebSocketWorker,_worker2),(0,_createClass3.default)(WebSocketWorker,[{key:"send",value:function(msg){this._ws.send((0,_stringify2.default)(msg))}},{key:"terminate",value:function(){this._ws.close()}}]),WebSocketWorker}(_api.worker);exports.default={worker:function(url){return-1===window.location.href.indexOf(__SCRIPT_PATH__.host())&&(0,_utils.detectIE)()?window.perspective:url?new WebSocketWorker(url):new WebWorker},TYPE_AGGREGATES:_defaults.TYPE_AGGREGATES,TYPE_FILTERS:_defaults.TYPE_FILTERS,AGGREGATE_DEFAULTS:_defaults.AGGREGATE_DEFAULTS,FILTER_DEFAULTS:_defaults.FILTER_DEFAULTS,SORT_ORDERS:_defaults.SORT_ORDERS}},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_1__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_2__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_3__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_4__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_5__},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_6__},function(module,exports,__webpack_require__){"use strict";function detectIE(){if("undefined"==typeof window)return!1;var ua=window.navigator.userAgent,msie=ua.indexOf("MSIE ");if(msie>0)return parseInt(ua.substring(msie+5,ua.indexOf(".",msie)),10);if(ua.indexOf("Trident/")>0){var rv=ua.indexOf("rv:");return parseInt(ua.substring(rv+3,ua.indexOf(".",rv)),10)}var edge=ua.indexOf("Edge/");return edge>0&&parseInt(ua.substring(edge+5,ua.indexOf(".",edge)),10)}function detectChrome(){var isChromium=window.chrome,winNav=window.navigator,vendorName=winNav.vendor,isOpera=winNav.userAgent.indexOf("OPR")>-1,isIEedge=winNav.userAgent.indexOf("Edge")>-1;return!!winNav.userAgent.match("CriOS")||null!==isChromium&&void 0!==isChromium&&"Google Inc."===vendorName&&!1===isOpera&&!1===isIEedge}function ScriptPath(){var pathParts;try{throw new Error}catch(e){var stackLines=e.stack.split("\n"),callerIndex=0;for(var i in stackLines)if(stackLines[i].match(/http[s]?:\/\//)){callerIndex=Number(i);break}pathParts=stackLines[callerIndex].match(/((http[s]?:\/\/.+\/)([^\/]+\.(js|html))).*?:/)}this.fullPath=function(){return pathParts?pathParts[1]:window.location.origin+window.location.pathname},this.path=function(){return pathParts?pathParts[2]:window.location.pathname},this.host=function(){var x=this.path().match(/.+?\/\/.+?\//);return x?x[0]:window.location.hostname},this.file=function(){return pathParts?pathParts[3]:""}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.detectIE=detectIE,exports.detectChrome=detectChrome,exports.ScriptPath=ScriptPath},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var NUMBER_AGGREGATES=["any","avg","count","distinct count","dominant","first by index","last by index","last","high","low","mean","mean by count","median","pct sum parent","pct sum grand total","sum","sum abs","sum not null","unique"],STRING_AGGREGATES=["any","count","distinct count","distinct leaf","dominant","first by index","last by index","last","mean by count","unique"],BOOLEAN_AGGREGATES=["any","count","distinct count","distinct leaf","dominant","first by index","last by index","last","mean by count","unique","and","or"],BOOLEAN_FILTERS=(exports.SORT_ORDERS=["asc","desc","none","asc abs","desc abs"],exports.TYPE_AGGREGATES={string:STRING_AGGREGATES,float:NUMBER_AGGREGATES,integer:NUMBER_AGGREGATES,boolean:BOOLEAN_AGGREGATES,date:STRING_AGGREGATES},exports.AGGREGATE_DEFAULTS={string:"distinct count",float:"sum",integer:"sum",boolean:"distinct count",date:"distinct count"},["&","|","==","!=","or","and"]),NUMBER_FILTERS=["<",">","==","<=",">=","!=","is nan","is not nan"],STRING_FILTERS=["==","contains","!=","in","begins with","ends with"],DATE_FILTERS=["<",">","==","<=",">=","!="];exports.COLUMN_SEPARATOR_STRING="|",exports.TYPE_FILTERS={string:STRING_FILTERS,float:NUMBER_FILTERS,integer:NUMBER_FILTERS,boolean:BOOLEAN_FILTERS,date:DATE_FILTERS},exports.FILTER_DEFAULTS={string:"==",float:"==",integer:"==",boolean:"==",date:"=="}},function(module,exports,__webpack_require__){"use strict";function subscribe(method,cmd){return function(){var resolve=arguments[arguments.length-1],reject=function(){},args=Array.prototype.slice.call(arguments,0,arguments.length-1),msg={cmd:cmd||"view_method",name:this._name,method:method,args:args,subscribe:!0};this._worker.post(msg,resolve,reject,!0)}}function async_queue(method,cmd){return function(){var args=Array.prototype.slice.call(arguments,0,arguments.length);return new _promise2.default(function(resolve,reject){var msg={cmd:cmd||"view_method",name:this._name,method:method,args:args,subscribe:!1};this._worker.post(msg,resolve,reject)}.bind(this))}}function view(worker,table_name,config){this._worker=worker,this._config=config,this._name=Math.random()+"";var msg={cmd:"view",view_name:this._name,table_name:table_name,config:config};this._worker.post(msg)}function table(worker,data,options){this._worker=worker,name=options.name||Math.random()+"";var msg={cmd:"table",name:name,args:[data],options:options||{}};this._worker.post(msg),this._name=name}function computed_table(worker,computed,name){this._worker=worker,this._name=Math.random()+"";for(var original=name,i=0;i<computed.length;++i){var column=computed[i],func=column.func;"function"==typeof func&&(column.func=func.toString())}var msg={cmd:"add_computed",original:original,name:this._name,computed:computed};this._worker.post(msg)}function proxy_table(worker,name){this._worker=worker,this._name=name}function worker(){this._worker={initialized:{value:!1},transferable:!1,msg_id:0,handlers:{},messages:[]}}Object.defineProperty(exports,"__esModule",{value:!0});var _promise=__webpack_require__(10),_promise2=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(_promise);exports.worker=worker,view.prototype.to_json=async_queue("to_json"),view.prototype.to_columns=async_queue("to_columns"),view.prototype.to_csv=async_queue("to_csv"),view.prototype.schema=async_queue("schema"),view.prototype.num_columns=async_queue("num_columns"),view.prototype.num_rows=async_queue("num_rows"),view.prototype.expand_to_depth=async_queue("expand_to_depth"),view.prototype.collapse_to_depth=async_queue("collapse_to_depth"),view.prototype.get_row_expanded=async_queue("get_row_expanded"),view.prototype.expand=async_queue("expand"),view.prototype.collapse=async_queue("collapse"),view.prototype.delete=async_queue("delete"),view.prototype.on_update=subscribe("on_update","view_method"),view.prototype.on_delete=subscribe("on_delete","view_method"),computed_table.prototype=table.prototype,proxy_table.prototype=table.prototype,table.prototype.add_computed=function(computed){return new computed_table(this._worker,computed,this._name)},table.prototype.view=function(config){return new view(this._worker,this._name,config)},table.prototype.schema=async_queue("schema","table_method"),table.prototype.column_metadata=async_queue("column_metadata","table_method"),table.prototype.computed_schema=async_queue("computed_schema","table_method"),table.prototype.size=async_queue("size","table_method"),table.prototype.columns=async_queue("columns","table_method"),table.prototype.delete=async_queue("delete","table_method"),table.prototype.on_delete=subscribe("on_delete","table_method"),table.prototype.remove=async_queue("remove","table_method"),table.prototype.update=function(data){var _this=this;return new _promise2.default(function(resolve,reject){var msg={name:_this._name,cmd:"table_method",method:"update",args:[data]};_this._worker.post(msg,resolve,reject,!1)})},table.prototype.execute=function(f){var msg={cmd:"table_execute",name:this._name,f:f.toString()};this._worker.post(msg)},worker.prototype.post=function(msg,resolve,reject){var _this2=this,keep_alive=arguments.length>3&&void 0!==arguments[3]&&arguments[3];resolve&&(this._worker.handlers[++this._worker.msg_id]={resolve:resolve,reject:reject,keep_alive:keep_alive}),msg.id=this._worker.msg_id,this._worker.initialized.value?this.send(msg):this._worker.messages.push(function(){return _this2.send(msg)})},worker.prototype.send=function(){throw new Error("post() not implemented")},worker.prototype.open=function(name){return new proxy_table(this,name)};var _initialized=!1;worker.prototype._handle=function(e){if(!this._worker.initialized.value){if(!_initialized){var event=document.createEvent("Event");event.initEvent("perspective-ready",!1,!0),window.dispatchEvent(event),_initialized=!0}for(var m in this._worker.messages)this._worker.messages.hasOwnProperty(m)&&this._worker.messages[m]();this._worker.initialized.value=!0,this._worker.messages=[]}if(e.data.id){var handler=this._worker.handlers[e.data.id];handler&&(e.data.error?handler.reject(e.data.error):handler.resolve(e.data.data),handler.keep_alive||delete this._worker.handlers[e.data.id])}},worker.prototype.table=function(data,options){return new table(this,data,options||{})},worker.prototype.terminate=function(){this._worker.terminate(),this._worker=void 0}},function(module,exports){module.exports=__WEBPACK_EXTERNAL_MODULE_10__}])}); //# sourceMappingURL=perspective.umd.js.map