@ram_28/kf-ai-sdk 2.0.1 → 2.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.
Files changed (134) hide show
  1. package/README.md +36 -39
  2. package/dist/api/client.d.ts.map +1 -1
  3. package/dist/api/metadata.d.ts +26 -22
  4. package/dist/api/metadata.d.ts.map +1 -1
  5. package/dist/api.cjs +1 -1
  6. package/dist/api.mjs +3 -3
  7. package/dist/auth.cjs +1 -1
  8. package/dist/auth.mjs +2 -2
  9. package/dist/base-types.d.ts +1 -1
  10. package/dist/base-types.d.ts.map +1 -1
  11. package/dist/bdo/core/BaseBdo.d.ts +8 -20
  12. package/dist/bdo/core/BaseBdo.d.ts.map +1 -1
  13. package/dist/bdo/core/Item.d.ts +8 -44
  14. package/dist/bdo/core/Item.d.ts.map +1 -1
  15. package/dist/bdo/core/types.d.ts +124 -41
  16. package/dist/bdo/core/types.d.ts.map +1 -1
  17. package/dist/bdo/fields/ArrayField.d.ts +5 -4
  18. package/dist/bdo/fields/ArrayField.d.ts.map +1 -1
  19. package/dist/bdo/fields/BaseField.d.ts +14 -19
  20. package/dist/bdo/fields/BaseField.d.ts.map +1 -1
  21. package/dist/bdo/fields/BooleanField.d.ts +3 -4
  22. package/dist/bdo/fields/BooleanField.d.ts.map +1 -1
  23. package/dist/bdo/fields/DateField.d.ts +3 -4
  24. package/dist/bdo/fields/DateField.d.ts.map +1 -1
  25. package/dist/bdo/fields/DateTimeField.d.ts +5 -4
  26. package/dist/bdo/fields/DateTimeField.d.ts.map +1 -1
  27. package/dist/bdo/fields/FileField.d.ts +18 -0
  28. package/dist/bdo/fields/FileField.d.ts.map +1 -0
  29. package/dist/bdo/fields/NumberField.d.ts +6 -4
  30. package/dist/bdo/fields/NumberField.d.ts.map +1 -1
  31. package/dist/bdo/fields/ObjectField.d.ts +5 -4
  32. package/dist/bdo/fields/ObjectField.d.ts.map +1 -1
  33. package/dist/bdo/fields/ReferenceField.d.ts +13 -14
  34. package/dist/bdo/fields/ReferenceField.d.ts.map +1 -1
  35. package/dist/bdo/fields/SelectField.d.ts +9 -16
  36. package/dist/bdo/fields/SelectField.d.ts.map +1 -1
  37. package/dist/bdo/fields/StringField.d.ts +6 -4
  38. package/dist/bdo/fields/StringField.d.ts.map +1 -1
  39. package/dist/bdo/fields/TextAreaField.d.ts +1 -18
  40. package/dist/bdo/fields/TextAreaField.d.ts.map +1 -1
  41. package/dist/bdo/fields/TextField.d.ts +22 -0
  42. package/dist/bdo/fields/TextField.d.ts.map +1 -0
  43. package/dist/bdo/fields/UserField.d.ts +20 -0
  44. package/dist/bdo/fields/UserField.d.ts.map +1 -0
  45. package/dist/bdo/fields/index.d.ts +5 -2
  46. package/dist/bdo/fields/index.d.ts.map +1 -1
  47. package/dist/bdo/index.d.ts +2 -2
  48. package/dist/bdo/index.d.ts.map +1 -1
  49. package/dist/bdo.cjs +1 -1
  50. package/dist/bdo.d.ts +1 -5
  51. package/dist/bdo.d.ts.map +1 -1
  52. package/dist/bdo.mjs +312 -242
  53. package/dist/bdo.types.d.ts +2 -3
  54. package/dist/bdo.types.d.ts.map +1 -1
  55. package/dist/client-Bo-RLKJi.cjs +1 -0
  56. package/dist/client-eA4VvNTo.js +178 -0
  57. package/dist/components/hooks/useFilter/useFilter.d.ts.map +1 -1
  58. package/dist/components/hooks/useForm/createItemProxy.d.ts.map +1 -1
  59. package/dist/components/hooks/useForm/createResolver.d.ts +12 -2
  60. package/dist/components/hooks/useForm/createResolver.d.ts.map +1 -1
  61. package/dist/components/hooks/useForm/index.d.ts +1 -1
  62. package/dist/components/hooks/useForm/index.d.ts.map +1 -1
  63. package/dist/components/hooks/useForm/types.d.ts +62 -6
  64. package/dist/components/hooks/useForm/types.d.ts.map +1 -1
  65. package/dist/components/hooks/useForm/useForm.d.ts +1 -27
  66. package/dist/components/hooks/useForm/useForm.d.ts.map +1 -1
  67. package/dist/components/hooks/useTable/useTable.d.ts.map +1 -1
  68. package/dist/{constants-DaX7GLgl.js → constants-CM9xOACN.js} +37 -13
  69. package/dist/constants-D0J69if5.cjs +1 -0
  70. package/dist/filter.cjs +1 -1
  71. package/dist/filter.mjs +2 -2
  72. package/dist/form.cjs +1 -1
  73. package/dist/form.d.ts +1 -1
  74. package/dist/form.d.ts.map +1 -1
  75. package/dist/form.mjs +879 -809
  76. package/dist/index.d.ts +1 -1
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/{metadata-Bz8zJqC1.cjs → metadata-BN57S6W9.cjs} +1 -1
  79. package/dist/{metadata-VbQzyD2C.js → metadata-P7DGCgIG.js} +1 -1
  80. package/dist/table.cjs +1 -1
  81. package/dist/table.mjs +74 -70
  82. package/dist/types/base-fields.d.ts +24 -59
  83. package/dist/types/base-fields.d.ts.map +1 -1
  84. package/dist/useFilter-Bg0jvIL6.cjs +1 -0
  85. package/dist/useFilter-DPNLKY3H.js +118 -0
  86. package/dist/utils/formatting.d.ts +10 -1
  87. package/dist/utils/formatting.d.ts.map +1 -1
  88. package/docs/api.md +140 -572
  89. package/docs/bdo.md +742 -0
  90. package/docs/useAuth.md +10 -4
  91. package/docs/useFilter.md +40 -40
  92. package/docs/useForm.md +91 -62
  93. package/docs/useTable.md +38 -38
  94. package/package.json +1 -1
  95. package/sdk/api/client.ts +52 -65
  96. package/sdk/api/metadata.ts +22 -20
  97. package/sdk/base-types.ts +5 -9
  98. package/sdk/bdo/core/BaseBdo.ts +13 -38
  99. package/sdk/bdo/core/Item.ts +34 -56
  100. package/sdk/bdo/core/types.ts +147 -45
  101. package/sdk/bdo/fields/ArrayField.ts +9 -5
  102. package/sdk/bdo/fields/BaseField.ts +19 -29
  103. package/sdk/bdo/fields/BooleanField.ts +4 -5
  104. package/sdk/bdo/fields/DateField.ts +4 -5
  105. package/sdk/bdo/fields/DateTimeField.ts +9 -5
  106. package/sdk/bdo/fields/FileField.ts +39 -0
  107. package/sdk/bdo/fields/NumberField.ts +8 -5
  108. package/sdk/bdo/fields/ObjectField.ts +9 -5
  109. package/sdk/bdo/fields/ReferenceField.ts +22 -28
  110. package/sdk/bdo/fields/SelectField.ts +13 -26
  111. package/sdk/bdo/fields/StringField.ts +10 -5
  112. package/sdk/bdo/fields/TextAreaField.ts +3 -32
  113. package/sdk/bdo/fields/TextField.ts +42 -0
  114. package/sdk/bdo/fields/UserField.ts +52 -0
  115. package/sdk/bdo/fields/index.ts +5 -2
  116. package/sdk/bdo/index.ts +19 -4
  117. package/sdk/bdo.ts +4 -31
  118. package/sdk/bdo.types.ts +26 -21
  119. package/sdk/components/hooks/useFilter/useFilter.ts +13 -30
  120. package/sdk/components/hooks/useForm/createItemProxy.ts +47 -11
  121. package/sdk/components/hooks/useForm/createResolver.ts +65 -6
  122. package/sdk/components/hooks/useForm/index.ts +3 -0
  123. package/sdk/components/hooks/useForm/types.ts +75 -6
  124. package/sdk/components/hooks/useForm/useForm.ts +35 -50
  125. package/sdk/components/hooks/useTable/useTable.ts +10 -2
  126. package/sdk/form.ts +1 -12
  127. package/sdk/index.ts +3 -3
  128. package/sdk/types/base-fields.ts +28 -72
  129. package/sdk/utils/formatting.ts +13 -1
  130. package/dist/client-BIkaIr2y.js +0 -217
  131. package/dist/client-DxjRcEtN.cjs +0 -1
  132. package/dist/constants-C49b9Exc.cjs +0 -1
  133. package/dist/useFilter-DzpP_ag0.cjs +0 -1
  134. package/dist/useFilter-H5bgAZQF.js +0 -120
@@ -1,217 +0,0 @@
1
- let n = {
2
- baseUrl: "",
3
- headers: {
4
- "Content-Type": "application/json"
5
- }
6
- };
7
- function $(r) {
8
- n.baseUrl = r;
9
- }
10
- function h(r) {
11
- n.headers = { ...n.headers, ...r };
12
- }
13
- function d() {
14
- return { ...n.headers };
15
- }
16
- function u() {
17
- return n.baseUrl || "";
18
- }
19
- function w(r) {
20
- const s = n.baseUrl, o = n.headers;
21
- return {
22
- async get(t) {
23
- const e = await fetch(`${s}/api/app/${r}/${t}/read`, {
24
- method: "GET",
25
- headers: o
26
- });
27
- if (!e.ok)
28
- throw new Error(`Failed to get ${r} ${t}: ${e.statusText}`);
29
- return (await e.json()).Data;
30
- },
31
- async create(t) {
32
- const e = await fetch(`${s}/api/app/${r}/create`, {
33
- method: "POST",
34
- headers: o,
35
- body: JSON.stringify(t)
36
- });
37
- if (!e.ok)
38
- throw new Error(`Failed to create ${r}: ${e.statusText}`);
39
- return e.json();
40
- },
41
- async update(t, e) {
42
- const a = await fetch(`${s}/api/app/${r}/${t}/update`, {
43
- method: "POST",
44
- headers: o,
45
- body: JSON.stringify(e)
46
- });
47
- if (!a.ok)
48
- throw new Error(
49
- `Failed to update ${r} ${t}: ${a.statusText}`
50
- );
51
- return a.json();
52
- },
53
- async delete(t) {
54
- const e = await fetch(`${s}/api/app/${r}/${t}/delete`, {
55
- method: "DELETE",
56
- headers: o
57
- });
58
- if (!e.ok)
59
- throw new Error(
60
- `Failed to delete ${r} ${t}: ${e.statusText}`
61
- );
62
- return e.json();
63
- },
64
- async list(t) {
65
- const e = {
66
- Type: "List",
67
- ...t
68
- }, a = await fetch(`${s}/api/app/${r}/list`, {
69
- method: "POST",
70
- headers: o,
71
- body: JSON.stringify(e)
72
- });
73
- if (!a.ok)
74
- throw new Error(`Failed to list ${r}: ${a.statusText}`);
75
- return await a.json();
76
- },
77
- async count(t) {
78
- var c, p;
79
- const e = {
80
- Type: "Metric",
81
- GroupBy: [],
82
- Metric: [{ Field: "_id", Type: "Count" }],
83
- ...(t == null ? void 0 : t.Filter) && { Filter: t.Filter }
84
- }, a = await fetch(`${s}/api/app/${r}/metric`, {
85
- method: "POST",
86
- headers: o,
87
- body: JSON.stringify(e)
88
- });
89
- if (!a.ok)
90
- throw new Error(`Failed to count ${r}: ${a.statusText}`);
91
- return { Count: ((p = (c = (await a.json()).Data) == null ? void 0 : c[0]) == null ? void 0 : p.count__id) ?? 0 };
92
- },
93
- // ============================================================
94
- // DRAFT/INTERACTIVE OPERATIONS
95
- // ============================================================
96
- async draft(t) {
97
- const e = await fetch(`${s}/api/app/${r}/draft`, {
98
- method: "POST",
99
- headers: o,
100
- body: JSON.stringify(t)
101
- });
102
- if (!e.ok)
103
- throw new Error(
104
- `Failed to create draft for ${r}: ${e.statusText}`
105
- );
106
- return e.json();
107
- },
108
- async draftUpdate(t, e) {
109
- const a = await fetch(`${s}/api/app/${r}/${t}/draft`, {
110
- method: "POST",
111
- headers: o,
112
- body: JSON.stringify(e)
113
- });
114
- if (!a.ok)
115
- throw new Error(
116
- `Failed to update draft for ${r} ${t}: ${a.statusText}`
117
- );
118
- return a.json();
119
- },
120
- async draftPatch(t, e) {
121
- const a = await fetch(`${s}/api/app/${r}/${t}/draft`, {
122
- method: "PATCH",
123
- headers: o,
124
- body: JSON.stringify(e)
125
- });
126
- if (!a.ok)
127
- throw new Error(
128
- `Failed to patch draft for ${r} ${t}: ${a.statusText}`
129
- );
130
- return a.json();
131
- },
132
- async draftInteraction(t) {
133
- const e = await fetch(`${s}/api/app/${r}/draft`, {
134
- method: "PATCH",
135
- headers: o,
136
- body: JSON.stringify(t)
137
- });
138
- if (!e.ok)
139
- throw new Error(
140
- `Failed to create interactive draft for ${r}: ${e.statusText}`
141
- );
142
- const a = await e.json();
143
- return {
144
- ...a.Data,
145
- _id: a.Data._id
146
- };
147
- },
148
- // ============================================================
149
- // QUERY OPERATIONS
150
- // ============================================================
151
- async metric(t) {
152
- const e = {
153
- Type: "Metric",
154
- ...t
155
- }, a = await fetch(`${s}/api/app/${r}/metric`, {
156
- method: "POST",
157
- headers: o,
158
- body: JSON.stringify(e)
159
- });
160
- if (!a.ok)
161
- throw new Error(
162
- `Failed to get metrics for ${r}: ${a.statusText}`
163
- );
164
- return a.json();
165
- },
166
- async pivot(t) {
167
- const e = {
168
- Type: "Pivot",
169
- ...t
170
- }, a = await fetch(`${s}/api/app/${r}/pivot`, {
171
- method: "POST",
172
- headers: o,
173
- body: JSON.stringify(e)
174
- });
175
- if (!a.ok)
176
- throw new Error(
177
- `Failed to get pivot data for ${r}: ${a.statusText}`
178
- );
179
- return a.json();
180
- },
181
- // ============================================================
182
- // METADATA OPERATIONS
183
- // ============================================================
184
- async fields() {
185
- const t = await fetch(`${s}/api/app/${r}/fields`, {
186
- method: "GET",
187
- headers: o
188
- });
189
- if (!t.ok)
190
- throw new Error(
191
- `Failed to get fields for ${r}: ${t.statusText}`
192
- );
193
- return t.json();
194
- },
195
- async fetchField(t, e) {
196
- const a = await fetch(
197
- `${s}/api/app/${r}/${t}/field/${e}/fetch`,
198
- {
199
- method: "GET",
200
- headers: o
201
- }
202
- );
203
- if (!a.ok)
204
- throw new Error(
205
- `Failed to fetch field ${e} for ${r}: ${a.statusText}`
206
- );
207
- return (await a.json()).Data;
208
- }
209
- };
210
- }
211
- export {
212
- w as a,
213
- h as b,
214
- u as c,
215
- d as g,
216
- $ as s
217
- };
@@ -1 +0,0 @@
1
- "use strict";let n={baseUrl:"",headers:{"Content-Type":"application/json"}};function f(r){n.baseUrl=r}function $(r){n.headers={...n.headers,...r}}function d(){return{...n.headers}}function h(){return n.baseUrl||""}function u(r){const s=n.baseUrl,o=n.headers;return{async get(t){const e=await fetch(`${s}/api/app/${r}/${t}/read`,{method:"GET",headers:o});if(!e.ok)throw new Error(`Failed to get ${r} ${t}: ${e.statusText}`);return(await e.json()).Data},async create(t){const e=await fetch(`${s}/api/app/${r}/create`,{method:"POST",headers:o,body:JSON.stringify(t)});if(!e.ok)throw new Error(`Failed to create ${r}: ${e.statusText}`);return e.json()},async update(t,e){const a=await fetch(`${s}/api/app/${r}/${t}/update`,{method:"POST",headers:o,body:JSON.stringify(e)});if(!a.ok)throw new Error(`Failed to update ${r} ${t}: ${a.statusText}`);return a.json()},async delete(t){const e=await fetch(`${s}/api/app/${r}/${t}/delete`,{method:"DELETE",headers:o});if(!e.ok)throw new Error(`Failed to delete ${r} ${t}: ${e.statusText}`);return e.json()},async list(t){const e={Type:"List",...t},a=await fetch(`${s}/api/app/${r}/list`,{method:"POST",headers:o,body:JSON.stringify(e)});if(!a.ok)throw new Error(`Failed to list ${r}: ${a.statusText}`);return await a.json()},async count(t){var c,p;const e={Type:"Metric",GroupBy:[],Metric:[{Field:"_id",Type:"Count"}],...(t==null?void 0:t.Filter)&&{Filter:t.Filter}},a=await fetch(`${s}/api/app/${r}/metric`,{method:"POST",headers:o,body:JSON.stringify(e)});if(!a.ok)throw new Error(`Failed to count ${r}: ${a.statusText}`);return{Count:((p=(c=(await a.json()).Data)==null?void 0:c[0])==null?void 0:p.count__id)??0}},async draft(t){const e=await fetch(`${s}/api/app/${r}/draft`,{method:"POST",headers:o,body:JSON.stringify(t)});if(!e.ok)throw new Error(`Failed to create draft for ${r}: ${e.statusText}`);return e.json()},async draftUpdate(t,e){const a=await fetch(`${s}/api/app/${r}/${t}/draft`,{method:"POST",headers:o,body:JSON.stringify(e)});if(!a.ok)throw new Error(`Failed to update draft for ${r} ${t}: ${a.statusText}`);return a.json()},async draftPatch(t,e){const a=await fetch(`${s}/api/app/${r}/${t}/draft`,{method:"PATCH",headers:o,body:JSON.stringify(e)});if(!a.ok)throw new Error(`Failed to patch draft for ${r} ${t}: ${a.statusText}`);return a.json()},async draftInteraction(t){const e=await fetch(`${s}/api/app/${r}/draft`,{method:"PATCH",headers:o,body:JSON.stringify(t)});if(!e.ok)throw new Error(`Failed to create interactive draft for ${r}: ${e.statusText}`);const a=await e.json();return{...a.Data,_id:a.Data._id}},async metric(t){const e={Type:"Metric",...t},a=await fetch(`${s}/api/app/${r}/metric`,{method:"POST",headers:o,body:JSON.stringify(e)});if(!a.ok)throw new Error(`Failed to get metrics for ${r}: ${a.statusText}`);return a.json()},async pivot(t){const e={Type:"Pivot",...t},a=await fetch(`${s}/api/app/${r}/pivot`,{method:"POST",headers:o,body:JSON.stringify(e)});if(!a.ok)throw new Error(`Failed to get pivot data for ${r}: ${a.statusText}`);return a.json()},async fields(){const t=await fetch(`${s}/api/app/${r}/fields`,{method:"GET",headers:o});if(!t.ok)throw new Error(`Failed to get fields for ${r}: ${t.statusText}`);return t.json()},async fetchField(t,e){const a=await fetch(`${s}/api/app/${r}/${t}/field/${e}/fetch`,{method:"GET",headers:o});if(!a.ok)throw new Error(`Failed to fetch field ${e} for ${r}: ${a.statusText}`);return(await a.json()).Data}}}exports.api=u;exports.getApiBaseUrl=h;exports.getDefaultHeaders=d;exports.setApiBaseUrl=f;exports.setDefaultHeaders=$;
@@ -1 +0,0 @@
1
- "use strict";const t={EQ:"EQ",NE:"NE",GT:"GT",GTE:"GTE",LT:"LT",LTE:"LTE",Between:"Between",NotBetween:"NotBetween",IN:"IN",NIN:"NIN",Empty:"Empty",NotEmpty:"NotEmpty",Contains:"Contains",NotContains:"NotContains",MinLength:"MinLength",MaxLength:"MaxLength"},e={And:"And",Or:"Or",Not:"Not"},o={Constant:"Constant",BOField:"BOField",AppVariable:"AppVariable"},n={ASC:"ASC",DESC:"DESC"},i={Sum:"Sum",Avg:"Avg",Count:"Count",Max:"Max",Min:"Min",DistinctCount:"DistinctCount",BlankCount:"BlankCount",NotBlankCount:"NotBlankCount",Concat:"Concat",DistinctConcat:"DistinctConcat"},a={List:"List",Metric:"Metric",Pivot:"Pivot"},s={Loading:"loading",Authenticated:"authenticated",Unauthenticated:"unauthenticated"},c={Google:"google",Microsoft:"microsoft",GitHub:"github",Custom:"custom"},r={Id:"_id",CreatedAt:"_created_at",ModifiedAt:"_modified_at",CreatedBy:"_created_by",ModifiedBy:"_modified_by",Version:"_version",MergeVersion:"_m_version"},d={GET:"GET",POST:"POST",PATCH:"PATCH",DELETE:"DELETE"},u={SEARCH_DEBOUNCE_MS:300,PAGE_SIZE:10,PAGE:1,SEARCH_MAX_LENGTH:255},C={Date:"$__d__",DateTime:"$__dt__"},E={Success:"success"};exports.AuthProviderName=c;exports.AuthStatus=s;exports.ConditionOperator=t;exports.DateEncodingKey=C;exports.Defaults=u;exports.DeleteStatus=E;exports.GroupOperator=e;exports.HttpMethod=d;exports.MetricType=i;exports.QueryType=a;exports.RHSType=o;exports.SortDirection=n;exports.SystemField=r;
@@ -1 +0,0 @@
1
- "use strict";const u=require("react"),d=t=>"Condition"in t,y=t=>"LHSField"in t;let A=0;const l=()=>{const t=Math.random().toString(36).substring(2,9);return`filter_${Date.now()}_${t}_${++A}`},M=t=>t.id?t:{...t,id:l()},k=t=>t.map(o=>{const n=M(o);return d(n)?{...n,Condition:k(n.Condition)}:n}),g=t=>t.map(o=>{if(d(o)){const{id:b,...C}=o;return{...C,Condition:g(o.Condition)}}const{id:n,...r}=o;return r}),h=(t,o)=>{for(const n of t){if(n.id===o)return n;if(d(n)){const r=h(n.Condition,o);if(r)return r}}},f=(t,o,n)=>t.map(r=>r.id===o?n(r):d(r)?{...r,Condition:f(r.Condition,o,n)}:r),O=(t,o)=>t.filter(n=>n.id!==o).map(n=>d(n)?{...n,Condition:O(n.Condition,o)}:n),p=(t,o,n)=>t.map(r=>r.id===o&&d(r)?{...r,Condition:[...r.Condition,n]}:d(r)?{...r,Condition:p(r.Condition,o,n)}:r);function R(t={}){const[o,n]=u.useState(()=>k(t.conditions||[])),[r,b]=u.useState(t.operator||"And"),C=u.useMemo(()=>{if(o.length!==0)return{Operator:r,Condition:g(o)}},[o,r]),G=o.length>0,S=u.useCallback((i,s)=>{const c=l(),e={...i,id:c};return n(s?a=>p(a,s,e):a=>[...a,e]),c},[]),v=u.useCallback((i,s)=>{const c=l(),e={id:c,Operator:i,Condition:[]};return n(s?a=>p(a,s,e):a=>[...a,e]),c},[]),F=u.useCallback((i,s)=>{n(c=>f(c,i,e=>d(e)?e:{...e,...s}))},[]),I=u.useCallback((i,s)=>{n(c=>f(c,i,e=>d(e)?{...e,Operator:s}:e))},[]),w=u.useCallback(i=>{n(s=>O(s,i))},[]),T=u.useCallback(i=>h(o,i),[o]),_=u.useCallback(()=>{n([])},[]),$=u.useCallback(i=>{b(i)},[]);return{operator:r,items:o,payload:C,hasConditions:G,addCondition:S,addConditionGroup:v,updateCondition:F,updateGroupOperator:I,removeCondition:w,getCondition:T,clearAllConditions:_,setRootOperator:$}}exports.isCondition=y;exports.isConditionGroup=d;exports.useFilter=R;
@@ -1,120 +0,0 @@
1
- import { useState as h, useMemo as M, useCallback as c } from "react";
2
- const u = (r) => "Condition" in r, D = (r) => "LHSField" in r;
3
- let k = 0;
4
- const f = () => {
5
- const r = Math.random().toString(36).substring(2, 9);
6
- return `filter_${Date.now()}_${r}_${++k}`;
7
- }, x = (r) => r.id ? r : { ...r, id: f() }, O = (r) => r.map((o) => {
8
- const n = x(o);
9
- return u(n) ? {
10
- ...n,
11
- Condition: O(n.Condition)
12
- } : n;
13
- }), v = (r) => r.map((o) => {
14
- if (u(o)) {
15
- const { id: g, ...C } = o;
16
- return {
17
- ...C,
18
- Condition: v(o.Condition)
19
- };
20
- }
21
- const { id: n, ...t } = o;
22
- return t;
23
- }), G = (r, o) => {
24
- for (const n of r) {
25
- if (n.id === o)
26
- return n;
27
- if (u(n)) {
28
- const t = G(n.Condition, o);
29
- if (t) return t;
30
- }
31
- }
32
- }, p = (r, o, n) => r.map((t) => t.id === o ? n(t) : u(t) ? {
33
- ...t,
34
- Condition: p(t.Condition, o, n)
35
- } : t), I = (r, o) => r.filter((n) => n.id !== o).map((n) => u(n) ? {
36
- ...n,
37
- Condition: I(n.Condition, o)
38
- } : n), l = (r, o, n) => r.map((t) => t.id === o && u(t) ? {
39
- ...t,
40
- Condition: [...t.Condition, n]
41
- } : u(t) ? {
42
- ...t,
43
- Condition: l(t.Condition, o, n)
44
- } : t);
45
- function H(r = {}) {
46
- const [o, n] = h(
47
- () => O(r.conditions || [])
48
- ), [t, g] = h(
49
- r.operator || "And"
50
- ), C = M(() => {
51
- if (o.length !== 0)
52
- return {
53
- Operator: t,
54
- Condition: v(o)
55
- };
56
- }, [o, t]), S = o.length > 0, w = c(
57
- (i, s) => {
58
- const d = f(), e = { ...i, id: d };
59
- return n(s ? (a) => l(a, s, e) : (a) => [...a, e]), d;
60
- },
61
- []
62
- ), F = c(
63
- (i, s) => {
64
- const d = f(), e = {
65
- id: d,
66
- Operator: i,
67
- Condition: []
68
- };
69
- return n(s ? (a) => l(a, s, e) : (a) => [...a, e]), d;
70
- },
71
- []
72
- ), T = c(
73
- (i, s) => {
74
- n(
75
- (d) => p(d, i, (e) => u(e) ? e : { ...e, ...s })
76
- );
77
- },
78
- []
79
- ), _ = c(
80
- (i, s) => {
81
- n(
82
- (d) => p(d, i, (e) => u(e) ? { ...e, Operator: s } : e)
83
- );
84
- },
85
- []
86
- ), $ = c((i) => {
87
- n((s) => I(s, i));
88
- }, []), b = c(
89
- (i) => G(o, i),
90
- [o]
91
- ), y = c(() => {
92
- n([]);
93
- }, []), A = c((i) => {
94
- g(i);
95
- }, []);
96
- return {
97
- // State
98
- operator: t,
99
- items: o,
100
- payload: C,
101
- hasConditions: S,
102
- // Add operations
103
- addCondition: w,
104
- addConditionGroup: F,
105
- // Update operations
106
- updateCondition: T,
107
- updateGroupOperator: _,
108
- // Remove & access
109
- removeCondition: $,
110
- getCondition: b,
111
- // Utility
112
- clearAllConditions: y,
113
- setRootOperator: A
114
- };
115
- }
116
- export {
117
- u as a,
118
- D as i,
119
- H as u
120
- };