dgz-ui-shared 1.2.35 → 1.2.37

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 (260) hide show
  1. package/dist/chunks/Actions-Du8iQ3WR.es.js.map +1 -1
  2. package/dist/chunks/Actions-bpMDyl5M.cjs.js.map +1 -1
  3. package/dist/chunks/Empty-BReVQKje.es.js.map +1 -1
  4. package/dist/chunks/Empty-BYOOFAab.cjs.js.map +1 -1
  5. package/dist/chunks/ExportData-CwotVgye.es.js.map +1 -1
  6. package/dist/chunks/ExportData-DJE0jOHc.cjs.js.map +1 -1
  7. package/dist/chunks/Keyboard-CJVAJWdO.es.js.map +1 -1
  8. package/dist/chunks/Keyboard-kyPAAQWP.cjs.js.map +1 -1
  9. package/dist/chunks/Loader-D_jX_Wgx.cjs.js.map +1 -1
  10. package/dist/chunks/Loader-zvzAi0F6.es.js.map +1 -1
  11. package/dist/chunks/MyInput-ByJ5vTAN.es.js +280 -0
  12. package/dist/chunks/MyInput-ByJ5vTAN.es.js.map +1 -0
  13. package/dist/chunks/MyInput-mL2G5h2s.cjs.js +2 -0
  14. package/dist/chunks/MyInput-mL2G5h2s.cjs.js.map +1 -0
  15. package/dist/chunks/MyPagination-B0czoGZK.es.js.map +1 -1
  16. package/dist/chunks/MyPagination-CnF3468f.cjs.js.map +1 -1
  17. package/dist/chunks/{MySelect-5DHBVlKZ.es.js → MySelect-CRXtMlbf.es.js} +16 -16
  18. package/dist/chunks/MySelect-CRXtMlbf.es.js.map +1 -0
  19. package/dist/chunks/MySelect-CmLxmNJz.cjs.js +2 -0
  20. package/dist/chunks/MySelect-CmLxmNJz.cjs.js.map +1 -0
  21. package/dist/chunks/{PasswordConfirm-Uc4pncGw.cjs.js → PasswordConfirm-d5-QdLM5.cjs.js} +2 -2
  22. package/dist/chunks/PasswordConfirm-d5-QdLM5.cjs.js.map +1 -0
  23. package/dist/chunks/{PasswordConfirm-Dj97U7O9.es.js → PasswordConfirm-luxvE9Ug.es.js} +2 -2
  24. package/dist/chunks/PasswordConfirm-luxvE9Ug.es.js.map +1 -0
  25. package/dist/chunks/{Search-BtiKC-dt.es.js → Search-DunDXQgP.es.js} +21 -22
  26. package/dist/chunks/Search-DunDXQgP.es.js.map +1 -0
  27. package/dist/chunks/Search-kbkeTeSI.cjs.js +2 -0
  28. package/dist/chunks/Search-kbkeTeSI.cjs.js.map +1 -0
  29. package/dist/chunks/SortOrder-81BrXp3i.cjs.js.map +1 -1
  30. package/dist/chunks/SortOrder-CwuehjY1.es.js.map +1 -1
  31. package/dist/chunks/Spin-DUK1prd9.cjs.js.map +1 -1
  32. package/dist/chunks/Spin-DtW_edOq.es.js.map +1 -1
  33. package/dist/chunks/ThemeMode-BO6tit_Z.cjs.js.map +1 -1
  34. package/dist/chunks/ThemeMode-CqURAYDL.es.js.map +1 -1
  35. package/dist/chunks/_commonjsHelpers-DKOUU3wS.cjs.js +2 -0
  36. package/dist/chunks/_commonjsHelpers-DKOUU3wS.cjs.js.map +1 -0
  37. package/dist/chunks/_commonjsHelpers-DaMA6jEr.es.js +9 -0
  38. package/dist/chunks/_commonjsHelpers-DaMA6jEr.es.js.map +1 -0
  39. package/dist/chunks/useFilter-D93ncAmn.cjs.js +2 -0
  40. package/dist/chunks/useFilter-D93ncAmn.cjs.js.map +1 -0
  41. package/dist/chunks/useFilter-DpCwY1KO.es.js +17 -0
  42. package/dist/chunks/useFilter-DpCwY1KO.es.js.map +1 -0
  43. package/dist/chunks/useSortable-8RrwFw05.es.js +263 -0
  44. package/dist/chunks/useSortable-8RrwFw05.es.js.map +1 -0
  45. package/dist/chunks/useSortable-D9RgGUd0.cjs.js +2 -0
  46. package/dist/chunks/useSortable-D9RgGUd0.cjs.js.map +1 -0
  47. package/dist/chunks/useTheme-hjEZ-FC3.cjs.js.map +1 -1
  48. package/dist/chunks/useTheme-iKF3BEvj.es.js.map +1 -1
  49. package/dist/components/confirm/index.cjs.js +1 -1
  50. package/dist/components/confirm/index.es.js +1 -1
  51. package/dist/components/datatable/index.cjs.js +1 -1
  52. package/dist/components/datatable/index.cjs.js.map +1 -1
  53. package/dist/components/datatable/index.es.js +213 -212
  54. package/dist/components/datatable/index.es.js.map +1 -1
  55. package/dist/components/filters/index.cjs.js +1 -1
  56. package/dist/components/filters/index.cjs.js.map +1 -1
  57. package/dist/components/filters/index.es.js +6 -6
  58. package/dist/components/filters/index.es.js.map +1 -1
  59. package/dist/components/form/index.cjs.js +1 -1
  60. package/dist/components/form/index.cjs.js.map +1 -1
  61. package/dist/components/form/index.es.js +73 -73
  62. package/dist/components/form/index.es.js.map +1 -1
  63. package/dist/components/gallery/index.cjs.js +1 -1
  64. package/dist/components/gallery/index.cjs.js.map +1 -1
  65. package/dist/components/gallery/index.es.js +33 -33
  66. package/dist/components/gallery/index.es.js.map +1 -1
  67. package/dist/components/modal/index.cjs.js.map +1 -1
  68. package/dist/components/modal/index.es.js.map +1 -1
  69. package/dist/components/scroll/index.cjs.js.map +1 -1
  70. package/dist/components/scroll/index.es.js.map +1 -1
  71. package/dist/components/theme/index.cjs.js.map +1 -1
  72. package/dist/components/theme/index.es.js.map +1 -1
  73. package/dist/components/tooltip/index.cjs.js.map +1 -1
  74. package/dist/components/tooltip/index.es.js.map +1 -1
  75. package/dist/hooks/index.cjs.js +5 -5
  76. package/dist/hooks/index.cjs.js.map +1 -1
  77. package/dist/hooks/index.es.js +126 -126
  78. package/dist/hooks/index.es.js.map +1 -1
  79. package/dist/providers/index.cjs.js.map +1 -1
  80. package/dist/providers/index.es.js.map +1 -1
  81. package/dist/styles.css +1 -1
  82. package/dist/types/components/actions/Actions.d.ts +5 -2
  83. package/dist/types/components/actions/Actions.d.ts.map +1 -1
  84. package/dist/types/components/confirm/Confirm.d.ts +7 -2
  85. package/dist/types/components/confirm/Confirm.d.ts.map +1 -1
  86. package/dist/types/components/confirm/PasswordConfirm.d.ts +7 -1
  87. package/dist/types/components/confirm/PasswordConfirm.d.ts.map +1 -1
  88. package/dist/types/components/datatable/DataTable.d.ts +30 -30
  89. package/dist/types/components/datatable/DataTable.d.ts.map +1 -1
  90. package/dist/types/components/datatable/MyTable.d.ts +13 -13
  91. package/dist/types/components/empty/Empty.d.ts +1 -1
  92. package/dist/types/components/export/ExportData.d.ts +7 -0
  93. package/dist/types/components/export/ExportData.d.ts.map +1 -1
  94. package/dist/types/components/filters/AppliedFilters.d.ts +7 -7
  95. package/dist/types/components/filters/AppliedFilters.d.ts.map +1 -1
  96. package/dist/types/components/filters/FilterWrapper.d.ts +1 -0
  97. package/dist/types/components/filters/FilterWrapper.d.ts.map +1 -1
  98. package/dist/types/components/filters/Search.d.ts +1 -0
  99. package/dist/types/components/filters/Search.d.ts.map +1 -1
  100. package/dist/types/components/filters/SearchWithCtrl.d.ts +1 -0
  101. package/dist/types/components/filters/SearchWithCtrl.d.ts.map +1 -1
  102. package/dist/types/components/form/MyCheckbox.d.ts +1 -1
  103. package/dist/types/components/form/MyDatePicker.d.ts +1 -1
  104. package/dist/types/components/form/MyDateRangePicker.d.ts +1 -1
  105. package/dist/types/components/form/MyHtmlEditor.d.ts +1 -1
  106. package/dist/types/components/form/MyInput.d.ts +1 -0
  107. package/dist/types/components/form/MyInput.d.ts.map +1 -1
  108. package/dist/types/components/form/MyMaskInput.d.ts +1 -1
  109. package/dist/types/components/form/MyRadio.d.ts +1 -1
  110. package/dist/types/components/form/MySelect.d.ts +1 -1
  111. package/dist/types/components/form/MyShadcnSelect.d.ts +1 -1
  112. package/dist/types/components/form/MyTextarea.d.ts +1 -1
  113. package/dist/types/components/form/MyTimePicker.d.ts +1 -1
  114. package/dist/types/components/gallery/MyGallery.d.ts.map +1 -1
  115. package/dist/types/components/loader/Loader.d.ts +1 -1
  116. package/dist/types/components/loader/Spin.d.ts +1 -1
  117. package/dist/types/components/modal/MyModal.d.ts +9 -9
  118. package/dist/types/components/pagination/MyLimitSelect.d.ts +6 -3
  119. package/dist/types/components/pagination/MyLimitSelect.d.ts.map +1 -1
  120. package/dist/types/components/scroll/ScrollArea.d.ts +1 -1
  121. package/dist/types/components/theme/theme-toggle.d.ts +1 -1
  122. package/dist/types/components/tooltip/MyTooltip.d.ts +2 -1
  123. package/dist/types/components/tooltip/MyTooltip.d.ts.map +1 -1
  124. package/dist/types/enums/Keyboard.d.ts +1 -0
  125. package/dist/types/enums/Keyboard.d.ts.map +1 -1
  126. package/dist/types/enums/SortOrder.d.ts +2 -0
  127. package/dist/types/enums/SortOrder.d.ts.map +1 -1
  128. package/dist/types/enums/ThemeMode.d.ts +3 -0
  129. package/dist/types/enums/ThemeMode.d.ts.map +1 -1
  130. package/dist/types/hooks/useColumns.d.ts +7 -9
  131. package/dist/types/hooks/useColumns.d.ts.map +1 -1
  132. package/dist/types/hooks/useConfirm.d.ts +3 -1
  133. package/dist/types/hooks/useConfirm.d.ts.map +1 -1
  134. package/dist/types/hooks/useDataTable.d.ts +9 -10
  135. package/dist/types/hooks/useDataTable.d.ts.map +1 -1
  136. package/dist/types/hooks/useDocumentTitle.d.ts +1 -0
  137. package/dist/types/hooks/useDocumentTitle.d.ts.map +1 -1
  138. package/dist/types/hooks/useFilter.d.ts +13 -6
  139. package/dist/types/hooks/useFilter.d.ts.map +1 -1
  140. package/dist/types/hooks/useMediaQuerySizes.d.ts +8 -1
  141. package/dist/types/hooks/useMediaQuerySizes.d.ts.map +1 -1
  142. package/dist/types/hooks/useSortable.d.ts +10 -10
  143. package/dist/types/hooks/useSortable.d.ts.map +1 -1
  144. package/dist/types/hooks/useTheme.d.ts +5 -0
  145. package/dist/types/hooks/useTheme.d.ts.map +1 -1
  146. package/dist/types/providers/ThemeProvider.d.ts +1 -0
  147. package/dist/types/providers/ThemeProvider.d.ts.map +1 -1
  148. package/dist/types/stories/Actions.stories.d.ts +8 -0
  149. package/dist/types/stories/Actions.stories.d.ts.map +1 -0
  150. package/dist/types/stories/AppliedFilters.stories.d.ts +10 -0
  151. package/dist/types/stories/AppliedFilters.stories.d.ts.map +1 -0
  152. package/dist/types/stories/Confirm.stories.d.ts +8 -0
  153. package/dist/types/stories/Confirm.stories.d.ts.map +1 -0
  154. package/dist/types/stories/DataTable.stories.d.ts +19 -0
  155. package/dist/types/stories/DataTable.stories.d.ts.map +1 -0
  156. package/dist/types/stories/DateRangePicker.stories.d.ts +10 -0
  157. package/dist/types/stories/DateRangePicker.stories.d.ts.map +1 -0
  158. package/dist/types/stories/Empty.stories.d.ts +9 -0
  159. package/dist/types/stories/Empty.stories.d.ts.map +1 -0
  160. package/dist/types/stories/ExportData.stories.d.ts +9 -0
  161. package/dist/types/stories/ExportData.stories.d.ts.map +1 -0
  162. package/dist/types/stories/FilterWrapper.stories.d.ts +9 -0
  163. package/dist/types/stories/FilterWrapper.stories.d.ts.map +1 -0
  164. package/dist/types/stories/Loader.stories.d.ts +7 -0
  165. package/dist/types/stories/Loader.stories.d.ts.map +1 -0
  166. package/dist/types/stories/MyCheckbox.stories.d.ts +8 -0
  167. package/dist/types/stories/MyCheckbox.stories.d.ts.map +1 -0
  168. package/dist/types/stories/MyDatePicker.stories.d.ts +10 -0
  169. package/dist/types/stories/MyDatePicker.stories.d.ts.map +1 -0
  170. package/dist/types/stories/MyDateRangePicker.stories.d.ts +8 -0
  171. package/dist/types/stories/MyDateRangePicker.stories.d.ts.map +1 -0
  172. package/dist/types/stories/MyGallery.stories.d.ts +9 -0
  173. package/dist/types/stories/MyGallery.stories.d.ts.map +1 -0
  174. package/dist/types/stories/MyHtmlEditor.stories.d.ts +8 -0
  175. package/dist/types/stories/MyHtmlEditor.stories.d.ts.map +1 -0
  176. package/dist/types/stories/MyInput.stories.d.ts +10 -0
  177. package/dist/types/stories/MyInput.stories.d.ts.map +1 -0
  178. package/dist/types/stories/MyLimitSelect.stories.d.ts +9 -0
  179. package/dist/types/stories/MyLimitSelect.stories.d.ts.map +1 -0
  180. package/dist/types/stories/MyMaskInput.stories.d.ts +9 -0
  181. package/dist/types/stories/MyMaskInput.stories.d.ts.map +1 -0
  182. package/dist/types/stories/MyModal.stories.d.ts +10 -0
  183. package/dist/types/stories/MyModal.stories.d.ts.map +1 -0
  184. package/dist/types/stories/MyPagination.stories.d.ts +10 -0
  185. package/dist/types/stories/MyPagination.stories.d.ts.map +1 -0
  186. package/dist/types/stories/MyRadio.stories.d.ts +7 -0
  187. package/dist/types/stories/MyRadio.stories.d.ts.map +1 -0
  188. package/dist/types/stories/MySelect.stories.d.ts +10 -0
  189. package/dist/types/stories/MySelect.stories.d.ts.map +1 -0
  190. package/dist/types/stories/MyShadcnSelect.stories.d.ts +9 -0
  191. package/dist/types/stories/MyShadcnSelect.stories.d.ts.map +1 -0
  192. package/dist/types/stories/MySwitch.stories.d.ts +8 -0
  193. package/dist/types/stories/MySwitch.stories.d.ts.map +1 -0
  194. package/dist/types/stories/MyTable.stories.d.ts +19 -0
  195. package/dist/types/stories/MyTable.stories.d.ts.map +1 -0
  196. package/dist/types/stories/MyTextarea.stories.d.ts +9 -0
  197. package/dist/types/stories/MyTextarea.stories.d.ts.map +1 -0
  198. package/dist/types/stories/MyTimePicker.stories.d.ts +9 -0
  199. package/dist/types/stories/MyTimePicker.stories.d.ts.map +1 -0
  200. package/dist/types/stories/MyTooltip.stories.d.ts +10 -0
  201. package/dist/types/stories/MyTooltip.stories.d.ts.map +1 -0
  202. package/dist/types/stories/PasswordConfirm.stories.d.ts +8 -0
  203. package/dist/types/stories/PasswordConfirm.stories.d.ts.map +1 -0
  204. package/dist/types/stories/ScrollArea.stories.d.ts +8 -0
  205. package/dist/types/stories/ScrollArea.stories.d.ts.map +1 -0
  206. package/dist/types/stories/Search.stories.d.ts +8 -0
  207. package/dist/types/stories/Search.stories.d.ts.map +1 -0
  208. package/dist/types/stories/SearchWithCtrl.stories.d.ts +8 -0
  209. package/dist/types/stories/SearchWithCtrl.stories.d.ts.map +1 -0
  210. package/dist/types/stories/Spin.stories.d.ts +8 -0
  211. package/dist/types/stories/Spin.stories.d.ts.map +1 -0
  212. package/dist/types/stories/ThemeToggle.stories.d.ts +8 -0
  213. package/dist/types/stories/ThemeToggle.stories.d.ts.map +1 -0
  214. package/dist/types/types/translation-args.type.d.ts +7 -0
  215. package/dist/types/types/translation-args.type.d.ts.map +1 -1
  216. package/dist/types/utils/index.d.ts +2 -0
  217. package/dist/types/utils/index.d.ts.map +1 -0
  218. package/dist/types/utils/utils.d.ts +8 -0
  219. package/dist/types/utils/utils.d.ts.map +1 -0
  220. package/dist/utils/index.cjs.js +2 -0
  221. package/dist/utils/index.cjs.js.map +1 -0
  222. package/dist/utils/index.es.js +7 -0
  223. package/dist/utils/index.es.js.map +1 -0
  224. package/package.json +15 -5
  225. package/dist/chunks/MyInput-5ir4eN2m.cjs.js +0 -2
  226. package/dist/chunks/MyInput-5ir4eN2m.cjs.js.map +0 -1
  227. package/dist/chunks/MyInput-Cb0FlVxQ.es.js +0 -53
  228. package/dist/chunks/MyInput-Cb0FlVxQ.es.js.map +0 -1
  229. package/dist/chunks/MySelect-5DHBVlKZ.es.js.map +0 -1
  230. package/dist/chunks/MySelect-Dl3jKf5s.cjs.js +0 -2
  231. package/dist/chunks/MySelect-Dl3jKf5s.cjs.js.map +0 -1
  232. package/dist/chunks/PasswordConfirm-Dj97U7O9.es.js.map +0 -1
  233. package/dist/chunks/PasswordConfirm-Uc4pncGw.cjs.js.map +0 -1
  234. package/dist/chunks/Search-BtiKC-dt.es.js.map +0 -1
  235. package/dist/chunks/Search-DfRA43qp.cjs.js +0 -2
  236. package/dist/chunks/Search-DfRA43qp.cjs.js.map +0 -1
  237. package/dist/chunks/lodash-BjH0kD7j.cjs.js +0 -28
  238. package/dist/chunks/lodash-BjH0kD7j.cjs.js.map +0 -1
  239. package/dist/chunks/lodash-CRDOWzbs.es.js +0 -3701
  240. package/dist/chunks/lodash-CRDOWzbs.es.js.map +0 -1
  241. package/dist/chunks/useFilter-C_K_3fQu.es.js +0 -18
  242. package/dist/chunks/useFilter-C_K_3fQu.es.js.map +0 -1
  243. package/dist/chunks/useFilter-CsOF1_hM.cjs.js +0 -2
  244. package/dist/chunks/useFilter-CsOF1_hM.cjs.js.map +0 -1
  245. package/dist/chunks/useSortable-B3LF1tg8.cjs.js +0 -2
  246. package/dist/chunks/useSortable-B3LF1tg8.cjs.js.map +0 -1
  247. package/dist/chunks/useSortable-BXNk8Wth.es.js +0 -135
  248. package/dist/chunks/useSortable-BXNk8Wth.es.js.map +0 -1
  249. package/dist/types/stories/Button.d.ts +0 -15
  250. package/dist/types/stories/Button.d.ts.map +0 -1
  251. package/dist/types/stories/Button.stories.d.ts +0 -24
  252. package/dist/types/stories/Button.stories.d.ts.map +0 -1
  253. package/dist/types/stories/Header.d.ts +0 -12
  254. package/dist/types/stories/Header.d.ts.map +0 -1
  255. package/dist/types/stories/Header.stories.d.ts +0 -19
  256. package/dist/types/stories/Header.stories.d.ts.map +0 -1
  257. package/dist/types/stories/Page.d.ts +0 -3
  258. package/dist/types/stories/Page.d.ts.map +0 -1
  259. package/dist/types/stories/Page.stories.d.ts +0 -13
  260. package/dist/types/stories/Page.stories.d.ts.map +0 -1
@@ -2,17 +2,16 @@ import { jsxs as l, jsx as s } from "react/jsx-runtime";
2
2
  import { Button as c } from "dgz-ui/button";
3
3
  import { Form as B, Input as O } from "dgz-ui/form";
4
4
  import { Popover as C, PopoverTrigger as L, PopoverContent as W } from "dgz-ui/popover";
5
- import { l as k } from "./lodash-CRDOWzbs.es.js";
6
- import { ListFilterPlusIcon as U, ListFilterIcon as $, ChevronDown as q } from "lucide-react";
7
- import { memo as G, useState as h, useEffect as x, useCallback as E } from "react";
5
+ import { g as E, M as U } from "./MyInput-ByJ5vTAN.es.js";
6
+ import { ListFilterPlusIcon as $, ListFilterIcon as q, ChevronDown as G } from "lucide-react";
7
+ import { memo as H, useState as h, useEffect as x, useCallback as S } from "react";
8
8
  import { useTranslation as w } from "react-i18next";
9
- import { u as H } from "./useFilter-C_K_3fQu.es.js";
10
- import { M as J } from "./MyInput-Cb0FlVxQ.es.js";
11
- import { M as Q } from "./MySelect-5DHBVlKZ.es.js";
9
+ import { u as J } from "./useFilter-DpCwY1KO.es.js";
10
+ import { M as Q } from "./MySelect-CRXtMlbf.es.js";
12
11
  import { p as V } from "./index-E1NtSoNr.es.js";
13
12
  import { cn as X } from "dgz-ui/utils";
14
- import { K as S } from "./Keyboard-CJVAJWdO.es.js";
15
- const pe = G(function({
13
+ import { K as k } from "./Keyboard-CJVAJWdO.es.js";
14
+ const me = H(function({
16
15
  filters: t,
17
16
  params: n,
18
17
  onFilter: o,
@@ -25,11 +24,11 @@ const pe = G(function({
25
24
  applyText: M,
26
25
  ...P
27
26
  }) {
28
- const { t: p } = w(), [z, T] = h(!1), [j, d] = h(!1), { form: v } = H({ params: n }), { watch: D, handleSubmit: F, control: b, reset: N } = v;
27
+ const { t: p } = w(), [z, T] = h(!1), [j, d] = h(!1), { form: v } = J({ params: n }), { watch: D, handleSubmit: F, control: b, reset: N } = v;
29
28
  x(() => {
30
29
  let e = !1;
31
30
  t.map((A) => {
32
- const u = k.get(n, `${A.name}`);
31
+ const u = E(n, `${A.name}`);
33
32
  (Array.isArray(u) ? u.length > 0 : u) && (e = !0), T(e);
34
33
  });
35
34
  }, [t, n]);
@@ -37,12 +36,12 @@ const pe = G(function({
37
36
  x(() => {
38
37
  r == null || r(g);
39
38
  }, [g, r]);
40
- const K = E(
39
+ const K = S(
41
40
  (e = {}) => {
42
41
  o == null || o(e), d(!1);
43
42
  },
44
43
  [o]
45
- ), R = E(() => {
44
+ ), R = S(() => {
46
45
  N(), o && o({
47
46
  ...Object.fromEntries(
48
47
  t.map((e) => [e.name, void 0])
@@ -59,10 +58,10 @@ const pe = G(function({
59
58
  className: "ml-auto w-full px-3",
60
59
  ...P,
61
60
  children: /* @__PURE__ */ l("div", { className: "flex items-center", children: [
62
- z ? /* @__PURE__ */ s(U, { className: "size-5" }) : /* @__PURE__ */ s($, { className: "size-5" }),
61
+ z ? /* @__PURE__ */ s($, { className: "size-5" }) : /* @__PURE__ */ s(q, { className: "size-5" }),
63
62
  " ",
64
63
  /* @__PURE__ */ s("span", { className: "hidden md:inline!", children: a || p("Filter") }),
65
- /* @__PURE__ */ s(q, {})
64
+ /* @__PURE__ */ s(G, {})
66
65
  ] })
67
66
  }
68
67
  ) }),
@@ -81,7 +80,7 @@ const pe = G(function({
81
80
  },
82
81
  e.name
83
82
  ) : /* @__PURE__ */ s(
84
- J,
83
+ U,
85
84
  {
86
85
  control: b,
87
86
  placeholder: e.placeholder,
@@ -106,7 +105,7 @@ const pe = G(function({
106
105
  ] })
107
106
  ] }) }) })
108
107
  ] });
109
- }), de = ({
108
+ }), pe = ({
110
109
  placeholder: f,
111
110
  onSearchChange: t,
112
111
  className: n,
@@ -120,12 +119,12 @@ const pe = G(function({
120
119
  {
121
120
  ...o,
122
121
  placeholder: f || y("Type text and press Enter"),
123
- onInput: (a) => m(k.get(a, "target.value", "")),
122
+ onInput: (a) => m(E(a, "target.value", "")),
124
123
  onKeyUp: (a) => {
125
- a.key === S.ENTER && (t(i || void 0), a.stopPropagation(), a.preventDefault());
124
+ a.key === k.ENTER && (t(i || void 0), a.stopPropagation(), a.preventDefault());
126
125
  },
127
126
  onKeyDown: (a) => {
128
- a.key === S.ENTER && (a.stopPropagation(), a.preventDefault());
127
+ a.key === k.ENTER && (a.stopPropagation(), a.preventDefault());
129
128
  }
130
129
  }
131
130
  ),
@@ -142,7 +141,7 @@ const pe = G(function({
142
141
  ] });
143
142
  };
144
143
  export {
145
- pe as F,
146
- de as S
144
+ me as F,
145
+ pe as S
147
146
  };
148
- //# sourceMappingURL=Search-BtiKC-dt.es.js.map
147
+ //# sourceMappingURL=Search-DunDXQgP.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Search-DunDXQgP.es.js","sources":["../../src/components/filters/FilterWrapper.tsx","../../src/components/filters/Search.tsx"],"sourcesContent":["import { Button, type ButtonProps } from 'dgz-ui/button';\nimport { Form, type Option } from 'dgz-ui/form';\nimport {\n Popover,\n type PopoverContainerProps,\n PopoverContent,\n PopoverTrigger,\n} from 'dgz-ui/popover';\nimport get from 'lodash.get';\nimport { ChevronDown, ListFilterIcon, ListFilterPlusIcon } from 'lucide-react';\nimport { memo, type ReactNode, useCallback, useEffect, useState } from 'react';\nimport type { FieldValues } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { useFilter } from '../../hooks';\nimport { MyInput, MySelect } from '../form';\n\n/**\n * Interface representing a filter configuration.\n */\nexport interface FilterInterface {\n /** Label for the filter field. */\n label?: ReactNode;\n /** Placeholder text for the input/select. */\n placeholder?: string;\n /** Default value for the filter. */\n value?: string | string[];\n /** Name of the filter field (used as key). */\n name: string;\n /** Whether the filter supports multiple values (for select inputs). */\n isMulti?: boolean;\n /** Whether the filter supports searchable inputs (for select inputs). */\n isSearchable?: boolean;\n /** Options for select inputs. */\n options?: Option[];\n}\n\n/**\n * Props for the FilterWrapper component.\n */\nexport interface FilterWrapperProps\n extends Omit<ButtonProps, 'title'>, PopoverContainerProps {\n /** Array of filter definitions to render. */\n filters: FilterInterface[];\n /** Current active parameters/filters. */\n params?: Record<string, unknown>;\n /** Callback fired when filters are applied. */\n onFilter?: (filters: Record<string, unknown>) => void;\n /** Callback fired when the filter popover is closed/cancelled. */\n onCancel?: () => void;\n /** Callback fired when filter form values change. */\n onChange?: (filters: FieldValues) => void;\n /** Title for the filter button. */\n title?: ReactNode;\n /** Text for the reset button. */\n resetText?: ReactNode;\n /** Text for the apply button. */\n applyText?: ReactNode;\n}\n\n/**\n * FilterWrapper shows a popover with a dynamic list of field filters and emits selected filter values.\n *\n * @param props.filters - Array of filter definitions to render.\n * @param props.params - Current params used to detect active filters.\n * @param props.onFilter - Callback fired when user applies filters.\n * @param props.onCancel - Callback fired on cancel.\n * @param props.onChange - Callback fired whenever filter form values change.\n * @returns {JSX.Element} A filter button that opens a popover with filter controls\n */\nexport const FilterWrapper = memo(function FilterWrapper({\n filters,\n params,\n onFilter,\n onChange,\n onCancel,\n triggerProps,\n contentProps,\n title,\n resetText,\n applyText,\n ...btnProps\n}: FilterWrapperProps) {\n const { t } = useTranslation();\n const [isFiltered, setIsFiltered] = useState(false);\n const [open, setOpen] = useState(false);\n const { form } = useFilter({ params });\n\n const { watch, handleSubmit, control, reset } = form;\n\n useEffect(() => {\n let hasFilter = false;\n filters.map((filter) => {\n const value = get(params, `${filter.name}`);\n if (Array.isArray(value) ? value.length > 0 : Boolean(value)) {\n hasFilter = true;\n }\n\n setIsFiltered(hasFilter);\n });\n }, [filters, params]);\n\n const values = watch();\n\n useEffect(() => {\n onChange?.(values);\n }, [values, onChange]);\n\n const handleFilter = useCallback(\n (data = {}) => {\n onFilter?.(data);\n setOpen(false);\n },\n [onFilter]\n );\n\n const handleReset = useCallback(() => {\n reset();\n if (onFilter) {\n onFilter({\n ...Object.fromEntries(\n filters.map((filter) => [filter.name, undefined])\n ),\n });\n }\n setOpen(false);\n }, [onFilter, reset, filters]);\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger {...triggerProps} className={'grow'}>\n <Button\n asChild\n size={'sm'}\n variant=\"secondary\"\n className={'ml-auto w-full px-3'}\n {...btnProps}\n >\n <div className={'flex items-center'}>\n {isFiltered ? (\n <ListFilterPlusIcon className={'size-5'} />\n ) : (\n <ListFilterIcon className={'size-5'} />\n )}{' '}\n <span className={'hidden md:inline!'}>{title || t('Filter')}</span>\n <ChevronDown />\n </div>\n </Button>\n </PopoverTrigger>\n <PopoverContent side={'bottom'} align={'end'} {...contentProps}>\n <Form {...form}>\n <form onSubmit={handleSubmit(handleFilter)} className={'space-y-4'}>\n <div className={'h-full shrink space-y-6 p-1'}>\n {filters.map((filter) =>\n filter.options ? (\n <MySelect\n key={filter.name}\n control={control}\n name={filter.name}\n isSearchable={Boolean(filter.isSearchable)}\n placeholder={filter.placeholder}\n isMulti={filter.isMulti}\n options={filter.options}\n label={filter.label}\n />\n ) : (\n <MyInput\n key={filter.name}\n control={control}\n placeholder={filter.placeholder}\n name={filter.name}\n label={filter.label}\n />\n )\n )}\n </div>\n <div className={'flex shrink-0 justify-end gap-2'}>\n <Button\n variant={'destructive'}\n type=\"reset\"\n size={'sm'}\n onClick={handleReset}\n >\n {resetText || t('Reset')}\n </Button>\n <Button type=\"submit\" size={'sm'}>\n {applyText || t('Apply')}\n </Button>\n </div>\n </form>\n </Form>\n </PopoverContent>\n </Popover>\n );\n});\n","import { RiSearchLine } from '@remixicon/react';\nimport { Button } from 'dgz-ui/button';\nimport type { CardProps } from 'dgz-ui/card';\nimport { Input, type InputProps } from 'dgz-ui/form';\nimport { cn } from 'dgz-ui/utils';\nimport get from 'lodash.get';\nimport { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Keyboard } from '../../enums';\n\n/**\n * Props for the Search component.\n */\nexport type SearchProps = Omit<CardProps, 'title'> & {\n /** Custom placeholder text for the input. */\n placeholder?: string;\n /** Callback fired when the search is triggered. */\n onSearchChange: (search?: string) => void;\n inputProps?: InputProps;\n};\n\n/**\n * Search input with a submit button that triggers a search action.\n *\n * This component renders a search input field and a search button. The search\n * is triggered when the user presses Enter or clicks the button. The search\n * value is then passed to the `onSearchChange` callback.\n *\n * @param {SearchProps} props - The props for the component.\n * @param {string} [props.placeholder] - Optional placeholder text for the input field.\n * @param {Function} props.onSearchChange - Callback function that is called when a search is performed.\n * @param {string} [props.className] - Optional class name for the component.\n * @param {InputProps} [props.inputProps] - Optional props to pass to the underlying Input component.\n * @returns {JSX.Element} A search input field with submit button\n */\nexport const Search = ({\n placeholder,\n onSearchChange,\n className,\n inputProps,\n ...props\n}: SearchProps) => {\n const { t } = useTranslation();\n const [search, setSearch] = useState('');\n\n return (\n <div {...props} className={cn('relative w-full', className)}>\n <Input\n {...inputProps}\n placeholder={placeholder || t('Type text and press Enter')}\n onInput={(evt) => setSearch(get(evt, 'target.value', ''))}\n onKeyUp={(evt) => {\n if (evt.key === Keyboard.ENTER) {\n onSearchChange(search || undefined);\n evt.stopPropagation();\n evt.preventDefault();\n }\n }}\n onKeyDown={(event) => {\n if (event.key === Keyboard.ENTER) {\n event.stopPropagation();\n event.preventDefault();\n }\n }}\n />\n <Button\n type={'button'}\n variant={'ghost'}\n className={\n 'text-foreground absolute top-0 right-0 cursor-pointer rounded-md bg-transparent!'\n }\n onClick={() => onSearchChange(search)}\n >\n <RiSearchLine />\n </Button>\n </div>\n );\n};\n"],"names":["FilterWrapper","memo","filters","params","onFilter","onChange","onCancel","triggerProps","contentProps","title","resetText","applyText","btnProps","t","useTranslation","isFiltered","setIsFiltered","useState","open","setOpen","form","useFilter","watch","handleSubmit","control","reset","useEffect","hasFilter","filter","value","get","values","handleFilter","useCallback","data","handleReset","jsxs","Popover","jsx","PopoverTrigger","Button","ListFilterPlusIcon","ListFilterIcon","ChevronDown","PopoverContent","Form","MySelect","MyInput","Search","placeholder","onSearchChange","className","inputProps","props","search","setSearch","cn","Input","evt","Keyboard","event","RiSearchLine"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";const e=require("react/jsx-runtime"),i=require("dgz-ui/button"),g=require("dgz-ui/form"),h=require("dgz-ui/popover"),j=require("./MyInput-mL2G5h2s.cjs.js"),x=require("lucide-react"),r=require("react"),k=require("react-i18next"),D=require("./useFilter-D93ncAmn.cjs.js"),$=require("./MySelect-CmLxmNJz.cjs.js"),A=require("./index-ClQFzqcq.cjs.js"),C=require("dgz-ui/utils"),S=require("./Keyboard-kyPAAQWP.cjs.js"),O=r.memo(function({filters:a,params:c,onFilter:n,onChange:o,onCancel:b,triggerProps:l,contentProps:u,title:t,resetText:E,applyText:I,...w}){const{t:p}=k.useTranslation(),[B,M]=r.useState(!1),[P,d]=r.useState(!1),{form:v}=D.useFilter({params:c}),{watch:R,handleSubmit:T,control:f,reset:q}=v;r.useEffect(()=>{let s=!1;a.map(K=>{const m=j.get(c,`${K.name}`);(Array.isArray(m)?m.length>0:m)&&(s=!0),M(s)})},[a,c]);const N=R();r.useEffect(()=>{o==null||o(N)},[N,o]);const z=r.useCallback((s={})=>{n==null||n(s),d(!1)},[n]),F=r.useCallback(()=>{q(),n&&n({...Object.fromEntries(a.map(s=>[s.name,void 0]))}),d(!1)},[n,q,a]);return e.jsxs(h.Popover,{open:P,onOpenChange:d,children:[e.jsx(h.PopoverTrigger,{...l,className:"grow",children:e.jsx(i.Button,{asChild:!0,size:"sm",variant:"secondary",className:"ml-auto w-full px-3",...w,children:e.jsxs("div",{className:"flex items-center",children:[B?e.jsx(x.ListFilterPlusIcon,{className:"size-5"}):e.jsx(x.ListFilterIcon,{className:"size-5"})," ",e.jsx("span",{className:"hidden md:inline!",children:t||p("Filter")}),e.jsx(x.ChevronDown,{})]})})}),e.jsx(h.PopoverContent,{side:"bottom",align:"end",...u,children:e.jsx(g.Form,{...v,children:e.jsxs("form",{onSubmit:T(z),className:"space-y-4",children:[e.jsx("div",{className:"h-full shrink space-y-6 p-1",children:a.map(s=>s.options?e.jsx($.MySelect,{control:f,name:s.name,isSearchable:!!s.isSearchable,placeholder:s.placeholder,isMulti:s.isMulti,options:s.options,label:s.label},s.name):e.jsx(j.MyInput,{control:f,placeholder:s.placeholder,name:s.name,label:s.label},s.name))}),e.jsxs("div",{className:"flex shrink-0 justify-end gap-2",children:[e.jsx(i.Button,{variant:"destructive",type:"reset",size:"sm",onClick:F,children:E||p("Reset")}),e.jsx(i.Button,{type:"submit",size:"sm",children:I||p("Apply")})]})]})})})]})}),W=({placeholder:y,onSearchChange:a,className:c,inputProps:n,...o})=>{const{t:b}=k.useTranslation(),[l,u]=r.useState("");return e.jsxs("div",{...o,className:C.cn("relative w-full",c),children:[e.jsx(g.Input,{...n,placeholder:y||b("Type text and press Enter"),onInput:t=>u(j.get(t,"target.value","")),onKeyUp:t=>{t.key===S.Keyboard.ENTER&&(a(l||void 0),t.stopPropagation(),t.preventDefault())},onKeyDown:t=>{t.key===S.Keyboard.ENTER&&(t.stopPropagation(),t.preventDefault())}}),e.jsx(i.Button,{type:"button",variant:"ghost",className:"text-foreground absolute top-0 right-0 cursor-pointer rounded-md bg-transparent!",onClick:()=>a(l),children:e.jsx(A.pv,{})})]})};exports.FilterWrapper=O;exports.Search=W;
2
+ //# sourceMappingURL=Search-kbkeTeSI.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Search-kbkeTeSI.cjs.js","sources":["../../src/components/filters/FilterWrapper.tsx","../../src/components/filters/Search.tsx"],"sourcesContent":["import { Button, type ButtonProps } from 'dgz-ui/button';\nimport { Form, type Option } from 'dgz-ui/form';\nimport {\n Popover,\n type PopoverContainerProps,\n PopoverContent,\n PopoverTrigger,\n} from 'dgz-ui/popover';\nimport get from 'lodash.get';\nimport { ChevronDown, ListFilterIcon, ListFilterPlusIcon } from 'lucide-react';\nimport { memo, type ReactNode, useCallback, useEffect, useState } from 'react';\nimport type { FieldValues } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { useFilter } from '../../hooks';\nimport { MyInput, MySelect } from '../form';\n\n/**\n * Interface representing a filter configuration.\n */\nexport interface FilterInterface {\n /** Label for the filter field. */\n label?: ReactNode;\n /** Placeholder text for the input/select. */\n placeholder?: string;\n /** Default value for the filter. */\n value?: string | string[];\n /** Name of the filter field (used as key). */\n name: string;\n /** Whether the filter supports multiple values (for select inputs). */\n isMulti?: boolean;\n /** Whether the filter supports searchable inputs (for select inputs). */\n isSearchable?: boolean;\n /** Options for select inputs. */\n options?: Option[];\n}\n\n/**\n * Props for the FilterWrapper component.\n */\nexport interface FilterWrapperProps\n extends Omit<ButtonProps, 'title'>, PopoverContainerProps {\n /** Array of filter definitions to render. */\n filters: FilterInterface[];\n /** Current active parameters/filters. */\n params?: Record<string, unknown>;\n /** Callback fired when filters are applied. */\n onFilter?: (filters: Record<string, unknown>) => void;\n /** Callback fired when the filter popover is closed/cancelled. */\n onCancel?: () => void;\n /** Callback fired when filter form values change. */\n onChange?: (filters: FieldValues) => void;\n /** Title for the filter button. */\n title?: ReactNode;\n /** Text for the reset button. */\n resetText?: ReactNode;\n /** Text for the apply button. */\n applyText?: ReactNode;\n}\n\n/**\n * FilterWrapper shows a popover with a dynamic list of field filters and emits selected filter values.\n *\n * @param props.filters - Array of filter definitions to render.\n * @param props.params - Current params used to detect active filters.\n * @param props.onFilter - Callback fired when user applies filters.\n * @param props.onCancel - Callback fired on cancel.\n * @param props.onChange - Callback fired whenever filter form values change.\n * @returns {JSX.Element} A filter button that opens a popover with filter controls\n */\nexport const FilterWrapper = memo(function FilterWrapper({\n filters,\n params,\n onFilter,\n onChange,\n onCancel,\n triggerProps,\n contentProps,\n title,\n resetText,\n applyText,\n ...btnProps\n}: FilterWrapperProps) {\n const { t } = useTranslation();\n const [isFiltered, setIsFiltered] = useState(false);\n const [open, setOpen] = useState(false);\n const { form } = useFilter({ params });\n\n const { watch, handleSubmit, control, reset } = form;\n\n useEffect(() => {\n let hasFilter = false;\n filters.map((filter) => {\n const value = get(params, `${filter.name}`);\n if (Array.isArray(value) ? value.length > 0 : Boolean(value)) {\n hasFilter = true;\n }\n\n setIsFiltered(hasFilter);\n });\n }, [filters, params]);\n\n const values = watch();\n\n useEffect(() => {\n onChange?.(values);\n }, [values, onChange]);\n\n const handleFilter = useCallback(\n (data = {}) => {\n onFilter?.(data);\n setOpen(false);\n },\n [onFilter]\n );\n\n const handleReset = useCallback(() => {\n reset();\n if (onFilter) {\n onFilter({\n ...Object.fromEntries(\n filters.map((filter) => [filter.name, undefined])\n ),\n });\n }\n setOpen(false);\n }, [onFilter, reset, filters]);\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger {...triggerProps} className={'grow'}>\n <Button\n asChild\n size={'sm'}\n variant=\"secondary\"\n className={'ml-auto w-full px-3'}\n {...btnProps}\n >\n <div className={'flex items-center'}>\n {isFiltered ? (\n <ListFilterPlusIcon className={'size-5'} />\n ) : (\n <ListFilterIcon className={'size-5'} />\n )}{' '}\n <span className={'hidden md:inline!'}>{title || t('Filter')}</span>\n <ChevronDown />\n </div>\n </Button>\n </PopoverTrigger>\n <PopoverContent side={'bottom'} align={'end'} {...contentProps}>\n <Form {...form}>\n <form onSubmit={handleSubmit(handleFilter)} className={'space-y-4'}>\n <div className={'h-full shrink space-y-6 p-1'}>\n {filters.map((filter) =>\n filter.options ? (\n <MySelect\n key={filter.name}\n control={control}\n name={filter.name}\n isSearchable={Boolean(filter.isSearchable)}\n placeholder={filter.placeholder}\n isMulti={filter.isMulti}\n options={filter.options}\n label={filter.label}\n />\n ) : (\n <MyInput\n key={filter.name}\n control={control}\n placeholder={filter.placeholder}\n name={filter.name}\n label={filter.label}\n />\n )\n )}\n </div>\n <div className={'flex shrink-0 justify-end gap-2'}>\n <Button\n variant={'destructive'}\n type=\"reset\"\n size={'sm'}\n onClick={handleReset}\n >\n {resetText || t('Reset')}\n </Button>\n <Button type=\"submit\" size={'sm'}>\n {applyText || t('Apply')}\n </Button>\n </div>\n </form>\n </Form>\n </PopoverContent>\n </Popover>\n );\n});\n","import { RiSearchLine } from '@remixicon/react';\nimport { Button } from 'dgz-ui/button';\nimport type { CardProps } from 'dgz-ui/card';\nimport { Input, type InputProps } from 'dgz-ui/form';\nimport { cn } from 'dgz-ui/utils';\nimport get from 'lodash.get';\nimport { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Keyboard } from '../../enums';\n\n/**\n * Props for the Search component.\n */\nexport type SearchProps = Omit<CardProps, 'title'> & {\n /** Custom placeholder text for the input. */\n placeholder?: string;\n /** Callback fired when the search is triggered. */\n onSearchChange: (search?: string) => void;\n inputProps?: InputProps;\n};\n\n/**\n * Search input with a submit button that triggers a search action.\n *\n * This component renders a search input field and a search button. The search\n * is triggered when the user presses Enter or clicks the button. The search\n * value is then passed to the `onSearchChange` callback.\n *\n * @param {SearchProps} props - The props for the component.\n * @param {string} [props.placeholder] - Optional placeholder text for the input field.\n * @param {Function} props.onSearchChange - Callback function that is called when a search is performed.\n * @param {string} [props.className] - Optional class name for the component.\n * @param {InputProps} [props.inputProps] - Optional props to pass to the underlying Input component.\n * @returns {JSX.Element} A search input field with submit button\n */\nexport const Search = ({\n placeholder,\n onSearchChange,\n className,\n inputProps,\n ...props\n}: SearchProps) => {\n const { t } = useTranslation();\n const [search, setSearch] = useState('');\n\n return (\n <div {...props} className={cn('relative w-full', className)}>\n <Input\n {...inputProps}\n placeholder={placeholder || t('Type text and press Enter')}\n onInput={(evt) => setSearch(get(evt, 'target.value', ''))}\n onKeyUp={(evt) => {\n if (evt.key === Keyboard.ENTER) {\n onSearchChange(search || undefined);\n evt.stopPropagation();\n evt.preventDefault();\n }\n }}\n onKeyDown={(event) => {\n if (event.key === Keyboard.ENTER) {\n event.stopPropagation();\n event.preventDefault();\n }\n }}\n />\n <Button\n type={'button'}\n variant={'ghost'}\n className={\n 'text-foreground absolute top-0 right-0 cursor-pointer rounded-md bg-transparent!'\n }\n onClick={() => onSearchChange(search)}\n >\n <RiSearchLine />\n </Button>\n </div>\n );\n};\n"],"names":["FilterWrapper","memo","filters","params","onFilter","onChange","onCancel","triggerProps","contentProps","title","resetText","applyText","btnProps","t","useTranslation","isFiltered","setIsFiltered","useState","open","setOpen","form","useFilter","watch","handleSubmit","control","reset","useEffect","hasFilter","filter","value","get","values","handleFilter","useCallback","data","handleReset","jsxs","Popover","jsx","PopoverTrigger","Button","ListFilterPlusIcon","ListFilterIcon","ChevronDown","PopoverContent","Form","MySelect","MyInput","Search","placeholder","onSearchChange","className","inputProps","props","search","setSearch","cn","Input","evt","Keyboard","event","RiSearchLine"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SortOrder-81BrXp3i.cjs.js","sources":["../../src/enums/SortOrder.ts"],"sourcesContent":["/**\n * SortOrder enum for ascending/descending sort.\n */\nexport enum SortOrder {\n ASC = 'ASC',\n DESC = 'DESC',\n}\n"],"names":["SortOrder"],"mappings":"aAGO,IAAKA,GAAAA,IACVA,EAAA,IAAM,MACNA,EAAA,KAAO,OAFGA,IAAAA,GAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"SortOrder-81BrXp3i.cjs.js","sources":["../../src/enums/SortOrder.ts"],"sourcesContent":["/**\n * SortOrder enum for ascending/descending sort.\n */\nexport enum SortOrder {\n /** Ascending sort order (A-Z, 0-9, oldest to newest) */\n ASC = 'ASC',\n /** Descending sort order (Z-A, 9-0, newest to oldest) */\n DESC = 'DESC',\n}\n"],"names":["SortOrder"],"mappings":"aAGO,IAAKA,GAAAA,IAEVA,EAAA,IAAM,MAENA,EAAA,KAAO,OAJGA,IAAAA,GAAA,CAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"SortOrder-CwuehjY1.es.js","sources":["../../src/enums/SortOrder.ts"],"sourcesContent":["/**\n * SortOrder enum for ascending/descending sort.\n */\nexport enum SortOrder {\n ASC = 'ASC',\n DESC = 'DESC',\n}\n"],"names":["SortOrder"],"mappings":"AAGO,IAAKA,sBAAAA,OACVA,EAAA,MAAM,OACNA,EAAA,OAAO,QAFGA,IAAAA,KAAA,CAAA,CAAA;"}
1
+ {"version":3,"file":"SortOrder-CwuehjY1.es.js","sources":["../../src/enums/SortOrder.ts"],"sourcesContent":["/**\n * SortOrder enum for ascending/descending sort.\n */\nexport enum SortOrder {\n /** Ascending sort order (A-Z, 0-9, oldest to newest) */\n ASC = 'ASC',\n /** Descending sort order (Z-A, 9-0, newest to oldest) */\n DESC = 'DESC',\n}\n"],"names":["SortOrder"],"mappings":"AAGO,IAAKA,sBAAAA,OAEVA,EAAA,MAAM,OAENA,EAAA,OAAO,QAJGA,IAAAA,KAAA,CAAA,CAAA;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Spin-DUK1prd9.cjs.js","sources":["../../src/components/loader/Spin.tsx"],"sourcesContent":["import { cn } from 'dgz-ui/utils';\nimport type { HTMLAttributes } from 'react';\n\n/**\n * Props for the Spin component.\n */\nexport type SpinProps = HTMLAttributes<HTMLOrSVGElement>;\n\n/**\n * Spin renders a simple SVG spinner. You can override className to change size/color.\n *\n * @param props - Optional HTML/SVG attributes applied to the svg element.\n * @returns An SVG spinner element.\n */\nconst Spin = (props?: SpinProps) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n {...props}\n className={cn('mr-1 size-5 animate-spin text-white', props?.className)}\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n ></circle>\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n ></path>\n </svg>\n );\n};\n\nexport default Spin;\n"],"names":["Spin","props","jsxs","cn","jsx"],"mappings":"4EAcMA,EAAQC,GAEVC,EAAAA,KAAC,MAAA,CACC,MAAM,6BACN,KAAK,OACL,QAAQ,YACP,GAAGD,EACJ,UAAWE,EAAAA,GAAG,sCAAuCF,GAAA,YAAAA,EAAO,SAAS,EAErE,SAAA,CAAAG,EAAAA,IAAC,SAAA,CACC,UAAU,aACV,GAAG,KACH,GAAG,KACH,EAAE,KACF,OAAO,eACP,YAAY,GAAA,CAAA,EAEdA,EAAAA,IAAC,OAAA,CACC,UAAU,aACV,KAAK,eACL,EAAE,iHAAA,CAAA,CACH,CAAA,CAAA"}
1
+ {"version":3,"file":"Spin-DUK1prd9.cjs.js","sources":["../../src/components/loader/Spin.tsx"],"sourcesContent":["import { cn } from 'dgz-ui/utils';\nimport type { HTMLAttributes } from 'react';\n\n/**\n * Props for the Spin component.\n */\nexport type SpinProps = HTMLAttributes<HTMLOrSVGElement>;\n\n/**\n * Spin renders a simple SVG spinner. You can override className to change size/color.\n *\n * @param props - Optional HTML/SVG attributes applied to the svg element.\n * @returns {JSX.Element} An SVG spinner element.\n */\nconst Spin = (props?: SpinProps) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n {...props}\n className={cn('mr-1 size-5 animate-spin text-white', props?.className)}\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n ></circle>\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n ></path>\n </svg>\n );\n};\n\nexport default Spin;\n"],"names":["Spin","props","jsxs","cn","jsx"],"mappings":"4EAcMA,EAAQC,GAEVC,EAAAA,KAAC,MAAA,CACC,MAAM,6BACN,KAAK,OACL,QAAQ,YACP,GAAGD,EACJ,UAAWE,EAAAA,GAAG,sCAAuCF,GAAA,YAAAA,EAAO,SAAS,EAErE,SAAA,CAAAG,EAAAA,IAAC,SAAA,CACC,UAAU,aACV,GAAG,KACH,GAAG,KACH,EAAE,KACF,OAAO,eACP,YAAY,GAAA,CAAA,EAEdA,EAAAA,IAAC,OAAA,CACC,UAAU,aACV,KAAK,eACL,EAAE,iHAAA,CAAA,CACH,CAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Spin-DtW_edOq.es.js","sources":["../../src/components/loader/Spin.tsx"],"sourcesContent":["import { cn } from 'dgz-ui/utils';\nimport type { HTMLAttributes } from 'react';\n\n/**\n * Props for the Spin component.\n */\nexport type SpinProps = HTMLAttributes<HTMLOrSVGElement>;\n\n/**\n * Spin renders a simple SVG spinner. You can override className to change size/color.\n *\n * @param props - Optional HTML/SVG attributes applied to the svg element.\n * @returns An SVG spinner element.\n */\nconst Spin = (props?: SpinProps) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n {...props}\n className={cn('mr-1 size-5 animate-spin text-white', props?.className)}\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n ></circle>\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n ></path>\n </svg>\n );\n};\n\nexport default Spin;\n"],"names":["Spin","props","jsxs","cn","jsx"],"mappings":";;AAcA,MAAMA,IAAO,CAACC,MAEV,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,MAAK;AAAA,IACL,SAAQ;AAAA,IACP,GAAGD;AAAA,IACJ,WAAWE,EAAG,uCAAuCF,KAAA,gBAAAA,EAAO,SAAS;AAAA,IAErE,UAAA;AAAA,MAAA,gBAAAG;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,IAAG;AAAA,UACH,IAAG;AAAA,UACH,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,QAAA;AAAA,MAAA;AAAA,MAEd,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,MAAK;AAAA,UACL,GAAE;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAAA;"}
1
+ {"version":3,"file":"Spin-DtW_edOq.es.js","sources":["../../src/components/loader/Spin.tsx"],"sourcesContent":["import { cn } from 'dgz-ui/utils';\nimport type { HTMLAttributes } from 'react';\n\n/**\n * Props for the Spin component.\n */\nexport type SpinProps = HTMLAttributes<HTMLOrSVGElement>;\n\n/**\n * Spin renders a simple SVG spinner. You can override className to change size/color.\n *\n * @param props - Optional HTML/SVG attributes applied to the svg element.\n * @returns {JSX.Element} An SVG spinner element.\n */\nconst Spin = (props?: SpinProps) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n {...props}\n className={cn('mr-1 size-5 animate-spin text-white', props?.className)}\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n ></circle>\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n ></path>\n </svg>\n );\n};\n\nexport default Spin;\n"],"names":["Spin","props","jsxs","cn","jsx"],"mappings":";;AAcA,MAAMA,IAAO,CAACC,MAEV,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,MAAK;AAAA,IACL,SAAQ;AAAA,IACP,GAAGD;AAAA,IACJ,WAAWE,EAAG,uCAAuCF,KAAA,gBAAAA,EAAO,SAAS;AAAA,IAErE,UAAA;AAAA,MAAA,gBAAAG;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,IAAG;AAAA,UACH,IAAG;AAAA,UACH,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,QAAA;AAAA,MAAA;AAAA,MAEd,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,MAAK;AAAA,UACL,GAAE;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAAA;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeMode-BO6tit_Z.cjs.js","sources":["../../src/enums/ThemeMode.ts"],"sourcesContent":["/**\n * Enum for supported theme modes.\n */\nexport enum ThemeMode {\n LIGHT = 'light',\n DARK = 'dark',\n SYSTEM = 'system',\n}\n"],"names":["ThemeMode"],"mappings":"aAGO,IAAKA,GAAAA,IACVA,EAAA,MAAQ,QACRA,EAAA,KAAO,OACPA,EAAA,OAAS,SAHCA,IAAAA,GAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"ThemeMode-BO6tit_Z.cjs.js","sources":["../../src/enums/ThemeMode.ts"],"sourcesContent":["/**\n * Enum for supported theme modes.\n */\nexport enum ThemeMode {\n /** Light theme with bright colors */\n LIGHT = 'light',\n /** Dark theme with dark colors */\n DARK = 'dark',\n /** Follow system/OS theme preference */\n SYSTEM = 'system',\n}\n"],"names":["ThemeMode"],"mappings":"aAGO,IAAKA,GAAAA,IAEVA,EAAA,MAAQ,QAERA,EAAA,KAAO,OAEPA,EAAA,OAAS,SANCA,IAAAA,GAAA,CAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeMode-CqURAYDL.es.js","sources":["../../src/enums/ThemeMode.ts"],"sourcesContent":["/**\n * Enum for supported theme modes.\n */\nexport enum ThemeMode {\n LIGHT = 'light',\n DARK = 'dark',\n SYSTEM = 'system',\n}\n"],"names":["ThemeMode"],"mappings":"AAGO,IAAKA,sBAAAA,OACVA,EAAA,QAAQ,SACRA,EAAA,OAAO,QACPA,EAAA,SAAS,UAHCA,IAAAA,KAAA,CAAA,CAAA;"}
1
+ {"version":3,"file":"ThemeMode-CqURAYDL.es.js","sources":["../../src/enums/ThemeMode.ts"],"sourcesContent":["/**\n * Enum for supported theme modes.\n */\nexport enum ThemeMode {\n /** Light theme with bright colors */\n LIGHT = 'light',\n /** Dark theme with dark colors */\n DARK = 'dark',\n /** Follow system/OS theme preference */\n SYSTEM = 'system',\n}\n"],"names":["ThemeMode"],"mappings":"AAGO,IAAKA,sBAAAA,OAEVA,EAAA,QAAQ,SAERA,EAAA,OAAO,QAEPA,EAAA,SAAS,UANCA,IAAAA,KAAA,CAAA,CAAA;"}
@@ -0,0 +1,2 @@
1
+ "use strict";var o=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function l(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}exports.commonjsGlobal=o;exports.getDefaultExportFromCjs=l;
2
+ //# sourceMappingURL=_commonjsHelpers-DKOUU3wS.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_commonjsHelpers-DKOUU3wS.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ var o = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
2
+ function l(e) {
3
+ return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
4
+ }
5
+ export {
6
+ o as c,
7
+ l as g
8
+ };
9
+ //# sourceMappingURL=_commonjsHelpers-DaMA6jEr.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_commonjsHelpers-DaMA6jEr.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,2 @@
1
+ "use strict";const o=require("react"),c=require("react-hook-form"),n=({params:t})=>{const e=c.useForm({mode:"onChange"});return o.useEffect(()=>{Object.entries(t||{}).forEach(([r,s])=>{/[[\]]$/g.test(r)&&!(s instanceof Array)?e.setValue(r,[s]):e.setValue(r,s)})},[t,e]),{params:t,form:e}};exports.useFilter=n;
2
+ //# sourceMappingURL=useFilter-D93ncAmn.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFilter-D93ncAmn.cjs.js","sources":["../../src/hooks/useFilter.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport { useForm } from 'react-hook-form';\n\n/**\n * Props for the useFilter hook.\n */\nexport interface UseFilterProps {\n /** Initial filter parameters. */\n params?: Record<string, unknown>;\n}\n\n/**\n * useFilter syncs URL parameters or object params with a react-hook-form instance.\n * Useful for initializing filter forms with data from URL or state.\n *\n * @param params - Key-value pairs to set as form values.\n * @returns {Object} Filter state object\n * @returns {Record<string, unknown> | undefined} params - The passed parameters\n * @returns {UseFormReturn} form - React Hook Form instance with params set as values\n * @example\n * ```tsx\n * // Initialize filter with URL params\n * const { form } = useFilter({ params: { status: 'active', tags: ['featured'] } });\n *\n * // Access form values\n * const status = form.watch('status');\n * ```\n */\nexport const useFilter = ({ params }: UseFilterProps): object => {\n const form = useForm({ mode: 'onChange' });\n\n useEffect(() => {\n Object.entries(params || {}).forEach(([key, value]) => {\n if (/[[\\]]$/g.test(key) && !(value instanceof Array)) {\n form.setValue(key, [value]);\n } else {\n form.setValue(key, value);\n }\n });\n }, [params, form]);\n\n return {\n params,\n form,\n };\n};\n"],"names":["useFilter","params","form","useForm","useEffect","key","value"],"mappings":"mEA4BaA,EAAY,CAAC,CAAE,OAAAC,KAAqC,CAC/D,MAAMC,EAAOC,EAAAA,QAAQ,CAAE,KAAM,WAAY,EAEzCC,OAAAA,EAAAA,UAAU,IAAM,CACd,OAAO,QAAQH,GAAU,CAAA,CAAE,EAAE,QAAQ,CAAC,CAACI,EAAKC,CAAK,IAAM,CACjD,UAAU,KAAKD,CAAG,GAAK,EAAEC,aAAiB,OAC5CJ,EAAK,SAASG,EAAK,CAACC,CAAK,CAAC,EAE1BJ,EAAK,SAASG,EAAKC,CAAK,CAE5B,CAAC,CACH,EAAG,CAACL,EAAQC,CAAI,CAAC,EAEV,CACL,OAAAD,EACA,KAAAC,CAAA,CAEJ"}
@@ -0,0 +1,17 @@
1
+ import { useEffect as s } from "react";
2
+ import { useForm as f } from "react-hook-form";
3
+ const i = ({ params: t }) => {
4
+ const e = f({ mode: "onChange" });
5
+ return s(() => {
6
+ Object.entries(t || {}).forEach(([o, r]) => {
7
+ /[[\]]$/g.test(o) && !(r instanceof Array) ? e.setValue(o, [r]) : e.setValue(o, r);
8
+ });
9
+ }, [t, e]), {
10
+ params: t,
11
+ form: e
12
+ };
13
+ };
14
+ export {
15
+ i as u
16
+ };
17
+ //# sourceMappingURL=useFilter-DpCwY1KO.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFilter-DpCwY1KO.es.js","sources":["../../src/hooks/useFilter.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport { useForm } from 'react-hook-form';\n\n/**\n * Props for the useFilter hook.\n */\nexport interface UseFilterProps {\n /** Initial filter parameters. */\n params?: Record<string, unknown>;\n}\n\n/**\n * useFilter syncs URL parameters or object params with a react-hook-form instance.\n * Useful for initializing filter forms with data from URL or state.\n *\n * @param params - Key-value pairs to set as form values.\n * @returns {Object} Filter state object\n * @returns {Record<string, unknown> | undefined} params - The passed parameters\n * @returns {UseFormReturn} form - React Hook Form instance with params set as values\n * @example\n * ```tsx\n * // Initialize filter with URL params\n * const { form } = useFilter({ params: { status: 'active', tags: ['featured'] } });\n *\n * // Access form values\n * const status = form.watch('status');\n * ```\n */\nexport const useFilter = ({ params }: UseFilterProps): object => {\n const form = useForm({ mode: 'onChange' });\n\n useEffect(() => {\n Object.entries(params || {}).forEach(([key, value]) => {\n if (/[[\\]]$/g.test(key) && !(value instanceof Array)) {\n form.setValue(key, [value]);\n } else {\n form.setValue(key, value);\n }\n });\n }, [params, form]);\n\n return {\n params,\n form,\n };\n};\n"],"names":["useFilter","params","form","useForm","useEffect","key","value"],"mappings":";;AA4BO,MAAMA,IAAY,CAAC,EAAE,QAAAC,QAAqC;AAC/D,QAAMC,IAAOC,EAAQ,EAAE,MAAM,YAAY;AAEzC,SAAAC,EAAU,MAAM;AACd,WAAO,QAAQH,KAAU,CAAA,CAAE,EAAE,QAAQ,CAAC,CAACI,GAAKC,CAAK,MAAM;AACrD,MAAI,UAAU,KAAKD,CAAG,KAAK,EAAEC,aAAiB,SAC5CJ,EAAK,SAASG,GAAK,CAACC,CAAK,CAAC,IAE1BJ,EAAK,SAASG,GAAKC,CAAK;AAAA,IAE5B,CAAC;AAAA,EACH,GAAG,CAACL,GAAQC,CAAI,CAAC,GAEV;AAAA,IACL,QAAAD;AAAA,IACA,MAAAC;AAAA,EAAA;AAEJ;"}
@@ -0,0 +1,263 @@
1
+ import { g as A } from "./MyInput-ByJ5vTAN.es.js";
2
+ import { c as w, g as St } from "./_commonjsHelpers-DaMA6jEr.es.js";
3
+ import { useEffect as B, useMemo as Tt, useCallback as d, useState as X } from "react";
4
+ import { u as At } from "./useColumnsStore-ByK5r4ZY.es.js";
5
+ import { isEqual as wt } from "../utils/index.es.js";
6
+ import { S as D } from "./SortOrder-CwuehjY1.es.js";
7
+ var E = { exports: {} };
8
+ E.exports;
9
+ var z;
10
+ function Pt() {
11
+ return z || (z = 1, (function(o, s) {
12
+ var n = 9007199254740991, u = "[object Arguments]", p = "[object Function]", l = "[object GeneratorFunction]", c = "[object Map]", i = "[object Object]", r = "[object Promise]", a = "[object Set]", f = "[object WeakMap]", b = "[object DataView]", h = /[\\^$.*+?()[\]{}|]/g, O = /^\[object .+?Constructor\]$/, Q = typeof w == "object" && w && w.Object === Object && w, U = typeof self == "object" && self && self.Object === Object && self, m = Q || U || Function("return this")(), L = s && !s.nodeType && s, V = L && !0 && o && !o.nodeType && o, Y = V && V.exports === L;
13
+ function Z(t, e) {
14
+ return t == null ? void 0 : t[e];
15
+ }
16
+ function v(t) {
17
+ var e = !1;
18
+ if (t != null && typeof t.toString != "function")
19
+ try {
20
+ e = !!(t + "");
21
+ } catch {
22
+ }
23
+ return e;
24
+ }
25
+ function tt(t, e) {
26
+ return function(g) {
27
+ return t(e(g));
28
+ };
29
+ }
30
+ var rt = Function.prototype, S = Object.prototype, P = m["__core-js_shared__"], G = (function() {
31
+ var t = /[^.]+$/.exec(P && P.keys && P.keys.IE_PROTO || "");
32
+ return t ? "Symbol(src)_1." + t : "";
33
+ })(), K = rt.toString, x = S.hasOwnProperty, T = S.toString, et = RegExp(
34
+ "^" + K.call(x).replace(h, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
35
+ ), N = Y ? m.Buffer : void 0, $ = S.propertyIsEnumerable, nt = N ? N.isBuffer : void 0, ot = tt(Object.keys, Object), _ = C(m, "DataView"), M = C(m, "Map"), F = C(m, "Promise"), k = C(m, "Set"), I = C(m, "WeakMap"), st = !$.call({ valueOf: 1 }, "valueOf"), it = y(_), ct = y(M), at = y(F), ft = y(k), ut = y(I);
36
+ function bt(t) {
37
+ return T.call(t);
38
+ }
39
+ function gt(t) {
40
+ if (!W(t) || pt(t))
41
+ return !1;
42
+ var e = R(t) || v(t) ? et : O;
43
+ return e.test(y(t));
44
+ }
45
+ function C(t, e) {
46
+ var g = Z(t, e);
47
+ return gt(g) ? g : void 0;
48
+ }
49
+ var j = bt;
50
+ (_ && j(new _(new ArrayBuffer(1))) != b || M && j(new M()) != c || F && j(F.resolve()) != r || k && j(new k()) != a || I && j(new I()) != f) && (j = function(t) {
51
+ var e = T.call(t), g = e == i ? t.constructor : void 0, H = g ? y(g) : void 0;
52
+ if (H)
53
+ switch (H) {
54
+ case it:
55
+ return b;
56
+ case ct:
57
+ return c;
58
+ case at:
59
+ return r;
60
+ case ft:
61
+ return a;
62
+ case ut:
63
+ return f;
64
+ }
65
+ return e;
66
+ });
67
+ function pt(t) {
68
+ return !!G && G in t;
69
+ }
70
+ function lt(t) {
71
+ var e = t && t.constructor, g = typeof e == "function" && e.prototype || S;
72
+ return t === g;
73
+ }
74
+ function y(t) {
75
+ if (t != null) {
76
+ try {
77
+ return K.call(t);
78
+ } catch {
79
+ }
80
+ try {
81
+ return t + "";
82
+ } catch {
83
+ }
84
+ }
85
+ return "";
86
+ }
87
+ function mt(t) {
88
+ return yt(t) && x.call(t, "callee") && (!$.call(t, "callee") || T.call(t) == u);
89
+ }
90
+ var jt = Array.isArray;
91
+ function q(t) {
92
+ return t != null && Ot(t.length) && !R(t);
93
+ }
94
+ function yt(t) {
95
+ return Ct(t) && q(t);
96
+ }
97
+ var dt = nt || Et;
98
+ function ht(t) {
99
+ if (q(t) && (jt(t) || typeof t == "string" || typeof t.splice == "function" || dt(t) || mt(t)))
100
+ return !t.length;
101
+ var e = j(t);
102
+ if (e == c || e == a)
103
+ return !t.size;
104
+ if (st || lt(t))
105
+ return !ot(t).length;
106
+ for (var g in t)
107
+ if (x.call(t, g))
108
+ return !1;
109
+ return !0;
110
+ }
111
+ function R(t) {
112
+ var e = W(t) ? T.call(t) : "";
113
+ return e == p || e == l;
114
+ }
115
+ function Ot(t) {
116
+ return typeof t == "number" && t > -1 && t % 1 == 0 && t <= n;
117
+ }
118
+ function W(t) {
119
+ var e = typeof t;
120
+ return !!t && (e == "object" || e == "function");
121
+ }
122
+ function Ct(t) {
123
+ return !!t && typeof t == "object";
124
+ }
125
+ function Et() {
126
+ return !1;
127
+ }
128
+ o.exports = ht;
129
+ })(E, E.exports)), E.exports;
130
+ }
131
+ var xt = Pt();
132
+ const J = /* @__PURE__ */ St(xt), Bt = ({
133
+ key: o,
134
+ columns: s = []
135
+ }) => {
136
+ const { storedColumns: n, setColumns: u } = At();
137
+ B(() => {
138
+ if (J(A(n, o)) && !J(s)) {
139
+ const i = {};
140
+ s.forEach((r) => {
141
+ Object.assign(i, { [r.key]: !!r.hidden });
142
+ }), u({
143
+ ...n,
144
+ [o]: i
145
+ });
146
+ }
147
+ }, [o, s, n, u]);
148
+ const p = Tt(() => {
149
+ const i = A(n, o, {});
150
+ return s.filter((r) => r.type !== "action").map((r) => {
151
+ const { hidden: a, ...f } = r;
152
+ return {
153
+ ...f,
154
+ hidden: A(i, r.key, !!a)
155
+ };
156
+ });
157
+ }, [o, n, s]), l = d(
158
+ (i, r) => {
159
+ const a = A(n, o, {});
160
+ Object.assign(a, { [i.key]: r }), u({
161
+ ...n,
162
+ [o]: a
163
+ });
164
+ },
165
+ [o, u, n]
166
+ ), c = d(() => {
167
+ const i = {};
168
+ s.forEach((r) => {
169
+ Object.assign(i, { [r.key]: !!r.hidden });
170
+ }), u({
171
+ ...n,
172
+ [o]: i
173
+ });
174
+ }, [o, u, n, s]);
175
+ return {
176
+ formattedColumns: p,
177
+ handleColumnsChange: l,
178
+ resetColumns: c
179
+ };
180
+ }, Lt = ({
181
+ rows: o = [],
182
+ defaultSelectedRows: s
183
+ }) => {
184
+ const [n, u] = X(), p = d(
185
+ (r, a) => {
186
+ u((f) => {
187
+ const b = o.map((O) => O[r]) || [], h = (f == null ? void 0 : f.filter((O) => !b.includes(O))) || [];
188
+ return a ? [...h, ...b] : h;
189
+ });
190
+ },
191
+ [o]
192
+ );
193
+ B(() => {
194
+ s && u(
195
+ (r) => wt(r, s) ? r : s
196
+ );
197
+ }, [s]);
198
+ const l = d(
199
+ (r, a) => {
200
+ u((f) => {
201
+ const b = f || [];
202
+ return a ? [...b, r] : b.filter((h) => h !== r);
203
+ });
204
+ },
205
+ []
206
+ ), c = d(
207
+ (r) => !!(n != null && n.includes(r)),
208
+ [n]
209
+ ), i = d(
210
+ (r) => {
211
+ const a = o.map((b) => b[r]) || [];
212
+ let f = 0;
213
+ for (const b of a)
214
+ n != null && n.includes(b) && f++;
215
+ return a.length === f ? !0 : f ? "indeterminate" : !1;
216
+ },
217
+ [n, o]
218
+ );
219
+ return {
220
+ selectedRows: n,
221
+ isRowSelected: c,
222
+ isAllRowsSelected: i,
223
+ handleSelectAllRows: p,
224
+ handleSelectRow: l
225
+ };
226
+ }, Vt = ({
227
+ sortField: o,
228
+ sortOrder: s,
229
+ onSortOrderChange: n
230
+ }) => {
231
+ const [u, p] = X();
232
+ B(() => {
233
+ o && p(
234
+ (c) => (c == null ? void 0 : c.sortField) === s && (c == null ? void 0 : c.sortOrder) === s ? c : {
235
+ sortField: o,
236
+ sortOrder: s || void 0
237
+ }
238
+ );
239
+ }, [o, s]);
240
+ const l = d(
241
+ (c) => {
242
+ p((i) => {
243
+ const a = (i == null ? void 0 : i.sortField) === c ? (i == null ? void 0 : i.sortOrder) === D.ASC ? D.DESC : void 0 : D.ASC, f = {
244
+ sortField: a ? c : void 0,
245
+ sortOrder: a
246
+ };
247
+ return n && n(f), f;
248
+ });
249
+ },
250
+ [n]
251
+ );
252
+ return {
253
+ sortObject: u,
254
+ handleSort: l
255
+ };
256
+ };
257
+ export {
258
+ Lt as a,
259
+ Bt as b,
260
+ J as i,
261
+ Vt as u
262
+ };
263
+ //# sourceMappingURL=useSortable-8RrwFw05.es.js.map