@vuu-ui/vuu-data-react 0.8.92 → 0.8.94
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-editing/EditForm.js +1 -1
- package/cjs/datasource-provider/VuuDataSourceProvider.js +2 -1
- package/cjs/datasource-provider/VuuDataSourceProvider.js.map +1 -1
- package/cjs/hooks/useSessionDataSource.js +68 -0
- package/cjs/hooks/useSessionDataSource.js.map +1 -0
- package/cjs/hooks/useTypeaheadSuggestions.js +1 -1
- package/cjs/hooks/useTypeaheadSuggestions.js.map +1 -1
- package/cjs/hooks/useVuuTables.js +1 -1
- package/cjs/hooks/useVuuTables.js.map +1 -1
- package/cjs/index.js +2 -2
- package/esm/data-editing/EditForm.js +1 -1
- package/esm/datasource-provider/VuuDataSourceProvider.js +2 -1
- package/esm/datasource-provider/VuuDataSourceProvider.js.map +1 -1
- package/esm/hooks/useSessionDataSource.js +66 -0
- package/esm/hooks/useSessionDataSource.js.map +1 -0
- package/esm/hooks/useTypeaheadSuggestions.js +2 -2
- package/esm/hooks/useTypeaheadSuggestions.js.map +1 -1
- package/esm/hooks/useVuuTables.js +1 -1
- package/esm/hooks/useVuuTables.js.map +1 -1
- package/esm/index.js +1 -1
- package/package.json +13 -13
- package/types/hooks/index.d.ts +1 -1
- package/types/hooks/useSessionDataSource.d.ts +5 -0
- package/cjs/hooks/useServerConnectionStatus.js +0 -24
- package/cjs/hooks/useServerConnectionStatus.js.map +0 -1
- package/esm/hooks/useServerConnectionStatus.js +0 -22
- package/esm/hooks/useServerConnectionStatus.js.map +0 -1
- package/types/hooks/useServerConnectionStatus.d.ts +0 -1
|
@@ -7,11 +7,11 @@ var styles = require('@salt-ds/styles');
|
|
|
7
7
|
var window = require('@salt-ds/window');
|
|
8
8
|
require('@vuu-ui/vuu-data-remote');
|
|
9
9
|
require('react');
|
|
10
|
+
require('@vuu-ui/vuu-layout');
|
|
10
11
|
require('@vuu-ui/vuu-popups');
|
|
11
12
|
require('@vuu-ui/vuu-table');
|
|
12
13
|
var core = require('@salt-ds/core');
|
|
13
14
|
var cx = require('clsx');
|
|
14
|
-
require('@vuu-ui/vuu-layout');
|
|
15
15
|
require('@vuu-ui/vuu-ui-controls');
|
|
16
16
|
var editValidationRules = require('./edit-validation-rules.js');
|
|
17
17
|
var useEditForm = require('./useEditForm.js');
|
|
@@ -4,13 +4,14 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
4
4
|
var vuuDataRemote = require('@vuu-ui/vuu-data-remote');
|
|
5
5
|
var vuuUtils = require('@vuu-ui/vuu-utils');
|
|
6
6
|
|
|
7
|
+
const getServerAPI = () => vuuDataRemote.ConnectionManager.serverAPI;
|
|
7
8
|
const VuuDataSourceProvider = ({
|
|
8
9
|
children
|
|
9
10
|
}) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
10
11
|
vuuUtils.DataSourceProvider,
|
|
11
12
|
{
|
|
12
13
|
VuuDataSource: vuuDataRemote.VuuDataSource,
|
|
13
|
-
getServerAPI
|
|
14
|
+
getServerAPI,
|
|
14
15
|
isLocalData: false,
|
|
15
16
|
children
|
|
16
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VuuDataSourceProvider.js","sources":["../../src/datasource-provider/VuuDataSourceProvider.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"VuuDataSourceProvider.js","sources":["../../src/datasource-provider/VuuDataSourceProvider.tsx"],"sourcesContent":["import { ConnectionManager, VuuDataSource } from \"@vuu-ui/vuu-data-remote\";\nimport { DataSourceProvider } from \"@vuu-ui/vuu-utils\";\nimport { ReactNode } from \"react\";\n\nconst getServerAPI = () => ConnectionManager.serverAPI;\n\nexport const VuuDataSourceProvider = ({\n children,\n}: {\n children: ReactNode;\n}) => (\n <DataSourceProvider\n VuuDataSource={VuuDataSource}\n getServerAPI={getServerAPI}\n isLocalData={false}\n >\n {children}\n </DataSourceProvider>\n);\n"],"names":["ConnectionManager","jsx","DataSourceProvider","VuuDataSource"],"mappings":";;;;;;AAIA,MAAM,YAAA,GAAe,MAAMA,+BAAkB,CAAA,SAAA,CAAA;AAEtC,MAAM,wBAAwB,CAAC;AAAA,EACpC,QAAA;AACF,CAGE,qBAAAC,cAAA;AAAA,EAACC,2BAAA;AAAA,EAAA;AAAA,mBACCC,2BAAA;AAAA,IACA,YAAA;AAAA,IACA,WAAa,EAAA,KAAA;AAAA,IAEZ,QAAA;AAAA,GAAA;AACH;;;;"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var vuuUtils = require('@vuu-ui/vuu-utils');
|
|
4
|
+
var vuuLayout = require('@vuu-ui/vuu-layout');
|
|
5
|
+
var react = require('react');
|
|
6
|
+
|
|
7
|
+
const NO_CONFIG = {};
|
|
8
|
+
const useSessionDataSource = ({
|
|
9
|
+
dataSourceSessionKey = "data-source",
|
|
10
|
+
tableSchema
|
|
11
|
+
}) => {
|
|
12
|
+
const { id, load, save, loadSession, saveSession, title } = vuuLayout.useViewContext();
|
|
13
|
+
const { VuuDataSource } = vuuUtils.useDataSource();
|
|
14
|
+
const { "datasource-config": dataSourceConfigFromState } = react.useMemo(() => load?.() ?? NO_CONFIG, [load]);
|
|
15
|
+
const handleDataSourceConfigChange = react.useCallback(
|
|
16
|
+
(config, confirmed) => {
|
|
17
|
+
if (confirmed === void 0) {
|
|
18
|
+
const { noChanges } = vuuUtils.isConfigChanged(
|
|
19
|
+
dataSourceConfigFromState,
|
|
20
|
+
config
|
|
21
|
+
);
|
|
22
|
+
if (noChanges === false) {
|
|
23
|
+
save?.(config, "datasource-config");
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
[dataSourceConfigFromState, save]
|
|
28
|
+
);
|
|
29
|
+
const dataSource = react.useMemo(() => {
|
|
30
|
+
let ds = loadSession?.(dataSourceSessionKey);
|
|
31
|
+
if (ds) {
|
|
32
|
+
if (dataSourceConfigFromState) {
|
|
33
|
+
ds.applyConfig(dataSourceConfigFromState, true);
|
|
34
|
+
}
|
|
35
|
+
if (ds.range.from > 0) {
|
|
36
|
+
ds.range = vuuUtils.resetRange(ds.range);
|
|
37
|
+
}
|
|
38
|
+
return ds;
|
|
39
|
+
}
|
|
40
|
+
const columns = dataSourceConfigFromState?.columns ?? tableSchema.columns.map((col) => col.name);
|
|
41
|
+
ds = new VuuDataSource({
|
|
42
|
+
// bufferSize: 0,
|
|
43
|
+
viewport: id,
|
|
44
|
+
table: tableSchema.table,
|
|
45
|
+
...dataSourceConfigFromState,
|
|
46
|
+
columns,
|
|
47
|
+
title
|
|
48
|
+
});
|
|
49
|
+
ds.on("config", handleDataSourceConfigChange);
|
|
50
|
+
saveSession?.(ds, "data-source");
|
|
51
|
+
return ds;
|
|
52
|
+
}, [
|
|
53
|
+
VuuDataSource,
|
|
54
|
+
dataSourceConfigFromState,
|
|
55
|
+
dataSourceSessionKey,
|
|
56
|
+
handleDataSourceConfigChange,
|
|
57
|
+
id,
|
|
58
|
+
loadSession,
|
|
59
|
+
saveSession,
|
|
60
|
+
tableSchema.columns,
|
|
61
|
+
tableSchema.table,
|
|
62
|
+
title
|
|
63
|
+
]);
|
|
64
|
+
return dataSource;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
exports.useSessionDataSource = useSessionDataSource;
|
|
68
|
+
//# sourceMappingURL=useSessionDataSource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSessionDataSource.js","sources":["../../src/hooks/useSessionDataSource.ts"],"sourcesContent":["import {\n DataSource,\n DataSourceConfig,\n TableSchema,\n} from \"@vuu-ui/vuu-data-types\";\nimport { isConfigChanged, resetRange, useDataSource } from \"@vuu-ui/vuu-utils\";\nimport { useViewContext } from \"@vuu-ui/vuu-layout\";\nimport { useCallback, useMemo } from \"react\";\n\ntype SessionDataSourceConfig = {\n \"datasource-config\"?: DataSourceConfig;\n};\n\nconst NO_CONFIG: SessionDataSourceConfig = {};\n\nexport const useSessionDataSource = ({\n dataSourceSessionKey = \"data-source\",\n tableSchema,\n}: {\n dataSourceSessionKey?: string;\n tableSchema: TableSchema;\n}) => {\n const { id, load, save, loadSession, saveSession, title } = useViewContext();\n const { VuuDataSource } = useDataSource();\n\n const { \"datasource-config\": dataSourceConfigFromState } =\n useMemo<SessionDataSourceConfig>(() => load?.() ?? NO_CONFIG, [load]);\n\n const handleDataSourceConfigChange = useCallback(\n (config: DataSourceConfig | undefined, confirmed?: boolean) => {\n // confirmed / unconfirmed messages are used for UI updates, not state saving\n if (confirmed === undefined) {\n const { noChanges } = isConfigChanged(\n dataSourceConfigFromState,\n config,\n );\n if (noChanges === false) {\n save?.(config, \"datasource-config\");\n }\n }\n },\n [dataSourceConfigFromState, save],\n );\n\n const dataSource: DataSource = useMemo(() => {\n let ds = loadSession?.(dataSourceSessionKey) as DataSource;\n if (ds) {\n if (dataSourceConfigFromState) {\n // this won't do anything if dataSource config already matches this\n // This is only really used when injecting a dataSource into session\n // state in Showcase examples\n ds.applyConfig(dataSourceConfigFromState, true);\n }\n\n if (ds.range.from > 0) {\n // UI does not currently restore scroll position, so always reset to top of dataset\n ds.range = resetRange(ds.range);\n }\n\n return ds;\n }\n\n const columns =\n dataSourceConfigFromState?.columns ??\n tableSchema.columns.map((col) => col.name);\n\n ds = new VuuDataSource({\n // bufferSize: 0,\n viewport: id,\n table: tableSchema.table,\n ...dataSourceConfigFromState,\n columns,\n title,\n });\n ds.on(\"config\", handleDataSourceConfigChange);\n saveSession?.(ds, \"data-source\");\n return ds;\n }, [\n VuuDataSource,\n dataSourceConfigFromState,\n dataSourceSessionKey,\n handleDataSourceConfigChange,\n id,\n loadSession,\n saveSession,\n tableSchema.columns,\n tableSchema.table,\n title,\n ]);\n\n return dataSource;\n};\n"],"names":["useViewContext","useDataSource","useMemo","useCallback","isConfigChanged","resetRange"],"mappings":";;;;;;AAaA,MAAM,YAAqC,EAAC,CAAA;AAErC,MAAM,uBAAuB,CAAC;AAAA,EACnC,oBAAuB,GAAA,aAAA;AAAA,EACvB,WAAA;AACF,CAGM,KAAA;AACJ,EAAM,MAAA,EAAE,IAAI,IAAM,EAAA,IAAA,EAAM,aAAa,WAAa,EAAA,KAAA,KAAUA,wBAAe,EAAA,CAAA;AAC3E,EAAM,MAAA,EAAE,aAAc,EAAA,GAAIC,sBAAc,EAAA,CAAA;AAExC,EAAM,MAAA,EAAE,mBAAqB,EAAA,yBAAA,EAC3B,GAAAC,aAAA,CAAiC,MAAM,IAAA,IAAY,IAAA,SAAA,EAAW,CAAC,IAAI,CAAC,CAAA,CAAA;AAEtE,EAAA,MAAM,4BAA+B,GAAAC,iBAAA;AAAA,IACnC,CAAC,QAAsC,SAAwB,KAAA;AAE7D,MAAA,IAAI,cAAc,KAAW,CAAA,EAAA;AAC3B,QAAM,MAAA,EAAE,WAAc,GAAAC,wBAAA;AAAA,UACpB,yBAAA;AAAA,UACA,MAAA;AAAA,SACF,CAAA;AACA,QAAA,IAAI,cAAc,KAAO,EAAA;AACvB,UAAA,IAAA,GAAO,QAAQ,mBAAmB,CAAA,CAAA;AAAA,SACpC;AAAA,OACF;AAAA,KACF;AAAA,IACA,CAAC,2BAA2B,IAAI,CAAA;AAAA,GAClC,CAAA;AAEA,EAAM,MAAA,UAAA,GAAyBF,cAAQ,MAAM;AAC3C,IAAI,IAAA,EAAA,GAAK,cAAc,oBAAoB,CAAA,CAAA;AAC3C,IAAA,IAAI,EAAI,EAAA;AACN,MAAA,IAAI,yBAA2B,EAAA;AAI7B,QAAG,EAAA,CAAA,WAAA,CAAY,2BAA2B,IAAI,CAAA,CAAA;AAAA,OAChD;AAEA,MAAI,IAAA,EAAA,CAAG,KAAM,CAAA,IAAA,GAAO,CAAG,EAAA;AAErB,QAAG,EAAA,CAAA,KAAA,GAAQG,mBAAW,CAAA,EAAA,CAAG,KAAK,CAAA,CAAA;AAAA,OAChC;AAEA,MAAO,OAAA,EAAA,CAAA;AAAA,KACT;AAEA,IAAM,MAAA,OAAA,GACJ,2BAA2B,OAC3B,IAAA,WAAA,CAAY,QAAQ,GAAI,CAAA,CAAC,GAAQ,KAAA,GAAA,CAAI,IAAI,CAAA,CAAA;AAE3C,IAAA,EAAA,GAAK,IAAI,aAAc,CAAA;AAAA;AAAA,MAErB,QAAU,EAAA,EAAA;AAAA,MACV,OAAO,WAAY,CAAA,KAAA;AAAA,MACnB,GAAG,yBAAA;AAAA,MACH,OAAA;AAAA,MACA,KAAA;AAAA,KACD,CAAA,CAAA;AACD,IAAG,EAAA,CAAA,EAAA,CAAG,UAAU,4BAA4B,CAAA,CAAA;AAC5C,IAAA,WAAA,GAAc,IAAI,aAAa,CAAA,CAAA;AAC/B,IAAO,OAAA,EAAA,CAAA;AAAA,GACN,EAAA;AAAA,IACD,aAAA;AAAA,IACA,yBAAA;AAAA,IACA,oBAAA;AAAA,IACA,4BAAA;AAAA,IACA,EAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAY,CAAA,OAAA;AAAA,IACZ,WAAY,CAAA,KAAA;AAAA,IACZ,KAAA;AAAA,GACD,CAAA,CAAA;AAED,EAAO,OAAA,UAAA,CAAA;AACT;;;;"}
|
|
@@ -21,7 +21,7 @@ const useTypeaheadSuggestions = () => react.useCallback(async (params) => {
|
|
|
21
21
|
method: "getUniqueFieldValuesStartingWith",
|
|
22
22
|
params
|
|
23
23
|
};
|
|
24
|
-
return vuuDataRemote.makeRpcCall(rpcMessage);
|
|
24
|
+
return vuuDataRemote.ConnectionManager.makeRpcCall(rpcMessage);
|
|
25
25
|
}, []);
|
|
26
26
|
|
|
27
27
|
exports.getTypeaheadParams = getTypeaheadParams;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTypeaheadSuggestions.js","sources":["../../src/hooks/useTypeaheadSuggestions.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"useTypeaheadSuggestions.js","sources":["../../src/hooks/useTypeaheadSuggestions.ts"],"sourcesContent":["import { ConnectionManager } from \"@vuu-ui/vuu-data-remote\";\nimport { SuggestionFetcher, TableSchemaTable } from \"@vuu-ui/vuu-data-types\";\nimport {\n VuuRpcServiceRequest,\n TypeaheadParams,\n} from \"@vuu-ui/vuu-protocol-types\";\nimport { useCallback } from \"react\";\n\nexport const getTypeaheadParams = (\n table: TableSchemaTable,\n column: string,\n text = \"\",\n selectedValues: string[] = [],\n): TypeaheadParams => {\n if (text !== \"\" && !selectedValues.includes(text.toLowerCase())) {\n return [table, column, text];\n }\n return [table, column];\n};\n\nexport const useTypeaheadSuggestions = () =>\n useCallback<SuggestionFetcher>(async (params: TypeaheadParams) => {\n const rpcMessage: VuuRpcServiceRequest =\n params.length === 2\n ? {\n type: \"RPC_CALL\",\n service: \"TypeAheadRpcHandler\",\n method: \"getUniqueFieldValues\",\n params,\n }\n : {\n type: \"RPC_CALL\",\n service: \"TypeAheadRpcHandler\",\n method: \"getUniqueFieldValuesStartingWith\",\n params,\n };\n return ConnectionManager.makeRpcCall<string[]>(rpcMessage);\n }, []);\n"],"names":["useCallback","ConnectionManager"],"mappings":";;;;;AAQa,MAAA,kBAAA,GAAqB,CAChC,KACA,EAAA,MAAA,EACA,OAAO,EACP,EAAA,cAAA,GAA2B,EACP,KAAA;AACpB,EAAI,IAAA,IAAA,KAAS,MAAM,CAAC,cAAA,CAAe,SAAS,IAAK,CAAA,WAAA,EAAa,CAAG,EAAA;AAC/D,IAAO,OAAA,CAAC,KAAO,EAAA,MAAA,EAAQ,IAAI,CAAA,CAAA;AAAA,GAC7B;AACA,EAAO,OAAA,CAAC,OAAO,MAAM,CAAA,CAAA;AACvB,EAAA;AAEO,MAAM,uBAA0B,GAAA,MACrCA,iBAA+B,CAAA,OAAO,MAA4B,KAAA;AAChE,EAAM,MAAA,UAAA,GACJ,MAAO,CAAA,MAAA,KAAW,CACd,GAAA;AAAA,IACE,IAAM,EAAA,UAAA;AAAA,IACN,OAAS,EAAA,qBAAA;AAAA,IACT,MAAQ,EAAA,sBAAA;AAAA,IACR,MAAA;AAAA,GAEF,GAAA;AAAA,IACE,IAAM,EAAA,UAAA;AAAA,IACN,OAAS,EAAA,qBAAA;AAAA,IACT,MAAQ,EAAA,kCAAA;AAAA,IACR,MAAA;AAAA,GACF,CAAA;AACN,EAAO,OAAAC,+BAAA,CAAkB,YAAsB,UAAU,CAAA,CAAA;AAC3D,CAAA,EAAG,EAAE;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useVuuTables.js","sources":["../../src/hooks/useVuuTables.ts"],"sourcesContent":["import type { TableSchema } from \"@vuu-ui/vuu-data-types\";\nimport { useDataSource } from \"@vuu-ui/vuu-utils\";\nimport { useCallback, useEffect, useState } from \"react\";\n\nexport const useVuuTables = () => {\n const [tables, setTables] = useState<Map<string, TableSchema> | undefined>();\n\n const { getServerAPI } = useDataSource();\n\n const buildTables = useCallback((schemas: TableSchema[]) => {\n const vuuTables = new Map<string, TableSchema>();\n schemas.forEach((schema) => {\n vuuTables.set(schema.table.table, schema);\n });\n return vuuTables;\n }, []);\n\n useEffect(() => {\n async function fetchTableMetadata() {\n try {\n const server = await getServerAPI();\n const { tables } = await server.getTableList();\n const tableSchemas = buildTables(\n await Promise.all(\n tables.map((vuuTable) => server.getTableSchema(vuuTable)),\n ),\n );\n setTables(tableSchemas);\n } catch (err) {\n console.warn(\n `useVuuTables: error fetching table
|
|
1
|
+
{"version":3,"file":"useVuuTables.js","sources":["../../src/hooks/useVuuTables.ts"],"sourcesContent":["import type { TableSchema } from \"@vuu-ui/vuu-data-types\";\nimport { useDataSource } from \"@vuu-ui/vuu-utils\";\nimport { useCallback, useEffect, useState } from \"react\";\n\nexport const useVuuTables = () => {\n const [tables, setTables] = useState<Map<string, TableSchema> | undefined>();\n\n const { getServerAPI } = useDataSource();\n\n const buildTables = useCallback((schemas: TableSchema[]) => {\n const vuuTables = new Map<string, TableSchema>();\n schemas.forEach((schema) => {\n vuuTables.set(schema.table.table, schema);\n });\n return vuuTables;\n }, []);\n\n useEffect(() => {\n async function fetchTableMetadata() {\n try {\n const server = await getServerAPI();\n const { tables } = await server.getTableList();\n const tableSchemas = buildTables(\n await Promise.all(\n tables.map((vuuTable) => server.getTableSchema(vuuTable)),\n ),\n );\n setTables(tableSchemas);\n } catch (err) {\n console.warn(\n `useVuuTables: error fetching table metadata ${String(err)}`,\n );\n }\n }\n\n fetchTableMetadata();\n }, [buildTables, getServerAPI]);\n\n return tables;\n};\n"],"names":["useState","useDataSource","useCallback","useEffect","tables"],"mappings":";;;;;AAIO,MAAM,eAAe,MAAM;AAChC,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIA,cAA+C,EAAA,CAAA;AAE3E,EAAM,MAAA,EAAE,YAAa,EAAA,GAAIC,sBAAc,EAAA,CAAA;AAEvC,EAAM,MAAA,WAAA,GAAcC,iBAAY,CAAA,CAAC,OAA2B,KAAA;AAC1D,IAAM,MAAA,SAAA,uBAAgB,GAAyB,EAAA,CAAA;AAC/C,IAAQ,OAAA,CAAA,OAAA,CAAQ,CAAC,MAAW,KAAA;AAC1B,MAAA,SAAA,CAAU,GAAI,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA,EAAO,MAAM,CAAA,CAAA;AAAA,KACzC,CAAA,CAAA;AACD,IAAO,OAAA,SAAA,CAAA;AAAA,GACT,EAAG,EAAE,CAAA,CAAA;AAEL,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,eAAe,kBAAqB,GAAA;AAClC,MAAI,IAAA;AACF,QAAM,MAAA,MAAA,GAAS,MAAM,YAAa,EAAA,CAAA;AAClC,QAAA,MAAM,EAAE,MAAAC,EAAAA,OAAAA,EAAW,GAAA,MAAM,OAAO,YAAa,EAAA,CAAA;AAC7C,QAAA,MAAM,YAAe,GAAA,WAAA;AAAA,UACnB,MAAM,OAAQ,CAAA,GAAA;AAAA,YACZA,QAAO,GAAI,CAAA,CAAC,aAAa,MAAO,CAAA,cAAA,CAAe,QAAQ,CAAC,CAAA;AAAA,WAC1D;AAAA,SACF,CAAA;AACA,QAAA,SAAA,CAAU,YAAY,CAAA,CAAA;AAAA,eACf,GAAK,EAAA;AACZ,QAAQ,OAAA,CAAA,IAAA;AAAA,UACN,CAAA,4CAAA,EAA+C,MAAO,CAAA,GAAG,CAAC,CAAA,CAAA;AAAA,SAC5D,CAAA;AAAA,OACF;AAAA,KACF;AAEA,IAAmB,kBAAA,EAAA,CAAA;AAAA,GAClB,EAAA,CAAC,WAAa,EAAA,YAAY,CAAC,CAAA,CAAA;AAE9B,EAAO,OAAA,MAAA,CAAA;AACT;;;;"}
|
package/cjs/index.js
CHANGED
|
@@ -6,10 +6,10 @@ var editRuleValidationChecker = require('./data-editing/edit-rule-validation-che
|
|
|
6
6
|
var UnsavedChangesReport = require('./data-editing/UnsavedChangesReport.js');
|
|
7
7
|
var VuuDataSourceProvider = require('./datasource-provider/VuuDataSourceProvider.js');
|
|
8
8
|
var useLookupValues = require('./hooks/useLookupValues.js');
|
|
9
|
+
var useSessionDataSource = require('./hooks/useSessionDataSource.js');
|
|
9
10
|
var useVuuMenuActions = require('./hooks/useVuuMenuActions.js');
|
|
10
11
|
var useVuuTables = require('./hooks/useVuuTables.js');
|
|
11
12
|
var useVisualLinks = require('./hooks/useVisualLinks.js');
|
|
12
|
-
var useServerConnectionStatus = require('./hooks/useServerConnectionStatus.js');
|
|
13
13
|
var useServerConnectionQuality = require('./hooks/useServerConnectionQuality.js');
|
|
14
14
|
var useTypeaheadSuggestions = require('./hooks/useTypeaheadSuggestions.js');
|
|
15
15
|
var SessionEditingForm = require('./session-editing-form/SessionEditingForm.js');
|
|
@@ -24,10 +24,10 @@ exports.getEditValidationRules = editRuleValidationChecker.getEditValidationRule
|
|
|
24
24
|
exports.UnsavedChangesReport = UnsavedChangesReport.UnsavedChangesReport;
|
|
25
25
|
exports.VuuDataSourceProvider = VuuDataSourceProvider.VuuDataSourceProvider;
|
|
26
26
|
exports.useLookupValues = useLookupValues.useLookupValues;
|
|
27
|
+
exports.useSessionDataSource = useSessionDataSource.useSessionDataSource;
|
|
27
28
|
exports.useVuuMenuActions = useVuuMenuActions.useVuuMenuActions;
|
|
28
29
|
exports.useVuuTables = useVuuTables.useVuuTables;
|
|
29
30
|
exports.useVisualLinks = useVisualLinks.useVisualLinks;
|
|
30
|
-
exports.useServerConnectionStatus = useServerConnectionStatus.useServerConnectionStatus;
|
|
31
31
|
exports.useServerConnectionQuality = useServerConnectionQuality.useServerConnectionQuality;
|
|
32
32
|
exports.getTypeaheadParams = useTypeaheadSuggestions.getTypeaheadParams;
|
|
33
33
|
exports.useTypeaheadSuggestions = useTypeaheadSuggestions.useTypeaheadSuggestions;
|
|
@@ -5,11 +5,11 @@ import { useComponentCssInjection } from '@salt-ds/styles';
|
|
|
5
5
|
import { useWindow } from '@salt-ds/window';
|
|
6
6
|
import '@vuu-ui/vuu-data-remote';
|
|
7
7
|
import 'react';
|
|
8
|
+
import '@vuu-ui/vuu-layout';
|
|
8
9
|
import '@vuu-ui/vuu-popups';
|
|
9
10
|
import '@vuu-ui/vuu-table';
|
|
10
11
|
import { FormField, FormFieldLabel, Button } from '@salt-ds/core';
|
|
11
12
|
import cx from 'clsx';
|
|
12
|
-
import '@vuu-ui/vuu-layout';
|
|
13
13
|
import '@vuu-ui/vuu-ui-controls';
|
|
14
14
|
import { registerRules } from './edit-validation-rules.js';
|
|
15
15
|
import { useEditForm } from './useEditForm.js';
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { VuuDataSource,
|
|
2
|
+
import { VuuDataSource, ConnectionManager } from '@vuu-ui/vuu-data-remote';
|
|
3
3
|
import { DataSourceProvider } from '@vuu-ui/vuu-utils';
|
|
4
4
|
|
|
5
|
+
const getServerAPI = () => ConnectionManager.serverAPI;
|
|
5
6
|
const VuuDataSourceProvider = ({
|
|
6
7
|
children
|
|
7
8
|
}) => /* @__PURE__ */ jsx(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VuuDataSourceProvider.js","sources":["../../src/datasource-provider/VuuDataSourceProvider.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"VuuDataSourceProvider.js","sources":["../../src/datasource-provider/VuuDataSourceProvider.tsx"],"sourcesContent":["import { ConnectionManager, VuuDataSource } from \"@vuu-ui/vuu-data-remote\";\nimport { DataSourceProvider } from \"@vuu-ui/vuu-utils\";\nimport { ReactNode } from \"react\";\n\nconst getServerAPI = () => ConnectionManager.serverAPI;\n\nexport const VuuDataSourceProvider = ({\n children,\n}: {\n children: ReactNode;\n}) => (\n <DataSourceProvider\n VuuDataSource={VuuDataSource}\n getServerAPI={getServerAPI}\n isLocalData={false}\n >\n {children}\n </DataSourceProvider>\n);\n"],"names":[],"mappings":";;;;AAIA,MAAM,YAAA,GAAe,MAAM,iBAAkB,CAAA,SAAA,CAAA;AAEtC,MAAM,wBAAwB,CAAC;AAAA,EACpC,QAAA;AACF,CAGE,qBAAA,GAAA;AAAA,EAAC,kBAAA;AAAA,EAAA;AAAA,IACC,aAAA;AAAA,IACA,YAAA;AAAA,IACA,WAAa,EAAA,KAAA;AAAA,IAEZ,QAAA;AAAA,GAAA;AACH;;;;"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { useDataSource, isConfigChanged, resetRange } from '@vuu-ui/vuu-utils';
|
|
2
|
+
import { useViewContext } from '@vuu-ui/vuu-layout';
|
|
3
|
+
import { useMemo, useCallback } from 'react';
|
|
4
|
+
|
|
5
|
+
const NO_CONFIG = {};
|
|
6
|
+
const useSessionDataSource = ({
|
|
7
|
+
dataSourceSessionKey = "data-source",
|
|
8
|
+
tableSchema
|
|
9
|
+
}) => {
|
|
10
|
+
const { id, load, save, loadSession, saveSession, title } = useViewContext();
|
|
11
|
+
const { VuuDataSource } = useDataSource();
|
|
12
|
+
const { "datasource-config": dataSourceConfigFromState } = useMemo(() => load?.() ?? NO_CONFIG, [load]);
|
|
13
|
+
const handleDataSourceConfigChange = useCallback(
|
|
14
|
+
(config, confirmed) => {
|
|
15
|
+
if (confirmed === void 0) {
|
|
16
|
+
const { noChanges } = isConfigChanged(
|
|
17
|
+
dataSourceConfigFromState,
|
|
18
|
+
config
|
|
19
|
+
);
|
|
20
|
+
if (noChanges === false) {
|
|
21
|
+
save?.(config, "datasource-config");
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
[dataSourceConfigFromState, save]
|
|
26
|
+
);
|
|
27
|
+
const dataSource = useMemo(() => {
|
|
28
|
+
let ds = loadSession?.(dataSourceSessionKey);
|
|
29
|
+
if (ds) {
|
|
30
|
+
if (dataSourceConfigFromState) {
|
|
31
|
+
ds.applyConfig(dataSourceConfigFromState, true);
|
|
32
|
+
}
|
|
33
|
+
if (ds.range.from > 0) {
|
|
34
|
+
ds.range = resetRange(ds.range);
|
|
35
|
+
}
|
|
36
|
+
return ds;
|
|
37
|
+
}
|
|
38
|
+
const columns = dataSourceConfigFromState?.columns ?? tableSchema.columns.map((col) => col.name);
|
|
39
|
+
ds = new VuuDataSource({
|
|
40
|
+
// bufferSize: 0,
|
|
41
|
+
viewport: id,
|
|
42
|
+
table: tableSchema.table,
|
|
43
|
+
...dataSourceConfigFromState,
|
|
44
|
+
columns,
|
|
45
|
+
title
|
|
46
|
+
});
|
|
47
|
+
ds.on("config", handleDataSourceConfigChange);
|
|
48
|
+
saveSession?.(ds, "data-source");
|
|
49
|
+
return ds;
|
|
50
|
+
}, [
|
|
51
|
+
VuuDataSource,
|
|
52
|
+
dataSourceConfigFromState,
|
|
53
|
+
dataSourceSessionKey,
|
|
54
|
+
handleDataSourceConfigChange,
|
|
55
|
+
id,
|
|
56
|
+
loadSession,
|
|
57
|
+
saveSession,
|
|
58
|
+
tableSchema.columns,
|
|
59
|
+
tableSchema.table,
|
|
60
|
+
title
|
|
61
|
+
]);
|
|
62
|
+
return dataSource;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
export { useSessionDataSource };
|
|
66
|
+
//# sourceMappingURL=useSessionDataSource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSessionDataSource.js","sources":["../../src/hooks/useSessionDataSource.ts"],"sourcesContent":["import {\n DataSource,\n DataSourceConfig,\n TableSchema,\n} from \"@vuu-ui/vuu-data-types\";\nimport { isConfigChanged, resetRange, useDataSource } from \"@vuu-ui/vuu-utils\";\nimport { useViewContext } from \"@vuu-ui/vuu-layout\";\nimport { useCallback, useMemo } from \"react\";\n\ntype SessionDataSourceConfig = {\n \"datasource-config\"?: DataSourceConfig;\n};\n\nconst NO_CONFIG: SessionDataSourceConfig = {};\n\nexport const useSessionDataSource = ({\n dataSourceSessionKey = \"data-source\",\n tableSchema,\n}: {\n dataSourceSessionKey?: string;\n tableSchema: TableSchema;\n}) => {\n const { id, load, save, loadSession, saveSession, title } = useViewContext();\n const { VuuDataSource } = useDataSource();\n\n const { \"datasource-config\": dataSourceConfigFromState } =\n useMemo<SessionDataSourceConfig>(() => load?.() ?? NO_CONFIG, [load]);\n\n const handleDataSourceConfigChange = useCallback(\n (config: DataSourceConfig | undefined, confirmed?: boolean) => {\n // confirmed / unconfirmed messages are used for UI updates, not state saving\n if (confirmed === undefined) {\n const { noChanges } = isConfigChanged(\n dataSourceConfigFromState,\n config,\n );\n if (noChanges === false) {\n save?.(config, \"datasource-config\");\n }\n }\n },\n [dataSourceConfigFromState, save],\n );\n\n const dataSource: DataSource = useMemo(() => {\n let ds = loadSession?.(dataSourceSessionKey) as DataSource;\n if (ds) {\n if (dataSourceConfigFromState) {\n // this won't do anything if dataSource config already matches this\n // This is only really used when injecting a dataSource into session\n // state in Showcase examples\n ds.applyConfig(dataSourceConfigFromState, true);\n }\n\n if (ds.range.from > 0) {\n // UI does not currently restore scroll position, so always reset to top of dataset\n ds.range = resetRange(ds.range);\n }\n\n return ds;\n }\n\n const columns =\n dataSourceConfigFromState?.columns ??\n tableSchema.columns.map((col) => col.name);\n\n ds = new VuuDataSource({\n // bufferSize: 0,\n viewport: id,\n table: tableSchema.table,\n ...dataSourceConfigFromState,\n columns,\n title,\n });\n ds.on(\"config\", handleDataSourceConfigChange);\n saveSession?.(ds, \"data-source\");\n return ds;\n }, [\n VuuDataSource,\n dataSourceConfigFromState,\n dataSourceSessionKey,\n handleDataSourceConfigChange,\n id,\n loadSession,\n saveSession,\n tableSchema.columns,\n tableSchema.table,\n title,\n ]);\n\n return dataSource;\n};\n"],"names":[],"mappings":";;;;AAaA,MAAM,YAAqC,EAAC,CAAA;AAErC,MAAM,uBAAuB,CAAC;AAAA,EACnC,oBAAuB,GAAA,aAAA;AAAA,EACvB,WAAA;AACF,CAGM,KAAA;AACJ,EAAM,MAAA,EAAE,IAAI,IAAM,EAAA,IAAA,EAAM,aAAa,WAAa,EAAA,KAAA,KAAU,cAAe,EAAA,CAAA;AAC3E,EAAM,MAAA,EAAE,aAAc,EAAA,GAAI,aAAc,EAAA,CAAA;AAExC,EAAM,MAAA,EAAE,mBAAqB,EAAA,yBAAA,EAC3B,GAAA,OAAA,CAAiC,MAAM,IAAA,IAAY,IAAA,SAAA,EAAW,CAAC,IAAI,CAAC,CAAA,CAAA;AAEtE,EAAA,MAAM,4BAA+B,GAAA,WAAA;AAAA,IACnC,CAAC,QAAsC,SAAwB,KAAA;AAE7D,MAAA,IAAI,cAAc,KAAW,CAAA,EAAA;AAC3B,QAAM,MAAA,EAAE,WAAc,GAAA,eAAA;AAAA,UACpB,yBAAA;AAAA,UACA,MAAA;AAAA,SACF,CAAA;AACA,QAAA,IAAI,cAAc,KAAO,EAAA;AACvB,UAAA,IAAA,GAAO,QAAQ,mBAAmB,CAAA,CAAA;AAAA,SACpC;AAAA,OACF;AAAA,KACF;AAAA,IACA,CAAC,2BAA2B,IAAI,CAAA;AAAA,GAClC,CAAA;AAEA,EAAM,MAAA,UAAA,GAAyB,QAAQ,MAAM;AAC3C,IAAI,IAAA,EAAA,GAAK,cAAc,oBAAoB,CAAA,CAAA;AAC3C,IAAA,IAAI,EAAI,EAAA;AACN,MAAA,IAAI,yBAA2B,EAAA;AAI7B,QAAG,EAAA,CAAA,WAAA,CAAY,2BAA2B,IAAI,CAAA,CAAA;AAAA,OAChD;AAEA,MAAI,IAAA,EAAA,CAAG,KAAM,CAAA,IAAA,GAAO,CAAG,EAAA;AAErB,QAAG,EAAA,CAAA,KAAA,GAAQ,UAAW,CAAA,EAAA,CAAG,KAAK,CAAA,CAAA;AAAA,OAChC;AAEA,MAAO,OAAA,EAAA,CAAA;AAAA,KACT;AAEA,IAAM,MAAA,OAAA,GACJ,2BAA2B,OAC3B,IAAA,WAAA,CAAY,QAAQ,GAAI,CAAA,CAAC,GAAQ,KAAA,GAAA,CAAI,IAAI,CAAA,CAAA;AAE3C,IAAA,EAAA,GAAK,IAAI,aAAc,CAAA;AAAA;AAAA,MAErB,QAAU,EAAA,EAAA;AAAA,MACV,OAAO,WAAY,CAAA,KAAA;AAAA,MACnB,GAAG,yBAAA;AAAA,MACH,OAAA;AAAA,MACA,KAAA;AAAA,KACD,CAAA,CAAA;AACD,IAAG,EAAA,CAAA,EAAA,CAAG,UAAU,4BAA4B,CAAA,CAAA;AAC5C,IAAA,WAAA,GAAc,IAAI,aAAa,CAAA,CAAA;AAC/B,IAAO,OAAA,EAAA,CAAA;AAAA,GACN,EAAA;AAAA,IACD,aAAA;AAAA,IACA,yBAAA;AAAA,IACA,oBAAA;AAAA,IACA,4BAAA;AAAA,IACA,EAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAY,CAAA,OAAA;AAAA,IACZ,WAAY,CAAA,KAAA;AAAA,IACZ,KAAA;AAAA,GACD,CAAA,CAAA;AAED,EAAO,OAAA,UAAA,CAAA;AACT;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ConnectionManager } from '@vuu-ui/vuu-data-remote';
|
|
2
2
|
import { useCallback } from 'react';
|
|
3
3
|
|
|
4
4
|
const getTypeaheadParams = (table, column, text = "", selectedValues = []) => {
|
|
@@ -19,7 +19,7 @@ const useTypeaheadSuggestions = () => useCallback(async (params) => {
|
|
|
19
19
|
method: "getUniqueFieldValuesStartingWith",
|
|
20
20
|
params
|
|
21
21
|
};
|
|
22
|
-
return makeRpcCall(rpcMessage);
|
|
22
|
+
return ConnectionManager.makeRpcCall(rpcMessage);
|
|
23
23
|
}, []);
|
|
24
24
|
|
|
25
25
|
export { getTypeaheadParams, useTypeaheadSuggestions };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTypeaheadSuggestions.js","sources":["../../src/hooks/useTypeaheadSuggestions.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"useTypeaheadSuggestions.js","sources":["../../src/hooks/useTypeaheadSuggestions.ts"],"sourcesContent":["import { ConnectionManager } from \"@vuu-ui/vuu-data-remote\";\nimport { SuggestionFetcher, TableSchemaTable } from \"@vuu-ui/vuu-data-types\";\nimport {\n VuuRpcServiceRequest,\n TypeaheadParams,\n} from \"@vuu-ui/vuu-protocol-types\";\nimport { useCallback } from \"react\";\n\nexport const getTypeaheadParams = (\n table: TableSchemaTable,\n column: string,\n text = \"\",\n selectedValues: string[] = [],\n): TypeaheadParams => {\n if (text !== \"\" && !selectedValues.includes(text.toLowerCase())) {\n return [table, column, text];\n }\n return [table, column];\n};\n\nexport const useTypeaheadSuggestions = () =>\n useCallback<SuggestionFetcher>(async (params: TypeaheadParams) => {\n const rpcMessage: VuuRpcServiceRequest =\n params.length === 2\n ? {\n type: \"RPC_CALL\",\n service: \"TypeAheadRpcHandler\",\n method: \"getUniqueFieldValues\",\n params,\n }\n : {\n type: \"RPC_CALL\",\n service: \"TypeAheadRpcHandler\",\n method: \"getUniqueFieldValuesStartingWith\",\n params,\n };\n return ConnectionManager.makeRpcCall<string[]>(rpcMessage);\n }, []);\n"],"names":[],"mappings":";;;AAQa,MAAA,kBAAA,GAAqB,CAChC,KACA,EAAA,MAAA,EACA,OAAO,EACP,EAAA,cAAA,GAA2B,EACP,KAAA;AACpB,EAAI,IAAA,IAAA,KAAS,MAAM,CAAC,cAAA,CAAe,SAAS,IAAK,CAAA,WAAA,EAAa,CAAG,EAAA;AAC/D,IAAO,OAAA,CAAC,KAAO,EAAA,MAAA,EAAQ,IAAI,CAAA,CAAA;AAAA,GAC7B;AACA,EAAO,OAAA,CAAC,OAAO,MAAM,CAAA,CAAA;AACvB,EAAA;AAEO,MAAM,uBAA0B,GAAA,MACrC,WAA+B,CAAA,OAAO,MAA4B,KAAA;AAChE,EAAM,MAAA,UAAA,GACJ,MAAO,CAAA,MAAA,KAAW,CACd,GAAA;AAAA,IACE,IAAM,EAAA,UAAA;AAAA,IACN,OAAS,EAAA,qBAAA;AAAA,IACT,MAAQ,EAAA,sBAAA;AAAA,IACR,MAAA;AAAA,GAEF,GAAA;AAAA,IACE,IAAM,EAAA,UAAA;AAAA,IACN,OAAS,EAAA,qBAAA;AAAA,IACT,MAAQ,EAAA,kCAAA;AAAA,IACR,MAAA;AAAA,GACF,CAAA;AACN,EAAO,OAAA,iBAAA,CAAkB,YAAsB,UAAU,CAAA,CAAA;AAC3D,CAAA,EAAG,EAAE;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useVuuTables.js","sources":["../../src/hooks/useVuuTables.ts"],"sourcesContent":["import type { TableSchema } from \"@vuu-ui/vuu-data-types\";\nimport { useDataSource } from \"@vuu-ui/vuu-utils\";\nimport { useCallback, useEffect, useState } from \"react\";\n\nexport const useVuuTables = () => {\n const [tables, setTables] = useState<Map<string, TableSchema> | undefined>();\n\n const { getServerAPI } = useDataSource();\n\n const buildTables = useCallback((schemas: TableSchema[]) => {\n const vuuTables = new Map<string, TableSchema>();\n schemas.forEach((schema) => {\n vuuTables.set(schema.table.table, schema);\n });\n return vuuTables;\n }, []);\n\n useEffect(() => {\n async function fetchTableMetadata() {\n try {\n const server = await getServerAPI();\n const { tables } = await server.getTableList();\n const tableSchemas = buildTables(\n await Promise.all(\n tables.map((vuuTable) => server.getTableSchema(vuuTable)),\n ),\n );\n setTables(tableSchemas);\n } catch (err) {\n console.warn(\n `useVuuTables: error fetching table
|
|
1
|
+
{"version":3,"file":"useVuuTables.js","sources":["../../src/hooks/useVuuTables.ts"],"sourcesContent":["import type { TableSchema } from \"@vuu-ui/vuu-data-types\";\nimport { useDataSource } from \"@vuu-ui/vuu-utils\";\nimport { useCallback, useEffect, useState } from \"react\";\n\nexport const useVuuTables = () => {\n const [tables, setTables] = useState<Map<string, TableSchema> | undefined>();\n\n const { getServerAPI } = useDataSource();\n\n const buildTables = useCallback((schemas: TableSchema[]) => {\n const vuuTables = new Map<string, TableSchema>();\n schemas.forEach((schema) => {\n vuuTables.set(schema.table.table, schema);\n });\n return vuuTables;\n }, []);\n\n useEffect(() => {\n async function fetchTableMetadata() {\n try {\n const server = await getServerAPI();\n const { tables } = await server.getTableList();\n const tableSchemas = buildTables(\n await Promise.all(\n tables.map((vuuTable) => server.getTableSchema(vuuTable)),\n ),\n );\n setTables(tableSchemas);\n } catch (err) {\n console.warn(\n `useVuuTables: error fetching table metadata ${String(err)}`,\n );\n }\n }\n\n fetchTableMetadata();\n }, [buildTables, getServerAPI]);\n\n return tables;\n};\n"],"names":["tables"],"mappings":";;;AAIO,MAAM,eAAe,MAAM;AAChC,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,QAA+C,EAAA,CAAA;AAE3E,EAAM,MAAA,EAAE,YAAa,EAAA,GAAI,aAAc,EAAA,CAAA;AAEvC,EAAM,MAAA,WAAA,GAAc,WAAY,CAAA,CAAC,OAA2B,KAAA;AAC1D,IAAM,MAAA,SAAA,uBAAgB,GAAyB,EAAA,CAAA;AAC/C,IAAQ,OAAA,CAAA,OAAA,CAAQ,CAAC,MAAW,KAAA;AAC1B,MAAA,SAAA,CAAU,GAAI,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA,EAAO,MAAM,CAAA,CAAA;AAAA,KACzC,CAAA,CAAA;AACD,IAAO,OAAA,SAAA,CAAA;AAAA,GACT,EAAG,EAAE,CAAA,CAAA;AAEL,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,eAAe,kBAAqB,GAAA;AAClC,MAAI,IAAA;AACF,QAAM,MAAA,MAAA,GAAS,MAAM,YAAa,EAAA,CAAA;AAClC,QAAA,MAAM,EAAE,MAAAA,EAAAA,OAAAA,EAAW,GAAA,MAAM,OAAO,YAAa,EAAA,CAAA;AAC7C,QAAA,MAAM,YAAe,GAAA,WAAA;AAAA,UACnB,MAAM,OAAQ,CAAA,GAAA;AAAA,YACZA,QAAO,GAAI,CAAA,CAAC,aAAa,MAAO,CAAA,cAAA,CAAe,QAAQ,CAAC,CAAA;AAAA,WAC1D;AAAA,SACF,CAAA;AACA,QAAA,SAAA,CAAU,YAAY,CAAA,CAAA;AAAA,eACf,GAAK,EAAA;AACZ,QAAQ,OAAA,CAAA,IAAA;AAAA,UACN,CAAA,4CAAA,EAA+C,MAAO,CAAA,GAAG,CAAC,CAAA,CAAA;AAAA,SAC5D,CAAA;AAAA,OACF;AAAA,KACF;AAEA,IAAmB,kBAAA,EAAA,CAAA;AAAA,GAClB,EAAA,CAAC,WAAa,EAAA,YAAY,CAAC,CAAA,CAAA;AAE9B,EAAO,OAAA,MAAA,CAAA;AACT;;;;"}
|
package/esm/index.js
CHANGED
|
@@ -4,10 +4,10 @@ export { OK, buildValidationChecker, getEditValidationRules } from './data-editi
|
|
|
4
4
|
export { UnsavedChangesReport } from './data-editing/UnsavedChangesReport.js';
|
|
5
5
|
export { VuuDataSourceProvider } from './datasource-provider/VuuDataSourceProvider.js';
|
|
6
6
|
export { useLookupValues } from './hooks/useLookupValues.js';
|
|
7
|
+
export { useSessionDataSource } from './hooks/useSessionDataSource.js';
|
|
7
8
|
export { useVuuMenuActions } from './hooks/useVuuMenuActions.js';
|
|
8
9
|
export { useVuuTables } from './hooks/useVuuTables.js';
|
|
9
10
|
export { useVisualLinks } from './hooks/useVisualLinks.js';
|
|
10
|
-
export { useServerConnectionStatus } from './hooks/useServerConnectionStatus.js';
|
|
11
11
|
export { useServerConnectionQuality } from './hooks/useServerConnectionQuality.js';
|
|
12
12
|
export { getTypeaheadParams, useTypeaheadSuggestions } from './hooks/useTypeaheadSuggestions.js';
|
|
13
13
|
export { SessionEditingForm } from './session-editing-form/SessionEditingForm.js';
|
package/package.json
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.8.
|
|
2
|
+
"version": "0.8.94",
|
|
3
3
|
"author": "heswell",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"devDependencies": {
|
|
6
|
-
"@vuu-ui/vuu-data-types": "0.8.
|
|
7
|
-
"@vuu-ui/vuu-filter-types": "0.8.
|
|
8
|
-
"@vuu-ui/vuu-popups": "0.8.
|
|
9
|
-
"@vuu-ui/vuu-protocol-types": "0.8.
|
|
10
|
-
"@vuu-ui/vuu-table-types": "0.8.
|
|
6
|
+
"@vuu-ui/vuu-data-types": "0.8.94",
|
|
7
|
+
"@vuu-ui/vuu-filter-types": "0.8.94",
|
|
8
|
+
"@vuu-ui/vuu-popups": "0.8.94",
|
|
9
|
+
"@vuu-ui/vuu-protocol-types": "0.8.94",
|
|
10
|
+
"@vuu-ui/vuu-table-types": "0.8.94"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@vuu-ui/vuu-data-remote": "0.8.
|
|
14
|
-
"@vuu-ui/vuu-filter-parser": "0.8.
|
|
15
|
-
"@vuu-ui/vuu-layout": "0.8.
|
|
16
|
-
"@vuu-ui/vuu-popups": "0.8.
|
|
17
|
-
"@vuu-ui/vuu-ui-controls": "0.8.
|
|
18
|
-
"@vuu-ui/vuu-utils": "0.8.
|
|
19
|
-
"@vuu-ui/vuu-table": "0.8.
|
|
13
|
+
"@vuu-ui/vuu-data-remote": "0.8.94",
|
|
14
|
+
"@vuu-ui/vuu-filter-parser": "0.8.94",
|
|
15
|
+
"@vuu-ui/vuu-layout": "0.8.94",
|
|
16
|
+
"@vuu-ui/vuu-popups": "0.8.94",
|
|
17
|
+
"@vuu-ui/vuu-ui-controls": "0.8.94",
|
|
18
|
+
"@vuu-ui/vuu-utils": "0.8.94",
|
|
19
|
+
"@vuu-ui/vuu-table": "0.8.94",
|
|
20
20
|
"@salt-ds/core": "1.34.0",
|
|
21
21
|
"@salt-ds/styles": "0.2.1",
|
|
22
22
|
"@salt-ds/window": "0.1.1"
|
package/types/hooks/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from "./useLookupValues";
|
|
2
|
+
export * from "./useSessionDataSource";
|
|
2
3
|
export * from "./useVuuMenuActions";
|
|
3
4
|
export * from "./useVuuTables";
|
|
4
5
|
export * from "./useVisualLinks";
|
|
5
|
-
export * from "./useServerConnectionStatus";
|
|
6
6
|
export * from "./useServerConnectionQuality";
|
|
7
7
|
export * from "./useTypeaheadSuggestions";
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var react = require('react');
|
|
4
|
-
var vuuDataRemote = require('@vuu-ui/vuu-data-remote');
|
|
5
|
-
|
|
6
|
-
const useServerConnectionStatus = () => {
|
|
7
|
-
const [connectionStatus, setConnectionStatus] = react.useState("disconnected");
|
|
8
|
-
const handleStatusChange = react.useCallback(
|
|
9
|
-
({ status }) => {
|
|
10
|
-
setConnectionStatus(status);
|
|
11
|
-
},
|
|
12
|
-
[]
|
|
13
|
-
);
|
|
14
|
-
react.useEffect(() => {
|
|
15
|
-
vuuDataRemote.ConnectionManager.on("connection-status", handleStatusChange);
|
|
16
|
-
return () => {
|
|
17
|
-
vuuDataRemote.ConnectionManager.removeListener("connection-status", handleStatusChange);
|
|
18
|
-
};
|
|
19
|
-
}, [handleStatusChange]);
|
|
20
|
-
return connectionStatus;
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
exports.useServerConnectionStatus = useServerConnectionStatus;
|
|
24
|
-
//# sourceMappingURL=useServerConnectionStatus.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useServerConnectionStatus.js","sources":["../../src/hooks/useServerConnectionStatus.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from \"react\";\nimport { ConnectionManager } from \"@vuu-ui/vuu-data-remote\";\nimport { ConnectionStatusMessage } from \"@vuu-ui/vuu-data-types\";\n\nexport const useServerConnectionStatus = () => {\n const [connectionStatus, setConnectionStatus] = useState(\"disconnected\");\n\n const handleStatusChange = useCallback(\n ({ status }: ConnectionStatusMessage) => {\n setConnectionStatus(status);\n },\n [],\n );\n\n useEffect(() => {\n ConnectionManager.on(\"connection-status\", handleStatusChange);\n return () => {\n ConnectionManager.removeListener(\"connection-status\", handleStatusChange);\n };\n }, [handleStatusChange]);\n\n return connectionStatus;\n};\n"],"names":["useState","useCallback","useEffect","ConnectionManager"],"mappings":";;;;;AAIO,MAAM,4BAA4B,MAAM;AAC7C,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAIA,eAAS,cAAc,CAAA,CAAA;AAEvE,EAAA,MAAM,kBAAqB,GAAAC,iBAAA;AAAA,IACzB,CAAC,EAAE,MAAA,EAAsC,KAAA;AACvC,MAAA,mBAAA,CAAoB,MAAM,CAAA,CAAA;AAAA,KAC5B;AAAA,IACA,EAAC;AAAA,GACH,CAAA;AAEA,EAAAC,eAAA,CAAU,MAAM;AACd,IAAkBC,+BAAA,CAAA,EAAA,CAAG,qBAAqB,kBAAkB,CAAA,CAAA;AAC5D,IAAA,OAAO,MAAM;AACX,MAAkBA,+BAAA,CAAA,cAAA,CAAe,qBAAqB,kBAAkB,CAAA,CAAA;AAAA,KAC1E,CAAA;AAAA,GACF,EAAG,CAAC,kBAAkB,CAAC,CAAA,CAAA;AAEvB,EAAO,OAAA,gBAAA,CAAA;AACT;;;;"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { useState, useCallback, useEffect } from 'react';
|
|
2
|
-
import { ConnectionManager } from '@vuu-ui/vuu-data-remote';
|
|
3
|
-
|
|
4
|
-
const useServerConnectionStatus = () => {
|
|
5
|
-
const [connectionStatus, setConnectionStatus] = useState("disconnected");
|
|
6
|
-
const handleStatusChange = useCallback(
|
|
7
|
-
({ status }) => {
|
|
8
|
-
setConnectionStatus(status);
|
|
9
|
-
},
|
|
10
|
-
[]
|
|
11
|
-
);
|
|
12
|
-
useEffect(() => {
|
|
13
|
-
ConnectionManager.on("connection-status", handleStatusChange);
|
|
14
|
-
return () => {
|
|
15
|
-
ConnectionManager.removeListener("connection-status", handleStatusChange);
|
|
16
|
-
};
|
|
17
|
-
}, [handleStatusChange]);
|
|
18
|
-
return connectionStatus;
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
export { useServerConnectionStatus };
|
|
22
|
-
//# sourceMappingURL=useServerConnectionStatus.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useServerConnectionStatus.js","sources":["../../src/hooks/useServerConnectionStatus.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from \"react\";\nimport { ConnectionManager } from \"@vuu-ui/vuu-data-remote\";\nimport { ConnectionStatusMessage } from \"@vuu-ui/vuu-data-types\";\n\nexport const useServerConnectionStatus = () => {\n const [connectionStatus, setConnectionStatus] = useState(\"disconnected\");\n\n const handleStatusChange = useCallback(\n ({ status }: ConnectionStatusMessage) => {\n setConnectionStatus(status);\n },\n [],\n );\n\n useEffect(() => {\n ConnectionManager.on(\"connection-status\", handleStatusChange);\n return () => {\n ConnectionManager.removeListener(\"connection-status\", handleStatusChange);\n };\n }, [handleStatusChange]);\n\n return connectionStatus;\n};\n"],"names":[],"mappings":";;;AAIO,MAAM,4BAA4B,MAAM;AAC7C,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAI,SAAS,cAAc,CAAA,CAAA;AAEvE,EAAA,MAAM,kBAAqB,GAAA,WAAA;AAAA,IACzB,CAAC,EAAE,MAAA,EAAsC,KAAA;AACvC,MAAA,mBAAA,CAAoB,MAAM,CAAA,CAAA;AAAA,KAC5B;AAAA,IACA,EAAC;AAAA,GACH,CAAA;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAkB,iBAAA,CAAA,EAAA,CAAG,qBAAqB,kBAAkB,CAAA,CAAA;AAC5D,IAAA,OAAO,MAAM;AACX,MAAkB,iBAAA,CAAA,cAAA,CAAe,qBAAqB,kBAAkB,CAAA,CAAA;AAAA,KAC1E,CAAA;AAAA,GACF,EAAG,CAAC,kBAAkB,CAAC,CAAA,CAAA;AAEvB,EAAO,OAAA,gBAAA,CAAA;AACT;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const useServerConnectionStatus: () => string;
|