@vuu-ui/vuu-data-remote 0.8.74 → 0.8.76
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/data-source.js +1 -1
- package/cjs/data-source.js.map +1 -1
- package/cjs/inlined-worker.js +10 -4
- package/cjs/inlined-worker.js.map +1 -1
- package/cjs/vuu-data-source.js +10 -10
- package/cjs/vuu-data-source.js.map +1 -1
- package/esm/data-source.js +1 -1
- package/esm/data-source.js.map +1 -1
- package/esm/inlined-worker.js +10 -4
- package/esm/inlined-worker.js.map +1 -1
- package/esm/vuu-data-source.js +10 -10
- package/esm/vuu-data-source.js.map +1 -1
- package/package.json +7 -7
- package/types/inlined-worker.d.ts +1 -1
- package/types/server-proxy/viewport.d.ts +1 -1
- package/types/vuu-data-source.d.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vuu-data-source.js","sources":["../src/vuu-data-source.ts"],"sourcesContent":["import {\n DataSource,\n DataSourceCallbackMessage,\n DataSourceConfig,\n DataSourceConstructorProps,\n DataSourceEvents,\n DataSourceFilter,\n DataSourceRow,\n DataSourceStatus,\n OptimizeStrategy,\n RpcResponse,\n Selection,\n SubscribeCallback,\n SubscribeProps,\n TableSchema,\n WithFullConfig,\n} from \"@vuu-ui/vuu-data-types\";\nimport {\n ClientToServerEditRpc,\n ClientToServerMenuRPC,\n ClientToServerViewportRpcCall,\n LinkDescriptorWithLabel,\n VuuAggregation,\n VuuDataRowDto,\n VuuGroupBy,\n VuuMenu,\n VuuRange,\n VuuRowDataItemType,\n VuuSort,\n VuuTable,\n} from \"@vuu-ui/vuu-protocol-types\";\n\nimport { parseFilter } from \"@vuu-ui/vuu-filter-parser\";\nimport {\n isConfigChanged,\n debounce,\n EventEmitter,\n isViewportMenusAction,\n isVisualLinksAction,\n itemsOrOrderChanged,\n logger,\n metadataKeys,\n throttle,\n uuid,\n vanillaConfig,\n withConfigDefaults,\n DataSourceConfigChanges,\n} from \"@vuu-ui/vuu-utils\";\nimport { getServerAPI, ServerAPI } from \"./connection-manager\";\nimport { isDataSourceConfigMessage } from \"./data-source\";\n\nimport { MenuRpcResponse } from \"@vuu-ui/vuu-data-types\";\n\ntype RangeRequest = (range: VuuRange) => void;\n\nconst { info } = logger(\"VuuDataSource\");\n\nconst { KEY } = metadataKeys;\n\n/*-----------------------------------------------------------------\n A RemoteDataSource manages a single subscription via the ServerProxy\n ----------------------------------------------------------------*/\nexport class VuuDataSource\n extends EventEmitter<DataSourceEvents>\n implements DataSource\n{\n private bufferSize: number;\n private server: ServerAPI | null = null;\n private clientCallback: SubscribeCallback | undefined;\n private configChangePending: DataSourceConfig | undefined;\n private rangeRequest: RangeRequest;\n\n #config: WithFullConfig = vanillaConfig;\n #groupBy: VuuGroupBy = [];\n #links: LinkDescriptorWithLabel[] | undefined;\n #menu: VuuMenu | undefined;\n #optimize: OptimizeStrategy = \"throttle\";\n #range: VuuRange = { from: 0, to: 0 };\n #selectedRowsCount = 0;\n #size = 0;\n #status: DataSourceStatus = \"initialising\";\n #tableSchema: TableSchema | undefined;\n\n #title: string | undefined;\n\n public table: VuuTable;\n public viewport: string | undefined;\n\n constructor({\n bufferSize = 100,\n aggregations,\n columns,\n filter,\n groupBy,\n sort,\n table,\n title,\n viewport,\n visualLink,\n }: DataSourceConstructorProps) {\n super();\n\n if (!table)\n throw Error(\"RemoteDataSource constructor called without table\");\n\n this.bufferSize = bufferSize;\n this.table = table;\n this.viewport = viewport;\n\n this.#config = {\n ...this.#config,\n aggregations: aggregations || this.#config.aggregations,\n columns: columns || this.#config.columns,\n filter: filter || this.#config.filter,\n groupBy: groupBy || this.#config.groupBy,\n sort: sort || this.#config.sort,\n visualLink: visualLink || this.#config.visualLink,\n };\n\n this.#title = title;\n this.rangeRequest = this.throttleRangeRequest;\n }\n\n async subscribe(\n {\n viewport = this.viewport ?? (this.viewport = uuid()),\n columns,\n aggregations,\n range,\n sort,\n groupBy,\n filter,\n }: SubscribeProps,\n callback: SubscribeCallback\n ) {\n if (this.#status === \"disabled\" || this.#status === \"disabling\") {\n this.enable(callback);\n return;\n }\n this.clientCallback = callback;\n if (aggregations || columns || filter || groupBy || sort) {\n this.#config = {\n ...this.#config,\n aggregations: aggregations || this.#config.aggregations,\n columns: columns || this.#config.columns,\n filter: filter || this.#config.filter,\n groupBy: groupBy || this.#config.groupBy,\n sort: sort || this.#config.sort,\n };\n }\n\n // store the range before we await the server. It's is possible the\n // range will be updated from the client before we have been able to\n // subscribe. This ensures we will subscribe with latest value.\n if (range) {\n this.#range = range;\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.viewport = viewport;\n\n this.server = await getServerAPI();\n\n const { bufferSize } = this;\n\n this.server?.subscribe(\n {\n ...this.#config,\n bufferSize,\n viewport,\n table: this.table,\n range: this.#range,\n title: this.#title,\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 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 }\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.configChangePending) {\n this.setConfigPending();\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 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 = undefined;\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 }\n }\n }\n\n resume() {\n const isDisabled = this.#status.startsWith(\"disabl\");\n const isSuspended = this.#status === \"suspended\";\n info?.(`resume #${this.viewport}, current status ${this.#status}`);\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 }\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 //TODO this isn't always going to be correct - need to count\n // selection block items\n this.#selectedRowsCount = selected.length;\n if (this.viewport) {\n this.server?.send({\n viewport: this.viewport,\n type: \"select\",\n selected,\n });\n }\n }\n\n openTreeNode(key: string) {\n if (this.viewport) {\n this.server?.send({\n viewport: this.viewport,\n type: \"openTreeNode\",\n key,\n });\n }\n }\n\n closeTreeNode(key: string) {\n if (this.viewport) {\n this.server?.send({\n viewport: this.viewport,\n type: \"closeTreeNode\",\n key,\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 get size() {\n return this.#size;\n }\n\n get range() {\n return this.#range;\n }\n\n set range(range: VuuRange) {\n if (range.from !== this.#range.from || range.to !== this.#range.to) {\n this.#range = range;\n this.rangeRequest(range);\n }\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 this.#config;\n }\n\n set config(config: DataSourceConfig) {\n const configChanges = this.applyConfig(config);\n if (configChanges) {\n if (this.#config && this.viewport) {\n if (config) {\n this.server?.send({\n viewport: this.viewport,\n type: \"config\",\n config: this.#config,\n });\n }\n }\n this.emit(\"config\", this.#config, undefined, configChanges);\n }\n }\n\n applyConfig(config: DataSourceConfig): DataSourceConfigChanges | undefined {\n const { noChanges, ...otherChanges } = isConfigChanged(\n this.#config,\n config\n );\n if (noChanges !== true) {\n if (config) {\n const newConfig: DataSourceConfig =\n config?.filter?.filter && config?.filter.filterStruct === undefined\n ? {\n ...config,\n filter: {\n filter: config.filter.filter,\n filterStruct: parseFilter(config.filter.filter),\n },\n }\n : config;\n this.#config = withConfigDefaults(newConfig);\n return otherChanges;\n }\n }\n }\n\n //TODO replace all these individual server calls with calls to setConfig\n get columns() {\n return this.#config.columns;\n }\n\n set columns(columns: string[]) {\n this.#config = {\n ...this.#config,\n columns,\n };\n if (this.viewport) {\n const message = {\n viewport: this.viewport,\n type: \"setColumns\",\n columns,\n } as const;\n if (this.server) {\n this.server.send(message);\n }\n }\n this.emit(\"config\", this.#config);\n }\n\n get aggregations() {\n return this.#config.aggregations;\n }\n\n set aggregations(aggregations: VuuAggregation[]) {\n this.#config = {\n ...this.#config,\n aggregations,\n };\n if (this.viewport) {\n this.server?.send({\n viewport: this.viewport,\n type: \"aggregate\",\n aggregations,\n });\n }\n this.emit(\"config\", this.#config);\n }\n\n get sort() {\n return this.#config.sort;\n }\n\n set sort(sort: VuuSort) {\n // TODO should we wait until server ACK before we assign #sort ?\n this.#config = {\n ...this.#config,\n sort,\n };\n if (this.viewport) {\n const message = {\n viewport: this.viewport,\n type: \"sort\",\n sort,\n } as const;\n this.server?.send(message);\n }\n this.emit(\"config\", this.#config);\n }\n\n get filter() {\n return this.#config.filter;\n }\n\n set filter(filter: DataSourceFilter) {\n this.config = {\n ...this.#config,\n filter,\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.config = {\n ...this.#config,\n groupBy,\n };\n // if (this.viewport) {\n // const message = {\n // viewport: this.viewport,\n // type: \"groupBy\",\n // groupBy: this.#config.groupBy,\n // } as const;\n\n // if (this.server) {\n // this.server.send(message);\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 // this.emit(\"config\", this.#config, undefined, {\n // ...NO_CONFIG_CHANGES,\n // groupByChanged: true,\n // });\n this.setConfigPending({ groupBy });\n }\n }\n\n get title() {\n return this.#title ?? `${this.table.module} ${this.table.table}`;\n }\n\n set title(title: string | undefined) {\n this.#title = title;\n if (this.viewport && title) {\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?.send({\n viewport: this.viewport,\n type: \"createLink\",\n parentClientVpId,\n parentColumnName: toColumn,\n childColumnName: fromColumn,\n });\n }\n } else {\n if (this.viewport) {\n this.server?.send({\n type: \"removeLink\",\n viewport: this.viewport,\n });\n }\n }\n this.emit(\"config\", this.#config);\n }\n\n private setConfigPending(config?: DataSourceConfig) {\n const pendingConfig = this.configChangePending;\n this.configChangePending = config;\n\n if (config !== undefined) {\n this.emit(\"config\", config, false);\n } else {\n this.emit(\"config\", pendingConfig, true);\n }\n }\n\n async rpcCall<T extends RpcResponse = RpcResponse>(\n rpcRequest: Omit<ClientToServerViewportRpcCall, \"vpId\">\n ) {\n if (this.viewport) {\n return this.server?.rpcCall<T>({\n vpId: this.viewport,\n ...rpcRequest,\n } as ClientToServerViewportRpcCall);\n }\n }\n\n async menuRpcCall(\n rpcRequest: Omit<ClientToServerMenuRPC, \"vpId\"> | ClientToServerEditRpc\n ) {\n if (this.viewport) {\n return this.server?.rpcCall<MenuRpcResponse>({\n vpId: this.viewport,\n ...rpcRequest,\n } as ClientToServerMenuRPC);\n }\n }\n\n applyEdit(row: DataSourceRow, columnName: string, value: VuuRowDataItemType) {\n return this.menuRpcCall({\n rowKey: row[KEY],\n field: columnName,\n value: value,\n type: \"VP_EDIT_CELL_RPC\",\n }).then((response) => {\n if (response?.error) {\n return response.error;\n } else {\n return true;\n }\n });\n }\n\n insertRow(key: string, data: VuuDataRowDto) {\n return this.menuRpcCall({\n rowKey: key,\n data,\n type: \"VP_EDIT_ADD_ROW_RPC\",\n }).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({\n rowKey,\n type: \"VP_EDIT_DELETE_ROW_RPC\",\n }).then((response) => {\n if (response?.error) {\n return response.error;\n } else {\n return true;\n }\n });\n }\n}\n"],"names":["logger","metadataKeys","EventEmitter","vanillaConfig","isDataSourceConfigMessage","isViewportMenusAction","isVisualLinksAction","debounce","throttle","uuid","getServerAPI","isConfigChanged","parseFilter","withConfigDefaults","itemsOrOrderChanged"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vuu-data-source.js","sources":["../src/vuu-data-source.ts"],"sourcesContent":["import {\n DataSource,\n DataSourceCallbackMessage,\n DataSourceConfig,\n DataSourceConstructorProps,\n DataSourceEvents,\n DataSourceFilter,\n DataSourceRow,\n DataSourceStatus,\n OptimizeStrategy,\n RpcResponse,\n Selection,\n SubscribeCallback,\n SubscribeProps,\n TableSchema,\n WithFullConfig,\n} from \"@vuu-ui/vuu-data-types\";\nimport {\n ClientToServerEditRpc,\n ClientToServerMenuRPC,\n ClientToServerViewportRpcCall,\n LinkDescriptorWithLabel,\n VuuAggregation,\n VuuDataRowDto,\n VuuGroupBy,\n VuuMenu,\n VuuRange,\n VuuRowDataItemType,\n VuuSort,\n VuuTable,\n} from \"@vuu-ui/vuu-protocol-types\";\n\nimport { parseFilter } from \"@vuu-ui/vuu-filter-parser\";\nimport {\n isConfigChanged,\n debounce,\n EventEmitter,\n isViewportMenusAction,\n isVisualLinksAction,\n itemsOrOrderChanged,\n logger,\n metadataKeys,\n throttle,\n uuid,\n vanillaConfig,\n withConfigDefaults,\n DataSourceConfigChanges,\n} from \"@vuu-ui/vuu-utils\";\nimport { getServerAPI, ServerAPI } from \"./connection-manager\";\nimport { isDataSourceConfigMessage } from \"./data-source\";\n\nimport { MenuRpcResponse } from \"@vuu-ui/vuu-data-types\";\n\ntype RangeRequest = (range: VuuRange) => void;\n\nconst { info } = logger(\"VuuDataSource\");\n\nconst { KEY } = metadataKeys;\n\n/*-----------------------------------------------------------------\n A RemoteDataSource manages a single subscription via the ServerProxy\n ----------------------------------------------------------------*/\nexport class VuuDataSource\n extends EventEmitter<DataSourceEvents>\n implements DataSource\n{\n private bufferSize: number;\n private server: ServerAPI | null = null;\n private clientCallback: SubscribeCallback | undefined;\n private configChangePending: DataSourceConfig | undefined;\n private rangeRequest: RangeRequest;\n\n #config: WithFullConfig & { visualLink?: LinkDescriptorWithLabel } =\n vanillaConfig;\n #groupBy: VuuGroupBy = [];\n #links: LinkDescriptorWithLabel[] | undefined;\n #menu: VuuMenu | undefined;\n #optimize: OptimizeStrategy = \"throttle\";\n #range: VuuRange = { from: 0, to: 0 };\n #selectedRowsCount = 0;\n #size = 0;\n #status: DataSourceStatus = \"initialising\";\n #tableSchema: TableSchema | undefined;\n\n #title: string | undefined;\n\n public table: VuuTable;\n public viewport: string | undefined;\n\n constructor({\n bufferSize = 100,\n aggregations,\n columns,\n filterSpec: filter,\n groupBy,\n sort,\n table,\n title,\n viewport,\n visualLink,\n }: DataSourceConstructorProps) {\n super();\n\n if (!table)\n throw Error(\"RemoteDataSource constructor called without table\");\n\n this.bufferSize = bufferSize;\n this.table = table;\n this.viewport = viewport;\n\n this.#config = {\n ...this.#config,\n aggregations: aggregations || this.#config.aggregations,\n columns: columns || this.#config.columns,\n filterSpec: filter || this.#config.filterSpec,\n groupBy: groupBy || this.#config.groupBy,\n sort: sort || this.#config.sort,\n visualLink: visualLink || this.#config.visualLink,\n };\n\n this.#title = title;\n this.rangeRequest = this.throttleRangeRequest;\n }\n\n async subscribe(\n {\n viewport = this.viewport ?? (this.viewport = uuid()),\n columns,\n aggregations,\n range,\n sort,\n groupBy,\n filterSpec: filter,\n }: SubscribeProps,\n callback: SubscribeCallback\n ) {\n if (this.#status === \"disabled\" || this.#status === \"disabling\") {\n this.enable(callback);\n return;\n }\n this.clientCallback = callback;\n if (aggregations || columns || filter || groupBy || sort) {\n this.#config = {\n ...this.#config,\n aggregations: aggregations || this.#config.aggregations,\n columns: columns || this.#config.columns,\n filterSpec: filter || this.#config.filterSpec,\n groupBy: groupBy || this.#config.groupBy,\n sort: sort || this.#config.sort,\n };\n }\n\n // store the range before we await the server. It's is possible the\n // range will be updated from the client before we have been able to\n // subscribe. This ensures we will subscribe with latest value.\n if (range) {\n this.#range = range;\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.viewport = viewport;\n\n this.server = await getServerAPI();\n\n const { bufferSize } = this;\n\n this.server?.subscribe(\n {\n ...this.#config,\n bufferSize,\n viewport,\n table: this.table,\n range: this.#range,\n title: this.#title,\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 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 }\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.configChangePending) {\n this.setConfigPending();\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 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 = undefined;\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 }\n }\n }\n\n resume() {\n const isDisabled = this.#status.startsWith(\"disabl\");\n const isSuspended = this.#status === \"suspended\";\n info?.(`resume #${this.viewport}, current status ${this.#status}`);\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 }\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 //TODO this isn't always going to be correct - need to count\n // selection block items\n this.#selectedRowsCount = selected.length;\n if (this.viewport) {\n this.server?.send({\n viewport: this.viewport,\n type: \"select\",\n selected,\n });\n }\n }\n\n openTreeNode(key: string) {\n if (this.viewport) {\n this.server?.send({\n viewport: this.viewport,\n type: \"openTreeNode\",\n key,\n });\n }\n }\n\n closeTreeNode(key: string) {\n if (this.viewport) {\n this.server?.send({\n viewport: this.viewport,\n type: \"closeTreeNode\",\n key,\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 get size() {\n return this.#size;\n }\n\n get range() {\n return this.#range;\n }\n\n set range(range: VuuRange) {\n if (range.from !== this.#range.from || range.to !== this.#range.to) {\n this.#range = range;\n this.rangeRequest(range);\n }\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 this.#config;\n }\n\n set config(config: DataSourceConfig) {\n const configChanges = this.applyConfig(config);\n if (configChanges) {\n if (this.#config && this.viewport) {\n if (config) {\n this.server?.send({\n viewport: this.viewport,\n type: \"config\",\n config: this.#config,\n });\n }\n }\n this.emit(\"config\", this.#config, undefined, configChanges);\n }\n }\n\n applyConfig(config: DataSourceConfig): DataSourceConfigChanges | undefined {\n const { noChanges, ...otherChanges } = isConfigChanged(\n this.#config,\n config\n );\n if (noChanges !== true) {\n if (config) {\n const newConfig: DataSourceConfig =\n config?.filterSpec?.filter &&\n config?.filterSpec.filterStruct === undefined\n ? {\n ...config,\n filterSpec: {\n filter: config.filterSpec.filter,\n filterStruct: parseFilter(config.filterSpec.filter),\n },\n }\n : config;\n this.#config = withConfigDefaults(newConfig);\n return otherChanges;\n }\n }\n }\n\n //TODO replace all these individual server calls with calls to setConfig\n get columns() {\n return this.#config.columns;\n }\n\n set columns(columns: string[]) {\n this.#config = {\n ...this.#config,\n columns,\n };\n if (this.viewport) {\n const message = {\n viewport: this.viewport,\n type: \"setColumns\",\n columns,\n } as const;\n if (this.server) {\n this.server.send(message);\n }\n }\n this.emit(\"config\", this.#config);\n }\n\n get aggregations() {\n return this.#config.aggregations;\n }\n\n set aggregations(aggregations: VuuAggregation[]) {\n this.#config = {\n ...this.#config,\n aggregations,\n };\n if (this.viewport) {\n this.server?.send({\n viewport: this.viewport,\n type: \"aggregate\",\n aggregations,\n });\n }\n this.emit(\"config\", this.#config);\n }\n\n get sort() {\n return this.#config.sort;\n }\n\n set sort(sort: VuuSort) {\n // TODO should we wait until server ACK before we assign #sort ?\n this.#config = {\n ...this.#config,\n sort,\n };\n if (this.viewport) {\n const message = {\n viewport: this.viewport,\n type: \"sort\",\n sort,\n } as const;\n this.server?.send(message);\n }\n this.emit(\"config\", this.#config);\n }\n\n get filter() {\n return this.#config.filterSpec;\n }\n\n set filter(filter: DataSourceFilter) {\n this.config = {\n ...this.#config,\n filterSpec: filter,\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.config = {\n ...this.#config,\n groupBy,\n };\n // if (this.viewport) {\n // const message = {\n // viewport: this.viewport,\n // type: \"groupBy\",\n // groupBy: this.#config.groupBy,\n // } as const;\n\n // if (this.server) {\n // this.server.send(message);\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 // this.emit(\"config\", this.#config, undefined, {\n // ...NO_CONFIG_CHANGES,\n // groupByChanged: true,\n // });\n this.setConfigPending({ groupBy });\n }\n }\n\n get title() {\n return this.#title ?? `${this.table.module} ${this.table.table}`;\n }\n\n set title(title: string | undefined) {\n this.#title = title;\n if (this.viewport && title) {\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?.send({\n viewport: this.viewport,\n type: \"createLink\",\n parentClientVpId,\n parentColumnName: toColumn,\n childColumnName: fromColumn,\n });\n }\n } else {\n if (this.viewport) {\n this.server?.send({\n type: \"removeLink\",\n viewport: this.viewport,\n });\n }\n }\n this.emit(\"config\", this.#config);\n }\n\n private setConfigPending(config?: DataSourceConfig) {\n const pendingConfig = this.configChangePending;\n this.configChangePending = config;\n\n if (config !== undefined) {\n this.emit(\"config\", config, false);\n } else {\n this.emit(\"config\", pendingConfig, true);\n }\n }\n\n async rpcCall<T extends RpcResponse = RpcResponse>(\n rpcRequest: Omit<ClientToServerViewportRpcCall, \"vpId\">\n ) {\n if (this.viewport) {\n return this.server?.rpcCall<T>({\n vpId: this.viewport,\n ...rpcRequest,\n } as ClientToServerViewportRpcCall);\n }\n }\n\n async menuRpcCall(\n rpcRequest: Omit<ClientToServerMenuRPC, \"vpId\"> | ClientToServerEditRpc\n ) {\n if (this.viewport) {\n return this.server?.rpcCall<MenuRpcResponse>({\n vpId: this.viewport,\n ...rpcRequest,\n } as ClientToServerMenuRPC);\n }\n }\n\n applyEdit(row: DataSourceRow, columnName: string, value: VuuRowDataItemType) {\n return this.menuRpcCall({\n rowKey: row[KEY],\n field: columnName,\n value: value,\n type: \"VP_EDIT_CELL_RPC\",\n }).then((response) => {\n if (response?.error) {\n return response.error;\n } else {\n return true;\n }\n });\n }\n\n insertRow(key: string, data: VuuDataRowDto) {\n return this.menuRpcCall({\n rowKey: key,\n data,\n type: \"VP_EDIT_ADD_ROW_RPC\",\n }).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({\n rowKey,\n type: \"VP_EDIT_DELETE_ROW_RPC\",\n }).then((response) => {\n if (response?.error) {\n return response.error;\n } else {\n return true;\n }\n });\n }\n}\n"],"names":["logger","metadataKeys","EventEmitter","vanillaConfig","isDataSourceConfigMessage","isViewportMenusAction","isVisualLinksAction","debounce","throttle","uuid","getServerAPI","isConfigChanged","parseFilter","withConfigDefaults","itemsOrOrderChanged"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,KAAA,EAAA,SAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,YAAA,EAAA,MAAA,CAAA;AAuDA,MAAM,EAAE,IAAA,EAAS,GAAAA,eAAA,CAAO,eAAe,CAAA,CAAA;AAEvC,MAAM,EAAE,KAAQ,GAAAC,qBAAA,CAAA;AAKT,MAAM,sBACHC,qBAEV,CAAA;AAAA,EAwBE,WAAY,CAAA;AAAA,IACV,UAAa,GAAA,GAAA;AAAA,IACb,YAAA;AAAA,IACA,OAAA;AAAA,IACA,UAAY,EAAA,MAAA;AAAA,IACZ,OAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,GAC6B,EAAA;AAC7B,IAAM,KAAA,EAAA,CAAA;AAlCR,IAAA,IAAA,CAAQ,MAA2B,GAAA,IAAA,CAAA;AAKnC,IACE,YAAA,CAAA,IAAA,EAAA,OAAA,EAAAC,sBAAA,CAAA,CAAA;AACF,IAAA,YAAA,CAAA,IAAA,EAAA,QAAA,EAAuB,EAAC,CAAA,CAAA;AACxB,IAAA,YAAA,CAAA,IAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACA,IAAA,YAAA,CAAA,IAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AACA,IAA8B,YAAA,CAAA,IAAA,EAAA,SAAA,EAAA,UAAA,CAAA,CAAA;AAC9B,IAAA,YAAA,CAAA,IAAA,EAAA,MAAA,EAAmB,EAAE,IAAA,EAAM,CAAG,EAAA,EAAA,EAAI,CAAE,EAAA,CAAA,CAAA;AACpC,IAAqB,YAAA,CAAA,IAAA,EAAA,kBAAA,EAAA,CAAA,CAAA,CAAA;AACrB,IAAQ,YAAA,CAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;AACR,IAA4B,YAAA,CAAA,IAAA,EAAA,OAAA,EAAA,cAAA,CAAA,CAAA;AAC5B,IAAA,YAAA,CAAA,IAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAEA,IAAA,YAAA,CAAA,IAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAyGA,IAAA,IAAA,CAAA,uBAAA,GAA0B,CAAC,OAAuC,KAAA;AAChE,MAAI,IAAA,OAAA,CAAQ,SAAS,YAAc,EAAA;AACjC,QAAA,YAAA,CAAA,IAAA,EAAK,OAAU,EAAA,YAAA,CAAA,CAAA;AACf,QAAA,IAAA,CAAK,cAAc,OAAQ,CAAA,WAAA,CAAA;AAC3B,QAAA,IAAA,CAAK,iBAAiB,OAAO,CAAA,CAAA;AAC7B,QAAK,IAAA,CAAA,IAAA,CAAK,cAAc,OAAO,CAAA,CAAA;AAAA,OACjC,MAAA,IAAW,OAAQ,CAAA,IAAA,KAAS,UAAY,EAAA;AACtC,QAAA,YAAA,CAAA,IAAA,EAAK,OAAU,EAAA,UAAA,CAAA,CAAA;AAAA,OACjB,MAAA,IAAW,OAAQ,CAAA,IAAA,KAAS,SAAW,EAAA;AACrC,QAAA,YAAA,CAAA,IAAA,EAAK,OAAU,EAAA,SAAA,CAAA,CAAA;AAAA,OACjB,MAAA,IAAWC,oCAA0B,CAAA,OAAO,CAAG,EAAA;AAI7C,QAAA,OAAA;AAAA,OACF,MAAA,IAAW,OAAQ,CAAA,IAAA,KAAS,gBAAkB,EAAA;AAC5C,QAAA,IAAA,CAAK,QAAW,GAAA,UAAA,CAAA;AAAA,OACX,MAAA;AACL,QACE,IAAA,OAAA,CAAQ,SAAS,iBACjB,IAAA,OAAA,CAAQ,SAAS,KACjB,CAAA,IAAA,OAAA,CAAQ,IAAS,KAAA,YAAA,CAAA,IAAA,EAAK,KACtB,CAAA,EAAA;AACA,UAAA,YAAA,CAAA,IAAA,EAAK,OAAQ,OAAQ,CAAA,IAAA,CAAA,CAAA;AACrB,UAAK,IAAA,CAAA,IAAA,CAAK,QAAU,EAAA,OAAA,CAAQ,IAAI,CAAA,CAAA;AAAA,SAClC;AAKA,QAAA,IAAI,KAAK,mBAAqB,EAAA;AAC5B,UAAA,IAAA,CAAK,gBAAiB,EAAA,CAAA;AAAA,SACxB;AAEA,QAAI,IAAAC,8BAAA,CAAsB,OAAO,CAAG,EAAA;AAClC,UAAA,YAAA,CAAA,IAAA,EAAK,OAAQ,OAAQ,CAAA,IAAA,CAAA,CAAA;AAAA,SACvB,MAAA,IAAWC,4BAAoB,CAAA,OAAO,CAAG,EAAA;AACvC,UAAA,YAAA,CAAA,IAAA,EAAK,QAAS,OAAQ,CAAA,KAAA,CAAA,CAAA;AAAA,SACjB,MAAA;AACL,UAAA,IAAA,CAAK,iBAAiB,OAAO,CAAA,CAAA;AAAA,SAC/B;AAEA,QAAI,IAAA,IAAA,CAAK,aAAa,UAAY,EAAA;AAChC,UAAA,IAAA,CAAK,cAAe,EAAA,CAAA;AAAA,SACtB;AAAA,OACF;AAAA,KACF,CAAA;AA0JA,IAAQ,IAAA,CAAA,cAAA,GAAiBC,kBAAS,MAAM;AACtC,MAAA,IAAA,CAAK,QAAW,GAAA,UAAA,CAAA;AAAA,OACf,GAAG,CAAA,CAAA;AAqBN,IAAQ,IAAA,CAAA,eAAA,GAAgC,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,KAAA;AAAA,SACD,CAAA,CAAA;AAAA,OACH;AAAA,KACF,CAAA;AAEA,IAAQ,IAAA,CAAA,oBAAA,GAAqCA,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,KAAA;AAAA,SACD,CAAA,CAAA;AAAA,OACH;AAAA,OACC,EAAE,CAAA,CAAA;AAEL,IAAQ,IAAA,CAAA,oBAAA,GAAqCC,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,KAAA;AAAA,SACD,CAAA,CAAA;AAAA,OACH;AAAA,OACC,EAAE,CAAA,CAAA;AAjVH,IAAA,IAAI,CAAC,KAAA;AACH,MAAA,MAAM,MAAM,mDAAmD,CAAA,CAAA;AAEjE,IAAA,IAAA,CAAK,UAAa,GAAA,UAAA,CAAA;AAClB,IAAA,IAAA,CAAK,KAAQ,GAAA,KAAA,CAAA;AACb,IAAA,IAAA,CAAK,QAAW,GAAA,QAAA,CAAA;AAEhB,IAAA,YAAA,CAAA,IAAA,EAAK,OAAU,EAAA;AAAA,MACb,GAAG,YAAK,CAAA,IAAA,EAAA,OAAA,CAAA;AAAA,MACR,YAAA,EAAc,YAAgB,IAAA,YAAA,CAAA,IAAA,EAAK,OAAQ,CAAA,CAAA,YAAA;AAAA,MAC3C,OAAA,EAAS,OAAW,IAAA,YAAA,CAAA,IAAA,EAAK,OAAQ,CAAA,CAAA,OAAA;AAAA,MACjC,UAAA,EAAY,MAAU,IAAA,YAAA,CAAA,IAAA,EAAK,OAAQ,CAAA,CAAA,UAAA;AAAA,MACnC,OAAA,EAAS,OAAW,IAAA,YAAA,CAAA,IAAA,EAAK,OAAQ,CAAA,CAAA,OAAA;AAAA,MACjC,IAAA,EAAM,IAAQ,IAAA,YAAA,CAAA,IAAA,EAAK,OAAQ,CAAA,CAAA,IAAA;AAAA,MAC3B,UAAA,EAAY,UAAc,IAAA,YAAA,CAAA,IAAA,EAAK,OAAQ,CAAA,CAAA,UAAA;AAAA,KACzC,CAAA,CAAA;AAEA,IAAA,YAAA,CAAA,IAAA,EAAK,MAAS,EAAA,KAAA,CAAA,CAAA;AACd,IAAA,IAAA,CAAK,eAAe,IAAK,CAAA,oBAAA,CAAA;AAAA,GAC3B;AAAA,EAEA,MAAM,SACJ,CAAA;AAAA,IACE,QAAW,GAAA,IAAA,CAAK,QAAa,KAAA,IAAA,CAAK,WAAWC,aAAK,EAAA,CAAA;AAAA,IAClD,OAAA;AAAA,IACA,YAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,OAAA;AAAA,IACA,UAAY,EAAA,MAAA;AAAA,KAEd,QACA,EAAA;AACA,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,CAAA;AACpB,MAAA,OAAA;AAAA,KACF;AACA,IAAA,IAAA,CAAK,cAAiB,GAAA,QAAA,CAAA;AACtB,IAAA,IAAI,YAAgB,IAAA,OAAA,IAAW,MAAU,IAAA,OAAA,IAAW,IAAM,EAAA;AACxD,MAAA,YAAA,CAAA,IAAA,EAAK,OAAU,EAAA;AAAA,QACb,GAAG,YAAK,CAAA,IAAA,EAAA,OAAA,CAAA;AAAA,QACR,YAAA,EAAc,YAAgB,IAAA,YAAA,CAAA,IAAA,EAAK,OAAQ,CAAA,CAAA,YAAA;AAAA,QAC3C,OAAA,EAAS,OAAW,IAAA,YAAA,CAAA,IAAA,EAAK,OAAQ,CAAA,CAAA,OAAA;AAAA,QACjC,UAAA,EAAY,MAAU,IAAA,YAAA,CAAA,IAAA,EAAK,OAAQ,CAAA,CAAA,UAAA;AAAA,QACnC,OAAA,EAAS,OAAW,IAAA,YAAA,CAAA,IAAA,EAAK,OAAQ,CAAA,CAAA,OAAA;AAAA,QACjC,IAAA,EAAM,IAAQ,IAAA,YAAA,CAAA,IAAA,EAAK,OAAQ,CAAA,CAAA,IAAA;AAAA,OAC7B,CAAA,CAAA;AAAA,KACF;AAKA,IAAA,IAAI,KAAO,EAAA;AACT,MAAA,YAAA,CAAA,IAAA,EAAK,MAAS,EAAA,KAAA,CAAA,CAAA;AAAA,KAChB;AAEA,IAAA,IACE,YAAK,CAAA,IAAA,EAAA,OAAA,CAAA,KAAY,cACjB,IAAA,YAAA,CAAA,IAAA,EAAK,aAAY,cAIjB,EAAA;AACA,MAAA,OAAA;AAAA,KACF;AAEA,IAAA,YAAA,CAAA,IAAA,EAAK,OAAU,EAAA,aAAA,CAAA,CAAA;AACf,IAAA,IAAA,CAAK,QAAW,GAAA,QAAA,CAAA;AAEhB,IAAK,IAAA,CAAA,MAAA,GAAS,MAAMC,8BAAa,EAAA,CAAA;AAEjC,IAAM,MAAA,EAAE,YAAe,GAAA,IAAA,CAAA;AAEvB,IAAA,IAAA,CAAK,MAAQ,EAAA,SAAA;AAAA,MACX;AAAA,QACE,GAAG,YAAK,CAAA,IAAA,EAAA,OAAA,CAAA;AAAA,QACR,UAAA;AAAA,QACA,QAAA;AAAA,QACA,OAAO,IAAK,CAAA,KAAA;AAAA,QACZ,OAAO,YAAK,CAAA,IAAA,EAAA,MAAA,CAAA;AAAA,QACZ,OAAO,YAAK,CAAA,IAAA,EAAA,MAAA,CAAA;AAAA,OACd;AAAA,MACA,IAAK,CAAA,uBAAA;AAAA,KACP,CAAA;AAAA,GACF;AAAA,EAkDA,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,CAAA;AACtC,MAAA,IAAI,KAAK,QAAU,EAAA;AACjB,QAAK,IAAA,CAAA,MAAA,EAAQ,WAAY,CAAA,IAAA,CAAK,QAAQ,CAAA,CAAA;AACtC,QAAK,IAAA,CAAA,IAAA,CAAK,cAAgB,EAAA,IAAA,CAAK,QAAQ,CAAA,CAAA;AAAA,OACzC;AACA,MAAK,IAAA,CAAA,MAAA,EAAQ,OAAQ,CAAA,IAAA,CAAK,QAAQ,CAAA,CAAA;AAClC,MAAA,IAAA,CAAK,MAAS,GAAA,IAAA,CAAA;AACd,MAAA,IAAA,CAAK,kBAAmB,EAAA,CAAA;AACxB,MAAA,YAAA,CAAA,IAAA,EAAK,OAAU,EAAA,cAAA,CAAA,CAAA;AACf,MAAA,IAAA,CAAK,QAAW,GAAA,KAAA,CAAA,CAAA;AAChB,MAAA,IAAA,CAAK,KAAQ,GAAA,EAAE,IAAM,EAAA,CAAA,EAAG,IAAI,CAAE,EAAA,CAAA;AAAA,KAChC;AAAA,GACF;AAAA,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,CAAA;AAClE,MAAA,IAAI,KAAK,QAAU,EAAA;AACjB,QAAA,YAAA,CAAA,IAAA,EAAK,OAAU,EAAA,WAAA,CAAA,CAAA;AACf,QAAA,IAAA,CAAK,QAAQ,IAAK,CAAA;AAAA,UAChB,IAAM,EAAA,SAAA;AAAA,UACN,UAAU,IAAK,CAAA,QAAA;AAAA,SAChB,CAAA,CAAA;AAAA,OACH;AAAA,KACF;AAAA,GACF;AAAA,EAEA,MAAS,GAAA;AACP,IAAA,MAAM,UAAa,GAAA,YAAA,CAAA,IAAA,EAAK,OAAQ,CAAA,CAAA,UAAA,CAAW,QAAQ,CAAA,CAAA;AACnD,IAAM,MAAA,WAAA,GAAc,mBAAK,OAAY,CAAA,KAAA,WAAA,CAAA;AACrC,IAAA,IAAA,GAAO,WAAW,IAAK,CAAA,QAAQ,CAAoB,iBAAA,EAAA,YAAA,CAAA,IAAA,EAAK,QAAO,CAAE,CAAA,CAAA,CAAA;AACjE,IAAA,IAAI,KAAK,QAAU,EAAA;AACjB,MAAA,IAAI,UAAY,EAAA;AACd,QAAA,IAAA,CAAK,MAAO,EAAA,CAAA;AAAA,iBACH,WAAa,EAAA;AACtB,QAAA,IAAA,CAAK,QAAQ,IAAK,CAAA;AAAA,UAChB,IAAM,EAAA,QAAA;AAAA,UACN,UAAU,IAAK,CAAA,QAAA;AAAA,SAChB,CAAA,CAAA;AACD,QAAA,YAAA,CAAA,IAAA,EAAK,OAAU,EAAA,YAAA,CAAA,CAAA;AAAA,OACjB;AAAA,KACF;AAAA,GACF;AAAA,EAEA,OAAU,GAAA;AACR,IAAA,IAAA,GAAO,YAAY,IAAK,CAAA,QAAQ,CAAoB,iBAAA,EAAA,YAAA,CAAA,IAAA,EAAK,QAAO,CAAE,CAAA,CAAA,CAAA;AAClE,IAAA,IAAI,KAAK,QAAU,EAAA;AACjB,MAAA,YAAA,CAAA,IAAA,EAAK,OAAU,EAAA,WAAA,CAAA,CAAA;AACf,MAAA,IAAA,CAAK,QAAQ,IAAK,CAAA;AAAA,QAChB,UAAU,IAAK,CAAA,QAAA;AAAA,QACf,IAAM,EAAA,SAAA;AAAA,OACP,CAAA,CAAA;AACD,MAAK,IAAA,CAAA,IAAA,CAAK,UAAY,EAAA,IAAA,CAAK,QAAQ,CAAA,CAAA;AAAA,KACrC;AAAA,GACF;AAAA,EAEA,OAAO,QAA8B,EAAA;AACnC,IAAA,IAAA,GAAO,WAAW,IAAK,CAAA,QAAQ,CAAoB,iBAAA,EAAA,YAAA,CAAA,IAAA,EAAK,QAAO,CAAE,CAAA,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,CAAA;AACf,MAAA,IAAI,QAAU,EAAA;AACZ,QAAA,IAAA,CAAK,cAAiB,GAAA,QAAA,CAAA;AAAA,OACxB;AACA,MAAA,IAAA,CAAK,QAAQ,IAAK,CAAA;AAAA,QAChB,UAAU,IAAK,CAAA,QAAA;AAAA,QACf,IAAM,EAAA,QAAA;AAAA,OACP,CAAA,CAAA;AACD,MAAK,IAAA,CAAA,IAAA,CAAK,SAAW,EAAA,IAAA,CAAK,QAAQ,CAAA,CAAA;AAAA,KACpC;AAAA,GACF;AAAA,EAEA,OAAO,QAAqB,EAAA;AAG1B,IAAA,YAAA,CAAA,IAAA,EAAK,oBAAqB,QAAS,CAAA,MAAA,CAAA,CAAA;AACnC,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,QAAA;AAAA,OACD,CAAA,CAAA;AAAA,KACH;AAAA,GACF;AAAA,EAEA,aAAa,GAAa,EAAA;AACxB,IAAA,IAAI,KAAK,QAAU,EAAA;AACjB,MAAA,IAAA,CAAK,QAAQ,IAAK,CAAA;AAAA,QAChB,UAAU,IAAK,CAAA,QAAA;AAAA,QACf,IAAM,EAAA,cAAA;AAAA,QACN,GAAA;AAAA,OACD,CAAA,CAAA;AAAA,KACH;AAAA,GACF;AAAA,EAEA,cAAc,GAAa,EAAA;AACzB,IAAA,IAAI,KAAK,QAAU,EAAA;AACjB,MAAA,IAAA,CAAK,QAAQ,IAAK,CAAA;AAAA,QAChB,UAAU,IAAK,CAAA,QAAA;AAAA,QACf,IAAM,EAAA,eAAA;AAAA,QACN,GAAA;AAAA,OACD,CAAA,CAAA;AAAA,KACH;AAAA,GACF;AAAA,EAEA,IAAI,WAAc,GAAA;AAChB,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,YAAA,CAAA,CAAA;AAAA,GACd;AAAA,EAEA,IAAI,YAAY,WAAsC,EAAA;AACpD,IAAA,YAAA,CAAA,IAAA,EAAK,YAAe,EAAA,WAAA,CAAA,CAAA;AAAA,GAEtB;AAAA,EAEA,IAAI,KAAQ,GAAA;AACV,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;AAAA,GACd;AAAA,EAEA,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AAAA,GACd;AAAA,EAEA,IAAI,MAAS,GAAA;AACX,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,OAAA,CAAA,CAAA;AAAA,GACd;AAAA,EAEA,IAAI,QAAW,GAAA;AACb,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,SAAA,CAAA,CAAA;AAAA,GACd;AAAA,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,CAAA;AACjB,MAAA,QAAQ,QAAU;AAAA,QAChB,KAAK,MAAA;AACH,UAAA,IAAA,CAAK,eAAe,IAAK,CAAA,eAAA,CAAA;AACzB,UAAA,MAAA;AAAA,QACF,KAAK,UAAA;AACH,UAAA,IAAA,CAAK,eAAe,IAAK,CAAA,oBAAA,CAAA;AACzB,UAAA,MAAA;AAAA,QACF,KAAK,UAAA;AACH,UAAA,IAAA,CAAK,eAAe,IAAK,CAAA,oBAAA,CAAA;AACzB,UAAA,MAAA;AAAA,OACJ;AACA,MAAK,IAAA,CAAA,IAAA,CAAK,YAAY,QAAQ,CAAA,CAAA;AAAA,KAChC;AAAA,GACF;AAAA,EAMA,IAAI,iBAAoB,GAAA;AACtB,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,kBAAA,CAAA,CAAA;AAAA,GACd;AAAA,EAEA,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AAAA,GACd;AAAA,EAEA,IAAI,KAAQ,GAAA;AACV,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;AAAA,GACd;AAAA,EAEA,IAAI,MAAM,KAAiB,EAAA;AACzB,IAAI,IAAA,KAAA,CAAM,SAAS,YAAK,CAAA,IAAA,EAAA,MAAA,CAAA,CAAO,QAAQ,KAAM,CAAA,EAAA,KAAO,YAAK,CAAA,IAAA,EAAA,MAAA,CAAA,CAAO,EAAI,EAAA;AAClE,MAAA,YAAA,CAAA,IAAA,EAAK,MAAS,EAAA,KAAA,CAAA,CAAA;AACd,MAAA,IAAA,CAAK,aAAa,KAAK,CAAA,CAAA;AAAA,KACzB;AAAA,GACF;AAAA,EAgCA,IAAI,MAAS,GAAA;AACX,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,OAAA,CAAA,CAAA;AAAA,GACd;AAAA,EAEA,IAAI,OAAO,MAA0B,EAAA;AACnC,IAAM,MAAA,aAAA,GAAgB,IAAK,CAAA,WAAA,CAAY,MAAM,CAAA,CAAA;AAC7C,IAAA,IAAI,aAAe,EAAA;AACjB,MAAI,IAAA,YAAA,CAAA,IAAA,EAAK,OAAW,CAAA,IAAA,IAAA,CAAK,QAAU,EAAA;AACjC,QAAA,IAAI,MAAQ,EAAA;AACV,UAAA,IAAA,CAAK,QAAQ,IAAK,CAAA;AAAA,YAChB,UAAU,IAAK,CAAA,QAAA;AAAA,YACf,IAAM,EAAA,QAAA;AAAA,YACN,QAAQ,YAAK,CAAA,IAAA,EAAA,OAAA,CAAA;AAAA,WACd,CAAA,CAAA;AAAA,SACH;AAAA,OACF;AACA,MAAA,IAAA,CAAK,IAAK,CAAA,QAAA,EAAU,YAAK,CAAA,IAAA,EAAA,OAAA,CAAA,EAAS,QAAW,aAAa,CAAA,CAAA;AAAA,KAC5D;AAAA,GACF;AAAA,EAEA,YAAY,MAA+D,EAAA;AACzE,IAAA,MAAM,EAAE,SAAA,EAAW,GAAG,YAAA,EAAiB,GAAAC,wBAAA;AAAA,MACrC,YAAK,CAAA,IAAA,EAAA,OAAA,CAAA;AAAA,MACL,MAAA;AAAA,KACF,CAAA;AACA,IAAA,IAAI,cAAc,IAAM,EAAA;AACtB,MAAA,IAAI,MAAQ,EAAA;AACV,QAAA,MAAM,YACJ,MAAQ,EAAA,UAAA,EAAY,UACpB,MAAQ,EAAA,UAAA,CAAW,iBAAiB,KAChC,CAAA,GAAA;AAAA,UACE,GAAG,MAAA;AAAA,UACH,UAAY,EAAA;AAAA,YACV,MAAA,EAAQ,OAAO,UAAW,CAAA,MAAA;AAAA,YAC1B,YAAc,EAAAC,2BAAA,CAAY,MAAO,CAAA,UAAA,CAAW,MAAM,CAAA;AAAA,WACpD;AAAA,SAEF,GAAA,MAAA,CAAA;AACN,QAAK,YAAA,CAAA,IAAA,EAAA,OAAA,EAAUC,4BAAmB,SAAS,CAAA,CAAA,CAAA;AAC3C,QAAO,OAAA,YAAA,CAAA;AAAA,OACT;AAAA,KACF;AAAA,GACF;AAAA;AAAA,EAGA,IAAI,OAAU,GAAA;AACZ,IAAA,OAAO,mBAAK,OAAQ,CAAA,CAAA,OAAA,CAAA;AAAA,GACtB;AAAA,EAEA,IAAI,QAAQ,OAAmB,EAAA;AAC7B,IAAA,YAAA,CAAA,IAAA,EAAK,OAAU,EAAA;AAAA,MACb,GAAG,YAAK,CAAA,IAAA,EAAA,OAAA,CAAA;AAAA,MACR,OAAA;AAAA,KACF,CAAA,CAAA;AACA,IAAA,IAAI,KAAK,QAAU,EAAA;AACjB,MAAA,MAAM,OAAU,GAAA;AAAA,QACd,UAAU,IAAK,CAAA,QAAA;AAAA,QACf,IAAM,EAAA,YAAA;AAAA,QACN,OAAA;AAAA,OACF,CAAA;AACA,MAAA,IAAI,KAAK,MAAQ,EAAA;AACf,QAAK,IAAA,CAAA,MAAA,CAAO,KAAK,OAAO,CAAA,CAAA;AAAA,OAC1B;AAAA,KACF;AACA,IAAK,IAAA,CAAA,IAAA,CAAK,QAAU,EAAA,YAAA,CAAA,IAAA,EAAK,OAAO,CAAA,CAAA,CAAA;AAAA,GAClC;AAAA,EAEA,IAAI,YAAe,GAAA;AACjB,IAAA,OAAO,mBAAK,OAAQ,CAAA,CAAA,YAAA,CAAA;AAAA,GACtB;AAAA,EAEA,IAAI,aAAa,YAAgC,EAAA;AAC/C,IAAA,YAAA,CAAA,IAAA,EAAK,OAAU,EAAA;AAAA,MACb,GAAG,YAAK,CAAA,IAAA,EAAA,OAAA,CAAA;AAAA,MACR,YAAA;AAAA,KACF,CAAA,CAAA;AACA,IAAA,IAAI,KAAK,QAAU,EAAA;AACjB,MAAA,IAAA,CAAK,QAAQ,IAAK,CAAA;AAAA,QAChB,UAAU,IAAK,CAAA,QAAA;AAAA,QACf,IAAM,EAAA,WAAA;AAAA,QACN,YAAA;AAAA,OACD,CAAA,CAAA;AAAA,KACH;AACA,IAAK,IAAA,CAAA,IAAA,CAAK,QAAU,EAAA,YAAA,CAAA,IAAA,EAAK,OAAO,CAAA,CAAA,CAAA;AAAA,GAClC;AAAA,EAEA,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,mBAAK,OAAQ,CAAA,CAAA,IAAA,CAAA;AAAA,GACtB;AAAA,EAEA,IAAI,KAAK,IAAe,EAAA;AAEtB,IAAA,YAAA,CAAA,IAAA,EAAK,OAAU,EAAA;AAAA,MACb,GAAG,YAAK,CAAA,IAAA,EAAA,OAAA,CAAA;AAAA,MACR,IAAA;AAAA,KACF,CAAA,CAAA;AACA,IAAA,IAAI,KAAK,QAAU,EAAA;AACjB,MAAA,MAAM,OAAU,GAAA;AAAA,QACd,UAAU,IAAK,CAAA,QAAA;AAAA,QACf,IAAM,EAAA,MAAA;AAAA,QACN,IAAA;AAAA,OACF,CAAA;AACA,MAAK,IAAA,CAAA,MAAA,EAAQ,KAAK,OAAO,CAAA,CAAA;AAAA,KAC3B;AACA,IAAK,IAAA,CAAA,IAAA,CAAK,QAAU,EAAA,YAAA,CAAA,IAAA,EAAK,OAAO,CAAA,CAAA,CAAA;AAAA,GAClC;AAAA,EAEA,IAAI,MAAS,GAAA;AACX,IAAA,OAAO,mBAAK,OAAQ,CAAA,CAAA,UAAA,CAAA;AAAA,GACtB;AAAA,EAEA,IAAI,OAAO,MAA0B,EAAA;AACnC,IAAA,IAAA,CAAK,MAAS,GAAA;AAAA,MACZ,GAAG,YAAK,CAAA,IAAA,EAAA,OAAA,CAAA;AAAA,MACR,UAAY,EAAA,MAAA;AAAA,KACd,CAAA;AAAA,GACF;AAAA,EAEA,IAAI,OAAU,GAAA;AACZ,IAAA,OAAO,mBAAK,OAAQ,CAAA,CAAA,OAAA,CAAA;AAAA,GACtB;AAAA,EAEA,IAAI,QAAQ,OAAqB,EAAA;AAC/B,IAAA,IAAIC,4BAAoB,CAAA,IAAA,CAAK,OAAS,EAAA,OAAO,CAAG,EAAA;AAC9C,MAAM,MAAA,UAAA,GAAa,YAAK,CAAA,IAAA,EAAA,QAAA,CAAA,CAAS,MAAS,GAAA,CAAA,CAAA;AAE1C,MAAA,IAAA,CAAK,MAAS,GAAA;AAAA,QACZ,GAAG,YAAK,CAAA,IAAA,EAAA,OAAA,CAAA;AAAA,QACR,OAAA;AAAA,OACF,CAAA;AAYA,MAAA,IAAI,CAAC,UAAc,IAAA,OAAA,CAAQ,MAAS,GAAA,CAAA,IAAK,KAAK,QAAU,EAAA;AACtD,QAAA,IAAA,CAAK,cAAiB,GAAA;AAAA,UACpB,kBAAkB,IAAK,CAAA,QAAA;AAAA,UACvB,IAAM,EAAA,OAAA;AAAA,UACN,IAAM,EAAA,iBAAA;AAAA,UACN,IAAM,EAAA,CAAA;AAAA,UACN,MAAM,EAAC;AAAA,SACR,CAAA,CAAA;AAAA,OACH;AAKA,MAAK,IAAA,CAAA,gBAAA,CAAiB,EAAE,OAAA,EAAS,CAAA,CAAA;AAAA,KACnC;AAAA,GACF;AAAA,EAEA,IAAI,KAAQ,GAAA;AACV,IAAO,OAAA,YAAA,CAAA,IAAA,EAAK,WAAU,CAAG,EAAA,IAAA,CAAK,MAAM,MAAM,CAAA,CAAA,EAAI,IAAK,CAAA,KAAA,CAAM,KAAK,CAAA,CAAA,CAAA;AAAA,GAChE;AAAA,EAEA,IAAI,MAAM,KAA2B,EAAA;AACnC,IAAA,YAAA,CAAA,IAAA,EAAK,MAAS,EAAA,KAAA,CAAA,CAAA;AACd,IAAI,IAAA,IAAA,CAAK,YAAY,KAAO,EAAA;AAC1B,MAAA,IAAA,CAAK,QAAQ,IAAK,CAAA;AAAA,QAChB,IAAM,EAAA,UAAA;AAAA,QACN,KAAA;AAAA,QACA,UAAU,IAAK,CAAA,QAAA;AAAA,OAChB,CAAA,CAAA;AAAA,KACH;AAAA,GACF;AAAA,EAEA,IAAI,UAAa,GAAA;AACf,IAAA,OAAO,mBAAK,OAAQ,CAAA,CAAA,UAAA,CAAA;AAAA,GACtB;AAAA,EAEA,IAAI,WAAW,UAAiD,EAAA;AAC9D,IAAA,YAAA,CAAA,IAAA,EAAK,OAAU,EAAA;AAAA,MACb,GAAG,YAAK,CAAA,IAAA,EAAA,OAAA,CAAA;AAAA,MACR,UAAA;AAAA,KACF,CAAA,CAAA;AAEA,IAAA,IAAI,UAAY,EAAA;AACd,MAAM,MAAA;AAAA,QACJ,gBAAA;AAAA,QACA,IAAA,EAAM,EAAE,UAAA,EAAY,QAAS,EAAA;AAAA,OAC3B,GAAA,UAAA,CAAA;AAEJ,MAAA,IAAI,KAAK,QAAU,EAAA;AACjB,QAAA,IAAA,CAAK,QAAQ,IAAK,CAAA;AAAA,UAChB,UAAU,IAAK,CAAA,QAAA;AAAA,UACf,IAAM,EAAA,YAAA;AAAA,UACN,gBAAA;AAAA,UACA,gBAAkB,EAAA,QAAA;AAAA,UAClB,eAAiB,EAAA,UAAA;AAAA,SAClB,CAAA,CAAA;AAAA,OACH;AAAA,KACK,MAAA;AACL,MAAA,IAAI,KAAK,QAAU,EAAA;AACjB,QAAA,IAAA,CAAK,QAAQ,IAAK,CAAA;AAAA,UAChB,IAAM,EAAA,YAAA;AAAA,UACN,UAAU,IAAK,CAAA,QAAA;AAAA,SAChB,CAAA,CAAA;AAAA,OACH;AAAA,KACF;AACA,IAAK,IAAA,CAAA,IAAA,CAAK,QAAU,EAAA,YAAA,CAAA,IAAA,EAAK,OAAO,CAAA,CAAA,CAAA;AAAA,GAClC;AAAA,EAEQ,iBAAiB,MAA2B,EAAA;AAClD,IAAA,MAAM,gBAAgB,IAAK,CAAA,mBAAA,CAAA;AAC3B,IAAA,IAAA,CAAK,mBAAsB,GAAA,MAAA,CAAA;AAE3B,IAAA,IAAI,WAAW,KAAW,CAAA,EAAA;AACxB,MAAK,IAAA,CAAA,IAAA,CAAK,QAAU,EAAA,MAAA,EAAQ,KAAK,CAAA,CAAA;AAAA,KAC5B,MAAA;AACL,MAAK,IAAA,CAAA,IAAA,CAAK,QAAU,EAAA,aAAA,EAAe,IAAI,CAAA,CAAA;AAAA,KACzC;AAAA,GACF;AAAA,EAEA,MAAM,QACJ,UACA,EAAA;AACA,IAAA,IAAI,KAAK,QAAU,EAAA;AACjB,MAAO,OAAA,IAAA,CAAK,QAAQ,OAAW,CAAA;AAAA,QAC7B,MAAM,IAAK,CAAA,QAAA;AAAA,QACX,GAAG,UAAA;AAAA,OAC6B,CAAA,CAAA;AAAA,KACpC;AAAA,GACF;AAAA,EAEA,MAAM,YACJ,UACA,EAAA;AACA,IAAA,IAAI,KAAK,QAAU,EAAA;AACjB,MAAO,OAAA,IAAA,CAAK,QAAQ,OAAyB,CAAA;AAAA,QAC3C,MAAM,IAAK,CAAA,QAAA;AAAA,QACX,GAAG,UAAA;AAAA,OACqB,CAAA,CAAA;AAAA,KAC5B;AAAA,GACF;AAAA,EAEA,SAAA,CAAU,GAAoB,EAAA,UAAA,EAAoB,KAA2B,EAAA;AAC3E,IAAA,OAAO,KAAK,WAAY,CAAA;AAAA,MACtB,MAAA,EAAQ,IAAI,GAAG,CAAA;AAAA,MACf,KAAO,EAAA,UAAA;AAAA,MACP,KAAA;AAAA,MACA,IAAM,EAAA,kBAAA;AAAA,KACP,CAAA,CAAE,IAAK,CAAA,CAAC,QAAa,KAAA;AACpB,MAAA,IAAI,UAAU,KAAO,EAAA;AACnB,QAAA,OAAO,QAAS,CAAA,KAAA,CAAA;AAAA,OACX,MAAA;AACL,QAAO,OAAA,IAAA,CAAA;AAAA,OACT;AAAA,KACD,CAAA,CAAA;AAAA,GACH;AAAA,EAEA,SAAA,CAAU,KAAa,IAAqB,EAAA;AAC1C,IAAA,OAAO,KAAK,WAAY,CAAA;AAAA,MACtB,MAAQ,EAAA,GAAA;AAAA,MACR,IAAA;AAAA,MACA,IAAM,EAAA,qBAAA;AAAA,KACP,CAAA,CAAE,IAAK,CAAA,CAAC,QAAa,KAAA;AACpB,MAAA,IAAI,UAAU,KAAO,EAAA;AACnB,QAAA,OAAO,QAAS,CAAA,KAAA,CAAA;AAAA,OACX,MAAA;AACL,QAAO,OAAA,IAAA,CAAA;AAAA,OACT;AAAA,KACD,CAAA,CAAA;AAAA,GACH;AAAA,EACA,UAAU,MAAgB,EAAA;AACxB,IAAA,OAAO,KAAK,WAAY,CAAA;AAAA,MACtB,MAAA;AAAA,MACA,IAAM,EAAA,wBAAA;AAAA,KACP,CAAA,CAAE,IAAK,CAAA,CAAC,QAAa,KAAA;AACpB,MAAA,IAAI,UAAU,KAAO,EAAA;AACnB,QAAA,OAAO,QAAS,CAAA,KAAA,CAAA;AAAA,OACX,MAAA;AACL,QAAO,OAAA,IAAA,CAAA;AAAA,OACT;AAAA,KACD,CAAA,CAAA;AAAA,GACH;AACF,CAAA;AA5oBE,OAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AAEA,QAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AACA,MAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AACA,KAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AACA,SAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AACA,MAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AACA,kBAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AACA,KAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AACA,OAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AACA,YAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AAEA,MAAA,GAAA,IAAA,OAAA,EAAA;;;;"}
|
package/esm/data-source.js
CHANGED
|
@@ -8,7 +8,7 @@ const toDataSourceConfig = (message) => {
|
|
|
8
8
|
case "columns":
|
|
9
9
|
return { columns: message.columns };
|
|
10
10
|
case "filter":
|
|
11
|
-
return {
|
|
11
|
+
return { filterSpec: message.filter };
|
|
12
12
|
case "groupBy":
|
|
13
13
|
return { groupBy: message.groupBy };
|
|
14
14
|
case "sort":
|
package/esm/data-source.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-source.js","sources":["../src/data-source.ts"],"sourcesContent":["import type {\n DataSourceCallbackMessage,\n DataSourceConfig,\n DataSourceConfigMessage,\n DataSourceDataSizeMessage,\n} from \"@vuu-ui/vuu-data-types\";\nimport type {\n OpenDialogAction,\n ServerToClientBody,\n ServerToClientMenuResponse,\n VuuTable,\n} from \"@vuu-ui/vuu-protocol-types\";\nimport { isOpenDialogAction } from \"@vuu-ui/vuu-utils\";\n\nexport const isSizeOnly = (\n message: DataSourceCallbackMessage\n): message is DataSourceDataSizeMessage =>\n message.type === \"viewport-update\" && message.mode === \"size-only\";\n\nexport const toDataSourceConfig = (\n message: DataSourceConfigMessage\n): DataSourceConfig => {\n switch (message.type) {\n case \"aggregate\":\n return { aggregations: message.aggregations };\n case \"columns\":\n return { columns: message.columns };\n case \"filter\":\n return {
|
|
1
|
+
{"version":3,"file":"data-source.js","sources":["../src/data-source.ts"],"sourcesContent":["import type {\n DataSourceCallbackMessage,\n DataSourceConfig,\n DataSourceConfigMessage,\n DataSourceDataSizeMessage,\n} from \"@vuu-ui/vuu-data-types\";\nimport type {\n OpenDialogAction,\n ServerToClientBody,\n ServerToClientMenuResponse,\n VuuTable,\n} from \"@vuu-ui/vuu-protocol-types\";\nimport { isOpenDialogAction } from \"@vuu-ui/vuu-utils\";\n\nexport const isSizeOnly = (\n message: DataSourceCallbackMessage\n): message is DataSourceDataSizeMessage =>\n message.type === \"viewport-update\" && message.mode === \"size-only\";\n\nexport const toDataSourceConfig = (\n message: DataSourceConfigMessage\n): DataSourceConfig => {\n switch (message.type) {\n case \"aggregate\":\n return { aggregations: message.aggregations };\n case \"columns\":\n return { columns: message.columns };\n case \"filter\":\n return { filterSpec: message.filter };\n case \"groupBy\":\n return { groupBy: message.groupBy };\n case \"sort\":\n return { sort: message.sort };\n case \"config\":\n return message.config;\n }\n};\n\nconst datasourceMessages = [\n \"config\",\n \"aggregate\",\n \"viewport-update\",\n \"columns\",\n \"debounce-begin\",\n \"disabled\",\n \"enabled\",\n \"filter\",\n \"groupBy\",\n \"vuu-link-created\",\n \"vuu-link-removed\",\n \"vuu-links\",\n \"vuu-menu\",\n \"sort\",\n \"subscribed\",\n];\n\nexport const shouldMessageBeRoutedToDataSource = (\n message: unknown\n): message is DataSourceCallbackMessage => {\n const type = (message as DataSourceCallbackMessage).type;\n return datasourceMessages.includes(type);\n};\n\nexport const isDataSourceConfigMessage = (\n message: DataSourceCallbackMessage\n): message is DataSourceConfigMessage =>\n [\"config\", \"aggregate\", \"columns\", \"filter\", \"groupBy\", \"sort\"].includes(\n message.type\n );\n\nexport const isSessionTableActionMessage = (\n messageBody: ServerToClientBody\n): messageBody is ServerToClientMenuResponse & {\n action: OpenDialogAction;\n} =>\n messageBody.type === \"VIEW_PORT_MENU_RESP\" &&\n isOpenDialogAction(messageBody.action) &&\n isSessionTable(messageBody.action.table) &&\n messageBody.action?.renderComponent === \"inline-form\";\n\nexport const isSessionTable = (table?: unknown) => {\n if (\n table !== null &&\n typeof table === \"object\" &&\n \"table\" in table &&\n \"module\" in table\n ) {\n return (table as VuuTable).table.startsWith(\"session\");\n }\n return false;\n};\n"],"names":[],"mappings":";;AAcO,MAAM,aAAa,CACxB,OAAA,KAEA,QAAQ,IAAS,KAAA,iBAAA,IAAqB,QAAQ,IAAS,KAAA,YAAA;AAE5C,MAAA,kBAAA,GAAqB,CAChC,OACqB,KAAA;AACrB,EAAA,QAAQ,QAAQ,IAAM;AAAA,IACpB,KAAK,WAAA;AACH,MAAO,OAAA,EAAE,YAAc,EAAA,OAAA,CAAQ,YAAa,EAAA,CAAA;AAAA,IAC9C,KAAK,SAAA;AACH,MAAO,OAAA,EAAE,OAAS,EAAA,OAAA,CAAQ,OAAQ,EAAA,CAAA;AAAA,IACpC,KAAK,QAAA;AACH,MAAO,OAAA,EAAE,UAAY,EAAA,OAAA,CAAQ,MAAO,EAAA,CAAA;AAAA,IACtC,KAAK,SAAA;AACH,MAAO,OAAA,EAAE,OAAS,EAAA,OAAA,CAAQ,OAAQ,EAAA,CAAA;AAAA,IACpC,KAAK,MAAA;AACH,MAAO,OAAA,EAAE,IAAM,EAAA,OAAA,CAAQ,IAAK,EAAA,CAAA;AAAA,IAC9B,KAAK,QAAA;AACH,MAAA,OAAO,OAAQ,CAAA,MAAA,CAAA;AAAA,GACnB;AACF,EAAA;AAEA,MAAM,kBAAqB,GAAA;AAAA,EACzB,QAAA;AAAA,EACA,WAAA;AAAA,EACA,iBAAA;AAAA,EACA,SAAA;AAAA,EACA,gBAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,kBAAA;AAAA,EACA,kBAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA,YAAA;AACF,CAAA,CAAA;AAEa,MAAA,iCAAA,GAAoC,CAC/C,OACyC,KAAA;AACzC,EAAA,MAAM,OAAQ,OAAsC,CAAA,IAAA,CAAA;AACpD,EAAO,OAAA,kBAAA,CAAmB,SAAS,IAAI,CAAA,CAAA;AACzC,EAAA;AAEa,MAAA,yBAAA,GAA4B,CACvC,OAAA,KAEA,CAAC,QAAA,EAAU,aAAa,SAAW,EAAA,QAAA,EAAU,SAAW,EAAA,MAAM,CAAE,CAAA,QAAA;AAAA,EAC9D,OAAQ,CAAA,IAAA;AACV,EAAA;AAEK,MAAM,8BAA8B,CACzC,WAAA,KAIA,WAAY,CAAA,IAAA,KAAS,yBACrB,kBAAmB,CAAA,WAAA,CAAY,MAAM,CAAA,IACrC,eAAe,WAAY,CAAA,MAAA,CAAO,KAAK,CACvC,IAAA,WAAA,CAAY,QAAQ,eAAoB,KAAA,cAAA;AAE7B,MAAA,cAAA,GAAiB,CAAC,KAAoB,KAAA;AACjD,EACE,IAAA,KAAA,KAAU,QACV,OAAO,KAAA,KAAU,YACjB,OAAW,IAAA,KAAA,IACX,YAAY,KACZ,EAAA;AACA,IAAQ,OAAA,KAAA,CAAmB,KAAM,CAAA,UAAA,CAAW,SAAS,CAAA,CAAA;AAAA,GACvD;AACA,EAAO,OAAA,KAAA,CAAA;AACT;;;;"}
|
package/esm/inlined-worker.js
CHANGED
|
@@ -632,7 +632,7 @@ var Viewport = class {
|
|
|
632
632
|
aggregations,
|
|
633
633
|
bufferSize = 50,
|
|
634
634
|
columns,
|
|
635
|
-
filter,
|
|
635
|
+
filterSpec: filter,
|
|
636
636
|
groupBy = [],
|
|
637
637
|
table,
|
|
638
638
|
range,
|
|
@@ -808,7 +808,7 @@ var Viewport = class {
|
|
|
808
808
|
type: "subscribed",
|
|
809
809
|
clientViewportId: this.clientViewportId,
|
|
810
810
|
columns,
|
|
811
|
-
filter,
|
|
811
|
+
filterSpec: filter,
|
|
812
812
|
groupBy,
|
|
813
813
|
range,
|
|
814
814
|
sort,
|
|
@@ -845,7 +845,13 @@ var Viewport = class {
|
|
|
845
845
|
}
|
|
846
846
|
}
|
|
847
847
|
} else if (type === "config") {
|
|
848
|
-
const {
|
|
848
|
+
const {
|
|
849
|
+
aggregations,
|
|
850
|
+
columns,
|
|
851
|
+
filterSpec: filter,
|
|
852
|
+
groupBy,
|
|
853
|
+
sort
|
|
854
|
+
} = pendingOperation.data;
|
|
849
855
|
this.aggregations = aggregations;
|
|
850
856
|
this.columns = columns;
|
|
851
857
|
this.filter = filter;
|
|
@@ -1117,7 +1123,7 @@ var Viewport = class {
|
|
|
1117
1123
|
setConfig(requestId, config) {
|
|
1118
1124
|
var _a;
|
|
1119
1125
|
this.awaitOperation(requestId, { type: "config", data: config });
|
|
1120
|
-
const { filter, ...remainingConfig } = config;
|
|
1126
|
+
const { filterSpec: filter, ...remainingConfig } = config;
|
|
1121
1127
|
if (this.useBatchMode) {
|
|
1122
1128
|
this.batchMode = true;
|
|
1123
1129
|
}
|