@polygrid/core 1.0.0 → 1.0.2
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/package.json +39 -12
- package/postcss.config.cjs +3 -0
- package/src/api/index.ts +15 -0
- package/src/api/set-columns.ts +8 -0
- package/src/api/set-data.ts +8 -0
- package/src/api/set-grid-id.ts +7 -0
- package/src/engine/const/pg-css-class.ts +24 -0
- package/src/engine/core/grid-dom.ts +26 -0
- package/src/engine/core/grid.ts +77 -0
- package/src/engine/core/interfaces/grid-options.ts +8 -0
- package/src/engine/core/methods/add-dom-listener.ts +14 -0
- package/src/engine/core/methods/consume-options.ts +32 -0
- package/src/engine/core/methods/index.ts +2 -0
- package/src/engine/core/methods/normalize-rows.ts +5 -0
- package/src/engine/debug.config.ts +3 -0
- package/src/engine/rx-lite/core/observable.ts +29 -0
- package/src/engine/rx-lite/core/subject.ts +21 -0
- package/src/engine/rx-lite/interfaces/observable-like.ts +6 -0
- package/src/engine/rx-lite/interfaces/pipe-fn.ts +18 -0
- package/src/engine/rx-lite/operators/combine-latest-any.ts +51 -0
- package/src/engine/rx-lite/operators/combine-latest.ts +30 -0
- package/src/engine/rx-lite/operators/distinct-until-array-changed.ts +22 -0
- package/src/engine/rx-lite/operators/distinct-until-changed.ts +20 -0
- package/src/engine/rx-lite/operators/filter.ts +11 -0
- package/src/engine/rx-lite/operators/map.ts +9 -0
- package/src/engine/rx-lite/operators/select-keyed.ts +31 -0
- package/src/engine/rx-lite/operators/select.ts +26 -0
- package/src/engine/rx-lite/operators/skip.ts +18 -0
- package/src/engine/rx-lite/operators/takeuntil.ts +18 -0
- package/src/engine/rx-lite/types/operator.ts +3 -0
- package/src/engine/services/column/column.ts +30 -0
- package/src/engine/services/column/index.ts +1 -0
- package/src/engine/services/column/interfaces/column.ts +6 -0
- package/src/engine/services/column/methods/index.ts +2 -0
- package/src/engine/services/column/methods/resolve-column-widths.ts +46 -0
- package/src/engine/services/column/methods/set-columns.ts +28 -0
- package/{types/engine/services/column/types/column-width-state.d.ts → src/engine/services/column/types/column-width-state.ts} +1 -2
- package/src/engine/services/data/data.ts +27 -0
- package/src/engine/services/data/index.ts +1 -0
- package/src/engine/services/data/methods/index.ts +1 -0
- package/src/engine/services/data/methods/set-rows.ts +18 -0
- package/src/engine/services/layout/index.ts +1 -0
- package/src/engine/services/layout/layout.ts +100 -0
- package/src/engine/services/layout/methods/add-scroll-event-listeners.ts +38 -0
- package/src/engine/services/layout/methods/adjust-viewport.ts +66 -0
- package/src/engine/services/layout/methods/apply-column-widths.ts +17 -0
- package/src/engine/services/layout/methods/compute-column-widths.ts +23 -0
- package/src/engine/services/layout/methods/compute-total-row-height.ts +16 -0
- package/src/engine/services/layout/methods/index.ts +12 -0
- package/src/engine/services/layout/methods/initialize-layout-pipeline.ts +39 -0
- package/src/engine/services/layout/methods/resize-body.ts +15 -0
- package/src/engine/services/layout/methods/resize-v-scrollbar.ts +15 -0
- package/src/engine/services/layout/methods/set-cell-width.ts +21 -0
- package/src/engine/services/layout/methods/set-grid-id.ts +14 -0
- package/src/engine/services/layout/methods/set-up-resize-observer.ts +25 -0
- package/src/engine/services/layout/methods/update-column-widths.ts +28 -0
- package/src/engine/services/renderer/index.ts +1 -0
- package/src/engine/services/renderer/methods/index.ts +1 -0
- package/src/engine/services/renderer/methods/re-render-cells.ts +31 -0
- package/src/engine/services/renderer/parts/body/body.ts +34 -0
- package/src/engine/services/renderer/parts/body/cell.ts +12 -0
- package/src/engine/services/renderer/parts/body/row.ts +26 -0
- package/src/engine/services/renderer/parts/footer/footer-cells.ts +15 -0
- package/src/engine/services/renderer/parts/footer/footer.ts +24 -0
- package/src/engine/services/renderer/parts/grid/grid.ts +21 -0
- package/src/engine/services/renderer/parts/header/header-cells.ts +15 -0
- package/src/engine/services/renderer/parts/header/header.ts +24 -0
- package/src/engine/services/renderer/parts/root/root.ts +22 -0
- package/src/engine/services/renderer/parts/scrollbars/h-scrollbar.ts +21 -0
- package/src/engine/services/renderer/parts/scrollbars/v-scrollbar-bottom-corner.ts +8 -0
- package/src/engine/services/renderer/parts/scrollbars/v-scrollbar-spacer-bottom.ts +8 -0
- package/src/engine/services/renderer/parts/scrollbars/v-scrollbar-spacer-top.ts +8 -0
- package/src/engine/services/renderer/parts/scrollbars/v-scrollbar.ts +34 -0
- package/src/engine/services/renderer/parts/viewport/viewport.ts +32 -0
- package/src/engine/services/renderer/renderer.ts +23 -0
- package/src/engine/services/row/index.ts +1 -0
- package/src/engine/services/row/interfaces/row.ts +4 -0
- package/src/engine/services/row/methods/index.ts +0 -0
- package/src/engine/services/row/row.ts +10 -0
- package/src/engine/services/services.ts +26 -0
- package/src/engine/store/interfaces/grid-state.ts +20 -0
- package/src/engine/store/methods/create-initial-state.ts +20 -0
- package/src/engine/store/methods/create-tracked-proxy.ts +60 -0
- package/src/engine/store/methods/debug.ts +29 -0
- package/src/engine/store/store.ts +85 -0
- package/src/engine/store/types/state-key.ts +3 -0
- package/src/engine/store/types/store-mutation.ts +5 -0
- package/src/index.ts +1 -0
- package/src/styles/body.css +13 -0
- package/src/styles/cell.css +15 -0
- package/src/styles/footer.css +30 -0
- package/src/styles/grid.css +5 -0
- package/src/styles/header.css +25 -0
- package/src/styles/index.css +9 -0
- package/src/styles/root.css +12 -0
- package/src/styles/row.css +12 -0
- package/src/styles/scrollbar.css +50 -0
- package/src/styles/viewport.css +6 -0
- package/src/styles.d.ts +1 -0
- package/tsconfig.json +23 -0
- package/polygrid.css +0 -1
- package/polygrid.es.js +0 -658
- package/polygrid.umd.js +0 -1
- package/types/api/index.d.ts +0 -9
- package/types/api/index.d.ts.map +0 -1
- package/types/api/set-columns.d.ts +0 -4
- package/types/api/set-columns.d.ts.map +0 -1
- package/types/api/set-data.d.ts +0 -3
- package/types/api/set-data.d.ts.map +0 -1
- package/types/api/set-grid-id.d.ts +0 -3
- package/types/api/set-grid-id.d.ts.map +0 -1
- package/types/engine/const/pg-css-class.d.ts +0 -25
- package/types/engine/const/pg-css-class.d.ts.map +0 -1
- package/types/engine/core/grid-dom.d.ts +0 -23
- package/types/engine/core/grid-dom.d.ts.map +0 -1
- package/types/engine/core/grid.d.ts +0 -19
- package/types/engine/core/grid.d.ts.map +0 -1
- package/types/engine/core/interfaces/grid-options.d.ts +0 -8
- package/types/engine/core/interfaces/grid-options.d.ts.map +0 -1
- package/types/engine/core/methods/add-dom-listener.d.ts +0 -3
- package/types/engine/core/methods/add-dom-listener.d.ts.map +0 -1
- package/types/engine/core/methods/consume-options.d.ts +0 -4
- package/types/engine/core/methods/consume-options.d.ts.map +0 -1
- package/types/engine/core/methods/index.d.ts +0 -3
- package/types/engine/core/methods/index.d.ts.map +0 -1
- package/types/engine/core/methods/normalize-rows.d.ts +0 -3
- package/types/engine/core/methods/normalize-rows.d.ts.map +0 -1
- package/types/engine/debug.config.d.ts +0 -4
- package/types/engine/debug.config.d.ts.map +0 -1
- package/types/engine/rx-lite/core/observable.d.ts +0 -9
- package/types/engine/rx-lite/core/observable.d.ts.map +0 -1
- package/types/engine/rx-lite/core/subject.d.ts +0 -9
- package/types/engine/rx-lite/core/subject.d.ts.map +0 -1
- package/types/engine/rx-lite/interfaces/observable-like.d.ts +0 -6
- package/types/engine/rx-lite/interfaces/observable-like.d.ts.map +0 -1
- package/types/engine/rx-lite/interfaces/pipe-fn.d.ts +0 -9
- package/types/engine/rx-lite/interfaces/pipe-fn.d.ts.map +0 -1
- package/types/engine/rx-lite/operators/combine-latest-any.d.ts +0 -7
- package/types/engine/rx-lite/operators/combine-latest-any.d.ts.map +0 -1
- package/types/engine/rx-lite/operators/combine-latest.d.ts +0 -7
- package/types/engine/rx-lite/operators/combine-latest.d.ts.map +0 -1
- package/types/engine/rx-lite/operators/distinct-until-array-changed.d.ts +0 -4
- package/types/engine/rx-lite/operators/distinct-until-array-changed.d.ts.map +0 -1
- package/types/engine/rx-lite/operators/distinct-until-changed.d.ts +0 -3
- package/types/engine/rx-lite/operators/distinct-until-changed.d.ts.map +0 -1
- package/types/engine/rx-lite/operators/filter.d.ts +0 -3
- package/types/engine/rx-lite/operators/filter.d.ts.map +0 -1
- package/types/engine/rx-lite/operators/map.d.ts +0 -3
- package/types/engine/rx-lite/operators/map.d.ts.map +0 -1
- package/types/engine/rx-lite/operators/select-keyed.d.ts +0 -5
- package/types/engine/rx-lite/operators/select-keyed.d.ts.map +0 -1
- package/types/engine/rx-lite/operators/select.d.ts +0 -5
- package/types/engine/rx-lite/operators/select.d.ts.map +0 -1
- package/types/engine/rx-lite/operators/skip.d.ts +0 -3
- package/types/engine/rx-lite/operators/skip.d.ts.map +0 -1
- package/types/engine/rx-lite/operators/takeuntil.d.ts +0 -4
- package/types/engine/rx-lite/operators/takeuntil.d.ts.map +0 -1
- package/types/engine/rx-lite/types/operator.d.ts +0 -3
- package/types/engine/rx-lite/types/operator.d.ts.map +0 -1
- package/types/engine/services/column/column.d.ts +0 -18
- package/types/engine/services/column/column.d.ts.map +0 -1
- package/types/engine/services/column/index.d.ts +0 -2
- package/types/engine/services/column/index.d.ts.map +0 -1
- package/types/engine/services/column/interfaces/column.d.ts +0 -7
- package/types/engine/services/column/interfaces/column.d.ts.map +0 -1
- package/types/engine/services/column/methods/index.d.ts +0 -3
- package/types/engine/services/column/methods/index.d.ts.map +0 -1
- package/types/engine/services/column/methods/resolve-column-widths.d.ts +0 -3
- package/types/engine/services/column/methods/resolve-column-widths.d.ts.map +0 -1
- package/types/engine/services/column/methods/set-columns.d.ts +0 -4
- package/types/engine/services/column/methods/set-columns.d.ts.map +0 -1
- package/types/engine/services/column/types/column-width-state.d.ts.map +0 -1
- package/types/engine/services/data/data.d.ts +0 -15
- package/types/engine/services/data/data.d.ts.map +0 -1
- package/types/engine/services/data/index.d.ts +0 -2
- package/types/engine/services/data/index.d.ts.map +0 -1
- package/types/engine/services/data/methods/index.d.ts +0 -2
- package/types/engine/services/data/methods/index.d.ts.map +0 -1
- package/types/engine/services/data/methods/set-rows.d.ts +0 -4
- package/types/engine/services/data/methods/set-rows.d.ts.map +0 -1
- package/types/engine/services/layout/index.d.ts +0 -2
- package/types/engine/services/layout/index.d.ts.map +0 -1
- package/types/engine/services/layout/layout.d.ts +0 -34
- package/types/engine/services/layout/layout.d.ts.map +0 -1
- package/types/engine/services/layout/methods/add-scroll-event-listeners.d.ts +0 -3
- package/types/engine/services/layout/methods/add-scroll-event-listeners.d.ts.map +0 -1
- package/types/engine/services/layout/methods/adjust-viewport.d.ts +0 -4
- package/types/engine/services/layout/methods/adjust-viewport.d.ts.map +0 -1
- package/types/engine/services/layout/methods/apply-column-widths.d.ts +0 -4
- package/types/engine/services/layout/methods/apply-column-widths.d.ts.map +0 -1
- package/types/engine/services/layout/methods/compute-column-widths.d.ts +0 -4
- package/types/engine/services/layout/methods/compute-column-widths.d.ts.map +0 -1
- package/types/engine/services/layout/methods/compute-total-row-height.d.ts +0 -4
- package/types/engine/services/layout/methods/compute-total-row-height.d.ts.map +0 -1
- package/types/engine/services/layout/methods/index.d.ts +0 -13
- package/types/engine/services/layout/methods/index.d.ts.map +0 -1
- package/types/engine/services/layout/methods/initialize-layout-pipeline.d.ts +0 -4
- package/types/engine/services/layout/methods/initialize-layout-pipeline.d.ts.map +0 -1
- package/types/engine/services/layout/methods/resize-body.d.ts +0 -4
- package/types/engine/services/layout/methods/resize-body.d.ts.map +0 -1
- package/types/engine/services/layout/methods/resize-v-scrollbar.d.ts +0 -4
- package/types/engine/services/layout/methods/resize-v-scrollbar.d.ts.map +0 -1
- package/types/engine/services/layout/methods/set-cell-width.d.ts +0 -2
- package/types/engine/services/layout/methods/set-cell-width.d.ts.map +0 -1
- package/types/engine/services/layout/methods/set-grid-id.d.ts +0 -4
- package/types/engine/services/layout/methods/set-grid-id.d.ts.map +0 -1
- package/types/engine/services/layout/methods/set-up-resize-observer.d.ts +0 -4
- package/types/engine/services/layout/methods/set-up-resize-observer.d.ts.map +0 -1
- package/types/engine/services/layout/methods/update-column-widths.d.ts +0 -4
- package/types/engine/services/layout/methods/update-column-widths.d.ts.map +0 -1
- package/types/engine/services/renderer/index.d.ts +0 -2
- package/types/engine/services/renderer/index.d.ts.map +0 -1
- package/types/engine/services/renderer/methods/index.d.ts +0 -2
- package/types/engine/services/renderer/methods/index.d.ts.map +0 -1
- package/types/engine/services/renderer/methods/re-render-cells.d.ts +0 -4
- package/types/engine/services/renderer/methods/re-render-cells.d.ts.map +0 -1
- package/types/engine/services/renderer/parts/body/body.d.ts +0 -4
- package/types/engine/services/renderer/parts/body/body.d.ts.map +0 -1
- package/types/engine/services/renderer/parts/body/cell.d.ts +0 -3
- package/types/engine/services/renderer/parts/body/cell.d.ts.map +0 -1
- package/types/engine/services/renderer/parts/body/row.d.ts +0 -4
- package/types/engine/services/renderer/parts/body/row.d.ts.map +0 -1
- package/types/engine/services/renderer/parts/footer/footer-cells.d.ts +0 -3
- package/types/engine/services/renderer/parts/footer/footer-cells.d.ts.map +0 -1
- package/types/engine/services/renderer/parts/footer/footer.d.ts +0 -4
- package/types/engine/services/renderer/parts/footer/footer.d.ts.map +0 -1
- package/types/engine/services/renderer/parts/grid/grid.d.ts +0 -4
- package/types/engine/services/renderer/parts/grid/grid.d.ts.map +0 -1
- package/types/engine/services/renderer/parts/header/header-cells.d.ts +0 -3
- package/types/engine/services/renderer/parts/header/header-cells.d.ts.map +0 -1
- package/types/engine/services/renderer/parts/header/header.d.ts +0 -4
- package/types/engine/services/renderer/parts/header/header.d.ts.map +0 -1
- package/types/engine/services/renderer/parts/root/root.d.ts +0 -4
- package/types/engine/services/renderer/parts/root/root.d.ts.map +0 -1
- package/types/engine/services/renderer/parts/scrollbars/h-scrollbar.d.ts +0 -3
- package/types/engine/services/renderer/parts/scrollbars/h-scrollbar.d.ts.map +0 -1
- package/types/engine/services/renderer/parts/scrollbars/v-scrollbar-bottom-corner.d.ts +0 -2
- package/types/engine/services/renderer/parts/scrollbars/v-scrollbar-bottom-corner.d.ts.map +0 -1
- package/types/engine/services/renderer/parts/scrollbars/v-scrollbar-spacer-bottom.d.ts +0 -2
- package/types/engine/services/renderer/parts/scrollbars/v-scrollbar-spacer-bottom.d.ts.map +0 -1
- package/types/engine/services/renderer/parts/scrollbars/v-scrollbar-spacer-top.d.ts +0 -2
- package/types/engine/services/renderer/parts/scrollbars/v-scrollbar-spacer-top.d.ts.map +0 -1
- package/types/engine/services/renderer/parts/scrollbars/v-scrollbar.d.ts +0 -3
- package/types/engine/services/renderer/parts/scrollbars/v-scrollbar.d.ts.map +0 -1
- package/types/engine/services/renderer/parts/viewport/viewport.d.ts +0 -4
- package/types/engine/services/renderer/parts/viewport/viewport.d.ts.map +0 -1
- package/types/engine/services/renderer/renderer.d.ts +0 -15
- package/types/engine/services/renderer/renderer.d.ts.map +0 -1
- package/types/engine/services/row/index.d.ts +0 -2
- package/types/engine/services/row/index.d.ts.map +0 -1
- package/types/engine/services/row/interfaces/row.d.ts +0 -5
- package/types/engine/services/row/interfaces/row.d.ts.map +0 -1
- package/types/engine/services/row/methods/index.d.ts +0 -2
- package/types/engine/services/row/methods/index.d.ts.map +0 -1
- package/types/engine/services/row/row.d.ts +0 -7
- package/types/engine/services/row/row.d.ts.map +0 -1
- package/types/engine/services/services.d.ts +0 -16
- package/types/engine/services/services.d.ts.map +0 -1
- package/types/engine/store/interfaces/grid-state.d.ts +0 -20
- package/types/engine/store/interfaces/grid-state.d.ts.map +0 -1
- package/types/engine/store/methods/create-initial-state.d.ts +0 -3
- package/types/engine/store/methods/create-initial-state.d.ts.map +0 -1
- package/types/engine/store/methods/create-tracked-proxy.d.ts +0 -3
- package/types/engine/store/methods/create-tracked-proxy.d.ts.map +0 -1
- package/types/engine/store/methods/debug.d.ts +0 -4
- package/types/engine/store/methods/debug.d.ts.map +0 -1
- package/types/engine/store/store.d.ts +0 -22
- package/types/engine/store/store.d.ts.map +0 -1
- package/types/engine/store/types/state-key.d.ts +0 -3
- package/types/engine/store/types/state-key.d.ts.map +0 -1
- package/types/engine/store/types/store-mutation.d.ts +0 -6
- package/types/engine/store/types/store-mutation.d.ts.map +0 -1
- package/types/index.d.ts +0 -4
- package/types/index.d.ts.map +0 -1
package/polygrid.es.js
DELETED
|
@@ -1,658 +0,0 @@
|
|
|
1
|
-
const d = {
|
|
2
|
-
root: "pg-root",
|
|
3
|
-
grid: "pg-grid",
|
|
4
|
-
viewport: "pg-viewport",
|
|
5
|
-
vScroll: "pg-v-scroll",
|
|
6
|
-
vScrollSpacerTop: "pg-v-scroll-spacer-top",
|
|
7
|
-
vScrollInner: "pg-v-scroll-inner",
|
|
8
|
-
vScrollTrack: "pg-v-scroll-track",
|
|
9
|
-
vScrollSpacerBottom: "pg-v-scroll-spacer-bottom",
|
|
10
|
-
vScrollBottomCorner: "pg-v-scroll-bottom-corner",
|
|
11
|
-
hScroll: "pg-h-scroll",
|
|
12
|
-
hScrollInner: "pg-h-scroll-inner",
|
|
13
|
-
hScrollTrack: "pg-h-scroll-track",
|
|
14
|
-
headerViewport: "pg-header-viewport",
|
|
15
|
-
header: "pg-header",
|
|
16
|
-
headerCell: "pg-header-cell",
|
|
17
|
-
bodyViewport: "pg-body-viewport",
|
|
18
|
-
body: "pg-body",
|
|
19
|
-
row: "pg-row",
|
|
20
|
-
cell: "pg-cell",
|
|
21
|
-
footerViewport: "pg-footer-viewport",
|
|
22
|
-
footer: "pg-footer",
|
|
23
|
-
footerCell: "pg-footer-cell"
|
|
24
|
-
};
|
|
25
|
-
function O(o, t) {
|
|
26
|
-
const e = document.createElement("div");
|
|
27
|
-
e.classList.add(d.cell);
|
|
28
|
-
const r = o[t.field];
|
|
29
|
-
return e.textContent = r != null ? String(r) : "", e;
|
|
30
|
-
}
|
|
31
|
-
function L(o, t, e) {
|
|
32
|
-
const r = [], s = t.filter((i) => i.visible ?? !0);
|
|
33
|
-
return o.forEach((i) => {
|
|
34
|
-
const n = document.createElement("div");
|
|
35
|
-
n.classList.add(d.row), n.style.height = e + "px", s.forEach((c) => {
|
|
36
|
-
const l = O(i.data, c);
|
|
37
|
-
n.appendChild(l);
|
|
38
|
-
}), r.push(n);
|
|
39
|
-
}), r;
|
|
40
|
-
}
|
|
41
|
-
function _(o, t) {
|
|
42
|
-
const e = document.createElement("div");
|
|
43
|
-
e.className = d.bodyViewport;
|
|
44
|
-
const r = document.createElement("div");
|
|
45
|
-
r.className = d.body, r.innerHTML = "";
|
|
46
|
-
const s = o.getState().rows, i = o.getState().columns, n = o.getState().rowHeight, c = L(s, i, n), l = document.createDocumentFragment();
|
|
47
|
-
for (const a of c)
|
|
48
|
-
l.appendChild(a);
|
|
49
|
-
return r.appendChild(l), e.appendChild(r), t.body = r, e;
|
|
50
|
-
}
|
|
51
|
-
function H(o, t) {
|
|
52
|
-
const e = t.getState().columns.filter((r) => r.visible ?? !0);
|
|
53
|
-
o.innerHTML = "", e.forEach((r, s) => {
|
|
54
|
-
const i = document.createElement("div");
|
|
55
|
-
i.className = d.footerCell, i.textContent = r.header, o.appendChild(i);
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
function I(o, t) {
|
|
59
|
-
const e = document.createElement("div");
|
|
60
|
-
e.className = d.footerViewport;
|
|
61
|
-
const r = document.createElement("div");
|
|
62
|
-
return r.className = d.footer, H(r, o), e.appendChild(r), t.footer = r, e;
|
|
63
|
-
}
|
|
64
|
-
function T(o, t) {
|
|
65
|
-
const e = t.getState().columns.filter((r) => r.visible ?? !0);
|
|
66
|
-
o.innerHTML = "", e.forEach((r, s) => {
|
|
67
|
-
const i = document.createElement("div");
|
|
68
|
-
i.className = d.headerCell, i.textContent = r.header, o.appendChild(i);
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
function A(o, t) {
|
|
72
|
-
const e = document.createElement("div");
|
|
73
|
-
e.className = d.headerViewport;
|
|
74
|
-
const r = document.createElement("div");
|
|
75
|
-
return r.className = d.header, T(r, o), e.appendChild(r), t.header = r, e;
|
|
76
|
-
}
|
|
77
|
-
function N(o) {
|
|
78
|
-
const t = document.createElement("div");
|
|
79
|
-
t.className = d.hScroll;
|
|
80
|
-
const e = document.createElement("div");
|
|
81
|
-
e.className = d.hScrollInner;
|
|
82
|
-
const r = document.createElement("div");
|
|
83
|
-
return r.className = d.hScrollTrack, t.appendChild(e), e.appendChild(r), o.hScrollInner = e, o.hScrollTrack = r, t;
|
|
84
|
-
}
|
|
85
|
-
function B(o, t) {
|
|
86
|
-
const e = document.createElement("div");
|
|
87
|
-
e.className = d.viewport;
|
|
88
|
-
const r = A(o, t), s = _(o, t), i = I(o, t), n = N(t);
|
|
89
|
-
return e.appendChild(r), e.appendChild(s), e.appendChild(i), e.appendChild(n), t.headerViewport = r, t.bodyViewport = s, t.footerViewport = i, t.hScrollbar = n, e;
|
|
90
|
-
}
|
|
91
|
-
function x() {
|
|
92
|
-
const o = document.createElement("div");
|
|
93
|
-
return o.className = d.vScrollBottomCorner, o;
|
|
94
|
-
}
|
|
95
|
-
function z() {
|
|
96
|
-
const o = document.createElement("div");
|
|
97
|
-
return o.className = d.vScrollSpacerBottom, o;
|
|
98
|
-
}
|
|
99
|
-
function P() {
|
|
100
|
-
const o = document.createElement("div");
|
|
101
|
-
return o.className = d.vScrollSpacerTop, o;
|
|
102
|
-
}
|
|
103
|
-
function k(o) {
|
|
104
|
-
const t = document.createElement("div");
|
|
105
|
-
t.className = d.vScroll;
|
|
106
|
-
const e = document.createElement("div");
|
|
107
|
-
e.className = d.vScrollInner;
|
|
108
|
-
const r = document.createElement("div");
|
|
109
|
-
r.className = d.vScrollTrack;
|
|
110
|
-
const s = P(), i = z(), n = x();
|
|
111
|
-
return t.appendChild(s), t.appendChild(e), t.appendChild(i), t.appendChild(n), e.appendChild(r), o.vScrollInner = e, o.vScrollSpacerTop = s, o.vScrollSpacerBottom = i, o.vScrollBottomCorner = n, o.vScrollTrack = r, t;
|
|
112
|
-
}
|
|
113
|
-
function D(o, t) {
|
|
114
|
-
const e = document.createElement("div");
|
|
115
|
-
e.className = d.grid;
|
|
116
|
-
const r = B(o, t), s = k(t);
|
|
117
|
-
return e.appendChild(r), e.appendChild(s), t.viewport = r, t.vScrollbar = s, e;
|
|
118
|
-
}
|
|
119
|
-
function G(o, t, e) {
|
|
120
|
-
const r = document.createElement("div");
|
|
121
|
-
r.className = d.root, r.id = o.getState().id;
|
|
122
|
-
const s = D(o, e);
|
|
123
|
-
r.appendChild(s), t.appendChild(r), e.root = r, e.grid = s;
|
|
124
|
-
}
|
|
125
|
-
function j() {
|
|
126
|
-
return {
|
|
127
|
-
id: "",
|
|
128
|
-
columns: [],
|
|
129
|
-
rows: [],
|
|
130
|
-
rowHeight: 20,
|
|
131
|
-
resolvedColumnWidths: [],
|
|
132
|
-
columnWidthState: "NOT_SET",
|
|
133
|
-
totalColumnWidth: 0,
|
|
134
|
-
totalRowHeight: 0,
|
|
135
|
-
viewportWidth: 0,
|
|
136
|
-
viewportHeight: 0,
|
|
137
|
-
rawViewportWidth: 0,
|
|
138
|
-
rawViewportHeight: 0,
|
|
139
|
-
showHScrollbar: !1,
|
|
140
|
-
showVScrollbar: !1
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
function W(o, t, e = [], r) {
|
|
144
|
-
return new Proxy(o, {
|
|
145
|
-
get(s, i, n) {
|
|
146
|
-
const c = Reflect.get(s, i, n);
|
|
147
|
-
if (c && typeof c == "object") {
|
|
148
|
-
const l = e.concat(String(i));
|
|
149
|
-
return W(c, t, l, r);
|
|
150
|
-
}
|
|
151
|
-
return c;
|
|
152
|
-
},
|
|
153
|
-
set(s, i, n, c) {
|
|
154
|
-
const l = String(i), a = e.concat(l), u = U(a), g = M(t, a), $ = Reflect.set(s, i, n, c);
|
|
155
|
-
return r.push({ path: u, from: g, to: n }), $;
|
|
156
|
-
}
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
function M(o, t) {
|
|
160
|
-
let e = o;
|
|
161
|
-
for (const r of t) {
|
|
162
|
-
if (e == null) return;
|
|
163
|
-
e = e[r];
|
|
164
|
-
}
|
|
165
|
-
return e;
|
|
166
|
-
}
|
|
167
|
-
function U(o) {
|
|
168
|
-
return o.map((t) => /^\d+$/.test(t) ? `[${t}]` : t).join(".").replace(/\.\[/g, "[");
|
|
169
|
-
}
|
|
170
|
-
function F(o, t, e) {
|
|
171
|
-
console.groupCollapsed(
|
|
172
|
-
"%cPolyGridStore mutations",
|
|
173
|
-
"color:#FF9800;font-weight:bold;"
|
|
174
|
-
);
|
|
175
|
-
for (const r of o)
|
|
176
|
-
console.log(`Path: ${r.path}`), console.log("From:", r.from), console.log("To:", r.to);
|
|
177
|
-
console.groupEnd();
|
|
178
|
-
}
|
|
179
|
-
class p {
|
|
180
|
-
constructor(t) {
|
|
181
|
-
this._subscribe = t;
|
|
182
|
-
}
|
|
183
|
-
subscribe(t, e) {
|
|
184
|
-
const r = (s) => {
|
|
185
|
-
e && console.log(
|
|
186
|
-
`%cSubscription ${e ? `(${e})` : ""} reacted`,
|
|
187
|
-
"color:#9C27B0;font-weight:bold;"
|
|
188
|
-
), t(s);
|
|
189
|
-
};
|
|
190
|
-
return this._subscribe(r);
|
|
191
|
-
}
|
|
192
|
-
pipe(...t) {
|
|
193
|
-
let e = this;
|
|
194
|
-
for (const r of t)
|
|
195
|
-
e = r(e);
|
|
196
|
-
return e;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
function K(o, t) {
|
|
200
|
-
let e = t(o.getState());
|
|
201
|
-
return new p((r) => {
|
|
202
|
-
r(e);
|
|
203
|
-
const s = (i) => {
|
|
204
|
-
const n = t(i);
|
|
205
|
-
Object.is(e, n) || (e = n, r(n));
|
|
206
|
-
};
|
|
207
|
-
return o.getSubscribers().add(s), () => o.getSubscribers().delete(s);
|
|
208
|
-
});
|
|
209
|
-
}
|
|
210
|
-
function Y(o, t) {
|
|
211
|
-
return new p((e) => {
|
|
212
|
-
let r = t.map((i) => i(o.getState()));
|
|
213
|
-
e(r);
|
|
214
|
-
const s = t.map(
|
|
215
|
-
(i, n) => o.select(i).subscribe((c) => {
|
|
216
|
-
if (!Object.is(r[n], c)) {
|
|
217
|
-
const l = [...r];
|
|
218
|
-
l[n] = c, r = l, e(r);
|
|
219
|
-
}
|
|
220
|
-
})
|
|
221
|
-
);
|
|
222
|
-
return () => s.forEach((i) => i());
|
|
223
|
-
});
|
|
224
|
-
}
|
|
225
|
-
function q(o, t) {
|
|
226
|
-
return new p((e) => {
|
|
227
|
-
const r = new Array(t.length), s = new Array(t.length).fill(!1), i = t.map((n, c) => {
|
|
228
|
-
if (typeof n == "function") {
|
|
229
|
-
const a = n;
|
|
230
|
-
return r[c] = a(o.getState()), s[c] = !0, o.select(a).subscribe((u) => {
|
|
231
|
-
r[c] = u, e([...r]);
|
|
232
|
-
});
|
|
233
|
-
}
|
|
234
|
-
return n.subscribe((a) => {
|
|
235
|
-
r[c] = a, s[c] = !0, s.every(Boolean) && e([...r]);
|
|
236
|
-
});
|
|
237
|
-
});
|
|
238
|
-
return s.every(Boolean) && e([...r]), () => i.forEach((n) => n());
|
|
239
|
-
});
|
|
240
|
-
}
|
|
241
|
-
function X(o, t, e) {
|
|
242
|
-
let r = e(o.getState());
|
|
243
|
-
return new p((s) => {
|
|
244
|
-
const i = (n, c) => {
|
|
245
|
-
if (!c.includes(t)) return;
|
|
246
|
-
const l = e(n);
|
|
247
|
-
Object.is(r, l) || (r = l, s(l));
|
|
248
|
-
};
|
|
249
|
-
return o.getSubscribers().add(i), () => o.getSubscribers().delete(i);
|
|
250
|
-
});
|
|
251
|
-
}
|
|
252
|
-
class Z {
|
|
253
|
-
constructor() {
|
|
254
|
-
this.subscribers = /* @__PURE__ */ new Set(), this.state = j();
|
|
255
|
-
}
|
|
256
|
-
getState() {
|
|
257
|
-
return this.state;
|
|
258
|
-
}
|
|
259
|
-
getSubscribers() {
|
|
260
|
-
return this.subscribers;
|
|
261
|
-
}
|
|
262
|
-
update(t) {
|
|
263
|
-
const e = this.state, r = { ...this.state }, s = [], i = W(r, e, [], s);
|
|
264
|
-
t(i), s.length > 0 && F(s);
|
|
265
|
-
const n = s.map((c) => c.path);
|
|
266
|
-
this.state = r, this.emit(n);
|
|
267
|
-
}
|
|
268
|
-
subscribe(t) {
|
|
269
|
-
return this.subscribers.add(t), () => this.subscribers.delete(t);
|
|
270
|
-
}
|
|
271
|
-
select(t) {
|
|
272
|
-
return K(this, t);
|
|
273
|
-
}
|
|
274
|
-
selectKeyed(t, e) {
|
|
275
|
-
return X(this, t, e);
|
|
276
|
-
}
|
|
277
|
-
combineLatest(t) {
|
|
278
|
-
return Y(this, t);
|
|
279
|
-
}
|
|
280
|
-
combineLatestAny(t) {
|
|
281
|
-
return q(this, t);
|
|
282
|
-
}
|
|
283
|
-
emit(t) {
|
|
284
|
-
for (const e of this.subscribers)
|
|
285
|
-
e(this.state, t);
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
class J {
|
|
289
|
-
constructor() {
|
|
290
|
-
this.subscribers = /* @__PURE__ */ new Set(), this.pipe = p.prototype.pipe;
|
|
291
|
-
}
|
|
292
|
-
subscribe(t) {
|
|
293
|
-
return this.subscribers.add(t), () => this.subscribers.delete(t);
|
|
294
|
-
}
|
|
295
|
-
next(t) {
|
|
296
|
-
this.subscribers.forEach((e) => e(t));
|
|
297
|
-
}
|
|
298
|
-
complete() {
|
|
299
|
-
this.subscribers.clear();
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
function Q() {
|
|
303
|
-
return (o) => new p((t) => {
|
|
304
|
-
let e;
|
|
305
|
-
return o.subscribe((r) => {
|
|
306
|
-
e && e.length === r.length && e.every((s, i) => Object.is(s, r[i])) || (e = r, t(r));
|
|
307
|
-
});
|
|
308
|
-
});
|
|
309
|
-
}
|
|
310
|
-
function w(o = (t, e) => t === e) {
|
|
311
|
-
return (t) => new p((e) => {
|
|
312
|
-
let r = !1, s;
|
|
313
|
-
return t.subscribe((i) => {
|
|
314
|
-
(!r || !o(s, i)) && (r = !0, s = i, e(i));
|
|
315
|
-
});
|
|
316
|
-
});
|
|
317
|
-
}
|
|
318
|
-
function v(o) {
|
|
319
|
-
return (t) => new p(
|
|
320
|
-
(e) => t.subscribe((r) => {
|
|
321
|
-
o(r) && e(r);
|
|
322
|
-
})
|
|
323
|
-
);
|
|
324
|
-
}
|
|
325
|
-
function b(o) {
|
|
326
|
-
return (t) => new p(
|
|
327
|
-
(e) => t.subscribe((r) => e(o(r)))
|
|
328
|
-
);
|
|
329
|
-
}
|
|
330
|
-
function h(o) {
|
|
331
|
-
return (t) => new p((e) => {
|
|
332
|
-
const r = t.subscribe(e), s = o.subscribe(() => {
|
|
333
|
-
r(), s();
|
|
334
|
-
});
|
|
335
|
-
return () => {
|
|
336
|
-
r(), s();
|
|
337
|
-
};
|
|
338
|
-
});
|
|
339
|
-
}
|
|
340
|
-
function tt(o, t) {
|
|
341
|
-
o.totalRowHeight$.pipe(h(t)).subscribe((e) => {
|
|
342
|
-
o.store.update((r) => {
|
|
343
|
-
r.totalRowHeight = e;
|
|
344
|
-
});
|
|
345
|
-
}, "SET-TOTALROWHEIGHT");
|
|
346
|
-
}
|
|
347
|
-
function et(o, t) {
|
|
348
|
-
const e = o.gridDom;
|
|
349
|
-
o.totalRowHeight$.pipe(h(t)).subscribe((r) => {
|
|
350
|
-
e.vScrollTrack.style.height = `${r}px`;
|
|
351
|
-
}, "RESIZE-V-SCROLLBAR");
|
|
352
|
-
}
|
|
353
|
-
function ot(o, t) {
|
|
354
|
-
const e = o.gridDom;
|
|
355
|
-
o.totalRowHeight$.pipe(h(t)).subscribe((r) => {
|
|
356
|
-
e.body.style.height = `${r}px`;
|
|
357
|
-
}, "RESIZE-BODY-HEIGHT");
|
|
358
|
-
}
|
|
359
|
-
function R(o) {
|
|
360
|
-
return o.map((t, e) => ({ index: e, data: t }));
|
|
361
|
-
}
|
|
362
|
-
function rt(o, t) {
|
|
363
|
-
o.update((i) => i.id = t.id);
|
|
364
|
-
const e = t.columns;
|
|
365
|
-
e && o.update((i) => {
|
|
366
|
-
i.columns = e;
|
|
367
|
-
});
|
|
368
|
-
const r = t.data;
|
|
369
|
-
r && o.update((i) => {
|
|
370
|
-
i.rows = R(r);
|
|
371
|
-
});
|
|
372
|
-
const s = t.rowHeight;
|
|
373
|
-
s && o.update((i) => {
|
|
374
|
-
i.rowHeight = s;
|
|
375
|
-
});
|
|
376
|
-
}
|
|
377
|
-
function S(o, t, e, r) {
|
|
378
|
-
t.addEventListener(e, r), o.cleanups.push(() => {
|
|
379
|
-
t.removeEventListener(e, r);
|
|
380
|
-
});
|
|
381
|
-
}
|
|
382
|
-
function st(o) {
|
|
383
|
-
const t = o.gridDom;
|
|
384
|
-
S(t, t.vScrollInner, "scroll", () => {
|
|
385
|
-
const e = t.vScrollInner.scrollTop;
|
|
386
|
-
t.bodyViewport.scrollTop !== e && (t.bodyViewport.scrollTop = e);
|
|
387
|
-
}), S(t, t.hScrollInner, "scroll", () => {
|
|
388
|
-
const e = t.hScrollInner.scrollLeft;
|
|
389
|
-
t.bodyViewport.scrollLeft !== e && (t.bodyViewport.scrollLeft = e), t.headerViewport.scrollLeft !== e && (t.headerViewport.scrollLeft = e), t.footerViewport.scrollLeft !== e && (t.footerViewport.scrollLeft = e);
|
|
390
|
-
}), S(t, t.bodyViewport, "wheel", (e) => {
|
|
391
|
-
e.deltaY !== 0 && (t.vScrollInner.scrollTop += e.deltaY), e.deltaX !== 0 && (t.hScrollInner.scrollLeft += e.deltaX), e.preventDefault();
|
|
392
|
-
});
|
|
393
|
-
}
|
|
394
|
-
function C(o, t) {
|
|
395
|
-
const e = o.filter((n) => n.width != null), r = o.filter((n) => n.width == null), s = e.reduce(
|
|
396
|
-
(n, c) => n + c.width,
|
|
397
|
-
0
|
|
398
|
-
);
|
|
399
|
-
switch (e.length === o.length ? "ALL_SET" : e.length === 0 ? "NOT_SET" : "SOME_SET") {
|
|
400
|
-
case "ALL_SET":
|
|
401
|
-
if (s >= t)
|
|
402
|
-
return o.map((c) => c.width);
|
|
403
|
-
{
|
|
404
|
-
const l = (t - s) / o.length;
|
|
405
|
-
return o.map((a) => a.width + l);
|
|
406
|
-
}
|
|
407
|
-
case "SOME_SET":
|
|
408
|
-
if (s >= t)
|
|
409
|
-
return o.map((c) => c.width ?? 0);
|
|
410
|
-
{
|
|
411
|
-
const l = (t - s) / r.length;
|
|
412
|
-
return o.map((a) => a.width ?? l);
|
|
413
|
-
}
|
|
414
|
-
case "NOT_SET":
|
|
415
|
-
const n = t / o.length;
|
|
416
|
-
return o.map(() => n);
|
|
417
|
-
}
|
|
418
|
-
}
|
|
419
|
-
function y(o, t) {
|
|
420
|
-
const e = o.header;
|
|
421
|
-
e.replaceChildren(), T(e, t);
|
|
422
|
-
const r = o.body;
|
|
423
|
-
r.replaceChildren();
|
|
424
|
-
const s = t.getState().rows, i = t.getState().columns, n = t.getState().rowHeight, c = L(s, i, n), l = document.createDocumentFragment();
|
|
425
|
-
for (const g of c)
|
|
426
|
-
l.appendChild(g);
|
|
427
|
-
r.appendChild(l), o.body.querySelector(".pg-row:last-child")?.classList.toggle("last-row", !t.getState().showVScrollbar);
|
|
428
|
-
const u = o.footer;
|
|
429
|
-
u.replaceChildren(), H(u, t);
|
|
430
|
-
}
|
|
431
|
-
function E(o, t) {
|
|
432
|
-
o.columns$.pipe(h(t)).subscribe((e) => {
|
|
433
|
-
const r = o.gridDom;
|
|
434
|
-
y(r, o.store);
|
|
435
|
-
const s = o.store.getState(), i = e.filter((a) => a.visible ?? !0), n = s.viewportWidth, c = C(i, n), l = c.reduce((a, u) => a + u);
|
|
436
|
-
o.store.update((a) => {
|
|
437
|
-
a.resolvedColumnWidths = c, a.totalColumnWidth = l;
|
|
438
|
-
}), f(r, s, c);
|
|
439
|
-
}, "SET-COLUMNS");
|
|
440
|
-
}
|
|
441
|
-
function it(o, t) {
|
|
442
|
-
o.viewportWidth$.pipe(h(t)).subscribe((e) => {
|
|
443
|
-
const r = o.store.getState().columns.filter((n) => n.visible ?? !0), s = C(r, e), i = s.reduce((n, c) => n + c);
|
|
444
|
-
o.store.update((n) => {
|
|
445
|
-
n.resolvedColumnWidths = s, n.totalColumnWidth = i;
|
|
446
|
-
});
|
|
447
|
-
}, "RESOLVE-COLUMN-WIDTHS");
|
|
448
|
-
}
|
|
449
|
-
function m(o, t, e) {
|
|
450
|
-
const r = o.children;
|
|
451
|
-
for (let s = 0; s < t.length; s++) {
|
|
452
|
-
const i = r[s];
|
|
453
|
-
if (!i) continue;
|
|
454
|
-
const n = t[s] + "px";
|
|
455
|
-
i.style.width = n, i.style.minWidth = n, i.style.maxWidth = n, s === t.length - 1 && i.classList.toggle("last-cell", !e);
|
|
456
|
-
}
|
|
457
|
-
}
|
|
458
|
-
function f(o, t, e) {
|
|
459
|
-
m(o.header, e, t.showVScrollbar), m(o.footer, e, t.showVScrollbar), o.body.querySelectorAll(".pg-row").forEach((n) => {
|
|
460
|
-
m(n, e, t.showVScrollbar);
|
|
461
|
-
});
|
|
462
|
-
const s = e.reduce((n, c) => n + c, 0);
|
|
463
|
-
o.body.style.width = `${s}px`, o.header.style.width = `${s}px`, o.footer.style.width = `${s}px`, o.hScrollTrack.style.width = `${s}px`;
|
|
464
|
-
const i = t.viewportWidth;
|
|
465
|
-
o.viewport.style.width = `${i}px`;
|
|
466
|
-
}
|
|
467
|
-
function nt(o, t) {
|
|
468
|
-
o.resolvedColWidths$.pipe(h(t)).subscribe((e) => {
|
|
469
|
-
const r = o.gridDom, s = o.store.getState();
|
|
470
|
-
f(r, s, e);
|
|
471
|
-
}, "APPLY-COLUMN-WIDTHS");
|
|
472
|
-
}
|
|
473
|
-
function ct(o, t) {
|
|
474
|
-
const e = o.gridDom;
|
|
475
|
-
o.showVScrollbar$.pipe(h(t)).subscribe((r) => {
|
|
476
|
-
o.store.update((i) => {
|
|
477
|
-
i.showVScrollbar = r;
|
|
478
|
-
}), e.vScrollbar.style.display = r ? "flex" : "none", e.body.querySelector(".pg-row:last-child")?.classList.toggle("last-row", !r);
|
|
479
|
-
}, "SHOW-V-SCROLLBAR"), o.showHScrollbar$.pipe(h(t)).subscribe((r) => {
|
|
480
|
-
o.store.update((s) => {
|
|
481
|
-
s.showHScrollbar = r;
|
|
482
|
-
}), e.hScrollbar.style.display = r ? "block" : "none", e.vScrollBottomCorner.style.display = r ? "block" : "none";
|
|
483
|
-
}, "SHOW-H-SCROLLBAR"), o.adjustedViewportWidth$.pipe(
|
|
484
|
-
h(t),
|
|
485
|
-
b(
|
|
486
|
-
([r, s]) => s - (r ? 16 : 0)
|
|
487
|
-
),
|
|
488
|
-
w(),
|
|
489
|
-
// ignore initial invalid values (rawViewportWidth = 0)
|
|
490
|
-
v((r) => r >= 0)
|
|
491
|
-
).subscribe((r) => {
|
|
492
|
-
o.store.update((s) => {
|
|
493
|
-
s.viewportWidth = r;
|
|
494
|
-
});
|
|
495
|
-
}), o.adjustedViewportHeight$.pipe(
|
|
496
|
-
h(t),
|
|
497
|
-
b(
|
|
498
|
-
([r, s]) => s - (r ? 16 : 0)
|
|
499
|
-
),
|
|
500
|
-
w(),
|
|
501
|
-
v((r) => r >= 0)
|
|
502
|
-
).subscribe((r) => {
|
|
503
|
-
o.store.update((s) => {
|
|
504
|
-
s.viewportHeight = r;
|
|
505
|
-
});
|
|
506
|
-
});
|
|
507
|
-
}
|
|
508
|
-
function lt(o, t) {
|
|
509
|
-
o.computeTotalRowHeight(o, t), o.resizeVScrollbar(o, t), o.resizeBody(o, t), o.adjustViewport(o, t), o.computeColumnWidths(o, t), o.applyColumnWidths(o, t), o.addScrollEventListeners(o);
|
|
510
|
-
}
|
|
511
|
-
function at(o, t, e) {
|
|
512
|
-
return new ResizeObserver((r) => {
|
|
513
|
-
for (const s of r) {
|
|
514
|
-
const i = s.contentRect.width, n = s.contentRect.height, c = t.headerViewport.getBoundingClientRect().height, l = t.footerViewport.getBoundingClientRect().height;
|
|
515
|
-
e.update((a) => {
|
|
516
|
-
a.viewportWidth = i, a.viewportHeight = n - c - l, a.rawViewportWidth = i, a.rawViewportHeight = n - c - l;
|
|
517
|
-
});
|
|
518
|
-
}
|
|
519
|
-
});
|
|
520
|
-
}
|
|
521
|
-
function V(o, t) {
|
|
522
|
-
const e = o.gridDom;
|
|
523
|
-
o.grid, o.gridId$.pipe(h(t)).subscribe((r) => {
|
|
524
|
-
e.root.id = r;
|
|
525
|
-
}, "SET-GRID-ID");
|
|
526
|
-
}
|
|
527
|
-
class dt {
|
|
528
|
-
constructor(t) {
|
|
529
|
-
this.resizeVScrollbar = et, this.resizeBody = ot, this.computeTotalRowHeight = tt, this.addScrollEventListeners = st, this.computeColumnWidths = it, this.setCellWidth = m, this.applyColumnWidths = nt, this.adjustViewport = ct, this.initializeLayoutPipeline = lt, this.setUpResizeObserver = at, this.setGridId = V, this.updateColumnWidths = f, this.store = t._store, this.destroy$ = t._destroy$, this.gridDom = t._gridDom, this.grid = t, this.totalRowHeight$ = this.store.combineLatest([(e) => e.rows, (e) => e.rowHeight]).pipe(
|
|
530
|
-
b(([e, r]) => e.length * r),
|
|
531
|
-
w()
|
|
532
|
-
), this.viewportWidth$ = this.store.select((e) => e.viewportWidth).pipe(w()), this.resolvedColWidths$ = this.store.combineLatest([
|
|
533
|
-
(e) => e.resolvedColumnWidths,
|
|
534
|
-
(e) => e.viewportWidth,
|
|
535
|
-
(e) => e.rawViewportWidth
|
|
536
|
-
]).pipe(
|
|
537
|
-
v(
|
|
538
|
-
([e, r, s]) => r !== s
|
|
539
|
-
),
|
|
540
|
-
b(([e]) => e),
|
|
541
|
-
Q()
|
|
542
|
-
), this.showVScrollbar$ = this.store.combineLatest([(e) => e.totalRowHeight, (e) => e.rawViewportHeight]).pipe(
|
|
543
|
-
b(
|
|
544
|
-
([e, r]) => e > r
|
|
545
|
-
),
|
|
546
|
-
w()
|
|
547
|
-
), this.showHScrollbar$ = this.store.combineLatest([(e) => e.totalColumnWidth, (e) => e.rawViewportWidth]).pipe(
|
|
548
|
-
b(
|
|
549
|
-
([e, r]) => e > r
|
|
550
|
-
),
|
|
551
|
-
w()
|
|
552
|
-
), this.adjustedViewportWidth$ = this.store.combineLatestAny([
|
|
553
|
-
this.showVScrollbar$,
|
|
554
|
-
(e) => e.rawViewportWidth
|
|
555
|
-
]), this.adjustedViewportHeight$ = this.store.combineLatestAny([
|
|
556
|
-
this.showHScrollbar$,
|
|
557
|
-
(e) => e.rawViewportHeight
|
|
558
|
-
]);
|
|
559
|
-
}
|
|
560
|
-
initApiSubscriptions() {
|
|
561
|
-
this.gridId$ = this.store.selectKeyed("id", (t) => t.id), V(this, this.destroy$);
|
|
562
|
-
}
|
|
563
|
-
}
|
|
564
|
-
class ht {
|
|
565
|
-
constructor(t) {
|
|
566
|
-
this.resolveColumnWidths = C, this.setColumns = E, this.store = t._store, this.destroy$ = t._destroy$, this.gridDom = t._gridDom, this.grid = t;
|
|
567
|
-
}
|
|
568
|
-
initApiSubscriptions() {
|
|
569
|
-
this.columns$ = this.store.selectKeyed("columns", (t) => t.columns), E(this, this.destroy$);
|
|
570
|
-
}
|
|
571
|
-
}
|
|
572
|
-
class pt {
|
|
573
|
-
constructor(t) {
|
|
574
|
-
this.store = t._store;
|
|
575
|
-
}
|
|
576
|
-
}
|
|
577
|
-
function ut(o, t) {
|
|
578
|
-
o.rows$.pipe(h(t)).subscribe((e) => {
|
|
579
|
-
const r = o.gridDom, s = o.store.getState(), i = s.resolvedColumnWidths;
|
|
580
|
-
y(r, o.store), f(r, s, i);
|
|
581
|
-
}, "SET-DATA");
|
|
582
|
-
}
|
|
583
|
-
class wt {
|
|
584
|
-
constructor(t) {
|
|
585
|
-
this.store = t._store, this.destroy$ = t._destroy$, this.gridDom = t._gridDom, this.grid = t;
|
|
586
|
-
}
|
|
587
|
-
initApiSubscriptions() {
|
|
588
|
-
this.rows$ = this.store.selectKeyed("rows", (t) => t.rows), ut(this, this.destroy$);
|
|
589
|
-
}
|
|
590
|
-
}
|
|
591
|
-
class bt {
|
|
592
|
-
constructor(t) {
|
|
593
|
-
this.reRenderCells = y, this.store = t._store, this.destroy$ = t._destroy$, this.gridDom = t._gridDom, this.grid = t;
|
|
594
|
-
}
|
|
595
|
-
initApiSubscriptions() {
|
|
596
|
-
}
|
|
597
|
-
}
|
|
598
|
-
class mt {
|
|
599
|
-
constructor(t) {
|
|
600
|
-
this.grid = t, this.layout = new dt(this.grid), this.column = new ht(this.grid), this.row = new pt(this.grid), this.data = new wt(this.grid), this.renderer = new bt(this.grid);
|
|
601
|
-
}
|
|
602
|
-
}
|
|
603
|
-
class ft {
|
|
604
|
-
constructor() {
|
|
605
|
-
this.cleanups = [];
|
|
606
|
-
}
|
|
607
|
-
}
|
|
608
|
-
function gt(o, t) {
|
|
609
|
-
o._store.update((e) => {
|
|
610
|
-
e.columns = t;
|
|
611
|
-
});
|
|
612
|
-
}
|
|
613
|
-
function St(o, t) {
|
|
614
|
-
o._store.update((e) => {
|
|
615
|
-
e.rows = R(t);
|
|
616
|
-
});
|
|
617
|
-
}
|
|
618
|
-
function vt(o, t) {
|
|
619
|
-
o._store.update((e) => {
|
|
620
|
-
e.id = t;
|
|
621
|
-
});
|
|
622
|
-
}
|
|
623
|
-
function Ct(o) {
|
|
624
|
-
return {
|
|
625
|
-
setGridId: (t) => vt(o, t),
|
|
626
|
-
setData: (t) => St(o, t),
|
|
627
|
-
setColumns: (t) => gt(o, t)
|
|
628
|
-
};
|
|
629
|
-
}
|
|
630
|
-
class yt {
|
|
631
|
-
constructor(t, e) {
|
|
632
|
-
this.store = new Z(), this.gridDom = new ft(), this.destroy$ = new J(), this.services = new mt(this), rt(this.store, e), G(this.store, t, this.gridDom), this.resizeObserver = this.services.layout.setUpResizeObserver(
|
|
633
|
-
this.resizeObserver,
|
|
634
|
-
this.gridDom,
|
|
635
|
-
this.store
|
|
636
|
-
), this.resizeObserver.observe(this.gridDom.grid), this.services.layout.initializeLayoutPipeline(
|
|
637
|
-
this.services.layout,
|
|
638
|
-
this.destroy$
|
|
639
|
-
), this.api = Ct(this), this.services.layout.initApiSubscriptions(), this.services.data.initApiSubscriptions(), this.services.column.initApiSubscriptions(), this.services.renderer.initApiSubscriptions(), console.log("PolyGrid initialized");
|
|
640
|
-
}
|
|
641
|
-
destroy() {
|
|
642
|
-
this.destroy$.next(), this.destroy$.complete();
|
|
643
|
-
for (const t of this.gridDom.cleanups)
|
|
644
|
-
t();
|
|
645
|
-
}
|
|
646
|
-
get _store() {
|
|
647
|
-
return this.store;
|
|
648
|
-
}
|
|
649
|
-
get _destroy$() {
|
|
650
|
-
return this.destroy$;
|
|
651
|
-
}
|
|
652
|
-
get _gridDom() {
|
|
653
|
-
return this.gridDom;
|
|
654
|
-
}
|
|
655
|
-
}
|
|
656
|
-
export {
|
|
657
|
-
yt as PolyGrid
|
|
658
|
-
};
|
package/polygrid.umd.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(function(b,d){typeof exports=="object"&&typeof module<"u"?d(exports):typeof define=="function"&&define.amd?define(["exports"],d):(b=typeof globalThis<"u"?globalThis:b||self,d(b.PolyGrid={}))})(this,(function(b){"use strict";const d={root:"pg-root",grid:"pg-grid",viewport:"pg-viewport",vScroll:"pg-v-scroll",vScrollSpacerTop:"pg-v-scroll-spacer-top",vScrollInner:"pg-v-scroll-inner",vScrollTrack:"pg-v-scroll-track",vScrollSpacerBottom:"pg-v-scroll-spacer-bottom",vScrollBottomCorner:"pg-v-scroll-bottom-corner",hScroll:"pg-h-scroll",hScrollInner:"pg-h-scroll-inner",hScrollTrack:"pg-h-scroll-track",headerViewport:"pg-header-viewport",header:"pg-header",headerCell:"pg-header-cell",bodyViewport:"pg-body-viewport",body:"pg-body",row:"pg-row",cell:"pg-cell",footerViewport:"pg-footer-viewport",footer:"pg-footer",footerCell:"pg-footer-cell"};function O(o,t){const e=document.createElement("div");e.classList.add(d.cell);const r=o[t.field];return e.textContent=r!=null?String(r):"",e}function V(o,t,e){const r=[],s=t.filter(i=>i.visible??!0);return o.forEach(i=>{const n=document.createElement("div");n.classList.add(d.row),n.style.height=e+"px",s.forEach(c=>{const l=O(i.data,c);n.appendChild(l)}),r.push(n)}),r}function _(o,t){const e=document.createElement("div");e.className=d.bodyViewport;const r=document.createElement("div");r.className=d.body,r.innerHTML="";const s=o.getState().rows,i=o.getState().columns,n=o.getState().rowHeight,c=V(s,i,n),l=document.createDocumentFragment();for(const a of c)l.appendChild(a);return r.appendChild(l),e.appendChild(r),t.body=r,e}function L(o,t){const e=t.getState().columns.filter(r=>r.visible??!0);o.innerHTML="",e.forEach((r,s)=>{const i=document.createElement("div");i.className=d.footerCell,i.textContent=r.header,o.appendChild(i)})}function I(o,t){const e=document.createElement("div");e.className=d.footerViewport;const r=document.createElement("div");return r.className=d.footer,L(r,o),e.appendChild(r),t.footer=r,e}function T(o,t){const e=t.getState().columns.filter(r=>r.visible??!0);o.innerHTML="",e.forEach((r,s)=>{const i=document.createElement("div");i.className=d.headerCell,i.textContent=r.header,o.appendChild(i)})}function A(o,t){const e=document.createElement("div");e.className=d.headerViewport;const r=document.createElement("div");return r.className=d.header,T(r,o),e.appendChild(r),t.header=r,e}function N(o){const t=document.createElement("div");t.className=d.hScroll;const e=document.createElement("div");e.className=d.hScrollInner;const r=document.createElement("div");return r.className=d.hScrollTrack,t.appendChild(e),e.appendChild(r),o.hScrollInner=e,o.hScrollTrack=r,t}function B(o,t){const e=document.createElement("div");e.className=d.viewport;const r=A(o,t),s=_(o,t),i=I(o,t),n=N(t);return e.appendChild(r),e.appendChild(s),e.appendChild(i),e.appendChild(n),t.headerViewport=r,t.bodyViewport=s,t.footerViewport=i,t.hScrollbar=n,e}function P(){const o=document.createElement("div");return o.className=d.vScrollBottomCorner,o}function x(){const o=document.createElement("div");return o.className=d.vScrollSpacerBottom,o}function z(){const o=document.createElement("div");return o.className=d.vScrollSpacerTop,o}function k(o){const t=document.createElement("div");t.className=d.vScroll;const e=document.createElement("div");e.className=d.vScrollInner;const r=document.createElement("div");r.className=d.vScrollTrack;const s=z(),i=x(),n=P();return t.appendChild(s),t.appendChild(e),t.appendChild(i),t.appendChild(n),e.appendChild(r),o.vScrollInner=e,o.vScrollSpacerTop=s,o.vScrollSpacerBottom=i,o.vScrollBottomCorner=n,o.vScrollTrack=r,t}function D(o,t){const e=document.createElement("div");e.className=d.grid;const r=B(o,t),s=k(t);return e.appendChild(r),e.appendChild(s),t.viewport=r,t.vScrollbar=s,e}function G(o,t,e){const r=document.createElement("div");r.className=d.root,r.id=o.getState().id;const s=D(o,e);r.appendChild(s),t.appendChild(r),e.root=r,e.grid=s}function j(){return{id:"",columns:[],rows:[],rowHeight:20,resolvedColumnWidths:[],columnWidthState:"NOT_SET",totalColumnWidth:0,totalRowHeight:0,viewportWidth:0,viewportHeight:0,rawViewportWidth:0,rawViewportHeight:0,showHScrollbar:!1,showVScrollbar:!1}}function H(o,t,e=[],r){return new Proxy(o,{get(s,i,n){const c=Reflect.get(s,i,n);if(c&&typeof c=="object"){const l=e.concat(String(i));return H(c,t,l,r)}return c},set(s,i,n,c){const l=String(i),a=e.concat(l),u=U(a),E=M(t,a),Et=Reflect.set(s,i,n,c);return r.push({path:u,from:E,to:n}),Et}})}function M(o,t){let e=o;for(const r of t){if(e==null)return;e=e[r]}return e}function U(o){return o.map(t=>/^\d+$/.test(t)?`[${t}]`:t).join(".").replace(/\.\[/g,"[")}function F(o,t,e){console.groupCollapsed("%cPolyGridStore mutations","color:#FF9800;font-weight:bold;");for(const r of o)console.log(`Path: ${r.path}`),console.log("From:",r.from),console.log("To:",r.to);console.groupEnd()}class p{constructor(t){this._subscribe=t}subscribe(t,e){const r=s=>{e&&console.log(`%cSubscription ${e?`(${e})`:""} reacted`,"color:#9C27B0;font-weight:bold;"),t(s)};return this._subscribe(r)}pipe(...t){let e=this;for(const r of t)e=r(e);return e}}function K(o,t){let e=t(o.getState());return new p(r=>{r(e);const s=i=>{const n=t(i);Object.is(e,n)||(e=n,r(n))};return o.getSubscribers().add(s),()=>o.getSubscribers().delete(s)})}function Y(o,t){return new p(e=>{let r=t.map(i=>i(o.getState()));e(r);const s=t.map((i,n)=>o.select(i).subscribe(c=>{if(!Object.is(r[n],c)){const l=[...r];l[n]=c,r=l,e(r)}}));return()=>s.forEach(i=>i())})}function q(o,t){return new p(e=>{const r=new Array(t.length),s=new Array(t.length).fill(!1),i=t.map((n,c)=>{if(typeof n=="function"){const a=n;return r[c]=a(o.getState()),s[c]=!0,o.select(a).subscribe(u=>{r[c]=u,e([...r])})}return n.subscribe(a=>{r[c]=a,s[c]=!0,s.every(Boolean)&&e([...r])})});return s.every(Boolean)&&e([...r]),()=>i.forEach(n=>n())})}function X(o,t,e){let r=e(o.getState());return new p(s=>{const i=(n,c)=>{if(!c.includes(t))return;const l=e(n);Object.is(r,l)||(r=l,s(l))};return o.getSubscribers().add(i),()=>o.getSubscribers().delete(i)})}class Z{constructor(){this.subscribers=new Set,this.state=j()}getState(){return this.state}getSubscribers(){return this.subscribers}update(t){const e=this.state,r={...this.state},s=[],i=H(r,e,[],s);t(i),s.length>0&&F(s);const n=s.map(c=>c.path);this.state=r,this.emit(n)}subscribe(t){return this.subscribers.add(t),()=>this.subscribers.delete(t)}select(t){return K(this,t)}selectKeyed(t,e){return X(this,t,e)}combineLatest(t){return Y(this,t)}combineLatestAny(t){return q(this,t)}emit(t){for(const e of this.subscribers)e(this.state,t)}}class J{constructor(){this.subscribers=new Set,this.pipe=p.prototype.pipe}subscribe(t){return this.subscribers.add(t),()=>this.subscribers.delete(t)}next(t){this.subscribers.forEach(e=>e(t))}complete(){this.subscribers.clear()}}function Q(){return o=>new p(t=>{let e;return o.subscribe(r=>{e&&e.length===r.length&&e.every((s,i)=>Object.is(s,r[i]))||(e=r,t(r))})})}function w(o=(t,e)=>t===e){return t=>new p(e=>{let r=!1,s;return t.subscribe(i=>{(!r||!o(s,i))&&(r=!0,s=i,e(i))})})}function S(o){return t=>new p(e=>t.subscribe(r=>{o(r)&&e(r)}))}function f(o){return t=>new p(e=>t.subscribe(r=>e(o(r))))}function h(o){return t=>new p(e=>{const r=t.subscribe(e),s=o.subscribe(()=>{r(),s()});return()=>{r(),s()}})}function tt(o,t){o.totalRowHeight$.pipe(h(t)).subscribe(e=>{o.store.update(r=>{r.totalRowHeight=e})},"SET-TOTALROWHEIGHT")}function et(o,t){const e=o.gridDom;o.totalRowHeight$.pipe(h(t)).subscribe(r=>{e.vScrollTrack.style.height=`${r}px`},"RESIZE-V-SCROLLBAR")}function ot(o,t){const e=o.gridDom;o.totalRowHeight$.pipe(h(t)).subscribe(r=>{e.body.style.height=`${r}px`},"RESIZE-BODY-HEIGHT")}function W(o){return o.map((t,e)=>({index:e,data:t}))}function rt(o,t){o.update(i=>i.id=t.id);const e=t.columns;e&&o.update(i=>{i.columns=e});const r=t.data;r&&o.update(i=>{i.rows=W(r)});const s=t.rowHeight;s&&o.update(i=>{i.rowHeight=s})}function v(o,t,e,r){t.addEventListener(e,r),o.cleanups.push(()=>{t.removeEventListener(e,r)})}function st(o){const t=o.gridDom;v(t,t.vScrollInner,"scroll",()=>{const e=t.vScrollInner.scrollTop;t.bodyViewport.scrollTop!==e&&(t.bodyViewport.scrollTop=e)}),v(t,t.hScrollInner,"scroll",()=>{const e=t.hScrollInner.scrollLeft;t.bodyViewport.scrollLeft!==e&&(t.bodyViewport.scrollLeft=e),t.headerViewport.scrollLeft!==e&&(t.headerViewport.scrollLeft=e),t.footerViewport.scrollLeft!==e&&(t.footerViewport.scrollLeft=e)}),v(t,t.bodyViewport,"wheel",e=>{e.deltaY!==0&&(t.vScrollInner.scrollTop+=e.deltaY),e.deltaX!==0&&(t.hScrollInner.scrollLeft+=e.deltaX),e.preventDefault()})}function C(o,t){const e=o.filter(n=>n.width!=null),r=o.filter(n=>n.width==null),s=e.reduce((n,c)=>n+c.width,0);switch(e.length===o.length?"ALL_SET":e.length===0?"NOT_SET":"SOME_SET"){case"ALL_SET":if(s>=t)return o.map(c=>c.width);{const l=(t-s)/o.length;return o.map(a=>a.width+l)}case"SOME_SET":if(s>=t)return o.map(c=>c.width??0);{const l=(t-s)/r.length;return o.map(a=>a.width??l)}case"NOT_SET":const n=t/o.length;return o.map(()=>n)}}function y(o,t){const e=o.header;e.replaceChildren(),T(e,t);const r=o.body;r.replaceChildren();const s=t.getState().rows,i=t.getState().columns,n=t.getState().rowHeight,c=V(s,i,n),l=document.createDocumentFragment();for(const E of c)l.appendChild(E);r.appendChild(l),o.body.querySelector(".pg-row:last-child")?.classList.toggle("last-row",!t.getState().showVScrollbar);const u=o.footer;u.replaceChildren(),L(u,t)}function R(o,t){o.columns$.pipe(h(t)).subscribe(e=>{const r=o.gridDom;y(r,o.store);const s=o.store.getState(),i=e.filter(a=>a.visible??!0),n=s.viewportWidth,c=C(i,n),l=c.reduce((a,u)=>a+u);o.store.update(a=>{a.resolvedColumnWidths=c,a.totalColumnWidth=l}),g(r,s,c)},"SET-COLUMNS")}function it(o,t){o.viewportWidth$.pipe(h(t)).subscribe(e=>{const r=o.store.getState().columns.filter(n=>n.visible??!0),s=C(r,e),i=s.reduce((n,c)=>n+c);o.store.update(n=>{n.resolvedColumnWidths=s,n.totalColumnWidth=i})},"RESOLVE-COLUMN-WIDTHS")}function m(o,t,e){const r=o.children;for(let s=0;s<t.length;s++){const i=r[s];if(!i)continue;const n=t[s]+"px";i.style.width=n,i.style.minWidth=n,i.style.maxWidth=n,s===t.length-1&&i.classList.toggle("last-cell",!e)}}function g(o,t,e){m(o.header,e,t.showVScrollbar),m(o.footer,e,t.showVScrollbar),o.body.querySelectorAll(".pg-row").forEach(n=>{m(n,e,t.showVScrollbar)});const s=e.reduce((n,c)=>n+c,0);o.body.style.width=`${s}px`,o.header.style.width=`${s}px`,o.footer.style.width=`${s}px`,o.hScrollTrack.style.width=`${s}px`;const i=t.viewportWidth;o.viewport.style.width=`${i}px`}function nt(o,t){o.resolvedColWidths$.pipe(h(t)).subscribe(e=>{const r=o.gridDom,s=o.store.getState();g(r,s,e)},"APPLY-COLUMN-WIDTHS")}function ct(o,t){const e=o.gridDom;o.showVScrollbar$.pipe(h(t)).subscribe(r=>{o.store.update(i=>{i.showVScrollbar=r}),e.vScrollbar.style.display=r?"flex":"none",e.body.querySelector(".pg-row:last-child")?.classList.toggle("last-row",!r)},"SHOW-V-SCROLLBAR"),o.showHScrollbar$.pipe(h(t)).subscribe(r=>{o.store.update(s=>{s.showHScrollbar=r}),e.hScrollbar.style.display=r?"block":"none",e.vScrollBottomCorner.style.display=r?"block":"none"},"SHOW-H-SCROLLBAR"),o.adjustedViewportWidth$.pipe(h(t),f(([r,s])=>s-(r?16:0)),w(),S(r=>r>=0)).subscribe(r=>{o.store.update(s=>{s.viewportWidth=r})}),o.adjustedViewportHeight$.pipe(h(t),f(([r,s])=>s-(r?16:0)),w(),S(r=>r>=0)).subscribe(r=>{o.store.update(s=>{s.viewportHeight=r})})}function lt(o,t){o.computeTotalRowHeight(o,t),o.resizeVScrollbar(o,t),o.resizeBody(o,t),o.adjustViewport(o,t),o.computeColumnWidths(o,t),o.applyColumnWidths(o,t),o.addScrollEventListeners(o)}function dt(o,t,e){return new ResizeObserver(r=>{for(const s of r){const i=s.contentRect.width,n=s.contentRect.height,c=t.headerViewport.getBoundingClientRect().height,l=t.footerViewport.getBoundingClientRect().height;e.update(a=>{a.viewportWidth=i,a.viewportHeight=n-c-l,a.rawViewportWidth=i,a.rawViewportHeight=n-c-l})}})}function $(o,t){const e=o.gridDom;o.grid,o.gridId$.pipe(h(t)).subscribe(r=>{e.root.id=r},"SET-GRID-ID")}class at{constructor(t){this.resizeVScrollbar=et,this.resizeBody=ot,this.computeTotalRowHeight=tt,this.addScrollEventListeners=st,this.computeColumnWidths=it,this.setCellWidth=m,this.applyColumnWidths=nt,this.adjustViewport=ct,this.initializeLayoutPipeline=lt,this.setUpResizeObserver=dt,this.setGridId=$,this.updateColumnWidths=g,this.store=t._store,this.destroy$=t._destroy$,this.gridDom=t._gridDom,this.grid=t,this.totalRowHeight$=this.store.combineLatest([e=>e.rows,e=>e.rowHeight]).pipe(f(([e,r])=>e.length*r),w()),this.viewportWidth$=this.store.select(e=>e.viewportWidth).pipe(w()),this.resolvedColWidths$=this.store.combineLatest([e=>e.resolvedColumnWidths,e=>e.viewportWidth,e=>e.rawViewportWidth]).pipe(S(([e,r,s])=>r!==s),f(([e])=>e),Q()),this.showVScrollbar$=this.store.combineLatest([e=>e.totalRowHeight,e=>e.rawViewportHeight]).pipe(f(([e,r])=>e>r),w()),this.showHScrollbar$=this.store.combineLatest([e=>e.totalColumnWidth,e=>e.rawViewportWidth]).pipe(f(([e,r])=>e>r),w()),this.adjustedViewportWidth$=this.store.combineLatestAny([this.showVScrollbar$,e=>e.rawViewportWidth]),this.adjustedViewportHeight$=this.store.combineLatestAny([this.showHScrollbar$,e=>e.rawViewportHeight])}initApiSubscriptions(){this.gridId$=this.store.selectKeyed("id",t=>t.id),$(this,this.destroy$)}}class ht{constructor(t){this.resolveColumnWidths=C,this.setColumns=R,this.store=t._store,this.destroy$=t._destroy$,this.gridDom=t._gridDom,this.grid=t}initApiSubscriptions(){this.columns$=this.store.selectKeyed("columns",t=>t.columns),R(this,this.destroy$)}}class pt{constructor(t){this.store=t._store}}function ut(o,t){o.rows$.pipe(h(t)).subscribe(e=>{const r=o.gridDom,s=o.store.getState(),i=s.resolvedColumnWidths;y(r,o.store),g(r,s,i)},"SET-DATA")}class bt{constructor(t){this.store=t._store,this.destroy$=t._destroy$,this.gridDom=t._gridDom,this.grid=t}initApiSubscriptions(){this.rows$=this.store.selectKeyed("rows",t=>t.rows),ut(this,this.destroy$)}}class wt{constructor(t){this.reRenderCells=y,this.store=t._store,this.destroy$=t._destroy$,this.gridDom=t._gridDom,this.grid=t}initApiSubscriptions(){}}class ft{constructor(t){this.grid=t,this.layout=new at(this.grid),this.column=new ht(this.grid),this.row=new pt(this.grid),this.data=new bt(this.grid),this.renderer=new wt(this.grid)}}class mt{constructor(){this.cleanups=[]}}function gt(o,t){o._store.update(e=>{e.columns=t})}function St(o,t){o._store.update(e=>{e.rows=W(t)})}function vt(o,t){o._store.update(e=>{e.id=t})}function Ct(o){return{setGridId:t=>vt(o,t),setData:t=>St(o,t),setColumns:t=>gt(o,t)}}class yt{constructor(t,e){this.store=new Z,this.gridDom=new mt,this.destroy$=new J,this.services=new ft(this),rt(this.store,e),G(this.store,t,this.gridDom),this.resizeObserver=this.services.layout.setUpResizeObserver(this.resizeObserver,this.gridDom,this.store),this.resizeObserver.observe(this.gridDom.grid),this.services.layout.initializeLayoutPipeline(this.services.layout,this.destroy$),this.api=Ct(this),this.services.layout.initApiSubscriptions(),this.services.data.initApiSubscriptions(),this.services.column.initApiSubscriptions(),this.services.renderer.initApiSubscriptions(),console.log("PolyGrid initialized")}destroy(){this.destroy$.next(),this.destroy$.complete();for(const t of this.gridDom.cleanups)t()}get _store(){return this.store}get _destroy$(){return this.destroy$}get _gridDom(){return this.gridDom}}b.PolyGrid=yt,Object.defineProperty(b,Symbol.toStringTag,{value:"Module"})}));
|
package/types/api/index.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { PolyGrid } from '../engine/core/grid';
|
|
2
|
-
import { PolyGridColumn } from '../engine/services/column/interfaces/column';
|
|
3
|
-
export type PolyGridApi = ReturnType<typeof createApi>;
|
|
4
|
-
export declare function createApi(grid: PolyGrid): {
|
|
5
|
-
setGridId: (id: string) => void;
|
|
6
|
-
setData: (data: any[]) => void;
|
|
7
|
-
setColumns: (columns: PolyGridColumn[]) => void;
|
|
8
|
-
};
|
|
9
|
-
//# sourceMappingURL=index.d.ts.map
|