@vuu-ui/vuu-data-remote 0.11.2 → 0.11.3

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.
@@ -69,6 +69,11 @@ class VuuDataSource extends vuuUtils.BaseDataSource {
69
69
  `handleMessageFromServer<viewport-update> range (${message.range?.from}:${message.range?.to}) rows ${message.rows?.at(0)?.[0]} - ${message.rows?.at(-1)?.[0]}`
70
70
  );
71
71
  }
72
+ if (message.type === "viewport-update") {
73
+ console.log(
74
+ `handleMessageFromServer<viewport-update> range (${message.range?.from}:${message.range?.to}) rows ${message.rows?.at(0)?.[0]} - ${message.rows?.at(-1)?.[0]}`
75
+ );
76
+ }
72
77
  this._clientCallback?.(message);
73
78
  }
74
79
  if (this.optimize === "debounce") {
@@ -132,6 +137,9 @@ class VuuDataSource extends vuuUtils.BaseDataSource {
132
137
  this.server = await ConnectionManager.serverAPI;
133
138
  const { bufferSize } = this;
134
139
  const dataSourceConfig = vuuUtils.combineFilters(this.config);
140
+ console.log(
141
+ `[VuuDataSource] subscribe, send subscribe message range (${this._range.from}:${this._range.to})`
142
+ );
135
143
  this.server?.subscribe(
136
144
  {
137
145
  ...dataSourceConfig,
@@ -157,7 +165,7 @@ class VuuDataSource extends vuuUtils.BaseDataSource {
157
165
  this.removeAllListeners();
158
166
  __privateSet(this, _status, "unsubscribed");
159
167
  this.viewport = "";
160
- this.range = { from: 0, to: 0 };
168
+ this.range = vuuUtils.Range(0, 0);
161
169
  }
162
170
  }
163
171
  suspend() {
@@ -1 +1 @@
1
- {"version":3,"file":"VuuDataSource.js","sources":["../src/VuuDataSource.ts"],"sourcesContent":["import {\n DataSource,\n DataSourceCallbackMessage,\n DataSourceConstructorProps,\n DataSourceStatus,\n DataSourceVisualLinkCreatedMessage,\n OptimizeStrategy,\n Selection,\n ServerAPI,\n SubscribeCallback,\n SubscribeProps,\n TableSchema,\n WithBaseFilter,\n WithFullConfig,\n} from \"@vuu-ui/vuu-data-types\";\nimport {\n LinkDescriptorWithLabel,\n VuuCreateVisualLink,\n VuuDataRowDto,\n VuuGroupBy,\n VuuMenu,\n VuuRange,\n VuuRowDataItemType,\n VuuRpcMenuRequest,\n VuuRpcRequest,\n VuuRpcResponse,\n VuuRpcViewportRequest,\n VuuTable,\n} from \"@vuu-ui/vuu-protocol-types\";\n\nimport {\n BaseDataSource,\n combineFilters,\n debounce,\n isViewportMenusAction,\n isVisualLinksAction,\n itemsOrOrderChanged,\n logger,\n selectionCount,\n throttle,\n uuid,\n vuuAddRowRequest,\n vuuDeleteRowRequest,\n vuuEditCellRequest,\n} from \"@vuu-ui/vuu-utils\";\nimport ConnectionManager from \"./ConnectionManager\";\nimport { isDataSourceConfigMessage } from \"./data-source\";\n\nimport { MenuRpcResponse } from \"@vuu-ui/vuu-data-types\";\n\ntype RangeRequest = (range: VuuRange) => void;\n\nconst { info, infoEnabled } = logger(\"VuuDataSource\");\n\n/*---------------------------------------------------------------------\n A VuuDataSource manages a single subscription via the ServerProxy\n ---------------------------------------------------------------------*/\nexport class VuuDataSource extends BaseDataSource implements DataSource {\n private bufferSize: number;\n private server: ServerAPI | null = null;\n rangeRequest: RangeRequest;\n\n #pendingVisualLink?: LinkDescriptorWithLabel;\n #links: LinkDescriptorWithLabel[] | undefined;\n #menu: VuuMenu | undefined;\n #optimize: OptimizeStrategy = \"throttle\";\n #selectedRowsCount = 0;\n #status: DataSourceStatus = \"initialising\";\n #tableSchema: TableSchema | undefined;\n\n public table: VuuTable;\n\n constructor(props: DataSourceConstructorProps) {\n super(props);\n\n const { bufferSize = 100, table, visualLink } = props;\n\n if (!table)\n throw Error(\"RemoteDataSource constructor called without table\");\n\n this.bufferSize = bufferSize;\n this.table = table;\n\n this.#pendingVisualLink = visualLink;\n\n // this.rangeRequest = this.throttleRangeRequest;\n this.rangeRequest = this.rawRangeRequest;\n }\n\n async subscribe(subscribeProps: SubscribeProps, callback: SubscribeCallback) {\n super.subscribe(subscribeProps, callback);\n const {\n selectedIndexValues,\n viewport = this.viewport || (this.viewport = uuid()),\n } = subscribeProps;\n\n if (this.#status === \"disabled\" || this.#status === \"disabling\") {\n this.enable(callback);\n return;\n }\n\n if (\n this.#status !== \"initialising\" &&\n this.#status !== \"unsubscribed\"\n // We can subscribe to a disabled dataSource. No request will be\n // sent to server to create a new VP, just to enable the existing one.\n // The current subscribing client becomes the subscription owner\n ) {\n return;\n }\n\n this.#status = \"subscribing\";\n this.#selectedRowsCount = selectionCount(selectedIndexValues);\n\n this.server = await ConnectionManager.serverAPI;\n\n const { bufferSize } = this;\n\n // TODO and await response here\n\n const dataSourceConfig = combineFilters(this.config);\n\n this.server?.subscribe(\n {\n ...dataSourceConfig,\n bufferSize,\n range: this._range,\n selectedIndexValues: selectedIndexValues,\n table: this.table,\n title: this._title,\n viewport,\n },\n this.handleMessageFromServer,\n );\n }\n\n handleMessageFromServer = (message: DataSourceCallbackMessage) => {\n if (message.type === \"subscribed\") {\n this.#status = \"subscribed\";\n this.tableSchema = message.tableSchema;\n this._clientCallback?.(message);\n if (this.#pendingVisualLink) {\n this.visualLink = this.#pendingVisualLink;\n this.#pendingVisualLink = undefined;\n }\n this.emit(\"subscribed\", message);\n } else if (message.type === \"disabled\") {\n this.#status = \"disabled\";\n } else if (message.type === \"enabled\") {\n this.#status = \"enabled\";\n } else if (isDataSourceConfigMessage(message)) {\n // This is an ACK for a CHANGE_VP message. Nothing to do here. We need\n // to wait for data to be returned before we can consider the change\n // to be in effect.\n return;\n } else if (message.type === \"debounce-begin\") {\n this.optimize = \"debounce\";\n } else {\n if (\n message.type === \"viewport-update\" &&\n message.size !== undefined &&\n message.size !== this.size\n ) {\n this.size = message.size;\n this.emit(\"resize\", message.size);\n } else if (message.type === \"viewport-clear\") {\n this.size = 0;\n this.emit(\"resize\", 0);\n }\n // This is used to remove any progress indication from the UI. We wait for actual data rather than\n // just the CHANGE_VP_SUCCESS ack as there is often a delay between receiving the ack and the data.\n // It may be a SIZE only message, eg in the case of removing a groupBy column from a multi-column\n // groupby, where no tree nodes are expanded.\n if (this.isAwaitingConfirmationOfConfigChange) {\n this.confirmConfigChange();\n }\n\n if (isViewportMenusAction(message)) {\n this.#menu = message.menu;\n } else if (isVisualLinksAction(message)) {\n this.#links = message.links as LinkDescriptorWithLabel[];\n } else {\n if (infoEnabled && message.type === \"viewport-update\") {\n info(\n `handleMessageFromServer<viewport-update> range (${message.range?.from}:${message.range?.to}) rows ${message.rows?.at(0)?.[0]} - ${message.rows?.at(-1)?.[0]}`,\n );\n }\n this._clientCallback?.(message);\n }\n\n if (this.optimize === \"debounce\") {\n this.revertDebounce();\n }\n }\n };\n\n unsubscribe() {\n if (this.#status !== \"unsubscribed\") {\n info?.(`unsubscribe #${this.viewport}`);\n if (this.viewport) {\n this.server?.unsubscribe(this.viewport);\n this.emit(\"unsubscribed\", this.viewport);\n }\n this.server?.destroy(this.viewport);\n this.server = null;\n this.removeAllListeners();\n this.#status = \"unsubscribed\";\n this.viewport = \"\";\n this.range = { from: 0, to: 0 };\n }\n }\n\n suspend() {\n if (this.#status !== \"unsubscribed\") {\n info?.(`suspend #${this.viewport}, current status ${this.#status}`);\n if (this.viewport) {\n this.#status = \"suspended\";\n this.server?.send({\n type: \"suspend\",\n viewport: this.viewport,\n });\n this.emit(\"suspended\", this.viewport);\n }\n }\n }\n\n resume(callback?: SubscribeCallback) {\n const isDisabled = this.#status.startsWith(\"disabl\");\n const isSuspended = this.#status === \"suspended\";\n info?.(`resume #${this.viewport}, current status ${this.#status}`);\n if (callback) {\n this._clientCallback = callback;\n }\n if (this.viewport) {\n if (isDisabled) {\n this.enable();\n } else if (isSuspended) {\n this.server?.send({\n type: \"resume\",\n viewport: this.viewport,\n });\n this.#status = \"subscribed\";\n this.emit(\"resumed\", this.viewport);\n }\n }\n }\n\n disable() {\n info?.(`disable #${this.viewport}, current status ${this.#status}`);\n if (this.viewport) {\n this.#status = \"disabling\";\n this.server?.send({\n viewport: this.viewport,\n type: \"disable\",\n });\n this.emit(\"disabled\", this.viewport);\n }\n }\n\n enable(callback?: SubscribeCallback) {\n info?.(`enable #${this.viewport}, current status ${this.#status}`);\n if (\n this.viewport &&\n (this.#status === \"disabled\" || this.#status === \"disabling\")\n ) {\n this.#status = \"enabling\";\n if (callback) {\n this._clientCallback = callback;\n }\n this.server?.send({\n viewport: this.viewport,\n type: \"enable\",\n });\n this.emit(\"enabled\", this.viewport);\n }\n }\n\n select(selected: Selection) {\n this.#selectedRowsCount = selectionCount(selected);\n if (this.viewport) {\n this.server?.send({\n viewport: this.viewport,\n type: \"select\",\n selected,\n });\n this.emit(\"row-selection\", selected, this.#selectedRowsCount);\n }\n }\n\n openTreeNode(keyOrIndex: string | number) {\n if (this.viewport) {\n const [key, index] =\n typeof keyOrIndex === \"string\" ? [keyOrIndex] : [undefined, keyOrIndex];\n this.server?.send({\n index,\n key,\n type: \"openTreeNode\",\n viewport: this.viewport,\n });\n }\n }\n\n closeTreeNode(keyOrIndex: string | number) {\n if (this.viewport) {\n const [key, index] =\n typeof keyOrIndex === \"string\" ? [keyOrIndex] : [undefined, keyOrIndex];\n this.server?.send({\n index,\n key,\n type: \"closeTreeNode\",\n viewport: this.viewport,\n });\n }\n }\n\n get tableSchema() {\n return this.#tableSchema;\n }\n\n set tableSchema(tableSchema: TableSchema | undefined) {\n this.#tableSchema = tableSchema;\n // TOSO emit an event\n }\n\n get links() {\n return this.#links;\n }\n\n get menu() {\n return this.#menu;\n }\n\n get status() {\n return this.#status;\n }\n\n get optimize() {\n return this.#optimize;\n }\n\n set optimize(optimize: OptimizeStrategy) {\n if (optimize !== this.#optimize) {\n this.#optimize = optimize;\n switch (optimize) {\n case \"none\":\n this.rangeRequest = this.rawRangeRequest;\n break;\n case \"debounce\":\n this.rangeRequest = this.debounceRangeRequest;\n break;\n case \"throttle\":\n this.rangeRequest = this.throttleRangeRequest;\n break;\n }\n this.emit(\"optimize\", optimize);\n }\n }\n\n private revertDebounce = debounce(() => {\n this.optimize = \"throttle\";\n }, 100);\n\n get selectedRowsCount() {\n return this.#selectedRowsCount;\n }\n\n private rawRangeRequest: RangeRequest = (range) => {\n if (this.viewport && this.server) {\n this.server.send({\n viewport: this.viewport,\n type: \"setViewRange\",\n range,\n });\n }\n };\n\n private debounceRangeRequest: RangeRequest = debounce((range: VuuRange) => {\n if (this.viewport && this.server) {\n this.server.send({\n viewport: this.viewport,\n type: \"setViewRange\",\n range,\n });\n }\n }, 50);\n\n private throttleRangeRequest: RangeRequest = throttle((range: VuuRange) => {\n if (this.viewport && this.server) {\n this.server.send({\n viewport: this.viewport,\n type: \"setViewRange\",\n range,\n });\n }\n }, 80);\n\n get config() {\n return super.config;\n }\n\n set config(config: WithBaseFilter<WithFullConfig>) {\n if (config !== this.config) {\n super.config = config;\n this.server?.send({\n viewport: this.viewport,\n type: \"config\",\n config: combineFilters(this._config),\n });\n }\n }\n\n set impendingConfig(config: WithBaseFilter<WithFullConfig>) {\n if (config !== this.config) {\n super.impendingConfig = config;\n this.server?.send({\n viewport: this.viewport,\n type: \"config\",\n config: combineFilters(this.config),\n });\n }\n }\n\n get groupBy() {\n return this._config.groupBy;\n }\n\n set groupBy(groupBy: VuuGroupBy) {\n if (itemsOrOrderChanged(this.groupBy, groupBy)) {\n const wasGrouped = this.groupBy.length > 0;\n\n this.impendingConfig = {\n ...this._config,\n groupBy,\n };\n\n if (!wasGrouped && groupBy.length > 0 && this.viewport) {\n this._clientCallback?.({\n clientViewportId: this.viewport,\n mode: \"batch\",\n type: \"viewport-update\",\n size: 0,\n rows: [],\n });\n }\n }\n }\n\n get title() {\n return super.title || `${this.table.module} ${this.table.table}`;\n }\n\n set title(title: string) {\n super.title = title;\n if (this.viewport && title) {\n // This message doesn't actually trigger a message to Vuu server\n // it will be used to recompute visual link labels\n this.server?.send({\n type: \"setTitle\",\n title,\n viewport: this.viewport,\n });\n }\n }\n\n get visualLink() {\n return this._config.visualLink;\n }\n\n set visualLink(visualLink: LinkDescriptorWithLabel | undefined) {\n this._config = {\n ...this._config,\n visualLink,\n };\n\n if (visualLink) {\n const {\n parentClientVpId,\n link: { fromColumn, toColumn },\n } = visualLink;\n\n if (this.viewport) {\n this.server\n ?.rpcCall<DataSourceVisualLinkCreatedMessage>({\n childColumnName: fromColumn,\n childVpId: this.viewport,\n parentColumnName: toColumn,\n parentVpId: parentClientVpId,\n type: \"CREATE_VISUAL_LINK\",\n } as VuuCreateVisualLink)\n .then((response) => {\n this.emit(\"visual-link-created\", response);\n });\n }\n } else {\n if (this.viewport) {\n this.server\n ?.rpcCall({\n type: \"REMOVE_VISUAL_LINK\",\n childVpId: this.viewport,\n })\n .then(() => {\n this.emit(\"visual-link-removed\");\n });\n }\n }\n\n this.emit(\"config\", this._config, this.range);\n }\n\n async remoteProcedureCall<T extends VuuRpcResponse = VuuRpcResponse>() {\n return Promise.reject<T>();\n }\n\n /** @deprecated */\n async rpcCall<T extends VuuRpcResponse = VuuRpcResponse>(\n rpcRequest: Omit<VuuRpcRequest, \"vpId\">,\n ) {\n if (this.viewport && this.server) {\n return this.server?.rpcCall<T>({\n ...rpcRequest,\n vpId: this.viewport,\n } as VuuRpcViewportRequest);\n } else {\n throw Error(`rpcCall server or viewport are undefined`);\n }\n }\n\n /** @deprecated */\n async menuRpcCall(rpcRequest: Omit<VuuRpcRequest, \"vpId\">) {\n if (this.viewport) {\n return this.server?.rpcCall<MenuRpcResponse>({\n ...rpcRequest,\n vpId: this.viewport,\n } as VuuRpcMenuRequest);\n }\n }\n\n applyEdit(rowKey: string, columnName: string, value: VuuRowDataItemType) {\n return this.menuRpcCall(vuuEditCellRequest(rowKey, columnName, value)).then(\n (response) => {\n if (response?.error) {\n return response.error;\n } else {\n return true;\n }\n },\n );\n }\n\n insertRow(rowKey: string, data: VuuDataRowDto) {\n return this.menuRpcCall(vuuAddRowRequest(rowKey, data)).then((response) => {\n if (response?.error) {\n return response.error;\n } else {\n return true;\n }\n });\n }\n deleteRow(rowKey: string) {\n return this.menuRpcCall(vuuDeleteRowRequest(rowKey)).then((response) => {\n if (response?.error) {\n return response.error;\n } else {\n return true;\n }\n });\n }\n}\n"],"names":["logger","BaseDataSource","isDataSourceConfigMessage","isViewportMenusAction","isVisualLinksAction","debounce","throttle","uuid","selectionCount","combineFilters","itemsOrOrderChanged","vuuEditCellRequest","vuuAddRowRequest","vuuDeleteRowRequest"],"mappings":";;;;;;;;;;;;;;;;AAAA,IAAA,kBAAA,EAAA,MAAA,EAAA,KAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,YAAA;AAoDA,MAAM,EAAE,IAAA,EAAM,WAAY,EAAA,GAAIA,gBAAO,eAAe,CAAA;AAK7C,MAAM,sBAAsBC,uBAAqC,CAAA;AAAA,EAetE,YAAY,KAAmC,EAAA;AAC7C,IAAA,KAAA,CAAM,KAAK,CAAA;AAfb,IAAQ,aAAA,CAAA,IAAA,EAAA,YAAA,CAAA;AACR,IAAA,aAAA,CAAA,IAAA,EAAQ,QAA2B,EAAA,IAAA,CAAA;AACnC,IAAA,aAAA,CAAA,IAAA,EAAA,cAAA,CAAA;AAEA,IAAA,YAAA,CAAA,IAAA,EAAA,kBAAA,CAAA;AACA,IAAA,YAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AACA,IAAA,YAAA,CAAA,IAAA,EAAA,KAAA,CAAA;AACA,IAA8B,YAAA,CAAA,IAAA,EAAA,SAAA,EAAA,UAAA,CAAA;AAC9B,IAAqB,YAAA,CAAA,IAAA,EAAA,kBAAA,EAAA,CAAA,CAAA;AACrB,IAA4B,YAAA,CAAA,IAAA,EAAA,OAAA,EAAA,cAAA,CAAA;AAC5B,IAAA,YAAA,CAAA,IAAA,EAAA,YAAA,CAAA;AAEA,IAAO,aAAA,CAAA,IAAA,EAAA,OAAA,CAAA;AAkEP,IAAA,aAAA,CAAA,IAAA,EAAA,yBAAA,EAA0B,CAAC,OAAuC,KAAA;AAChE,MAAI,IAAA,OAAA,CAAQ,SAAS,YAAc,EAAA;AACjC,QAAA,YAAA,CAAA,IAAA,EAAK,OAAU,EAAA,YAAA,CAAA;AACf,QAAA,IAAA,CAAK,cAAc,OAAQ,CAAA,WAAA;AAC3B,QAAA,IAAA,CAAK,kBAAkB,OAAO,CAAA;AAC9B,QAAA,IAAI,mBAAK,kBAAoB,CAAA,EAAA;AAC3B,UAAA,IAAA,CAAK,aAAa,YAAK,CAAA,IAAA,EAAA,kBAAA,CAAA;AACvB,UAAA,YAAA,CAAA,IAAA,EAAK,kBAAqB,EAAA,KAAA,CAAA,CAAA;AAAA;AAE5B,QAAK,IAAA,CAAA,IAAA,CAAK,cAAc,OAAO,CAAA;AAAA,OACjC,MAAA,IAAW,OAAQ,CAAA,IAAA,KAAS,UAAY,EAAA;AACtC,QAAA,YAAA,CAAA,IAAA,EAAK,OAAU,EAAA,UAAA,CAAA;AAAA,OACjB,MAAA,IAAW,OAAQ,CAAA,IAAA,KAAS,SAAW,EAAA;AACrC,QAAA,YAAA,CAAA,IAAA,EAAK,OAAU,EAAA,SAAA,CAAA;AAAA,OACjB,MAAA,IAAWC,oCAA0B,CAAA,OAAO,CAAG,EAAA;AAI7C,QAAA;AAAA,OACF,MAAA,IAAW,OAAQ,CAAA,IAAA,KAAS,gBAAkB,EAAA;AAC5C,QAAA,IAAA,CAAK,QAAW,GAAA,UAAA;AAAA,OACX,MAAA;AACL,QACE,IAAA,OAAA,CAAQ,SAAS,iBACjB,IAAA,OAAA,CAAQ,SAAS,KACjB,CAAA,IAAA,OAAA,CAAQ,IAAS,KAAA,IAAA,CAAK,IACtB,EAAA;AACA,UAAA,IAAA,CAAK,OAAO,OAAQ,CAAA,IAAA;AACpB,UAAK,IAAA,CAAA,IAAA,CAAK,QAAU,EAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,SAClC,MAAA,IAAW,OAAQ,CAAA,IAAA,KAAS,gBAAkB,EAAA;AAC5C,UAAA,IAAA,CAAK,IAAO,GAAA,CAAA;AACZ,UAAK,IAAA,CAAA,IAAA,CAAK,UAAU,CAAC,CAAA;AAAA;AAMvB,QAAA,IAAI,KAAK,oCAAsC,EAAA;AAC7C,UAAA,IAAA,CAAK,mBAAoB,EAAA;AAAA;AAG3B,QAAI,IAAAC,8BAAA,CAAsB,OAAO,CAAG,EAAA;AAClC,UAAA,YAAA,CAAA,IAAA,EAAK,OAAQ,OAAQ,CAAA,IAAA,CAAA;AAAA,SACvB,MAAA,IAAWC,4BAAoB,CAAA,OAAO,CAAG,EAAA;AACvC,UAAA,YAAA,CAAA,IAAA,EAAK,QAAS,OAAQ,CAAA,KAAA,CAAA;AAAA,SACjB,MAAA;AACL,UAAI,IAAA,WAAA,IAAe,OAAQ,CAAA,IAAA,KAAS,iBAAmB,EAAA;AACrD,YAAA,IAAA;AAAA,cACE,CAAA,gDAAA,EAAmD,QAAQ,KAAO,EAAA,IAAI,IAAI,OAAQ,CAAA,KAAA,EAAO,EAAE,CAAA,OAAA,EAAU,OAAQ,CAAA,IAAA,EAAM,GAAG,CAAC,CAAA,GAAI,CAAC,CAAC,CAAM,GAAA,EAAA,OAAA,CAAQ,MAAM,EAAG,CAAA,CAAA,CAAE,CAAI,GAAA,CAAC,CAAC,CAAA;AAAA,aAC9J;AAAA;AAEF,UAAA,IAAA,CAAK,kBAAkB,OAAO,CAAA;AAAA;AAGhC,QAAI,IAAA,IAAA,CAAK,aAAa,UAAY,EAAA;AAChC,UAAA,IAAA,CAAK,cAAe,EAAA;AAAA;AACtB;AACF,KACF,CAAA;AAoKA,IAAQ,aAAA,CAAA,IAAA,EAAA,gBAAA,EAAiBC,kBAAS,MAAM;AACtC,MAAA,IAAA,CAAK,QAAW,GAAA,UAAA;AAAA,OACf,GAAG,CAAA,CAAA;AAMN,IAAQ,aAAA,CAAA,IAAA,EAAA,iBAAA,EAAgC,CAAC,KAAU,KAAA;AACjD,MAAI,IAAA,IAAA,CAAK,QAAY,IAAA,IAAA,CAAK,MAAQ,EAAA;AAChC,QAAA,IAAA,CAAK,OAAO,IAAK,CAAA;AAAA,UACf,UAAU,IAAK,CAAA,QAAA;AAAA,UACf,IAAM,EAAA,cAAA;AAAA,UACN;AAAA,SACD,CAAA;AAAA;AACH,KACF,CAAA;AAEA,IAAQ,aAAA,CAAA,IAAA,EAAA,sBAAA,EAAqCA,iBAAS,CAAA,CAAC,KAAoB,KAAA;AACzE,MAAI,IAAA,IAAA,CAAK,QAAY,IAAA,IAAA,CAAK,MAAQ,EAAA;AAChC,QAAA,IAAA,CAAK,OAAO,IAAK,CAAA;AAAA,UACf,UAAU,IAAK,CAAA,QAAA;AAAA,UACf,IAAM,EAAA,cAAA;AAAA,UACN;AAAA,SACD,CAAA;AAAA;AACH,OACC,EAAE,CAAA,CAAA;AAEL,IAAQ,aAAA,CAAA,IAAA,EAAA,sBAAA,EAAqCC,iBAAS,CAAA,CAAC,KAAoB,KAAA;AACzE,MAAI,IAAA,IAAA,CAAK,QAAY,IAAA,IAAA,CAAK,MAAQ,EAAA;AAChC,QAAA,IAAA,CAAK,OAAO,IAAK,CAAA;AAAA,UACf,UAAU,IAAK,CAAA,QAAA;AAAA,UACf,IAAM,EAAA,cAAA;AAAA,UACN;AAAA,SACD,CAAA;AAAA;AACH,OACC,EAAE,CAAA,CAAA;AA/TH,IAAA,MAAM,EAAE,UAAA,GAAa,GAAK,EAAA,KAAA,EAAO,YAAe,GAAA,KAAA;AAEhD,IAAA,IAAI,CAAC,KAAA;AACH,MAAA,MAAM,MAAM,mDAAmD,CAAA;AAEjE,IAAA,IAAA,CAAK,UAAa,GAAA,UAAA;AAClB,IAAA,IAAA,CAAK,KAAQ,GAAA,KAAA;AAEb,IAAA,YAAA,CAAA,IAAA,EAAK,kBAAqB,EAAA,UAAA,CAAA;AAG1B,IAAA,IAAA,CAAK,eAAe,IAAK,CAAA,eAAA;AAAA;AAC3B,EAEA,MAAM,SAAU,CAAA,cAAA,EAAgC,QAA6B,EAAA;AAC3E,IAAM,KAAA,CAAA,SAAA,CAAU,gBAAgB,QAAQ,CAAA;AACxC,IAAM,MAAA;AAAA,MACJ,mBAAA;AAAA,MACA,QAAW,GAAA,IAAA,CAAK,QAAa,KAAA,IAAA,CAAK,WAAWC,aAAK,EAAA;AAAA,KAChD,GAAA,cAAA;AAEJ,IAAA,IAAI,YAAK,CAAA,IAAA,EAAA,OAAA,CAAA,KAAY,UAAc,IAAA,YAAA,CAAA,IAAA,EAAK,aAAY,WAAa,EAAA;AAC/D,MAAA,IAAA,CAAK,OAAO,QAAQ,CAAA;AACpB,MAAA;AAAA;AAGF,IAAA,IACE,YAAK,CAAA,IAAA,EAAA,OAAA,CAAA,KAAY,cACjB,IAAA,YAAA,CAAA,IAAA,EAAK,aAAY,cAIjB,EAAA;AACA,MAAA;AAAA;AAGF,IAAA,YAAA,CAAA,IAAA,EAAK,OAAU,EAAA,aAAA,CAAA;AACf,IAAK,YAAA,CAAA,IAAA,EAAA,kBAAA,EAAqBC,wBAAe,mBAAmB,CAAA,CAAA;AAE5D,IAAK,IAAA,CAAA,MAAA,GAAS,MAAM,iBAAkB,CAAA,SAAA;AAEtC,IAAM,MAAA,EAAE,YAAe,GAAA,IAAA;AAIvB,IAAM,MAAA,gBAAA,GAAmBC,uBAAe,CAAA,IAAA,CAAK,MAAM,CAAA;AAEnD,IAAA,IAAA,CAAK,MAAQ,EAAA,SAAA;AAAA,MACX;AAAA,QACE,GAAG,gBAAA;AAAA,QACH,UAAA;AAAA,QACA,OAAO,IAAK,CAAA,MAAA;AAAA,QACZ,mBAAA;AAAA,QACA,OAAO,IAAK,CAAA,KAAA;AAAA,QACZ,OAAO,IAAK,CAAA,MAAA;AAAA,QACZ;AAAA,OACF;AAAA,MACA,IAAK,CAAA;AAAA,KACP;AAAA;AACF,EA8DA,WAAc,GAAA;AACZ,IAAI,IAAA,YAAA,CAAA,IAAA,EAAK,aAAY,cAAgB,EAAA;AACnC,MAAO,IAAA,GAAA,CAAA,aAAA,EAAgB,IAAK,CAAA,QAAQ,CAAE,CAAA,CAAA;AACtC,MAAA,IAAI,KAAK,QAAU,EAAA;AACjB,QAAK,IAAA,CAAA,MAAA,EAAQ,WAAY,CAAA,IAAA,CAAK,QAAQ,CAAA;AACtC,QAAK,IAAA,CAAA,IAAA,CAAK,cAAgB,EAAA,IAAA,CAAK,QAAQ,CAAA;AAAA;AAEzC,MAAK,IAAA,CAAA,MAAA,EAAQ,OAAQ,CAAA,IAAA,CAAK,QAAQ,CAAA;AAClC,MAAA,IAAA,CAAK,MAAS,GAAA,IAAA;AACd,MAAA,IAAA,CAAK,kBAAmB,EAAA;AACxB,MAAA,YAAA,CAAA,IAAA,EAAK,OAAU,EAAA,cAAA,CAAA;AACf,MAAA,IAAA,CAAK,QAAW,GAAA,EAAA;AAChB,MAAA,IAAA,CAAK,KAAQ,GAAA,EAAE,IAAM,EAAA,CAAA,EAAG,IAAI,CAAE,EAAA;AAAA;AAChC;AACF,EAEA,OAAU,GAAA;AACR,IAAI,IAAA,YAAA,CAAA,IAAA,EAAK,aAAY,cAAgB,EAAA;AACnC,MAAA,IAAA,GAAO,YAAY,IAAK,CAAA,QAAQ,CAAoB,iBAAA,EAAA,YAAA,CAAA,IAAA,EAAK,QAAO,CAAE,CAAA,CAAA;AAClE,MAAA,IAAI,KAAK,QAAU,EAAA;AACjB,QAAA,YAAA,CAAA,IAAA,EAAK,OAAU,EAAA,WAAA,CAAA;AACf,QAAA,IAAA,CAAK,QAAQ,IAAK,CAAA;AAAA,UAChB,IAAM,EAAA,SAAA;AAAA,UACN,UAAU,IAAK,CAAA;AAAA,SAChB,CAAA;AACD,QAAK,IAAA,CAAA,IAAA,CAAK,WAAa,EAAA,IAAA,CAAK,QAAQ,CAAA;AAAA;AACtC;AACF;AACF,EAEA,OAAO,QAA8B,EAAA;AACnC,IAAA,MAAM,UAAa,GAAA,YAAA,CAAA,IAAA,EAAK,OAAQ,CAAA,CAAA,UAAA,CAAW,QAAQ,CAAA;AACnD,IAAM,MAAA,WAAA,GAAc,mBAAK,OAAY,CAAA,KAAA,WAAA;AACrC,IAAA,IAAA,GAAO,WAAW,IAAK,CAAA,QAAQ,CAAoB,iBAAA,EAAA,YAAA,CAAA,IAAA,EAAK,QAAO,CAAE,CAAA,CAAA;AACjE,IAAA,IAAI,QAAU,EAAA;AACZ,MAAA,IAAA,CAAK,eAAkB,GAAA,QAAA;AAAA;AAEzB,IAAA,IAAI,KAAK,QAAU,EAAA;AACjB,MAAA,IAAI,UAAY,EAAA;AACd,QAAA,IAAA,CAAK,MAAO,EAAA;AAAA,iBACH,WAAa,EAAA;AACtB,QAAA,IAAA,CAAK,QAAQ,IAAK,CAAA;AAAA,UAChB,IAAM,EAAA,QAAA;AAAA,UACN,UAAU,IAAK,CAAA;AAAA,SAChB,CAAA;AACD,QAAA,YAAA,CAAA,IAAA,EAAK,OAAU,EAAA,YAAA,CAAA;AACf,QAAK,IAAA,CAAA,IAAA,CAAK,SAAW,EAAA,IAAA,CAAK,QAAQ,CAAA;AAAA;AACpC;AACF;AACF,EAEA,OAAU,GAAA;AACR,IAAA,IAAA,GAAO,YAAY,IAAK,CAAA,QAAQ,CAAoB,iBAAA,EAAA,YAAA,CAAA,IAAA,EAAK,QAAO,CAAE,CAAA,CAAA;AAClE,IAAA,IAAI,KAAK,QAAU,EAAA;AACjB,MAAA,YAAA,CAAA,IAAA,EAAK,OAAU,EAAA,WAAA,CAAA;AACf,MAAA,IAAA,CAAK,QAAQ,IAAK,CAAA;AAAA,QAChB,UAAU,IAAK,CAAA,QAAA;AAAA,QACf,IAAM,EAAA;AAAA,OACP,CAAA;AACD,MAAK,IAAA,CAAA,IAAA,CAAK,UAAY,EAAA,IAAA,CAAK,QAAQ,CAAA;AAAA;AACrC;AACF,EAEA,OAAO,QAA8B,EAAA;AACnC,IAAA,IAAA,GAAO,WAAW,IAAK,CAAA,QAAQ,CAAoB,iBAAA,EAAA,YAAA,CAAA,IAAA,EAAK,QAAO,CAAE,CAAA,CAAA;AACjE,IAAA,IACE,KAAK,QACJ,KAAA,YAAA,CAAA,IAAA,EAAK,aAAY,UAAc,IAAA,YAAA,CAAA,IAAA,EAAK,aAAY,WACjD,CAAA,EAAA;AACA,MAAA,YAAA,CAAA,IAAA,EAAK,OAAU,EAAA,UAAA,CAAA;AACf,MAAA,IAAI,QAAU,EAAA;AACZ,QAAA,IAAA,CAAK,eAAkB,GAAA,QAAA;AAAA;AAEzB,MAAA,IAAA,CAAK,QAAQ,IAAK,CAAA;AAAA,QAChB,UAAU,IAAK,CAAA,QAAA;AAAA,QACf,IAAM,EAAA;AAAA,OACP,CAAA;AACD,MAAK,IAAA,CAAA,IAAA,CAAK,SAAW,EAAA,IAAA,CAAK,QAAQ,CAAA;AAAA;AACpC;AACF,EAEA,OAAO,QAAqB,EAAA;AAC1B,IAAK,YAAA,CAAA,IAAA,EAAA,kBAAA,EAAqBD,wBAAe,QAAQ,CAAA,CAAA;AACjD,IAAA,IAAI,KAAK,QAAU,EAAA;AACjB,MAAA,IAAA,CAAK,QAAQ,IAAK,CAAA;AAAA,QAChB,UAAU,IAAK,CAAA,QAAA;AAAA,QACf,IAAM,EAAA,QAAA;AAAA,QACN;AAAA,OACD,CAAA;AACD,MAAA,IAAA,CAAK,IAAK,CAAA,eAAA,EAAiB,QAAU,EAAA,YAAA,CAAA,IAAA,EAAK,kBAAkB,CAAA,CAAA;AAAA;AAC9D;AACF,EAEA,aAAa,UAA6B,EAAA;AACxC,IAAA,IAAI,KAAK,QAAU,EAAA;AACjB,MAAA,MAAM,CAAC,GAAA,EAAK,KAAK,CAAA,GACf,OAAO,UAAA,KAAe,QAAW,GAAA,CAAC,UAAU,CAAA,GAAI,CAAC,KAAA,CAAA,EAAW,UAAU,CAAA;AACxE,MAAA,IAAA,CAAK,QAAQ,IAAK,CAAA;AAAA,QAChB,KAAA;AAAA,QACA,GAAA;AAAA,QACA,IAAM,EAAA,cAAA;AAAA,QACN,UAAU,IAAK,CAAA;AAAA,OAChB,CAAA;AAAA;AACH;AACF,EAEA,cAAc,UAA6B,EAAA;AACzC,IAAA,IAAI,KAAK,QAAU,EAAA;AACjB,MAAA,MAAM,CAAC,GAAA,EAAK,KAAK,CAAA,GACf,OAAO,UAAA,KAAe,QAAW,GAAA,CAAC,UAAU,CAAA,GAAI,CAAC,KAAA,CAAA,EAAW,UAAU,CAAA;AACxE,MAAA,IAAA,CAAK,QAAQ,IAAK,CAAA;AAAA,QAChB,KAAA;AAAA,QACA,GAAA;AAAA,QACA,IAAM,EAAA,eAAA;AAAA,QACN,UAAU,IAAK,CAAA;AAAA,OAChB,CAAA;AAAA;AACH;AACF,EAEA,IAAI,WAAc,GAAA;AAChB,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,YAAA,CAAA;AAAA;AACd,EAEA,IAAI,YAAY,WAAsC,EAAA;AACpD,IAAA,YAAA,CAAA,IAAA,EAAK,YAAe,EAAA,WAAA,CAAA;AAAA;AAEtB,EAEA,IAAI,KAAQ,GAAA;AACV,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,MAAA,CAAA;AAAA;AACd,EAEA,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,KAAA,CAAA;AAAA;AACd,EAEA,IAAI,MAAS,GAAA;AACX,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,OAAA,CAAA;AAAA;AACd,EAEA,IAAI,QAAW,GAAA;AACb,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,SAAA,CAAA;AAAA;AACd,EAEA,IAAI,SAAS,QAA4B,EAAA;AACvC,IAAI,IAAA,QAAA,KAAa,mBAAK,SAAW,CAAA,EAAA;AAC/B,MAAA,YAAA,CAAA,IAAA,EAAK,SAAY,EAAA,QAAA,CAAA;AACjB,MAAA,QAAQ,QAAU;AAAA,QAChB,KAAK,MAAA;AACH,UAAA,IAAA,CAAK,eAAe,IAAK,CAAA,eAAA;AACzB,UAAA;AAAA,QACF,KAAK,UAAA;AACH,UAAA,IAAA,CAAK,eAAe,IAAK,CAAA,oBAAA;AACzB,UAAA;AAAA,QACF,KAAK,UAAA;AACH,UAAA,IAAA,CAAK,eAAe,IAAK,CAAA,oBAAA;AACzB,UAAA;AAAA;AAEJ,MAAK,IAAA,CAAA,IAAA,CAAK,YAAY,QAAQ,CAAA;AAAA;AAChC;AACF,EAMA,IAAI,iBAAoB,GAAA;AACtB,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,kBAAA,CAAA;AAAA;AACd,EAgCA,IAAI,MAAS,GAAA;AACX,IAAA,OAAO,KAAM,CAAA,MAAA;AAAA;AACf,EAEA,IAAI,OAAO,MAAwC,EAAA;AACjD,IAAI,IAAA,MAAA,KAAW,KAAK,MAAQ,EAAA;AAC1B,MAAA,KAAA,CAAM,MAAS,GAAA,MAAA;AACf,MAAA,IAAA,CAAK,QAAQ,IAAK,CAAA;AAAA,QAChB,UAAU,IAAK,CAAA,QAAA;AAAA,QACf,IAAM,EAAA,QAAA;AAAA,QACN,MAAA,EAAQC,uBAAe,CAAA,IAAA,CAAK,OAAO;AAAA,OACpC,CAAA;AAAA;AACH;AACF,EAEA,IAAI,gBAAgB,MAAwC,EAAA;AAC1D,IAAI,IAAA,MAAA,KAAW,KAAK,MAAQ,EAAA;AAC1B,MAAA,KAAA,CAAM,eAAkB,GAAA,MAAA;AACxB,MAAA,IAAA,CAAK,QAAQ,IAAK,CAAA;AAAA,QAChB,UAAU,IAAK,CAAA,QAAA;AAAA,QACf,IAAM,EAAA,QAAA;AAAA,QACN,MAAA,EAAQA,uBAAe,CAAA,IAAA,CAAK,MAAM;AAAA,OACnC,CAAA;AAAA;AACH;AACF,EAEA,IAAI,OAAU,GAAA;AACZ,IAAA,OAAO,KAAK,OAAQ,CAAA,OAAA;AAAA;AACtB,EAEA,IAAI,QAAQ,OAAqB,EAAA;AAC/B,IAAA,IAAIC,4BAAoB,CAAA,IAAA,CAAK,OAAS,EAAA,OAAO,CAAG,EAAA;AAC9C,MAAM,MAAA,UAAA,GAAa,IAAK,CAAA,OAAA,CAAQ,MAAS,GAAA,CAAA;AAEzC,MAAA,IAAA,CAAK,eAAkB,GAAA;AAAA,QACrB,GAAG,IAAK,CAAA,OAAA;AAAA,QACR;AAAA,OACF;AAEA,MAAA,IAAI,CAAC,UAAc,IAAA,OAAA,CAAQ,MAAS,GAAA,CAAA,IAAK,KAAK,QAAU,EAAA;AACtD,QAAA,IAAA,CAAK,eAAkB,GAAA;AAAA,UACrB,kBAAkB,IAAK,CAAA,QAAA;AAAA,UACvB,IAAM,EAAA,OAAA;AAAA,UACN,IAAM,EAAA,iBAAA;AAAA,UACN,IAAM,EAAA,CAAA;AAAA,UACN,MAAM;AAAC,SACR,CAAA;AAAA;AACH;AACF;AACF,EAEA,IAAI,KAAQ,GAAA;AACV,IAAO,OAAA,KAAA,CAAM,SAAS,CAAG,EAAA,IAAA,CAAK,MAAM,MAAM,CAAA,CAAA,EAAI,IAAK,CAAA,KAAA,CAAM,KAAK,CAAA,CAAA;AAAA;AAChE,EAEA,IAAI,MAAM,KAAe,EAAA;AACvB,IAAA,KAAA,CAAM,KAAQ,GAAA,KAAA;AACd,IAAI,IAAA,IAAA,CAAK,YAAY,KAAO,EAAA;AAG1B,MAAA,IAAA,CAAK,QAAQ,IAAK,CAAA;AAAA,QAChB,IAAM,EAAA,UAAA;AAAA,QACN,KAAA;AAAA,QACA,UAAU,IAAK,CAAA;AAAA,OAChB,CAAA;AAAA;AACH;AACF,EAEA,IAAI,UAAa,GAAA;AACf,IAAA,OAAO,KAAK,OAAQ,CAAA,UAAA;AAAA;AACtB,EAEA,IAAI,WAAW,UAAiD,EAAA;AAC9D,IAAA,IAAA,CAAK,OAAU,GAAA;AAAA,MACb,GAAG,IAAK,CAAA,OAAA;AAAA,MACR;AAAA,KACF;AAEA,IAAA,IAAI,UAAY,EAAA;AACd,MAAM,MAAA;AAAA,QACJ,gBAAA;AAAA,QACA,IAAA,EAAM,EAAE,UAAA,EAAY,QAAS;AAAA,OAC3B,GAAA,UAAA;AAEJ,MAAA,IAAI,KAAK,QAAU,EAAA;AACjB,QAAA,IAAA,CAAK,QACD,OAA4C,CAAA;AAAA,UAC5C,eAAiB,EAAA,UAAA;AAAA,UACjB,WAAW,IAAK,CAAA,QAAA;AAAA,UAChB,gBAAkB,EAAA,QAAA;AAAA,UAClB,UAAY,EAAA,gBAAA;AAAA,UACZ,IAAM,EAAA;AAAA,SACgB,CAAA,CACvB,IAAK,CAAA,CAAC,QAAa,KAAA;AAClB,UAAK,IAAA,CAAA,IAAA,CAAK,uBAAuB,QAAQ,CAAA;AAAA,SAC1C,CAAA;AAAA;AACL,KACK,MAAA;AACL,MAAA,IAAI,KAAK,QAAU,EAAA;AACjB,QAAA,IAAA,CAAK,QACD,OAAQ,CAAA;AAAA,UACR,IAAM,EAAA,oBAAA;AAAA,UACN,WAAW,IAAK,CAAA;AAAA,SACjB,CACA,CAAA,IAAA,CAAK,MAAM;AACV,UAAA,IAAA,CAAK,KAAK,qBAAqB,CAAA;AAAA,SAChC,CAAA;AAAA;AACL;AAGF,IAAA,IAAA,CAAK,IAAK,CAAA,QAAA,EAAU,IAAK,CAAA,OAAA,EAAS,KAAK,KAAK,CAAA;AAAA;AAC9C,EAEA,MAAM,mBAAiE,GAAA;AACrE,IAAA,OAAO,QAAQ,MAAU,EAAA;AAAA;AAC3B;AAAA,EAGA,MAAM,QACJ,UACA,EAAA;AACA,IAAI,IAAA,IAAA,CAAK,QAAY,IAAA,IAAA,CAAK,MAAQ,EAAA;AAChC,MAAO,OAAA,IAAA,CAAK,QAAQ,OAAW,CAAA;AAAA,QAC7B,GAAG,UAAA;AAAA,QACH,MAAM,IAAK,CAAA;AAAA,OACa,CAAA;AAAA,KACrB,MAAA;AACL,MAAA,MAAM,MAAM,CAA0C,wCAAA,CAAA,CAAA;AAAA;AACxD;AACF;AAAA,EAGA,MAAM,YAAY,UAAyC,EAAA;AACzD,IAAA,IAAI,KAAK,QAAU,EAAA;AACjB,MAAO,OAAA,IAAA,CAAK,QAAQ,OAAyB,CAAA;AAAA,QAC3C,GAAG,UAAA;AAAA,QACH,MAAM,IAAK,CAAA;AAAA,OACS,CAAA;AAAA;AACxB;AACF,EAEA,SAAA,CAAU,MAAgB,EAAA,UAAA,EAAoB,KAA2B,EAAA;AACvE,IAAA,OAAO,KAAK,WAAY,CAAAC,2BAAA,CAAmB,QAAQ,UAAY,EAAA,KAAK,CAAC,CAAE,CAAA,IAAA;AAAA,MACrE,CAAC,QAAa,KAAA;AACZ,QAAA,IAAI,UAAU,KAAO,EAAA;AACnB,UAAA,OAAO,QAAS,CAAA,KAAA;AAAA,SACX,MAAA;AACL,UAAO,OAAA,IAAA;AAAA;AACT;AACF,KACF;AAAA;AACF,EAEA,SAAA,CAAU,QAAgB,IAAqB,EAAA;AAC7C,IAAO,OAAA,IAAA,CAAK,YAAYC,yBAAiB,CAAA,MAAA,EAAQ,IAAI,CAAC,CAAA,CAAE,IAAK,CAAA,CAAC,QAAa,KAAA;AACzE,MAAA,IAAI,UAAU,KAAO,EAAA;AACnB,QAAA,OAAO,QAAS,CAAA,KAAA;AAAA,OACX,MAAA;AACL,QAAO,OAAA,IAAA;AAAA;AACT,KACD,CAAA;AAAA;AACH,EACA,UAAU,MAAgB,EAAA;AACxB,IAAO,OAAA,IAAA,CAAK,YAAYC,4BAAoB,CAAA,MAAM,CAAC,CAAE,CAAA,IAAA,CAAK,CAAC,QAAa,KAAA;AACtE,MAAA,IAAI,UAAU,KAAO,EAAA;AACnB,QAAA,OAAO,QAAS,CAAA,KAAA;AAAA,OACX,MAAA;AACL,QAAO,OAAA,IAAA;AAAA;AACT,KACD,CAAA;AAAA;AAEL;AAzfE,kBAAA,GAAA,IAAA,OAAA,EAAA;AACA,MAAA,GAAA,IAAA,OAAA,EAAA;AACA,KAAA,GAAA,IAAA,OAAA,EAAA;AACA,SAAA,GAAA,IAAA,OAAA,EAAA;AACA,kBAAA,GAAA,IAAA,OAAA,EAAA;AACA,OAAA,GAAA,IAAA,OAAA,EAAA;AACA,YAAA,GAAA,IAAA,OAAA,EAAA;;;;"}
1
+ {"version":3,"file":"VuuDataSource.js","sources":["../src/VuuDataSource.ts"],"sourcesContent":["import {\n DataSource,\n DataSourceCallbackMessage,\n DataSourceConstructorProps,\n DataSourceStatus,\n DataSourceVisualLinkCreatedMessage,\n OptimizeStrategy,\n Selection,\n ServerAPI,\n DataSourceSubscribeCallback,\n DataSourceSubscribeProps,\n TableSchema,\n WithBaseFilter,\n WithFullConfig,\n} from \"@vuu-ui/vuu-data-types\";\nimport {\n LinkDescriptorWithLabel,\n VuuCreateVisualLink,\n VuuDataRowDto,\n VuuGroupBy,\n VuuMenu,\n VuuRange,\n VuuRowDataItemType,\n VuuRpcMenuRequest,\n VuuRpcRequest,\n VuuRpcResponse,\n VuuRpcViewportRequest,\n VuuTable,\n} from \"@vuu-ui/vuu-protocol-types\";\n\nimport {\n BaseDataSource,\n combineFilters,\n debounce,\n isViewportMenusAction,\n isVisualLinksAction,\n itemsOrOrderChanged,\n logger,\n Range,\n selectionCount,\n throttle,\n uuid,\n vuuAddRowRequest,\n vuuDeleteRowRequest,\n vuuEditCellRequest,\n} from \"@vuu-ui/vuu-utils\";\nimport ConnectionManager from \"./ConnectionManager\";\nimport { isDataSourceConfigMessage } from \"./data-source\";\n\nimport { MenuRpcResponse } from \"@vuu-ui/vuu-data-types\";\n\ntype RangeRequest = (range: VuuRange) => void;\n\nconst { info, infoEnabled } = logger(\"VuuDataSource\");\n\n/*---------------------------------------------------------------------\n A VuuDataSource manages a single subscription via the ServerProxy\n ---------------------------------------------------------------------*/\nexport class VuuDataSource extends BaseDataSource implements DataSource {\n private bufferSize: number;\n private server: ServerAPI | null = null;\n rangeRequest: RangeRequest;\n\n #pendingVisualLink?: LinkDescriptorWithLabel;\n #links: LinkDescriptorWithLabel[] | undefined;\n #menu: VuuMenu | undefined;\n #optimize: OptimizeStrategy = \"throttle\";\n #selectedRowsCount = 0;\n #status: DataSourceStatus = \"initialising\";\n #tableSchema: TableSchema | undefined;\n\n public table: VuuTable;\n\n constructor(props: DataSourceConstructorProps) {\n super(props);\n\n const { bufferSize = 100, table, visualLink } = props;\n\n if (!table)\n throw Error(\"RemoteDataSource constructor called without table\");\n\n this.bufferSize = bufferSize;\n this.table = table;\n\n this.#pendingVisualLink = visualLink;\n\n // this.rangeRequest = this.throttleRangeRequest;\n this.rangeRequest = this.rawRangeRequest;\n }\n\n async subscribe(\n subscribeProps: DataSourceSubscribeProps,\n callback: DataSourceSubscribeCallback,\n ) {\n super.subscribe(subscribeProps, callback);\n const {\n selectedIndexValues,\n viewport = this.viewport || (this.viewport = uuid()),\n } = subscribeProps;\n\n if (this.#status === \"disabled\" || this.#status === \"disabling\") {\n this.enable(callback);\n return;\n }\n\n if (\n this.#status !== \"initialising\" &&\n this.#status !== \"unsubscribed\"\n // We can subscribe to a disabled dataSource. No request will be\n // sent to server to create a new VP, just to enable the existing one.\n // The current subscribing client becomes the subscription owner\n ) {\n return;\n }\n\n this.#status = \"subscribing\";\n this.#selectedRowsCount = selectionCount(selectedIndexValues);\n\n this.server = await ConnectionManager.serverAPI;\n\n const { bufferSize } = this;\n\n // TODO and await response here\n\n const dataSourceConfig = combineFilters(this.config);\n\n console.log(\n `[VuuDataSource] subscribe, send subscribe message range (${this._range.from}:${this._range.to})`,\n );\n\n this.server?.subscribe(\n {\n ...dataSourceConfig,\n bufferSize,\n range: this._range,\n selectedIndexValues: selectedIndexValues,\n table: this.table,\n title: this._title,\n viewport,\n },\n this.handleMessageFromServer,\n );\n }\n\n handleMessageFromServer = (message: DataSourceCallbackMessage) => {\n if (message.type === \"subscribed\") {\n this.#status = \"subscribed\";\n this.tableSchema = message.tableSchema;\n this._clientCallback?.(message);\n if (this.#pendingVisualLink) {\n this.visualLink = this.#pendingVisualLink;\n this.#pendingVisualLink = undefined;\n }\n this.emit(\"subscribed\", message);\n } else if (message.type === \"disabled\") {\n this.#status = \"disabled\";\n } else if (message.type === \"enabled\") {\n this.#status = \"enabled\";\n } else if (isDataSourceConfigMessage(message)) {\n // This is an ACK for a CHANGE_VP message. Nothing to do here. We need\n // to wait for data to be returned before we can consider the change\n // to be in effect.\n return;\n } else if (message.type === \"debounce-begin\") {\n this.optimize = \"debounce\";\n } else {\n if (\n message.type === \"viewport-update\" &&\n message.size !== undefined &&\n message.size !== this.size\n ) {\n this.size = message.size;\n this.emit(\"resize\", message.size);\n } else if (message.type === \"viewport-clear\") {\n this.size = 0;\n this.emit(\"resize\", 0);\n }\n // This is used to remove any progress indication from the UI. We wait for actual data rather than\n // just the CHANGE_VP_SUCCESS ack as there is often a delay between receiving the ack and the data.\n // It may be a SIZE only message, eg in the case of removing a groupBy column from a multi-column\n // groupby, where no tree nodes are expanded.\n if (this.isAwaitingConfirmationOfConfigChange) {\n this.confirmConfigChange();\n }\n\n if (isViewportMenusAction(message)) {\n this.#menu = message.menu;\n } else if (isVisualLinksAction(message)) {\n this.#links = message.links as LinkDescriptorWithLabel[];\n } else {\n if (infoEnabled && message.type === \"viewport-update\") {\n info(\n `handleMessageFromServer<viewport-update> range (${message.range?.from}:${message.range?.to}) rows ${message.rows?.at(0)?.[0]} - ${message.rows?.at(-1)?.[0]}`,\n );\n }\n if (message.type === \"viewport-update\") {\n console.log(\n `handleMessageFromServer<viewport-update> range (${message.range?.from}:${message.range?.to}) rows ${message.rows?.at(0)?.[0]} - ${message.rows?.at(-1)?.[0]}`,\n );\n }\n this._clientCallback?.(message);\n }\n\n if (this.optimize === \"debounce\") {\n this.revertDebounce();\n }\n }\n };\n\n unsubscribe() {\n if (this.#status !== \"unsubscribed\") {\n info?.(`unsubscribe #${this.viewport}`);\n if (this.viewport) {\n this.server?.unsubscribe(this.viewport);\n this.emit(\"unsubscribed\", this.viewport);\n }\n this.server?.destroy(this.viewport);\n this.server = null;\n this.removeAllListeners();\n this.#status = \"unsubscribed\";\n this.viewport = \"\";\n this.range = Range(0, 0);\n }\n }\n\n suspend() {\n if (this.#status !== \"unsubscribed\") {\n info?.(`suspend #${this.viewport}, current status ${this.#status}`);\n if (this.viewport) {\n this.#status = \"suspended\";\n this.server?.send({\n type: \"suspend\",\n viewport: this.viewport,\n });\n this.emit(\"suspended\", this.viewport);\n }\n }\n }\n\n resume(callback?: DataSourceSubscribeCallback) {\n const isDisabled = this.#status.startsWith(\"disabl\");\n const isSuspended = this.#status === \"suspended\";\n info?.(`resume #${this.viewport}, current status ${this.#status}`);\n if (callback) {\n this._clientCallback = callback;\n }\n if (this.viewport) {\n if (isDisabled) {\n this.enable();\n } else if (isSuspended) {\n this.server?.send({\n type: \"resume\",\n viewport: this.viewport,\n });\n this.#status = \"subscribed\";\n this.emit(\"resumed\", this.viewport);\n }\n }\n }\n\n disable() {\n info?.(`disable #${this.viewport}, current status ${this.#status}`);\n if (this.viewport) {\n this.#status = \"disabling\";\n this.server?.send({\n viewport: this.viewport,\n type: \"disable\",\n });\n this.emit(\"disabled\", this.viewport);\n }\n }\n\n enable(callback?: DataSourceSubscribeCallback) {\n info?.(`enable #${this.viewport}, current status ${this.#status}`);\n if (\n this.viewport &&\n (this.#status === \"disabled\" || this.#status === \"disabling\")\n ) {\n this.#status = \"enabling\";\n if (callback) {\n this._clientCallback = callback;\n }\n this.server?.send({\n viewport: this.viewport,\n type: \"enable\",\n });\n this.emit(\"enabled\", this.viewport);\n }\n }\n\n select(selected: Selection) {\n this.#selectedRowsCount = selectionCount(selected);\n if (this.viewport) {\n this.server?.send({\n viewport: this.viewport,\n type: \"select\",\n selected,\n });\n this.emit(\"row-selection\", selected, this.#selectedRowsCount);\n }\n }\n\n openTreeNode(keyOrIndex: string | number) {\n if (this.viewport) {\n const [key, index] =\n typeof keyOrIndex === \"string\" ? [keyOrIndex] : [undefined, keyOrIndex];\n this.server?.send({\n index,\n key,\n type: \"openTreeNode\",\n viewport: this.viewport,\n });\n }\n }\n\n closeTreeNode(keyOrIndex: string | number) {\n if (this.viewport) {\n const [key, index] =\n typeof keyOrIndex === \"string\" ? [keyOrIndex] : [undefined, keyOrIndex];\n this.server?.send({\n index,\n key,\n type: \"closeTreeNode\",\n viewport: this.viewport,\n });\n }\n }\n\n get tableSchema() {\n return this.#tableSchema;\n }\n\n set tableSchema(tableSchema: TableSchema | undefined) {\n this.#tableSchema = tableSchema;\n // TOSO emit an event\n }\n\n get links() {\n return this.#links;\n }\n\n get menu() {\n return this.#menu;\n }\n\n get status() {\n return this.#status;\n }\n\n get optimize() {\n return this.#optimize;\n }\n\n set optimize(optimize: OptimizeStrategy) {\n if (optimize !== this.#optimize) {\n this.#optimize = optimize;\n switch (optimize) {\n case \"none\":\n this.rangeRequest = this.rawRangeRequest;\n break;\n case \"debounce\":\n this.rangeRequest = this.debounceRangeRequest;\n break;\n case \"throttle\":\n this.rangeRequest = this.throttleRangeRequest;\n break;\n }\n this.emit(\"optimize\", optimize);\n }\n }\n\n private revertDebounce = debounce(() => {\n this.optimize = \"throttle\";\n }, 100);\n\n get selectedRowsCount() {\n return this.#selectedRowsCount;\n }\n\n private rawRangeRequest: RangeRequest = (range) => {\n if (this.viewport && this.server) {\n this.server.send({\n viewport: this.viewport,\n type: \"setViewRange\",\n range,\n });\n }\n };\n\n private debounceRangeRequest: RangeRequest = debounce((range: VuuRange) => {\n if (this.viewport && this.server) {\n this.server.send({\n viewport: this.viewport,\n type: \"setViewRange\",\n range,\n });\n }\n }, 50);\n\n private throttleRangeRequest: RangeRequest = throttle((range: VuuRange) => {\n if (this.viewport && this.server) {\n this.server.send({\n viewport: this.viewport,\n type: \"setViewRange\",\n range,\n });\n }\n }, 80);\n\n get config() {\n return super.config;\n }\n\n set config(config: WithBaseFilter<WithFullConfig>) {\n if (config !== this.config) {\n super.config = config;\n this.server?.send({\n viewport: this.viewport,\n type: \"config\",\n config: combineFilters(this._config),\n });\n }\n }\n\n set impendingConfig(config: WithBaseFilter<WithFullConfig>) {\n if (config !== this.config) {\n super.impendingConfig = config;\n this.server?.send({\n viewport: this.viewport,\n type: \"config\",\n config: combineFilters(this.config),\n });\n }\n }\n\n get groupBy() {\n return this._config.groupBy;\n }\n\n set groupBy(groupBy: VuuGroupBy) {\n if (itemsOrOrderChanged(this.groupBy, groupBy)) {\n const wasGrouped = this.groupBy.length > 0;\n\n this.impendingConfig = {\n ...this._config,\n groupBy,\n };\n\n if (!wasGrouped && groupBy.length > 0 && this.viewport) {\n this._clientCallback?.({\n clientViewportId: this.viewport,\n mode: \"batch\",\n type: \"viewport-update\",\n size: 0,\n rows: [],\n });\n }\n }\n }\n\n get title() {\n return super.title || `${this.table.module} ${this.table.table}`;\n }\n\n set title(title: string) {\n super.title = title;\n if (this.viewport && title) {\n // This message doesn't actually trigger a message to Vuu server\n // it will be used to recompute visual link labels\n this.server?.send({\n type: \"setTitle\",\n title,\n viewport: this.viewport,\n });\n }\n }\n\n get visualLink() {\n return this._config.visualLink;\n }\n\n set visualLink(visualLink: LinkDescriptorWithLabel | undefined) {\n this._config = {\n ...this._config,\n visualLink,\n };\n\n if (visualLink) {\n const {\n parentClientVpId,\n link: { fromColumn, toColumn },\n } = visualLink;\n\n if (this.viewport) {\n this.server\n ?.rpcCall<DataSourceVisualLinkCreatedMessage>({\n childColumnName: fromColumn,\n childVpId: this.viewport,\n parentColumnName: toColumn,\n parentVpId: parentClientVpId,\n type: \"CREATE_VISUAL_LINK\",\n } as VuuCreateVisualLink)\n .then((response) => {\n this.emit(\"visual-link-created\", response);\n });\n }\n } else {\n if (this.viewport) {\n this.server\n ?.rpcCall({\n type: \"REMOVE_VISUAL_LINK\",\n childVpId: this.viewport,\n })\n .then(() => {\n this.emit(\"visual-link-removed\");\n });\n }\n }\n\n this.emit(\"config\", this._config, this.range);\n }\n\n async remoteProcedureCall<T extends VuuRpcResponse = VuuRpcResponse>() {\n return Promise.reject<T>();\n }\n\n /** @deprecated */\n async rpcCall<T extends VuuRpcResponse = VuuRpcResponse>(\n rpcRequest: Omit<VuuRpcRequest, \"vpId\">,\n ) {\n if (this.viewport && this.server) {\n return this.server?.rpcCall<T>({\n ...rpcRequest,\n vpId: this.viewport,\n } as VuuRpcViewportRequest);\n } else {\n throw Error(`rpcCall server or viewport are undefined`);\n }\n }\n\n /** @deprecated */\n async menuRpcCall(rpcRequest: Omit<VuuRpcRequest, \"vpId\">) {\n if (this.viewport) {\n return this.server?.rpcCall<MenuRpcResponse>({\n ...rpcRequest,\n vpId: this.viewport,\n } as VuuRpcMenuRequest);\n }\n }\n\n applyEdit(rowKey: string, columnName: string, value: VuuRowDataItemType) {\n return this.menuRpcCall(vuuEditCellRequest(rowKey, columnName, value)).then(\n (response) => {\n if (response?.error) {\n return response.error;\n } else {\n return true;\n }\n },\n );\n }\n\n insertRow(rowKey: string, data: VuuDataRowDto) {\n return this.menuRpcCall(vuuAddRowRequest(rowKey, data)).then((response) => {\n if (response?.error) {\n return response.error;\n } else {\n return true;\n }\n });\n }\n deleteRow(rowKey: string) {\n return this.menuRpcCall(vuuDeleteRowRequest(rowKey)).then((response) => {\n if (response?.error) {\n return response.error;\n } else {\n return true;\n }\n });\n }\n}\n"],"names":["logger","BaseDataSource","isDataSourceConfigMessage","isViewportMenusAction","isVisualLinksAction","debounce","throttle","uuid","selectionCount","combineFilters","Range","itemsOrOrderChanged","vuuEditCellRequest","vuuAddRowRequest","vuuDeleteRowRequest"],"mappings":"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"}
@@ -49,6 +49,89 @@ var getCookieValue = (name) => {
49
49
  };
50
50
 
51
51
  // ../vuu-utils/src/range-utils.ts
52
+ var defaultRangeOptions = {
53
+ renderBufferSize: 0,
54
+ rowCount: -1
55
+ };
56
+ var _baseFrom, _renderBufferSize, _rowCount, _baseTo;
57
+ var _RangeImpl = class _RangeImpl {
58
+ constructor(from, to, rangeOptions = defaultRangeOptions) {
59
+ __privateAdd(this, _baseFrom);
60
+ __privateAdd(this, _renderBufferSize, 0);
61
+ __privateAdd(this, _rowCount, -1);
62
+ __privateAdd(this, _baseTo);
63
+ // We have to keep these as simple public properties (not getters) so they survive structuredClone
64
+ __publicField(this, "from", 0);
65
+ __publicField(this, "to", 0);
66
+ var _a, _b;
67
+ __privateSet(this, _baseFrom, from);
68
+ __privateSet(this, _baseTo, to);
69
+ this.renderBufferSize = (_a = rangeOptions.renderBufferSize) != null ? _a : defaultRangeOptions.renderBufferSize;
70
+ this.rowCount = (_b = rangeOptions.rowCount) != null ? _b : defaultRangeOptions.rowCount;
71
+ console.log(
72
+ \`[Range] new (\${__privateGet(this, _baseFrom)}:\${__privateGet(this, _baseTo)}) renderBuffer: \${this.renderBufferSize}, rowCount: \${this.rowCount}\`
73
+ );
74
+ }
75
+ get firstRowInViewport() {
76
+ return __privateGet(this, _baseFrom) + 1;
77
+ }
78
+ get lastRowInViewport() {
79
+ if (__privateGet(this, _rowCount) > 0) {
80
+ return Math.min(__privateGet(this, _baseTo), __privateGet(this, _rowCount));
81
+ } else {
82
+ return __privateGet(this, _baseTo);
83
+ }
84
+ }
85
+ get renderBufferSize() {
86
+ return __privateGet(this, _renderBufferSize);
87
+ }
88
+ set renderBufferSize(value) {
89
+ __privateSet(this, _renderBufferSize, value);
90
+ this.from = Math.max(0, __privateGet(this, _baseFrom) - value);
91
+ if (__privateGet(this, _rowCount) > 0) {
92
+ this.to = Math.max(__privateGet(this, _baseTo) + __privateGet(this, _renderBufferSize), __privateGet(this, _rowCount));
93
+ } else {
94
+ this.to = __privateGet(this, _baseTo) + __privateGet(this, _renderBufferSize);
95
+ }
96
+ }
97
+ get rowCount() {
98
+ return __privateGet(this, _rowCount);
99
+ }
100
+ set rowCount(value) {
101
+ __privateSet(this, _rowCount, value);
102
+ if (value > 0) {
103
+ this.to = Math.min(__privateGet(this, _baseTo) + __privateGet(this, _renderBufferSize), value);
104
+ } else {
105
+ this.to = __privateGet(this, _baseTo) + __privateGet(this, _renderBufferSize);
106
+ }
107
+ }
108
+ get reset() {
109
+ return new _RangeImpl(0, __privateGet(this, _baseTo) - __privateGet(this, _baseFrom), {
110
+ rowCount: __privateGet(this, _rowCount),
111
+ renderBufferSize: __privateGet(this, _renderBufferSize)
112
+ });
113
+ }
114
+ equals(range) {
115
+ return range.from === __privateGet(this, _baseFrom) && range.to === __privateGet(this, _baseTo);
116
+ }
117
+ toJson() {
118
+ return {
119
+ from: this.from,
120
+ to: this.to,
121
+ baseFrom: __privateGet(this, _baseFrom),
122
+ baseTo: __privateGet(this, _baseTo),
123
+ renderBufferSize: __privateGet(this, _renderBufferSize),
124
+ rowCount: __privateGet(this, _rowCount)
125
+ };
126
+ }
127
+ };
128
+ _baseFrom = new WeakMap();
129
+ _renderBufferSize = new WeakMap();
130
+ _rowCount = new WeakMap();
131
+ _baseTo = new WeakMap();
132
+ var RangeImpl = _RangeImpl;
133
+ var Range = (from, to, rangeOptions) => new RangeImpl(from, to, rangeOptions);
134
+ var NULL_RANGE = Range(0, 0);
52
135
  function getFullRange({ from, to }, bufferSize = 0, totalRowCount = Number.MAX_SAFE_INTEGER) {
53
136
  if (from === 0 && to === 0) {
54
137
  return { from, to };
@@ -1735,6 +1818,9 @@ var ServerProxy = class {
1735
1818
  /**********************************************************************/
1736
1819
  setViewRange(viewport, message) {
1737
1820
  const requestId = nextRequestId();
1821
+ console.log(
1822
+ \`[ServerProxy] setViewRange (\${message.range.from}:\${message.range.to})\`
1823
+ );
1738
1824
  infoEnabled2 && info2(\`setViewRange (\${message.range.from}:\${message.range.to})\`);
1739
1825
  const [serverRequest, rows, debounceRequest] = viewport.rangeRequest(
1740
1826
  requestId,