@vuu-ui/vuu-table-extras 0.8.8 → 0.8.9-debug
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/index.js +3991 -1
- package/cjs/index.js.map +4 -4
- package/esm/index.js +4216 -1
- package/esm/index.js.map +4 -4
- package/index.css +1730 -1
- package/index.css.map +3 -3
- package/package.json +11 -11
- package/types/cell-edit-validators/CaseValidator.d.ts +2 -0
- package/types/cell-edit-validators/PatternValidator.d.ts +2 -0
- package/types/cell-edit-validators/index.d.ts +2 -0
- package/types/cell-renderers/background-cell/index.d.ts +1 -0
- package/types/cell-renderers/background-cell/useDirection.d.ts +3 -0
- package/types/cell-renderers-next/background-cell/BackgroundCell.d.ts +5 -0
- package/types/cell-renderers-next/index.d.ts +1 -0
- package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/ColumnExpressionInput.d.ts +4 -3
- package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/useColumnExpressionEditor.d.ts +2 -7
- package/types/column-expression-panel/ColumnExpressionPanel.d.ts +8 -0
- package/types/column-expression-panel/index.d.ts +1 -0
- package/types/column-expression-panel/useColumnExpression.d.ts +11 -0
- package/types/column-formatting-settings/ColumnFormattingPanel.d.ts +12 -0
- package/types/column-formatting-settings/NumericFormattingSettings.d.ts +7 -0
- package/types/column-formatting-settings/index.d.ts +2 -0
- package/types/column-settings/ColumnSettingsPanel.d.ts +12 -0
- package/types/column-settings/useColumnSettings.d.ts +17 -0
- package/types/index.d.ts +11 -0
- package/types/{vuu-table-extras/src/table-settings → table-settings}/TableSettingsPanel.d.ts +6 -4
- package/types/table-settings/useTableSettings.d.ts +17 -0
- package/types/useTableAndColumnSettings.d.ts +15 -0
- package/LICENSE +0 -201
- package/types/vuu-data/src/array-data-source/array-data-source.d.ts +0 -65
- package/types/vuu-data/src/array-data-source/group-utils.d.ts +0 -10
- package/types/vuu-data/src/array-data-source/sort-utils.d.ts +0 -4
- package/types/vuu-data/src/authenticate.d.ts +0 -1
- package/types/vuu-data/src/connection-manager.d.ts +0 -46
- package/types/vuu-data/src/connectionTypes.d.ts +0 -5
- package/types/vuu-data/src/constants.d.ts +0 -41
- package/types/vuu-data/src/data-source.d.ts +0 -172
- package/types/vuu-data/src/index.d.ts +0 -10
- package/types/vuu-data/src/inlined-worker.d.ts +0 -1
- package/types/vuu-data/src/json-data-source.d.ts +0 -53
- package/types/vuu-data/src/message-utils.d.ts +0 -26
- package/types/vuu-data/src/remote-data-source.d.ts +0 -56
- package/types/vuu-data/src/server-proxy/messages.d.ts +0 -43
- package/types/vuu-data/src/vuuUIMessageTypes.d.ts +0 -202
- package/types/vuu-data/src/websocket-connection.d.ts +0 -25
- package/types/vuu-table-extras/src/datagrid-configuration-ui/calculated-column-panel/CalculatedColumnPanel.d.ts +0 -11
- package/types/vuu-table-extras/src/datagrid-configuration-ui/calculated-column-panel/index.d.ts +0 -1
- package/types/vuu-table-extras/src/datagrid-configuration-ui/column-picker/ColumnListItem.d.ts +0 -4
- package/types/vuu-table-extras/src/datagrid-configuration-ui/column-picker/ColumnPicker.d.ts +0 -13
- package/types/vuu-table-extras/src/datagrid-configuration-ui/column-picker/index.d.ts +0 -1
- package/types/vuu-table-extras/src/datagrid-configuration-ui/column-settings-panel/ColumnSettingsPanel.d.ts +0 -9
- package/types/vuu-table-extras/src/datagrid-configuration-ui/column-type-panel/ColumnTypePanel.d.ts +0 -10
- package/types/vuu-table-extras/src/datagrid-configuration-ui/column-type-panel/NumericColumnPanel.d.ts +0 -4
- package/types/vuu-table-extras/src/datagrid-configuration-ui/column-type-panel/StringColumnPanel.d.ts +0 -4
- package/types/vuu-table-extras/src/datagrid-configuration-ui/column-type-panel/index.d.ts +0 -1
- package/types/vuu-table-extras/src/datagrid-configuration-ui/index.d.ts +0 -1
- package/types/vuu-table-extras/src/datagrid-configuration-ui/settings-panel/DatagridSettingsPanel.d.ts +0 -10
- package/types/vuu-table-extras/src/datagrid-configuration-ui/settings-panel/GridSettingsPanel.d.ts +0 -9
- package/types/vuu-table-extras/src/datagrid-configuration-ui/settings-panel/index.d.ts +0 -1
- package/types/vuu-table-extras/src/datagrid-configuration-ui/settings-panel/useGridSettings.d.ts +0 -59
- package/types/vuu-table-extras/src/index.d.ts +0 -6
- package/types/vuu-table-extras/src/table-settings/useTableSettings.d.ts +0 -14
- package/types/vuu-table-extras/src/table-settings-deprecated/calculated-column-panel/CalculatedColumnPanel.d.ts +0 -11
- package/types/vuu-table-extras/src/table-settings-deprecated/calculated-column-panel/index.d.ts +0 -1
- package/types/vuu-table-extras/src/table-settings-deprecated/column-settings-panel/ColumnSettingsPanel.d.ts +0 -9
- package/types/vuu-table-extras/src/table-settings-deprecated/column-settings-panel/index.d.ts +0 -1
- package/types/vuu-table-extras/src/table-settings-deprecated/column-type-panel/ColumnTypePanel.d.ts +0 -10
- package/types/vuu-table-extras/src/table-settings-deprecated/column-type-panel/NumericColumnPanel.d.ts +0 -4
- package/types/vuu-table-extras/src/table-settings-deprecated/column-type-panel/StringColumnPanel.d.ts +0 -4
- package/types/vuu-table-extras/src/table-settings-deprecated/column-type-panel/index.d.ts +0 -1
- package/types/vuu-table-extras/src/table-settings-deprecated/index.d.ts +0 -1
- package/types/vuu-table-extras/src/table-settings-deprecated/settings-panel/DatagridSettingsPanel.d.ts +0 -10
- package/types/vuu-table-extras/src/table-settings-deprecated/settings-panel/GridSettingsPanel.d.ts +0 -9
- package/types/vuu-table-extras/src/table-settings-deprecated/settings-panel/index.d.ts +0 -1
- package/types/vuu-table-extras/src/table-settings-deprecated/settings-panel/useGridSettings.d.ts +0 -59
- /package/types/{vuu-table-extras/src/cell-renderers → cell-renderers}/background-cell/BackgroundCell.d.ts +0 -0
- /package/types/{vuu-table-extras/src/cell-renderers → cell-renderers}/index.d.ts +0 -0
- /package/types/{vuu-table-extras/src/cell-renderers → cell-renderers}/progress-cell/ProgressCell.d.ts +0 -0
- /package/types/{vuu-table-extras/src/cell-renderers → cell-renderers}/progress-cell/index.d.ts +0 -0
- /package/types/{vuu-table-extras/src/cell-renderers → cell-renderers-next}/background-cell/index.d.ts +0 -0
- /package/types/{vuu-table-extras/src/cell-renderers → cell-renderers-next}/background-cell/useDirection.d.ts +0 -0
- /package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/column-function-descriptors.d.ts +0 -0
- /package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/column-language-parser/ColumnExpressionLanguage.d.ts +0 -0
- /package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/column-language-parser/ColumnExpressionTreeWalker.d.ts +0 -0
- /package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/column-language-parser/column-expression-parse-utils.d.ts +0 -0
- /package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/column-language-parser/generated/column-parser.d.ts +0 -0
- /package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/column-language-parser/generated/column-parser.terms.d.ts +0 -0
- /package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/column-language-parser/index.d.ts +0 -0
- /package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/column-language-parser/test.d.mts +0 -0
- /package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/functionDocInfo.d.ts +0 -0
- /package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/highlighting.d.ts +0 -0
- /package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/index.d.ts +0 -0
- /package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/theme.d.ts +0 -0
- /package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/useColumnAutoComplete.d.ts +0 -0
- /package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/useColumnExpressionSuggestionProvider.d.ts +0 -0
- /package/types/{vuu-table-extras/src/column-list → column-list}/ColumnList.d.ts +0 -0
- /package/types/{vuu-table-extras/src/column-list → column-list}/index.d.ts +0 -0
- /package/types/{vuu-table-extras/src/datagrid-configuration-ui/column-settings-panel → column-settings}/index.d.ts +0 -0
- /package/types/{vuu-table-extras/src/datasource-stats → datasource-stats}/DatasourceStats.d.ts +0 -0
- /package/types/{vuu-table-extras/src/datasource-stats → datasource-stats}/index.d.ts +0 -0
- /package/types/{vuu-table-extras/src/table-settings → table-settings}/index.d.ts +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const workerSourceCode: "\nvar de=(r,e,t)=>{if(!e.has(r))throw TypeError(\"Cannot \"+t)};var c=(r,e,t)=>(de(r,e,\"read from private field\"),t?t.call(r):e.get(r)),N=(r,e,t)=>{if(e.has(r))throw TypeError(\"Cannot add the same private member more than once\");e instanceof WeakSet?e.add(r):e.set(r,t)},fe=(r,e,t,s)=>(de(r,e,\"write to private field\"),s?s.call(r,t):e.set(r,t),t);function he(r,e,t=[],s=[]){for(let n=0,o=r.length;n<o;n++)(e(r[n],n)?t:s).push(r[n]);return[t,s]}var I={IDX:0,RENDER_IDX:1,IS_LEAF:2,IS_EXPANDED:3,DEPTH:4,COUNT:5,KEY:6,SELECTED:7,count:8,PARENT_IDX:\"parent_idx\",IDX_POINTER:\"idx_pointer\",FILTER_COUNT:\"filter_count\",NEXT_FILTER_IDX:\"next_filter_idx\"};var{DEPTH:Bt,IS_LEAF:Kt}=I;var me=r=>{var e,t;if(((e=globalThis.document)==null?void 0:e.cookie)!==void 0)return(t=globalThis.document.cookie.split(\"; \").find(s=>s.startsWith(`${r}=`)))==null?void 0:t.split(\"=\")[1]};function Y({from:r,to:e},t=0,s=Number.MAX_SAFE_INTEGER){if(t===0)return s<r?{from:0,to:0}:{from:r,to:Math.min(e,s)};if(r===0)return{from:r,to:Math.min(e+t,s)};{let n=e-r,o=Math.round(t/2),i=r-o<0,u=s-(e+o)<0;return i&&u?{from:0,to:s}:i?{from:0,to:n+t}:u?{from:Math.max(0,s-(n+t)),to:s}:{from:r-o,to:e+o}}}var ot=(r,{from:e,to:t})=>r>=e&&r<t;var v=class{constructor(e,t){this.from=e,this.to=t}isWithin(e){return ot(e,this)}overlap(e,t){return e>=this.to||t<this.from?[0,0]:[Math.max(e,this.from),Math.min(t,this.to)]}copy(){return new v(this.from,this.to)}};var{KEY:Qt}=I;var it=[\"error\",\"warn\",\"info\",\"debug\"],at=r=>typeof r==\"string\"&&it.includes(r),ut=\"error\",F=()=>{},lt=\"error\",{loggingLevel:W=lt}=ct(),R=r=>{let e=W===\"debug\",t=e||W===\"info\",s=t||W===\"warn\",n=s||W===\"error\",o=t?f=>console.info(`[${r}] ${f}`):F,i=s?f=>console.warn(`[${r}] ${f}`):F,u=e?f=>console.debug(`[${r}] ${f}`):F;return{errorEnabled:n,error:n?f=>console.error(`[${r}] ${f}`):F}};function ct(){return typeof loggingSettings<\"u\"?loggingSettings:{loggingLevel:pt()}}function pt(){let r=me(\"vuu-logging-level\");return at(r)?r:ut}var{debug:gt,debugEnabled:dt}=R(\"range-monitor\"),q=class{constructor(e){this.source=e;this.range={from:0,to:0};this.timestamp=0}isSet(){return this.timestamp!==0}set({from:e,to:t}){let{timestamp:s}=this;if(this.range.from=e,this.range.to=t,this.timestamp=performance.now(),s)dt&>(`<${this.source}> [${e}-${t}], ${(this.timestamp-s).toFixed(0)} ms elapsed`);else return 0}};function Ce(r){return Array.isArray(r)}function ft(r){return!Array.isArray(r)}var S,be=class{constructor(){N(this,S,new Map)}addListener(e,t){let s=c(this,S).get(e);s?Ce(s)?s.push(t):ft(s)&&c(this,S).set(e,[s,t]):c(this,S).set(e,t)}removeListener(e,t){if(!c(this,S).has(e))return;let s=c(this,S).get(e),n=-1;if(s===t)c(this,S).delete(e);else if(Array.isArray(s)){for(let o=length;o-- >0;)if(s[o]===t){n=o;break}if(n<0)return;s.length===1?(s.length=0,c(this,S).delete(e)):s.splice(n,1)}}removeAllListeners(e){e&&c(this,S).has(e)?c(this,S).delete(e):e===void 0&&c(this,S).clear()}emit(e,...t){if(c(this,S)){let s=c(this,S).get(e);s&&this.invokeHandler(s,t)}}once(e,t){let s=(...n)=>{this.removeListener(e,s),t(...n)};this.on(e,s)}on(e,t){this.addListener(e,t)}invokeHandler(e,t){if(Ce(e))e.slice().forEach(s=>this.invokeHandler(s,t));else switch(t.length){case 0:e();break;case 1:e(t[0]);break;case 2:e(t[0],t[1]);break;default:e.call(null,...t)}}};S=new WeakMap;var $=String.fromCharCode(8200),h=String.fromCharCode(8199);var cs={DIGIT:h,TWO_DIGITS:h+h,THREE_DIGITS:h+h+h,FULL_PADDING:[null,$+h,$+h+h,$+h+h+h,$+h+h+h+h]};var ps=h+h+h+h+h+h+h+h+h;var ht={Enter:\"Enter\",Delete:\"Delete\"},mt={Home:\"Home\",End:\"End\",ArrowRight:\"ArrowRight\",ArrowLeft:\"ArrowLeft\",ArrowDown:\"ArrowDown\",ArrowUp:\"ArrowUp\",Tab:\"Tab\"},Ct={F1:\"F1\",F2:\"F2\",F3:\"F3\",F4:\"F4\",F5:\"F5\",F6:\"F6\",F7:\"F7\",F8:\"F8\",F9:\"F9\",F10:\"F10\",F11:\"F11\",F12:\"F12\"},Ms={...ht,...mt,...Ct};var{COUNT:xs}=I;var G=class{constructor(e){this.keys=new Map,this.free=[],this.nextKeyValue=0,this.reset(e)}next(){return this.free.length>0?this.free.pop():this.nextKeyValue++}reset({from:e,to:t}){this.keys.forEach((n,o)=>{(o<e||o>=t)&&(this.free.push(n),this.keys.delete(o))});let s=t-e;this.keys.size+this.free.length>s&&(this.free.length=Math.max(0,s-this.keys.size));for(let n=e;n<t;n++)if(!this.keys.has(n)){let o=this.next();this.keys.set(n,o)}this.nextKeyValue>this.keys.size&&(this.nextKeyValue=this.keys.size)}keyFor(e){let t=this.keys.get(e);if(t===void 0)throw console.log(`key not found\n keys: ${this.toDebugString()}\n free : ${this.free.join(\",\")} \n `),Error(`KeySet, no key found for rowIndex ${e}`);return t}toDebugString(){return Array.from(this.keys.entries()).map((e,t)=>`${e}=>${t}`).join(\",\")}};var{IDX:Fs}=I;var{SELECTED:$s}=I,_={False:0,True:1,First:2,Last:4};var Gs=_.True+_.First+_.Last,Bs=_.True+_.First,Ks=_.True+_.Last;var Se=r=>{if(r.every(t=>typeof t==\"number\"))return r;let e=[];for(let t of r)if(typeof t==\"number\")e.push(t);else for(let s=t[0];s<=t[1];s++)e.push(s);return e};var{debug:xn,debugEnabled:Pn,error:Te,info:V,infoEnabled:bt,warn:x}=R(\"websocket-connection\"),Re=\"ws\",St=r=>r.startsWith(Re+\"://\")||r.startsWith(Re+\"s://\"),ye={},Q=Symbol(\"setWebsocket\"),A=Symbol(\"connectionCallback\");async function we(r,e,t){return ee(r,e,t)}async function Z(r){ee(r.url,r.protocol,r[A],r)}async function ee(r,e,t,s){let n=ye[r]||(ye[r]={attemptsRemaining:5,status:\"disconnected\"});try{t({type:\"connection-status\",status:\"connecting\"});let o=typeof s<\"u\",i=await Rt(r,e);console.info(\"%c⚡ %cconnected\",\"font-size: 24px;color: green;font-weight: bold;\",\"color:green; font-size: 14px;\"),s!==void 0&&s[Q](i);let u=s!=null?s:new X(i,r,e,t),d=o?\"reconnected\":\"connection-open-awaiting-session\";return t({type:\"connection-status\",status:d}),u.status=d,u}catch(o){console.log({evt:o});let i=--n.attemptsRemaining>0;if(t({type:\"connection-status\",status:\"disconnected\",reason:\"failed to connect\",retry:i}),i)return Tt(r,e,t,s,1e4);throw Error(\"Failed to establish connection\")}}var Tt=(r,e,t,s,n)=>new Promise(o=>{setTimeout(()=>{o(ee(r,e,t,s))},n)}),Rt=(r,e)=>new Promise((t,s)=>{let n=St(r)?r:`wss://${r}`;bt&&e!==void 0&&V(`WebSocket Protocol ${e==null?void 0:e.toString()}`);let o=new WebSocket(n,e);o.onopen=()=>t(o),o.onerror=i=>s(i)}),Ee=()=>{x==null||x(\"Connection cannot be closed, socket not yet opened\")},Ve=r=>{x==null||x(`Message cannot be sent, socket closed ${r.body.type}`)},yt=r=>{try{return JSON.parse(r)}catch{throw Error(`Error parsing JSON response from server ${r}`)}},X=class{constructor(e,t,s,n){this.close=Ee;this.requiresLogin=!0;this.send=Ve;this.status=\"ready\";this.messagesCount=0;this.connectionMetricsInterval=null;this.handleWebsocketMessage=e=>{let t=yt(e.data);this.messagesCount+=1,this[A](t)};this.url=t,this.protocol=s,this[A]=n,this[Q](e)}reconnect(){Z(this)}[(A,Q)](e){let t=this[A];e.onmessage=o=>{this.status=\"connected\",e.onmessage=this.handleWebsocketMessage,this.handleWebsocketMessage(o)},this.connectionMetricsInterval=setInterval(()=>{t({type:\"connection-metrics\",messagesLength:this.messagesCount}),this.messagesCount=0},1e3),e.onerror=()=>{Te(\"⚡ connection error\"),t({type:\"connection-status\",status:\"disconnected\",reason:\"error\"}),this.connectionMetricsInterval&&(clearInterval(this.connectionMetricsInterval),this.connectionMetricsInterval=null),this.status===\"connection-open-awaiting-session\"?Te(\"Websocket connection lost before Vuu session established, check websocket configuration\"):this.status!==\"closed\"&&(Z(this),this.send=n)},e.onclose=()=>{V==null||V(\"⚡ connection close\"),t({type:\"connection-status\",status:\"disconnected\",reason:\"close\"}),this.connectionMetricsInterval&&(clearInterval(this.connectionMetricsInterval),this.connectionMetricsInterval=null),this.status!==\"closed\"&&(Z(this),this.send=n)};let s=o=>{e.send(JSON.stringify(o))},n=o=>{V==null||V(`TODO queue message until websocket reconnected ${o.body.type}`)};this.send=s,this.close=()=>{this.status=\"closed\",e.close(),this.close=Ee,this.send=Ve,V==null||V(\"close websocket\")}}};var Et=[\"VIEW_PORT_MENUS_SELECT_RPC\",\"VIEW_PORT_MENU_TABLE_RPC\",\"VIEW_PORT_MENU_ROW_RPC\",\"VIEW_PORT_MENU_CELL_RPC\",\"VP_EDIT_CELL_RPC\",\"VP_EDIT_ROW_RPC\",\"VP_EDIT_ADD_ROW_RPC\",\"VP_EDIT_DELETE_CELL_RPC\",\"VP_EDIT_DELETE_ROW_RPC\",\"VP_EDIT_SUBMIT_FORM_RPC\"],Me=r=>Et.includes(r.type),te=({requestId:r,...e})=>[r,e],Ie=r=>{let e=r.at(0);if(e.updateType===\"SIZE\"){if(r.length===1)return r;e=r.at(1)}let t=r.at(-1);return[e,t]},ve=r=>{let e={};for(let t of r)(e[t.viewPortId]||(e[t.viewPortId]=[])).push(t);return e};var se=({columns:r,dataTypes:e,key:t,table:s})=>({table:s,columns:r.map((n,o)=>({name:n,serverDataType:e[o]})),key:t});var _e=r=>r.type===\"connection-status\",De=r=>r.type===\"connection-metrics\";var xe=r=>\"viewport\"in r,Pe=r=>r.type===\"VIEW_PORT_MENU_RESP\"&&r.action!==null&&B(r.action.table),B=r=>r!==null&&typeof r==\"object\"&&\"table\"in r&&\"module\"in r?r.table.startsWith(\"session\"):!1;var Oe=\"CHANGE_VP_SUCCESS\",Le=\"CHANGE_VP_RANGE_SUCCESS\",ke=\"CLOSE_TREE_NODE\",Ae=\"CLOSE_TREE_SUCCESS\";var Ue=\"CREATE_VP\",Ne=\"CREATE_VP_SUCCESS\",Fe=\"DISABLE_VP\",We=\"DISABLE_VP_SUCCESS\";var qe=\"ENABLE_VP\",$e=\"ENABLE_VP_SUCCESS\";var ne=\"GET_VP_VISUAL_LINKS\",Ge=\"GET_VIEW_PORT_MENUS\";var Be=\"HB\",Ke=\"HB_RESP\",He=\"LOGIN\",ze=\"LOGIN_SUCCESS\",je=\"OPEN_TREE_NODE\",Je=\"OPEN_TREE_SUCCESS\";var Ye=\"REMOVE_VP\";var re=\"RPC_RESP\";var Ze=\"SET_SELECTION_SUCCESS\",oe=\"TABLE_META_RESP\",ie=\"TABLE_LIST_RESP\",Qe=\"TABLE_ROW\";var et=r=>{switch(r){case\"TypeAheadRpcHandler\":return\"TYPEAHEAD\";default:return\"SIMUL\"}};var tt=[],y=R(\"array-backed-moving-window\"),C,K=class{constructor({from:e,to:t},{from:s,to:n},o){N(this,C,void 0);this.setRowCount=e=>{var t;if((t=y.info)==null||t.call(y,`setRowCount ${e}`),e<this.internalData.length&&(this.internalData.length=e),e<this.rowCount){this.rowsWithinRange=0;let s=Math.min(e,this.clientRange.to);for(let n=this.clientRange.from;n<s;n++){let o=n-c(this,C).from;this.internalData[o]!==void 0&&(this.rowsWithinRange+=1)}}this.rowCount=e};this.bufferBreakout=(e,t)=>{let s=this.bufferSize*.25;return c(this,C).to-t<s?!0:c(this,C).from>0&&e-c(this,C).from<s};this.bufferSize=o,this.clientRange=new v(e,t),fe(this,C,new v(s,n)),this.internalData=new Array(o),this.rowsWithinRange=0,this.rowCount=0}get range(){return c(this,C)}get hasAllRowsWithinRange(){return this.rowsWithinRange===this.clientRange.to-this.clientRange.from||this.rowCount>0&&this.clientRange.from+this.rowsWithinRange===this.rowCount}outOfRange(e,t){let{from:s,to:n}=this.range;if(t<s||e>=n)return!0}setAtIndex(e){let{rowIndex:t}=e,s=this.isWithinClientRange(t);if(s||this.isWithinRange(t)){let n=t-c(this,C).from;!this.internalData[n]&&s&&(this.rowsWithinRange+=1),this.internalData[n]=e}return s}getAtIndex(e){return c(this,C).isWithin(e)&&this.internalData[e-c(this,C).from]!=null?this.internalData[e-c(this,C).from]:void 0}isWithinRange(e){return c(this,C).isWithin(e)}isWithinClientRange(e){return this.clientRange.isWithin(e)}setClientRange(e,t){var f;(f=y.debug)==null||f.call(y,`setClientRange ${e} - ${t}`);let s=this.clientRange.from,n=Math.min(this.clientRange.to,this.rowCount);if(e===s&&t===n)return[!1,tt];let o=this.clientRange.copy();this.clientRange.from=e,this.clientRange.to=t,this.rowsWithinRange=0;for(let a=e;a<t;a++){let l=a-c(this,C).from;this.internalData[l]&&(this.rowsWithinRange+=1)}let i=tt,u=c(this,C).from;if(this.hasAllRowsWithinRange)if(t>o.to){let a=Math.max(e,o.to);i=this.internalData.slice(a-u,t-u)}else{let a=Math.min(o.from,t);i=this.internalData.slice(e-u,a-u)}return[this.bufferBreakout(e,t),i]}setRange(e,t){var i;(i=y.debug)==null||i.call(y,`setRange ${e} - ${t}`);let[s,n]=c(this,C).overlap(e,t),o=new Array(t-e+this.bufferSize);this.rowsWithinRange=0;for(let u=s;u<n;u++){let d=this.getAtIndex(u);if(d){let f=u-e;o[f]=d,this.isWithinClientRange(u)&&(this.rowsWithinRange+=1)}}this.internalData=o,c(this,C).from=e,c(this,C).to=t}getData(){var u;let{from:e,to:t}=c(this,C),{from:s,to:n}=this.clientRange,o=Math.max(0,s-e),i=Math.min(t-e,t,n-e,(u=this.rowCount)!=null?u:t);return this.internalData.slice(o,i)}clear(){var e;(e=y.debug)==null||e.call(y,\"clear\"),this.internalData.length=0,this.rowsWithinRange=0,this.setRowCount(0)}getCurrentDataRange(){let e=this.internalData,t=e.length,[s]=this.internalData,n=this.internalData[t-1];if(s&&n)return[s.rowIndex,n.rowIndex];for(let o=0;o<t;o++)if(e[o]!==void 0){s=e[o];break}for(let o=t-1;o>=0;o--)if(e[o]!==void 0){n=e[o];break}return s&&n?[s.rowIndex,n.rowIndex]:[-1,-1]}};C=new WeakMap;var Vt=[],{debug:m,debugEnabled:H,error:wt,info:p,infoEnabled:Mt,warn:P}=R(\"viewport\"),It=({rowKey:r,updateType:e})=>e===\"U\"&&!r.startsWith(\"$root\"),z=[void 0,void 0],vt={count:0,mode:void 0,size:0,ts:0},j=class{constructor({aggregations:e,bufferSize:t=50,columns:s,filter:n,groupBy:o=[],table:i,range:u,sort:d,title:f,viewport:a,visualLink:l},g){this.dataWindow=void 0;this.hasUpdates=!1;this.pendingUpdates=[];this.pendingOperations=new Map;this.pendingRangeRequests=[];this.rowCountChanged=!1;this.tableSchema=null;this.batchMode=!0;this.useBatchMode=!0;this.lastUpdateStatus=vt;this.updateThrottleTimer=void 0;this.rangeMonitor=new q(\"ViewPort\");this.disabled=!1;this.isTree=!1;this.status=\"\";this.suspended=!1;this.suspendTimer=null;this.setLastSizeOnlyUpdateSize=e=>{this.lastUpdateStatus.size=e};this.setLastUpdate=e=>{let{ts:t,mode:s}=this.lastUpdateStatus,n=0;if(s===e){let o=Date.now();this.lastUpdateStatus.count+=1,this.lastUpdateStatus.ts=o,n=t===0?0:o-t}else this.lastUpdateStatus.count=1,this.lastUpdateStatus.ts=0,n=0;return this.lastUpdateStatus.mode=e,n};this.rangeRequestAlreadyPending=e=>{let{bufferSize:t}=this,s=t*.25,{from:n}=e;for(let{from:o,to:i}of this.pendingRangeRequests)if(n>=o&&n<i){if(e.to+s<=i)return!0;n=i}return!1};this.sendThrottledSizeMessage=()=>{this.updateThrottleTimer=void 0,this.lastUpdateStatus.count=3,this.postMessageToClient({clientViewportId:this.clientViewportId,mode:\"size-only\",size:this.lastUpdateStatus.size,type:\"viewport-update\"})};this.shouldThrottleMessage=e=>{let t=this.setLastUpdate(e);return e===\"size-only\"&&t>0&&t<500&&this.lastUpdateStatus.count>3};this.throttleMessage=e=>this.shouldThrottleMessage(e)?(this.updateThrottleTimer===void 0&&(this.updateThrottleTimer=setTimeout(this.sendThrottledSizeMessage,2e3)),!0):(this.updateThrottleTimer!==void 0&&(clearTimeout(this.updateThrottleTimer),this.updateThrottleTimer=void 0),!1);this.getNewRowCount=()=>{if(this.rowCountChanged&&this.dataWindow)return this.rowCountChanged=!1,this.dataWindow.rowCount};this.aggregations=e,this.bufferSize=t,this.clientRange=u,this.clientViewportId=a,this.columns=s,this.filter=n,this.groupBy=o,this.keys=new G(u),this.pendingLinkedParent=l,this.table=i,this.sort=d,this.title=f,Mt&&(p==null||p(`constructor #${a} ${i.table} bufferSize=${t}`)),this.postMessageToClient=g}get hasUpdatesToProcess(){return this.suspended?!1:this.rowCountChanged||this.hasUpdates}get size(){var e,t;return(t=(e=this.dataWindow)==null?void 0:e.rowCount)!=null?t:0}subscribe(){let{filter:e}=this.filter;return this.status=this.status===\"subscribed\"?\"resubscribing\":\"subscribing\",{type:Ue,table:this.table,range:Y(this.clientRange,this.bufferSize),aggregations:this.aggregations,columns:this.columns,sort:this.sort,groupBy:this.groupBy,filterSpec:{filter:e}}}handleSubscribed({viewPortId:e,aggregations:t,columns:s,filterSpec:n,range:o,sort:i,groupBy:u}){return this.serverViewportId=e,this.status=\"subscribed\",this.aggregations=t,this.columns=s,this.groupBy=u,this.isTree=u&&u.length>0,this.dataWindow=new K(this.clientRange,o,this.bufferSize),{aggregations:t,type:\"subscribed\",clientViewportId:this.clientViewportId,columns:s,filter:n,groupBy:u,range:o,sort:i,tableSchema:this.tableSchema}}awaitOperation(e,t){this.pendingOperations.set(e,t)}completeOperation(e,...t){var u;let{clientViewportId:s,pendingOperations:n}=this,o=n.get(e);if(!o){wt(\"no matching operation found to complete\");return}let{type:i}=o;if(p==null||p(`completeOperation ${i}`),n.delete(e),i===\"CHANGE_VP_RANGE\"){let[d,f]=t;(u=this.dataWindow)==null||u.setRange(d,f);for(let a=this.pendingRangeRequests.length-1;a>=0;a--){let l=this.pendingRangeRequests[a];if(l.requestId===e){l.acked=!0;break}else P==null||P(\"range requests sent faster than they are being ACKed\")}}else if(i===\"config\"){let{aggregations:d,columns:f,filter:a,groupBy:l,sort:g}=o.data;return this.aggregations=d,this.columns=f,this.filter=a,this.groupBy=l,this.sort=g,l.length>0?this.isTree=!0:this.isTree&&(this.isTree=!1),m==null||m(`config change confirmed, isTree : ${this.isTree}`),{clientViewportId:s,type:i,config:o.data}}else{if(i===\"groupBy\")return this.isTree=o.data.length>0,this.groupBy=o.data,m==null||m(`groupBy change confirmed, isTree : ${this.isTree}`),{clientViewportId:s,type:i,groupBy:o.data};if(i===\"columns\")return this.columns=o.data,{clientViewportId:s,type:i,columns:o.data};if(i===\"filter\")return this.filter=o.data,{clientViewportId:s,type:i,filter:o.data};if(i===\"aggregate\")return this.aggregations=o.data,{clientViewportId:s,type:\"aggregate\",aggregations:this.aggregations};if(i===\"sort\")return this.sort=o.data,{clientViewportId:s,type:i,sort:this.sort};if(i!==\"selection\"){if(i===\"disable\")return this.disabled=!0,{type:\"disabled\",clientViewportId:s};if(i===\"enable\")return this.disabled=!1,{type:\"enabled\",clientViewportId:s};if(i===\"CREATE_VISUAL_LINK\"){let[d,f,a]=t;return this.linkedParent={colName:d,parentViewportId:f,parentColName:a},this.pendingLinkedParent=void 0,{type:\"vuu-link-created\",clientViewportId:s,colName:d,parentViewportId:f,parentColName:a}}else if(i===\"REMOVE_VISUAL_LINK\")return this.linkedParent=void 0,{type:\"vuu-link-removed\",clientViewportId:s}}}}rangeRequest(e,t){H&&this.rangeMonitor.set(t);let s=\"CHANGE_VP_RANGE\";if(this.dataWindow){let[n,o]=this.dataWindow.setClientRange(t.from,t.to),i,u=this.dataWindow.rowCount||void 0,d=n&&!this.rangeRequestAlreadyPending(t)?{type:s,viewPortId:this.serverViewportId,...Y(t,this.bufferSize,u)}:null;if(d){H&&(m==null||m(`create CHANGE_VP_RANGE: [${d.from} - ${d.to}]`)),this.awaitOperation(e,{type:s});let a=this.pendingRangeRequests.at(-1);if(a)if(a.acked)console.warn(\"Range Request before previous request is filled\");else{let{from:l,to:g}=a;this.dataWindow.outOfRange(l,g)?i={clientViewportId:this.clientViewportId,type:\"debounce-begin\"}:P==null||P(\"Range Request before previous request is acked\")}this.pendingRangeRequests.push({...d,requestId:e}),this.useBatchMode&&(this.batchMode=!0)}else o.length>0&&(this.batchMode=!1);this.keys.reset(this.dataWindow.clientRange);let f=this.isTree?ue:ae;return o.length?[d,o.map(a=>f(a,this.keys))]:i?[d,void 0,i]:[d]}else return[null]}setLinks(e){return this.links=e,[{type:\"vuu-links\",links:e,clientViewportId:this.clientViewportId},this.pendingLinkedParent]}setMenu(e){return{type:\"vuu-menu\",menu:e,clientViewportId:this.clientViewportId}}setTableSchema(e){this.tableSchema=e}openTreeNode(e,t){return this.useBatchMode&&(this.batchMode=!0),{type:je,vpId:this.serverViewportId,treeKey:t.key}}closeTreeNode(e,t){return this.useBatchMode&&(this.batchMode=!0),{type:ke,vpId:this.serverViewportId,treeKey:t.key}}createLink(e,t,s,n){let o={type:\"CREATE_VISUAL_LINK\",parentVpId:s,childVpId:this.serverViewportId,parentColumnName:n,childColumnName:t};return this.awaitOperation(e,o),this.useBatchMode&&(this.batchMode=!0),o}removeLink(e){let t={type:\"REMOVE_VISUAL_LINK\",childVpId:this.serverViewportId};return this.awaitOperation(e,t),t}suspend(){this.suspended=!0,p==null||p(\"suspend\")}resume(){return this.suspended=!1,H&&(m==null||m(`resume: ${this.currentData()}`)),this.currentData()}currentData(){let e=[];if(this.dataWindow){let t=this.dataWindow.getData(),{keys:s}=this,n=this.isTree?ue:ae;for(let o of t)o&&e.push(n(o,s))}return e}enable(e){return this.awaitOperation(e,{type:\"enable\"}),p==null||p(`enable: ${this.serverViewportId}`),{type:qe,viewPortId:this.serverViewportId}}disable(e){return this.awaitOperation(e,{type:\"disable\"}),p==null||p(`disable: ${this.serverViewportId}`),this.suspended=!1,{type:Fe,viewPortId:this.serverViewportId}}columnRequest(e,t){return this.awaitOperation(e,{type:\"columns\",data:t}),m==null||m(`columnRequest: ${t}`),this.createRequest({columns:t})}filterRequest(e,t){this.awaitOperation(e,{type:\"filter\",data:t}),this.useBatchMode&&(this.batchMode=!0);let{filter:s}=t;return p==null||p(`filterRequest: ${s}`),this.createRequest({filterSpec:{filter:s}})}setConfig(e,t){this.awaitOperation(e,{type:\"config\",data:t});let{filter:s,...n}=t;return this.useBatchMode&&(this.batchMode=!0),H?m==null||m(`setConfig ${JSON.stringify(t)}`):p==null||p(\"setConfig\"),this.createRequest({...n,filterSpec:typeof(s==null?void 0:s.filter)==\"string\"?{filter:s.filter}:{filter:\"\"}},!0)}aggregateRequest(e,t){return this.awaitOperation(e,{type:\"aggregate\",data:t}),p==null||p(`aggregateRequest: ${t}`),this.createRequest({aggregations:t})}sortRequest(e,t){return this.awaitOperation(e,{type:\"sort\",data:t}),p==null||p(`sortRequest: ${JSON.stringify(t.sortDefs)}`),this.createRequest({sort:t})}groupByRequest(e,t=Vt){var s;return this.awaitOperation(e,{type:\"groupBy\",data:t}),this.useBatchMode&&(this.batchMode=!0),this.isTree||(s=this.dataWindow)==null||s.clear(),this.createRequest({groupBy:t})}selectRequest(e,t){return this.awaitOperation(e,{type:\"selection\",data:t}),p==null||p(`selectRequest: ${t}`),{type:\"SET_SELECTION\",vpId:this.serverViewportId,selection:Se(t)}}removePendingRangeRequest(e,t){for(let s=this.pendingRangeRequests.length-1;s>=0;s--){let{from:n,to:o}=this.pendingRangeRequests[s],i=!0;if(e>=n&&e<o||t>n&&t<o){i||console.warn(\"removePendingRangeRequest TABLE_ROWS are not for latest request\"),this.pendingRangeRequests.splice(s,1);break}else i=!1}}updateRows(e){var n,o,i;let[t,s]=Ie(e);if(t&&s&&this.removePendingRangeRequest(t.rowIndex,s.rowIndex),e.length===1)if(t.vpSize===0&&this.disabled){m==null||m(`ignore a SIZE=0 message on disabled viewport (${e.length} rows)`);return}else t.updateType===\"SIZE\"&&this.setLastSizeOnlyUpdateSize(t.vpSize);for(let u of e)this.isTree&&It(u)||((u.updateType===\"SIZE\"||((n=this.dataWindow)==null?void 0:n.rowCount)!==u.vpSize)&&((o=this.dataWindow)==null||o.setRowCount(u.vpSize),this.rowCountChanged=!0),u.updateType===\"U\"&&(i=this.dataWindow)!=null&&i.setAtIndex(u)&&(this.hasUpdates=!0,this.batchMode||this.pendingUpdates.push(u)))}getClientRows(){let e,t=\"size-only\";if(!this.hasUpdates&&!this.rowCountChanged)return z;if(this.hasUpdates&&this.dataWindow){let{keys:s}=this,n=this.isTree?ue:ae;if(this.updateThrottleTimer&&(self.clearTimeout(this.updateThrottleTimer),this.updateThrottleTimer=void 0),this.pendingUpdates.length>0){e=[],t=\"update\";for(let o of this.pendingUpdates)e.push(n(o,s));this.pendingUpdates.length=0}else{let o=this.dataWindow.getData();if(this.dataWindow.hasAllRowsWithinRange){e=[],t=\"batch\";for(let i of o)e.push(n(i,s));this.batchMode=!1}}this.hasUpdates=!1}return this.throttleMessage(t)?z:[e,t]}createRequest(e,t=!1){return t?{type:\"CHANGE_VP\",viewPortId:this.serverViewportId,...e}:{type:\"CHANGE_VP\",viewPortId:this.serverViewportId,aggregations:this.aggregations,columns:this.columns,sort:this.sort,groupBy:this.groupBy,filterSpec:{filter:this.filter.filter},...e}}},ae=({rowIndex:r,rowKey:e,sel:t,data:s},n)=>[r,n.keyFor(r),!0,!1,0,0,e,t].concat(s),ue=({rowIndex:r,rowKey:e,sel:t,data:s},n)=>{let[o,i,,u,,d,...f]=s;return[r,n.keyFor(r),u,i,o,d,e,t].concat(f)};var st=1;var{debug:E,debugEnabled:O,error:L,info:w,infoEnabled:_t,warn:k}=R(\"server-proxy\"),b=()=>`${st++}`,Dt={},xt=r=>r.disabled!==!0&&r.suspended!==!0,Pt={type:\"NO_ACTION\"},Ot=(r,e,t)=>r.map(s=>s.parentVpId===e?{...s,label:t}:s);function Lt(r,e){return r.map(t=>{let{parentVpId:s}=t,n=e.get(s);if(n)return{...t,parentClientVpId:n.clientViewportId,label:n.title};throw Error(\"addLabelsToLinks viewport not found\")})}var J=class{constructor(e,t){this.authToken=\"\";this.user=\"user\";this.pendingTableMetaRequests=new Map;this.pendingRequests=new Map;this.queuedRequests=[];this.cachedTableSchemas=new Map;this.connection=e,this.postMessageToClient=t,this.viewports=new Map,this.mapClientToServerViewport=new Map}async reconnect(){await this.login(this.authToken);let[e,t]=he(Array.from(this.viewports.values()),xt);this.viewports.clear(),this.mapClientToServerViewport.clear();let s=n=>{n.forEach(o=>{let{clientViewportId:i}=o;this.viewports.set(i,o),this.sendMessageToServer(o.subscribe(),i)})};s(e),setTimeout(()=>{s(t)},2e3)}async login(e,t=\"user\"){if(e)return this.authToken=e,this.user=t,new Promise((s,n)=>{this.sendMessageToServer({type:He,token:this.authToken,user:t},\"\"),this.pendingLogin={resolve:s,reject:n}});this.authToken===\"\"&&L(\"login, cannot login until auth token has been obtained\")}subscribe(e){if(this.mapClientToServerViewport.has(e.viewport))L(`spurious subscribe call ${e.viewport}`);else{if(!this.hasSchemaForTable(e.table)&&!B(e.table)){w==null||w(`subscribe to ${e.table.table}, no metadata yet, request metadata`);let s=b();this.sendMessageToServer({type:\"GET_TABLE_META\",table:e.table},s),this.pendingTableMetaRequests.set(s,e.viewport)}let t=new j(e,this.postMessageToClient);this.viewports.set(e.viewport,t),this.sendIfReady(t.subscribe(),e.viewport,this.sessionId!==\"\")}}unsubscribe(e){let t=this.mapClientToServerViewport.get(e);t?(w==null||w(`Unsubscribe Message (Client to Server):\n ${t}`),this.sendMessageToServer({type:Ye,viewPortId:t})):L(`failed to unsubscribe client viewport ${e}, viewport not found`)}getViewportForClient(e,t=!0){let s=this.mapClientToServerViewport.get(e);if(s){let n=this.viewports.get(s);if(n)return n;if(t)throw Error(`Viewport not found for client viewport ${e}`);return null}else{if(this.viewports.has(e))return this.viewports.get(e);if(t)throw Error(`Viewport server id not found for client viewport ${e}`);return null}}setViewRange(e,t){let s=b(),[n,o,i]=e.rangeRequest(s,t.range);n&&this.sendIfReady(n,s,e.status===\"subscribed\"),o?this.postMessageToClient({mode:\"batch\",type:\"viewport-update\",clientViewportId:e.clientViewportId,rows:o}):i&&this.postMessageToClient(i)}setConfig(e,t){let s=b(),n=e.setConfig(s,t.config);this.sendIfReady(n,s,e.status===\"subscribed\")}aggregate(e,t){let s=b(),n=e.aggregateRequest(s,t.aggregations);this.sendIfReady(n,s,e.status===\"subscribed\")}sort(e,t){let s=b(),n=e.sortRequest(s,t.sort);this.sendIfReady(n,s,e.status===\"subscribed\")}groupBy(e,t){let s=b(),n=e.groupByRequest(s,t.groupBy);this.sendIfReady(n,s,e.status===\"subscribed\")}filter(e,t){let s=b(),{filter:n}=t,o=e.filterRequest(s,n);this.sendIfReady(o,s,e.status===\"subscribed\")}setColumns(e,t){let s=b(),{columns:n}=t,o=e.columnRequest(s,n);this.sendIfReady(o,s,e.status===\"subscribed\")}setTitle(e,t){e&&(e.title=t.title,this.updateTitleOnVisualLinks(e))}select(e,t){let s=b(),{selected:n}=t,o=e.selectRequest(s,n);this.sendIfReady(o,s,e.status===\"subscribed\")}disableViewport(e){let t=b(),s=e.disable(t);this.sendIfReady(s,t,e.status===\"subscribed\")}enableViewport(e){if(e.disabled){let t=b(),s=e.enable(t);this.sendIfReady(s,t,e.status===\"subscribed\")}}suspendViewport(e){e.suspend(),e.suspendTimer=setTimeout(()=>{w==null||w(\"suspendTimer expired, escalate suspend to disable\"),this.disableViewport(e)},3e3)}resumeViewport(e){e.suspendTimer&&(E==null||E(\"clear suspend timer\"),clearTimeout(e.suspendTimer),e.suspendTimer=null);let t=e.resume();this.postMessageToClient({clientViewportId:e.clientViewportId,mode:\"batch\",rows:t,type:\"viewport-update\"})}openTreeNode(e,t){if(e.serverViewportId){let s=b();this.sendIfReady(e.openTreeNode(s,t),s,e.status===\"subscribed\")}}closeTreeNode(e,t){if(e.serverViewportId){let s=b();this.sendIfReady(e.closeTreeNode(s,t),s,e.status===\"subscribed\")}}createLink(e,t){let{parentClientVpId:s,parentColumnName:n,childColumnName:o}=t,i=b(),u=this.mapClientToServerViewport.get(s);if(u){let d=e.createLink(i,o,u,n);this.sendMessageToServer(d,i)}else L(\"ServerProxy unable to create link, viewport not found\")}removeLink(e){let t=b(),s=e.removeLink(t);this.sendMessageToServer(s,t)}updateTitleOnVisualLinks(e){var n;let{serverViewportId:t,title:s}=e;for(let o of this.viewports.values())if(o!==e&&o.links&&t&&s&&(n=o.links)!=null&&n.some(i=>i.parentVpId===t)){let[i]=o.setLinks(Ot(o.links,t,s));this.postMessageToClient(i)}}removeViewportFromVisualLinks(e){var t;for(let s of this.viewports.values())if((t=s.links)!=null&&t.some(({parentVpId:n})=>n===e)){let[n]=s.setLinks(s.links.filter(({parentVpId:o})=>o!==e));this.postMessageToClient(n)}}menuRpcCall(e){let t=this.getViewportForClient(e.vpId,!1);if(t!=null&&t.serverViewportId){let[s,n]=te(e);this.sendMessageToServer({...n,vpId:t.serverViewportId},s)}}rpcCall(e){let[t,s]=te(e),n=et(s.service);this.sendMessageToServer(s,t,{module:n})}handleMessageFromClient(e){if(E==null||E(`handleMessageFromClient: ${e.type}`),xe(e))if(e.type===\"disable\"){let t=this.getViewportForClient(e.viewport,!1);return t!==null?this.disableViewport(t):void 0}else{let t=this.getViewportForClient(e.viewport);switch(e.type){case\"setViewRange\":return this.setViewRange(t,e);case\"config\":return this.setConfig(t,e);case\"aggregate\":return this.aggregate(t,e);case\"sort\":return this.sort(t,e);case\"groupBy\":return this.groupBy(t,e);case\"filter\":return this.filter(t,e);case\"select\":return this.select(t,e);case\"suspend\":return this.suspendViewport(t);case\"resume\":return this.resumeViewport(t);case\"enable\":return this.enableViewport(t);case\"openTreeNode\":return this.openTreeNode(t,e);case\"closeTreeNode\":return this.closeTreeNode(t,e);case\"createLink\":return this.createLink(t,e);case\"removeLink\":return this.removeLink(t);case\"setColumns\":return this.setColumns(t,e);case\"setTitle\":return this.setTitle(t,e);default:}}else{if(Me(e))return this.menuRpcCall(e);{let{type:t,requestId:s}=e;switch(t){case\"GET_TABLE_LIST\":return this.sendMessageToServer({type:t},s);case\"GET_TABLE_META\":return this.sendMessageToServer({type:t,table:e.table},s);case\"RPC_CALL\":return this.rpcCall(e);default:}}}L(`Vuu ServerProxy Unexpected message from client ${JSON.stringify(e)}`)}awaitResponseToMessage(e){return new Promise((t,s)=>{let n=b();this.sendMessageToServer(e,n),this.pendingRequests.set(n,{reject:s,resolve:t})})}sendIfReady(e,t,s=!0){return s?this.sendMessageToServer(e,t):this.queuedRequests.push(e),s}sendMessageToServer(e,t=`${st++}`,s=Dt){let{module:n=\"CORE\"}=s;this.authToken&&this.connection.send({requestId:t,sessionId:this.sessionId,token:this.authToken,user:this.user,module:n,body:e})}handleMessageFromServer(e){var u;let{body:t,requestId:s,sessionId:n}=e,o=this.pendingRequests.get(s);if(o){let{resolve:a}=o;this.pendingRequests.delete(s),a(t);return}let{viewports:i}=this;switch(t.type){case Be:this.sendMessageToServer({type:Ke,ts:+new Date},\"NA\");break;case ze:if(n)this.sessionId=n,(u=this.pendingLogin)==null||u.resolve(n),this.pendingLogin=void 0;else throw Error(\"LOGIN_SUCCESS did not provide sessionId\");break;case Ne:{let a=i.get(s);if(a){let{status:l}=a,{viewPortId:g}=t;s!==g&&(i.delete(s),i.set(g,a)),this.mapClientToServerViewport.set(s,g);let T=a.handleSubscribed(t);T&&(this.postMessageToClient(T),O&&E(`post DataSourceSubscribedMessage to client: ${JSON.stringify(T)}`)),a.disabled&&this.disableViewport(a),l===\"subscribing\"&&!B(a.table)&&(this.sendMessageToServer({type:ne,vpId:g}),this.sendMessageToServer({type:Ge,vpId:g}),Array.from(i.entries()).filter(([M,{disabled:U}])=>M!==g&&!U).forEach(([M])=>{this.sendMessageToServer({type:ne,vpId:M})}))}}break;case\"REMOVE_VP_SUCCESS\":{let a=this.viewports.get(t.viewPortId);a&&(this.mapClientToServerViewport.delete(a.clientViewportId),i.delete(t.viewPortId),this.removeViewportFromVisualLinks(t.viewPortId))}break;case Ze:{let a=this.viewports.get(t.vpId);a&&a.completeOperation(s)}break;case Oe:case We:if(i.has(t.viewPortId)){let a=this.viewports.get(t.viewPortId);if(a){let l=a.completeOperation(s);l!==void 0&&(this.postMessageToClient(l),O&&E(`postMessageToClient ${JSON.stringify(l)}`))}}break;case $e:{let a=this.viewports.get(t.viewPortId);if(a){let l=a.completeOperation(s);if(l){this.postMessageToClient(l);let g=a.currentData();O&&E(`Enable Response (ServerProxy to Client): ${JSON.stringify(l)}`),a.size===0?O&&E(\"Viewport Enabled but size 0, resend to server\"):(this.postMessageToClient({clientViewportId:a.clientViewportId,mode:\"batch\",rows:g,size:a.size,type:\"viewport-update\"}),O&&E(`Enable Response (ServerProxy to Client): send size ${a.size} ${g.length} rows from cache`))}}}break;case Qe:{let a=ve(t.rows);for(let[l,g]of Object.entries(a)){let T=i.get(l);T?T.updateRows(g):k==null||k(`TABLE_ROW message received for non registered viewport ${l}`)}this.processUpdates()}break;case Le:{let a=this.viewports.get(t.viewPortId);if(a){let{from:l,to:g}=t;a.completeOperation(s,l,g)}}break;case Je:case Ae:break;case\"CREATE_VISUAL_LINK_SUCCESS\":{let a=this.viewports.get(t.childVpId),l=this.viewports.get(t.parentVpId);if(a&&l){let{childColumnName:g,parentColumnName:T}=t,M=a.completeOperation(s,g,l.clientViewportId,T);M&&this.postMessageToClient(M)}}break;case\"REMOVE_VISUAL_LINK_SUCCESS\":{let a=this.viewports.get(t.childVpId);if(a){let l=a.completeOperation(s);l&&this.postMessageToClient(l)}}break;case ie:this.postMessageToClient({type:ie,tables:t.tables,requestId:s});break;case oe:{let a=this.cacheTableMeta(t),l=this.pendingTableMetaRequests.get(s);if(l){this.pendingTableMetaRequests.delete(s);let g=this.viewports.get(l);g?g.setTableSchema(a):k==null||k(\"Message has come back AFTER CREATE_VP_SUCCESS, what do we do now\")}else this.postMessageToClient({type:oe,tableSchema:a,requestId:s})}break;case\"VP_VISUAL_LINKS_RESP\":{let a=this.getActiveLinks(t.links),l=this.viewports.get(t.vpId);if(a.length&&l){let g=Lt(a,this.viewports),[T,M]=l.setLinks(g);if(this.postMessageToClient(T),M){let{link:U,parentClientVpId:nt}=M,pe=b(),ge=this.mapClientToServerViewport.get(nt);if(ge){let rt=l.createLink(pe,U.fromColumn,ge,U.toColumn);this.sendMessageToServer(rt,pe)}}}}break;case\"VIEW_PORT_MENUS_RESP\":if(t.menu.name){let a=this.viewports.get(t.vpId);if(a){let l=a.setMenu(t.menu);this.postMessageToClient(l)}}break;case\"VP_EDIT_RPC_RESPONSE\":this.postMessageToClient({action:t.action,requestId:s,rpcName:t.rpcName,type:\"VP_EDIT_RPC_RESPONSE\"});break;case\"VP_EDIT_RPC_REJECT\":this.viewports.get(t.vpId)&&this.postMessageToClient({requestId:s,type:\"VP_EDIT_RPC_REJECT\",error:t.error});break;case\"VIEW_PORT_MENU_RESP\":if(Pe(t)){let{action:a,rpcName:l}=t;this.awaitResponseToMessage({type:\"GET_TABLE_META\",table:a.table}).then(g=>{let T=se(g);this.postMessageToClient({rpcName:l,type:\"VIEW_PORT_MENU_RESP\",action:{...a,tableSchema:T},tableAlreadyOpen:this.isTableOpen(a.table),requestId:s})})}else{let{action:a}=t;this.postMessageToClient({type:\"VIEW_PORT_MENU_RESP\",action:a||Pt,tableAlreadyOpen:a!==null&&this.isTableOpen(a.table),requestId:s})}break;case re:{let{method:a,result:l}=t;this.postMessageToClient({type:re,method:a,result:l,requestId:s})}break;case\"ERROR\":L(t.msg);break;default:_t&&w(`handleMessageFromServer ${t.type}.`)}}hasSchemaForTable(e){return this.cachedTableSchemas.has(`${e.module}:${e.table}`)}cacheTableMeta(e){let{module:t,table:s}=e.table,n=`${t}:${s}`,o=this.cachedTableSchemas.get(n);return o||(o=se(e),this.cachedTableSchemas.set(n,o)),o}isTableOpen(e){if(e){let t=e.table;for(let s of this.viewports.values())if(!s.suspended&&s.table.table===t)return!0}}getActiveLinks(e){return e.filter(t=>{let s=this.viewports.get(t.parentVpId);return s&&!s.suspended})}processUpdates(){this.viewports.forEach(e=>{var t;if(e.hasUpdatesToProcess){let s=e.getClientRows();if(s!==z){let[n,o]=s,i=e.getNewRowCount();(i!==void 0||n&&n.length>0)&&(O&&E(`postMessageToClient #${e.clientViewportId} viewport-update ${o}, ${(t=n==null?void 0:n.length)!=null?t:\"no\"} rows, size ${i}`),i&&console.log(`send size to client (along with ${n==null?void 0:n.length} rows)`),o&&this.postMessageToClient({clientViewportId:e.clientViewportId,mode:o,rows:n,size:i,type:\"viewport-update\"}))}}})}};var D,{info:le,infoEnabled:ce}=R(\"worker\");async function kt(r,e,t,s,n){let o=await we(r,e,i=>{De(i)?postMessage({type:\"connection-metrics\",messages:i}):_e(i)?(n(i),i.status===\"reconnected\"&&D.reconnect()):D.handleMessageFromServer(i)});D=new J(o,i=>At(i)),o.requiresLogin&&await D.login(t,s)}function At(r){postMessage(r)}var Ut=async({data:r})=>{switch(r.type){case\"connect\":await kt(r.url,r.protocol,r.token,r.username,postMessage),postMessage({type:\"connected\"});break;case\"subscribe\":ce&&le(`client subscribe: ${JSON.stringify(r)}`),D.subscribe(r);break;case\"unsubscribe\":ce&&le(`client unsubscribe: ${JSON.stringify(r)}`),D.unsubscribe(r.viewport);break;default:ce&&le(`client message: ${JSON.stringify(r)}`),D.handleMessageFromClient(r)}};self.addEventListener(\"message\",Ut);postMessage({type:\"ready\"});\n\n";
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { ColumnDescriptor, Selection } from "@vuu-ui/vuu-datagrid-types";
|
|
2
|
-
import { LinkDescriptorWithLabel, VuuGroupBy, VuuAggregation, VuuRange, VuuSort, ClientToServerMenuRPC, ClientToServerEditRpc } from "@vuu-ui/vuu-protocol-types";
|
|
3
|
-
import { DataSourceFilter, DataSourceRow } from "@vuu-ui/vuu-data-types";
|
|
4
|
-
import { EventEmitter, JsonData } from "@vuu-ui/vuu-utils";
|
|
5
|
-
import type { DataSource, DataSourceConstructorProps, DataSourceEvents, SubscribeCallback, SubscribeProps } from "./data-source";
|
|
6
|
-
import { MenuRpcResponse, VuuUIMessageInRPCEditReject, VuuUIMessageInRPCEditResponse } from "./vuuUIMessageTypes";
|
|
7
|
-
export interface JsonDataSourceConstructorProps extends Omit<DataSourceConstructorProps, "bufferSize" | "table"> {
|
|
8
|
-
data: JsonData;
|
|
9
|
-
}
|
|
10
|
-
export declare class JsonDataSource extends EventEmitter<DataSourceEvents> implements DataSource {
|
|
11
|
-
#private;
|
|
12
|
-
private status;
|
|
13
|
-
columnDescriptors: ColumnDescriptor[];
|
|
14
|
-
private clientCallback;
|
|
15
|
-
private expandedRows;
|
|
16
|
-
private visibleRows;
|
|
17
|
-
rowCount: number | undefined;
|
|
18
|
-
viewport: string;
|
|
19
|
-
private keys;
|
|
20
|
-
constructor({ aggregations, data, filter, groupBy, sort, title, viewport, }: JsonDataSourceConstructorProps);
|
|
21
|
-
subscribe({ viewport, columns, aggregations, range, sort, groupBy, filter, }: SubscribeProps, callback: SubscribeCallback): Promise<void>;
|
|
22
|
-
unsubscribe(): void;
|
|
23
|
-
suspend(): this;
|
|
24
|
-
resume(): this;
|
|
25
|
-
disable(): this;
|
|
26
|
-
enable(): this;
|
|
27
|
-
select(selected: Selection): void;
|
|
28
|
-
openTreeNode(key: string): void;
|
|
29
|
-
closeTreeNode(key: string, cascade?: boolean): void;
|
|
30
|
-
get config(): undefined;
|
|
31
|
-
get selectedRowsCount(): number;
|
|
32
|
-
get size(): number;
|
|
33
|
-
get range(): VuuRange;
|
|
34
|
-
set range(range: VuuRange);
|
|
35
|
-
private sendRowsToClient;
|
|
36
|
-
get columns(): string[];
|
|
37
|
-
set columns(columns: string[]);
|
|
38
|
-
get aggregations(): VuuAggregation[];
|
|
39
|
-
set aggregations(aggregations: VuuAggregation[]);
|
|
40
|
-
get sort(): VuuSort;
|
|
41
|
-
set sort(sort: VuuSort);
|
|
42
|
-
get filter(): DataSourceFilter;
|
|
43
|
-
set filter(filter: DataSourceFilter);
|
|
44
|
-
get groupBy(): VuuGroupBy;
|
|
45
|
-
set groupBy(groupBy: VuuGroupBy);
|
|
46
|
-
get title(): string | undefined;
|
|
47
|
-
set title(title: string | undefined);
|
|
48
|
-
createLink({ parentVpId, link: { fromColumn, toColumn }, }: LinkDescriptorWithLabel): void;
|
|
49
|
-
removeLink(): void;
|
|
50
|
-
menuRpcCall(rpcRequest: Omit<ClientToServerMenuRPC, "vpId"> | ClientToServerEditRpc): Promise<MenuRpcResponse | VuuUIMessageInRPCEditReject | VuuUIMessageInRPCEditResponse | undefined>;
|
|
51
|
-
getChildRows(rowKey: string): DataSourceRow[];
|
|
52
|
-
getRowsAtDepth(depth: number, visibleOnly?: boolean): DataSourceRow[];
|
|
53
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { ClientToServerMenuRPC, VuuColumnDataType, VuuRow, VuuRpcRequest, VuuTable, VuuTableMeta } from "@vuu-ui/vuu-protocol-types";
|
|
2
|
-
import { VuuUIMessageOut } from "./vuuUIMessageTypes";
|
|
3
|
-
export declare const isVuuMenuRpcRequest: (message: VuuUIMessageOut | VuuRpcRequest | ClientToServerMenuRPC) => message is ClientToServerMenuRPC;
|
|
4
|
-
export type WithRequestId<T> = T & {
|
|
5
|
-
requestId: string;
|
|
6
|
-
};
|
|
7
|
-
export declare const stripRequestId: <T>({ requestId, ...rest }: WithRequestId<T>) => [string, T];
|
|
8
|
-
export declare const getFirstAndLastRows: (rows: VuuRow[]) => [VuuRow, VuuRow] | [VuuRow];
|
|
9
|
-
export type ViewportRowMap = {
|
|
10
|
-
[key: string]: VuuRow[];
|
|
11
|
-
};
|
|
12
|
-
export declare const groupRowsByViewport: (rows: VuuRow[]) => ViewportRowMap;
|
|
13
|
-
export type SchemaColumn = {
|
|
14
|
-
name: string;
|
|
15
|
-
serverDataType: VuuColumnDataType;
|
|
16
|
-
};
|
|
17
|
-
export interface VuuTableMetaWithTable extends VuuTableMeta {
|
|
18
|
-
table: VuuTable;
|
|
19
|
-
}
|
|
20
|
-
export type TableSchema = {
|
|
21
|
-
columns: SchemaColumn[];
|
|
22
|
-
key: string;
|
|
23
|
-
table: VuuTable;
|
|
24
|
-
};
|
|
25
|
-
export declare const getColumnByName: (schema: TableSchema, name?: string) => SchemaColumn | undefined;
|
|
26
|
-
export declare const createSchemaFromTableMetadata: ({ columns, dataTypes, key, table, }: VuuTableMetaWithTable) => Readonly<TableSchema>;
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { DataSourceFilter } from "@vuu-ui/vuu-data-types";
|
|
2
|
-
import { Selection } from "@vuu-ui/vuu-datagrid-types";
|
|
3
|
-
import { ClientToServerEditRpc, ClientToServerMenuRPC, LinkDescriptorWithLabel, VuuAggregation, VuuGroupBy, VuuRange, VuuSort, VuuTable } from "@vuu-ui/vuu-protocol-types";
|
|
4
|
-
import { EventEmitter } from "@vuu-ui/vuu-utils";
|
|
5
|
-
import { DataSource, DataSourceCallbackMessage, DataSourceConfig, DataSourceConstructorProps, DataSourceEvents, OptimizeStrategy, SubscribeCallback, SubscribeProps } from "./data-source";
|
|
6
|
-
import { MenuRpcResponse } from "./vuuUIMessageTypes";
|
|
7
|
-
export declare class RemoteDataSource extends EventEmitter<DataSourceEvents> implements DataSource {
|
|
8
|
-
#private;
|
|
9
|
-
private bufferSize;
|
|
10
|
-
private server;
|
|
11
|
-
private status;
|
|
12
|
-
private clientCallback;
|
|
13
|
-
private configChangePending;
|
|
14
|
-
private rangeRequest;
|
|
15
|
-
table: VuuTable;
|
|
16
|
-
viewport: string | undefined;
|
|
17
|
-
constructor({ bufferSize, aggregations, columns, filter, groupBy, sort, table, title, viewport, visualLink, }: DataSourceConstructorProps);
|
|
18
|
-
subscribe({ viewport, columns, aggregations, range, sort, groupBy, filter, }: SubscribeProps, callback: SubscribeCallback): Promise<void>;
|
|
19
|
-
handleMessageFromServer: (message: DataSourceCallbackMessage) => void;
|
|
20
|
-
unsubscribe(): void;
|
|
21
|
-
suspend(): this;
|
|
22
|
-
resume(): this;
|
|
23
|
-
disable(): this;
|
|
24
|
-
enable(): this;
|
|
25
|
-
select(selected: Selection): void;
|
|
26
|
-
openTreeNode(key: string): void;
|
|
27
|
-
closeTreeNode(key: string): void;
|
|
28
|
-
get optimize(): OptimizeStrategy;
|
|
29
|
-
set optimize(optimize: OptimizeStrategy);
|
|
30
|
-
private revertDebounce;
|
|
31
|
-
get selectedRowsCount(): number;
|
|
32
|
-
get size(): number;
|
|
33
|
-
get range(): VuuRange;
|
|
34
|
-
set range(range: VuuRange);
|
|
35
|
-
private rawRangeRequest;
|
|
36
|
-
private debounceRangeRequest;
|
|
37
|
-
private throttleRangeRequest;
|
|
38
|
-
get config(): DataSourceConfig | undefined;
|
|
39
|
-
set config(config: DataSourceConfig | undefined);
|
|
40
|
-
get columns(): string[];
|
|
41
|
-
set columns(columns: string[]);
|
|
42
|
-
get aggregations(): VuuAggregation[];
|
|
43
|
-
set aggregations(aggregations: VuuAggregation[]);
|
|
44
|
-
get sort(): VuuSort;
|
|
45
|
-
set sort(sort: VuuSort);
|
|
46
|
-
get filter(): DataSourceFilter;
|
|
47
|
-
set filter(filter: DataSourceFilter);
|
|
48
|
-
get groupBy(): VuuGroupBy;
|
|
49
|
-
set groupBy(groupBy: VuuGroupBy);
|
|
50
|
-
get title(): string | undefined;
|
|
51
|
-
set title(title: string | undefined);
|
|
52
|
-
get visualLink(): LinkDescriptorWithLabel | undefined;
|
|
53
|
-
set visualLink(visualLink: LinkDescriptorWithLabel | undefined);
|
|
54
|
-
private setConfigPending;
|
|
55
|
-
menuRpcCall(rpcRequest: Omit<ClientToServerMenuRPC, "vpId"> | ClientToServerEditRpc): Promise<MenuRpcResponse | undefined>;
|
|
56
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
export declare const CHANGE_VP_SUCCESS = "CHANGE_VP_SUCCESS";
|
|
2
|
-
export declare const CHANGE_VP_RANGE_SUCCESS = "CHANGE_VP_RANGE_SUCCESS";
|
|
3
|
-
export declare const CLOSE_TREE_NODE = "CLOSE_TREE_NODE";
|
|
4
|
-
export declare const CLOSE_TREE_SUCCESS = "CLOSE_TREE_SUCCESS";
|
|
5
|
-
export declare const CLOSE_TREE_REJECT = "CLOSE_TREE_REJECT";
|
|
6
|
-
export declare const CREATE_VISUAL_LINK = "CREATE_VISUAL_LINK";
|
|
7
|
-
export declare const CREATE_VP = "CREATE_VP";
|
|
8
|
-
export declare const CREATE_VP_SUCCESS = "CREATE_VP_SUCCESS";
|
|
9
|
-
export declare const DISABLE_VP = "DISABLE_VP";
|
|
10
|
-
export declare const DISABLE_VP_SUCCESS = "DISABLE_VP_SUCCESS";
|
|
11
|
-
export declare const DISABLE_VP_REJECT = "DISABLE_VP_REJECT";
|
|
12
|
-
export declare const ENABLE_VP = "ENABLE_VP";
|
|
13
|
-
export declare const ENABLE_VP_SUCCESS = "ENABLE_VP_SUCCESS";
|
|
14
|
-
export declare const ENABLE_VP_REJECT = "ENABLE_VP_REJECT";
|
|
15
|
-
export declare const GET_TABLE_LIST = "GET_TABLE_LIST";
|
|
16
|
-
export declare const GET_TABLE_META = "GET_TABLE_META";
|
|
17
|
-
export declare const GET_VP_VISUAL_LINKS = "GET_VP_VISUAL_LINKS";
|
|
18
|
-
export declare const GET_VIEW_PORT_MENUS = "GET_VIEW_PORT_MENUS";
|
|
19
|
-
export declare const VIEW_PORT_MENUS_SELECT_RPC = "VIEW_PORT_MENUS_SELECT_RPC";
|
|
20
|
-
export declare const VIEW_PORT_MENU_CELL_RPC = "VIEW_PORT_MENU_CELL_RPC";
|
|
21
|
-
export declare const VIEW_PORT_MENU_TABLE_RPC = "VIEW_PORT_MENU_TABLE_RPC";
|
|
22
|
-
export declare const VIEW_PORT_MENU_ROW_RPC = "VIEW_PORT_MENU_ROW_RPC";
|
|
23
|
-
export declare const VIEW_PORT_MENU_RESP = "VIEW_PORT_MENU_RESP";
|
|
24
|
-
export declare const VIEW_PORT_MENU_REJ = "VIEW_PORT_MENU_REJ";
|
|
25
|
-
export declare const HB = "HB";
|
|
26
|
-
export declare const HB_RESP = "HB_RESP";
|
|
27
|
-
export declare const LOGIN = "LOGIN";
|
|
28
|
-
export declare const LOGIN_SUCCESS = "LOGIN_SUCCESS";
|
|
29
|
-
export declare const OPEN_TREE_NODE = "OPEN_TREE_NODE";
|
|
30
|
-
export declare const OPEN_TREE_SUCCESS = "OPEN_TREE_SUCCESS";
|
|
31
|
-
export declare const OPEN_TREE_REJECT = "OPEN_TREE_REJECT";
|
|
32
|
-
export declare const REMOVE_VP = "REMOVE_VP";
|
|
33
|
-
export declare const REMOVE_VP_REJECT = "REMOVE_VP_REJECT";
|
|
34
|
-
export declare const RPC_CALL = "RPC_CALL";
|
|
35
|
-
export declare const RPC_RESP = "RPC_RESP";
|
|
36
|
-
export declare const MENU_RPC_RESP = "MENU_RPC_RESP";
|
|
37
|
-
export declare const SET_SELECTION = "SET_SELECTION";
|
|
38
|
-
export declare const SET_SELECTION_SUCCESS = "SET_SELECTION_SUCCESS";
|
|
39
|
-
export declare const TABLE_META_RESP = "TABLE_META_RESP";
|
|
40
|
-
export declare const TABLE_LIST_RESP = "TABLE_LIST_RESP";
|
|
41
|
-
export declare const TABLE_ROW = "TABLE_ROW";
|
|
42
|
-
export declare const SIZE = "SIZE";
|
|
43
|
-
export declare const UPDATE = "U";
|
|
@@ -1,202 +0,0 @@
|
|
|
1
|
-
import { ClientToServerTableList, ClientToServerTableMeta, LinkDescriptorWithLabel, ServerToClientBody, ServerToClientMenuSessionTableAction, TypeAheadMethod, VuuAggregation, VuuColumns, VuuGroupBy, VuuRange, VuuSort, VuuTable } from "@vuu-ui/vuu-protocol-types";
|
|
2
|
-
import { DataSourceFilter } from "@vuu-ui/vuu-data-types";
|
|
3
|
-
import { TableSchema, WithRequestId } from "./message-utils";
|
|
4
|
-
import { WithFullConfig } from "./data-source";
|
|
5
|
-
import { Selection } from "@vuu-ui/vuu-datagrid-types";
|
|
6
|
-
import { WebSocketProtocol } from "./websocket-connection";
|
|
7
|
-
export interface OpenDialogAction {
|
|
8
|
-
type: "OPEN_DIALOG_ACTION";
|
|
9
|
-
tableSchema?: TableSchema;
|
|
10
|
-
table?: VuuTable;
|
|
11
|
-
}
|
|
12
|
-
export interface NoAction {
|
|
13
|
-
type: "NO_ACTION";
|
|
14
|
-
}
|
|
15
|
-
export declare type MenuRpcAction = OpenDialogAction | NoAction;
|
|
16
|
-
export type ConnectionStatus = "connecting" | "connection-open-awaiting-session" | "connected" | "disconnected" | "reconnected";
|
|
17
|
-
export interface ConnectionStatusMessage {
|
|
18
|
-
type: "connection-status";
|
|
19
|
-
reason?: string;
|
|
20
|
-
retry?: boolean;
|
|
21
|
-
status: ConnectionStatus;
|
|
22
|
-
}
|
|
23
|
-
export declare const isConnectionStatusMessage: (msg: object | ConnectionStatusMessage) => msg is ConnectionStatusMessage;
|
|
24
|
-
export interface ConnectionQualityMetrics {
|
|
25
|
-
type: "connection-metrics";
|
|
26
|
-
messagesLength: number;
|
|
27
|
-
}
|
|
28
|
-
export declare const isConnectionQualityMetrics: (msg: object) => msg is ConnectionQualityMetrics;
|
|
29
|
-
export interface ServerProxySubscribeMessage {
|
|
30
|
-
aggregations: VuuAggregation[];
|
|
31
|
-
bufferSize?: number;
|
|
32
|
-
columns: VuuColumns;
|
|
33
|
-
filter: DataSourceFilter;
|
|
34
|
-
groupBy: VuuGroupBy;
|
|
35
|
-
range: VuuRange;
|
|
36
|
-
sort: VuuSort;
|
|
37
|
-
table: VuuTable;
|
|
38
|
-
title?: string;
|
|
39
|
-
viewport: string;
|
|
40
|
-
visualLink?: LinkDescriptorWithLabel;
|
|
41
|
-
}
|
|
42
|
-
export type VuuUIMessageInConnected = {
|
|
43
|
-
type: "connected";
|
|
44
|
-
};
|
|
45
|
-
export type VuuUIMessageInWorkerReady = {
|
|
46
|
-
type: "ready";
|
|
47
|
-
};
|
|
48
|
-
export interface ViewportMessageIn {
|
|
49
|
-
clientViewportId: string;
|
|
50
|
-
}
|
|
51
|
-
export interface VuuUIMessageInRPC {
|
|
52
|
-
method: string;
|
|
53
|
-
result: unknown;
|
|
54
|
-
requestId: string;
|
|
55
|
-
type: "RPC_RESP";
|
|
56
|
-
}
|
|
57
|
-
export interface VuuUIMessageInRPCEditReject {
|
|
58
|
-
error: string;
|
|
59
|
-
requestId?: string;
|
|
60
|
-
type: "VP_EDIT_RPC_REJECT";
|
|
61
|
-
}
|
|
62
|
-
export interface VuuUIMessageInRPCEditResponse {
|
|
63
|
-
action: unknown;
|
|
64
|
-
requestId: string;
|
|
65
|
-
rpcName: string;
|
|
66
|
-
type: "VP_EDIT_RPC_RESPONSE";
|
|
67
|
-
}
|
|
68
|
-
export declare const messageHasResult: (msg: object) => msg is VuuUIMessageInRPC;
|
|
69
|
-
export declare const isTableSchema: (message: VuuUIMessageIn) => message is VuuUIMessageInTableMeta;
|
|
70
|
-
export interface VuuUIMessageInTableList {
|
|
71
|
-
requestId: string;
|
|
72
|
-
type: "TABLE_LIST_RESP";
|
|
73
|
-
tables: VuuTable[];
|
|
74
|
-
}
|
|
75
|
-
export interface VuuUIMessageInTableMeta {
|
|
76
|
-
requestId: string;
|
|
77
|
-
tableSchema: TableSchema;
|
|
78
|
-
type: "TABLE_META_RESP";
|
|
79
|
-
}
|
|
80
|
-
export interface MenuRpcResponse {
|
|
81
|
-
action: MenuRpcAction;
|
|
82
|
-
error?: string;
|
|
83
|
-
requestId: string;
|
|
84
|
-
rpcName?: string;
|
|
85
|
-
tableAlreadyOpen?: boolean;
|
|
86
|
-
type: "VIEW_PORT_MENU_RESP";
|
|
87
|
-
}
|
|
88
|
-
export type VuuUIMessageIn = VuuUIMessageInConnected | VuuUIMessageInWorkerReady | VuuUIMessageInRPC | MenuRpcResponse | VuuUIMessageInTableList | VuuUIMessageInTableMeta | VuuUIMessageInRPCEditReject | VuuUIMessageInRPCEditResponse;
|
|
89
|
-
export declare const isErrorResponse: (response?: MenuRpcResponse | VuuUIMessageInRPCEditReject | VuuUIMessageInRPCEditResponse) => response is VuuUIMessageInRPCEditReject;
|
|
90
|
-
export declare const hasAction: (response?: MenuRpcResponse | VuuUIMessageInRPCEditReject | VuuUIMessageInRPCEditResponse) => response is MenuRpcResponse | VuuUIMessageInRPCEditResponse;
|
|
91
|
-
export interface VuuUIMessageOutConnect {
|
|
92
|
-
protocol: WebSocketProtocol;
|
|
93
|
-
type: "connect";
|
|
94
|
-
token: string;
|
|
95
|
-
url: string;
|
|
96
|
-
username?: string;
|
|
97
|
-
}
|
|
98
|
-
export interface VuuUIMessageOutSubscribe extends ServerProxySubscribeMessage {
|
|
99
|
-
type: "subscribe";
|
|
100
|
-
}
|
|
101
|
-
export interface VuuUIMessageOutUnsubscribe {
|
|
102
|
-
type: "unsubscribe";
|
|
103
|
-
viewport: string;
|
|
104
|
-
}
|
|
105
|
-
export interface VuuUIMessageOutSuspend {
|
|
106
|
-
type: "suspend";
|
|
107
|
-
viewport: string;
|
|
108
|
-
}
|
|
109
|
-
export interface VuuUIMessageOutResume {
|
|
110
|
-
type: "resume";
|
|
111
|
-
viewport: string;
|
|
112
|
-
}
|
|
113
|
-
export interface ViewportMessageOut {
|
|
114
|
-
viewport: string;
|
|
115
|
-
}
|
|
116
|
-
export interface RequestMessage {
|
|
117
|
-
requestId: string;
|
|
118
|
-
}
|
|
119
|
-
export interface VuuUIMessageOutColumns extends ViewportMessageOut {
|
|
120
|
-
type: "setColumns";
|
|
121
|
-
columns: string[];
|
|
122
|
-
}
|
|
123
|
-
export interface VuuUIMessageOutViewRange extends ViewportMessageOut {
|
|
124
|
-
type: "setViewRange";
|
|
125
|
-
range: {
|
|
126
|
-
from: number;
|
|
127
|
-
to: number;
|
|
128
|
-
};
|
|
129
|
-
}
|
|
130
|
-
export interface VuuUIMessageOutAggregate extends ViewportMessageOut {
|
|
131
|
-
aggregations: VuuAggregation[];
|
|
132
|
-
type: "aggregate";
|
|
133
|
-
}
|
|
134
|
-
export interface VuuUIMessageOutCloseTreeNode extends ViewportMessageOut {
|
|
135
|
-
key: string;
|
|
136
|
-
type: "closeTreeNode";
|
|
137
|
-
}
|
|
138
|
-
export interface VuuUIMessageOutCreateLink extends ViewportMessageOut {
|
|
139
|
-
childColumnName: string;
|
|
140
|
-
parentColumnName: string;
|
|
141
|
-
parentClientVpId: string;
|
|
142
|
-
type: "createLink";
|
|
143
|
-
}
|
|
144
|
-
export interface VuuUIMessageOutRemoveLink extends ViewportMessageOut {
|
|
145
|
-
type: "removeLink";
|
|
146
|
-
}
|
|
147
|
-
export interface VuuUIMessageOutSetTitle extends ViewportMessageOut {
|
|
148
|
-
title: string;
|
|
149
|
-
type: "setTitle";
|
|
150
|
-
}
|
|
151
|
-
export interface VuuUIMessageOutDisable extends ViewportMessageOut {
|
|
152
|
-
type: "disable";
|
|
153
|
-
}
|
|
154
|
-
export interface VuuUIMessageOutEnable extends ViewportMessageOut {
|
|
155
|
-
type: "enable";
|
|
156
|
-
}
|
|
157
|
-
export interface VuuUIMessageOutOpenTreeNode extends ViewportMessageOut {
|
|
158
|
-
key: string;
|
|
159
|
-
type: "openTreeNode";
|
|
160
|
-
}
|
|
161
|
-
export interface VuuUIMessageOutResume extends ViewportMessageOut {
|
|
162
|
-
type: "resume";
|
|
163
|
-
}
|
|
164
|
-
export interface VuuUIMessageOutSelect extends ViewportMessageOut {
|
|
165
|
-
selected: Selection;
|
|
166
|
-
type: "select";
|
|
167
|
-
}
|
|
168
|
-
export interface VuuUIMessageOutSelectAll extends ViewportMessageOut {
|
|
169
|
-
type: "selectAll";
|
|
170
|
-
}
|
|
171
|
-
export interface VuuUIMessageOutSelectNone extends ViewportMessageOut {
|
|
172
|
-
type: "selectNone";
|
|
173
|
-
}
|
|
174
|
-
export interface VuuUIMessageOutSort extends ViewportMessageOut {
|
|
175
|
-
sort: VuuSort;
|
|
176
|
-
type: "sort";
|
|
177
|
-
}
|
|
178
|
-
export interface VuuUIMessageOutSuspend extends ViewportMessageOut {
|
|
179
|
-
type: "suspend";
|
|
180
|
-
}
|
|
181
|
-
export interface VuuUIMessageOutFilter extends ViewportMessageOut {
|
|
182
|
-
filter: DataSourceFilter;
|
|
183
|
-
type: "filter";
|
|
184
|
-
}
|
|
185
|
-
export interface VuuUIMessageOutGroupby extends ViewportMessageOut {
|
|
186
|
-
groupBy: VuuGroupBy;
|
|
187
|
-
type: "groupBy";
|
|
188
|
-
}
|
|
189
|
-
export interface VuuUIMessageOutConfig extends ViewportMessageOut {
|
|
190
|
-
config: WithFullConfig;
|
|
191
|
-
type: "config";
|
|
192
|
-
}
|
|
193
|
-
export type VuuUIMessageOutViewport = VuuUIMessageOutAggregate | VuuUIMessageOutCloseTreeNode | VuuUIMessageOutColumns | VuuUIMessageOutConfig | VuuUIMessageOutCreateLink | VuuUIMessageOutFilter | VuuUIMessageOutDisable | VuuUIMessageOutEnable | VuuUIMessageOutGroupby | VuuUIMessageOutOpenTreeNode | VuuUIMessageOutRemoveLink | VuuUIMessageOutResume | VuuUIMessageOutSelect | VuuUIMessageOutSelectAll | VuuUIMessageOutSelectNone | VuuUIMessageOutSetTitle | VuuUIMessageOutSuspend | VuuUIMessageOutSort | VuuUIMessageOutViewRange;
|
|
194
|
-
export declare const isViewporttMessage: (msg: object) => msg is VuuUIMessageOutViewport;
|
|
195
|
-
export interface TypeAheadRpcRequest {
|
|
196
|
-
method: TypeAheadMethod;
|
|
197
|
-
params: [VuuTable, ...string[]];
|
|
198
|
-
type: "RPC_CALL";
|
|
199
|
-
}
|
|
200
|
-
export type VuuUIMessageOut = VuuUIMessageOutConnect | VuuUIMessageOutSubscribe | VuuUIMessageOutUnsubscribe | VuuUIMessageOutViewport | WithRequestId<ClientToServerTableList> | WithRequestId<ClientToServerTableMeta>;
|
|
201
|
-
export declare const isSessionTableActionMessage: (messageBody: ServerToClientBody) => messageBody is ServerToClientMenuSessionTableAction;
|
|
202
|
-
export declare const isSessionTable: (table?: unknown) => boolean;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { ServerToClientMessage, ClientToServerMessage } from "@vuu-ui/vuu-protocol-types";
|
|
2
|
-
import { Connection } from "./connectionTypes";
|
|
3
|
-
import { ConnectionQualityMetrics, ConnectionStatusMessage } from "./vuuUIMessageTypes";
|
|
4
|
-
export type ConnectionMessage = ServerToClientMessage | ConnectionStatusMessage | ConnectionQualityMetrics;
|
|
5
|
-
export type ConnectionCallback = (msg: ConnectionMessage) => void;
|
|
6
|
-
export type WebSocketProtocol = string | string[] | undefined;
|
|
7
|
-
declare const setWebsocket: unique symbol;
|
|
8
|
-
declare const connectionCallback: unique symbol;
|
|
9
|
-
export declare function connect(connectionString: string, protocol: WebSocketProtocol, callback: ConnectionCallback): Promise<Connection>;
|
|
10
|
-
export declare class WebsocketConnection implements Connection<ClientToServerMessage> {
|
|
11
|
-
[connectionCallback]: ConnectionCallback;
|
|
12
|
-
close: () => void;
|
|
13
|
-
requiresLogin: boolean;
|
|
14
|
-
send: (msg: ClientToServerMessage) => void;
|
|
15
|
-
status: "closed" | "ready" | "connection-open-awaiting-session" | "connected" | "reconnected";
|
|
16
|
-
protocol: WebSocketProtocol;
|
|
17
|
-
url: string;
|
|
18
|
-
messagesCount: number;
|
|
19
|
-
private connectionMetricsInterval;
|
|
20
|
-
constructor(ws: WebSocket, url: string, protocol: WebSocketProtocol, callback: ConnectionCallback);
|
|
21
|
-
reconnect(): void;
|
|
22
|
-
[setWebsocket](ws: WebSocket): void;
|
|
23
|
-
handleWebsocketMessage: (evt: MessageEvent) => void;
|
|
24
|
-
}
|
|
25
|
-
export {};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { ColumnDescriptor } from "@vuu-ui/vuu-datagrid-types";
|
|
2
|
-
import { VuuTable } from "@vuu-ui/vuu-protocol-types";
|
|
3
|
-
import { Dispatch, HTMLAttributes } from "react";
|
|
4
|
-
import { ColumnAction } from "../settings-panel/useGridSettings";
|
|
5
|
-
import "./CalculatedColumnPanel.css";
|
|
6
|
-
export interface CalculatedColumnPanelProps extends HTMLAttributes<HTMLDivElement> {
|
|
7
|
-
columns: ColumnDescriptor[];
|
|
8
|
-
dispatchColumnAction: Dispatch<ColumnAction>;
|
|
9
|
-
table: VuuTable;
|
|
10
|
-
}
|
|
11
|
-
export declare const CalculatedColumnPanel: ({ columns, dispatchColumnAction, table, }: CalculatedColumnPanelProps) => JSX.Element;
|
package/types/vuu-table-extras/src/datagrid-configuration-ui/calculated-column-panel/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./CalculatedColumnPanel";
|
package/types/vuu-table-extras/src/datagrid-configuration-ui/column-picker/ColumnPicker.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { ColumnDescriptor } from "@vuu-ui/vuu-datagrid-types";
|
|
2
|
-
import { Dispatch, HTMLAttributes } from "react";
|
|
3
|
-
import { ColumnAction } from "../settings-panel/useGridSettings";
|
|
4
|
-
import "./ColumnPicker.css";
|
|
5
|
-
export interface ColumnPickerProps extends HTMLAttributes<HTMLDivElement> {
|
|
6
|
-
availableColumns: ColumnDescriptor[];
|
|
7
|
-
dispatchColumnAction: Dispatch<ColumnAction>;
|
|
8
|
-
onAddCalculatedColumnClick: () => void;
|
|
9
|
-
onSelectionChange?: (selected: ColumnDescriptor | null) => void;
|
|
10
|
-
chosenColumns: ColumnDescriptor[];
|
|
11
|
-
selectedColumn: ColumnDescriptor | null;
|
|
12
|
-
}
|
|
13
|
-
export declare const ColumnPicker: ({ availableColumns, id: idProp, dispatchColumnAction: dispatch, onAddCalculatedColumnClick, onSelectionChange, chosenColumns, selectedColumn, }: ColumnPickerProps) => JSX.Element;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./ColumnPicker";
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { ColumnDescriptor } from "@vuu-ui/vuu-datagrid-types";
|
|
2
|
-
import { Dispatch, HTMLAttributes } from "react";
|
|
3
|
-
import { ColumnAction } from "../settings-panel/useGridSettings";
|
|
4
|
-
import "./ColumnSettingsPanel.css";
|
|
5
|
-
export interface ColumnSettingsPanelProps extends HTMLAttributes<HTMLDivElement> {
|
|
6
|
-
column: ColumnDescriptor;
|
|
7
|
-
dispatchColumnAction: Dispatch<ColumnAction>;
|
|
8
|
-
}
|
|
9
|
-
export declare const ColumnSettingsPanel: ({ column, dispatchColumnAction, style: styleProp, ...props }: ColumnSettingsPanelProps) => JSX.Element;
|
package/types/vuu-table-extras/src/datagrid-configuration-ui/column-type-panel/ColumnTypePanel.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { ColumnDescriptor } from "@vuu-ui/vuu-datagrid-types";
|
|
2
|
-
import { PanelProps } from "@salt-ds/core";
|
|
3
|
-
import { Dispatch } from "react";
|
|
4
|
-
import { ColumnAction } from "../settings-panel/useGridSettings";
|
|
5
|
-
import "./ColumnTypePanel.css";
|
|
6
|
-
export interface ColumnTypePanelProps extends PanelProps {
|
|
7
|
-
column: ColumnDescriptor;
|
|
8
|
-
dispatchColumnAction: Dispatch<ColumnAction>;
|
|
9
|
-
}
|
|
10
|
-
export declare const ColumnTypePanel: ({ className, column, dispatchColumnAction, ...props }: ColumnTypePanelProps) => JSX.Element;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./ColumnTypePanel";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./settings-panel";
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { ColumnDescriptor, GridConfig } from "@vuu-ui/vuu-datagrid-types";
|
|
2
|
-
import { HTMLAttributes } from "react";
|
|
3
|
-
import "./DatagridSettingsPanel.css";
|
|
4
|
-
export interface DatagridSettingsPanelProps extends HTMLAttributes<HTMLDivElement> {
|
|
5
|
-
availableColumns: ColumnDescriptor[];
|
|
6
|
-
gridConfig: Omit<GridConfig, "headings">;
|
|
7
|
-
onCancel?: () => void;
|
|
8
|
-
onConfigChange?: (config: Omit<GridConfig, "headings">, closePanel?: boolean) => void;
|
|
9
|
-
}
|
|
10
|
-
export declare const DatagridSettingsPanel: ({ availableColumns, className, gridConfig, onCancel, onConfigChange, ...props }: DatagridSettingsPanelProps) => JSX.Element;
|
package/types/vuu-table-extras/src/datagrid-configuration-ui/settings-panel/GridSettingsPanel.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { GridConfig } from "@vuu-ui/vuu-datagrid-types";
|
|
2
|
-
import { Dispatch, HTMLAttributes } from "react";
|
|
3
|
-
import "./GridSettingsPanel.css";
|
|
4
|
-
import { ColumnAction } from "./useGridSettings";
|
|
5
|
-
export interface GridSettingsPanelProps extends HTMLAttributes<HTMLDivElement> {
|
|
6
|
-
config: Omit<GridConfig, "headings">;
|
|
7
|
-
dispatchColumnAction: Dispatch<ColumnAction>;
|
|
8
|
-
}
|
|
9
|
-
export declare const GridSettingsPanel: ({ config, dispatchColumnAction, style: styleProp, ...props }: GridSettingsPanelProps) => JSX.Element;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./DatagridSettingsPanel";
|