@guiexpert/solid-table 1.1.91 → 1.1.93

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.
@@ -1,4 +1,4 @@
1
- import { FocusModelIf, GeModelChangeEvent, GeMouseEvent, GeScrollEvent, SelectionModelIf, TableApi, TableModelIf, TableOptions } from '@guiexpert/table';
1
+ import { FocusModelIf, GeModelChangeEvent, GeMouseEvent, GeScrollEvent, GeStateChangeEvent, SelectionModelIf, TableApi, TableModelIf, TableOptions } from '@guiexpert/table';
2
2
 
3
3
  export type GeMouseEventFn = (evt: GeMouseEvent) => void;
4
4
  export type GeCheckboxEventFn = (evt: any[]) => void;
@@ -7,6 +7,7 @@ export type GeModelChangeEventFn = (evt: GeModelChangeEvent) => void;
7
7
  export type GeSelectionChangeEventFn = (evt: SelectionModelIf) => void;
8
8
  export type GeFocusChangeEventFn = (evt: FocusModelIf) => void;
9
9
  export type GeScrollEventFn = (evt: GeScrollEvent) => void;
10
+ export type GeStateChangeEventFn = (evt: GeStateChangeEvent) => void;
10
11
  export interface GuiexpertTableProps {
11
12
  tableModel: TableModelIf;
12
13
  tableOptions?: TableOptions;
@@ -20,6 +21,17 @@ export interface GuiexpertTableProps {
20
21
  modelChanged?: GeModelChangeEventFn;
21
22
  selectionChanged?: GeSelectionChangeEventFn;
22
23
  focusChanged?: GeFocusChangeEventFn;
24
+ /**
25
+ * The state changed (column layout, sorting, scroll position, tree, checked/selected rows …) – once after the
26
+ * changes settled. Save `evt.state` (e.g. on your server) and pass it back as `tableOptions.initialState`.
27
+ * @since 1.1.92
28
+ */
29
+ stateChanged?: GeStateChangeEventFn;
23
30
  tableReady?: GeTableReadyEventFn;
24
31
  licenseKey?: string;
32
+ /**
33
+ * `true` shows the loading overlay ("Loading…" with a CSS spinner) over the body, `false` hides it.
34
+ * Changing it does **not** re-create the table. Texts: `tableOptions.overlayOptions`. @since 1.1.92
35
+ */
36
+ loading?: boolean;
25
37
  }
package/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("solid-js/web"),c=require("solid-js"),l=require("@guiexpert/table");class p{constructor(t){this.code=t}render(t,n,o,d,e,s,r){const u=i.mergeProps({rowIndex:n,columnIndex:o,areaIdent:d,areaModel:e,cellValue:s});return i.render(()=>this.code(u),t)}}var m=i.template("<div>");const b=g=>{let t;const n=c.mergeProps({tableModel:null,tableOptions:new l.TableOptions},g),o=(e,s,r)=>{r&&r(s),t&&t.dispatchEvent(new CustomEvent(e,{detail:s,bubbles:e!=="scroll"}))},d={onSelectionChanged:e=>o("selectionChanged",e,n.selectionChanged),onFocusChanged:e=>o("focusChanged",e,n.focusChanged),onScroll:e=>o("scroll",e,n.scroll),onCheckboxChanged:e=>o("checkboxChanged",e,n.checkboxChanged),onContextmenu:e=>o("contextmenu",e,n.contextmenu),onModelChanged:e=>o("modelChanged",e,n.modelChanged),onMouseClicked:e=>o("mouseClicked",e,n.mouseClicked),onMouseDragging:e=>o("mouseDragging",e,n.mouseDragging),onMouseDraggingEnd:e=>o("mouseDraggingEnd",e,n.mouseDraggingEnd),onMouseMoved:e=>o("mouseMoved",e,n.mouseMoved)};return c.createEffect(()=>{const e=n.tableModel,s=n.tableOptions,r=t;if(!r||!e)return;const u=c.untrack(()=>{const a=new l.TableScope(r,e,new l.SimpleDomService,s??new l.TableOptions,d);return a.firstInit(),o("tableReady",a.getApi(),n.tableReady),a});c.onCleanup(()=>u.destroy())}),c.createEffect(()=>{const e=n.licenseKey;e&&l.LicenseManager.getInstance().setLicenseKey(e)}),(()=>{var e=m(),s=t;return typeof s=="function"?i.use(s,e):t=e,e})()};exports.ComponentRendererWrapper=p;exports.GuiexpertTable=b;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("solid-js/web"),r=require("solid-js"),c=require("@guiexpert/table");class h{constructor(s){this.code=s}render(s,n,o,u,t,l,p){const e=g.mergeProps({rowIndex:n,columnIndex:o,areaIdent:u,areaModel:t,cellValue:l});return g.render(()=>this.code(e),s)}}var C=g.template("<div>");const b=m=>{let s;const n=r.mergeProps({tableModel:null,tableOptions:new c.TableOptions},m),o=(e,a,i)=>{i&&i(a),s&&s.dispatchEvent(new CustomEvent(e,{detail:a,bubbles:e!=="scroll"}))},u={onSelectionChanged:e=>o("selectionChanged",e,n.selectionChanged),onFocusChanged:e=>o("focusChanged",e,n.focusChanged),onScroll:e=>o("scroll",e,n.scroll),onCheckboxChanged:e=>o("checkboxChanged",e,n.checkboxChanged),onContextmenu:e=>o("contextmenu",e,n.contextmenu),onModelChanged:e=>o("modelChanged",e,n.modelChanged),onMouseClicked:e=>o("mouseClicked",e,n.mouseClicked),onMouseDragging:e=>o("mouseDragging",e,n.mouseDragging),onMouseDraggingEnd:e=>o("mouseDraggingEnd",e,n.mouseDraggingEnd),onMouseMoved:e=>o("mouseMoved",e,n.mouseMoved),onStateChanged:e=>o("stateChanged",e,n.stateChanged)};let t,l=!1;const p=e=>{e?(t==null||t.showLoadingOverlay(),l=!0):l&&(t==null||t.hideOverlay(),l=!1)};return r.createEffect(()=>{const e=n.tableModel,a=n.tableOptions,i=s;if(!i||!e)return;const f=r.untrack(()=>{const d=new c.TableScope(i,e,new c.SimpleDomService,a??new c.TableOptions,u);return d.firstInit(),t=d,l=!1,p(!!n.loading),o("tableReady",d.getApi(),n.tableReady),d});r.onCleanup(()=>{t===f&&(t=void 0),f.destroy()})}),r.createEffect(()=>{const e=!!n.loading;r.untrack(()=>p(e))}),r.createEffect(()=>{const e=n.licenseKey;e&&c.LicenseManager.getInstance().setLicenseKey(e)}),(()=>{var e=C(),a=s;return typeof a=="function"?g.use(a,e):s=e,e})()};exports.ComponentRendererWrapper=h;exports.GuiexpertTable=b;
package/index.js CHANGED
@@ -1,36 +1,36 @@
1
- import { mergeProps as u, render as m, use as p, template as C } from "solid-js/web";
2
- import { mergeProps as h, createEffect as d, untrack as b, onCleanup as f } from "solid-js";
3
- import { TableOptions as g, LicenseManager as M, TableScope as v, SimpleDomService as x } from "@guiexpert/table";
4
- class E {
5
- constructor(t) {
6
- this.code = t;
1
+ import { mergeProps as C, render as f, use as b, template as v } from "solid-js/web";
2
+ import { mergeProps as M, createEffect as g, untrack as p, onCleanup as y } from "solid-js";
3
+ import { TableOptions as h, LicenseManager as x, TableScope as w, SimpleDomService as D } from "@guiexpert/table";
4
+ class L {
5
+ constructor(s) {
6
+ this.code = s;
7
7
  }
8
- render(t, o, n, l, e, s, r) {
9
- const a = u({
8
+ render(s, o, n, d, t, r, c) {
9
+ const e = C({
10
10
  rowIndex: o,
11
11
  columnIndex: n,
12
- areaIdent: l,
13
- areaModel: e,
14
- cellValue: s
12
+ areaIdent: d,
13
+ areaModel: t,
14
+ cellValue: r
15
15
  });
16
- return m(
17
- () => this.code(a),
18
- t
16
+ return f(
17
+ () => this.code(e),
18
+ s
19
19
  );
20
20
  }
21
21
  }
22
- var y = /* @__PURE__ */ C("<div>");
23
- const w = (i) => {
24
- let t;
25
- const o = h({
22
+ var k = /* @__PURE__ */ v("<div>");
23
+ const P = (m) => {
24
+ let s;
25
+ const o = M({
26
26
  tableModel: null,
27
- tableOptions: new g()
28
- }, i), n = (e, s, r) => {
29
- r && r(s), t && t.dispatchEvent(new CustomEvent(e, {
30
- detail: s,
27
+ tableOptions: new h()
28
+ }, m), n = (e, a, l) => {
29
+ l && l(a), s && s.dispatchEvent(new CustomEvent(e, {
30
+ detail: a,
31
31
  bubbles: e !== "scroll"
32
32
  }));
33
- }, l = {
33
+ }, d = {
34
34
  onSelectionChanged: (e) => n("selectionChanged", e, o.selectionChanged),
35
35
  onFocusChanged: (e) => n("focusChanged", e, o.focusChanged),
36
36
  onScroll: (e) => n("scroll", e, o.scroll),
@@ -40,26 +40,36 @@ const w = (i) => {
40
40
  onMouseClicked: (e) => n("mouseClicked", e, o.mouseClicked),
41
41
  onMouseDragging: (e) => n("mouseDragging", e, o.mouseDragging),
42
42
  onMouseDraggingEnd: (e) => n("mouseDraggingEnd", e, o.mouseDraggingEnd),
43
- onMouseMoved: (e) => n("mouseMoved", e, o.mouseMoved)
43
+ onMouseMoved: (e) => n("mouseMoved", e, o.mouseMoved),
44
+ onStateChanged: (e) => n("stateChanged", e, o.stateChanged)
44
45
  };
45
- return d(() => {
46
- const e = o.tableModel, s = o.tableOptions, r = t;
47
- if (!r || !e)
46
+ let t, r = !1;
47
+ const c = (e) => {
48
+ e ? (t == null || t.showLoadingOverlay(), r = !0) : r && (t == null || t.hideOverlay(), r = !1);
49
+ };
50
+ return g(() => {
51
+ const e = o.tableModel, a = o.tableOptions, l = s;
52
+ if (!l || !e)
48
53
  return;
49
- const a = b(() => {
50
- const c = new v(r, e, new x(), s ?? new g(), l);
51
- return c.firstInit(), n("tableReady", c.getApi(), o.tableReady), c;
54
+ const u = p(() => {
55
+ const i = new w(l, e, new D(), a ?? new h(), d);
56
+ return i.firstInit(), t = i, r = !1, c(!!o.loading), n("tableReady", i.getApi(), o.tableReady), i;
57
+ });
58
+ y(() => {
59
+ t === u && (t = void 0), u.destroy();
52
60
  });
53
- f(() => a.destroy());
54
- }), d(() => {
61
+ }), g(() => {
62
+ const e = !!o.loading;
63
+ p(() => c(e));
64
+ }), g(() => {
55
65
  const e = o.licenseKey;
56
- e && M.getInstance().setLicenseKey(e);
66
+ e && x.getInstance().setLicenseKey(e);
57
67
  }), (() => {
58
- var e = y(), s = t;
59
- return typeof s == "function" ? p(s, e) : t = e, e;
68
+ var e = k(), a = s;
69
+ return typeof a == "function" ? b(a, e) : s = e, e;
60
70
  })();
61
71
  };
62
72
  export {
63
- E as ComponentRendererWrapper,
64
- w as GuiexpertTable
73
+ L as ComponentRendererWrapper,
74
+ P as GuiexpertTable
65
75
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@guiexpert/solid-table",
3
- "version": "1.1.91",
3
+ "version": "1.1.93",
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.91"
34
+ "@guiexpert/table": "^1.1.93"
35
35
  },
36
36
  "peerDependencies": {
37
37
  "solid-js": "^1.0.0"