@veeqo/transfigure 1.2.6 → 1.2.7

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.
Files changed (124) hide show
  1. package/dist/BusinessLogic/mocks.d.ts +1 -0
  2. package/dist/components/Filters/ActiveFilters/Categories/FilterField/FilterField.d.ts +3 -1
  3. package/dist/constants/constants.d.ts +1 -0
  4. package/dist/index.cjs +1 -1
  5. package/dist/index.css +1 -1
  6. package/dist/index.js +89 -88
  7. package/dist/index10.cjs +1 -1
  8. package/dist/index10.js +37 -30
  9. package/dist/index100.cjs +1 -12
  10. package/dist/index100.js +11 -16
  11. package/dist/index101.cjs +19 -1
  12. package/dist/index101.js +24 -38
  13. package/dist/index102.cjs +1 -1
  14. package/dist/index102.js +21 -29
  15. package/dist/index103.cjs +1 -19
  16. package/dist/index103.js +14 -23
  17. package/dist/index104.cjs +1 -1
  18. package/dist/index104.js +36 -19
  19. package/dist/index105.cjs +1 -1
  20. package/dist/index105.js +26 -12
  21. package/dist/index107.cjs +10 -78
  22. package/dist/index107.js +13 -98
  23. package/dist/index108.cjs +80 -1
  24. package/dist/index108.js +101 -19
  25. package/dist/index109.cjs +1 -1
  26. package/dist/index109.js +2 -8
  27. package/dist/index11.cjs +1 -1
  28. package/dist/index11.js +1 -1
  29. package/dist/index110.cjs +1 -1
  30. package/dist/index110.js +17 -62
  31. package/dist/index111.cjs +1 -1
  32. package/dist/index111.js +7 -29
  33. package/dist/index112.cjs +1 -13
  34. package/dist/index112.js +63 -16
  35. package/dist/index113.cjs +1 -1
  36. package/dist/index113.js +30 -2
  37. package/dist/index114.cjs +13 -1
  38. package/dist/index114.js +14 -33
  39. package/dist/index115.cjs +1 -1
  40. package/dist/index115.js +32 -22
  41. package/dist/index116.cjs +1 -1
  42. package/dist/index116.js +25 -62
  43. package/dist/index117.cjs +1 -1
  44. package/dist/index117.js +5 -47
  45. package/dist/index119.cjs +1 -0
  46. package/dist/index119.js +65 -0
  47. package/dist/index120.cjs +1 -0
  48. package/dist/index120.js +49 -0
  49. package/dist/index13.cjs +1 -1
  50. package/dist/index13.js +16 -15
  51. package/dist/index17.cjs +1 -1
  52. package/dist/index17.js +1 -1
  53. package/dist/index18.cjs +1 -1
  54. package/dist/index18.js +10 -9
  55. package/dist/index19.cjs +1 -1
  56. package/dist/index19.js +33 -26
  57. package/dist/index20.cjs +1 -1
  58. package/dist/index20.js +21 -20
  59. package/dist/index22.cjs +1 -1
  60. package/dist/index22.js +1 -1
  61. package/dist/index30.cjs +1 -1
  62. package/dist/index30.js +40 -37
  63. package/dist/index31.cjs +1 -1
  64. package/dist/index31.js +1 -1
  65. package/dist/index35.cjs +1 -1
  66. package/dist/index35.js +7 -7
  67. package/dist/index36.cjs +1 -1
  68. package/dist/index36.js +2 -2
  69. package/dist/index39.cjs +1 -1
  70. package/dist/index39.js +1 -1
  71. package/dist/index40.cjs +1 -1
  72. package/dist/index40.js +1 -1
  73. package/dist/index41.cjs +1 -1
  74. package/dist/index41.js +1 -1
  75. package/dist/index42.cjs +1 -1
  76. package/dist/index42.js +1 -1
  77. package/dist/index44.cjs +1 -1
  78. package/dist/index44.js +1 -1
  79. package/dist/index46.cjs +1 -1
  80. package/dist/index46.js +2 -2
  81. package/dist/index47.cjs +1 -1
  82. package/dist/index47.js +2 -2
  83. package/dist/index49.cjs +1 -1
  84. package/dist/index49.js +6 -5
  85. package/dist/index78.cjs +1 -1
  86. package/dist/index78.js +1 -1
  87. package/dist/index80.cjs +1 -1
  88. package/dist/index80.js +1 -1
  89. package/dist/index84.cjs +1 -1
  90. package/dist/index84.js +1 -1
  91. package/dist/index85.cjs +1 -1
  92. package/dist/index85.js +1 -1
  93. package/dist/index86.cjs +1 -1
  94. package/dist/index86.js +41 -5
  95. package/dist/index87.cjs +1 -1
  96. package/dist/index87.js +8 -117
  97. package/dist/index88.cjs +1 -1
  98. package/dist/index88.js +2 -19
  99. package/dist/index89.cjs +1 -1
  100. package/dist/index89.js +5 -41
  101. package/dist/index90.cjs +1 -1
  102. package/dist/index90.js +117 -8
  103. package/dist/index91.cjs +1 -1
  104. package/dist/index91.js +19 -13
  105. package/dist/index92.cjs +1 -104
  106. package/dist/index92.js +7 -120
  107. package/dist/index93.cjs +1 -1
  108. package/dist/index93.js +16 -66
  109. package/dist/index94.cjs +1 -1
  110. package/dist/index94.js +13 -29
  111. package/dist/index95.cjs +104 -1
  112. package/dist/index95.js +120 -2
  113. package/dist/index96.cjs +1 -1
  114. package/dist/index96.js +65 -38
  115. package/dist/index97.cjs +1 -1
  116. package/dist/index97.js +26 -8
  117. package/dist/index98.cjs +1 -1
  118. package/dist/index98.js +2 -18
  119. package/dist/index99.cjs +1 -1
  120. package/dist/index99.js +40 -6
  121. package/dist/utils/isTextFilterValid/index.d.ts +1 -0
  122. package/dist/utils/isTextFilterValid/isTextFilterValid.d.ts +7 -0
  123. package/dist/utils/isTextFilterValid/isTextFilterValid.test.d.ts +1 -0
  124. package/package.json +1 -1
package/dist/index95.js CHANGED
@@ -1,4 +1,122 @@
1
- var i = /* @__PURE__ */ ((e) => (e.Hidden = "hidden", e.Visible = "visible", e))(i || {});
1
+ import r from "styled-components";
2
+ import { Grid as l, theme as o, Text as t, BaseContainer as n, Search as s, Stack as i } from "@veeqo/ui";
3
+ import { VeeqoCommon as a } from "@veeqo/components";
4
+ const { Glyph: c } = a, b = r.div`
5
+ width: 1px;
6
+ position: absolute;
7
+ left: 50%;
8
+ transform: translateX(-50%);
9
+ border-left: 1px solid ${o.colors.neutral.grey.dark};
10
+ height: 100%;
11
+ margin-top: 40px;
12
+ `, f = r(t)`
13
+ writing-mode: vertical-rl;
14
+ position: absolute;
15
+ top: 50%;
16
+ left: 50%;
17
+ transform: translate(-50%, -50%);
18
+ background: white;
19
+ padding: 30px 0;
20
+ text-align: center;
21
+ font-size: 10px;
22
+ color: ${o.colors.neutral.ink.lightest};
23
+ height: max-content;
24
+ `, h = r(t)`
25
+ position: sticky;
26
+ top: 0;
27
+ background: #ffffff;
28
+ padding-bottom: ${o.sizes[2]};
29
+ z-index: 1;
30
+ `, x = r(t)`
31
+ color: ${o.colors.neutral.ink.light};
32
+ `, m = r(l)`
33
+ // overflow-y: auto;
34
+ position: unset;
35
+ `, d = r(c).attrs(() => ({ name: "visibility-off" }))`
36
+ margin-left: auto;
37
+ `, $ = r(i)`
38
+ border-radius: 4px;
39
+ padding: 8px 12px;
40
+ background: #ffffff;
41
+ border: 1px solid ${o.colors.neutral.ink.lightest};
42
+ transition: all ease 200ms;
43
+
44
+ ${({ isHidden: e }) => e && `
45
+ ${t} {
46
+ color: ${o.colors.neutral.ink.light};
47
+ }
48
+ `}
49
+
50
+ &:hover {
51
+ color: ${o.colors.secondary.blue.base};
52
+ background: ${o.colors.neutral.grey.lightest};
53
+ border: 1px solid ${o.colors.neutral.grey.light};
54
+
55
+ ${t} {
56
+ color: ${o.colors.secondary.blue.base};
57
+ }
58
+
59
+ ${d} {
60
+ color: ${o.colors.neutral.ink.light};
61
+ }
62
+ }
63
+
64
+ ${({ isDragOverlay: e }) => e && `
65
+ color: ${o.colors.secondary.blue.base};
66
+ background: ${o.colors.neutral.grey.lightest};
67
+ border: 1px solid ${o.colors.neutral.grey.light};
68
+ cursor: grabbing;
69
+
70
+ ${t} {
71
+ color: ${o.colors.secondary.blue.base};
72
+ }
73
+ `}
74
+ `, y = r.div`
75
+ position: absolute;
76
+ top: 0;
77
+ left: 0;
78
+ right: 0;
79
+ bottom: 0;
80
+ height: 100%;
81
+ width: calc(100% - 2px);
82
+ border-radius: 4px;
83
+ border: 1px dashed ${o.colors.neutral.grey.dark};
84
+ background: ${o.colors.neutral.grey.lightest};
85
+ `, k = r(i)`
86
+ flex: 1;
87
+ padding: 0;
88
+ `, v = r(s)`
89
+ input {
90
+ height: 40px;
91
+ box-sizing: border-box;
92
+ }
93
+
94
+ svg {
95
+ width: 16px;
96
+ }
97
+ `, C = r.div`
98
+ position: relative;
99
+ min-height: 500px;
100
+ `, w = r(n)`
101
+ display: flex;
102
+ flex-direction: column;
103
+ gap: ${o.sizes.base};
104
+ padding: ${o.sizes.md};
105
+ `, z = r.dialog`
106
+ display: contents;
107
+ `;
2
108
  export {
3
- i as ColumnGroupIds
109
+ m as ColumnGroupsGrid,
110
+ $ as ColumnItemWrapper,
111
+ v as ColumnSearch,
112
+ C as Container,
113
+ x as DetailedText,
114
+ z as DndDragOverlayDialog,
115
+ y as DraggingOverlay,
116
+ k as DroppableAreaStack,
117
+ w as HeaderContainer,
118
+ h as StickyText,
119
+ b as VerticalSeparator,
120
+ f as VerticalText,
121
+ d as VisibilityOffIcon
4
122
  };
package/dist/index96.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const C=require("react"),f=require("./index62.cjs"),y=require("./index61.cjs"),g=require("./index52.cjs"),h=require("./index60.cjs"),p=require("./index5.cjs"),w=({pinnedLeftColumnIds:r,pinnedRightColumnIds:a})=>{const{Filters:{activeViewId:t},Notifications:{notify:e}}=y.useStores(),{closeModal:i}=g.useModal(),{mutate:c}=f.useViews(),{getActiveViewInAPIFormat:l}=h.usePersistUnsavedChanges(),[m,o]=C.useState(!1);return{saveColumns:async({visibleColumns:n})=>{if(t)try{if(o(!0),n.length<1){e({type:"error",text:"You must have at least one visible column."});return}const u=[...r,...n,...a],{arg:d,currentView:s}=l(),v={...d,columns:{...s==null?void 0:s.columns,columnIds:u}};await p.patchCustomView(t,{attributes:v}),await c(),i(),e({type:"success",text:"Columns updated successfully"})}catch{e({type:"error",text:"Failed to save columns"})}finally{o(!1)}},isSavingColumns:m}};exports.usePersistColumns=w;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),e=require("@dnd-kit/core"),S=require("@dnd-kit/sortable"),h=require("./index95.cjs"),q=require("@veeqo/ui"),C=require("./index52.cjs"),E=require("./index112.cjs"),p=require("./index113.cjs"),A=require("./index12.cjs"),b=require("./index51.cjs"),x={droppable:{strategy:e.MeasuringStrategy.Always}},M={sideEffects:e.defaultDropAnimationSideEffects({styles:{active:{opacity:"0.5"}}})},j=({items:o,setItems:s,children:a,renderDragOverlay:n})=>{const{closeModal:i,openModal:l}=C.useModal(),c=e.useSensors(e.useSensor(e.PointerSensor),e.useSensor(e.KeyboardSensor,{coordinateGetter:S.sortableKeyboardCoordinates})),{activeId:t,handleDragCancel:d,handleDragEnd:u,handleDragOver:g,handleDragStart:D}=E.useDragHandlers({items:o,setItems:s}),{collisionDetectionStrategy:y}=p.useCollisionDetectionStrategy({items:o});return r.jsx(A.ErrorBoundary,{errorComponent:r.jsx(q.Alert,{variant:"error",title:"An error occurred",rightActions:[{label:"Reload",onClick:()=>{i(),l(b.ModalId.ORDERS_TABLE_MANAGEMENT)}}]}),children:r.jsxs(e.DndContext,{sensors:c,measuring:x,collisionDetection:y,onDragStart:D,onDragOver:g,onDragEnd:u,onDragCancel:d,children:[a,r.jsx(h.DndDragOverlayDialog,{open:!0,children:r.jsx(e.DragOverlay,{dropAnimation:M,zIndex:2001,children:t&&n?n(t):null})})]})})};exports.DndContainer=j;
package/dist/index96.js CHANGED
@@ -1,43 +1,70 @@
1
- import { useState as d } from "react";
2
- import { useViews as v } from "./index62.js";
3
- import { useStores as y } from "./index61.js";
4
- import { useModal as C } from "./index52.js";
5
- import { usePersistUnsavedChanges as g } from "./index60.js";
6
- import { patchCustomView as h } from "./index5.js";
7
- const b = ({ pinnedLeftColumnIds: a, pinnedRightColumnIds: i }) => {
8
- const {
9
- Filters: {
10
- activeViewId: e
11
- },
12
- Notifications: {
13
- notify: t
1
+ import { jsx as r, jsxs as f } from "react/jsx-runtime";
2
+ import { useSensors as u, useSensor as n, PointerSensor as y, KeyboardSensor as S, DndContext as h, MeasuringStrategy as A, DragOverlay as E, defaultDropAnimationSideEffects as C } from "@dnd-kit/core";
3
+ import { sortableKeyboardCoordinates as M } from "@dnd-kit/sortable";
4
+ import { DndDragOverlayDialog as v } from "./index95.js";
5
+ import { Alert as b } from "@veeqo/ui";
6
+ import { useModal as x } from "./index52.js";
7
+ import { useDragHandlers as O } from "./index112.js";
8
+ import { useCollisionDetectionStrategy as I } from "./index113.js";
9
+ import { ErrorBoundary as R } from "./index12.js";
10
+ import { ModalId as j } from "./index51.js";
11
+ const B = {
12
+ droppable: {
13
+ strategy: A.Always
14
+ }
15
+ }, G = {
16
+ sideEffects: C({
17
+ styles: {
18
+ active: {
19
+ opacity: "0.5"
20
+ }
14
21
  }
15
- } = y(), { closeModal: u } = C(), { mutate: m } = v(), { getActiveViewInAPIFormat: c } = g(), [l, o] = d(!1);
16
- return {
17
- saveColumns: async ({ visibleColumns: n }) => {
18
- if (e)
19
- try {
20
- if (o(!0), n.length < 1) {
21
- t({ type: "error", text: "You must have at least one visible column." });
22
- return;
22
+ })
23
+ }, q = ({
24
+ items: o,
25
+ setItems: a,
26
+ children: i,
27
+ renderDragOverlay: e
28
+ }) => {
29
+ const { closeModal: s, openModal: l } = x(), d = u(
30
+ n(y),
31
+ n(S, {
32
+ coordinateGetter: M
33
+ })
34
+ ), { activeId: t, handleDragCancel: c, handleDragEnd: m, handleDragOver: p, handleDragStart: D } = O({ items: o, setItems: a }), { collisionDetectionStrategy: g } = I({
35
+ items: o
36
+ });
37
+ return /* @__PURE__ */ r(R, { errorComponent: /* @__PURE__ */ r(b, { variant: "error", title: "An error occurred", rightActions: [
38
+ {
39
+ label: "Reload",
40
+ onClick: () => {
41
+ s(), l(j.ORDERS_TABLE_MANAGEMENT);
42
+ }
43
+ }
44
+ ] }), children: /* @__PURE__ */ f(
45
+ h,
46
+ {
47
+ sensors: d,
48
+ measuring: B,
49
+ collisionDetection: g,
50
+ onDragStart: D,
51
+ onDragOver: p,
52
+ onDragEnd: m,
53
+ onDragCancel: c,
54
+ children: [
55
+ i,
56
+ /* @__PURE__ */ r(v, { open: !0, children: /* @__PURE__ */ r(
57
+ E,
58
+ {
59
+ dropAnimation: G,
60
+ zIndex: 2001,
61
+ children: t && e ? e(t) : null
23
62
  }
24
- const r = [...a, ...n, ...i], { arg: f, currentView: s } = c(), p = {
25
- ...f,
26
- columns: {
27
- ...s == null ? void 0 : s.columns,
28
- columnIds: r
29
- }
30
- };
31
- await h(e, { attributes: p }), await m(), u(), t({ type: "success", text: "Columns updated successfully" });
32
- } catch {
33
- t({ type: "error", text: "Failed to save columns" });
34
- } finally {
35
- o(!1);
36
- }
37
- },
38
- isSavingColumns: l
39
- };
63
+ ) })
64
+ ]
65
+ }
66
+ ) });
40
67
  };
41
68
  export {
42
- b as usePersistColumns
69
+ q as DndContainer
43
70
  };
package/dist/index97.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=(t,r)=>{if(!r)return t;const i=r.toLowerCase();return t.filter(e=>{var s,a;return((s=e==null?void 0:e.title)==null?void 0:s.toLowerCase().includes(i))||((a=e==null?void 0:e.id)==null?void 0:a.toLowerCase().includes(i))})};exports.filterColumnsBySearch=d;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),i=require("@veeqo/ui"),a=require("@veeqo/components"),n=require("./index95.cjs"),{Glyph:c}=a.VeeqoCommon,l=({column:t,isHidden:r,isDragOverlay:s})=>{const o=t.title||t.tooltip;return e.jsxs(n.ColumnItemWrapper,{direction:"horizontal",spacing:"sm",alignY:"center",isHidden:r,isDragOverlay:s,children:[e.jsx(c,{name:"drag-indicator",size:4}),t.detailed?e.jsxs(i.Stack,{spacing:"xs",children:[e.jsxs(i.Text,{variant:"body",children:[o," (detailed)"]}),e.jsx(n.DetailedText,{variant:"hintText",children:t.detailed})]}):e.jsx(i.Text,{variant:"body",children:o}),!s&&r&&e.jsx(n.VisibilityOffIcon,{size:4})]})};exports.ColumnItem=l;
package/dist/index97.js CHANGED
@@ -1,13 +1,31 @@
1
- const a = (t, r) => {
2
- if (!r) return t;
3
- const i = r.toLowerCase();
4
- return t.filter(
5
- (e) => {
6
- var s, C;
7
- return ((s = e == null ? void 0 : e.title) == null ? void 0 : s.toLowerCase().includes(i)) || ((C = e == null ? void 0 : e.id) == null ? void 0 : C.toLowerCase().includes(i));
1
+ import { jsxs as e, jsx as i } from "react/jsx-runtime";
2
+ import { Stack as d, Text as a } from "@veeqo/ui";
3
+ import { VeeqoCommon as l } from "@veeqo/components";
4
+ import { ColumnItemWrapper as m, DetailedText as c, VisibilityOffIcon as p } from "./index95.js";
5
+ const { Glyph: s } = l, g = ({ column: t, isHidden: r, isDragOverlay: o }) => {
6
+ const n = t.title || t.tooltip;
7
+ return /* @__PURE__ */ e(
8
+ m,
9
+ {
10
+ direction: "horizontal",
11
+ spacing: "sm",
12
+ alignY: "center",
13
+ isHidden: r,
14
+ isDragOverlay: o,
15
+ children: [
16
+ /* @__PURE__ */ i(s, { name: "drag-indicator", size: 4 }),
17
+ t.detailed ? /* @__PURE__ */ e(d, { spacing: "xs", children: [
18
+ /* @__PURE__ */ e(a, { variant: "body", children: [
19
+ n,
20
+ " (detailed)"
21
+ ] }),
22
+ /* @__PURE__ */ i(c, { variant: "hintText", children: t.detailed })
23
+ ] }) : /* @__PURE__ */ i(a, { variant: "body", children: n }),
24
+ !o && r && /* @__PURE__ */ i(p, { size: 4 })
25
+ ]
8
26
  }
9
27
  );
10
28
  };
11
29
  export {
12
- a as filterColumnsBySearch
30
+ g as ColumnItem
13
31
  };
package/dist/index98.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("@veeqo/ui"),r=require("./index2.cjs"),s=o=>{let e={colourPalette:t.theme.colors.secondary.blue,customTextColour:void 0};switch(o){case r.ViewStatusTypes.ERROR:e={colourPalette:t.theme.colors.secondary.red,customTextColour:void 0};break}return e};exports.getViewTheme=s;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var i=(e=>(e.Hidden="hidden",e.Visible="visible",e))(i||{});exports.ColumnGroupIds=i;
package/dist/index98.js CHANGED
@@ -1,20 +1,4 @@
1
- import { theme as o } from "@veeqo/ui";
2
- import { ViewStatusTypes as r } from "./index2.js";
3
- const l = (t) => {
4
- let e = {
5
- colourPalette: o.colors.secondary.blue,
6
- customTextColour: void 0
7
- };
8
- switch (t) {
9
- case r.ERROR:
10
- e = {
11
- colourPalette: o.colors.secondary.red,
12
- customTextColour: void 0
13
- };
14
- break;
15
- }
16
- return e;
17
- };
1
+ var i = /* @__PURE__ */ ((e) => (e.Hidden = "hidden", e.Visible = "visible", e))(i || {});
18
2
  export {
19
- l as getViewTheme
3
+ i as ColumnGroupIds
20
4
  };
package/dist/index99.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./index79.cjs"),e=i.createAllView(),t={fixedViews:[e],customViews:[],viewsMap:new Map([[e.id,e]])};exports.INITIAL_VIEWS_STATE=t;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const C=require("react"),f=require("./index62.cjs"),y=require("./index61.cjs"),g=require("./index52.cjs"),h=require("./index60.cjs"),p=require("./index5.cjs"),w=({pinnedLeftColumnIds:r,pinnedRightColumnIds:a})=>{const{Filters:{activeViewId:t},Notifications:{notify:e}}=y.useStores(),{closeModal:i}=g.useModal(),{mutate:c}=f.useViews(),{getActiveViewInAPIFormat:l}=h.usePersistUnsavedChanges(),[m,o]=C.useState(!1);return{saveColumns:async({visibleColumns:n})=>{if(t)try{if(o(!0),n.length<1){e({type:"error",text:"You must have at least one visible column."});return}const u=[...r,...n,...a],{arg:d,currentView:s}=l(),v={...d,columns:{...s==null?void 0:s.columns,columnIds:u}};await p.patchCustomView(t,{attributes:v}),await c(),i(),e({type:"success",text:"Columns updated successfully"})}catch{e({type:"error",text:"Failed to save columns"})}finally{o(!1)}},isSavingColumns:m}};exports.usePersistColumns=w;
package/dist/index99.js CHANGED
@@ -1,9 +1,43 @@
1
- import { createAllView as i } from "./index79.js";
2
- const e = i(), s = {
3
- fixedViews: [e],
4
- customViews: [],
5
- viewsMap: /* @__PURE__ */ new Map([[e.id, e]])
1
+ import { useState as d } from "react";
2
+ import { useViews as v } from "./index62.js";
3
+ import { useStores as y } from "./index61.js";
4
+ import { useModal as C } from "./index52.js";
5
+ import { usePersistUnsavedChanges as g } from "./index60.js";
6
+ import { patchCustomView as h } from "./index5.js";
7
+ const b = ({ pinnedLeftColumnIds: a, pinnedRightColumnIds: i }) => {
8
+ const {
9
+ Filters: {
10
+ activeViewId: e
11
+ },
12
+ Notifications: {
13
+ notify: t
14
+ }
15
+ } = y(), { closeModal: u } = C(), { mutate: m } = v(), { getActiveViewInAPIFormat: c } = g(), [l, o] = d(!1);
16
+ return {
17
+ saveColumns: async ({ visibleColumns: n }) => {
18
+ if (e)
19
+ try {
20
+ if (o(!0), n.length < 1) {
21
+ t({ type: "error", text: "You must have at least one visible column." });
22
+ return;
23
+ }
24
+ const r = [...a, ...n, ...i], { arg: f, currentView: s } = c(), p = {
25
+ ...f,
26
+ columns: {
27
+ ...s == null ? void 0 : s.columns,
28
+ columnIds: r
29
+ }
30
+ };
31
+ await h(e, { attributes: p }), await m(), u(), t({ type: "success", text: "Columns updated successfully" });
32
+ } catch {
33
+ t({ type: "error", text: "Failed to save columns" });
34
+ } finally {
35
+ o(!1);
36
+ }
37
+ },
38
+ isSavingColumns: l
39
+ };
6
40
  };
7
41
  export {
8
- s as INITIAL_VIEWS_STATE
42
+ b as usePersistColumns
9
43
  };
@@ -0,0 +1 @@
1
+ export { isTextFilterValid } from './isTextFilterValid';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Validates that a text filter value is either empty or has at least 3 characters.
3
+ * Empty strings are allowed to permit clearing filters.
4
+ * @param text - The text to validate
5
+ * @returns true if the text is valid for filtering, false otherwise
6
+ */
7
+ export declare const isTextFilterValid: (text: string) => boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@veeqo/transfigure",
3
- "version": "1.2.6",
3
+ "version": "1.2.7",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "main": "dist/index.cjs",