@sqlrooms/notebook 0.29.0-rc.2 → 0.29.0-rc.4
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/README.md +10 -10
- package/dist/Notebook.d.ts +3 -1
- package/dist/Notebook.d.ts.map +1 -1
- package/dist/Notebook.js +12 -15
- package/dist/Notebook.js.map +1 -1
- package/dist/NotebookSlice.d.ts.map +1 -1
- package/dist/NotebookSlice.js +47 -67
- package/dist/NotebookSlice.js.map +1 -1
- package/dist/NotebookStateTypes.d.ts +6 -11
- package/dist/NotebookStateTypes.d.ts.map +1 -1
- package/dist/NotebookStateTypes.js.map +1 -1
- package/dist/NotebookUtils.d.ts +5 -5
- package/dist/NotebookUtils.d.ts.map +1 -1
- package/dist/NotebookUtils.js +10 -10
- package/dist/NotebookUtils.js.map +1 -1
- package/dist/cellOperations/AddNewCellDropdown.d.ts +2 -1
- package/dist/cellOperations/AddNewCellDropdown.d.ts.map +1 -1
- package/dist/cellOperations/AddNewCellDropdown.js +5 -6
- package/dist/cellOperations/AddNewCellDropdown.js.map +1 -1
- package/dist/cellOperations/AddNewCellTabs.d.ts +1 -0
- package/dist/cellOperations/AddNewCellTabs.d.ts.map +1 -1
- package/dist/cellOperations/AddNewCellTabs.js +2 -3
- package/dist/cellOperations/AddNewCellTabs.js.map +1 -1
- package/dist/cellOperations/MoveCellButtons.d.ts +1 -0
- package/dist/cellOperations/MoveCellButtons.d.ts.map +1 -1
- package/dist/cellOperations/MoveCellButtons.js +3 -4
- package/dist/cellOperations/MoveCellButtons.js.map +1 -1
- package/dist/cellSchemas.d.ts +9 -9
- package/dist/cellSchemas.d.ts.map +1 -1
- package/dist/cellSchemas.js +8 -8
- package/dist/cellSchemas.js.map +1 -1
- package/dist/cells/CellContainer.d.ts.map +1 -1
- package/dist/cells/CellContainer.js +11 -4
- package/dist/cells/CellContainer.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +22 -22
- package/dist/cellOperations/AddSqlCellResultToNewTable.d.ts +0 -4
- package/dist/cellOperations/AddSqlCellResultToNewTable.d.ts.map +0 -1
- package/dist/cellOperations/AddSqlCellResultToNewTable.js +0 -12
- package/dist/cellOperations/AddSqlCellResultToNewTable.js.map +0 -1
- package/dist/cellOperations/IconWithTooltip.d.ts +0 -10
- package/dist/cellOperations/IconWithTooltip.d.ts.map +0 -1
- package/dist/cellOperations/IconWithTooltip.js +0 -9
- package/dist/cellOperations/IconWithTooltip.js.map +0 -1
- package/dist/cells/Input/InputCell.d.ts +0 -8
- package/dist/cells/Input/InputCell.d.ts.map +0 -1
- package/dist/cells/Input/InputCell.js +0 -40
- package/dist/cells/Input/InputCell.js.map +0 -1
- package/dist/cells/Input/InputConfigPanel/DropdownConfig.d.ts +0 -2
- package/dist/cells/Input/InputConfigPanel/DropdownConfig.d.ts.map +0 -1
- package/dist/cells/Input/InputConfigPanel/DropdownConfig.js +0 -44
- package/dist/cells/Input/InputConfigPanel/DropdownConfig.js.map +0 -1
- package/dist/cells/Input/InputConfigPanel/InputConfigPanel.d.ts +0 -11
- package/dist/cells/Input/InputConfigPanel/InputConfigPanel.d.ts.map +0 -1
- package/dist/cells/Input/InputConfigPanel/InputConfigPanel.js +0 -65
- package/dist/cells/Input/InputConfigPanel/InputConfigPanel.js.map +0 -1
- package/dist/cells/Input/InputConfigPanel/SliderConfig.d.ts +0 -2
- package/dist/cells/Input/InputConfigPanel/SliderConfig.d.ts.map +0 -1
- package/dist/cells/Input/InputConfigPanel/SliderConfig.js +0 -18
- package/dist/cells/Input/InputConfigPanel/SliderConfig.js.map +0 -1
- package/dist/cells/Input/InputConfigPanel/TextConfig.d.ts +0 -2
- package/dist/cells/Input/InputConfigPanel/TextConfig.d.ts.map +0 -1
- package/dist/cells/Input/InputConfigPanel/TextConfig.js +0 -8
- package/dist/cells/Input/InputConfigPanel/TextConfig.js.map +0 -1
- package/dist/cells/InputBar.d.ts +0 -9
- package/dist/cells/InputBar.d.ts.map +0 -1
- package/dist/cells/InputBar.js +0 -23
- package/dist/cells/InputBar.js.map +0 -1
- package/dist/cells/SqlCell.d.ts +0 -5
- package/dist/cells/SqlCell.d.ts.map +0 -1
- package/dist/cells/SqlCell.js +0 -29
- package/dist/cells/SqlCell.js.map +0 -1
- package/dist/cells/TextCell.d.ts +0 -5
- package/dist/cells/TextCell.d.ts.map +0 -1
- package/dist/cells/TextCell.js +0 -36
- package/dist/cells/TextCell.js.map +0 -1
- package/dist/cells/Vega/VegaCell.d.ts +0 -5
- package/dist/cells/Vega/VegaCell.d.ts.map +0 -1
- package/dist/cells/Vega/VegaCell.js +0 -78
- package/dist/cells/Vega/VegaCell.js.map +0 -1
- package/dist/cells/Vega/VegaConfigPanel.d.ts +0 -8
- package/dist/cells/Vega/VegaConfigPanel.d.ts.map +0 -1
- package/dist/cells/Vega/VegaConfigPanel.js +0 -72
- package/dist/cells/Vega/VegaConfigPanel.js.map +0 -1
- package/dist/crdt.d.ts +0 -51
- package/dist/crdt.d.ts.map +0 -1
- package/dist/crdt.js +0 -74
- package/dist/crdt.js.map +0 -1
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Tabs, TabsContent, TabsList, TabsTrigger, Label, Separator, } from '@sqlrooms/ui';
|
|
3
|
-
import { useSql } from '@sqlrooms/duckdb';
|
|
4
|
-
const markOptions = [
|
|
5
|
-
{ value: 'bar', label: 'Bar' },
|
|
6
|
-
{ value: 'line', label: 'Line' },
|
|
7
|
-
];
|
|
8
|
-
const colorOptions = [
|
|
9
|
-
{ value: '#077A9D', label: 'Blue' },
|
|
10
|
-
{ value: '#FFAB00', label: 'Orange' },
|
|
11
|
-
{ value: '#00A972', label: 'Green' },
|
|
12
|
-
{ value: '#85b6b2', label: 'Teal' },
|
|
13
|
-
{ value: '#919191', label: 'Gray' },
|
|
14
|
-
];
|
|
15
|
-
const aggregationOptions = [
|
|
16
|
-
{ value: 'sum', label: 'Sum' },
|
|
17
|
-
{ value: 'mean', label: 'Mean' },
|
|
18
|
-
{ value: 'count', label: 'Count' },
|
|
19
|
-
];
|
|
20
|
-
export const VegaConfigPanel = ({ sqlQuery, lastRunTime, spec, onSpecChange }) => {
|
|
21
|
-
const result = useSql({ query: sqlQuery, version: lastRunTime });
|
|
22
|
-
const arrowTable = result.data?.arrowTable;
|
|
23
|
-
const fieldNames = arrowTable?.schema?.fields?.map((field) => field.name) || [];
|
|
24
|
-
const handleMarkChange = (mark) => {
|
|
25
|
-
onSpecChange({
|
|
26
|
-
...spec,
|
|
27
|
-
mark,
|
|
28
|
-
});
|
|
29
|
-
};
|
|
30
|
-
const handleXFieldChange = (field) => {
|
|
31
|
-
onSpecChange({
|
|
32
|
-
...spec,
|
|
33
|
-
encoding: {
|
|
34
|
-
...spec?.encoding,
|
|
35
|
-
x: { ...spec?.encoding?.x, field },
|
|
36
|
-
},
|
|
37
|
-
});
|
|
38
|
-
};
|
|
39
|
-
const handleYFieldChange = (field) => {
|
|
40
|
-
onSpecChange({
|
|
41
|
-
...spec,
|
|
42
|
-
encoding: {
|
|
43
|
-
...spec?.encoding,
|
|
44
|
-
y: {
|
|
45
|
-
...spec?.encoding?.y,
|
|
46
|
-
field,
|
|
47
|
-
aggregate: spec?.encoding?.y?.aggregate ?? 'sum',
|
|
48
|
-
},
|
|
49
|
-
},
|
|
50
|
-
});
|
|
51
|
-
};
|
|
52
|
-
const handleYAggregationChange = (aggregate) => {
|
|
53
|
-
onSpecChange({
|
|
54
|
-
...spec,
|
|
55
|
-
encoding: {
|
|
56
|
-
...spec?.encoding,
|
|
57
|
-
y: { ...spec?.encoding?.y, aggregate },
|
|
58
|
-
},
|
|
59
|
-
});
|
|
60
|
-
};
|
|
61
|
-
const handleColorChange = (color) => {
|
|
62
|
-
onSpecChange({
|
|
63
|
-
...spec,
|
|
64
|
-
encoding: {
|
|
65
|
-
...spec?.encoding,
|
|
66
|
-
color: { value: color },
|
|
67
|
-
},
|
|
68
|
-
});
|
|
69
|
-
};
|
|
70
|
-
return (_jsx("div", { className: "w-80 border-r p-4 text-xs", children: _jsxs("div", { className: "space-y-3", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Label, { className: "text-xs font-medium text-gray-400", children: "Type" }), _jsxs(Select, { value: spec?.mark, onValueChange: handleMarkChange, children: [_jsx(SelectTrigger, { className: "h-8 text-xs", children: _jsx(SelectValue, { placeholder: "Select chart type" }) }), _jsx(SelectContent, { onCloseAutoFocus: (e) => e.preventDefault(), children: markOptions.map((option) => (_jsx(SelectItem, { value: option.value, children: option.label }, option.value))) })] })] }), _jsx(Separator, {}), _jsxs(Tabs, { defaultValue: "general", className: "w-full", children: [_jsxs(TabsList, { className: "grid w-full grid-cols-2", children: [_jsx(TabsTrigger, { value: "general", className: "text-xs", children: "General" }), _jsx(TabsTrigger, { value: "styles", className: "text-xs", children: "Styles" })] }), _jsxs(TabsContent, { value: "general", className: "mt-4 space-y-4", children: [_jsxs("div", { className: "space-y-1", children: [_jsx(Label, { className: "text-xs font-medium text-gray-400", children: "X-Axis" }), _jsxs(Select, { value: spec?.encoding?.x?.field || '', onValueChange: handleXFieldChange, children: [_jsx(SelectTrigger, { className: "h-8 text-xs", children: _jsx(SelectValue, { placeholder: "Select field" }) }), _jsx(SelectContent, { onCloseAutoFocus: (e) => e.preventDefault(), children: fieldNames.map((field) => (_jsx(SelectItem, { value: field, children: field }, field))) })] })] }), _jsxs("div", { className: "space-y-1", children: [_jsx(Label, { className: "text-xs font-medium text-gray-400", children: "Y-Axis" }), _jsxs("div", { className: "grid grid-cols-[2fr_1fr] gap-2", children: [_jsxs(Select, { value: spec?.encoding?.y?.field || '', onValueChange: handleYFieldChange, children: [_jsx(SelectTrigger, { className: "h-8 text-xs", children: _jsx(SelectValue, { placeholder: "Select field" }) }), _jsx(SelectContent, { onCloseAutoFocus: (e) => e.preventDefault(), children: fieldNames.map((field) => (_jsx(SelectItem, { value: field, children: field }, field))) })] }), _jsxs(Select, { value: spec?.encoding?.y?.aggregate, onValueChange: handleYAggregationChange, children: [_jsx(SelectTrigger, { className: "h-8 text-xs", children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { onCloseAutoFocus: (e) => e.preventDefault(), children: aggregationOptions.map((option) => (_jsx(SelectItem, { value: option.value, children: option.label }, option.value))) })] })] })] })] }), _jsx(TabsContent, { value: "styles", className: "mt-4 space-y-4", children: _jsxs("div", { className: "space-y-1", children: [_jsx(Label, { className: "font-medium", children: "Color" }), _jsxs(Select, { value: spec?.encoding?.color?.value, onValueChange: handleColorChange, children: [_jsx(SelectTrigger, { className: "h-8 text-xs", children: _jsx(SelectValue, { placeholder: "Select color" }) }), _jsx(SelectContent, { onCloseAutoFocus: (e) => e.preventDefault(), children: colorOptions.map((option) => (_jsx(SelectItem, { value: option.value, children: option.label }, option.value))) })] })] }) })] })] }) }));
|
|
71
|
-
};
|
|
72
|
-
//# sourceMappingURL=VegaConfigPanel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VegaConfigPanel.js","sourceRoot":"","sources":["../../../src/cells/Vega/VegaConfigPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Label,\n Separator,\n} from '@sqlrooms/ui';\nimport {useSql} from '@sqlrooms/duckdb';\n\nconst markOptions = [\n {value: 'bar', label: 'Bar'},\n {value: 'line', label: 'Line'},\n];\n\nconst colorOptions = [\n {value: '#077A9D', label: 'Blue'},\n {value: '#FFAB00', label: 'Orange'},\n {value: '#00A972', label: 'Green'},\n {value: '#85b6b2', label: 'Teal'},\n {value: '#919191', label: 'Gray'},\n];\n\nconst aggregationOptions = [\n {value: 'sum', label: 'Sum'},\n {value: 'mean', label: 'Mean'},\n {value: 'count', label: 'Count'},\n];\n\nexport const VegaConfigPanel: React.FC<{\n spec: any;\n sqlQuery: string;\n lastRunTime?: number;\n onSpecChange: (spec: any) => void;\n}> = ({sqlQuery, lastRunTime, spec, onSpecChange}) => {\n const result = useSql({query: sqlQuery, version: lastRunTime});\n const arrowTable = result.data?.arrowTable;\n const fieldNames =\n arrowTable?.schema?.fields?.map((field: any) => field.name) || [];\n\n const handleMarkChange = (mark: string) => {\n onSpecChange({\n ...spec,\n mark,\n });\n };\n\n const handleXFieldChange = (field: string) => {\n onSpecChange({\n ...spec,\n encoding: {\n ...spec?.encoding,\n x: {...spec?.encoding?.x, field},\n },\n });\n };\n\n const handleYFieldChange = (field: string) => {\n onSpecChange({\n ...spec,\n encoding: {\n ...spec?.encoding,\n y: {\n ...spec?.encoding?.y,\n field,\n aggregate: spec?.encoding?.y?.aggregate ?? 'sum',\n },\n },\n });\n };\n\n const handleYAggregationChange = (aggregate: string) => {\n onSpecChange({\n ...spec,\n encoding: {\n ...spec?.encoding,\n y: {...spec?.encoding?.y, aggregate},\n },\n });\n };\n\n const handleColorChange = (color: string) => {\n onSpecChange({\n ...spec,\n encoding: {\n ...spec?.encoding,\n color: {value: color},\n },\n });\n };\n\n return (\n <div className=\"w-80 border-r p-4 text-xs\">\n <div className=\"space-y-3\">\n <div className=\"flex items-center gap-2\">\n <Label className=\"text-xs font-medium text-gray-400\">Type</Label>\n <Select value={spec?.mark} onValueChange={handleMarkChange}>\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"Select chart type\" />\n </SelectTrigger>\n <SelectContent onCloseAutoFocus={(e) => e.preventDefault()}>\n {markOptions.map((option) => (\n <SelectItem key={option.value} value={option.value}>\n {option.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n\n <Separator />\n\n <Tabs defaultValue=\"general\" className=\"w-full\">\n <TabsList className=\"grid w-full grid-cols-2\">\n <TabsTrigger value=\"general\" className=\"text-xs\">\n General\n </TabsTrigger>\n <TabsTrigger value=\"styles\" className=\"text-xs\">\n Styles\n </TabsTrigger>\n </TabsList>\n\n <TabsContent value=\"general\" className=\"mt-4 space-y-4\">\n <div className=\"space-y-1\">\n <Label className=\"text-xs font-medium text-gray-400\">\n X-Axis\n </Label>\n <Select\n value={spec?.encoding?.x?.field || ''}\n onValueChange={handleXFieldChange}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"Select field\" />\n </SelectTrigger>\n <SelectContent onCloseAutoFocus={(e) => e.preventDefault()}>\n {fieldNames.map((field: string) => (\n <SelectItem key={field} value={field}>\n {field}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n <div className=\"space-y-1\">\n <Label className=\"text-xs font-medium text-gray-400\">\n Y-Axis\n </Label>\n <div className=\"grid grid-cols-[2fr_1fr] gap-2\">\n <Select\n value={spec?.encoding?.y?.field || ''}\n onValueChange={handleYFieldChange}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"Select field\" />\n </SelectTrigger>\n <SelectContent onCloseAutoFocus={(e) => e.preventDefault()}>\n {fieldNames.map((field: string) => (\n <SelectItem key={field} value={field}>\n {field}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n\n <Select\n value={spec?.encoding?.y?.aggregate}\n onValueChange={handleYAggregationChange}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent onCloseAutoFocus={(e) => e.preventDefault()}>\n {aggregationOptions.map((option) => (\n <SelectItem key={option.value} value={option.value}>\n {option.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </div>\n </TabsContent>\n\n <TabsContent value=\"styles\" className=\"mt-4 space-y-4\">\n <div className=\"space-y-1\">\n <Label className=\"font-medium\">Color</Label>\n <Select\n value={spec?.encoding?.color?.value}\n onValueChange={handleColorChange}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue placeholder=\"Select color\" />\n </SelectTrigger>\n <SelectContent onCloseAutoFocus={(e) => e.preventDefault()}>\n {colorOptions.map((option) => (\n <SelectItem key={option.value} value={option.value}>\n {option.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </TabsContent>\n </Tabs>\n </div>\n </div>\n );\n};\n"]}
|
package/dist/crdt.d.ts
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import type { CrdtMirror } from '@sqlrooms/crdt';
|
|
2
|
-
import type { NotebookSliceState } from './NotebookStateTypes';
|
|
3
|
-
/**
|
|
4
|
-
* Mirror schema for syncing the `@sqlrooms/notebook` slice via `@sqlrooms/crdt`.
|
|
5
|
-
*
|
|
6
|
-
* Syncs: sheets (cellOrder, inputBarOrder, showInputBar)
|
|
7
|
-
* Keeps local: currentCellId
|
|
8
|
-
*/
|
|
9
|
-
export declare const notebookMirrorSchema: import("loro-mirror").LoroMapSchema<{
|
|
10
|
-
config: import("loro-mirror").LoroMapSchema<{
|
|
11
|
-
sheets: /*elided*/ any;
|
|
12
|
-
}> & {
|
|
13
|
-
options: {};
|
|
14
|
-
} & {
|
|
15
|
-
catchall: <C extends import("loro-mirror").SchemaType>(catchallSchema: C) => import("loro-mirror").LoroMapSchemaWithCatchall<{
|
|
16
|
-
sheets: /*elided*/ any;
|
|
17
|
-
}, C>;
|
|
18
|
-
};
|
|
19
|
-
}> & {
|
|
20
|
-
options: {};
|
|
21
|
-
} & {
|
|
22
|
-
catchall: <C extends import("loro-mirror").SchemaType>(catchallSchema: C) => import("loro-mirror").LoroMapSchemaWithCatchall<{
|
|
23
|
-
config: import("loro-mirror").LoroMapSchema<{
|
|
24
|
-
sheets: /*elided*/ any;
|
|
25
|
-
}> & {
|
|
26
|
-
options: {};
|
|
27
|
-
} & {
|
|
28
|
-
catchall: <C_1 extends import("loro-mirror").SchemaType>(catchallSchema: C_1) => import("loro-mirror").LoroMapSchemaWithCatchall<{
|
|
29
|
-
sheets: /*elided*/ any;
|
|
30
|
-
}, C_1>;
|
|
31
|
-
};
|
|
32
|
-
}, C>;
|
|
33
|
-
};
|
|
34
|
-
export type NotebookMirrorSchema = typeof notebookMirrorSchema;
|
|
35
|
-
/**
|
|
36
|
-
* Default initial mirror state for the notebook CRDT schema.
|
|
37
|
-
*/
|
|
38
|
-
export declare const notebookMirrorInitialState: {
|
|
39
|
-
config: {
|
|
40
|
-
sheets: never[];
|
|
41
|
-
};
|
|
42
|
-
};
|
|
43
|
-
/**
|
|
44
|
-
* Creates a CRDT mirror bundle for the notebook slice.
|
|
45
|
-
*/
|
|
46
|
-
export declare function createNotebookCrdtMirror<S extends NotebookSliceState = NotebookSliceState>(): CrdtMirror<S, typeof notebookMirrorSchema>;
|
|
47
|
-
/**
|
|
48
|
-
* @deprecated Use `createNotebookCrdtMirror` instead.
|
|
49
|
-
*/
|
|
50
|
-
export declare const createNotebookCrdtModule: typeof createNotebookCrdtMirror;
|
|
51
|
-
//# sourceMappingURL=crdt.d.ts.map
|
package/dist/crdt.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"crdt.d.ts","sourceRoot":"","sources":["../src/crdt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAE/C,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAE7D;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;CAc/B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,OAAO,oBAAoB,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;CAItC,CAAC;AAEF;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,CAAC,SAAS,kBAAkB,GAAG,kBAAkB,KAC9C,UAAU,CAAC,CAAC,EAAE,OAAO,oBAAoB,CAAC,CAoD9C;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB,iCAA2B,CAAC"}
|
package/dist/crdt.js
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { schema } from 'loro-mirror';
|
|
2
|
-
import { NotebookSliceConfig } from './cellSchemas';
|
|
3
|
-
/**
|
|
4
|
-
* Mirror schema for syncing the `@sqlrooms/notebook` slice via `@sqlrooms/crdt`.
|
|
5
|
-
*
|
|
6
|
-
* Syncs: sheets (cellOrder, inputBarOrder, showInputBar)
|
|
7
|
-
* Keeps local: currentCellId
|
|
8
|
-
*/
|
|
9
|
-
export const notebookMirrorSchema = schema.LoroMap({
|
|
10
|
-
config: schema.LoroMap({
|
|
11
|
-
sheets: schema.LoroList(schema.LoroMap({
|
|
12
|
-
id: schema.String(),
|
|
13
|
-
meta: schema.LoroMap({
|
|
14
|
-
cellOrder: schema.LoroList(schema.String()),
|
|
15
|
-
inputBarOrder: schema.LoroList(schema.String()),
|
|
16
|
-
showInputBar: schema.Boolean(),
|
|
17
|
-
}),
|
|
18
|
-
}), (sheet) => sheet.id),
|
|
19
|
-
}),
|
|
20
|
-
});
|
|
21
|
-
/**
|
|
22
|
-
* Default initial mirror state for the notebook CRDT schema.
|
|
23
|
-
*/
|
|
24
|
-
export const notebookMirrorInitialState = {
|
|
25
|
-
config: {
|
|
26
|
-
sheets: [],
|
|
27
|
-
},
|
|
28
|
-
};
|
|
29
|
-
/**
|
|
30
|
-
* Creates a CRDT mirror bundle for the notebook slice.
|
|
31
|
-
*/
|
|
32
|
-
export function createNotebookCrdtMirror() {
|
|
33
|
-
return {
|
|
34
|
-
schema: notebookMirrorSchema,
|
|
35
|
-
initialState: notebookMirrorInitialState,
|
|
36
|
-
select: (state) => ({
|
|
37
|
-
config: {
|
|
38
|
-
sheets: Object.values(state.notebook.config.sheets).map((sheet) => ({
|
|
39
|
-
id: sheet.id,
|
|
40
|
-
meta: {
|
|
41
|
-
cellOrder: sheet.meta.cellOrder,
|
|
42
|
-
inputBarOrder: sheet.meta.inputBarOrder,
|
|
43
|
-
showInputBar: sheet.meta.showInputBar,
|
|
44
|
-
},
|
|
45
|
-
})),
|
|
46
|
-
},
|
|
47
|
-
}),
|
|
48
|
-
apply: (value, set, get) => {
|
|
49
|
-
if (!value?.config)
|
|
50
|
-
return;
|
|
51
|
-
const configValue = value.config;
|
|
52
|
-
const currentSheets = get().notebook.config.sheets;
|
|
53
|
-
const newSheets = Object.fromEntries((configValue.sheets || []).map((s) => [
|
|
54
|
-
s.id,
|
|
55
|
-
{ ...currentSheets[s.id], id: s.id, meta: s.meta },
|
|
56
|
-
]));
|
|
57
|
-
set((state) => ({
|
|
58
|
-
...state,
|
|
59
|
-
notebook: {
|
|
60
|
-
...state.notebook,
|
|
61
|
-
config: NotebookSliceConfig.parse({
|
|
62
|
-
...state.notebook.config,
|
|
63
|
-
sheets: newSheets,
|
|
64
|
-
}),
|
|
65
|
-
},
|
|
66
|
-
}));
|
|
67
|
-
},
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* @deprecated Use `createNotebookCrdtMirror` instead.
|
|
72
|
-
*/
|
|
73
|
-
export const createNotebookCrdtModule = createNotebookCrdtMirror;
|
|
74
|
-
//# sourceMappingURL=crdt.js.map
|
package/dist/crdt.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"crdt.js","sourceRoot":"","sources":["../src/crdt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AAEnC,OAAO,EAAC,mBAAmB,EAAC,MAAM,eAAe,CAAC;AAGlD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,CAAC;IACjD,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC,QAAQ,CACrB,MAAM,CAAC,OAAO,CAAC;YACb,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE;YACnB,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC;gBACnB,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC3C,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC/C,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE;aAC/B,CAAC;SACH,CAAC,EACF,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CACpB;KACF,CAAC;CACH,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,MAAM,EAAE;QACN,MAAM,EAAE,EAAE;KACX;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,wBAAwB;IAGtC,OAAO;QACL,MAAM,EAAE,oBAAoB;QAC5B,YAAY,EAAE,0BAA0B;QAExC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAClB,MAAM,EAAE;gBACN,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBAClE,EAAE,EAAE,KAAK,CAAC,EAAE;oBACZ,IAAI,EAAE;wBACJ,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS;wBAC/B,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa;wBACvC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY;qBACtC;iBACF,CAAC,CAAC;aACJ;SACF,CAAC;QAEF,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACzB,IAAI,CAAC,KAAK,EAAE,MAAM;gBAAE,OAAO;YAE3B,MAAM,WAAW,GAAG,KAAK,CAAC,MASzB,CAAC;YAEF,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;YACnD,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAClC,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBACpC,CAAC,CAAC,EAAE;gBACJ,EAAC,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAC;aACjD,CAAC,CACH,CAAC;YAEF,GAAG,CAAC,CAAC,KAAQ,EAAE,EAAE,CAAC,CAAC;gBACjB,GAAG,KAAK;gBACR,QAAQ,EAAE;oBACR,GAAG,KAAK,CAAC,QAAQ;oBACjB,MAAM,EAAE,mBAAmB,CAAC,KAAK,CAAC;wBAChC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM;wBACxB,MAAM,EAAE,SAAS;qBAClB,CAAC;iBACH;aACF,CAAC,CAAC,CAAC;QACN,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,wBAAwB,CAAC","sourcesContent":["import {schema} from 'loro-mirror';\nimport type {CrdtMirror} from '@sqlrooms/crdt';\nimport {NotebookSliceConfig} from './cellSchemas';\nimport type {NotebookSliceState} from './NotebookStateTypes';\n\n/**\n * Mirror schema for syncing the `@sqlrooms/notebook` slice via `@sqlrooms/crdt`.\n *\n * Syncs: sheets (cellOrder, inputBarOrder, showInputBar)\n * Keeps local: currentCellId\n */\nexport const notebookMirrorSchema = schema.LoroMap({\n config: schema.LoroMap({\n sheets: schema.LoroList(\n schema.LoroMap({\n id: schema.String(),\n meta: schema.LoroMap({\n cellOrder: schema.LoroList(schema.String()),\n inputBarOrder: schema.LoroList(schema.String()),\n showInputBar: schema.Boolean(),\n }),\n }),\n (sheet) => sheet.id,\n ),\n }),\n});\n\nexport type NotebookMirrorSchema = typeof notebookMirrorSchema;\n\n/**\n * Default initial mirror state for the notebook CRDT schema.\n */\nexport const notebookMirrorInitialState = {\n config: {\n sheets: [],\n },\n};\n\n/**\n * Creates a CRDT mirror bundle for the notebook slice.\n */\nexport function createNotebookCrdtMirror<\n S extends NotebookSliceState = NotebookSliceState,\n>(): CrdtMirror<S, typeof notebookMirrorSchema> {\n return {\n schema: notebookMirrorSchema,\n initialState: notebookMirrorInitialState,\n\n select: (state) => ({\n config: {\n sheets: Object.values(state.notebook.config.sheets).map((sheet) => ({\n id: sheet.id,\n meta: {\n cellOrder: sheet.meta.cellOrder,\n inputBarOrder: sheet.meta.inputBarOrder,\n showInputBar: sheet.meta.showInputBar,\n },\n })),\n },\n }),\n\n apply: (value, set, get) => {\n if (!value?.config) return;\n\n const configValue = value.config as {\n sheets?: Array<{\n id: string;\n meta: {\n cellOrder: string[];\n inputBarOrder: string[];\n showInputBar: boolean;\n };\n }>;\n };\n\n const currentSheets = get().notebook.config.sheets;\n const newSheets = Object.fromEntries(\n (configValue.sheets || []).map((s) => [\n s.id,\n {...currentSheets[s.id], id: s.id, meta: s.meta},\n ]),\n );\n\n set((state: S) => ({\n ...state,\n notebook: {\n ...state.notebook,\n config: NotebookSliceConfig.parse({\n ...state.notebook.config,\n sheets: newSheets,\n }),\n },\n }));\n },\n };\n}\n\n/**\n * @deprecated Use `createNotebookCrdtMirror` instead.\n */\nexport const createNotebookCrdtModule = createNotebookCrdtMirror;\n"]}
|