@akinon/ai-modal-table 1.0.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 (185) hide show
  1. package/dist/cjs/__tests__/index.test.d.ts +2 -0
  2. package/dist/cjs/__tests__/index.test.d.ts.map +1 -0
  3. package/dist/cjs/__tests__/index.test.js +82 -0
  4. package/dist/cjs/__tests__/index.test.tsx +94 -0
  5. package/dist/cjs/ai-modal-table/__tests__/index.test.d.ts +2 -0
  6. package/dist/cjs/ai-modal-table/__tests__/index.test.d.ts.map +1 -0
  7. package/dist/cjs/ai-modal-table/__tests__/index.test.js +59 -0
  8. package/dist/cjs/ai-modal-table/__tests__/index.test.tsx +98 -0
  9. package/dist/cjs/ai-modal-table/index.d.ts +4 -0
  10. package/dist/cjs/ai-modal-table/index.d.ts.map +1 -0
  11. package/dist/cjs/ai-modal-table/index.js +54 -0
  12. package/dist/cjs/ai-table/__tests__/index.test.d.ts +2 -0
  13. package/dist/cjs/ai-table/__tests__/index.test.d.ts.map +1 -0
  14. package/dist/cjs/ai-table/__tests__/index.test.js +348 -0
  15. package/dist/cjs/ai-table/__tests__/index.test.tsx +572 -0
  16. package/dist/cjs/ai-table/components/__tests__/content.test.d.ts +2 -0
  17. package/dist/cjs/ai-table/components/__tests__/content.test.d.ts.map +1 -0
  18. package/dist/cjs/ai-table/components/__tests__/content.test.js +1349 -0
  19. package/dist/cjs/ai-table/components/__tests__/content.test.tsx +1637 -0
  20. package/dist/cjs/ai-table/components/__tests__/filters.test.d.ts +2 -0
  21. package/dist/cjs/ai-table/components/__tests__/filters.test.d.ts.map +1 -0
  22. package/dist/cjs/ai-table/components/__tests__/filters.test.js +400 -0
  23. package/dist/cjs/ai-table/components/__tests__/filters.test.tsx +534 -0
  24. package/dist/cjs/ai-table/components/__tests__/footer.test.d.ts +2 -0
  25. package/dist/cjs/ai-table/components/__tests__/footer.test.d.ts.map +1 -0
  26. package/dist/cjs/ai-table/components/__tests__/footer.test.js +465 -0
  27. package/dist/cjs/ai-table/components/__tests__/footer.test.tsx +597 -0
  28. package/dist/cjs/ai-table/components/__tests__/mapper.test.d.ts +2 -0
  29. package/dist/cjs/ai-table/components/__tests__/mapper.test.d.ts.map +1 -0
  30. package/dist/cjs/ai-table/components/__tests__/mapper.test.js +453 -0
  31. package/dist/cjs/ai-table/components/__tests__/mapper.test.tsx +601 -0
  32. package/dist/cjs/ai-table/components/__tests__/pagination.test.d.ts +2 -0
  33. package/dist/cjs/ai-table/components/__tests__/pagination.test.d.ts.map +1 -0
  34. package/dist/cjs/ai-table/components/__tests__/pagination.test.js +430 -0
  35. package/dist/cjs/ai-table/components/__tests__/pagination.test.tsx +629 -0
  36. package/dist/cjs/ai-table/components/__tests__/row-actions.test.d.ts +2 -0
  37. package/dist/cjs/ai-table/components/__tests__/row-actions.test.d.ts.map +1 -0
  38. package/dist/cjs/ai-table/components/__tests__/row-actions.test.js +382 -0
  39. package/dist/cjs/ai-table/components/__tests__/row-actions.test.tsx +507 -0
  40. package/dist/cjs/ai-table/components/content.d.ts +11 -0
  41. package/dist/cjs/ai-table/components/content.d.ts.map +1 -0
  42. package/dist/cjs/ai-table/components/content.js +309 -0
  43. package/dist/cjs/ai-table/components/filters.d.ts +10 -0
  44. package/dist/cjs/ai-table/components/filters.d.ts.map +1 -0
  45. package/dist/cjs/ai-table/components/filters.js +55 -0
  46. package/dist/cjs/ai-table/components/footer.d.ts +12 -0
  47. package/dist/cjs/ai-table/components/footer.d.ts.map +1 -0
  48. package/dist/cjs/ai-table/components/footer.js +24 -0
  49. package/dist/cjs/ai-table/components/mapper.d.ts +11 -0
  50. package/dist/cjs/ai-table/components/mapper.d.ts.map +1 -0
  51. package/dist/cjs/ai-table/components/mapper.js +21 -0
  52. package/dist/cjs/ai-table/components/pagination.d.ts +11 -0
  53. package/dist/cjs/ai-table/components/pagination.d.ts.map +1 -0
  54. package/dist/cjs/ai-table/components/pagination.js +106 -0
  55. package/dist/cjs/ai-table/components/row-actions.d.ts +14 -0
  56. package/dist/cjs/ai-table/components/row-actions.d.ts.map +1 -0
  57. package/dist/cjs/ai-table/components/row-actions.js +52 -0
  58. package/dist/cjs/ai-table/constants/index.d.ts +17 -0
  59. package/dist/cjs/ai-table/constants/index.d.ts.map +1 -0
  60. package/dist/cjs/ai-table/constants/index.js +19 -0
  61. package/dist/cjs/ai-table/i18n/index.d.ts +3 -0
  62. package/dist/cjs/ai-table/i18n/index.d.ts.map +1 -0
  63. package/dist/cjs/ai-table/i18n/index.js +14 -0
  64. package/dist/cjs/ai-table/i18n/translations/en.d.ts +8 -0
  65. package/dist/cjs/ai-table/i18n/translations/en.d.ts.map +1 -0
  66. package/dist/cjs/ai-table/i18n/translations/en.js +9 -0
  67. package/dist/cjs/ai-table/i18n/translations/tr.d.ts +8 -0
  68. package/dist/cjs/ai-table/i18n/translations/tr.d.ts.map +1 -0
  69. package/dist/cjs/ai-table/i18n/translations/tr.js +9 -0
  70. package/dist/cjs/ai-table/index.d.ts +4 -0
  71. package/dist/cjs/ai-table/index.d.ts.map +1 -0
  72. package/dist/cjs/ai-table/index.js +71 -0
  73. package/dist/cjs/ai-table/utils/data-format/__tests__/index.test.d.ts +2 -0
  74. package/dist/cjs/ai-table/utils/data-format/__tests__/index.test.d.ts.map +1 -0
  75. package/dist/cjs/ai-table/utils/data-format/__tests__/index.test.js +146 -0
  76. package/dist/cjs/ai-table/utils/data-format/__tests__/index.test.ts +184 -0
  77. package/dist/cjs/ai-table/utils/data-format/index.d.ts +7 -0
  78. package/dist/cjs/ai-table/utils/data-format/index.d.ts.map +1 -0
  79. package/dist/cjs/ai-table/utils/data-format/index.js +43 -0
  80. package/dist/cjs/ai-table/utils/render-mapper-fields/__tests__/index.test.d.ts +2 -0
  81. package/dist/cjs/ai-table/utils/render-mapper-fields/__tests__/index.test.d.ts.map +1 -0
  82. package/dist/cjs/ai-table/utils/render-mapper-fields/__tests__/index.test.js +291 -0
  83. package/dist/cjs/ai-table/utils/render-mapper-fields/__tests__/index.test.tsx +399 -0
  84. package/dist/cjs/ai-table/utils/render-mapper-fields/index.d.ts +10 -0
  85. package/dist/cjs/ai-table/utils/render-mapper-fields/index.d.ts.map +1 -0
  86. package/dist/cjs/ai-table/utils/render-mapper-fields/index.js +48 -0
  87. package/dist/cjs/index.d.ts +4 -0
  88. package/dist/cjs/index.d.ts.map +1 -0
  89. package/dist/cjs/index.js +7 -0
  90. package/dist/cjs/types/index.d.ts +134 -0
  91. package/dist/cjs/types/index.d.ts.map +1 -0
  92. package/dist/cjs/types/index.js +2 -0
  93. package/dist/esm/__tests__/index.test.d.ts +2 -0
  94. package/dist/esm/__tests__/index.test.d.ts.map +1 -0
  95. package/dist/esm/__tests__/index.test.js +80 -0
  96. package/dist/esm/__tests__/index.test.tsx +94 -0
  97. package/dist/esm/ai-modal-table/__tests__/index.test.d.ts +2 -0
  98. package/dist/esm/ai-modal-table/__tests__/index.test.d.ts.map +1 -0
  99. package/dist/esm/ai-modal-table/__tests__/index.test.js +57 -0
  100. package/dist/esm/ai-modal-table/__tests__/index.test.tsx +98 -0
  101. package/dist/esm/ai-modal-table/index.d.ts +4 -0
  102. package/dist/esm/ai-modal-table/index.d.ts.map +1 -0
  103. package/dist/esm/ai-modal-table/index.js +50 -0
  104. package/dist/esm/ai-table/__tests__/index.test.d.ts +2 -0
  105. package/dist/esm/ai-table/__tests__/index.test.d.ts.map +1 -0
  106. package/dist/esm/ai-table/__tests__/index.test.js +346 -0
  107. package/dist/esm/ai-table/__tests__/index.test.tsx +572 -0
  108. package/dist/esm/ai-table/components/__tests__/content.test.d.ts +2 -0
  109. package/dist/esm/ai-table/components/__tests__/content.test.d.ts.map +1 -0
  110. package/dist/esm/ai-table/components/__tests__/content.test.js +1347 -0
  111. package/dist/esm/ai-table/components/__tests__/content.test.tsx +1637 -0
  112. package/dist/esm/ai-table/components/__tests__/filters.test.d.ts +2 -0
  113. package/dist/esm/ai-table/components/__tests__/filters.test.d.ts.map +1 -0
  114. package/dist/esm/ai-table/components/__tests__/filters.test.js +398 -0
  115. package/dist/esm/ai-table/components/__tests__/filters.test.tsx +534 -0
  116. package/dist/esm/ai-table/components/__tests__/footer.test.d.ts +2 -0
  117. package/dist/esm/ai-table/components/__tests__/footer.test.d.ts.map +1 -0
  118. package/dist/esm/ai-table/components/__tests__/footer.test.js +463 -0
  119. package/dist/esm/ai-table/components/__tests__/footer.test.tsx +597 -0
  120. package/dist/esm/ai-table/components/__tests__/mapper.test.d.ts +2 -0
  121. package/dist/esm/ai-table/components/__tests__/mapper.test.d.ts.map +1 -0
  122. package/dist/esm/ai-table/components/__tests__/mapper.test.js +451 -0
  123. package/dist/esm/ai-table/components/__tests__/mapper.test.tsx +601 -0
  124. package/dist/esm/ai-table/components/__tests__/pagination.test.d.ts +2 -0
  125. package/dist/esm/ai-table/components/__tests__/pagination.test.d.ts.map +1 -0
  126. package/dist/esm/ai-table/components/__tests__/pagination.test.js +428 -0
  127. package/dist/esm/ai-table/components/__tests__/pagination.test.tsx +629 -0
  128. package/dist/esm/ai-table/components/__tests__/row-actions.test.d.ts +2 -0
  129. package/dist/esm/ai-table/components/__tests__/row-actions.test.d.ts.map +1 -0
  130. package/dist/esm/ai-table/components/__tests__/row-actions.test.js +380 -0
  131. package/dist/esm/ai-table/components/__tests__/row-actions.test.tsx +507 -0
  132. package/dist/esm/ai-table/components/content.d.ts +11 -0
  133. package/dist/esm/ai-table/components/content.d.ts.map +1 -0
  134. package/dist/esm/ai-table/components/content.js +305 -0
  135. package/dist/esm/ai-table/components/filters.d.ts +10 -0
  136. package/dist/esm/ai-table/components/filters.d.ts.map +1 -0
  137. package/dist/esm/ai-table/components/filters.js +51 -0
  138. package/dist/esm/ai-table/components/footer.d.ts +12 -0
  139. package/dist/esm/ai-table/components/footer.d.ts.map +1 -0
  140. package/dist/esm/ai-table/components/footer.js +20 -0
  141. package/dist/esm/ai-table/components/mapper.d.ts +11 -0
  142. package/dist/esm/ai-table/components/mapper.d.ts.map +1 -0
  143. package/dist/esm/ai-table/components/mapper.js +17 -0
  144. package/dist/esm/ai-table/components/pagination.d.ts +11 -0
  145. package/dist/esm/ai-table/components/pagination.d.ts.map +1 -0
  146. package/dist/esm/ai-table/components/pagination.js +102 -0
  147. package/dist/esm/ai-table/components/row-actions.d.ts +14 -0
  148. package/dist/esm/ai-table/components/row-actions.d.ts.map +1 -0
  149. package/dist/esm/ai-table/components/row-actions.js +48 -0
  150. package/dist/esm/ai-table/constants/index.d.ts +17 -0
  151. package/dist/esm/ai-table/constants/index.d.ts.map +1 -0
  152. package/dist/esm/ai-table/constants/index.js +16 -0
  153. package/dist/esm/ai-table/i18n/index.d.ts +3 -0
  154. package/dist/esm/ai-table/i18n/index.d.ts.map +1 -0
  155. package/dist/esm/ai-table/i18n/index.js +11 -0
  156. package/dist/esm/ai-table/i18n/translations/en.d.ts +8 -0
  157. package/dist/esm/ai-table/i18n/translations/en.d.ts.map +1 -0
  158. package/dist/esm/ai-table/i18n/translations/en.js +7 -0
  159. package/dist/esm/ai-table/i18n/translations/tr.d.ts +8 -0
  160. package/dist/esm/ai-table/i18n/translations/tr.d.ts.map +1 -0
  161. package/dist/esm/ai-table/i18n/translations/tr.js +7 -0
  162. package/dist/esm/ai-table/index.d.ts +4 -0
  163. package/dist/esm/ai-table/index.d.ts.map +1 -0
  164. package/dist/esm/ai-table/index.js +67 -0
  165. package/dist/esm/ai-table/utils/data-format/__tests__/index.test.d.ts +2 -0
  166. package/dist/esm/ai-table/utils/data-format/__tests__/index.test.d.ts.map +1 -0
  167. package/dist/esm/ai-table/utils/data-format/__tests__/index.test.js +144 -0
  168. package/dist/esm/ai-table/utils/data-format/__tests__/index.test.ts +184 -0
  169. package/dist/esm/ai-table/utils/data-format/index.d.ts +7 -0
  170. package/dist/esm/ai-table/utils/data-format/index.d.ts.map +1 -0
  171. package/dist/esm/ai-table/utils/data-format/index.js +38 -0
  172. package/dist/esm/ai-table/utils/render-mapper-fields/__tests__/index.test.d.ts +2 -0
  173. package/dist/esm/ai-table/utils/render-mapper-fields/__tests__/index.test.d.ts.map +1 -0
  174. package/dist/esm/ai-table/utils/render-mapper-fields/__tests__/index.test.js +289 -0
  175. package/dist/esm/ai-table/utils/render-mapper-fields/__tests__/index.test.tsx +399 -0
  176. package/dist/esm/ai-table/utils/render-mapper-fields/index.d.ts +10 -0
  177. package/dist/esm/ai-table/utils/render-mapper-fields/index.d.ts.map +1 -0
  178. package/dist/esm/ai-table/utils/render-mapper-fields/index.js +44 -0
  179. package/dist/esm/index.d.ts +4 -0
  180. package/dist/esm/index.d.ts.map +1 -0
  181. package/dist/esm/index.js +2 -0
  182. package/dist/esm/types/index.d.ts +134 -0
  183. package/dist/esm/types/index.d.ts.map +1 -0
  184. package/dist/esm/types/index.js +1 -0
  185. package/package.json +60 -0
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/index.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint-disable @typescript-eslint/no-explicit-any */
4
+ const vitest_1 = require("vitest");
5
+ const index_1 = require("../index");
6
+ const indexModule = require("../index");
7
+ (0, vitest_1.describe)('index.tsx - Public API', () => {
8
+ (0, vitest_1.describe)('Component Exports', () => {
9
+ (0, vitest_1.it)('should export AiModalTable and AiTable components', () => {
10
+ (0, vitest_1.expect)(indexModule).toHaveProperty('AiModalTable');
11
+ (0, vitest_1.expect)(indexModule).toHaveProperty('AiTable');
12
+ (0, vitest_1.expect)(typeof indexModule.AiModalTable).toBe('function');
13
+ (0, vitest_1.expect)(typeof indexModule.AiTable).toBe('function');
14
+ });
15
+ (0, vitest_1.it)('should have only named exports (no default export)', () => {
16
+ const exports = Object.keys(indexModule).sort();
17
+ (0, vitest_1.expect)(exports).toContain('AiModalTable');
18
+ (0, vitest_1.expect)(exports).toContain('AiTable');
19
+ (0, vitest_1.expect)(indexModule.default).toBeUndefined();
20
+ });
21
+ (0, vitest_1.it)('should maintain export consistency', () => {
22
+ (0, vitest_1.expect)(indexModule.AiModalTable).toBe(index_1.AiModalTable);
23
+ (0, vitest_1.expect)(indexModule.AiTable).toBe(index_1.AiTable);
24
+ });
25
+ (0, vitest_1.it)('should export components as separate instances', () => {
26
+ const { AiModalTable, AiTable } = indexModule;
27
+ (0, vitest_1.expect)(AiModalTable).not.toBe(AiTable);
28
+ (0, vitest_1.expect)(typeof AiModalTable).toBe('function');
29
+ (0, vitest_1.expect)(typeof AiTable).toBe('function');
30
+ });
31
+ });
32
+ (0, vitest_1.describe)('Module Structure', () => {
33
+ (0, vitest_1.it)('should be importable as ES module with all exports', () => {
34
+ (0, vitest_1.expect)(Object.keys(indexModule).length).toBeGreaterThanOrEqual(2);
35
+ });
36
+ (0, vitest_1.it)('should have React components with proper names', () => {
37
+ const getComponentName = (comp) => comp.name || comp.displayName || 'Unknown';
38
+ (0, vitest_1.expect)(getComponentName(indexModule.AiModalTable)).toBeDefined();
39
+ (0, vitest_1.expect)(getComponentName(indexModule.AiTable)).toBeDefined();
40
+ });
41
+ (0, vitest_1.it)('should not have circular or broken dependencies', () => {
42
+ // Should be able to destructure without errors
43
+ (0, vitest_1.expect)(() => {
44
+ const { AiModalTable: ModalTable, AiTable: Table } = indexModule;
45
+ if (!ModalTable || !Table)
46
+ throw new Error('Missing export');
47
+ }).not.toThrow();
48
+ });
49
+ });
50
+ (0, vitest_1.describe)('Export Stability', () => {
51
+ (0, vitest_1.it)('should maintain stable export references across multiple imports', () => {
52
+ const import1 = indexModule.AiModalTable;
53
+ const import2 = indexModule.AiModalTable;
54
+ const import3 = indexModule.AiTable;
55
+ const import4 = indexModule.AiTable;
56
+ (0, vitest_1.expect)(import1).toBe(import2);
57
+ (0, vitest_1.expect)(import3).toBe(import4);
58
+ });
59
+ (0, vitest_1.it)('should support destructuring without errors', () => {
60
+ // Common user pattern - destructuring from index
61
+ const { AiModalTable, AiTable } = indexModule;
62
+ (0, vitest_1.expect)(AiModalTable).toBeDefined();
63
+ (0, vitest_1.expect)(AiTable).toBeDefined();
64
+ (0, vitest_1.expect)(typeof AiModalTable).toBe('function');
65
+ (0, vitest_1.expect)(typeof AiTable).toBe('function');
66
+ });
67
+ (0, vitest_1.it)('should support namespace import pattern', () => {
68
+ // Common user pattern - namespace import
69
+ const exports = indexModule;
70
+ (0, vitest_1.expect)(exports.AiModalTable).toBeDefined();
71
+ (0, vitest_1.expect)(exports.AiTable).toBeDefined();
72
+ });
73
+ (0, vitest_1.it)('should export both wrapper and content components', () => {
74
+ // Verify architectural separation:
75
+ // - AiModalTable wraps content (modal + AiTable)
76
+ // - AiTable provides table functionality independently
77
+ const { AiModalTable, AiTable } = indexModule;
78
+ (0, vitest_1.expect)(AiModalTable).not.toBe(AiTable);
79
+ (0, vitest_1.expect)(AiModalTable !== AiTable).toBe(true);
80
+ });
81
+ });
82
+ });
@@ -0,0 +1,94 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { describe, expect, it } from 'vitest';
3
+
4
+ import { AiModalTable, AiTable } from '../index';
5
+ import * as indexModule from '../index';
6
+
7
+ describe('index.tsx - Public API', () => {
8
+ describe('Component Exports', () => {
9
+ it('should export AiModalTable and AiTable components', () => {
10
+ expect(indexModule).toHaveProperty('AiModalTable');
11
+ expect(indexModule).toHaveProperty('AiTable');
12
+ expect(typeof indexModule.AiModalTable).toBe('function');
13
+ expect(typeof indexModule.AiTable).toBe('function');
14
+ });
15
+
16
+ it('should have only named exports (no default export)', () => {
17
+ const exports = Object.keys(indexModule).sort();
18
+ expect(exports).toContain('AiModalTable');
19
+ expect(exports).toContain('AiTable');
20
+ expect((indexModule as Record<string, any>).default).toBeUndefined();
21
+ });
22
+
23
+ it('should maintain export consistency', () => {
24
+ expect(indexModule.AiModalTable).toBe(AiModalTable);
25
+ expect(indexModule.AiTable).toBe(AiTable);
26
+ });
27
+
28
+ it('should export components as separate instances', () => {
29
+ const { AiModalTable, AiTable } = indexModule;
30
+ expect(AiModalTable).not.toBe(AiTable);
31
+ expect(typeof AiModalTable).toBe('function');
32
+ expect(typeof AiTable).toBe('function');
33
+ });
34
+ });
35
+
36
+ describe('Module Structure', () => {
37
+ it('should be importable as ES module with all exports', () => {
38
+ expect(Object.keys(indexModule).length).toBeGreaterThanOrEqual(2);
39
+ });
40
+
41
+ it('should have React components with proper names', () => {
42
+ const getComponentName = (comp: any) =>
43
+ comp.name || comp.displayName || 'Unknown';
44
+
45
+ expect(getComponentName(indexModule.AiModalTable)).toBeDefined();
46
+ expect(getComponentName(indexModule.AiTable)).toBeDefined();
47
+ });
48
+
49
+ it('should not have circular or broken dependencies', () => {
50
+ // Should be able to destructure without errors
51
+ expect(() => {
52
+ const { AiModalTable: ModalTable, AiTable: Table } = indexModule;
53
+ if (!ModalTable || !Table) throw new Error('Missing export');
54
+ }).not.toThrow();
55
+ });
56
+ });
57
+
58
+ describe('Export Stability', () => {
59
+ it('should maintain stable export references across multiple imports', () => {
60
+ const import1 = indexModule.AiModalTable;
61
+ const import2 = indexModule.AiModalTable;
62
+ const import3 = indexModule.AiTable;
63
+ const import4 = indexModule.AiTable;
64
+
65
+ expect(import1).toBe(import2);
66
+ expect(import3).toBe(import4);
67
+ });
68
+
69
+ it('should support destructuring without errors', () => {
70
+ // Common user pattern - destructuring from index
71
+ const { AiModalTable, AiTable } = indexModule;
72
+ expect(AiModalTable).toBeDefined();
73
+ expect(AiTable).toBeDefined();
74
+ expect(typeof AiModalTable).toBe('function');
75
+ expect(typeof AiTable).toBe('function');
76
+ });
77
+
78
+ it('should support namespace import pattern', () => {
79
+ // Common user pattern - namespace import
80
+ const exports = indexModule;
81
+ expect(exports.AiModalTable).toBeDefined();
82
+ expect(exports.AiTable).toBeDefined();
83
+ });
84
+
85
+ it('should export both wrapper and content components', () => {
86
+ // Verify architectural separation:
87
+ // - AiModalTable wraps content (modal + AiTable)
88
+ // - AiTable provides table functionality independently
89
+ const { AiModalTable, AiTable } = indexModule;
90
+ expect(AiModalTable).not.toBe(AiTable);
91
+ expect(AiModalTable !== AiTable).toBe(true);
92
+ });
93
+ });
94
+ });
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../../src/ai-modal-table/__tests__/index.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ /* eslint-disable @typescript-eslint/no-explicit-any */
15
+ const react_1 = require("@testing-library/react");
16
+ const react_2 = require("react");
17
+ const vitest_1 = require("vitest");
18
+ vitest_1.vi.mock('@akinon/ui-theme', async (importOriginal) => {
19
+ const actual = (await importOriginal());
20
+ return Object.assign(Object.assign({}, actual), { useToken: () => ({ token: {}, hashId: 'hash123' }) });
21
+ });
22
+ vitest_1.vi.mock('@akinon/ui-layout', () => ({
23
+ Flex: ({ children }) => react_2.default.createElement("div", { "data-testid": "flex" }, children)
24
+ }));
25
+ vitest_1.vi.mock('@akinon/ui-modal', () => ({
26
+ Modal: (_a) => {
27
+ var { children, onCancel, className } = _a, rest = __rest(_a, ["children", "onCancel", "className"]);
28
+ return (react_2.default.createElement("div", Object.assign({ "data-testid": "modal", className: className }, rest),
29
+ react_2.default.createElement("button", { "data-testid": "close-button", onClick: onCancel }),
30
+ children));
31
+ }
32
+ }));
33
+ vitest_1.vi.mock('../ai-table', () => ({
34
+ AiTable: (props) => (react_2.default.createElement("div", { "data-testid": "ai-table" },
35
+ react_2.default.createElement("pre", { "data-testid": "ai-table-props" }, JSON.stringify({
36
+ columns: props.columns,
37
+ data: props.data,
38
+ isLoading: props.isLoading
39
+ })))),
40
+ DEFAULT_ROW_KEY: 'id'
41
+ }));
42
+ const index_1 = require("../index");
43
+ (0, vitest_1.describe)('AiModalTable', () => {
44
+ (0, vitest_1.it)('renders description and passes props to AiTable', () => {
45
+ const columns = [{ title: 'Name', dataIndex: 'name' }];
46
+ const data = [{ id: 1, name: 'Alice' }];
47
+ (0, react_1.render)(react_2.default.createElement(index_1.AiModalTable, { description: "My description", columns: columns, data: data, isLoading: true, submitAllLabel: "Submit All", submitSelectedLabel: "Submit Selected", filters: [], selectedRows: [], onChangeSelectedRows: () => { }, isSubmitting: false, onSubmitAllData: () => { }, onSubmitSelectedData: () => { } }));
48
+ (0, vitest_1.expect)(react_1.screen.getByText('My description')).toBeInTheDocument();
49
+ });
50
+ (0, vitest_1.it)('calls onCancel when modal close clicked and applies class names', () => {
51
+ const onCancel = vitest_1.vi.fn();
52
+ (0, react_1.render)(react_2.default.createElement(index_1.AiModalTable, { description: "My description", columns: [], data: [], isLoading: true, submitAllLabel: "Submit All", submitSelectedLabel: "Submit Selected", filters: [], selectedRows: [], onChangeSelectedRows: () => { }, isSubmitting: false, onSubmitAllData: () => { }, onSubmitSelectedData: () => { }, onCancel: onCancel }));
53
+ const modal = react_1.screen.getByTestId('modal');
54
+ (0, vitest_1.expect)(modal.className).toContain('ai-modal-table');
55
+ (0, vitest_1.expect)(modal.className).toContain('hash123');
56
+ react_1.fireEvent.click(react_1.screen.getByTestId('close-button'));
57
+ (0, vitest_1.expect)(onCancel).toHaveBeenCalledTimes(1);
58
+ });
59
+ });
@@ -0,0 +1,98 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { fireEvent, render, screen } from '@testing-library/react';
3
+ import React from 'react';
4
+ import { describe, expect, it, vi } from 'vitest';
5
+
6
+ vi.mock('@akinon/ui-theme', async importOriginal => {
7
+ const actual = (await importOriginal()) as Record<string, any>;
8
+
9
+ return {
10
+ ...actual,
11
+ useToken: () => ({ token: {}, hashId: 'hash123' })
12
+ };
13
+ });
14
+
15
+ vi.mock('@akinon/ui-layout', () => ({
16
+ Flex: ({ children }: any) => <div data-testid="flex">{children}</div>
17
+ }));
18
+
19
+ vi.mock('@akinon/ui-modal', () => ({
20
+ Modal: ({ children, onCancel, className, ...rest }: any) => (
21
+ <div data-testid="modal" className={className} {...rest}>
22
+ <button data-testid="close-button" onClick={onCancel} />
23
+ {children}
24
+ </div>
25
+ )
26
+ }));
27
+
28
+ vi.mock('../ai-table', () => ({
29
+ AiTable: (props: any) => (
30
+ <div data-testid="ai-table">
31
+ <pre data-testid="ai-table-props">
32
+ {JSON.stringify({
33
+ columns: props.columns,
34
+ data: props.data,
35
+ isLoading: props.isLoading
36
+ })}
37
+ </pre>
38
+ </div>
39
+ ),
40
+ DEFAULT_ROW_KEY: 'id'
41
+ }));
42
+
43
+ import { AiModalTable } from '../index';
44
+
45
+ describe('AiModalTable', () => {
46
+ it('renders description and passes props to AiTable', () => {
47
+ const columns = [{ title: 'Name', dataIndex: 'name' }];
48
+ const data = [{ id: 1, name: 'Alice' }];
49
+
50
+ render(
51
+ <AiModalTable
52
+ description="My description"
53
+ columns={columns}
54
+ data={data}
55
+ isLoading={true}
56
+ submitAllLabel="Submit All"
57
+ submitSelectedLabel="Submit Selected"
58
+ filters={[]}
59
+ selectedRows={[]}
60
+ onChangeSelectedRows={() => {}}
61
+ isSubmitting={false}
62
+ onSubmitAllData={() => {}}
63
+ onSubmitSelectedData={() => {}}
64
+ />
65
+ );
66
+
67
+ expect(screen.getByText('My description')).toBeInTheDocument();
68
+ });
69
+
70
+ it('calls onCancel when modal close clicked and applies class names', () => {
71
+ const onCancel = vi.fn();
72
+
73
+ render(
74
+ <AiModalTable
75
+ description="My description"
76
+ columns={[]}
77
+ data={[]}
78
+ isLoading={true}
79
+ submitAllLabel="Submit All"
80
+ submitSelectedLabel="Submit Selected"
81
+ filters={[]}
82
+ selectedRows={[]}
83
+ onChangeSelectedRows={() => {}}
84
+ isSubmitting={false}
85
+ onSubmitAllData={() => {}}
86
+ onSubmitSelectedData={() => {}}
87
+ onCancel={onCancel}
88
+ />
89
+ );
90
+
91
+ const modal = screen.getByTestId('modal');
92
+ expect(modal.className).toContain('ai-modal-table');
93
+ expect(modal.className).toContain('hash123');
94
+
95
+ fireEvent.click(screen.getByTestId('close-button'));
96
+ expect(onCancel).toHaveBeenCalledTimes(1);
97
+ });
98
+ });
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import type { AiModalTableProps } from '../types';
3
+ export declare const AiModalTable: ({ columns, customActionButtons, data, description, editDataIndexes, filters, isLoading, isSubmitting, onChangeSelectedRows, onEdit, onSubmitAllData, onSubmitSelectedData, rowKey, selectedRows, submitAllLabel, submitSelectedLabel, mapperConfig, tableClassName, ...modalProps }: AiModalTableProps) => React.JSX.Element;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ai-modal-table/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElD,eAAO,MAAM,YAAY,GAAI,qRAoB1B,iBAAiB,sBAoEnB,CAAC"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.AiModalTable = void 0;
15
+ const ui_layout_1 = require("@akinon/ui-layout");
16
+ const ui_modal_1 = require("@akinon/ui-modal");
17
+ const ui_theme_1 = require("@akinon/ui-theme");
18
+ const cssinjs_1 = require("@ant-design/cssinjs");
19
+ const antd_1 = require("antd");
20
+ const classnames_1 = require("classnames");
21
+ const React = require("react");
22
+ const ai_table_1 = require("../ai-table");
23
+ const constants_1 = require("../ai-table/constants");
24
+ const AiModalTable = (_a) => {
25
+ var { columns = [], customActionButtons, data = [], description, editDataIndexes, filters = [], isLoading, isSubmitting, onChangeSelectedRows, onEdit, onSubmitAllData, onSubmitSelectedData, rowKey = constants_1.DEFAULT_ROW_KEY, selectedRows, submitAllLabel, submitSelectedLabel, mapperConfig, tableClassName } = _a, modalProps = __rest(_a, ["columns", "customActionButtons", "data", "description", "editDataIndexes", "filters", "isLoading", "isSubmitting", "onChangeSelectedRows", "onEdit", "onSubmitAllData", "onSubmitSelectedData", "rowKey", "selectedRows", "submitAllLabel", "submitSelectedLabel", "mapperConfig", "tableClassName"]);
26
+ const { onCancel, className } = modalProps, restModalProps = __rest(modalProps, ["onCancel", "className"]);
27
+ const { getPrefixCls, theme } = React.useContext(antd_1.ConfigProvider.ConfigContext);
28
+ const { token, hashId } = (0, ui_theme_1.useToken)();
29
+ const baseCls = getPrefixCls('ai-modal-table');
30
+ const handleCancel = (e) => {
31
+ if (onCancel)
32
+ onCancel(e);
33
+ };
34
+ const useStyle = (0, cssinjs_1.useStyleRegister)({
35
+ token: token,
36
+ path: ['AiModalTable'],
37
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
38
+ theme: theme
39
+ }, () => {
40
+ const prefixCls = `:where(.${hashId}).${baseCls}`;
41
+ return {
42
+ [prefixCls]: {
43
+ '.akinon-modal-title': {
44
+ borderBottom: 'none !important'
45
+ }
46
+ }
47
+ };
48
+ });
49
+ return useStyle(React.createElement(ui_modal_1.Modal, Object.assign({ className: (0, classnames_1.default)(baseCls, hashId, className), footer: null, onCancel: handleCancel, centered: true, destroyOnClose: true, width: 1200 }, restModalProps),
50
+ React.createElement(ui_layout_1.Flex, { gap: 10, vertical: true },
51
+ React.createElement("div", { className: "text-neutral-50 text-sm mb-2" }, description),
52
+ React.createElement(ai_table_1.AiTable, { columns: columns, customActionButtons: customActionButtons, data: data, editDataIndexes: editDataIndexes, filters: filters, isLoading: isLoading, isSubmitting: isSubmitting, onChangeSelectedRows: onChangeSelectedRows, onEdit: onEdit, onSubmitAllData: onSubmitAllData, onSubmitSelectedData: onSubmitSelectedData, rowKey: rowKey, selectedRows: selectedRows, submitAllLabel: submitAllLabel, submitSelectedLabel: submitSelectedLabel, mapperConfig: mapperConfig, tableClassName: tableClassName }))));
53
+ };
54
+ exports.AiModalTable = AiModalTable;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../../src/ai-table/__tests__/index.test.tsx"],"names":[],"mappings":""}