@keenthemes/ktui 1.0.29 → 1.1.1

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 (90) hide show
  1. package/dist/ktui.js +3942 -8634
  2. package/dist/ktui.min.js +1 -1
  3. package/dist/ktui.min.js.map +1 -1
  4. package/dist/styles.css +0 -196
  5. package/lib/cjs/components/datatable/__tests__/pagination-reset.test.js +596 -0
  6. package/lib/cjs/components/datatable/__tests__/pagination-reset.test.js.map +1 -0
  7. package/lib/cjs/components/datatable/__tests__/race-conditions.test.js +548 -0
  8. package/lib/cjs/components/datatable/__tests__/race-conditions.test.js.map +1 -0
  9. package/lib/cjs/components/datatable/__tests__/setup.js +63 -0
  10. package/lib/cjs/components/datatable/__tests__/setup.js.map +1 -0
  11. package/lib/cjs/components/datatable/datatable.js +92 -30
  12. package/lib/cjs/components/datatable/datatable.js.map +1 -1
  13. package/lib/cjs/index.js +1 -5
  14. package/lib/cjs/index.js.map +1 -1
  15. package/lib/esm/components/datatable/__tests__/pagination-reset.test.js +594 -0
  16. package/lib/esm/components/datatable/__tests__/pagination-reset.test.js.map +1 -0
  17. package/lib/esm/components/datatable/__tests__/race-conditions.test.js +546 -0
  18. package/lib/esm/components/datatable/__tests__/race-conditions.test.js.map +1 -0
  19. package/lib/esm/components/datatable/__tests__/setup.js +58 -0
  20. package/lib/esm/components/datatable/__tests__/setup.js.map +1 -0
  21. package/lib/esm/components/datatable/datatable.js +92 -30
  22. package/lib/esm/components/datatable/datatable.js.map +1 -1
  23. package/lib/esm/index.js +0 -3
  24. package/lib/esm/index.js.map +1 -1
  25. package/package.json +9 -2
  26. package/src/components/datatable/__tests__/pagination-reset.test.ts +657 -0
  27. package/src/components/datatable/__tests__/race-conditions.test.ts +455 -0
  28. package/src/components/datatable/__tests__/setup.ts +67 -0
  29. package/src/components/datatable/datatable.ts +66 -11
  30. package/src/components/input/input.css +0 -1
  31. package/src/components/select/select.css +0 -1
  32. package/src/components/textarea/textarea.css +0 -1
  33. package/src/index.ts +0 -4
  34. package/styles.css +0 -1
  35. package/lib/cjs/components/datepicker/calendar.js +0 -1061
  36. package/lib/cjs/components/datepicker/calendar.js.map +0 -1
  37. package/lib/cjs/components/datepicker/config.js +0 -332
  38. package/lib/cjs/components/datepicker/config.js.map +0 -1
  39. package/lib/cjs/components/datepicker/datepicker.js +0 -949
  40. package/lib/cjs/components/datepicker/datepicker.js.map +0 -1
  41. package/lib/cjs/components/datepicker/dropdown.js +0 -635
  42. package/lib/cjs/components/datepicker/dropdown.js.map +0 -1
  43. package/lib/cjs/components/datepicker/events.js +0 -129
  44. package/lib/cjs/components/datepicker/events.js.map +0 -1
  45. package/lib/cjs/components/datepicker/index.js +0 -13
  46. package/lib/cjs/components/datepicker/index.js.map +0 -1
  47. package/lib/cjs/components/datepicker/keyboard.js +0 -536
  48. package/lib/cjs/components/datepicker/keyboard.js.map +0 -1
  49. package/lib/cjs/components/datepicker/locales.js +0 -78
  50. package/lib/cjs/components/datepicker/locales.js.map +0 -1
  51. package/lib/cjs/components/datepicker/templates.js +0 -403
  52. package/lib/cjs/components/datepicker/templates.js.map +0 -1
  53. package/lib/cjs/components/datepicker/types.js +0 -23
  54. package/lib/cjs/components/datepicker/types.js.map +0 -1
  55. package/lib/cjs/components/datepicker/utils.js +0 -524
  56. package/lib/cjs/components/datepicker/utils.js.map +0 -1
  57. package/lib/esm/components/datepicker/calendar.js +0 -1058
  58. package/lib/esm/components/datepicker/calendar.js.map +0 -1
  59. package/lib/esm/components/datepicker/config.js +0 -329
  60. package/lib/esm/components/datepicker/config.js.map +0 -1
  61. package/lib/esm/components/datepicker/datepicker.js +0 -946
  62. package/lib/esm/components/datepicker/datepicker.js.map +0 -1
  63. package/lib/esm/components/datepicker/dropdown.js +0 -632
  64. package/lib/esm/components/datepicker/dropdown.js.map +0 -1
  65. package/lib/esm/components/datepicker/events.js +0 -126
  66. package/lib/esm/components/datepicker/events.js.map +0 -1
  67. package/lib/esm/components/datepicker/index.js +0 -9
  68. package/lib/esm/components/datepicker/index.js.map +0 -1
  69. package/lib/esm/components/datepicker/keyboard.js +0 -533
  70. package/lib/esm/components/datepicker/keyboard.js.map +0 -1
  71. package/lib/esm/components/datepicker/locales.js +0 -74
  72. package/lib/esm/components/datepicker/locales.js.map +0 -1
  73. package/lib/esm/components/datepicker/templates.js +0 -390
  74. package/lib/esm/components/datepicker/templates.js.map +0 -1
  75. package/lib/esm/components/datepicker/types.js +0 -20
  76. package/lib/esm/components/datepicker/types.js.map +0 -1
  77. package/lib/esm/components/datepicker/utils.js +0 -508
  78. package/lib/esm/components/datepicker/utils.js.map +0 -1
  79. package/src/components/datepicker/calendar.ts +0 -1397
  80. package/src/components/datepicker/config.ts +0 -368
  81. package/src/components/datepicker/datepicker.css +0 -7
  82. package/src/components/datepicker/datepicker.ts +0 -1287
  83. package/src/components/datepicker/dropdown.ts +0 -757
  84. package/src/components/datepicker/events.ts +0 -149
  85. package/src/components/datepicker/index.ts +0 -10
  86. package/src/components/datepicker/keyboard.ts +0 -646
  87. package/src/components/datepicker/locales.ts +0 -80
  88. package/src/components/datepicker/templates.ts +0 -792
  89. package/src/components/datepicker/types.ts +0 -154
  90. package/src/components/datepicker/utils.ts +0 -631
@@ -0,0 +1,596 @@
1
+ "use strict";
2
+ /**
3
+ * pagination-reset.test.ts
4
+ * Tests for datatable pagination reset behavior on search and filter operations
5
+ *
6
+ * Spec: openspec/changes/fix-datatable-pagination-reset
7
+ * Requirement: Pagination Reset on Search and Filter
8
+ */
9
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
10
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
11
+ return new (P || (P = Promise))(function (resolve, reject) {
12
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
13
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
14
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
15
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
16
+ });
17
+ };
18
+ var __generator = (this && this.__generator) || function (thisArg, body) {
19
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
20
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
21
+ function verb(n) { return function (v) { return step([n, v]); }; }
22
+ function step(op) {
23
+ if (f) throw new TypeError("Generator is already executing.");
24
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
25
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
26
+ if (y = 0, t) op = [op[0] & 2, t.value];
27
+ switch (op[0]) {
28
+ case 0: case 1: t = op; break;
29
+ case 4: _.label++; return { value: op[1], done: false };
30
+ case 5: _.label++; y = op[1]; op = [0]; continue;
31
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
32
+ default:
33
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
34
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
35
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
36
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
37
+ if (t[2]) _.ops.pop();
38
+ _.trys.pop(); continue;
39
+ }
40
+ op = body.call(thisArg, _);
41
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
42
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
43
+ }
44
+ };
45
+ Object.defineProperty(exports, "__esModule", { value: true });
46
+ var vitest_1 = require("vitest");
47
+ var datatable_1 = require("../datatable");
48
+ (0, vitest_1.describe)('KTDataTable - Pagination Reset', function () {
49
+ var container;
50
+ var tableElement;
51
+ var datatable;
52
+ /**
53
+ * Helper: Create a mock datatable with sample data
54
+ */
55
+ var createMockDataTable = function (recordCount) {
56
+ if (recordCount === void 0) { recordCount = 25; }
57
+ container = document.createElement('div');
58
+ container.id = 'test-datatable-container';
59
+ // Create table structure
60
+ tableElement = document.createElement('table');
61
+ tableElement.setAttribute('data-kt-datatable-table', 'true');
62
+ tableElement.id = 'test-table';
63
+ var thead = document.createElement('thead');
64
+ var headerRow = document.createElement('tr');
65
+ var th1 = document.createElement('th');
66
+ th1.setAttribute('data-kt-datatable-column', 'id');
67
+ th1.textContent = 'ID';
68
+ var th2 = document.createElement('th');
69
+ th2.setAttribute('data-kt-datatable-column', 'name');
70
+ th2.textContent = 'Name';
71
+ var th3 = document.createElement('th');
72
+ th3.setAttribute('data-kt-datatable-column', 'status');
73
+ th3.textContent = 'Status';
74
+ headerRow.appendChild(th1);
75
+ headerRow.appendChild(th2);
76
+ headerRow.appendChild(th3);
77
+ thead.appendChild(headerRow);
78
+ tableElement.appendChild(thead);
79
+ // Create tbody with sample data
80
+ var tbody = document.createElement('tbody');
81
+ for (var i = 1; i <= recordCount; i++) {
82
+ var row = document.createElement('tr');
83
+ var td1 = document.createElement('td');
84
+ td1.textContent = String(i);
85
+ var td2 = document.createElement('td');
86
+ td2.textContent = "User ".concat(i);
87
+ var td3 = document.createElement('td');
88
+ td3.textContent = i % 2 === 0 ? 'active' : 'inactive';
89
+ row.appendChild(td1);
90
+ row.appendChild(td2);
91
+ row.appendChild(td3);
92
+ tbody.appendChild(row);
93
+ }
94
+ tableElement.appendChild(tbody);
95
+ // Create pagination info element
96
+ var infoElement = document.createElement('div');
97
+ infoElement.setAttribute('data-kt-datatable-info', 'true');
98
+ // Create page size selector
99
+ var sizeElement = document.createElement('select');
100
+ sizeElement.setAttribute('data-kt-datatable-size', 'true');
101
+ // Create pagination container
102
+ var paginationElement = document.createElement('div');
103
+ paginationElement.setAttribute('data-kt-datatable-pagination', 'true');
104
+ container.appendChild(tableElement);
105
+ container.appendChild(infoElement);
106
+ container.appendChild(sizeElement);
107
+ container.appendChild(paginationElement);
108
+ document.body.appendChild(container);
109
+ return {
110
+ container: container,
111
+ tableElement: tableElement,
112
+ infoElement: infoElement,
113
+ sizeElement: sizeElement,
114
+ paginationElement: paginationElement,
115
+ };
116
+ };
117
+ (0, vitest_1.beforeEach)(function () {
118
+ // Clear any existing elements
119
+ document.body.innerHTML = '';
120
+ vitest_1.vi.clearAllMocks();
121
+ });
122
+ (0, vitest_1.describe)('Scenario: Pagination resets when search is performed', function () {
123
+ (0, vitest_1.it)('should reset to page 1 when search is called from page 2+', function () {
124
+ // Setup: Create datatable with 25 records (page size 10 = 3 pages)
125
+ var container = createMockDataTable(25).container;
126
+ datatable = new datatable_1.KTDataTable(container, {
127
+ pageSize: 10,
128
+ stateSave: false,
129
+ });
130
+ // Navigate to page 2
131
+ datatable.goPage(2);
132
+ (0, vitest_1.expect)(datatable.getState().page).toBe(2);
133
+ // Perform search
134
+ datatable.search('User 5');
135
+ // Assert: Pagination should reset to page 1
136
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
137
+ });
138
+ (0, vitest_1.it)('should reset to page 1 from page 3 when searching', function () {
139
+ var container = createMockDataTable(35).container;
140
+ datatable = new datatable_1.KTDataTable(container, {
141
+ pageSize: 10,
142
+ stateSave: false,
143
+ });
144
+ // Navigate to page 3
145
+ datatable.goPage(3);
146
+ (0, vitest_1.expect)(datatable.getState().page).toBe(3);
147
+ // Perform search
148
+ datatable.search('test query');
149
+ // Assert
150
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
151
+ });
152
+ (0, vitest_1.it)('should reset page even when search yields no results', function () {
153
+ var container = createMockDataTable(25).container;
154
+ datatable = new datatable_1.KTDataTable(container, {
155
+ pageSize: 10,
156
+ stateSave: false,
157
+ });
158
+ datatable.goPage(2);
159
+ // Search for something that doesn't exist
160
+ datatable.search('NonExistentUser999');
161
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
162
+ });
163
+ (0, vitest_1.it)('should reset page on empty search query', function () {
164
+ var container = createMockDataTable(25).container;
165
+ datatable = new datatable_1.KTDataTable(container, {
166
+ pageSize: 10,
167
+ stateSave: false,
168
+ });
169
+ datatable.goPage(2);
170
+ datatable.search('');
171
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
172
+ });
173
+ (0, vitest_1.it)('should reset page when searching with object query', function () {
174
+ var container = createMockDataTable(25).container;
175
+ datatable = new datatable_1.KTDataTable(container, {
176
+ pageSize: 10,
177
+ stateSave: false,
178
+ // Provide custom search callback that handles objects
179
+ search: {
180
+ delay: 500,
181
+ callback: function (data, search) {
182
+ if (!search)
183
+ return data;
184
+ // For object search, just return all data (simplified for test)
185
+ if (typeof search === 'object')
186
+ return data;
187
+ // String search
188
+ return data.filter(function (item) {
189
+ return Object.values(item).some(function (value) {
190
+ return String(value).toLowerCase().includes(search.toLowerCase());
191
+ });
192
+ });
193
+ },
194
+ },
195
+ });
196
+ datatable.goPage(2);
197
+ // Search with object (for complex queries)
198
+ datatable.search({ name: 'User', status: 'active' });
199
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
200
+ });
201
+ });
202
+ (0, vitest_1.describe)('Scenario: Pagination resets when filter is applied', function () {
203
+ (0, vitest_1.it)('should reset to page 1 when setFilter is called from page 2+', function () {
204
+ var container = createMockDataTable(25).container;
205
+ datatable = new datatable_1.KTDataTable(container, {
206
+ pageSize: 10,
207
+ stateSave: false,
208
+ });
209
+ // Navigate to page 2
210
+ datatable.goPage(2);
211
+ (0, vitest_1.expect)(datatable.getState().page).toBe(2);
212
+ // Apply filter
213
+ var filter = {
214
+ column: 'status',
215
+ type: 'text',
216
+ value: 'active',
217
+ };
218
+ datatable.setFilter(filter);
219
+ // Assert: Pagination should reset to page 1
220
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
221
+ });
222
+ (0, vitest_1.it)('should reset to page 1 from any page when filtering', function () {
223
+ var container = createMockDataTable(50).container;
224
+ datatable = new datatable_1.KTDataTable(container, {
225
+ pageSize: 10,
226
+ stateSave: false,
227
+ });
228
+ // Navigate to page 5
229
+ datatable.goPage(5);
230
+ (0, vitest_1.expect)(datatable.getState().page).toBe(5);
231
+ // Apply filter
232
+ datatable.setFilter({
233
+ column: 'name',
234
+ type: 'text',
235
+ value: 'User 1',
236
+ });
237
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
238
+ });
239
+ (0, vitest_1.it)('should reset page for numeric filter', function () {
240
+ var container = createMockDataTable(30).container;
241
+ datatable = new datatable_1.KTDataTable(container, {
242
+ pageSize: 10,
243
+ stateSave: false,
244
+ });
245
+ datatable.goPage(3);
246
+ datatable.setFilter({
247
+ column: 'id',
248
+ type: 'numeric',
249
+ value: '5',
250
+ });
251
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
252
+ });
253
+ });
254
+ (0, vitest_1.describe)('Scenario: Multiple filters can be chained before reload', function () {
255
+ (0, vitest_1.it)('should reset page once when chaining multiple setFilter calls', function () {
256
+ var container = createMockDataTable(30).container;
257
+ datatable = new datatable_1.KTDataTable(container, {
258
+ pageSize: 10,
259
+ stateSave: false,
260
+ });
261
+ datatable.goPage(3);
262
+ (0, vitest_1.expect)(datatable.getState().page).toBe(3);
263
+ // Chain multiple filters
264
+ datatable
265
+ .setFilter({ column: 'status', type: 'text', value: 'active' })
266
+ .setFilter({ column: 'name', type: 'text', value: 'User' });
267
+ // Page should be reset to 1 after first filter
268
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
269
+ // Verify both filters are applied
270
+ var filters = datatable.getState().filters;
271
+ (0, vitest_1.expect)(filters).toHaveLength(2);
272
+ (0, vitest_1.expect)(filters[0].column).toBe('status');
273
+ (0, vitest_1.expect)(filters[1].column).toBe('name');
274
+ });
275
+ (0, vitest_1.it)('should maintain page 1 through multiple filter operations', function () {
276
+ var container = createMockDataTable(40).container;
277
+ datatable = new datatable_1.KTDataTable(container, {
278
+ pageSize: 10,
279
+ stateSave: false,
280
+ });
281
+ datatable.goPage(4);
282
+ // Apply first filter
283
+ datatable.setFilter({ column: 'status', type: 'text', value: 'active' });
284
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
285
+ // Apply second filter (page should stay at 1)
286
+ datatable.setFilter({ column: 'name', type: 'text', value: 'John' });
287
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
288
+ // Apply third filter (page should stay at 1)
289
+ datatable.setFilter({ column: 'id', type: 'numeric', value: '10' });
290
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
291
+ });
292
+ (0, vitest_1.it)('should allow filter replacement on same column', function () {
293
+ var container = createMockDataTable(30).container;
294
+ datatable = new datatable_1.KTDataTable(container, {
295
+ pageSize: 10,
296
+ stateSave: false,
297
+ });
298
+ datatable.goPage(2);
299
+ // Apply filter on 'status'
300
+ datatable.setFilter({ column: 'status', type: 'text', value: 'active' });
301
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
302
+ // Replace filter on same column
303
+ datatable.setFilter({ column: 'status', type: 'text', value: 'inactive' });
304
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
305
+ // Should only have one filter for 'status' column
306
+ var filters = datatable.getState().filters;
307
+ var statusFilters = filters.filter(function (f) { return f.column === 'status'; });
308
+ (0, vitest_1.expect)(statusFilters).toHaveLength(1);
309
+ (0, vitest_1.expect)(statusFilters[0].value).toBe('inactive');
310
+ });
311
+ });
312
+ (0, vitest_1.describe)('Scenario: Pagination reset aligns with page size behavior', function () {
313
+ (0, vitest_1.it)('should use same state update pattern as setPageSize', function () {
314
+ var container = createMockDataTable(30).container;
315
+ datatable = new datatable_1.KTDataTable(container, {
316
+ pageSize: 10,
317
+ stateSave: false,
318
+ });
319
+ // Navigate to page 2
320
+ datatable.goPage(2);
321
+ // Change page size (existing behavior)
322
+ datatable.setPageSize(20);
323
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
324
+ // Navigate to page 2 again
325
+ datatable.goPage(2);
326
+ // Apply search (new behavior)
327
+ datatable.search('test');
328
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
329
+ // Navigate to page 2 again
330
+ datatable.goPage(2);
331
+ // Apply filter (new behavior)
332
+ datatable.setFilter({ column: 'status', type: 'text', value: 'active' });
333
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
334
+ });
335
+ (0, vitest_1.it)('should reset pagination for all data-modifying operations', function () {
336
+ var container = createMockDataTable(30).container;
337
+ datatable = new datatable_1.KTDataTable(container, {
338
+ pageSize: 10,
339
+ stateSave: false,
340
+ });
341
+ // Test 1: Page size change
342
+ datatable.goPage(3);
343
+ datatable.setPageSize(15);
344
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
345
+ // Test 2: Search
346
+ datatable.goPage(3);
347
+ datatable.search('query');
348
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
349
+ // Test 3: Filter
350
+ datatable.goPage(3);
351
+ datatable.setFilter({ column: 'name', type: 'text', value: 'test' });
352
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
353
+ });
354
+ });
355
+ (0, vitest_1.describe)('Scenario: Empty search results display correctly', function () {
356
+ (0, vitest_1.it)('should show page 1 when search yields no results from page 2+', function () {
357
+ var container = createMockDataTable(25).container;
358
+ datatable = new datatable_1.KTDataTable(container, {
359
+ pageSize: 10,
360
+ stateSave: false,
361
+ });
362
+ datatable.goPage(2);
363
+ // Search for non-existent data
364
+ datatable.search('XYZ_NONEXISTENT_999');
365
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
366
+ });
367
+ (0, vitest_1.it)('should maintain page 1 state after empty search', function () {
368
+ var container = createMockDataTable(25).container;
369
+ datatable = new datatable_1.KTDataTable(container, {
370
+ pageSize: 10,
371
+ stateSave: false,
372
+ });
373
+ datatable.goPage(3);
374
+ datatable.search('NonExistent');
375
+ // Page should be 1
376
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
377
+ // Clear search
378
+ datatable.search('');
379
+ // Should still be on page 1
380
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
381
+ });
382
+ });
383
+ (0, vitest_1.describe)('Scenario: State persistence respects pagination reset', function () {
384
+ (0, vitest_1.it)('should save page 1 to state when search resets pagination', function () { return __awaiter(void 0, void 0, void 0, function () {
385
+ var container, savedState, state;
386
+ return __generator(this, function (_a) {
387
+ switch (_a.label) {
388
+ case 0:
389
+ container = createMockDataTable(25).container;
390
+ // Enable state saving with unique namespace
391
+ datatable = new datatable_1.KTDataTable(container, {
392
+ pageSize: 10,
393
+ stateSave: true,
394
+ stateNamespace: 'test-datatable-search-reset',
395
+ });
396
+ // Wait for initial _updateData() to complete
397
+ return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 100); })];
398
+ case 1:
399
+ // Wait for initial _updateData() to complete
400
+ _a.sent();
401
+ datatable.goPage(2);
402
+ // Wait for goPage to complete
403
+ return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 100); })];
404
+ case 2:
405
+ // Wait for goPage to complete
406
+ _a.sent();
407
+ datatable.search('test query');
408
+ // Wait for async state save operations to complete
409
+ return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 100); })];
410
+ case 3:
411
+ // Wait for async state save operations to complete
412
+ _a.sent();
413
+ savedState = localStorage.getItem('test-datatable-search-reset');
414
+ (0, vitest_1.expect)(savedState).toBeTruthy();
415
+ if (savedState) {
416
+ state = JSON.parse(savedState);
417
+ (0, vitest_1.expect)(state.page).toBe(1);
418
+ (0, vitest_1.expect)(state.search).toBe('test query');
419
+ }
420
+ // Cleanup
421
+ localStorage.removeItem('test-datatable-search-reset');
422
+ return [2 /*return*/];
423
+ }
424
+ });
425
+ }); });
426
+ (0, vitest_1.it)('should save page 1 to state when filter resets pagination', function () {
427
+ var container = createMockDataTable(25).container;
428
+ datatable = new datatable_1.KTDataTable(container, {
429
+ pageSize: 10,
430
+ stateSave: true,
431
+ stateNamespace: 'test-datatable-filter-reset',
432
+ });
433
+ datatable.goPage(3);
434
+ datatable.setFilter({ column: 'status', type: 'text', value: 'active' });
435
+ // Trigger reload to save state
436
+ datatable.reload();
437
+ var savedState = localStorage.getItem('test-datatable-filter-reset');
438
+ (0, vitest_1.expect)(savedState).toBeTruthy();
439
+ if (savedState) {
440
+ var state = JSON.parse(savedState);
441
+ (0, vitest_1.expect)(state.page).toBe(1);
442
+ }
443
+ // Cleanup
444
+ localStorage.removeItem('test-datatable-filter-reset');
445
+ });
446
+ (0, vitest_1.it)('should restore to page 1 with active search on reload', function () { return __awaiter(void 0, void 0, void 0, function () {
447
+ var container, namespace, table1, newContainer, table2;
448
+ return __generator(this, function (_a) {
449
+ switch (_a.label) {
450
+ case 0:
451
+ container = createMockDataTable(25).container;
452
+ namespace = 'test-datatable-restore';
453
+ table1 = new datatable_1.KTDataTable(container, {
454
+ pageSize: 10,
455
+ stateSave: true,
456
+ stateNamespace: namespace,
457
+ });
458
+ // Wait for initial load
459
+ return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 100); })];
460
+ case 1:
461
+ // Wait for initial load
462
+ _a.sent();
463
+ table1.goPage(2);
464
+ // Wait for goPage to complete
465
+ return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 100); })];
466
+ case 2:
467
+ // Wait for goPage to complete
468
+ _a.sent();
469
+ table1.search('User 5');
470
+ // Wait for search and state save to complete
471
+ return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 100); })];
472
+ case 3:
473
+ // Wait for search and state save to complete
474
+ _a.sent();
475
+ // Destroy first instance
476
+ table1.dispose();
477
+ // Wait for cleanup to complete
478
+ return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 50); })];
479
+ case 4:
480
+ // Wait for cleanup to complete
481
+ _a.sent();
482
+ document.body.innerHTML = '';
483
+ newContainer = createMockDataTable(25).container;
484
+ table2 = new datatable_1.KTDataTable(newContainer, {
485
+ pageSize: 10,
486
+ stateSave: true,
487
+ stateNamespace: namespace,
488
+ });
489
+ // Should restore to page 1 with search active
490
+ (0, vitest_1.expect)(table2.getState().page).toBe(1);
491
+ (0, vitest_1.expect)(table2.getState().search).toBe('User 5');
492
+ // Cleanup
493
+ localStorage.removeItem(namespace);
494
+ return [2 /*return*/];
495
+ }
496
+ });
497
+ }); });
498
+ });
499
+ (0, vitest_1.describe)('Edge Cases', function () {
500
+ (0, vitest_1.it)('should handle search reset on page 1 (no-op)', function () {
501
+ var container = createMockDataTable(25).container;
502
+ datatable = new datatable_1.KTDataTable(container, {
503
+ pageSize: 10,
504
+ stateSave: false,
505
+ });
506
+ // Already on page 1
507
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
508
+ datatable.search('test');
509
+ // Should still be on page 1
510
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
511
+ });
512
+ (0, vitest_1.it)('should handle filter reset on page 1 (no-op)', function () {
513
+ var container = createMockDataTable(25).container;
514
+ datatable = new datatable_1.KTDataTable(container, {
515
+ pageSize: 10,
516
+ stateSave: false,
517
+ });
518
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
519
+ datatable.setFilter({ column: 'status', type: 'text', value: 'active' });
520
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
521
+ });
522
+ (0, vitest_1.it)('should handle rapid consecutive search calls', function () {
523
+ var container = createMockDataTable(30).container;
524
+ datatable = new datatable_1.KTDataTable(container, {
525
+ pageSize: 10,
526
+ stateSave: false,
527
+ });
528
+ datatable.goPage(3);
529
+ // Rapid searches
530
+ datatable.search('query1');
531
+ datatable.search('query2');
532
+ datatable.search('query3');
533
+ // Should be on page 1 with last query
534
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
535
+ (0, vitest_1.expect)(datatable.getState().search).toBe('query3');
536
+ });
537
+ (0, vitest_1.it)('should handle search and filter in quick succession', function () {
538
+ var container = createMockDataTable(30).container;
539
+ datatable = new datatable_1.KTDataTable(container, {
540
+ pageSize: 10,
541
+ stateSave: false,
542
+ });
543
+ datatable.goPage(3);
544
+ // Search then filter quickly
545
+ datatable.search('User');
546
+ datatable.setFilter({ column: 'status', type: 'text', value: 'active' });
547
+ (0, vitest_1.expect)(datatable.getState().page).toBe(1);
548
+ (0, vitest_1.expect)(datatable.getState().search).toBe('User');
549
+ (0, vitest_1.expect)(datatable.getState().filters).toHaveLength(1);
550
+ });
551
+ });
552
+ (0, vitest_1.describe)('Backward Compatibility', function () {
553
+ (0, vitest_1.it)('should maintain same return type for search method', function () {
554
+ var container = createMockDataTable(25).container;
555
+ datatable = new datatable_1.KTDataTable(container, { pageSize: 10 });
556
+ // search() returns void
557
+ var result = datatable.search('test');
558
+ (0, vitest_1.expect)(result).toBeUndefined();
559
+ });
560
+ (0, vitest_1.it)('should maintain same return type for setFilter method', function () {
561
+ var container = createMockDataTable(25).container;
562
+ datatable = new datatable_1.KTDataTable(container, { pageSize: 10 });
563
+ // setFilter() returns this (chainable)
564
+ var result = datatable.setFilter({
565
+ column: 'status',
566
+ type: 'text',
567
+ value: 'active',
568
+ });
569
+ (0, vitest_1.expect)(result).toBe(datatable);
570
+ });
571
+ (0, vitest_1.it)('should not break existing event handlers', function () { return __awaiter(void 0, void 0, void 0, function () {
572
+ var container, reloadSpy;
573
+ return __generator(this, function (_a) {
574
+ switch (_a.label) {
575
+ case 0:
576
+ container = createMockDataTable(25).container;
577
+ datatable = new datatable_1.KTDataTable(container, { pageSize: 10, stateSave: false });
578
+ reloadSpy = vitest_1.vi.fn();
579
+ // Listen for 'reload' event directly (CustomEvent)
580
+ container.addEventListener('reload', reloadSpy);
581
+ datatable.goPage(2);
582
+ datatable.search('test');
583
+ // Wait for async reload to complete
584
+ return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 50); })];
585
+ case 1:
586
+ // Wait for async reload to complete
587
+ _a.sent();
588
+ // reload event should still fire
589
+ (0, vitest_1.expect)(reloadSpy).toHaveBeenCalled();
590
+ return [2 /*return*/];
591
+ }
592
+ });
593
+ }); });
594
+ });
595
+ });
596
+ //# sourceMappingURL=pagination-reset.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination-reset.test.js","sourceRoot":"","sources":["../../../../../src/components/datatable/__tests__/pagination-reset.test.ts"],"names":[],"mappings":"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"}