@furystack/shades-common-components 12.4.0 → 12.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. package/CHANGELOG.md +119 -0
  2. package/esm/components/app-bar-link.spec.js +16 -19
  3. package/esm/components/app-bar-link.spec.js.map +1 -1
  4. package/esm/components/app-bar.spec.js +6 -4
  5. package/esm/components/app-bar.spec.js.map +1 -1
  6. package/esm/components/avatar.spec.js +9 -9
  7. package/esm/components/avatar.spec.js.map +1 -1
  8. package/esm/components/breadcrumb.spec.js +2 -2
  9. package/esm/components/breadcrumb.spec.js.map +1 -1
  10. package/esm/components/button-group.d.ts +32 -0
  11. package/esm/components/button-group.d.ts.map +1 -1
  12. package/esm/components/button-group.js +26 -2
  13. package/esm/components/button-group.js.map +1 -1
  14. package/esm/components/button-group.spec.js +127 -11
  15. package/esm/components/button-group.spec.js.map +1 -1
  16. package/esm/components/button.spec.js +4 -4
  17. package/esm/components/button.spec.js.map +1 -1
  18. package/esm/components/cache-view.spec.js +2 -3
  19. package/esm/components/cache-view.spec.js.map +1 -1
  20. package/esm/components/carousel.spec.js +47 -47
  21. package/esm/components/carousel.spec.js.map +1 -1
  22. package/esm/components/circular-progress.spec.js +2 -2
  23. package/esm/components/command-palette/command-palette-input.spec.js +23 -19
  24. package/esm/components/command-palette/command-palette-input.spec.js.map +1 -1
  25. package/esm/components/command-palette/command-palette-suggestion-list.spec.js +27 -27
  26. package/esm/components/command-palette/command-palette-suggestion-list.spec.js.map +1 -1
  27. package/esm/components/command-palette/index.spec.js +64 -51
  28. package/esm/components/command-palette/index.spec.js.map +1 -1
  29. package/esm/components/context-menu/context-menu.spec.js +33 -33
  30. package/esm/components/context-menu/context-menu.spec.js.map +1 -1
  31. package/esm/components/data-grid/body.spec.js +13 -13
  32. package/esm/components/data-grid/body.spec.js.map +1 -1
  33. package/esm/components/data-grid/data-grid-row.spec.js +8 -8
  34. package/esm/components/data-grid/data-grid-row.spec.js.map +1 -1
  35. package/esm/components/data-grid/data-grid.d.ts +47 -3
  36. package/esm/components/data-grid/data-grid.d.ts.map +1 -1
  37. package/esm/components/data-grid/data-grid.js +8 -11
  38. package/esm/components/data-grid/data-grid.js.map +1 -1
  39. package/esm/components/data-grid/data-grid.spec.js +71 -28
  40. package/esm/components/data-grid/data-grid.spec.js.map +1 -1
  41. package/esm/components/data-grid/filters/boolean-filter.d.ts +12 -0
  42. package/esm/components/data-grid/filters/boolean-filter.d.ts.map +1 -0
  43. package/esm/components/data-grid/filters/boolean-filter.js +27 -0
  44. package/esm/components/data-grid/filters/boolean-filter.js.map +1 -0
  45. package/esm/components/data-grid/filters/boolean-filter.spec.d.ts +2 -0
  46. package/esm/components/data-grid/filters/boolean-filter.spec.d.ts.map +1 -0
  47. package/esm/components/data-grid/filters/boolean-filter.spec.js +114 -0
  48. package/esm/components/data-grid/filters/boolean-filter.spec.js.map +1 -0
  49. package/esm/components/data-grid/filters/date-filter.d.ts +12 -0
  50. package/esm/components/data-grid/filters/date-filter.d.ts.map +1 -0
  51. package/esm/components/data-grid/filters/date-filter.js +109 -0
  52. package/esm/components/data-grid/filters/date-filter.js.map +1 -0
  53. package/esm/components/data-grid/filters/date-filter.spec.d.ts +2 -0
  54. package/esm/components/data-grid/filters/date-filter.spec.d.ts.map +1 -0
  55. package/esm/components/data-grid/filters/date-filter.spec.js +145 -0
  56. package/esm/components/data-grid/filters/date-filter.spec.js.map +1 -0
  57. package/esm/components/data-grid/filters/enum-filter.d.ts +16 -0
  58. package/esm/components/data-grid/filters/enum-filter.d.ts.map +1 -0
  59. package/esm/components/data-grid/filters/enum-filter.js +72 -0
  60. package/esm/components/data-grid/filters/enum-filter.js.map +1 -0
  61. package/esm/components/data-grid/filters/enum-filter.spec.d.ts +2 -0
  62. package/esm/components/data-grid/filters/enum-filter.spec.d.ts.map +1 -0
  63. package/esm/components/data-grid/filters/enum-filter.spec.js +136 -0
  64. package/esm/components/data-grid/filters/enum-filter.spec.js.map +1 -0
  65. package/esm/components/data-grid/filters/filter-dropdown.d.ts +6 -0
  66. package/esm/components/data-grid/filters/filter-dropdown.d.ts.map +1 -0
  67. package/esm/components/data-grid/filters/filter-dropdown.js +41 -0
  68. package/esm/components/data-grid/filters/filter-dropdown.js.map +1 -0
  69. package/esm/components/data-grid/filters/filter-dropdown.spec.d.ts +2 -0
  70. package/esm/components/data-grid/filters/filter-dropdown.spec.d.ts.map +1 -0
  71. package/esm/components/data-grid/filters/filter-dropdown.spec.js +69 -0
  72. package/esm/components/data-grid/filters/filter-dropdown.spec.js.map +1 -0
  73. package/esm/components/data-grid/filters/filter-styles.d.ts +24 -0
  74. package/esm/components/data-grid/filters/filter-styles.d.ts.map +1 -0
  75. package/esm/components/data-grid/filters/filter-styles.js +25 -0
  76. package/esm/components/data-grid/filters/filter-styles.js.map +1 -0
  77. package/esm/components/data-grid/filters/index.d.ts +7 -0
  78. package/esm/components/data-grid/filters/index.d.ts.map +1 -0
  79. package/esm/components/data-grid/filters/index.js +7 -0
  80. package/esm/components/data-grid/filters/index.js.map +1 -0
  81. package/esm/components/data-grid/filters/number-filter.d.ts +12 -0
  82. package/esm/components/data-grid/filters/number-filter.d.ts.map +1 -0
  83. package/esm/components/data-grid/filters/number-filter.js +65 -0
  84. package/esm/components/data-grid/filters/number-filter.js.map +1 -0
  85. package/esm/components/data-grid/filters/number-filter.spec.d.ts +2 -0
  86. package/esm/components/data-grid/filters/number-filter.spec.d.ts.map +1 -0
  87. package/esm/components/data-grid/filters/number-filter.spec.js +142 -0
  88. package/esm/components/data-grid/filters/number-filter.spec.js.map +1 -0
  89. package/esm/components/data-grid/filters/string-filter.d.ts +12 -0
  90. package/esm/components/data-grid/filters/string-filter.d.ts.map +1 -0
  91. package/esm/components/data-grid/filters/string-filter.js +63 -0
  92. package/esm/components/data-grid/filters/string-filter.js.map +1 -0
  93. package/esm/components/data-grid/filters/string-filter.spec.d.ts +2 -0
  94. package/esm/components/data-grid/filters/string-filter.spec.d.ts.map +1 -0
  95. package/esm/components/data-grid/filters/string-filter.spec.js +128 -0
  96. package/esm/components/data-grid/filters/string-filter.spec.js.map +1 -0
  97. package/esm/components/data-grid/footer.d.ts +1 -0
  98. package/esm/components/data-grid/footer.d.ts.map +1 -1
  99. package/esm/components/data-grid/footer.js +24 -16
  100. package/esm/components/data-grid/footer.js.map +1 -1
  101. package/esm/components/data-grid/footer.spec.js +111 -71
  102. package/esm/components/data-grid/footer.spec.js.map +1 -1
  103. package/esm/components/data-grid/header.d.ts +6 -9
  104. package/esm/components/data-grid/header.d.ts.map +1 -1
  105. package/esm/components/data-grid/header.js +51 -117
  106. package/esm/components/data-grid/header.js.map +1 -1
  107. package/esm/components/data-grid/header.spec.js +116 -187
  108. package/esm/components/data-grid/header.spec.js.map +1 -1
  109. package/esm/components/data-grid/index.d.ts +1 -0
  110. package/esm/components/data-grid/index.d.ts.map +1 -1
  111. package/esm/components/data-grid/index.js +1 -0
  112. package/esm/components/data-grid/index.js.map +1 -1
  113. package/esm/components/data-grid/selection-cell.spec.js +8 -8
  114. package/esm/components/data-grid/selection-cell.spec.js.map +1 -1
  115. package/esm/components/drawer/drawer-toggle-button.spec.js +22 -22
  116. package/esm/components/drawer/drawer-toggle-button.spec.js.map +1 -1
  117. package/esm/components/drawer/index.spec.js +36 -36
  118. package/esm/components/drawer/index.spec.js.map +1 -1
  119. package/esm/components/dropdown.spec.js +38 -30
  120. package/esm/components/dropdown.spec.js.map +1 -1
  121. package/esm/components/fab.spec.js +4 -4
  122. package/esm/components/fab.spec.js.map +1 -1
  123. package/esm/components/form.spec.js +37 -37
  124. package/esm/components/form.spec.js.map +1 -1
  125. package/esm/components/grid.d.ts +3 -0
  126. package/esm/components/grid.d.ts.map +1 -1
  127. package/esm/components/grid.js +3 -0
  128. package/esm/components/grid.js.map +1 -1
  129. package/esm/components/grid.spec.js +3 -3
  130. package/esm/components/grid.spec.js.map +1 -1
  131. package/esm/components/image.spec.js +55 -52
  132. package/esm/components/image.spec.js.map +1 -1
  133. package/esm/components/inputs/autocomplete.d.ts +3 -0
  134. package/esm/components/inputs/autocomplete.d.ts.map +1 -1
  135. package/esm/components/inputs/autocomplete.js +3 -0
  136. package/esm/components/inputs/autocomplete.js.map +1 -1
  137. package/esm/components/inputs/autocomplete.spec.js +7 -14
  138. package/esm/components/inputs/autocomplete.spec.js.map +1 -1
  139. package/esm/components/inputs/checkbox.spec.js +22 -22
  140. package/esm/components/inputs/checkbox.spec.js.map +1 -1
  141. package/esm/components/inputs/input-number.spec.js +47 -47
  142. package/esm/components/inputs/input-number.spec.js.map +1 -1
  143. package/esm/components/inputs/input.spec.js +53 -53
  144. package/esm/components/inputs/input.spec.js.map +1 -1
  145. package/esm/components/inputs/radio-group.spec.js +14 -14
  146. package/esm/components/inputs/radio-group.spec.js.map +1 -1
  147. package/esm/components/inputs/radio.spec.js +16 -16
  148. package/esm/components/inputs/radio.spec.js.map +1 -1
  149. package/esm/components/inputs/select.spec.js +74 -74
  150. package/esm/components/inputs/select.spec.js.map +1 -1
  151. package/esm/components/inputs/slider.spec.js +16 -16
  152. package/esm/components/inputs/slider.spec.js.map +1 -1
  153. package/esm/components/inputs/switch.spec.js +24 -24
  154. package/esm/components/inputs/switch.spec.js.map +1 -1
  155. package/esm/components/inputs/text-area.spec.js +17 -17
  156. package/esm/components/inputs/text-area.spec.js.map +1 -1
  157. package/esm/components/linear-progress.spec.js +2 -2
  158. package/esm/components/list/list.d.ts +10 -0
  159. package/esm/components/list/list.d.ts.map +1 -1
  160. package/esm/components/list/list.js +23 -2
  161. package/esm/components/list/list.js.map +1 -1
  162. package/esm/components/list/list.spec.js +137 -36
  163. package/esm/components/list/list.spec.js.map +1 -1
  164. package/esm/components/markdown/markdown-display.spec.js +15 -15
  165. package/esm/components/markdown/markdown-display.spec.js.map +1 -1
  166. package/esm/components/markdown/markdown-editor.spec.js +8 -8
  167. package/esm/components/markdown/markdown-editor.spec.js.map +1 -1
  168. package/esm/components/markdown/markdown-input.d.ts +14 -0
  169. package/esm/components/markdown/markdown-input.d.ts.map +1 -1
  170. package/esm/components/markdown/markdown-input.js +48 -2
  171. package/esm/components/markdown/markdown-input.js.map +1 -1
  172. package/esm/components/markdown/markdown-input.spec.js +114 -17
  173. package/esm/components/markdown/markdown-input.spec.js.map +1 -1
  174. package/esm/components/menu/menu.spec.js +28 -28
  175. package/esm/components/menu/menu.spec.js.map +1 -1
  176. package/esm/components/modal.spec.js +15 -18
  177. package/esm/components/modal.spec.js.map +1 -1
  178. package/esm/components/noty-list.spec.js +25 -23
  179. package/esm/components/noty-list.spec.js.map +1 -1
  180. package/esm/components/page-container/index.spec.js +16 -16
  181. package/esm/components/page-container/index.spec.js.map +1 -1
  182. package/esm/components/page-container/page-header.spec.js +16 -16
  183. package/esm/components/page-container/page-header.spec.js.map +1 -1
  184. package/esm/components/page-layout/index.spec.js +29 -29
  185. package/esm/components/page-layout/index.spec.js.map +1 -1
  186. package/esm/components/paper.spec.js +3 -3
  187. package/esm/components/paper.spec.js.map +1 -1
  188. package/esm/components/rating.spec.js +61 -61
  189. package/esm/components/rating.spec.js.map +1 -1
  190. package/esm/components/skeleton.spec.js +10 -6
  191. package/esm/components/skeleton.spec.js.map +1 -1
  192. package/esm/components/suggest/index.d.ts +10 -2
  193. package/esm/components/suggest/index.d.ts.map +1 -1
  194. package/esm/components/suggest/index.js +21 -1
  195. package/esm/components/suggest/index.js.map +1 -1
  196. package/esm/components/suggest/index.spec.js +50 -0
  197. package/esm/components/suggest/index.spec.js.map +1 -1
  198. package/esm/components/suggest/suggest-input.spec.js +4 -10
  199. package/esm/components/suggest/suggest-input.spec.js.map +1 -1
  200. package/esm/components/tabs.spec.js +30 -30
  201. package/esm/components/tabs.spec.js.map +1 -1
  202. package/esm/components/tree/tree.spec.js +27 -27
  203. package/esm/components/tree/tree.spec.js.map +1 -1
  204. package/esm/components/typography.spec.js +3 -3
  205. package/esm/components/typography.spec.js.map +1 -1
  206. package/esm/components/wizard/index.d.ts +8 -0
  207. package/esm/components/wizard/index.d.ts.map +1 -1
  208. package/esm/components/wizard/index.js +90 -0
  209. package/esm/components/wizard/index.js.map +1 -1
  210. package/esm/components/wizard/index.spec.js +84 -7
  211. package/esm/components/wizard/index.spec.js.map +1 -1
  212. package/esm/utils/promisify-animation.d.ts.map +1 -1
  213. package/esm/utils/promisify-animation.js +3 -0
  214. package/esm/utils/promisify-animation.js.map +1 -1
  215. package/package.json +3 -3
  216. package/src/components/app-bar-link.spec.tsx +16 -19
  217. package/src/components/app-bar.spec.tsx +6 -4
  218. package/src/components/avatar.spec.tsx +9 -9
  219. package/src/components/breadcrumb.spec.tsx +2 -2
  220. package/src/components/button-group.spec.tsx +155 -11
  221. package/src/components/button-group.tsx +49 -2
  222. package/src/components/button.spec.tsx +4 -4
  223. package/src/components/cache-view.spec.tsx +3 -3
  224. package/src/components/carousel.spec.tsx +47 -47
  225. package/src/components/circular-progress.spec.tsx +2 -2
  226. package/src/components/command-palette/command-palette-input.spec.tsx +23 -19
  227. package/src/components/command-palette/command-palette-suggestion-list.spec.tsx +27 -27
  228. package/src/components/command-palette/index.spec.tsx +64 -51
  229. package/src/components/context-menu/context-menu.spec.tsx +33 -33
  230. package/src/components/data-grid/body.spec.tsx +13 -13
  231. package/src/components/data-grid/data-grid-row.spec.tsx +8 -8
  232. package/src/components/data-grid/data-grid.spec.tsx +106 -28
  233. package/src/components/data-grid/data-grid.tsx +57 -13
  234. package/src/components/data-grid/filters/boolean-filter.spec.tsx +142 -0
  235. package/src/components/data-grid/filters/boolean-filter.tsx +45 -0
  236. package/src/components/data-grid/filters/date-filter.spec.tsx +181 -0
  237. package/src/components/data-grid/filters/date-filter.tsx +162 -0
  238. package/src/components/data-grid/filters/enum-filter.spec.tsx +168 -0
  239. package/src/components/data-grid/filters/enum-filter.tsx +119 -0
  240. package/src/components/data-grid/filters/filter-dropdown.spec.tsx +89 -0
  241. package/src/components/data-grid/filters/filter-dropdown.tsx +60 -0
  242. package/src/components/data-grid/filters/filter-styles.ts +26 -0
  243. package/src/components/data-grid/filters/index.ts +6 -0
  244. package/src/components/data-grid/filters/number-filter.spec.tsx +174 -0
  245. package/src/components/data-grid/filters/number-filter.tsx +115 -0
  246. package/src/components/data-grid/filters/string-filter.spec.tsx +157 -0
  247. package/src/components/data-grid/filters/string-filter.tsx +112 -0
  248. package/src/components/data-grid/footer.spec.tsx +130 -74
  249. package/src/components/data-grid/footer.tsx +41 -34
  250. package/src/components/data-grid/header.spec.tsx +128 -212
  251. package/src/components/data-grid/header.tsx +95 -183
  252. package/src/components/data-grid/index.tsx +1 -0
  253. package/src/components/data-grid/selection-cell.spec.tsx +8 -8
  254. package/src/components/drawer/drawer-toggle-button.spec.tsx +22 -22
  255. package/src/components/drawer/index.spec.tsx +36 -36
  256. package/src/components/dropdown.spec.tsx +38 -30
  257. package/src/components/fab.spec.tsx +4 -4
  258. package/src/components/form.spec.tsx +37 -37
  259. package/src/components/grid.spec.tsx +3 -3
  260. package/src/components/grid.tsx +3 -0
  261. package/src/components/image.spec.tsx +55 -52
  262. package/src/components/inputs/autocomplete.spec.tsx +7 -14
  263. package/src/components/inputs/autocomplete.tsx +3 -0
  264. package/src/components/inputs/checkbox.spec.tsx +22 -22
  265. package/src/components/inputs/input-number.spec.tsx +47 -47
  266. package/src/components/inputs/input.spec.tsx +53 -53
  267. package/src/components/inputs/radio-group.spec.tsx +14 -14
  268. package/src/components/inputs/radio.spec.tsx +16 -16
  269. package/src/components/inputs/select.spec.tsx +74 -74
  270. package/src/components/inputs/slider.spec.tsx +16 -16
  271. package/src/components/inputs/switch.spec.tsx +24 -24
  272. package/src/components/inputs/text-area.spec.tsx +17 -17
  273. package/src/components/linear-progress.spec.tsx +2 -2
  274. package/src/components/list/list.spec.tsx +209 -36
  275. package/src/components/list/list.tsx +56 -19
  276. package/src/components/markdown/markdown-display.spec.tsx +15 -15
  277. package/src/components/markdown/markdown-editor.spec.tsx +8 -8
  278. package/src/components/markdown/markdown-input.spec.tsx +159 -17
  279. package/src/components/markdown/markdown-input.tsx +65 -1
  280. package/src/components/menu/menu.spec.tsx +28 -28
  281. package/src/components/modal.spec.tsx +15 -18
  282. package/src/components/noty-list.spec.tsx +25 -23
  283. package/src/components/page-container/index.spec.tsx +16 -16
  284. package/src/components/page-container/page-header.spec.tsx +16 -16
  285. package/src/components/page-layout/index.spec.tsx +29 -29
  286. package/src/components/paper.spec.tsx +3 -3
  287. package/src/components/rating.spec.tsx +61 -61
  288. package/src/components/skeleton.spec.tsx +10 -6
  289. package/src/components/suggest/index.spec.tsx +83 -0
  290. package/src/components/suggest/index.tsx +36 -3
  291. package/src/components/suggest/suggest-input.spec.tsx +4 -10
  292. package/src/components/tabs.spec.tsx +30 -30
  293. package/src/components/tree/tree.spec.tsx +27 -27
  294. package/src/components/typography.spec.tsx +3 -3
  295. package/src/components/wizard/index.spec.tsx +123 -6
  296. package/src/components/wizard/index.tsx +125 -0
  297. package/src/utils/promisify-animation.ts +3 -0
@@ -1,11 +1,13 @@
1
1
  import { Shade, createComponent } from '@furystack/shades';
2
- import { sleepAsync } from '@furystack/utils';
3
- import { collapse, expand } from '../animations.js';
4
- import { Button } from '../button.js';
5
- import { Form } from '../form.js';
2
+ import { ToggleButton } from '../button-group.js';
3
+ import { arrowDown, arrowUp, arrowUpDown, filter as filterIcon } from '../icons/icon-definitions.js';
6
4
  import { Icon } from '../icons/icon.js';
7
- import { arrowDown, arrowUp, arrowUpDown, close as closeIcon, search as searchIcon } from '../icons/icon-definitions.js';
8
- import { Input } from '../inputs/input.js';
5
+ import { BooleanFilter } from './filters/boolean-filter.js';
6
+ import { DateFilter } from './filters/date-filter.js';
7
+ import { EnumFilter } from './filters/enum-filter.js';
8
+ import { FilterDropdown } from './filters/filter-dropdown.js';
9
+ import { NumberFilter } from './filters/number-filter.js';
10
+ import { StringFilter } from './filters/string-filter.js';
9
11
  export const OrderButton = Shade({
10
12
  shadowDomName: 'data-grid-order-button',
11
13
  css: {
@@ -15,7 +17,7 @@ export const OrderButton = Shade({
15
17
  const [findOptions, onFindOptionsChange] = useObservable('findOptions', props.findOptions, {});
16
18
  const currentOrder = Object.keys(findOptions.order || {})[0];
17
19
  const currentOrderDirection = Object.values(findOptions.order || {})[0];
18
- return (createComponent(Button, { title: "Change order", variant: "outlined", color: currentOrder === props.field ? 'info' : undefined, onclick: (ev) => {
20
+ return (createComponent(ToggleButton, { title: "Change order", pressed: currentOrder === props.field, size: "small", value: props.field, onclick: (ev) => {
19
21
  ev.stopPropagation();
20
22
  let newDirection = 'ASC';
21
23
  const newOrder = {};
@@ -28,146 +30,78 @@ export const OrderButton = Shade({
28
30
  order: newOrder,
29
31
  });
30
32
  } }, (currentOrder === props.field &&
31
- (currentOrderDirection === 'ASC' ? (createComponent(Icon, { icon: arrowDown, size: 16 })) : (createComponent(Icon, { icon: arrowUp, size: 16 })))) || createComponent(Icon, { icon: arrowUpDown, size: 16 })));
33
+ (currentOrderDirection === 'ASC' ? (createComponent(Icon, { icon: arrowDown, size: 14 })) : (createComponent(Icon, { icon: arrowUp, size: 14 })))) || createComponent(Icon, { icon: arrowUpDown, size: 14 })));
32
34
  },
33
35
  });
34
- const SearchButton = Shade({
35
- shadowDomName: 'data-grid-search-button',
36
+ const FilterButton = Shade({
37
+ shadowDomName: 'data-grid-filter-button',
36
38
  css: {
37
39
  display: 'inline-block',
38
40
  },
39
41
  render: ({ props, useObservable }) => {
40
- const [findOptions] = useObservable('currentValue', props.findOptions, {
41
- filter: (newValue) => {
42
- return !!newValue.filter?.[props.fieldName];
43
- },
44
- });
45
- const filterValue = findOptions.filter?.[props.fieldName]?.$regex || '';
46
- return (createComponent(Button, { type: "button", title: "Filter", variant: "outlined", color: filterValue ? 'info' : undefined, onclick: props.onclick },
47
- createComponent(Icon, { icon: searchIcon, size: 16 })));
48
- },
49
- });
50
- const SearchForm = Shade({
51
- shadowDomName: 'data-grid-search-form',
52
- css: {
53
- display: 'block',
54
- '& .search-form': {
55
- display: 'flex',
56
- width: '100%',
57
- overflow: 'hidden',
58
- height: '0px',
59
- justifyContent: 'space-around',
60
- opacity: '0',
61
- },
62
- '& .search-form-actions': {
63
- display: 'flex',
64
- width: '64px',
65
- alignItems: 'center',
66
- justifyContent: 'center',
67
- gap: '8px',
68
- },
69
- },
70
- render: ({ props, useObservable }) => {
71
- const [findOptions] = useObservable('currentValue', props.findOptions, {
72
- filter: (newValue, lastValue) => {
73
- const newFilter = newValue.filter?.[props.fieldName];
74
- const lastFilter = lastValue.filter?.[props.fieldName];
75
- return newFilter?.$regex !== lastFilter?.$regex;
76
- },
77
- });
78
- const currentValue = findOptions.filter?.[props.fieldName]?.$regex || '';
79
- return (createComponent(Form, { className: "search-form", validate: (data) => typeof data.searchValue?.length === 'number', onSubmit: ({ searchValue }) => {
80
- props.onSubmit(searchValue);
42
+ const [findOptions] = useObservable('currentValue', props.findOptions);
43
+ const hasActiveFilter = !!findOptions.filter?.[props.field];
44
+ return (createComponent(ToggleButton, { type: "button", title: "Filter", size: "small", value: props.field, pressed: hasActiveFilter, onclick: (ev) => {
45
+ ev.stopPropagation();
46
+ props.onclick();
81
47
  } },
82
- createComponent(Input, { placeholder: props.fieldName, autofocus: true, labelTitle: `${props.fieldName}`, name: "searchValue", value: typeof currentValue === 'string' ? currentValue : '', labelProps: {
83
- style: { padding: '0px 2em' },
84
- } }),
85
- createComponent("div", { className: "search-form-actions" },
86
- createComponent(Button, { type: "reset", variant: "outlined", onclick: (ev) => {
87
- ev.preventDefault();
88
- ev.stopPropagation();
89
- props.onClear();
90
- } },
91
- createComponent(Icon, { icon: closeIcon, size: 16 })),
92
- createComponent(Button, { variant: "outlined", type: "submit" },
93
- createComponent(Icon, { icon: searchIcon, size: 16 })))));
48
+ createComponent(Icon, { icon: filterIcon, size: 14 })));
94
49
  },
95
50
  });
51
+ const renderFilterComponent = (filterConfig, field, findOptions, onClose) => {
52
+ switch (filterConfig.type) {
53
+ case 'number':
54
+ return createComponent(NumberFilter, { field: field, findOptions: findOptions, onClose: onClose });
55
+ case 'boolean':
56
+ return createComponent(BooleanFilter, { field: field, findOptions: findOptions, onClose: onClose });
57
+ case 'enum':
58
+ return createComponent(EnumFilter, { field: field, values: filterConfig.values, findOptions: findOptions, onClose: onClose });
59
+ case 'date':
60
+ return createComponent(DateFilter, { field: field, findOptions: findOptions, onClose: onClose });
61
+ case 'string':
62
+ return createComponent(StringFilter, { field: field, findOptions: findOptions, onClose: onClose });
63
+ default: {
64
+ const _exhaustive = filterConfig;
65
+ throw new Error(`Unknown filter type: ${_exhaustive.type}`);
66
+ }
67
+ }
68
+ };
96
69
  export const DataGridHeader = Shade({
97
70
  shadowDomName: 'data-grid-header',
98
71
  css: {
99
72
  display: 'block',
73
+ position: 'relative',
100
74
  '& .header-content': {
101
75
  display: 'flex',
102
76
  width: '100%',
103
- height: '48px',
77
+ height: '36px',
104
78
  justifyContent: 'space-between',
105
79
  alignItems: 'center',
106
- gap: '12px',
80
+ gap: '8px',
107
81
  overflow: 'hidden',
108
82
  },
109
83
  '& .header-field-name': {
110
- fontWeight: '600',
84
+ overflow: 'hidden',
85
+ textOverflow: 'ellipsis',
86
+ whiteSpace: 'nowrap',
111
87
  },
112
88
  '& .header-controls': {
113
89
  display: 'flex',
114
- justifyContent: 'center',
115
90
  alignItems: 'center',
116
- gap: '4px',
91
+ gap: '2px',
92
+ flexShrink: '0',
117
93
  },
118
94
  },
119
- render: ({ props, useObservable, useState, useRef }) => {
120
- const searchFormRef = useRef('searchForm');
121
- const headerContentRef = useRef('headerContent');
122
- const [, setIsSearchOpened] = useState('isSearchOpened', false);
123
- const openSearch = () => {
124
- setIsSearchOpened(true);
125
- const searchForm = searchFormRef.current?.querySelector('.search-form');
126
- const headerContent = headerContentRef.current;
127
- if (!searchForm || !headerContent)
128
- return;
129
- searchForm.style.display = 'flex';
130
- void expand(searchForm).then(async () => {
131
- await sleepAsync(100);
132
- searchForm.querySelector('input')?.focus();
133
- });
134
- void collapse(headerContent);
135
- };
136
- const closeSearch = () => {
137
- setIsSearchOpened(false);
138
- const searchForm = searchFormRef.current?.querySelector('.search-form');
139
- const headerContent = headerContentRef.current;
140
- if (!searchForm || !headerContent)
141
- return;
142
- void collapse(searchForm);
143
- void expand(headerContent);
144
- };
145
- const [findOptions, setFindOptions] = useObservable('findOptions', props.findOptions);
146
- const updateSearchValue = (value) => {
147
- if (value) {
148
- const newSettings = {
149
- ...findOptions,
150
- filter: {
151
- ...findOptions.filter,
152
- [props.field]: { $regex: value },
153
- },
154
- };
155
- setFindOptions(newSettings);
156
- }
157
- else {
158
- const { [props.field]: _, ...newFilter } = findOptions.filter || {};
159
- setFindOptions({ ...findOptions, filter: newFilter });
160
- }
161
- closeSearch();
162
- };
95
+ render: ({ props, useState }) => {
96
+ const [isFilterOpen, setIsFilterOpen] = useState('isFilterOpen', false);
97
+ const closeFilter = () => setIsFilterOpen(false);
163
98
  return (createComponent(createComponent, null,
164
- createComponent("div", { ref: searchFormRef, style: { display: 'contents' } },
165
- createComponent(SearchForm, { onSubmit: updateSearchValue, onClear: updateSearchValue, fieldName: props.field, findOptions: props.findOptions })),
166
- createComponent("div", { ref: headerContentRef, className: "header-content" },
99
+ createComponent("div", { className: "header-content" },
167
100
  createComponent("div", { className: "header-field-name" }, props.field),
168
101
  createComponent("div", { className: "header-controls" },
169
- createComponent(SearchButton, { onclick: openSearch, findOptions: props.findOptions, fieldName: props.field }),
170
- createComponent(OrderButton, { field: props.field, findOptions: props.findOptions })))));
102
+ props.filterConfig && (createComponent(FilterButton, { onclick: () => setIsFilterOpen(!isFilterOpen), findOptions: props.findOptions, field: props.field })),
103
+ createComponent(OrderButton, { field: props.field, findOptions: props.findOptions }))),
104
+ isFilterOpen && props.filterConfig && (createComponent(FilterDropdown, { onClose: closeFilter }, renderFilterComponent(props.filterConfig, props.field, props.findOptions, closeFilter)))));
171
105
  },
172
106
  });
173
107
  //# sourceMappingURL=header.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"header.js","sourceRoot":"","sources":["../../../src/components/data-grid/header.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"header.js","sourceRoot":"","sources":["../../../src/components/data-grid/header.tsx"],"names":[],"mappings":"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"}