@pinnacle0/web-ui 0.4.18 → 0.4.20

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,12 +1,14 @@
1
1
  import React from "react";
2
2
  import "./index.less";
3
3
  interface Props {
4
- height: number;
5
- width: number;
6
4
  id?: string;
7
5
  className?: string;
6
+ height: number;
7
+ width: number;
8
8
  minHeight?: number;
9
9
  minWidth?: number;
10
+ maxHeight?: number;
11
+ maxWidth?: number;
10
12
  gap?: number;
11
13
  children?: React.ReactNode;
12
14
  }
@@ -3,7 +3,7 @@ import { Resizer } from "./Resizer";
3
3
  import { classNames } from "../../util/ClassNames";
4
4
  import "./index.less";
5
5
  export var Resizable = React.forwardRef(function (_a, ref) {
6
- var height = _a.height, width = _a.width, className = _a.className, id = _a.id, gap = _a.gap, children = _a.children, _b = _a.minHeight, minHeight = _b === void 0 ? 0 : _b, _c = _a.minWidth, minWidth = _c === void 0 ? 0 : _c;
6
+ var height = _a.height, width = _a.width, className = _a.className, id = _a.id, gap = _a.gap, children = _a.children, _b = _a.maxHeight, maxHeight = _b === void 0 ? window.innerHeight : _b, _c = _a.maxWidth, maxWidth = _c === void 0 ? window.innerWidth : _c, _d = _a.minHeight, minHeight = _d === void 0 ? 0 : _d, _e = _a.minWidth, minWidth = _e === void 0 ? 0 : _e;
7
7
  var resizableDivRef = React.useRef(null);
8
8
  var startRect = React.useRef({ top: 0, right: 0, bottom: 0, left: 0, width: 0, height: 0 });
9
9
  var combineRef = function (node) {
@@ -25,7 +25,7 @@ export var Resizable = React.forwardRef(function (_a, ref) {
25
25
  var _a = startRect.current, top_2 = _a.top, height_2 = _a.height;
26
26
  var deltaY = state.delta[1];
27
27
  var transformedHeight = height_2 - deltaY;
28
- if (transformedHeight < minHeight) {
28
+ if (transformedHeight < minHeight || transformedHeight > maxHeight) {
29
29
  return;
30
30
  }
31
31
  resizableDivRef.current.style.top = "".concat(top_2 + deltaY, "px");
@@ -36,7 +36,7 @@ export var Resizable = React.forwardRef(function (_a, ref) {
36
36
  if (resizableDivRef.current) {
37
37
  var width_2 = startRect.current.width;
38
38
  var transformedWidth = width_2 + state.delta[0];
39
- if (transformedWidth < minWidth) {
39
+ if (transformedWidth < minWidth || transformedWidth > maxWidth) {
40
40
  return;
41
41
  }
42
42
  resizableDivRef.current.style.width = "".concat(transformedWidth, "px");
@@ -46,7 +46,7 @@ export var Resizable = React.forwardRef(function (_a, ref) {
46
46
  if (resizableDivRef.current) {
47
47
  var height_3 = startRect.current.height;
48
48
  var transformedHeight = height_3 + state.delta[1];
49
- if (transformedHeight < minHeight) {
49
+ if (transformedHeight < minHeight || transformedHeight > maxHeight) {
50
50
  return;
51
51
  }
52
52
  resizableDivRef.current.style.height = "".concat(transformedHeight, "px");
@@ -57,7 +57,7 @@ export var Resizable = React.forwardRef(function (_a, ref) {
57
57
  var _a = startRect.current, left = _a.left, width_3 = _a.width;
58
58
  var deltaX = state.delta[0];
59
59
  var transformedWidth = width_3 - deltaX;
60
- if (transformedWidth < minWidth) {
60
+ if (transformedWidth < minWidth || transformedWidth > maxWidth) {
61
61
  return;
62
62
  }
63
63
  resizableDivRef.current.style.left = "".concat(left + deltaX, "px");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/Resizable/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/Resizable/index.tsx"],"names":[],"mappings":"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"}
@@ -1,8 +1,12 @@
1
- import "../internal/polyfill/ResizeObserver";
2
- import type { VirtualizerOptions } from "@tanstack/react-virtual";
1
+ import "../../internal/polyfill/ResizeObserver";
2
+ import React from "react";
3
+ import type { VirtualizerOptions, Virtualizer } from "@tanstack/react-virtual";
3
4
  import type { ComponentType } from "react";
4
- import type { StringKey } from "../internal/type";
5
- type Direction = "horizontal" | "vertical";
5
+ import type { StringKey } from "../../internal/type";
6
+ import "./index.less";
7
+ export type Direction = "horizontal" | "vertical";
8
+ export interface VirtualListHandler extends Pick<Virtualizer<HTMLElement, HTMLElement>, "scrollElement" | "scrollToIndex" | "scrollToOffset" | "measure" | "getVirtualItems" | "range" | "indexFromElement" | "getTotalSize" | "scrollElement"> {
9
+ }
6
10
  export interface ItemProps<T extends object> {
7
11
  index: number;
8
12
  data: T;
@@ -20,9 +24,10 @@ export interface Props<T extends object> {
20
24
  overscan?: number;
21
25
  observeElementRect?: VirtualizerOptions<HTMLElement, HTMLElement>["observeElementRect"];
22
26
  observeElementOffset?: VirtualizerOptions<HTMLElement, HTMLElement>["observeElementOffset"];
27
+ className?: string;
28
+ listRef?: React.Ref<VirtualListHandler>;
23
29
  }
24
30
  /**
25
31
  * Efficiently rendering large lists and tabular data
26
32
  */
27
- export declare function VirtualList<T extends object>({ data, rowKey, direction, renderItem: renderData, overscan, initialRect, observeElementOffset, fixedSize, observeElementRect, }: Props<T>): JSX.Element;
28
- export {};
33
+ export declare function VirtualList<T extends object>({ data, rowKey, direction, renderItem: renderData, overscan, initialRect, observeElementOffset, fixedSize, observeElementRect, className, listRef, }: Props<T>): JSX.Element;
@@ -1,27 +1,17 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- import "../internal/polyfill/ResizeObserver";
1
+ import "../../internal/polyfill/ResizeObserver";
13
2
  import React from "react";
3
+ import { classNames } from "../../util/ClassNames";
14
4
  import { useVirtualizer, observeElementOffset as defaultObserveElementOffset, observeElementRect as defaultObserveElementRect } from "@tanstack/react-virtual";
5
+ import "./index.less";
15
6
  var DEFAULT_ITEM_SIZE = 100;
16
7
  /**
17
8
  * Efficiently rendering large lists and tabular data
18
9
  */
19
10
  export function VirtualList(_a) {
20
- var data = _a.data, _b = _a.rowKey, rowKey = _b === void 0 ? "index" : _b, _c = _a.direction, direction = _c === void 0 ? "vertical" : _c, renderData = _a.renderItem, _d = _a.overscan, overscan = _d === void 0 ? 5 : _d, _e = _a.initialRect, initialRect = _e === void 0 ? { width: 0, height: 0 } : _e, observeElementOffset = _a.observeElementOffset, fixedSize = _a.fixedSize, observeElementRect = _a.observeElementRect;
11
+ var data = _a.data, _b = _a.rowKey, rowKey = _b === void 0 ? "index" : _b, _c = _a.direction, direction = _c === void 0 ? "vertical" : _c, renderData = _a.renderItem, _d = _a.overscan, overscan = _d === void 0 ? 5 : _d, _e = _a.initialRect, initialRect = _e === void 0 ? { width: 0, height: 0 } : _e, observeElementOffset = _a.observeElementOffset, fixedSize = _a.fixedSize, observeElementRect = _a.observeElementRect, className = _a.className, listRef = _a.listRef;
21
12
  var Item = renderData;
22
13
  var parentRef = React.useRef(null);
23
14
  var horizontal = direction === "horizontal";
24
- var sizeStyle = horizontal ? { height: "100%" } : { width: "100%" };
25
15
  var virtualizer = useVirtualizer({
26
16
  initialRect: initialRect,
27
17
  horizontal: horizontal,
@@ -32,14 +22,20 @@ export function VirtualList(_a) {
32
22
  observeElementRect: observeElementRect !== null && observeElementRect !== void 0 ? observeElementRect : defaultObserveElementRect,
33
23
  overscan: overscan,
34
24
  });
25
+ React.useImperativeHandle(listRef, function () { return ({
26
+ getVirtualItems: virtualizer.getVirtualItems,
27
+ scrollElement: virtualizer.scrollElement,
28
+ measure: virtualizer.measure,
29
+ scrollToIndex: virtualizer.scrollToIndex,
30
+ scrollToOffset: virtualizer.scrollToOffset,
31
+ getTotalSize: virtualizer.getTotalSize,
32
+ indexFromElement: virtualizer.indexFromElement,
33
+ range: virtualizer.range,
34
+ }); });
35
35
  var getItemKey = function (index) { return (rowKey === "index" ? index : data[index][rowKey]); };
36
- return (React.createElement("div", { className: "g-virtual-list", ref: parentRef, style: { flex: 1, width: "100%", height: "100%", overflow: "auto" } },
37
- React.createElement("div", { className: "g-virtual-list-inner", style: {
38
- position: "relative",
39
- height: horizontal ? "100%" : virtualizer.getTotalSize(),
40
- width: horizontal ? virtualizer.getTotalSize() : "100%",
41
- } }, virtualizer.getVirtualItems().map(function (virtualRow) { return (React.createElement("div", { className: "g-virtual-list-item", key: getItemKey(virtualRow.index), ref: virtualizer.measureElement, "data-index": virtualRow.index, style: __assign({ position: "absolute", top: 0, left: 0, transform: horizontal ? "translateX(".concat(virtualRow.start, "px)") : "translateY(".concat(virtualRow.start, "px)") }, sizeStyle) },
42
- React.createElement("div", { className: "g-virtual-list-item-wrapper", style: __assign({}, sizeStyle) },
36
+ return (React.createElement("div", { className: classNames("g-virtual-list", className, { horizontal: horizontal }), ref: parentRef },
37
+ React.createElement("div", { className: "g-virtual-list-inner", style: horizontal ? { width: virtualizer.getTotalSize() } : { height: virtualizer.getTotalSize() } }, virtualizer.getVirtualItems().map(function (virtualRow) { return (React.createElement("div", { className: "g-virtual-list-item", key: getItemKey(virtualRow.index), ref: virtualizer.measureElement, "data-index": virtualRow.index, style: { transform: horizontal ? "translateX(".concat(virtualRow.start, "px)") : "translateY(".concat(virtualRow.start, "px)") } },
38
+ React.createElement("div", { className: "g-virtual-list-item-wrapper" },
43
39
  React.createElement(Item, { data: data[virtualRow.index], index: virtualRow.index })))); }))));
44
40
  }
45
- //# sourceMappingURL=VirtualList.js.map
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/VirtualList/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ .g-virtual-list {
2
+ flex: 1;
3
+ width: 100%;
4
+ height: 100%;
5
+ overflow: auto;
6
+
7
+ .g-virtual-list-inner {
8
+ position: relative;
9
+ width: 100%;
10
+
11
+ .g-virtual-list-item {
12
+ position: absolute;
13
+ top: 0;
14
+ left: 0;
15
+ width: 100%;
16
+
17
+ .g-virtual-list-item-wrapper {
18
+ width: 100%;
19
+ }
20
+ }
21
+ }
22
+
23
+ &.horizontal {
24
+ .g-virtual-list-inner,
25
+ .g-virtual-list-item,
26
+ .g-virtual-list-item-wrapper {
27
+ width: auto;
28
+ height: 100%;
29
+ }
30
+ }
31
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pinnacle0/web-ui",
3
- "version": "0.4.18",
3
+ "version": "0.4.20",
4
4
  "author": "Pinnacle",
5
5
  "license": "MIT",
6
6
  "sideEffects": [
@@ -52,7 +52,7 @@
52
52
  "react-dom": "18.2.0",
53
53
  "react-router-dom": "5.3.0",
54
54
  "typescript": "4.9.4",
55
- "@pinnacle0/devtool-util": "1.1.7",
55
+ "@pinnacle0/devtool-util": "1.2.1",
56
56
  "@pinnacle0/webpack-util": "0.4.45"
57
57
  },
58
58
  "publishConfig": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"VirtualList.js","sourceRoot":"","sources":["../../src/core/VirtualList.tsx"],"names":[],"mappings":"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"}