@guiexpert/preact-table 10.1.109 → 10.1.113
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/GuiexpertTable.d.ts +11 -1
- package/index.cjs +1 -1
- package/index.js +87 -71
- package/package.json +2 -2
package/GuiexpertTable.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component } from 'preact';
|
|
2
|
-
import { FocusModelIf, GeModelChangeEvent, GeBatchEditEvent, GeDetailEvent, GeEditEvent, GeUndoEvent, GeMouseEvent, GeRowDragEvent, GeScrollEvent, GeStateChangeEvent, SelectionModelIf, TableApi, TableModelIf, TableOptions } from '@guiexpert/table';
|
|
2
|
+
import { FocusModelIf, GeModelChangeEvent, GeBatchEditEvent, GeDetailEvent, GeEditEvent, GeUndoEvent, GeColumnResizeEvent, GeColumnMoveEvent, GeMouseEvent, GeRowDragEvent, GeScrollEvent, GeStateChangeEvent, SelectionModelIf, TableApi, TableModelIf, TableOptions } from '@guiexpert/table';
|
|
3
3
|
|
|
4
4
|
export type GeMouseEventFn = (evt: GeMouseEvent) => void;
|
|
5
5
|
export type GeCheckboxEventFn = (evt: any[]) => void;
|
|
@@ -14,6 +14,8 @@ export type GeBatchEditEventFn = (evt: GeBatchEditEvent) => void;
|
|
|
14
14
|
export type GeDetailEventFn = (evt: GeDetailEvent) => void;
|
|
15
15
|
export type GeEditEventFn = (evt: GeEditEvent) => void;
|
|
16
16
|
export type GeUndoEventFn = (evt: GeUndoEvent) => void;
|
|
17
|
+
export type GeColumnResizeEventFn = (evt: GeColumnResizeEvent) => void;
|
|
18
|
+
export type GeColumnMoveEventFn = (evt: GeColumnMoveEvent) => void;
|
|
17
19
|
export interface GuiexpertTableProps {
|
|
18
20
|
tableModel: TableModelIf;
|
|
19
21
|
tableOptions?: TableOptions;
|
|
@@ -47,6 +49,14 @@ export interface GuiexpertTableProps {
|
|
|
47
49
|
editingChanged?: GeEditEventFn;
|
|
48
50
|
/** The undo history changed (since 1.1.99). */
|
|
49
51
|
undoStackChanged?: GeUndoEventFn;
|
|
52
|
+
/** The user started to resize a column (since 1.1.110). */
|
|
53
|
+
columnResizeStart?: GeColumnResizeEventFn;
|
|
54
|
+
/** A column resize by the user ended – `evt.type` "end" or "cancel"; save the layout here (since 1.1.110). */
|
|
55
|
+
columnResizeEnd?: GeColumnResizeEventFn;
|
|
56
|
+
/** The user started to move a column (since 1.1.110). */
|
|
57
|
+
columnMoveStart?: GeColumnMoveEventFn;
|
|
58
|
+
/** A column move by the user ended – `evt.columnOrder` (since 1.1.110). */
|
|
59
|
+
columnMoveEnd?: GeColumnMoveEventFn;
|
|
50
60
|
/**
|
|
51
61
|
* `true` shows the loading overlay ("Loading…" with a CSS spinner) over the body, `false` hides it.
|
|
52
62
|
* Changing it does **not** re-create the table. Texts: `tableOptions.overlayOptions`. @since 1.1.92
|
package/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var u=Object.defineProperty;var C=(s,i,o)=>i in s?u(s,i,{enumerable:!0,configurable:!0,writable:!0,value:o}):s[i]=o;var
|
|
1
|
+
"use strict";var u=Object.defineProperty;var C=(s,i,o)=>i in s?u(s,i,{enumerable:!0,configurable:!0,writable:!0,value:o}):s[i]=o;var h=(s,i,o)=>C(s,typeof i!="symbol"?i+"":i,o);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("preact/jsx-runtime"),d=require("preact"),c=require("@guiexpert/table");class b extends d.Component{constructor(o){super(o);h(this,"ref",d.createRef());h(this,"tableScope");h(this,"shownByProp",!1)}componentDidMount(){const o=this.ref.current;o&&this.initTable(o,this.props)}componentDidUpdate(o){const r=this.ref.current;r&&(o.tableModel!==this.props.tableModel||o.tableOptions!==this.props.tableOptions)&&this.initTable(r,this.props),!!o.loading!=!!this.props.loading&&this.applyLoading(),this.props.licenseKey&&this.props.licenseKey!==o.licenseKey&&c.LicenseManager.getInstance().setLicenseKey(this.props.licenseKey)}componentWillUnmount(){this.destroyTable()}initTable(o,r){var g;this.destroyTable();const a=()=>this.props,p={onSelectionChanged:t=>{var e,n;return(n=(e=a()).selectionChanged)==null?void 0:n.call(e,t)},onFocusChanged:t=>{var e,n;return(n=(e=a()).focusChanged)==null?void 0:n.call(e,t)},onScroll:t=>{var e,n;return(n=(e=a()).scroll)==null?void 0:n.call(e,t)},onCheckboxChanged:t=>{var e,n;return(n=(e=a()).checkboxChanged)==null?void 0:n.call(e,t)},onContextmenu:t=>{var e,n;return(n=(e=a()).contextmenu)==null?void 0:n.call(e,t)},onModelChanged:t=>{var e,n;return(n=(e=a()).modelChanged)==null?void 0:n.call(e,t)},onMouseClicked:t=>{var e,n;return(n=(e=a()).mouseClicked)==null?void 0:n.call(e,t)},onMouseDragging:t=>{var e,n;return(n=(e=a()).mouseDragging)==null?void 0:n.call(e,t)},onMouseDraggingEnd:t=>{var e,n;return(n=(e=a()).mouseDraggingEnd)==null?void 0:n.call(e,t)},onMouseMoved:t=>{var e,n;return(n=(e=a()).mouseMoved)==null?void 0:n.call(e,t)},onStateChanged:t=>{var e,n;return(n=(e=a()).stateChanged)==null?void 0:n.call(e,t)},onRowDragStart:t=>{var e,n;return(n=(e=a()).rowDragStart)==null?void 0:n.call(e,t)},onRowDragMove:t=>{var e,n;return(n=(e=a()).rowDragMove)==null?void 0:n.call(e,t)},onRowDragEnd:t=>{var e,n;return(n=(e=a()).rowDragEnd)==null?void 0:n.call(e,t)},onBatchEditChanged:t=>{var e,n;return(n=(e=a()).batchEditChanged)==null?void 0:n.call(e,t)},onDetailExpandedChanged:t=>{var e,n;return(n=(e=a()).detailExpandedChanged)==null?void 0:n.call(e,t)},onEditingChanged:t=>{var e,n;return(n=(e=a()).editingChanged)==null?void 0:n.call(e,t)},onUndoStackChanged:t=>{var e,n;return(n=(e=a()).undoStackChanged)==null?void 0:n.call(e,t)},onColumnResizeStart:t=>{var e,n;return(n=(e=a()).columnResizeStart)==null?void 0:n.call(e,t)},onColumnResizeEnd:t=>{var e,n;return(n=(e=a()).columnResizeEnd)==null?void 0:n.call(e,t)},onColumnMoveStart:t=>{var e,n;return(n=(e=a()).columnMoveStart)==null?void 0:n.call(e,t)},onColumnMoveEnd:t=>{var e,n;return(n=(e=a()).columnMoveEnd)==null?void 0:n.call(e,t)}},l=new c.TableScope(o,r.tableModel,new c.SimpleDomService,r.tableOptions??new c.TableOptions,p);this.tableScope=l,l.firstInit(),this.shownByProp=!1,this.applyLoading(),(g=r.tableReady)==null||g.call(r,l.getApi()),r.licenseKey&&c.LicenseManager.getInstance().setLicenseKey(r.licenseKey)}applyLoading(){var o,r;this.props.loading?((o=this.tableScope)==null||o.showLoadingOverlay(),this.shownByProp=!0):this.shownByProp&&((r=this.tableScope)==null||r.hideOverlay(),this.shownByProp=!1)}destroyTable(){var o;(o=this.tableScope)==null||o.destroy(),this.tableScope=void 0}render(){return m.jsx("div",{ref:this.ref,className:"container-div",style:{width:"100%",height:"100%",backgroundColor:"transparent",padding:"0",margin:"0"}})}}class y{constructor(i){this.Component=i}render(i,o,r,a,p,l,g){const t={cellDiv:i,rowIndex:o,columnIndex:r,areaIdent:a,areaModel:p,cellValue:l};return d.render(d.h(this.Component,t),i),()=>{d.render(null,i)}}}class S{constructor(i){this.Component=i}render(i,o,r){const a={row:o,rowIndex:r.rowIndex,tableApi:r.tableApi,context:r};return d.render(d.h(this.Component,a),i),()=>d.render(null,i)}}exports.ComponentRendererWrapper=y;exports.DetailComponentRendererWrapper=S;exports.GuiexpertTable=b;
|
package/index.js
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var l = (r, a,
|
|
4
|
-
import { jsx as
|
|
5
|
-
import { Component as y, createRef as
|
|
6
|
-
import { LicenseManager as g, TableScope as
|
|
7
|
-
class
|
|
8
|
-
constructor(
|
|
9
|
-
super(
|
|
10
|
-
l(this, "ref",
|
|
1
|
+
var C = Object.defineProperty;
|
|
2
|
+
var u = (r, a, t) => a in r ? C(r, a, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[a] = t;
|
|
3
|
+
var l = (r, a, t) => u(r, typeof a != "symbol" ? a + "" : a, t);
|
|
4
|
+
import { jsx as b } from "preact/jsx-runtime";
|
|
5
|
+
import { Component as y, createRef as S, render as h, h as m } from "preact";
|
|
6
|
+
import { LicenseManager as g, TableScope as f, SimpleDomService as w, TableOptions as M } from "@guiexpert/table";
|
|
7
|
+
class x extends y {
|
|
8
|
+
constructor(t) {
|
|
9
|
+
super(t);
|
|
10
|
+
l(this, "ref", S());
|
|
11
11
|
l(this, "tableScope");
|
|
12
12
|
/** the overlay was shown by the loading prop: loading={false} hides only that one */
|
|
13
13
|
l(this, "shownByProp", !1);
|
|
14
14
|
}
|
|
15
15
|
componentDidMount() {
|
|
16
|
-
const
|
|
17
|
-
|
|
16
|
+
const t = this.ref.current;
|
|
17
|
+
t && this.initTable(t, this.props);
|
|
18
18
|
}
|
|
19
|
-
componentDidUpdate(
|
|
19
|
+
componentDidUpdate(t) {
|
|
20
20
|
const s = this.ref.current;
|
|
21
|
-
s && (
|
|
21
|
+
s && (t.tableModel !== this.props.tableModel || t.tableOptions !== this.props.tableOptions) && this.initTable(s, this.props), !!t.loading != !!this.props.loading && this.applyLoading(), this.props.licenseKey && this.props.licenseKey !== t.licenseKey && g.getInstance().setLicenseKey(this.props.licenseKey);
|
|
22
22
|
}
|
|
23
23
|
componentWillUnmount() {
|
|
24
24
|
this.destroyTable();
|
|
@@ -27,86 +27,102 @@ class K extends y {
|
|
|
27
27
|
* Creates the table in `ele` (a table created before is destroyed first) and calls `tableReady`.
|
|
28
28
|
* The event callbacks are always taken from the current props.
|
|
29
29
|
*/
|
|
30
|
-
initTable(
|
|
30
|
+
initTable(t, s) {
|
|
31
31
|
var p;
|
|
32
32
|
this.destroyTable();
|
|
33
33
|
const i = () => this.props, c = {
|
|
34
|
-
onSelectionChanged: (
|
|
34
|
+
onSelectionChanged: (o) => {
|
|
35
35
|
var e, n;
|
|
36
|
-
return (n = (e = i()).selectionChanged) == null ? void 0 : n.call(e,
|
|
36
|
+
return (n = (e = i()).selectionChanged) == null ? void 0 : n.call(e, o);
|
|
37
37
|
},
|
|
38
|
-
onFocusChanged: (
|
|
38
|
+
onFocusChanged: (o) => {
|
|
39
39
|
var e, n;
|
|
40
|
-
return (n = (e = i()).focusChanged) == null ? void 0 : n.call(e,
|
|
40
|
+
return (n = (e = i()).focusChanged) == null ? void 0 : n.call(e, o);
|
|
41
41
|
},
|
|
42
|
-
onScroll: (
|
|
42
|
+
onScroll: (o) => {
|
|
43
43
|
var e, n;
|
|
44
|
-
return (n = (e = i()).scroll) == null ? void 0 : n.call(e,
|
|
44
|
+
return (n = (e = i()).scroll) == null ? void 0 : n.call(e, o);
|
|
45
45
|
},
|
|
46
|
-
onCheckboxChanged: (
|
|
46
|
+
onCheckboxChanged: (o) => {
|
|
47
47
|
var e, n;
|
|
48
|
-
return (n = (e = i()).checkboxChanged) == null ? void 0 : n.call(e,
|
|
48
|
+
return (n = (e = i()).checkboxChanged) == null ? void 0 : n.call(e, o);
|
|
49
49
|
},
|
|
50
|
-
onContextmenu: (
|
|
50
|
+
onContextmenu: (o) => {
|
|
51
51
|
var e, n;
|
|
52
|
-
return (n = (e = i()).contextmenu) == null ? void 0 : n.call(e,
|
|
52
|
+
return (n = (e = i()).contextmenu) == null ? void 0 : n.call(e, o);
|
|
53
53
|
},
|
|
54
|
-
onModelChanged: (
|
|
54
|
+
onModelChanged: (o) => {
|
|
55
55
|
var e, n;
|
|
56
|
-
return (n = (e = i()).modelChanged) == null ? void 0 : n.call(e,
|
|
56
|
+
return (n = (e = i()).modelChanged) == null ? void 0 : n.call(e, o);
|
|
57
57
|
},
|
|
58
|
-
onMouseClicked: (
|
|
58
|
+
onMouseClicked: (o) => {
|
|
59
59
|
var e, n;
|
|
60
|
-
return (n = (e = i()).mouseClicked) == null ? void 0 : n.call(e,
|
|
60
|
+
return (n = (e = i()).mouseClicked) == null ? void 0 : n.call(e, o);
|
|
61
61
|
},
|
|
62
|
-
onMouseDragging: (
|
|
62
|
+
onMouseDragging: (o) => {
|
|
63
63
|
var e, n;
|
|
64
|
-
return (n = (e = i()).mouseDragging) == null ? void 0 : n.call(e,
|
|
64
|
+
return (n = (e = i()).mouseDragging) == null ? void 0 : n.call(e, o);
|
|
65
65
|
},
|
|
66
|
-
onMouseDraggingEnd: (
|
|
66
|
+
onMouseDraggingEnd: (o) => {
|
|
67
67
|
var e, n;
|
|
68
|
-
return (n = (e = i()).mouseDraggingEnd) == null ? void 0 : n.call(e,
|
|
68
|
+
return (n = (e = i()).mouseDraggingEnd) == null ? void 0 : n.call(e, o);
|
|
69
69
|
},
|
|
70
|
-
onMouseMoved: (
|
|
70
|
+
onMouseMoved: (o) => {
|
|
71
71
|
var e, n;
|
|
72
|
-
return (n = (e = i()).mouseMoved) == null ? void 0 : n.call(e,
|
|
72
|
+
return (n = (e = i()).mouseMoved) == null ? void 0 : n.call(e, o);
|
|
73
73
|
},
|
|
74
|
-
onStateChanged: (
|
|
74
|
+
onStateChanged: (o) => {
|
|
75
75
|
var e, n;
|
|
76
|
-
return (n = (e = i()).stateChanged) == null ? void 0 : n.call(e,
|
|
76
|
+
return (n = (e = i()).stateChanged) == null ? void 0 : n.call(e, o);
|
|
77
77
|
},
|
|
78
|
-
onRowDragStart: (
|
|
78
|
+
onRowDragStart: (o) => {
|
|
79
79
|
var e, n;
|
|
80
|
-
return (n = (e = i()).rowDragStart) == null ? void 0 : n.call(e,
|
|
80
|
+
return (n = (e = i()).rowDragStart) == null ? void 0 : n.call(e, o);
|
|
81
81
|
},
|
|
82
|
-
onRowDragMove: (
|
|
82
|
+
onRowDragMove: (o) => {
|
|
83
83
|
var e, n;
|
|
84
|
-
return (n = (e = i()).rowDragMove) == null ? void 0 : n.call(e,
|
|
84
|
+
return (n = (e = i()).rowDragMove) == null ? void 0 : n.call(e, o);
|
|
85
85
|
},
|
|
86
|
-
onRowDragEnd: (
|
|
86
|
+
onRowDragEnd: (o) => {
|
|
87
87
|
var e, n;
|
|
88
|
-
return (n = (e = i()).rowDragEnd) == null ? void 0 : n.call(e,
|
|
88
|
+
return (n = (e = i()).rowDragEnd) == null ? void 0 : n.call(e, o);
|
|
89
89
|
},
|
|
90
|
-
onBatchEditChanged: (
|
|
90
|
+
onBatchEditChanged: (o) => {
|
|
91
91
|
var e, n;
|
|
92
|
-
return (n = (e = i()).batchEditChanged) == null ? void 0 : n.call(e,
|
|
92
|
+
return (n = (e = i()).batchEditChanged) == null ? void 0 : n.call(e, o);
|
|
93
93
|
},
|
|
94
|
-
onDetailExpandedChanged: (
|
|
94
|
+
onDetailExpandedChanged: (o) => {
|
|
95
95
|
var e, n;
|
|
96
|
-
return (n = (e = i()).detailExpandedChanged) == null ? void 0 : n.call(e,
|
|
96
|
+
return (n = (e = i()).detailExpandedChanged) == null ? void 0 : n.call(e, o);
|
|
97
97
|
},
|
|
98
|
-
onEditingChanged: (
|
|
98
|
+
onEditingChanged: (o) => {
|
|
99
99
|
var e, n;
|
|
100
|
-
return (n = (e = i()).editingChanged) == null ? void 0 : n.call(e,
|
|
100
|
+
return (n = (e = i()).editingChanged) == null ? void 0 : n.call(e, o);
|
|
101
101
|
},
|
|
102
|
-
onUndoStackChanged: (
|
|
102
|
+
onUndoStackChanged: (o) => {
|
|
103
103
|
var e, n;
|
|
104
|
-
return (n = (e = i()).undoStackChanged) == null ? void 0 : n.call(e,
|
|
104
|
+
return (n = (e = i()).undoStackChanged) == null ? void 0 : n.call(e, o);
|
|
105
|
+
},
|
|
106
|
+
onColumnResizeStart: (o) => {
|
|
107
|
+
var e, n;
|
|
108
|
+
return (n = (e = i()).columnResizeStart) == null ? void 0 : n.call(e, o);
|
|
109
|
+
},
|
|
110
|
+
onColumnResizeEnd: (o) => {
|
|
111
|
+
var e, n;
|
|
112
|
+
return (n = (e = i()).columnResizeEnd) == null ? void 0 : n.call(e, o);
|
|
113
|
+
},
|
|
114
|
+
onColumnMoveStart: (o) => {
|
|
115
|
+
var e, n;
|
|
116
|
+
return (n = (e = i()).columnMoveStart) == null ? void 0 : n.call(e, o);
|
|
117
|
+
},
|
|
118
|
+
onColumnMoveEnd: (o) => {
|
|
119
|
+
var e, n;
|
|
120
|
+
return (n = (e = i()).columnMoveEnd) == null ? void 0 : n.call(e, o);
|
|
105
121
|
}
|
|
106
|
-
}, d = new
|
|
107
|
-
|
|
122
|
+
}, d = new f(
|
|
123
|
+
t,
|
|
108
124
|
s.tableModel,
|
|
109
|
-
new
|
|
125
|
+
new w(),
|
|
110
126
|
s.tableOptions ?? new M(),
|
|
111
127
|
c
|
|
112
128
|
);
|
|
@@ -114,16 +130,16 @@ class K extends y {
|
|
|
114
130
|
}
|
|
115
131
|
/** Shows or hides the loading overlay according to the `loading` prop. */
|
|
116
132
|
applyLoading() {
|
|
117
|
-
var
|
|
118
|
-
this.props.loading ? ((
|
|
133
|
+
var t, s;
|
|
134
|
+
this.props.loading ? ((t = this.tableScope) == null || t.showLoadingOverlay(), this.shownByProp = !0) : this.shownByProp && ((s = this.tableScope) == null || s.hideOverlay(), this.shownByProp = !1);
|
|
119
135
|
}
|
|
120
136
|
/** Releases the table (listeners, resize observer, cell renderers). */
|
|
121
137
|
destroyTable() {
|
|
122
|
-
var
|
|
123
|
-
(
|
|
138
|
+
var t;
|
|
139
|
+
(t = this.tableScope) == null || t.destroy(), this.tableScope = void 0;
|
|
124
140
|
}
|
|
125
141
|
render() {
|
|
126
|
-
return /* @__PURE__ */
|
|
142
|
+
return /* @__PURE__ */ b(
|
|
127
143
|
"div",
|
|
128
144
|
{
|
|
129
145
|
ref: this.ref,
|
|
@@ -139,20 +155,20 @@ class K extends y {
|
|
|
139
155
|
);
|
|
140
156
|
}
|
|
141
157
|
}
|
|
142
|
-
class
|
|
158
|
+
class T {
|
|
143
159
|
constructor(a) {
|
|
144
160
|
this.Component = a;
|
|
145
161
|
}
|
|
146
|
-
render(a,
|
|
147
|
-
const
|
|
162
|
+
render(a, t, s, i, c, d, p) {
|
|
163
|
+
const o = {
|
|
148
164
|
cellDiv: a,
|
|
149
|
-
rowIndex:
|
|
165
|
+
rowIndex: t,
|
|
150
166
|
columnIndex: s,
|
|
151
167
|
areaIdent: i,
|
|
152
168
|
areaModel: c,
|
|
153
169
|
cellValue: d
|
|
154
170
|
};
|
|
155
|
-
return h(
|
|
171
|
+
return h(m(this.Component, o), a), () => {
|
|
156
172
|
h(null, a);
|
|
157
173
|
};
|
|
158
174
|
}
|
|
@@ -176,17 +192,17 @@ class k {
|
|
|
176
192
|
// return cleanupFn;
|
|
177
193
|
// }
|
|
178
194
|
}
|
|
179
|
-
class
|
|
195
|
+
class K {
|
|
180
196
|
constructor(a) {
|
|
181
197
|
this.Component = a;
|
|
182
198
|
}
|
|
183
|
-
render(a,
|
|
184
|
-
const i = { row:
|
|
185
|
-
return h(
|
|
199
|
+
render(a, t, s) {
|
|
200
|
+
const i = { row: t, rowIndex: s.rowIndex, tableApi: s.tableApi, context: s };
|
|
201
|
+
return h(m(this.Component, i), a), () => h(null, a);
|
|
186
202
|
}
|
|
187
203
|
}
|
|
188
204
|
export {
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
205
|
+
T as ComponentRendererWrapper,
|
|
206
|
+
K as DetailComponentRendererWrapper,
|
|
207
|
+
x as GuiexpertTable
|
|
192
208
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@guiexpert/preact-table",
|
|
3
|
-
"version": "10.1.
|
|
3
|
+
"version": "10.1.113",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "Dr. Marc Kronberg <info@gui.expert> (https://gui.expert)",
|
|
6
6
|
"repository": {
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"tslib": "^2.3.0",
|
|
34
|
-
"@guiexpert/table": "^1.1.
|
|
34
|
+
"@guiexpert/table": "^1.1.113"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
37
|
"preact": "^10.0.0"
|