@extable/vue 0.3.4 → 0.3.5
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/dist/index.js +29 -29
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ExtableCore as
|
|
2
|
-
import { defineComponent as
|
|
3
|
-
const
|
|
1
|
+
import { ExtableCore as S } from "@extable/core";
|
|
2
|
+
import { defineComponent as D, getCurrentInstance as h, onMounted as y, onBeforeUnmount as C, watch as R, h as P } from "vue";
|
|
3
|
+
const x = D({
|
|
4
4
|
name: "Extable",
|
|
5
5
|
inheritAttrs: !0,
|
|
6
6
|
props: {
|
|
@@ -23,15 +23,15 @@ const p = S({
|
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
25
|
emits: {
|
|
26
|
-
tableState: (a,
|
|
27
|
-
cellEvent: (a,
|
|
26
|
+
tableState: (a, o) => !0,
|
|
27
|
+
cellEvent: (a, o, i) => !0
|
|
28
28
|
},
|
|
29
|
-
setup(a, { attrs:
|
|
30
|
-
const
|
|
31
|
-
let e = null,
|
|
32
|
-
const
|
|
33
|
-
let
|
|
34
|
-
const w = a.schema,
|
|
29
|
+
setup(a, { attrs: o, emit: i, expose: d }) {
|
|
30
|
+
const c = h();
|
|
31
|
+
let e = null, s = null, u = null;
|
|
32
|
+
const g = a.defaultData === null;
|
|
33
|
+
let r = !1;
|
|
34
|
+
const w = a.schema, m = a.defaultView, b = {
|
|
35
35
|
ranges: [],
|
|
36
36
|
activeRowIndex: null,
|
|
37
37
|
activeRowKey: null,
|
|
@@ -44,24 +44,25 @@ const p = S({
|
|
|
44
44
|
action: null,
|
|
45
45
|
styles: { columnStyle: {}, cellStyle: {}, resolved: {} }
|
|
46
46
|
};
|
|
47
|
-
return
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
return y(() => {
|
|
48
|
+
const t = c?.proxy?.$el;
|
|
49
|
+
t && (e = new S({
|
|
50
|
+
root: t,
|
|
50
51
|
schema: a.schema,
|
|
51
52
|
defaultData: a.defaultData,
|
|
52
53
|
defaultView: a.defaultView,
|
|
53
54
|
options: a.options
|
|
54
|
-
}),
|
|
55
|
-
(
|
|
55
|
+
}), s = e.subscribeTableState((l, n) => i("tableState", l, n)), u = e.subscribeSelection(
|
|
56
|
+
(l, n, f) => i("cellEvent", l, n, f)
|
|
56
57
|
));
|
|
57
|
-
}),
|
|
58
|
-
|
|
59
|
-
}),
|
|
58
|
+
}), C(() => {
|
|
59
|
+
u?.(), s?.(), u = null, s = null, e?.destroy(), e = null;
|
|
60
|
+
}), R(
|
|
60
61
|
() => a.defaultData,
|
|
61
62
|
(t, l) => {
|
|
62
|
-
e &&
|
|
63
|
+
e && g && (r || t !== null && (e.setData(t), r = !0));
|
|
63
64
|
}
|
|
64
|
-
),
|
|
65
|
+
), d({
|
|
65
66
|
destroy: () => {
|
|
66
67
|
e?.destroy(), e = null;
|
|
67
68
|
},
|
|
@@ -73,7 +74,7 @@ const p = S({
|
|
|
73
74
|
getData: () => e?.getData() ?? [],
|
|
74
75
|
getRawData: () => e?.getRawData() ?? [],
|
|
75
76
|
getSchema: () => e?.getSchema() ?? w,
|
|
76
|
-
getView: () => e?.getView() ??
|
|
77
|
+
getView: () => e?.getView() ?? m,
|
|
77
78
|
getCell: (t, l) => e?.getCell(t, l) ?? null,
|
|
78
79
|
getDisplayValue: (t, l) => e?.getDisplayValue(t, l) ?? "",
|
|
79
80
|
getCellPending: (t, l) => e?.getCellPending(t, l) ?? !1,
|
|
@@ -88,7 +89,7 @@ const p = S({
|
|
|
88
89
|
getColumnIndex: (t) => e?.getColumnIndex(t) ?? -1,
|
|
89
90
|
getAllRows: () => e?.getAllRows() ?? [],
|
|
90
91
|
listRows: () => e?.listRows() ?? [],
|
|
91
|
-
setCellValue: (t, l,
|
|
92
|
+
setCellValue: (t, l, n) => e?.setCellValue(t, l, n),
|
|
92
93
|
setValueToSelection: (t) => e?.setValueToSelection(t),
|
|
93
94
|
insertRow: (t, l) => e?.insertRow(t, l) ?? null,
|
|
94
95
|
deleteRow: (t) => e?.deleteRow(t) ?? !1,
|
|
@@ -98,16 +99,15 @@ const p = S({
|
|
|
98
99
|
commit: (t) => t ? e?.commit(t) ?? Promise.resolve([]) : e?.commit() ?? Promise.resolve([]),
|
|
99
100
|
subscribeTableState: (t) => e?.subscribeTableState(t) ?? (() => !1),
|
|
100
101
|
subscribeSelection: (t) => e?.subscribeSelection(t) ?? (() => !1),
|
|
101
|
-
getSelectionSnapshot: () => e?.getSelectionSnapshot() ??
|
|
102
|
-
}), () =>
|
|
103
|
-
ref: i,
|
|
102
|
+
getSelectionSnapshot: () => e?.getSelectionSnapshot() ?? b
|
|
103
|
+
}), () => P("div", {
|
|
104
104
|
"data-extable-wrapper": "",
|
|
105
|
-
...
|
|
106
|
-
class: ["extable-root",
|
|
105
|
+
...o,
|
|
106
|
+
class: ["extable-root", o.class]
|
|
107
107
|
});
|
|
108
108
|
}
|
|
109
109
|
});
|
|
110
110
|
export {
|
|
111
|
-
|
|
111
|
+
x as Extable
|
|
112
112
|
};
|
|
113
113
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import type {\n CommitHandler,\n CoreOptions,\n EditMode,\n LockMode,\n NullableData,\n Schema,\n SelectionChangeReason,\n SelectionSnapshot,\n TableState,\n View,\n} from \"@extable/core\";\nimport { ExtableCore } from \"@extable/core\";\nimport type { PropType } from \"vue\";\nimport { defineComponent, h, onBeforeUnmount, onMounted, ref, watch } from \"vue\";\n\ntype CoreApi<T extends object, R extends object = T> = Pick<\n ExtableCore<T, R>,\n | \"setData\"\n | \"setView\"\n | \"showFilterSortPanel\"\n | \"hideFilterSortPanel\"\n | \"toggleFilterSortPanel\"\n | \"getData\"\n | \"getRawData\"\n | \"getSchema\"\n | \"getView\"\n | \"getCell\"\n | \"getDisplayValue\"\n | \"getCellPending\"\n | \"getRow\"\n | \"getTableData\"\n | \"getColumnData\"\n | \"getPending\"\n | \"getPendingRowIds\"\n | \"hasPendingChanges\"\n | \"getPendingCellCount\"\n | \"getRowIndex\"\n | \"getColumnIndex\"\n | \"getAllRows\"\n | \"listRows\"\n | \"setCellValue\"\n | \"setValueToSelection\"\n | \"insertRow\"\n | \"deleteRow\"\n | \"undo\"\n | \"redo\"\n | \"getUndoRedoHistory\"\n | \"commit\"\n | \"subscribeTableState\"\n | \"subscribeSelection\"\n | \"getSelectionSnapshot\"\n>;\n\nexport type ExtableVueHandle<T extends object = Record<string, unknown>, R extends object = T> = CoreApi<\n T,\n R\n> & {\n destroy(): void;\n};\n\nexport const Extable = defineComponent({\n name: \"Extable\",\n inheritAttrs: true,\n props: {\n schema: {\n type: Object as PropType<Schema<any, any>>,\n required: true,\n },\n defaultData: {\n type: Array as PropType<NullableData<any>>,\n required: false,\n default: null,\n },\n defaultView: {\n type: Object as PropType<View>,\n required: true,\n },\n options: {\n type: Object as PropType<CoreOptions>,\n required: false,\n },\n },\n emits: {\n tableState: (_next: TableState, _prev: TableState | null) => true,\n cellEvent: (\n _next: SelectionSnapshot,\n _prev: SelectionSnapshot | null,\n _reason: SelectionChangeReason,\n ) => true,\n },\n setup(props, { attrs, emit, expose }) {\n const root = ref<HTMLElement | null>(null);\n let core: ExtableCore<Record<string, unknown>> | null = null;\n let unsubTable: (() => void) | null = null;\n let unsubSel: (() => void) | null = null;\n const initialDefaultDataWasNull = props.defaultData === null;\n let consumedDefaultDataLoad = false;\n const initialSchema = props.schema;\n const initialView = props.defaultView;\n const emptySelectionSnapshot: SelectionSnapshot = {\n ranges: [],\n activeRowIndex: null,\n activeRowKey: null,\n activeColumnIndex: null,\n activeColumnKey: null,\n activeValueRaw: undefined,\n activeValueDisplay: \"\",\n activeValueType: null,\n diagnostic: null,\n action: null,\n styles: { columnStyle: {}, cellStyle: {}, resolved: {} },\n };\n\n onMounted(() => {\n if (!root.value) return;\n core = new ExtableCore({\n root: root.value,\n schema: props.schema,\n defaultData: props.defaultData,\n defaultView: props.defaultView,\n options: props.options,\n });\n unsubTable = core.subscribeTableState((next, prev) => emit(\"tableState\", next, prev));\n unsubSel = core.subscribeSelection((next, prev, reason) =>\n emit(\"cellEvent\", next, prev, reason),\n );\n });\n\n onBeforeUnmount(() => {\n unsubSel?.();\n unsubTable?.();\n unsubSel = null;\n unsubTable = null;\n core?.destroy();\n core = null;\n });\n\n watch(\n () => props.defaultData,\n (next, prev) => {\n if (!core) return;\n if (!initialDefaultDataWasNull) return;\n if (consumedDefaultDataLoad) return;\n if (next !== null) {\n core.setData(next);\n consumedDefaultDataLoad = true;\n }\n },\n );\n\n const handle: ExtableVueHandle = {\n destroy: () => {\n core?.destroy();\n core = null;\n },\n setData: (data) => core?.setData(data),\n setView: (view) => core?.setView(view),\n showFilterSortPanel: (colKey: string) => core?.showFilterSortPanel(colKey),\n hideFilterSortPanel: () => core?.hideFilterSortPanel(),\n toggleFilterSortPanel: (colKey: string) => core?.toggleFilterSortPanel(colKey),\n getData: () => core?.getData() ?? [],\n getRawData: () => core?.getRawData() ?? [],\n getSchema: () => core?.getSchema() ?? initialSchema,\n getView: () => core?.getView() ?? initialView,\n getCell: (rowId: string, colKey: any) => core?.getCell(rowId, colKey) ?? null,\n getDisplayValue: (row: any, colKey: any) => core?.getDisplayValue(row, colKey) ?? \"\",\n getCellPending: (row: any, colKey: any) => core?.getCellPending(row, colKey) ?? false,\n getRow: (row: any) => core?.getRow(row) ?? null,\n getTableData: () => core?.getTableData() ?? [],\n getColumnData: (colKey: any) => core?.getColumnData(colKey) ?? [],\n getPending: () => core?.getPending() ?? new Map(),\n getPendingRowIds: () => core?.getPendingRowIds() ?? [],\n hasPendingChanges: () => core?.hasPendingChanges() ?? false,\n getPendingCellCount: () => core?.getPendingCellCount() ?? 0,\n getRowIndex: (rowId: string) => core?.getRowIndex(rowId) ?? -1,\n getColumnIndex: (colKey: string) => core?.getColumnIndex(colKey) ?? -1,\n getAllRows: () => core?.getAllRows() ?? [],\n listRows: () => core?.listRows() ?? [],\n setCellValue: (row: any, colKey: any, next: any) =>\n core?.setCellValue(row as never, colKey as never, next as never),\n setValueToSelection: (next: any) => core?.setValueToSelection(next),\n insertRow: (rowData: any, pos?: any) => core?.insertRow(rowData, pos) ?? null,\n deleteRow: (row: any) => core?.deleteRow(row) ?? false,\n undo: () => core?.undo(),\n redo: () => core?.redo(),\n getUndoRedoHistory: () => core?.getUndoRedoHistory() ?? { undo: [], redo: [] },\n commit: (handler?: CommitHandler) =>\n handler ? core?.commit(handler) ?? Promise.resolve([]) : core?.commit() ?? Promise.resolve([]),\n subscribeTableState: (listener: any) => core?.subscribeTableState(listener) ?? (() => false),\n subscribeSelection: (listener: any) => core?.subscribeSelection(listener) ?? (() => false),\n getSelectionSnapshot: () => core?.getSelectionSnapshot() ?? emptySelectionSnapshot,\n };\n\n expose(handle);\n\n return () =>\n h(\"div\", {\n ref: root,\n \"data-extable-wrapper\": \"\",\n ...attrs,\n class: [\"extable-root\", (attrs as unknown as Record<string, unknown>).class],\n });\n },\n});\n\nexport type {\n CoreOptions,\n EditMode,\n LockMode,\n NullableData,\n Schema,\n SelectionChangeReason,\n SelectionSnapshot,\n TableState,\n View,\n};\n"],"names":["Extable","defineComponent","_next","_prev","_reason","props","attrs","emit","expose","root","ref","core","unsubTable","unsubSel","initialDefaultDataWasNull","consumedDefaultDataLoad","initialSchema","initialView","emptySelectionSnapshot","onMounted","ExtableCore","next","prev","reason","onBeforeUnmount","watch","data","view","colKey","rowId","row","rowData","pos","handler","listener","h"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import type {\n CommitHandler,\n CoreOptions,\n EditMode,\n LockMode,\n NullableData,\n Schema,\n SelectionChangeReason,\n SelectionSnapshot,\n TableState,\n View,\n} from \"@extable/core\";\nimport { ExtableCore } from \"@extable/core\";\nimport type { PropType } from \"vue\";\nimport { defineComponent, getCurrentInstance, h, onBeforeUnmount, onMounted, watch } from \"vue\";\n\ntype CoreApi<T extends object, R extends object = T> = Pick<\n ExtableCore<T, R>,\n | \"setData\"\n | \"setView\"\n | \"showFilterSortPanel\"\n | \"hideFilterSortPanel\"\n | \"toggleFilterSortPanel\"\n | \"getData\"\n | \"getRawData\"\n | \"getSchema\"\n | \"getView\"\n | \"getCell\"\n | \"getDisplayValue\"\n | \"getCellPending\"\n | \"getRow\"\n | \"getTableData\"\n | \"getColumnData\"\n | \"getPending\"\n | \"getPendingRowIds\"\n | \"hasPendingChanges\"\n | \"getPendingCellCount\"\n | \"getRowIndex\"\n | \"getColumnIndex\"\n | \"getAllRows\"\n | \"listRows\"\n | \"setCellValue\"\n | \"setValueToSelection\"\n | \"insertRow\"\n | \"deleteRow\"\n | \"undo\"\n | \"redo\"\n | \"getUndoRedoHistory\"\n | \"commit\"\n | \"subscribeTableState\"\n | \"subscribeSelection\"\n | \"getSelectionSnapshot\"\n>;\n\nexport type ExtableVueHandle<T extends object = Record<string, unknown>, R extends object = T> = CoreApi<\n T,\n R\n> & {\n destroy(): void;\n};\n\nexport const Extable = defineComponent({\n name: \"Extable\",\n inheritAttrs: true,\n props: {\n schema: {\n type: Object as PropType<Schema<any, any>>,\n required: true,\n },\n defaultData: {\n type: Array as PropType<NullableData<any>>,\n required: false,\n default: null,\n },\n defaultView: {\n type: Object as PropType<View>,\n required: true,\n },\n options: {\n type: Object as PropType<CoreOptions>,\n required: false,\n },\n },\n emits: {\n tableState: (_next: TableState, _prev: TableState | null) => true,\n cellEvent: (\n _next: SelectionSnapshot,\n _prev: SelectionSnapshot | null,\n _reason: SelectionChangeReason,\n ) => true,\n },\n setup(props, { attrs, emit, expose }) {\n const instance = getCurrentInstance();\n let core: ExtableCore<Record<string, unknown>> | null = null;\n let unsubTable: (() => void) | null = null;\n let unsubSel: (() => void) | null = null;\n const initialDefaultDataWasNull = props.defaultData === null;\n let consumedDefaultDataLoad = false;\n const initialSchema = props.schema;\n const initialView = props.defaultView;\n const emptySelectionSnapshot: SelectionSnapshot = {\n ranges: [],\n activeRowIndex: null,\n activeRowKey: null,\n activeColumnIndex: null,\n activeColumnKey: null,\n activeValueRaw: undefined,\n activeValueDisplay: \"\",\n activeValueType: null,\n diagnostic: null,\n action: null,\n styles: { columnStyle: {}, cellStyle: {}, resolved: {} },\n };\n\n onMounted(() => {\n const root = instance?.proxy?.$el as HTMLElement | null;\n if (!root) return;\n core = new ExtableCore({\n root,\n schema: props.schema,\n defaultData: props.defaultData,\n defaultView: props.defaultView,\n options: props.options,\n });\n unsubTable = core.subscribeTableState((next, prev) => emit(\"tableState\", next, prev));\n unsubSel = core.subscribeSelection((next, prev, reason) =>\n emit(\"cellEvent\", next, prev, reason),\n );\n });\n\n onBeforeUnmount(() => {\n unsubSel?.();\n unsubTable?.();\n unsubSel = null;\n unsubTable = null;\n core?.destroy();\n core = null;\n });\n\n watch(\n () => props.defaultData,\n (next, prev) => {\n if (!core) return;\n if (!initialDefaultDataWasNull) return;\n if (consumedDefaultDataLoad) return;\n if (next !== null) {\n core.setData(next);\n consumedDefaultDataLoad = true;\n }\n },\n );\n\n const handle: ExtableVueHandle = {\n destroy: () => {\n core?.destroy();\n core = null;\n },\n setData: (data) => core?.setData(data),\n setView: (view) => core?.setView(view),\n showFilterSortPanel: (colKey: string) => core?.showFilterSortPanel(colKey),\n hideFilterSortPanel: () => core?.hideFilterSortPanel(),\n toggleFilterSortPanel: (colKey: string) => core?.toggleFilterSortPanel(colKey),\n getData: () => core?.getData() ?? [],\n getRawData: () => core?.getRawData() ?? [],\n getSchema: () => core?.getSchema() ?? initialSchema,\n getView: () => core?.getView() ?? initialView,\n getCell: (rowId: string, colKey: any) => core?.getCell(rowId, colKey) ?? null,\n getDisplayValue: (row: any, colKey: any) => core?.getDisplayValue(row, colKey) ?? \"\",\n getCellPending: (row: any, colKey: any) => core?.getCellPending(row, colKey) ?? false,\n getRow: (row: any) => core?.getRow(row) ?? null,\n getTableData: () => core?.getTableData() ?? [],\n getColumnData: (colKey: any) => core?.getColumnData(colKey) ?? [],\n getPending: () => core?.getPending() ?? new Map(),\n getPendingRowIds: () => core?.getPendingRowIds() ?? [],\n hasPendingChanges: () => core?.hasPendingChanges() ?? false,\n getPendingCellCount: () => core?.getPendingCellCount() ?? 0,\n getRowIndex: (rowId: string) => core?.getRowIndex(rowId) ?? -1,\n getColumnIndex: (colKey: string) => core?.getColumnIndex(colKey) ?? -1,\n getAllRows: () => core?.getAllRows() ?? [],\n listRows: () => core?.listRows() ?? [],\n setCellValue: (row: any, colKey: any, next: any) =>\n core?.setCellValue(row as never, colKey as never, next as never),\n setValueToSelection: (next: any) => core?.setValueToSelection(next),\n insertRow: (rowData: any, pos?: any) => core?.insertRow(rowData, pos) ?? null,\n deleteRow: (row: any) => core?.deleteRow(row) ?? false,\n undo: () => core?.undo(),\n redo: () => core?.redo(),\n getUndoRedoHistory: () => core?.getUndoRedoHistory() ?? { undo: [], redo: [] },\n commit: (handler?: CommitHandler) =>\n handler ? core?.commit(handler) ?? Promise.resolve([]) : core?.commit() ?? Promise.resolve([]),\n subscribeTableState: (listener: any) => core?.subscribeTableState(listener) ?? (() => false),\n subscribeSelection: (listener: any) => core?.subscribeSelection(listener) ?? (() => false),\n getSelectionSnapshot: () => core?.getSelectionSnapshot() ?? emptySelectionSnapshot,\n };\n\n expose(handle);\n\n return () =>\n h(\"div\", {\n \"data-extable-wrapper\": \"\",\n ...attrs,\n class: [\"extable-root\", (attrs as unknown as Record<string, unknown>).class],\n });\n },\n});\n\nexport type {\n CoreOptions,\n EditMode,\n LockMode,\n NullableData,\n Schema,\n SelectionChangeReason,\n SelectionSnapshot,\n TableState,\n View,\n};\n"],"names":["Extable","defineComponent","_next","_prev","_reason","props","attrs","emit","expose","instance","getCurrentInstance","core","unsubTable","unsubSel","initialDefaultDataWasNull","consumedDefaultDataLoad","initialSchema","initialView","emptySelectionSnapshot","onMounted","root","ExtableCore","next","prev","reason","onBeforeUnmount","watch","data","view","colKey","rowId","row","rowData","pos","handler","listener","h"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@extable/vue",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.5",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"dev": "vite dev"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@extable/core": "0.3.
|
|
31
|
-
"vue": "^3.5.
|
|
30
|
+
"@extable/core": "0.3.5",
|
|
31
|
+
"vue": "^3.5.26"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
34
|
"vue": ">=3"
|