@tcn/ui-table 2.2.0 → 2.3.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 (217) hide show
  1. package/README.md +1 -1
  2. package/dist/cell.css +1 -0
  3. package/dist/cell.module-WpHnQBVu.js +5 -0
  4. package/dist/cell.module-WpHnQBVu.js.map +1 -0
  5. package/dist/components/cells/data_cell.d.ts +3 -2
  6. package/dist/components/cells/data_cell.d.ts.map +1 -0
  7. package/dist/components/cells/data_cell.js +18 -10
  8. package/dist/components/cells/data_cell.js.map +1 -1
  9. package/dist/components/cells/footer_cell.d.ts +3 -2
  10. package/dist/components/cells/footer_cell.d.ts.map +1 -0
  11. package/dist/components/cells/footer_cell.js +18 -10
  12. package/dist/components/cells/footer_cell.js.map +1 -1
  13. package/dist/components/cells/header_cell.d.ts +3 -2
  14. package/dist/components/cells/header_cell.d.ts.map +1 -0
  15. package/dist/components/cells/header_cell.js +52 -18
  16. package/dist/components/cells/header_cell.js.map +1 -1
  17. package/dist/components/cells/sticky_row_data_cell.d.ts +3 -2
  18. package/dist/components/cells/sticky_row_data_cell.d.ts.map +1 -0
  19. package/dist/components/cells/sticky_row_data_cell.js +26 -11
  20. package/dist/components/cells/sticky_row_data_cell.js.map +1 -1
  21. package/dist/components/cells/sticky_row_fill_cell.d.ts +2 -2
  22. package/dist/components/cells/sticky_row_fill_cell.d.ts.map +1 -0
  23. package/dist/components/cells/sticky_row_fill_cell.js +15 -5
  24. package/dist/components/cells/sticky_row_fill_cell.js.map +1 -1
  25. package/dist/components/global_search.d.ts +2 -2
  26. package/dist/components/global_search.d.ts.map +1 -0
  27. package/dist/components/global_search.js +26 -9
  28. package/dist/components/global_search.js.map +1 -1
  29. package/dist/components/global_search_presenter.d.ts +2 -1
  30. package/dist/components/global_search_presenter.d.ts.map +1 -0
  31. package/dist/components/global_search_presenter.js +20 -18
  32. package/dist/components/global_search_presenter.js.map +1 -1
  33. package/dist/components/table/table.d.ts +3 -2
  34. package/dist/components/table/table.d.ts.map +1 -0
  35. package/dist/components/table/table.js +140 -77
  36. package/dist/components/table/table.js.map +1 -1
  37. package/dist/components/table/table_column.d.ts +1 -1
  38. package/dist/components/table/table_column.d.ts.map +1 -0
  39. package/dist/components/table/table_column.js +6 -5
  40. package/dist/components/table/table_column.js.map +1 -1
  41. package/dist/components/table/table_presenter.d.ts +3 -2
  42. package/dist/components/table/table_presenter.d.ts.map +1 -0
  43. package/dist/components/table/table_presenter.js +45 -62
  44. package/dist/components/table/table_presenter.js.map +1 -1
  45. package/dist/components/table_filter_panel/field_filters/date_field_filter.d.ts +2 -2
  46. package/dist/components/table_filter_panel/field_filters/date_field_filter.d.ts.map +1 -0
  47. package/dist/components/table_filter_panel/field_filters/date_field_filter.js +59 -33
  48. package/dist/components/table_filter_panel/field_filters/date_field_filter.js.map +1 -1
  49. package/dist/components/table_filter_panel/field_filters/date_field_filter_presenter.d.ts +4 -3
  50. package/dist/components/table_filter_panel/field_filters/date_field_filter_presenter.d.ts.map +1 -0
  51. package/dist/components/table_filter_panel/field_filters/date_field_filter_presenter.js +57 -91
  52. package/dist/components/table_filter_panel/field_filters/date_field_filter_presenter.js.map +1 -1
  53. package/dist/components/table_filter_panel/field_filters/field_filter_props.d.ts +1 -0
  54. package/dist/components/table_filter_panel/field_filters/field_filter_props.d.ts.map +1 -0
  55. package/dist/components/table_filter_panel/field_filters/field_filter_strategy.d.ts +1 -0
  56. package/dist/components/table_filter_panel/field_filters/field_filter_strategy.d.ts.map +1 -0
  57. package/dist/components/table_filter_panel/field_filters/mulit_select_field_filter.d.ts +3 -3
  58. package/dist/components/table_filter_panel/field_filters/mulit_select_field_filter.d.ts.map +1 -0
  59. package/dist/components/table_filter_panel/field_filters/mulit_select_field_filter.js +52 -29
  60. package/dist/components/table_filter_panel/field_filters/mulit_select_field_filter.js.map +1 -1
  61. package/dist/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.d.ts +3 -2
  62. package/dist/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.d.ts.map +1 -0
  63. package/dist/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.js +53 -70
  64. package/dist/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.js.map +1 -1
  65. package/dist/components/table_filter_panel/field_filters/number_field_filter.d.ts +3 -3
  66. package/dist/components/table_filter_panel/field_filters/number_field_filter.d.ts.map +1 -0
  67. package/dist/components/table_filter_panel/field_filters/number_field_filter.js +47 -23
  68. package/dist/components/table_filter_panel/field_filters/number_field_filter.js.map +1 -1
  69. package/dist/components/table_filter_panel/field_filters/number_field_filter_presenter.d.ts +5 -4
  70. package/dist/components/table_filter_panel/field_filters/number_field_filter_presenter.d.ts.map +1 -0
  71. package/dist/components/table_filter_panel/field_filters/number_field_filter_presenter.js +53 -58
  72. package/dist/components/table_filter_panel/field_filters/number_field_filter_presenter.js.map +1 -1
  73. package/dist/components/table_filter_panel/field_filters/number_range_field_filter.d.ts +2 -2
  74. package/dist/components/table_filter_panel/field_filters/number_range_field_filter.d.ts.map +1 -0
  75. package/dist/components/table_filter_panel/field_filters/number_range_field_filter.js +61 -31
  76. package/dist/components/table_filter_panel/field_filters/number_range_field_filter.js.map +1 -1
  77. package/dist/components/table_filter_panel/field_filters/number_range_field_filter_presenter.d.ts +4 -3
  78. package/dist/components/table_filter_panel/field_filters/number_range_field_filter_presenter.d.ts.map +1 -0
  79. package/dist/components/table_filter_panel/field_filters/number_range_field_filter_presenter.js +57 -91
  80. package/dist/components/table_filter_panel/field_filters/number_range_field_filter_presenter.js.map +1 -1
  81. package/dist/components/table_filter_panel/field_filters/select_field_filter.d.ts +3 -3
  82. package/dist/components/table_filter_panel/field_filters/select_field_filter.d.ts.map +1 -0
  83. package/dist/components/table_filter_panel/field_filters/select_field_filter.js +49 -24
  84. package/dist/components/table_filter_panel/field_filters/select_field_filter.js.map +1 -1
  85. package/dist/components/table_filter_panel/field_filters/select_field_filter_presenter.d.ts +3 -2
  86. package/dist/components/table_filter_panel/field_filters/select_field_filter_presenter.d.ts.map +1 -0
  87. package/dist/components/table_filter_panel/field_filters/select_field_filter_presenter.js +49 -53
  88. package/dist/components/table_filter_panel/field_filters/select_field_filter_presenter.js.map +1 -1
  89. package/dist/components/table_filter_panel/field_filters/string_field_filter.d.ts +3 -3
  90. package/dist/components/table_filter_panel/field_filters/string_field_filter.d.ts.map +1 -0
  91. package/dist/components/table_filter_panel/field_filters/string_field_filter.js +62 -33
  92. package/dist/components/table_filter_panel/field_filters/string_field_filter.js.map +1 -1
  93. package/dist/components/table_filter_panel/field_filters/string_field_filter_presenter.d.ts +5 -4
  94. package/dist/components/table_filter_panel/field_filters/string_field_filter_presenter.d.ts.map +1 -0
  95. package/dist/components/table_filter_panel/field_filters/string_field_filter_presenter.js +54 -59
  96. package/dist/components/table_filter_panel/field_filters/string_field_filter_presenter.js.map +1 -1
  97. package/dist/components/table_filter_panel/field_filters/use_field_filter_strategy.d.ts +2 -1
  98. package/dist/components/table_filter_panel/field_filters/use_field_filter_strategy.d.ts.map +1 -0
  99. package/dist/components/table_filter_panel/field_filters/use_field_filter_strategy.js +13 -19
  100. package/dist/components/table_filter_panel/field_filters/use_field_filter_strategy.js.map +1 -1
  101. package/dist/components/table_filter_panel/table_filter_panel.d.ts +5 -4
  102. package/dist/components/table_filter_panel/table_filter_panel.d.ts.map +1 -0
  103. package/dist/components/table_filter_panel/table_filter_panel.js +15 -11
  104. package/dist/components/table_filter_panel/table_filter_panel.js.map +1 -1
  105. package/dist/components/table_filter_panel/table_filter_panel_presenter.d.ts +2 -2
  106. package/dist/components/table_filter_panel/table_filter_panel_presenter.d.ts.map +1 -0
  107. package/dist/components/table_filter_panel/table_filter_panel_presenter.js +45 -62
  108. package/dist/components/table_filter_panel/table_filter_panel_presenter.js.map +1 -1
  109. package/dist/components/table_filter_panel/types.d.ts +1 -0
  110. package/dist/components/table_filter_panel/types.d.ts.map +1 -0
  111. package/dist/components/table_filter_panel/types.js +5 -2
  112. package/dist/components/table_filter_panel/types.js.map +1 -1
  113. package/dist/components/table_pager.d.ts +2 -2
  114. package/dist/components/table_pager.d.ts.map +1 -0
  115. package/dist/components/table_pager.js +22 -20
  116. package/dist/components/table_pager.js.map +1 -1
  117. package/dist/index.d.ts +1 -0
  118. package/dist/index.d.ts.map +1 -0
  119. package/dist/index.js +27 -13
  120. package/dist/index.js.map +1 -1
  121. package/dist/table.css +1 -0
  122. package/dist/table_pager.css +1 -0
  123. package/package.json +61 -61
  124. package/src/__stories__/aip_table.stories.tsx +190 -0
  125. package/src/__stories__/auth_provider.tsx +14 -0
  126. package/src/__stories__/demo.stories.tsx +137 -0
  127. package/src/__stories__/sample_data.ts +1398 -0
  128. package/src/__stories__/table.stories.tsx +423 -0
  129. package/src/__tests__/sanity.test.ts +7 -0
  130. package/src/components/cells/data_cell.tsx +25 -0
  131. package/src/components/cells/footer_cell.tsx +25 -0
  132. package/src/components/cells/header_cell.tsx +77 -0
  133. package/src/components/cells/sticky_row_data_cell.tsx +31 -0
  134. package/src/components/cells/sticky_row_fill_cell.tsx +16 -0
  135. package/src/components/global_search.tsx +33 -0
  136. package/src/components/global_search_presenter.ts +24 -0
  137. package/{dist → src}/components/table/table.module.css +3 -2
  138. package/src/components/table/table.tsx +183 -0
  139. package/src/components/table/table_column.tsx +27 -0
  140. package/src/components/table/table_presenter.test.ts +161 -0
  141. package/src/components/table/table_presenter.ts +103 -0
  142. package/src/components/table_filter_panel/field_filters/date_field_filter.tsx +70 -0
  143. package/src/components/table_filter_panel/field_filters/date_field_filter_presenter.test.ts +583 -0
  144. package/src/components/table_filter_panel/field_filters/date_field_filter_presenter.ts +110 -0
  145. package/src/components/table_filter_panel/field_filters/field_filter_props.ts +5 -0
  146. package/src/components/table_filter_panel/field_filters/field_filter_strategy.ts +14 -0
  147. package/src/components/table_filter_panel/field_filters/mulit_select_field_filter.tsx +68 -0
  148. package/src/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.test.ts +444 -0
  149. package/src/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.ts +90 -0
  150. package/src/components/table_filter_panel/field_filters/number_field_filter.tsx +53 -0
  151. package/src/components/table_filter_panel/field_filters/number_field_filter_presenter.test.ts +431 -0
  152. package/src/components/table_filter_panel/field_filters/number_field_filter_presenter.ts +80 -0
  153. package/src/components/table_filter_panel/field_filters/number_range_field_filter.tsx +68 -0
  154. package/src/components/table_filter_panel/field_filters/number_range_field_filter_presenter.test.ts +582 -0
  155. package/src/components/table_filter_panel/field_filters/number_range_field_filter_presenter.ts +110 -0
  156. package/src/components/table_filter_panel/field_filters/select_field_filter.tsx +57 -0
  157. package/src/components/table_filter_panel/field_filters/select_field_filter_presenter.test.ts +365 -0
  158. package/src/components/table_filter_panel/field_filters/select_field_filter_presenter.ts +74 -0
  159. package/src/components/table_filter_panel/field_filters/string_field_filter.tsx +70 -0
  160. package/src/components/table_filter_panel/field_filters/string_field_filter_presenter.test.ts +296 -0
  161. package/src/components/table_filter_panel/field_filters/string_field_filter_presenter.ts +81 -0
  162. package/src/components/table_filter_panel/field_filters/use_field_filter_strategy.tsx +30 -0
  163. package/src/components/table_filter_panel/table_filter_panel.stories.tsx +46 -0
  164. package/src/components/table_filter_panel/table_filter_panel.tsx +26 -0
  165. package/src/components/table_filter_panel/table_filter_panel_presenter.ts +77 -0
  166. package/src/components/table_filter_panel/types.ts +3 -0
  167. package/src/components/table_pager.tsx +39 -0
  168. package/src/index.ts +16 -0
  169. package/tsconfig.json +36 -0
  170. package/types/file_types.d.ts +54 -0
  171. package/types/react_color.d.ts +61 -0
  172. package/dist/__stories__/aip_table.stories.d.ts +0 -5
  173. package/dist/__stories__/aip_table.stories.js +0 -96
  174. package/dist/__stories__/aip_table.stories.js.map +0 -1
  175. package/dist/__stories__/auth_provider.d.ts +0 -4
  176. package/dist/__stories__/auth_provider.js +0 -10
  177. package/dist/__stories__/auth_provider.js.map +0 -1
  178. package/dist/__stories__/demo.stories.d.ts +0 -6
  179. package/dist/__stories__/demo.stories.js +0 -94
  180. package/dist/__stories__/demo.stories.js.map +0 -1
  181. package/dist/__stories__/sample_data.d.ts +0 -36
  182. package/dist/__stories__/sample_data.js +0 -1385
  183. package/dist/__stories__/sample_data.js.map +0 -1
  184. package/dist/__stories__/table.stories.d.ts +0 -12
  185. package/dist/__stories__/table.stories.js +0 -272
  186. package/dist/__stories__/table.stories.js.map +0 -1
  187. package/dist/components/table/table_presenter.test.d.ts +0 -1
  188. package/dist/components/table/table_presenter.test.js +0 -125
  189. package/dist/components/table/table_presenter.test.js.map +0 -1
  190. package/dist/components/table_filter_panel/field_filters/date_field_filter_presenter.test.d.ts +0 -1
  191. package/dist/components/table_filter_panel/field_filters/date_field_filter_presenter.test.js +0 -434
  192. package/dist/components/table_filter_panel/field_filters/date_field_filter_presenter.test.js.map +0 -1
  193. package/dist/components/table_filter_panel/field_filters/field_filter_props.js +0 -2
  194. package/dist/components/table_filter_panel/field_filters/field_filter_props.js.map +0 -1
  195. package/dist/components/table_filter_panel/field_filters/field_filter_strategy.js +0 -2
  196. package/dist/components/table_filter_panel/field_filters/field_filter_strategy.js.map +0 -1
  197. package/dist/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.test.d.ts +0 -1
  198. package/dist/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.test.js +0 -332
  199. package/dist/components/table_filter_panel/field_filters/multi_select_field_filter_presenter.test.js.map +0 -1
  200. package/dist/components/table_filter_panel/field_filters/number_field_filter_presenter.test.d.ts +0 -1
  201. package/dist/components/table_filter_panel/field_filters/number_field_filter_presenter.test.js +0 -347
  202. package/dist/components/table_filter_panel/field_filters/number_field_filter_presenter.test.js.map +0 -1
  203. package/dist/components/table_filter_panel/field_filters/number_range_field_filter_presenter.test.d.ts +0 -1
  204. package/dist/components/table_filter_panel/field_filters/number_range_field_filter_presenter.test.js +0 -452
  205. package/dist/components/table_filter_panel/field_filters/number_range_field_filter_presenter.test.js.map +0 -1
  206. package/dist/components/table_filter_panel/field_filters/select_field_filter_presenter.test.d.ts +0 -1
  207. package/dist/components/table_filter_panel/field_filters/select_field_filter_presenter.test.js +0 -285
  208. package/dist/components/table_filter_panel/field_filters/select_field_filter_presenter.test.js.map +0 -1
  209. package/dist/components/table_filter_panel/field_filters/string_field_filter_presenter.test.d.ts +0 -1
  210. package/dist/components/table_filter_panel/field_filters/string_field_filter_presenter.test.js +0 -232
  211. package/dist/components/table_filter_panel/field_filters/string_field_filter_presenter.test.js.map +0 -1
  212. package/dist/components/table_filter_panel/table_filter_panel.stories.d.ts +0 -6
  213. package/dist/components/table_filter_panel/table_filter_panel.stories.js +0 -25
  214. package/dist/components/table_filter_panel/table_filter_panel.stories.js.map +0 -1
  215. /package/{dist → src}/__stories__/table.module.css +0 -0
  216. /package/{dist → src}/components/cells/cell.module.css +0 -0
  217. /package/{dist → src}/components/table_pager.module.css +0 -0
@@ -1,285 +0,0 @@
1
- import { SelectFieldFilterPresenter } from "./select_field_filter_presenter.js";
2
- import { beforeEach, describe, expect, it, vi } from 'vitest';
3
- describe('SelectFieldFilterPresenter', () => {
4
- let presenter;
5
- let mockFieldRegistry;
6
- beforeEach(() => {
7
- presenter = new SelectFieldFilterPresenter('test_field');
8
- mockFieldRegistry = {
9
- registerFieldFilter: vi.fn(),
10
- unregisterFieldFilter: vi.fn(),
11
- };
12
- });
13
- describe('constructor', () => {
14
- it('should initialize with the correct field name', () => {
15
- const presenter = new SelectFieldFilterPresenter('custom_field');
16
- expect(presenter.getFilterString()).toBe('');
17
- });
18
- it('should initialize with default values', () => {
19
- expect(presenter.getFilterString()).toBe('');
20
- });
21
- });
22
- describe('setValue', () => {
23
- it('should set the value when setValue is called with a string', () => {
24
- presenter.setValue('test_value');
25
- expect(presenter.getFilterString()).toBe('test_field = "test_value"');
26
- });
27
- it('should set the value when setValue is called with a number', () => {
28
- presenter.setValue(123);
29
- expect(presenter.getFilterString()).toBe('test_field = 123');
30
- });
31
- it('should set the value when setValue is called with a boolean', () => {
32
- presenter.setValue(true);
33
- expect(presenter.getFilterString()).toBe('test_field = true');
34
- });
35
- it('should set the value when setValue is called with null', () => {
36
- presenter.setValue('test_value');
37
- presenter.setValue(null);
38
- expect(presenter.getFilterString()).toBe('');
39
- });
40
- it('should trigger onChange handlers when value is set', () => {
41
- const onChangeHandler = vi.fn();
42
- presenter.onChange(onChangeHandler);
43
- presenter.setValue('new_value');
44
- expect(onChangeHandler).toHaveBeenCalledTimes(1);
45
- });
46
- it('should trigger onChange handlers when value is set to null', () => {
47
- const onChangeHandler = vi.fn();
48
- presenter.onChange(onChangeHandler);
49
- presenter.setValue('test_value');
50
- presenter.setValue(null);
51
- expect(onChangeHandler).toHaveBeenCalledTimes(2);
52
- });
53
- });
54
- describe('getFilterString', () => {
55
- it('should return empty string when value is null', () => {
56
- expect(presenter.getFilterString()).toBe('');
57
- });
58
- it('should return empty string when value is set to null', () => {
59
- presenter.setValue('test_value');
60
- presenter.setValue(null);
61
- expect(presenter.getFilterString()).toBe('');
62
- });
63
- it('should return formatted filter string with string value', () => {
64
- presenter.setValue('test_value');
65
- expect(presenter.getFilterString()).toBe('test_field = "test_value"');
66
- });
67
- it('should return formatted filter string with numeric value', () => {
68
- presenter.setValue(123);
69
- expect(presenter.getFilterString()).toBe('test_field = 123');
70
- });
71
- it('should return formatted filter string with boolean value', () => {
72
- presenter.setValue(true);
73
- expect(presenter.getFilterString()).toBe('test_field = true');
74
- });
75
- it('should handle special characters in string values', () => {
76
- presenter.setValue('test"value');
77
- expect(presenter.getFilterString()).toBe('test_field = "test"value"');
78
- });
79
- it('should handle empty string values', () => {
80
- presenter.setValue('');
81
- expect(presenter.getFilterString()).toBe('test_field = ""');
82
- });
83
- });
84
- describe('onChange', () => {
85
- it('should register and return unsubscribe function', () => {
86
- const handler = vi.fn();
87
- const unsubscribe = presenter.onChange(handler);
88
- expect(typeof unsubscribe).toBe('function');
89
- });
90
- it('should call registered handlers when value changes', () => {
91
- const handler1 = vi.fn();
92
- const handler2 = vi.fn();
93
- presenter.onChange(handler1);
94
- presenter.onChange(handler2);
95
- presenter.setValue('new_value');
96
- expect(handler1).toHaveBeenCalledTimes(1);
97
- expect(handler2).toHaveBeenCalledTimes(1);
98
- });
99
- it('should not call unsubscribed handlers', () => {
100
- const handler1 = vi.fn();
101
- const handler2 = vi.fn();
102
- const unsubscribe1 = presenter.onChange(handler1);
103
- presenter.onChange(handler2);
104
- unsubscribe1();
105
- presenter.setValue('new_value');
106
- expect(handler1).not.toHaveBeenCalled();
107
- expect(handler2).toHaveBeenCalledTimes(1);
108
- });
109
- it('should handle multiple subscriptions and unsubscriptions', () => {
110
- const handler1 = vi.fn();
111
- const handler2 = vi.fn();
112
- const handler3 = vi.fn();
113
- const unsubscribe1 = presenter.onChange(handler1);
114
- const unsubscribe2 = presenter.onChange(handler2);
115
- const unsubscribe3 = presenter.onChange(handler3);
116
- unsubscribe2();
117
- presenter.setValue('value1');
118
- expect(handler1).toHaveBeenCalledTimes(1);
119
- expect(handler2).not.toHaveBeenCalled();
120
- expect(handler3).toHaveBeenCalledTimes(1);
121
- unsubscribe1();
122
- unsubscribe3();
123
- presenter.setValue('value2');
124
- expect(handler1).toHaveBeenCalledTimes(1);
125
- expect(handler2).not.toHaveBeenCalled();
126
- expect(handler3).toHaveBeenCalledTimes(1);
127
- });
128
- });
129
- describe('setFieldRegistry', () => {
130
- it('should register the field filter with the registry', () => {
131
- presenter.setFieldRegistry(mockFieldRegistry);
132
- expect(mockFieldRegistry.registerFieldFilter).toHaveBeenCalledWith('test_field', presenter);
133
- });
134
- it('should store the field registry reference', () => {
135
- presenter.setFieldRegistry(mockFieldRegistry);
136
- // This is tested indirectly through the dispose method
137
- presenter.dispose();
138
- expect(mockFieldRegistry.unregisterFieldFilter).toHaveBeenCalledWith('test_field');
139
- });
140
- });
141
- describe('setFilterState', () => {
142
- it('should parse string value from filter AST', () => {
143
- const mockNode = {
144
- name: 'plain-field',
145
- value: 'test_field',
146
- parent: {
147
- name: 'infix-expression',
148
- children: [null, null, { name: 'double-quote-str', value: '"test_value"' }],
149
- },
150
- };
151
- const mockAst = {
152
- findAll: vi.fn().mockReturnValue([mockNode]),
153
- };
154
- presenter.setFilterState(mockAst);
155
- expect(presenter.getFilterString()).toBe('test_field = "test_value"');
156
- });
157
- it('should parse single-quoted string value from filter AST', () => {
158
- const mockNode = {
159
- name: 'plain-field',
160
- value: 'test_field',
161
- parent: {
162
- name: 'infix-expression',
163
- children: [null, null, { name: 'single-quote-string', value: "'test_value'" }],
164
- },
165
- };
166
- const mockAst = {
167
- findAll: vi.fn().mockReturnValue([mockNode]),
168
- };
169
- presenter.setFilterState(mockAst);
170
- expect(presenter.getFilterString()).toBe('test_field = "test_value"');
171
- });
172
- it('should handle no matching field nodes', () => {
173
- const mockAst = {
174
- findAll: vi.fn().mockReturnValue([]),
175
- };
176
- presenter.setFilterState(mockAst);
177
- expect(presenter.getFilterString()).toBe('');
178
- });
179
- it('should handle field nodes without proper parent structure', () => {
180
- const mockNode = {
181
- name: 'plain-field',
182
- value: 'test_field',
183
- parent: null,
184
- };
185
- const mockAst = {
186
- findAll: vi.fn().mockReturnValue([mockNode]),
187
- };
188
- presenter.setFilterState(mockAst);
189
- expect(presenter.getFilterString()).toBe('');
190
- });
191
- it('should handle field nodes with non-infix-expression parent', () => {
192
- const mockNode = {
193
- name: 'plain-field',
194
- value: 'test_field',
195
- parent: {
196
- name: 'other-expression',
197
- children: [null, null, { name: 'double-quote-str', value: '"test_value"' }],
198
- },
199
- };
200
- const mockAst = {
201
- findAll: vi.fn().mockReturnValue([mockNode]),
202
- };
203
- presenter.setFilterState(mockAst);
204
- expect(presenter.getFilterString()).toBe('');
205
- });
206
- it('should handle multiple field nodes and use the first valid one', () => {
207
- const mockNode1 = {
208
- name: 'plain-field',
209
- value: 'test_field',
210
- parent: {
211
- name: 'infix-expression',
212
- children: [null, null, { name: 'double-quote-str', value: '"first_value"' }],
213
- },
214
- };
215
- const mockNode2 = {
216
- name: 'plain-field',
217
- value: 'test_field',
218
- parent: {
219
- name: 'infix-expression',
220
- children: [null, null, { name: 'double-quote-str', value: '"second_value"' }],
221
- },
222
- };
223
- const mockAst = {
224
- findAll: vi.fn().mockReturnValue([mockNode1, mockNode2]),
225
- };
226
- presenter.setFilterState(mockAst);
227
- expect(presenter.getFilterString()).toBe('test_field = "first_value"');
228
- });
229
- it('should handle empty string values', () => {
230
- const mockNode = {
231
- name: 'plain-field',
232
- value: 'test_field',
233
- parent: {
234
- name: 'infix-expression',
235
- children: [null, null, { name: 'double-quote-str', value: '""' }],
236
- },
237
- };
238
- const mockAst = {
239
- findAll: vi.fn().mockReturnValue([mockNode]),
240
- };
241
- presenter.setFilterState(mockAst);
242
- expect(presenter.getFilterString()).toBe('test_field = ""');
243
- });
244
- it('should handle special characters in string values', () => {
245
- const mockNode = {
246
- name: 'plain-field',
247
- value: 'test_field',
248
- parent: {
249
- name: 'infix-expression',
250
- children: [null, null, { name: 'double-quote-str', value: '"test\\"value"' }],
251
- },
252
- };
253
- const mockAst = {
254
- findAll: vi.fn().mockReturnValue([mockNode]),
255
- };
256
- presenter.setFilterState(mockAst);
257
- expect(presenter.getFilterString()).toBe('test_field = "test\\"value"');
258
- });
259
- });
260
- describe('dispose', () => {
261
- it('should unregister field filter from registry', () => {
262
- presenter.setFieldRegistry(mockFieldRegistry);
263
- presenter.dispose();
264
- expect(mockFieldRegistry.unregisterFieldFilter).toHaveBeenCalledWith('test_field');
265
- });
266
- it('should clear onChange handlers', () => {
267
- const handler = vi.fn();
268
- presenter.onChange(handler);
269
- presenter.dispose();
270
- presenter.setValue('value1');
271
- expect(handler).not.toHaveBeenCalled();
272
- });
273
- it('should handle disposal when no registry is set', () => {
274
- expect(() => presenter.dispose()).not.toThrow();
275
- });
276
- });
277
- describe('broadcasts', () => {
278
- it('should provide value broadcast', () => {
279
- expect(presenter.broadcasts).toHaveProperty('value');
280
- expect(typeof presenter.broadcasts.value).toBe('object');
281
- expect(typeof presenter.broadcasts.value.subscribe).toBe('function');
282
- });
283
- });
284
- });
285
- //# sourceMappingURL=select_field_filter_presenter.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"select_field_filter_presenter.test.js","sourceRoot":"","sources":["../../../../src/components/table_filter_panel/field_filters/select_field_filter_presenter.test.ts"],"names":[],"mappings":"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"}
@@ -1,232 +0,0 @@
1
- import { StringFieldFilterPresenter } from "./string_field_filter_presenter.js";
2
- import { beforeEach, describe, expect, it, vi } from 'vitest';
3
- describe('StringFieldFilterPresenter', () => {
4
- let presenter;
5
- let mockFieldRegistry;
6
- beforeEach(() => {
7
- presenter = new StringFieldFilterPresenter('test_field');
8
- mockFieldRegistry = {
9
- registerFieldFilter: vi.fn(),
10
- unregisterFieldFilter: vi.fn(),
11
- };
12
- });
13
- describe('constructor', () => {
14
- it('should initialize with the correct field name', () => {
15
- const presenter = new StringFieldFilterPresenter('custom_field');
16
- expect(presenter.getFilterString()).toBe('');
17
- });
18
- it('should initialize with default values', () => {
19
- expect(presenter.getFilterString()).toBe('');
20
- });
21
- });
22
- describe('setValue', () => {
23
- it('should set the value when setValue is called with a string', () => {
24
- presenter.setValue('test_value');
25
- presenter.setOperator('=');
26
- expect(presenter.getFilterString()).toBe('test_field = "test_value"');
27
- });
28
- it('should set the value when setValue is called with null', () => {
29
- presenter.setValue('test_value');
30
- presenter.setValue(null);
31
- expect(presenter.getFilterString()).toBe('');
32
- });
33
- it('should trigger onChange handlers when value is set', () => {
34
- const onChangeHandler = vi.fn();
35
- presenter.onChange(onChangeHandler);
36
- presenter.setValue('new_value');
37
- expect(onChangeHandler).toHaveBeenCalledTimes(1);
38
- });
39
- });
40
- describe('setOperator', () => {
41
- it('should set the operator when setOperator is called', () => {
42
- presenter.setValue('test_value');
43
- presenter.setOperator('>');
44
- expect(presenter.getFilterString()).toBe('test_field > "test_value"');
45
- });
46
- it('should work with all comparison operators', () => {
47
- const operators = ['>=', '>', '<=', '<', '=', ':', '!='];
48
- presenter.setValue('test_value');
49
- operators.forEach(operator => {
50
- presenter.setOperator(operator);
51
- expect(presenter.getFilterString()).toBe(`test_field ${operator} "test_value"`);
52
- });
53
- });
54
- it('should trigger onChange handlers when operator is set', () => {
55
- const onChangeHandler = vi.fn();
56
- presenter.onChange(onChangeHandler);
57
- presenter.setOperator('>');
58
- expect(onChangeHandler).toHaveBeenCalledTimes(1);
59
- });
60
- });
61
- describe('getFilterString', () => {
62
- it('should return empty string when value is null', () => {
63
- expect(presenter.getFilterString()).toBe('');
64
- });
65
- it('should return empty string when value is set to null', () => {
66
- presenter.setValue('test_value');
67
- presenter.setValue(null);
68
- expect(presenter.getFilterString()).toBe('');
69
- });
70
- it('should return formatted filter string with value and operator', () => {
71
- presenter.setValue('test_value');
72
- presenter.setOperator('=');
73
- expect(presenter.getFilterString()).toBe('test_field = "test_value"');
74
- });
75
- it('should handle special characters in values', () => {
76
- presenter.setValue('test"value');
77
- presenter.setOperator('!=');
78
- expect(presenter.getFilterString()).toBe('test_field != "test\\"value"');
79
- });
80
- });
81
- describe('onChange', () => {
82
- it('should register onChange handler and return unsubscribe function', () => {
83
- const onChangeHandler = vi.fn();
84
- const unsubscribe = presenter.onChange(onChangeHandler);
85
- presenter.setValue('test_value');
86
- expect(onChangeHandler).toHaveBeenCalledTimes(1);
87
- unsubscribe();
88
- presenter.setValue('another_value');
89
- expect(onChangeHandler).toHaveBeenCalledTimes(1); // Should not be called again
90
- });
91
- it('should handle multiple onChange handlers', () => {
92
- const handler1 = vi.fn();
93
- const handler2 = vi.fn();
94
- presenter.onChange(handler1);
95
- presenter.onChange(handler2);
96
- presenter.setValue('test_value');
97
- expect(handler1).toHaveBeenCalledTimes(1);
98
- expect(handler2).toHaveBeenCalledTimes(1);
99
- });
100
- it('should handle removing onChange handlers', () => {
101
- const handler1 = vi.fn();
102
- const handler2 = vi.fn();
103
- const unsubscribe1 = presenter.onChange(handler1);
104
- presenter.onChange(handler2);
105
- unsubscribe1();
106
- presenter.setValue('test_value');
107
- expect(handler1).not.toHaveBeenCalled();
108
- expect(handler2).toHaveBeenCalledTimes(1);
109
- });
110
- });
111
- describe('setFieldRegistry', () => {
112
- it('should register the field filter with the registry', () => {
113
- presenter.setFieldRegistry(mockFieldRegistry);
114
- expect(mockFieldRegistry.registerFieldFilter).toHaveBeenCalledWith('test_field', presenter);
115
- });
116
- it('should store the field registry reference', () => {
117
- presenter.setFieldRegistry(mockFieldRegistry);
118
- // Test that dispose can call unregisterFieldFilter
119
- presenter.dispose();
120
- expect(mockFieldRegistry.unregisterFieldFilter).toHaveBeenCalledWith('test_field');
121
- });
122
- });
123
- describe('setFilterState', () => {
124
- it('should parse filter AST and set operator and value', () => {
125
- // Create a mock AST node structure
126
- const mockAst = {
127
- findAll: vi.fn().mockReturnValue([
128
- {
129
- name: 'plain-field',
130
- value: 'test_field',
131
- parent: {
132
- name: 'infix-expression',
133
- children: [
134
- { name: 'plain-field', value: 'test_field' },
135
- { name: 'operator', value: '=' },
136
- { name: 'string', value: '"test_value"' },
137
- ],
138
- },
139
- },
140
- ]),
141
- };
142
- presenter.setFilterState(mockAst);
143
- expect(presenter.getFilterString()).toBe('test_field = "test_value"');
144
- });
145
- it('should handle case when field is not found in AST', () => {
146
- const mockAst = {
147
- findAll: vi.fn().mockReturnValue([]),
148
- };
149
- presenter.setValue('existing_value');
150
- presenter.setOperator('>');
151
- presenter.setFilterState(mockAst);
152
- // Should not change existing state
153
- expect(presenter.getFilterString()).toBe('test_field > "existing_value"');
154
- });
155
- it('should handle case when field node has no parent', () => {
156
- const mockAst = {
157
- findAll: vi.fn().mockReturnValue([
158
- {
159
- name: 'plain-field',
160
- value: 'test_field',
161
- parent: null,
162
- },
163
- ]),
164
- };
165
- presenter.setValue('existing_value');
166
- presenter.setOperator('>');
167
- presenter.setFilterState(mockAst);
168
- // Should not change existing state
169
- expect(presenter.getFilterString()).toBe('test_field > "existing_value"');
170
- });
171
- it('should extract value without quotes from AST', () => {
172
- const mockAst = {
173
- findAll: vi.fn().mockReturnValue([
174
- {
175
- name: 'plain-field',
176
- value: 'test_field',
177
- parent: {
178
- name: 'infix-expression',
179
- children: [
180
- { name: 'plain-field', value: 'test_field' },
181
- { name: 'operator', value: '!=' },
182
- { name: 'string', value: '"quoted_value"' },
183
- ],
184
- },
185
- },
186
- ]),
187
- };
188
- presenter.setFilterState(mockAst);
189
- expect(presenter.getFilterString()).toBe('test_field != "quoted_value"');
190
- });
191
- });
192
- describe('dispose', () => {
193
- it('should unregister field filter from registry when registry is set', () => {
194
- presenter.setFieldRegistry(mockFieldRegistry);
195
- presenter.dispose();
196
- expect(mockFieldRegistry.unregisterFieldFilter).toHaveBeenCalledWith('test_field');
197
- });
198
- it('should not call unregisterFieldFilter when no registry is set', () => {
199
- presenter.dispose();
200
- expect(mockFieldRegistry.unregisterFieldFilter).not.toHaveBeenCalled();
201
- });
202
- it('should clear onChange handlers', () => {
203
- const onChangeHandler = vi.fn();
204
- presenter.onChange(onChangeHandler);
205
- presenter.dispose();
206
- presenter.setValue('test_value');
207
- expect(onChangeHandler).not.toHaveBeenCalled();
208
- });
209
- });
210
- describe('edge cases and error handling', () => {
211
- it('should handle rapid successive value changes', () => {
212
- const onChangeHandler = vi.fn();
213
- presenter.onChange(onChangeHandler);
214
- presenter.setValue('value1');
215
- presenter.setValue('value2');
216
- presenter.setValue('value3');
217
- expect(onChangeHandler).toHaveBeenCalledTimes(3);
218
- expect(presenter.getFilterString()).toBe('test_field : "value3"');
219
- });
220
- it('should handle rapid successive operator changes', () => {
221
- const onChangeHandler = vi.fn();
222
- presenter.onChange(onChangeHandler);
223
- presenter.setValue('test_value');
224
- presenter.setOperator('=');
225
- presenter.setOperator('>');
226
- presenter.setOperator('!=');
227
- expect(onChangeHandler).toHaveBeenCalledTimes(4); // 1 for value + 3 for operators
228
- expect(presenter.getFilterString()).toBe('test_field != "test_value"');
229
- });
230
- });
231
- });
232
- //# sourceMappingURL=string_field_filter_presenter.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"string_field_filter_presenter.test.js","sourceRoot":"","sources":["../../../../src/components/table_filter_panel/field_filters/string_field_filter_presenter.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- declare const _default: {
3
- title: string;
4
- };
5
- export default _default;
6
- export declare const Demo: () => React.JSX.Element;
@@ -1,25 +0,0 @@
1
- import { StaticDataSource, StaticNumberField, StaticStringField, } from '@tcn/resource-store';
2
- import React, { useState } from 'react';
3
- import { items } from "../../__stories__/sample_data.js";
4
- import { NumberFieldFilter } from "./field_filters/number_field_filter.js";
5
- import { TableFilterPanel } from './table_filter_panel.js';
6
- export default {
7
- title: 'TableFilterPanel',
8
- };
9
- export const Demo = () => {
10
- const [source] = useState(() => {
11
- return new StaticDataSource(items, [
12
- new StaticStringField('name', i => i.name),
13
- new StaticNumberField('age', i => i.age),
14
- new StaticStringField('email', i => i.email),
15
- new StaticStringField('city', i => i.city),
16
- new StaticStringField('country', i => i.country),
17
- new StaticStringField('occupation', i => i.occupation),
18
- new StaticStringField('isActive', i => (i.isActive ? 'Yes' : 'No')),
19
- ]);
20
- });
21
- return (React.createElement("div", { style: { width: '300px' } },
22
- React.createElement(TableFilterPanel, { dataSource: source },
23
- React.createElement(NumberFieldFilter, { fieldName: "age", label: "Age" }))));
24
- };
25
- //# sourceMappingURL=table_filter_panel.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"table_filter_panel.stories.js","sourceRoot":"","sources":["../../../src/components/table_filter_panel/table_filter_panel.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,yCAAuC;AACvD,OAAO,EAAE,iBAAiB,EAAE,+CAA+E;AAC3G,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAa3D,eAAe;IACb,KAAK,EAAE,kBAAkB;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,EAAE;IACvB,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE;QAC7B,OAAO,IAAI,gBAAgB,CAAW,KAAK,EAAE;YAC3C,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1C,IAAI,iBAAiB,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YACxC,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;YAC5C,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1C,IAAI,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YAChD,IAAI,iBAAiB,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;YACtD,IAAI,iBAAiB,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SACpE,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,6BAAK,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;QAC5B,oBAAC,gBAAgB,IAAC,UAAU,EAAE,MAAM;YAClC,oBAAC,iBAAiB,IAAC,SAAS,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,GAAG,CAChC,CACf,CACP,CAAC;AACJ,CAAC,CAAC"}
File without changes
File without changes
File without changes