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
@@ -1,18 +0,0 @@
1
- import { l as s } from "./lodash-CRDOWzbs.es.js";
2
- import { useEffect as f } from "react";
3
- import { useForm as n } from "react-hook-form";
4
- const u = ({ params: t }) => {
5
- const o = n({ mode: "onChange" });
6
- return f(() => {
7
- s.entries(t || {}).forEach(([e, r]) => {
8
- /[[\]]$/g.test(e) && !(r instanceof Array) ? o.setValue(e, [r]) : o.setValue(e, r);
9
- });
10
- }, [t, o]), {
11
- params: t,
12
- form: o
13
- };
14
- };
15
- export {
16
- u
17
- };
18
- //# sourceMappingURL=useFilter-C_K_3fQu.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFilter-C_K_3fQu.es.js","sources":["../../src/hooks/useFilter.ts"],"sourcesContent":["import { entries } from 'lodash';\nimport { 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 props.params - Key-value pairs to set as form values.\n * @returns Object containing the passed params and the form instance.\n */\nexport const useFilter = ({ params }: UseFilterProps) => {\n const form = useForm({ mode: 'onChange' });\n\n useEffect(() => {\n 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","entries","key","value"],"mappings":";;;AAmBO,MAAMA,IAAY,CAAC,EAAE,QAAAC,QAA6B;AACvD,QAAMC,IAAOC,EAAQ,EAAE,MAAM,YAAY;AAEzC,SAAAC,EAAU,MAAM;AACdC,IAAAA,EAAAA,QAAQJ,KAAU,EAAE,EAAE,QAAQ,CAAC,CAACK,GAAKC,CAAK,MAAM;AAC9C,MAAI,UAAU,KAAKD,CAAG,KAAK,EAAEC,aAAiB,SAC5CL,EAAK,SAASI,GAAK,CAACC,CAAK,CAAC,IAE1BL,EAAK,SAASI,GAAKC,CAAK;AAAA,IAE5B,CAAC;AAAA,EACH,GAAG,CAACN,GAAQC,CAAI,CAAC,GAEV;AAAA,IACL,QAAAD;AAAA,IACA,MAAAC;AAAA,EAAA;AAEJ;"}
@@ -1,2 +0,0 @@
1
- "use strict";const o=require("./lodash-BjH0kD7j.cjs.js"),n=require("react"),c=require("react-hook-form"),i=({params:t})=>{const e=c.useForm({mode:"onChange"});return n.useEffect(()=>{o.lodashExports.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=i;
2
- //# sourceMappingURL=useFilter-CsOF1_hM.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFilter-CsOF1_hM.cjs.js","sources":["../../src/hooks/useFilter.ts"],"sourcesContent":["import { entries } from 'lodash';\nimport { 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 props.params - Key-value pairs to set as form values.\n * @returns Object containing the passed params and the form instance.\n */\nexport const useFilter = ({ params }: UseFilterProps) => {\n const form = useForm({ mode: 'onChange' });\n\n useEffect(() => {\n 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","entries","key","value"],"mappings":"yGAmBaA,EAAY,CAAC,CAAE,OAAAC,KAA6B,CACvD,MAAMC,EAAOC,EAAAA,QAAQ,CAAE,KAAM,WAAY,EAEzCC,OAAAA,EAAAA,UAAU,IAAM,CACdC,EAAAA,cAAAA,QAAQJ,GAAU,EAAE,EAAE,QAAQ,CAAC,CAACK,EAAKC,CAAK,IAAM,CAC1C,UAAU,KAAKD,CAAG,GAAK,EAAEC,aAAiB,OAC5CL,EAAK,SAASI,EAAK,CAACC,CAAK,CAAC,EAE1BL,EAAK,SAASI,EAAKC,CAAK,CAE5B,CAAC,CACH,EAAG,CAACN,EAAQC,CAAI,CAAC,EAEV,CACL,OAAAD,EACA,KAAAC,CAAA,CAEJ"}
@@ -1,2 +0,0 @@
1
- "use strict";const i=require("./lodash-BjH0kD7j.cjs.js"),c=require("react"),m=require("./useColumnsStore-BGNUm5Vi.cjs.js"),f=require("./SortOrder-81BrXp3i.cjs.js"),O=({key:o,columns:e=[]})=>{const{storedColumns:t,setColumns:a}=m.useColumnsStore();c.useEffect(()=>{if(i.lodashExports.isEmpty(i.lodashExports.get(t,o))&&!i.lodashExports.isEmpty(e)){const n={};e.forEach(s=>{i.lodashExports.set(n,s.key,!!s.hidden)}),a({...t,[o]:n})}},[o,e,t,a]);const h=c.useMemo(()=>{const n=i.lodashExports.get(t,o,{});return e.filter(s=>s.type!=="action").map(s=>{const{hidden:u,...l}=s;return{...l,hidden:i.lodashExports.get(n,s.key,!!u)}})},[o,t,e]),C=c.useCallback((n,s)=>{const u=i.lodashExports.get(t,o,{});i.lodashExports.set(u,n.key,s),a({...t,[o]:u})},[o,a,t]),r=c.useCallback(()=>{const n={};e.forEach(s=>{i.lodashExports.set(n,s.key,!!s.hidden)}),a({...t,[o]:n})},[o,a,t,e]);return{formattedColumns:h,handleColumnsChange:C,resetColumns:r}},x=({rows:o=[],defaultSelectedRows:e})=>{const[t,a]=c.useState(),h=c.useCallback((s,u)=>{a(l=>{const d=o.map(b=>b[s])||[],E=(l==null?void 0:l.filter(b=>!d.includes(b)))||[];return u?[...E,...d]:E})},[o]);c.useEffect(()=>{e&&a(s=>i.lodashExports.isEqual(s,e)?s:e)},[e]);const C=c.useCallback((s,u)=>{a(l=>{const d=l||[];return u?[...d,s]:d.filter(E=>E!==s)})},[]),r=c.useCallback(s=>!!(t!=null&&t.includes(s)),[t]),n=c.useCallback(s=>{const u=o.map(d=>d[s])||[];let l=0;for(const d of u)t!=null&&t.includes(d)&&l++;return u.length===l?!0:l?"indeterminate":!1},[t,o]);return{selectedRows:t,isRowSelected:r,isAllRowsSelected:n,handleSelectAllRows:h,handleSelectRow:C}},g=({sortField:o,sortOrder:e,onSortOrderChange:t})=>{const[a,h]=c.useState();c.useEffect(()=>{o&&h(r=>(r==null?void 0:r.sortField)===e&&(r==null?void 0:r.sortOrder)===e?r:{sortField:o,sortOrder:e||void 0})},[o,e]);const C=c.useCallback(r=>{h(n=>{const u=(n==null?void 0:n.sortField)===r?(n==null?void 0:n.sortOrder)===f.SortOrder.ASC?f.SortOrder.DESC:void 0:f.SortOrder.ASC,l={sortField:u?r:void 0,sortOrder:u};return t&&t(l),l})},[t]);return{sortObject:a,handleSort:C}};exports.useColumns=O;exports.useDataTable=x;exports.useSortable=g;
2
- //# sourceMappingURL=useSortable-B3LF1tg8.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSortable-B3LF1tg8.cjs.js","sources":["../../src/hooks/useColumns.ts","../../src/hooks/useDataTable.ts","../../src/hooks/useSortable.ts"],"sourcesContent":["import { get, isEmpty, set } from 'lodash';\nimport { useCallback, useEffect, useMemo } from 'react';\nimport { useColumnsStore } from '../stores';\nimport type { ColumnType } from '../types';\n\n/**\n * Props for the useColumns hook.\n * @template TData - The type of data associated with the columns.\n */\nexport interface UseColumnsProps<TData> {\n /** Unique key to identify the table for persisting column state. */\n key: string;\n /** Array of column definitions. */\n columns: ColumnType<TData>[];\n}\n\n/**\n * useColumns manages visibility of table columns using a persisted store.\n * Returns formatted columns and helpers to toggle/reset visibility.\n *\n * @template TData - Row data type.\n * @param props.key - Unique key for storing visibility per table.\n * @param props.columns - Original column definitions.\n */\nexport const useColumns = <TData>({\n key,\n columns = [],\n}: UseColumnsProps<TData>) => {\n const { storedColumns, setColumns } = useColumnsStore();\n\n useEffect(() => {\n if (isEmpty(get(storedColumns, key)) && !isEmpty(columns)) {\n const columnsObj = {};\n columns.forEach((column) => {\n set(columnsObj, column.key, !!column.hidden);\n });\n setColumns({\n ...storedColumns,\n [key]: columnsObj,\n });\n }\n }, [key, columns, storedColumns, setColumns]);\n\n const formattedColumns = useMemo(() => {\n const columnsObj = get(storedColumns, key, {});\n\n return columns\n .filter((column) => column.type !== 'action')\n .map((column) => {\n const { hidden, ...rest } = column;\n return {\n ...rest,\n hidden: get(columnsObj, column.key, !!hidden),\n };\n });\n }, [key, storedColumns, columns]);\n\n const handleColumnsChange = useCallback(\n (column: ColumnType<TData>, value: boolean) => {\n const columnsObj = get(storedColumns, key, {});\n set(columnsObj, column.key, value);\n\n setColumns({\n ...storedColumns,\n [key]: columnsObj,\n });\n },\n [key, setColumns, storedColumns]\n );\n\n const resetColumns = useCallback(() => {\n const columnsObj: Record<string, boolean> = {};\n columns.forEach((column) => {\n set(columnsObj, column.key, !!column.hidden);\n });\n\n setColumns({\n ...storedColumns,\n [key]: columnsObj,\n });\n }, [key, setColumns, storedColumns, columns]);\n\n return {\n formattedColumns,\n handleColumnsChange,\n resetColumns,\n };\n};\n","import type { CheckedState } from '@radix-ui/react-checkbox';\nimport { isEqual } from 'lodash';\nimport { useCallback, useEffect, useState } from 'react';\n\n/**\n * Props for the useDataTable hook.\n * @template TData - The type of the data items.\n */\nexport interface UseDataTableProps<TData> {\n /** Array of data rows. */\n rows?: TData[];\n /** Array of initially selected row keys. */\n defaultSelectedRows?: TData[keyof TData][];\n}\n\n/**\n * useDataTable manages row selection state for data tables.\n * Provides helpers to select all on current page, select one, and query selection.\n *\n * @template TData - Row data type.\n * @param props.rows - Current rows rendered on the page.\n * @param props.defaultSelectedRows - Pre-selected row keys.\n */\nexport const useDataTable = <TData>({\n rows = [],\n defaultSelectedRows,\n}: UseDataTableProps<TData>) => {\n const [selectedRows, setSelectedRows] = useState<TData[keyof TData][]>();\n\n const handleSelectAllRows = useCallback(\n (rowKey: keyof TData, checked: boolean) => {\n setSelectedRows((oldSelectedRows) => {\n const currentPageRowKeys = rows.map((item) => item[rowKey]) || [];\n const otherPagesSelected =\n oldSelectedRows?.filter((key) => !currentPageRowKeys.includes(key)) ||\n [];\n\n if (checked) {\n return [...otherPagesSelected, ...currentPageRowKeys];\n } else {\n return otherPagesSelected;\n }\n });\n },\n [rows]\n );\n\n useEffect(() => {\n if (defaultSelectedRows) {\n setSelectedRows((prevSelectedRows) =>\n isEqual(prevSelectedRows, defaultSelectedRows)\n ? prevSelectedRows\n : defaultSelectedRows\n );\n }\n }, [defaultSelectedRows]);\n\n const handleSelectRow = useCallback(\n (key: TData[keyof TData], checked: boolean) => {\n setSelectedRows((oldSelectedRows) => {\n const oldRows = oldSelectedRows || [];\n if (checked) {\n return [...oldRows, key];\n } else {\n return oldRows.filter((rowKey) => rowKey !== key);\n }\n });\n },\n []\n );\n\n const isRowSelected = useCallback(\n (key: TData[keyof TData]) => {\n return !!selectedRows?.includes(key);\n },\n [selectedRows]\n );\n\n const isAllRowsSelected = useCallback(\n (rowKey: keyof TData): CheckedState => {\n const currentPageRowKeys = rows.map((item) => item[rowKey]) || [];\n let selectedRowsCountInPage = 0;\n for (const key of currentPageRowKeys) {\n if (selectedRows?.includes(key)) {\n selectedRowsCountInPage++;\n }\n }\n return currentPageRowKeys.length === selectedRowsCountInPage\n ? true\n : selectedRowsCountInPage\n ? 'indeterminate'\n : false;\n },\n [selectedRows, rows]\n );\n\n return {\n selectedRows,\n isRowSelected,\n isAllRowsSelected,\n handleSelectAllRows,\n handleSelectRow,\n };\n};\n","import { useCallback, useEffect, useState } from 'react';\nimport { SortOrder } from '../enums';\n\nexport interface UseSortableProps<TData> {\n sortField?: keyof TData;\n sortOrder?: SortOrder;\n onSortOrderChange?: (\n newSortOrder: Omit<UseSortableProps<TData>, 'onSortOrderChange'>\n ) => void;\n}\n\n/**\n * useSortable manages sort field and order for tables and lists.\n * Cycles through ASC -> DESC -> none for a given field and emits changes.\n *\n * @template TData - Row data type.\n * @param props.sortField - Current sorted field.\n * @param props.sortOrder - Current sort order.\n * @param props.onSortOrderChange - Callback with new sort state.\n */\nexport const useSortable = <TData>({\n sortField,\n sortOrder,\n onSortOrderChange,\n}: UseSortableProps<TData>) => {\n const [sortObject, setSortObject] = useState<{\n sortField?: keyof TData;\n sortOrder?: SortOrder;\n }>();\n\n useEffect(() => {\n if (sortField) {\n setSortObject((prevState) =>\n prevState?.sortField === sortOrder && prevState?.sortOrder === sortOrder\n ? prevState\n : {\n sortField,\n sortOrder: sortOrder || undefined,\n }\n );\n }\n }, [sortField, sortOrder]);\n\n const handleSort = useCallback(\n (field: keyof TData) => {\n setSortObject((prev) => {\n const isSameField = prev?.sortField === field;\n const newSortOrder = isSameField\n ? prev?.sortOrder === SortOrder.ASC\n ? SortOrder.DESC\n : undefined\n : SortOrder.ASC;\n\n const newSortObject = {\n sortField: newSortOrder ? field : undefined,\n sortOrder: newSortOrder,\n };\n\n if (onSortOrderChange) {\n onSortOrderChange(newSortObject);\n }\n return newSortObject;\n });\n },\n [onSortOrderChange]\n );\n\n return {\n sortObject,\n handleSort,\n };\n};\n"],"names":["useColumns","key","columns","storedColumns","setColumns","useColumnsStore","useEffect","isEmpty","get","columnsObj","column","set","formattedColumns","useMemo","hidden","rest","handleColumnsChange","useCallback","value","resetColumns","useDataTable","rows","defaultSelectedRows","selectedRows","setSelectedRows","useState","handleSelectAllRows","rowKey","checked","oldSelectedRows","currentPageRowKeys","item","otherPagesSelected","prevSelectedRows","isEqual","handleSelectRow","oldRows","isRowSelected","isAllRowsSelected","selectedRowsCountInPage","useSortable","sortField","sortOrder","onSortOrderChange","sortObject","setSortObject","prevState","handleSort","field","prev","newSortOrder","SortOrder","newSortObject"],"mappings":"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"}
@@ -1,135 +0,0 @@
1
- import { l as a } from "./lodash-CRDOWzbs.es.js";
2
- import { useEffect as g, useMemo as O, useCallback as m, useState as E } from "react";
3
- import { u as j } from "./useColumnsStore-ByK5r4ZY.es.js";
4
- import { S as C } from "./SortOrder-CwuehjY1.es.js";
5
- const D = ({
6
- key: n,
7
- columns: r = []
8
- }) => {
9
- const { storedColumns: t, setColumns: u } = j();
10
- g(() => {
11
- if (a.isEmpty(a.get(t, n)) && !a.isEmpty(r)) {
12
- const o = {};
13
- r.forEach((s) => {
14
- a.set(o, s.key, !!s.hidden);
15
- }), u({
16
- ...t,
17
- [n]: o
18
- });
19
- }
20
- }, [n, r, t, u]);
21
- const f = O(() => {
22
- const o = a.get(t, n, {});
23
- return r.filter((s) => s.type !== "action").map((s) => {
24
- const { hidden: e, ...c } = s;
25
- return {
26
- ...c,
27
- hidden: a.get(o, s.key, !!e)
28
- };
29
- });
30
- }, [n, t, r]), d = m(
31
- (o, s) => {
32
- const e = a.get(t, n, {});
33
- a.set(e, o.key, s), u({
34
- ...t,
35
- [n]: e
36
- });
37
- },
38
- [n, u, t]
39
- ), i = m(() => {
40
- const o = {};
41
- r.forEach((s) => {
42
- a.set(o, s.key, !!s.hidden);
43
- }), u({
44
- ...t,
45
- [n]: o
46
- });
47
- }, [n, u, t, r]);
48
- return {
49
- formattedColumns: f,
50
- handleColumnsChange: d,
51
- resetColumns: i
52
- };
53
- }, K = ({
54
- rows: n = [],
55
- defaultSelectedRows: r
56
- }) => {
57
- const [t, u] = E(), f = m(
58
- (s, e) => {
59
- u((c) => {
60
- const l = n.map((b) => b[s]) || [], h = (c == null ? void 0 : c.filter((b) => !l.includes(b))) || [];
61
- return e ? [...h, ...l] : h;
62
- });
63
- },
64
- [n]
65
- );
66
- g(() => {
67
- r && u(
68
- (s) => a.isEqual(s, r) ? s : r
69
- );
70
- }, [r]);
71
- const d = m(
72
- (s, e) => {
73
- u((c) => {
74
- const l = c || [];
75
- return e ? [...l, s] : l.filter((h) => h !== s);
76
- });
77
- },
78
- []
79
- ), i = m(
80
- (s) => !!(t != null && t.includes(s)),
81
- [t]
82
- ), o = m(
83
- (s) => {
84
- const e = n.map((l) => l[s]) || [];
85
- let c = 0;
86
- for (const l of e)
87
- t != null && t.includes(l) && c++;
88
- return e.length === c ? !0 : c ? "indeterminate" : !1;
89
- },
90
- [t, n]
91
- );
92
- return {
93
- selectedRows: t,
94
- isRowSelected: i,
95
- isAllRowsSelected: o,
96
- handleSelectAllRows: f,
97
- handleSelectRow: d
98
- };
99
- }, q = ({
100
- sortField: n,
101
- sortOrder: r,
102
- onSortOrderChange: t
103
- }) => {
104
- const [u, f] = E();
105
- g(() => {
106
- n && f(
107
- (i) => (i == null ? void 0 : i.sortField) === r && (i == null ? void 0 : i.sortOrder) === r ? i : {
108
- sortField: n,
109
- sortOrder: r || void 0
110
- }
111
- );
112
- }, [n, r]);
113
- const d = m(
114
- (i) => {
115
- f((o) => {
116
- const e = (o == null ? void 0 : o.sortField) === i ? (o == null ? void 0 : o.sortOrder) === C.ASC ? C.DESC : void 0 : C.ASC, c = {
117
- sortField: e ? i : void 0,
118
- sortOrder: e
119
- };
120
- return t && t(c), c;
121
- });
122
- },
123
- [t]
124
- );
125
- return {
126
- sortObject: u,
127
- handleSort: d
128
- };
129
- };
130
- export {
131
- K as a,
132
- D as b,
133
- q as u
134
- };
135
- //# sourceMappingURL=useSortable-BXNk8Wth.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSortable-BXNk8Wth.es.js","sources":["../../src/hooks/useColumns.ts","../../src/hooks/useDataTable.ts","../../src/hooks/useSortable.ts"],"sourcesContent":["import { get, isEmpty, set } from 'lodash';\nimport { useCallback, useEffect, useMemo } from 'react';\nimport { useColumnsStore } from '../stores';\nimport type { ColumnType } from '../types';\n\n/**\n * Props for the useColumns hook.\n * @template TData - The type of data associated with the columns.\n */\nexport interface UseColumnsProps<TData> {\n /** Unique key to identify the table for persisting column state. */\n key: string;\n /** Array of column definitions. */\n columns: ColumnType<TData>[];\n}\n\n/**\n * useColumns manages visibility of table columns using a persisted store.\n * Returns formatted columns and helpers to toggle/reset visibility.\n *\n * @template TData - Row data type.\n * @param props.key - Unique key for storing visibility per table.\n * @param props.columns - Original column definitions.\n */\nexport const useColumns = <TData>({\n key,\n columns = [],\n}: UseColumnsProps<TData>) => {\n const { storedColumns, setColumns } = useColumnsStore();\n\n useEffect(() => {\n if (isEmpty(get(storedColumns, key)) && !isEmpty(columns)) {\n const columnsObj = {};\n columns.forEach((column) => {\n set(columnsObj, column.key, !!column.hidden);\n });\n setColumns({\n ...storedColumns,\n [key]: columnsObj,\n });\n }\n }, [key, columns, storedColumns, setColumns]);\n\n const formattedColumns = useMemo(() => {\n const columnsObj = get(storedColumns, key, {});\n\n return columns\n .filter((column) => column.type !== 'action')\n .map((column) => {\n const { hidden, ...rest } = column;\n return {\n ...rest,\n hidden: get(columnsObj, column.key, !!hidden),\n };\n });\n }, [key, storedColumns, columns]);\n\n const handleColumnsChange = useCallback(\n (column: ColumnType<TData>, value: boolean) => {\n const columnsObj = get(storedColumns, key, {});\n set(columnsObj, column.key, value);\n\n setColumns({\n ...storedColumns,\n [key]: columnsObj,\n });\n },\n [key, setColumns, storedColumns]\n );\n\n const resetColumns = useCallback(() => {\n const columnsObj: Record<string, boolean> = {};\n columns.forEach((column) => {\n set(columnsObj, column.key, !!column.hidden);\n });\n\n setColumns({\n ...storedColumns,\n [key]: columnsObj,\n });\n }, [key, setColumns, storedColumns, columns]);\n\n return {\n formattedColumns,\n handleColumnsChange,\n resetColumns,\n };\n};\n","import type { CheckedState } from '@radix-ui/react-checkbox';\nimport { isEqual } from 'lodash';\nimport { useCallback, useEffect, useState } from 'react';\n\n/**\n * Props for the useDataTable hook.\n * @template TData - The type of the data items.\n */\nexport interface UseDataTableProps<TData> {\n /** Array of data rows. */\n rows?: TData[];\n /** Array of initially selected row keys. */\n defaultSelectedRows?: TData[keyof TData][];\n}\n\n/**\n * useDataTable manages row selection state for data tables.\n * Provides helpers to select all on current page, select one, and query selection.\n *\n * @template TData - Row data type.\n * @param props.rows - Current rows rendered on the page.\n * @param props.defaultSelectedRows - Pre-selected row keys.\n */\nexport const useDataTable = <TData>({\n rows = [],\n defaultSelectedRows,\n}: UseDataTableProps<TData>) => {\n const [selectedRows, setSelectedRows] = useState<TData[keyof TData][]>();\n\n const handleSelectAllRows = useCallback(\n (rowKey: keyof TData, checked: boolean) => {\n setSelectedRows((oldSelectedRows) => {\n const currentPageRowKeys = rows.map((item) => item[rowKey]) || [];\n const otherPagesSelected =\n oldSelectedRows?.filter((key) => !currentPageRowKeys.includes(key)) ||\n [];\n\n if (checked) {\n return [...otherPagesSelected, ...currentPageRowKeys];\n } else {\n return otherPagesSelected;\n }\n });\n },\n [rows]\n );\n\n useEffect(() => {\n if (defaultSelectedRows) {\n setSelectedRows((prevSelectedRows) =>\n isEqual(prevSelectedRows, defaultSelectedRows)\n ? prevSelectedRows\n : defaultSelectedRows\n );\n }\n }, [defaultSelectedRows]);\n\n const handleSelectRow = useCallback(\n (key: TData[keyof TData], checked: boolean) => {\n setSelectedRows((oldSelectedRows) => {\n const oldRows = oldSelectedRows || [];\n if (checked) {\n return [...oldRows, key];\n } else {\n return oldRows.filter((rowKey) => rowKey !== key);\n }\n });\n },\n []\n );\n\n const isRowSelected = useCallback(\n (key: TData[keyof TData]) => {\n return !!selectedRows?.includes(key);\n },\n [selectedRows]\n );\n\n const isAllRowsSelected = useCallback(\n (rowKey: keyof TData): CheckedState => {\n const currentPageRowKeys = rows.map((item) => item[rowKey]) || [];\n let selectedRowsCountInPage = 0;\n for (const key of currentPageRowKeys) {\n if (selectedRows?.includes(key)) {\n selectedRowsCountInPage++;\n }\n }\n return currentPageRowKeys.length === selectedRowsCountInPage\n ? true\n : selectedRowsCountInPage\n ? 'indeterminate'\n : false;\n },\n [selectedRows, rows]\n );\n\n return {\n selectedRows,\n isRowSelected,\n isAllRowsSelected,\n handleSelectAllRows,\n handleSelectRow,\n };\n};\n","import { useCallback, useEffect, useState } from 'react';\nimport { SortOrder } from '../enums';\n\nexport interface UseSortableProps<TData> {\n sortField?: keyof TData;\n sortOrder?: SortOrder;\n onSortOrderChange?: (\n newSortOrder: Omit<UseSortableProps<TData>, 'onSortOrderChange'>\n ) => void;\n}\n\n/**\n * useSortable manages sort field and order for tables and lists.\n * Cycles through ASC -> DESC -> none for a given field and emits changes.\n *\n * @template TData - Row data type.\n * @param props.sortField - Current sorted field.\n * @param props.sortOrder - Current sort order.\n * @param props.onSortOrderChange - Callback with new sort state.\n */\nexport const useSortable = <TData>({\n sortField,\n sortOrder,\n onSortOrderChange,\n}: UseSortableProps<TData>) => {\n const [sortObject, setSortObject] = useState<{\n sortField?: keyof TData;\n sortOrder?: SortOrder;\n }>();\n\n useEffect(() => {\n if (sortField) {\n setSortObject((prevState) =>\n prevState?.sortField === sortOrder && prevState?.sortOrder === sortOrder\n ? prevState\n : {\n sortField,\n sortOrder: sortOrder || undefined,\n }\n );\n }\n }, [sortField, sortOrder]);\n\n const handleSort = useCallback(\n (field: keyof TData) => {\n setSortObject((prev) => {\n const isSameField = prev?.sortField === field;\n const newSortOrder = isSameField\n ? prev?.sortOrder === SortOrder.ASC\n ? SortOrder.DESC\n : undefined\n : SortOrder.ASC;\n\n const newSortObject = {\n sortField: newSortOrder ? field : undefined,\n sortOrder: newSortOrder,\n };\n\n if (onSortOrderChange) {\n onSortOrderChange(newSortObject);\n }\n return newSortObject;\n });\n },\n [onSortOrderChange]\n );\n\n return {\n sortObject,\n handleSort,\n };\n};\n"],"names":["useColumns","key","columns","storedColumns","setColumns","useColumnsStore","useEffect","isEmpty","get","columnsObj","column","set","formattedColumns","useMemo","hidden","rest","handleColumnsChange","useCallback","value","resetColumns","useDataTable","rows","defaultSelectedRows","selectedRows","setSelectedRows","useState","handleSelectAllRows","rowKey","checked","oldSelectedRows","currentPageRowKeys","item","otherPagesSelected","prevSelectedRows","isEqual","handleSelectRow","oldRows","isRowSelected","isAllRowsSelected","selectedRowsCountInPage","useSortable","sortField","sortOrder","onSortOrderChange","sortObject","setSortObject","prevState","handleSort","field","prev","newSortOrder","SortOrder","newSortObject"],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- export interface ButtonProps {
2
- /** Is this the principal call to action on the page? */
3
- primary?: boolean;
4
- /** What background color to use */
5
- backgroundColor?: string;
6
- /** How large should the button be? */
7
- size?: 'small' | 'medium' | 'large';
8
- /** Button contents */
9
- label: string;
10
- /** Optional click handler */
11
- onClick?: () => void;
12
- }
13
- /** Primary UI component for user interaction */
14
- export declare const Button: ({ primary, size, backgroundColor, label, ...props }: ButtonProps) => import("react/jsx-runtime").JSX.Element;
15
- //# sourceMappingURL=Button.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/stories/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AAEtB,MAAM,WAAW,WAAW;IAC1B,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mCAAmC;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sCAAsC;IACtC,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,gDAAgD;AAChD,eAAO,MAAM,MAAM,GAAI,qDAMpB,WAAW,4CAgBb,CAAC"}
@@ -1,24 +0,0 @@
1
- import { StoryObj } from '@storybook/react-vite';
2
- declare const meta: {
3
- title: string;
4
- component: ({ primary, size, backgroundColor, label, ...props }: import('./Button').ButtonProps) => import("react/jsx-runtime").JSX.Element;
5
- parameters: {
6
- layout: string;
7
- };
8
- tags: string[];
9
- argTypes: {
10
- backgroundColor: {
11
- control: "color";
12
- };
13
- };
14
- args: {
15
- onClick: import('@vitest/spy').Mock<(...args: any[]) => any>;
16
- };
17
- };
18
- export default meta;
19
- type Story = StoryObj<typeof meta>;
20
- export declare const Primary: Story;
21
- export declare const Secondary: Story;
22
- export declare const Large: Story;
23
- export declare const Small: Story;
24
- //# sourceMappingURL=Button.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Button.stories.d.ts","sourceRoot":"","sources":["../../../src/stories/Button.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAO5D,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;CAeqB,CAAC;AAEhC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAGnC,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAIvB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAKnB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAKnB,CAAC"}
@@ -1,12 +0,0 @@
1
- type User = {
2
- name: string;
3
- };
4
- export interface HeaderProps {
5
- user?: User;
6
- onLogin?: () => void;
7
- onLogout?: () => void;
8
- onCreateAccount?: () => void;
9
- }
10
- export declare const Header: ({ user, onLogin, onLogout, onCreateAccount, }: HeaderProps) => import("react/jsx-runtime").JSX.Element;
11
- export {};
12
- //# sourceMappingURL=Header.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../src/stories/Header.tsx"],"names":[],"mappings":"AACA,OAAO,cAAc,CAAC;AAEtB,KAAK,IAAI,GAAG;IACV,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED,eAAO,MAAM,MAAM,GAAI,+CAKpB,WAAW,4CAiDb,CAAC"}
@@ -1,19 +0,0 @@
1
- import { StoryObj } from '@storybook/react-vite';
2
- declare const meta: {
3
- title: string;
4
- component: ({ user, onLogin, onLogout, onCreateAccount, }: import('./Header').HeaderProps) => import("react/jsx-runtime").JSX.Element;
5
- tags: string[];
6
- parameters: {
7
- layout: string;
8
- };
9
- args: {
10
- onLogin: import('@vitest/spy').Mock<(...args: any[]) => any>;
11
- onLogout: import('@vitest/spy').Mock<(...args: any[]) => any>;
12
- onCreateAccount: import('@vitest/spy').Mock<(...args: any[]) => any>;
13
- };
14
- };
15
- export default meta;
16
- type Story = StoryObj<typeof meta>;
17
- export declare const LoggedIn: Story;
18
- export declare const LoggedOut: Story;
19
- //# sourceMappingURL=Header.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Header.stories.d.ts","sourceRoot":"","sources":["../../../src/stories/Header.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAM5D,QAAA,MAAM,IAAI;;;;;;;;;;;;CAcqB,CAAC;AAEhC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAAU,CAAC"}
@@ -1,3 +0,0 @@
1
- import { default as React } from 'react';
2
- export declare const Page: React.FC;
3
- //# sourceMappingURL=Page.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../../../src/stories/Page.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,YAAY,CAAC;AAMpB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAiFxB,CAAC"}
@@ -1,13 +0,0 @@
1
- import { StoryObj } from '@storybook/react-vite';
2
- declare const meta: {
3
- title: string;
4
- component: import('react').FC<{}>;
5
- parameters: {
6
- layout: string;
7
- };
8
- };
9
- export default meta;
10
- type Story = StoryObj<typeof meta>;
11
- export declare const LoggedOut: Story;
12
- export declare const LoggedIn: Story;
13
- //# sourceMappingURL=Page.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Page.stories.d.ts","sourceRoot":"","sources":["../../../src/stories/Page.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAM5D,QAAA,MAAM,IAAI;;;;;;CAOmB,CAAC;AAE9B,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,SAAS,EAAE,KAAU,CAAC;AAGnC,eAAO,MAAM,QAAQ,EAAE,KAWtB,CAAC"}