@ballistix.digital/react-components 0.7.1 → 0.8.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.d.ts CHANGED
@@ -847,6 +847,11 @@ type TProps$1 = {
847
847
  table: Table<any>;
848
848
  setColumnOrder: Dispatch<SetStateAction<ColumnOrderState>>;
849
849
  trigger: ReactNode;
850
+ resetConfig?: {
851
+ tableId: string;
852
+ label?: string;
853
+ onReset?: () => void;
854
+ };
850
855
  };
851
856
  declare const TableColumnOptionsCustom: FC<TProps$1>;
852
857
 
package/dist/index.esm.js CHANGED
@@ -1727,6 +1727,9 @@ var setTableState = function (tableName, state) {
1727
1727
  localStorage.setItem("TableList.".concat(tableName, ".state"), JSON.stringify(cherryPickedState));
1728
1728
  }
1729
1729
  };
1730
+ var removeTableState = function (tableName) {
1731
+ localStorage.removeItem("TableList.".concat(tableName, ".state"));
1732
+ };
1730
1733
  var isValidState = function (state) {
1731
1734
  if (!(state === null || state === void 0 ? void 0 : state.columnOrder) ||
1732
1735
  !(state === null || state === void 0 ? void 0 : state.columnVisibility) ||
@@ -2596,7 +2599,8 @@ var styles$7 = {
2596
2599
  };
2597
2600
 
2598
2601
  var TableColumnOptionsCustom = function (props) {
2599
- var table = props.table, trigger = props.trigger, setColumnOrder = props.setColumnOrder;
2602
+ var _a;
2603
+ var table = props.table, trigger = props.trigger, setColumnOrder = props.setColumnOrder, resetConfig = props.resetConfig;
2600
2604
  var handleUpdateColumnOrder = useCallback(function (table, column, location, setColumnOrder) {
2601
2605
  var _a;
2602
2606
  var ids = (_a = table
@@ -2608,26 +2612,31 @@ var TableColumnOptionsCustom = function (props) {
2608
2612
  ids.splice(location, 0, column.id);
2609
2613
  setColumnOrder(ids);
2610
2614
  }, []);
2611
- return (jsxs(Popover, { children: [jsx(Popover.Button, { children: trigger }), jsx(Popover.Panel, { className: styles$6.controls.content, children: table
2612
- .getAllLeafColumns()
2613
- .map(function (column, index) {
2614
- var isAccessorColumn = !!(column === null || column === void 0 ? void 0 : column.accessorFn);
2615
- return (jsxs("div", { className: toClassName(styles$6.controls.dropdown.container, !isAccessorColumn && 'hidden'), children: [jsx("input", { className: styles$6.controls.dropdown.input, type: "checkbox", checked: column.getIsVisible(), onChange: column.getToggleVisibilityHandler() }), jsx("label", { className: styles$6.controls.dropdown.label, children: column.columnDef.header }), jsxs("div", { className: styles$6.controls.dropdown.actions, children: [jsx(ChevronDownIcon$1, { className: styles$6.controls.dropdown.upIcon, onClick: function () {
2616
- return handleUpdateColumnOrder(table, column, index - 1, setColumnOrder);
2617
- } }), jsx(ChevronDownIcon$1, { className: styles$6.controls.dropdown.downIcon, onClick: function () {
2618
- return handleUpdateColumnOrder(table, column, index + 1, setColumnOrder);
2619
- } })] })] }, column.id));
2620
- }) })] }));
2615
+ return (jsxs(Popover, { children: [jsx(Popover.Button, { children: trigger }), jsxs(Popover.Panel, { className: styles$6.controls.content, children: [resetConfig && (jsxs("div", { className: styles$6.controls.dropdown.reset, onClick: function () {
2616
+ removeTableState(resetConfig.tableId);
2617
+ table.resetColumnVisibility(true);
2618
+ table.resetColumnOrder();
2619
+ resetConfig.onReset && resetConfig.onReset();
2620
+ }, children: [jsx(IconElement, { accessor: "rotate-left" }), jsx("p", { children: (_a = resetConfig.label) !== null && _a !== void 0 ? _a : 'Reset' })] })), table
2621
+ .getAllLeafColumns()
2622
+ .map(function (column, index) {
2623
+ var isAccessorColumn = !!(column === null || column === void 0 ? void 0 : column.accessorFn);
2624
+ return (jsxs("div", { className: toClassName(styles$6.controls.dropdown.container, !isAccessorColumn && 'hidden'), children: [jsx("input", { className: styles$6.controls.dropdown.input, type: "checkbox", checked: column.getIsVisible(), onChange: column.getToggleVisibilityHandler() }), jsx("label", { className: styles$6.controls.dropdown.label, children: column.columnDef.header }), jsxs("div", { className: styles$6.controls.dropdown.actions, children: [jsx(ChevronDownIcon$1, { className: styles$6.controls.dropdown.upIcon, onClick: function () {
2625
+ return handleUpdateColumnOrder(table, column, index - 1, setColumnOrder);
2626
+ } }), jsx(ChevronDownIcon$1, { className: styles$6.controls.dropdown.downIcon, onClick: function () {
2627
+ return handleUpdateColumnOrder(table, column, index + 1, setColumnOrder);
2628
+ } })] })] }, column.id));
2629
+ })] })] }));
2621
2630
  };
2622
2631
 
2623
2632
  var styles$6 = {
2624
- container: '',
2625
2633
  controls: {
2626
2634
  container: 'flex-row justify-between z-10 relative mb-4 gap-2 hidden',
2627
- content: 'absolute rounded-md z-20 bg-white w-fit -translate-x-1/2 my-2 flex flex-col',
2635
+ content: 'absolute rounded-md z-20 bg-white w-fit -translate-x-1/2 my-2 flex flex-col border-[1px]',
2628
2636
  head: '',
2629
2637
  body: 'flex flex-row justify-end gap-2',
2630
2638
  dropdown: {
2639
+ reset: 'flex px-4 py-2 text-sm cursor-pointer hover:bg-red-100 bg-red-50 items-center flex-row gap-3',
2631
2640
  container: 'px-4 py-2 text-sm flex flex-row items-center font-medium group',
2632
2641
  input: 'mr-3 cursor-pointer',
2633
2642
  label: 'mr-3',