@bsol-oss/react-datatable5 7.3.6 → 7.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -12,13 +12,13 @@ var bi = require('react-icons/bi');
12
12
  var cg = require('react-icons/cg');
13
13
  var io = require('react-icons/io');
14
14
  var hi2 = require('react-icons/hi2');
15
+ var hi = require('react-icons/hi');
15
16
  var reactTable = require('@tanstack/react-table');
16
17
  var matchSorterUtils = require('@tanstack/match-sorter-utils');
17
18
  var bs = require('react-icons/bs');
18
19
  var gr = require('react-icons/gr');
19
20
  var reactQuery = require('@tanstack/react-query');
20
21
  var io5 = require('react-icons/io5');
21
- var hi = require('react-icons/hi');
22
22
  var adapter = require('@atlaskit/pragmatic-drag-and-drop/element/adapter');
23
23
  var invariant = require('tiny-invariant');
24
24
  var axios = require('axios');
@@ -612,6 +612,27 @@ const snakeToLabel = (str) => {
612
612
  .join(" "); // Join with space
613
613
  };
614
614
 
615
+ const ToggleTip = React__namespace.forwardRef(function ToggleTip(props, ref) {
616
+ const { showArrow, children, portalled = true, content, portalRef, ...rest } = props;
617
+ return (jsxRuntime.jsxs(react.Popover.Root, { ...rest, positioning: { ...rest.positioning, gutter: 4 }, children: [jsxRuntime.jsx(react.Popover.Trigger, { asChild: true, children: children }), jsxRuntime.jsx(react.Portal, { disabled: !portalled, container: portalRef, children: jsxRuntime.jsx(react.Popover.Positioner, { children: jsxRuntime.jsxs(react.Popover.Content, { width: "auto", px: "2", py: "1", textStyle: "xs", rounded: "sm", ref: ref, children: [showArrow && (jsxRuntime.jsx(react.Popover.Arrow, { children: jsxRuntime.jsx(react.Popover.ArrowTip, {}) })), content] }) }) })] }));
618
+ });
619
+ const InfoTip = React__namespace.forwardRef(function InfoTip(props, ref) {
620
+ const { children, ...rest } = props;
621
+ return (jsxRuntime.jsx(ToggleTip, { content: children, ...rest, ref: ref, children: jsxRuntime.jsx(react.IconButton, { variant: "ghost", "aria-label": "info", size: "2xs", colorPalette: "gray", children: jsxRuntime.jsx(hi.HiOutlineInformationCircle, {}) }) }));
622
+ });
623
+
624
+ const DataListRoot = react.DataList.Root;
625
+ const DataListItem = React__namespace.forwardRef(function DataListItem(props, ref) {
626
+ const { label, info, value, children, grow, ...rest } = props;
627
+ return (jsxRuntime.jsxs(react.DataList.Item, { ref: ref, ...rest, children: [jsxRuntime.jsxs(react.DataList.ItemLabel, { flex: grow ? "1" : undefined, children: [label, info && jsxRuntime.jsx(InfoTip, { children: info })] }), jsxRuntime.jsx(react.DataList.ItemValue, { flex: grow ? "1" : undefined, children: value }), children] }));
628
+ });
629
+
630
+ const RecordDisplay = ({ object, dataListProps, }) => {
631
+ return (jsxRuntime.jsx(DataListRoot, { gap: 4, padding: 4, display: "grid", variant: "subtle", orientation: "horizontal", overflow: "auto", ...dataListProps, children: Object.entries(object).map(([field, value]) => {
632
+ return (jsxRuntime.jsx(DataListItem, { label: snakeToLabel(field), value: JSON.stringify(value) }, field));
633
+ }) }));
634
+ };
635
+
615
636
  const formatValue = (value) => {
616
637
  if (typeof value === "object") {
617
638
  return JSON.stringify(value);
@@ -632,6 +653,10 @@ const DataDisplay = ({ variant = "" }) => {
632
653
  if (variant == "horizontal") {
633
654
  return (jsxRuntime.jsx(react.Flex, { flexFlow: "column", gap: "1", children: table.getRowModel().rows.map((row) => {
634
655
  return (jsxRuntime.jsx(react.Card.Root, { children: jsxRuntime.jsx(react.Card.Body, { children: jsxRuntime.jsx(react.DataList.Root, { gap: 4, padding: 4, display: "grid", variant: "subtle", orientation: "horizontal", overflow: "auto", children: row.getVisibleCells().map((cell) => {
656
+ const value = cell.getValue();
657
+ if (typeof value === "object") {
658
+ return jsxRuntime.jsx(RecordDisplay, { object: value });
659
+ }
635
660
  return (jsxRuntime.jsxs(react.DataList.Item, { children: [jsxRuntime.jsx(react.DataList.ItemLabel, { children: snakeToLabel(cell.column.id) }), jsxRuntime.jsx(react.DataList.ItemValue, { wordBreak: "break-word", textOverflow: "ellipsis", overflow: "hidden", children: `${formatValue(cell.getValue())}` })] }, cell.id));
636
661
  }) }) }) }, `chakra-table-card-${row.id}`));
637
662
  }) }));
@@ -1778,21 +1803,6 @@ const IdPicker = ({ column, in_table, column_ref, display_column, isMultiple = f
1778
1803
  }, children: showMore ?? "Show More" }) }))] })] }) })] }), errors[`${column}`] && (jsxRuntime.jsx(react.Text, { color: "red.400", children: fieldRequired ?? "The field is requried" }))] }));
1779
1804
  };
1780
1805
 
1781
- const ToggleTip = React__namespace.forwardRef(function ToggleTip(props, ref) {
1782
- const { showArrow, children, portalled = true, content, portalRef, ...rest } = props;
1783
- return (jsxRuntime.jsxs(react.Popover.Root, { ...rest, positioning: { ...rest.positioning, gutter: 4 }, children: [jsxRuntime.jsx(react.Popover.Trigger, { asChild: true, children: children }), jsxRuntime.jsx(react.Portal, { disabled: !portalled, container: portalRef, children: jsxRuntime.jsx(react.Popover.Positioner, { children: jsxRuntime.jsxs(react.Popover.Content, { width: "auto", px: "2", py: "1", textStyle: "xs", rounded: "sm", ref: ref, children: [showArrow && (jsxRuntime.jsx(react.Popover.Arrow, { children: jsxRuntime.jsx(react.Popover.ArrowTip, {}) })), content] }) }) })] }));
1784
- });
1785
- const InfoTip = React__namespace.forwardRef(function InfoTip(props, ref) {
1786
- const { children, ...rest } = props;
1787
- return (jsxRuntime.jsx(ToggleTip, { content: children, ...rest, ref: ref, children: jsxRuntime.jsx(react.IconButton, { variant: "ghost", "aria-label": "info", size: "2xs", colorPalette: "gray", children: jsxRuntime.jsx(hi.HiOutlineInformationCircle, {}) }) }));
1788
- });
1789
-
1790
- const DataListRoot = react.DataList.Root;
1791
- const DataListItem = React__namespace.forwardRef(function DataListItem(props, ref) {
1792
- const { label, info, value, children, grow, ...rest } = props;
1793
- return (jsxRuntime.jsxs(react.DataList.Item, { ref: ref, ...rest, children: [jsxRuntime.jsxs(react.DataList.ItemLabel, { flex: grow ? "1" : undefined, children: [label, info && jsxRuntime.jsx(InfoTip, { children: info })] }), jsxRuntime.jsx(react.DataList.ItemValue, { flex: grow ? "1" : undefined, children: value }), children] }));
1794
- });
1795
-
1796
1806
  const IdViewer = ({ value, in_table, column_ref, display_column, column, }) => {
1797
1807
  const { schema, serverUrl } = useSchemaContext();
1798
1808
  if (schema.properties == undefined) {
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import { Button as Button$1, AbsoluteCenter, Spinner, Span, IconButton, Portal, Dialog, RadioGroup as RadioGroup$1, Grid, Box, Slider as Slider$1, HStack, For, Flex, Text, Tag as Tag$1, Input, useDisclosure, DialogBackdrop, Menu, createRecipeContext, createContext as createContext$1, Pagination, usePaginationContext, Image, Card, DataList, Checkbox as Checkbox$1, Table as Table$1, Tooltip as Tooltip$1, Icon, MenuRoot as MenuRoot$1, MenuTrigger as MenuTrigger$1, EmptyState as EmptyState$2, VStack, List, CheckboxCard as CheckboxCard$1, Alert, Group, InputElement, Popover, Field as Field$1, NumberInput, Accordion, Show, RadioCard, CheckboxGroup, Heading, Center } from '@chakra-ui/react';
2
+ import { Button as Button$1, AbsoluteCenter, Spinner, Span, IconButton, Portal, Dialog, RadioGroup as RadioGroup$1, Grid, Box, Slider as Slider$1, HStack, For, Flex, Text, Tag as Tag$1, Input, useDisclosure, DialogBackdrop, Menu, createRecipeContext, createContext as createContext$1, Pagination, usePaginationContext, Image, Popover, DataList, Card, Checkbox as Checkbox$1, Table as Table$1, Tooltip as Tooltip$1, Icon, MenuRoot as MenuRoot$1, MenuTrigger as MenuTrigger$1, EmptyState as EmptyState$2, VStack, List, CheckboxCard as CheckboxCard$1, Alert, Group, InputElement, Field as Field$1, NumberInput, Accordion, Show, RadioCard, CheckboxGroup, Heading, Center } from '@chakra-ui/react';
3
3
  import { AiOutlineColumnWidth } from 'react-icons/ai';
4
4
  import * as React from 'react';
5
5
  import React__default, { createContext, useContext, useState, useEffect, useRef, useMemo } from 'react';
@@ -11,13 +11,13 @@ import { BiDownArrow, BiUpArrow } from 'react-icons/bi';
11
11
  import { CgClose } from 'react-icons/cg';
12
12
  import { IoMdEye, IoMdCheckbox } from 'react-icons/io';
13
13
  import { HiMiniEllipsisHorizontal, HiChevronLeft, HiChevronRight } from 'react-icons/hi2';
14
+ import { HiOutlineInformationCircle, HiColorSwatch } from 'react-icons/hi';
14
15
  import { makeStateUpdater, functionalUpdate, useReactTable, getCoreRowModel, getFilteredRowModel, getSortedRowModel, getPaginationRowModel, flexRender, createColumnHelper } from '@tanstack/react-table';
15
16
  import { rankItem } from '@tanstack/match-sorter-utils';
16
17
  import { BsExclamationCircleFill } from 'react-icons/bs';
17
18
  import { GrAscend, GrDescend } from 'react-icons/gr';
18
19
  import { useQueryClient, useQuery, QueryClient, QueryClientProvider } from '@tanstack/react-query';
19
20
  import { IoReload } from 'react-icons/io5';
20
- import { HiColorSwatch, HiOutlineInformationCircle } from 'react-icons/hi';
21
21
  import { monitorForElements, draggable, dropTargetForElements } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';
22
22
  import invariant from 'tiny-invariant';
23
23
  import axios from 'axios';
@@ -592,6 +592,27 @@ const snakeToLabel = (str) => {
592
592
  .join(" "); // Join with space
593
593
  };
594
594
 
595
+ const ToggleTip = React.forwardRef(function ToggleTip(props, ref) {
596
+ const { showArrow, children, portalled = true, content, portalRef, ...rest } = props;
597
+ return (jsxs(Popover.Root, { ...rest, positioning: { ...rest.positioning, gutter: 4 }, children: [jsx(Popover.Trigger, { asChild: true, children: children }), jsx(Portal, { disabled: !portalled, container: portalRef, children: jsx(Popover.Positioner, { children: jsxs(Popover.Content, { width: "auto", px: "2", py: "1", textStyle: "xs", rounded: "sm", ref: ref, children: [showArrow && (jsx(Popover.Arrow, { children: jsx(Popover.ArrowTip, {}) })), content] }) }) })] }));
598
+ });
599
+ const InfoTip = React.forwardRef(function InfoTip(props, ref) {
600
+ const { children, ...rest } = props;
601
+ return (jsx(ToggleTip, { content: children, ...rest, ref: ref, children: jsx(IconButton, { variant: "ghost", "aria-label": "info", size: "2xs", colorPalette: "gray", children: jsx(HiOutlineInformationCircle, {}) }) }));
602
+ });
603
+
604
+ const DataListRoot = DataList.Root;
605
+ const DataListItem = React.forwardRef(function DataListItem(props, ref) {
606
+ const { label, info, value, children, grow, ...rest } = props;
607
+ return (jsxs(DataList.Item, { ref: ref, ...rest, children: [jsxs(DataList.ItemLabel, { flex: grow ? "1" : undefined, children: [label, info && jsx(InfoTip, { children: info })] }), jsx(DataList.ItemValue, { flex: grow ? "1" : undefined, children: value }), children] }));
608
+ });
609
+
610
+ const RecordDisplay = ({ object, dataListProps, }) => {
611
+ return (jsx(DataListRoot, { gap: 4, padding: 4, display: "grid", variant: "subtle", orientation: "horizontal", overflow: "auto", ...dataListProps, children: Object.entries(object).map(([field, value]) => {
612
+ return (jsx(DataListItem, { label: snakeToLabel(field), value: JSON.stringify(value) }, field));
613
+ }) }));
614
+ };
615
+
595
616
  const formatValue = (value) => {
596
617
  if (typeof value === "object") {
597
618
  return JSON.stringify(value);
@@ -612,6 +633,10 @@ const DataDisplay = ({ variant = "" }) => {
612
633
  if (variant == "horizontal") {
613
634
  return (jsx(Flex, { flexFlow: "column", gap: "1", children: table.getRowModel().rows.map((row) => {
614
635
  return (jsx(Card.Root, { children: jsx(Card.Body, { children: jsx(DataList.Root, { gap: 4, padding: 4, display: "grid", variant: "subtle", orientation: "horizontal", overflow: "auto", children: row.getVisibleCells().map((cell) => {
636
+ const value = cell.getValue();
637
+ if (typeof value === "object") {
638
+ return jsx(RecordDisplay, { object: value });
639
+ }
615
640
  return (jsxs(DataList.Item, { children: [jsx(DataList.ItemLabel, { children: snakeToLabel(cell.column.id) }), jsx(DataList.ItemValue, { wordBreak: "break-word", textOverflow: "ellipsis", overflow: "hidden", children: `${formatValue(cell.getValue())}` })] }, cell.id));
616
641
  }) }) }) }, `chakra-table-card-${row.id}`));
617
642
  }) }));
@@ -1758,21 +1783,6 @@ const IdPicker = ({ column, in_table, column_ref, display_column, isMultiple = f
1758
1783
  }, children: showMore ?? "Show More" }) }))] })] }) })] }), errors[`${column}`] && (jsx(Text, { color: "red.400", children: fieldRequired ?? "The field is requried" }))] }));
1759
1784
  };
1760
1785
 
1761
- const ToggleTip = React.forwardRef(function ToggleTip(props, ref) {
1762
- const { showArrow, children, portalled = true, content, portalRef, ...rest } = props;
1763
- return (jsxs(Popover.Root, { ...rest, positioning: { ...rest.positioning, gutter: 4 }, children: [jsx(Popover.Trigger, { asChild: true, children: children }), jsx(Portal, { disabled: !portalled, container: portalRef, children: jsx(Popover.Positioner, { children: jsxs(Popover.Content, { width: "auto", px: "2", py: "1", textStyle: "xs", rounded: "sm", ref: ref, children: [showArrow && (jsx(Popover.Arrow, { children: jsx(Popover.ArrowTip, {}) })), content] }) }) })] }));
1764
- });
1765
- const InfoTip = React.forwardRef(function InfoTip(props, ref) {
1766
- const { children, ...rest } = props;
1767
- return (jsx(ToggleTip, { content: children, ...rest, ref: ref, children: jsx(IconButton, { variant: "ghost", "aria-label": "info", size: "2xs", colorPalette: "gray", children: jsx(HiOutlineInformationCircle, {}) }) }));
1768
- });
1769
-
1770
- const DataListRoot = DataList.Root;
1771
- const DataListItem = React.forwardRef(function DataListItem(props, ref) {
1772
- const { label, info, value, children, grow, ...rest } = props;
1773
- return (jsxs(DataList.Item, { ref: ref, ...rest, children: [jsxs(DataList.ItemLabel, { flex: grow ? "1" : undefined, children: [label, info && jsx(InfoTip, { children: info })] }), jsx(DataList.ItemValue, { flex: grow ? "1" : undefined, children: value }), children] }));
1774
- });
1775
-
1776
1786
  const IdViewer = ({ value, in_table, column_ref, display_column, column, }) => {
1777
1787
  const { schema, serverUrl } = useSchemaContext();
1778
1788
  if (schema.properties == undefined) {
@@ -0,0 +1,6 @@
1
+ import { DataListRootProps } from "@chakra-ui/react";
2
+ export interface RecordDisplayProps {
3
+ object: Record<string, string>;
4
+ dataListProps?: DataListRootProps;
5
+ }
6
+ export declare const RecordDisplay: ({ object, dataListProps, }: RecordDisplayProps) => import("react/jsx-runtime").JSX.Element;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bsol-oss/react-datatable5",
3
- "version": "7.3.6",
3
+ "version": "7.4.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",