@keenthemes/ktui 1.1.0 → 1.1.2

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 (258) hide show
  1. package/README.md +0 -27
  2. package/dist/ktui.js +5269 -12550
  3. package/dist/ktui.min.js +1 -1
  4. package/dist/ktui.min.js.map +1 -1
  5. package/dist/styles.css +1133 -2706
  6. package/lib/cjs/components/datatable/__tests__/pagination-reset.test.js +596 -0
  7. package/lib/cjs/components/datatable/__tests__/pagination-reset.test.js.map +1 -0
  8. package/lib/cjs/components/datatable/__tests__/race-conditions.test.js +548 -0
  9. package/lib/cjs/components/datatable/__tests__/race-conditions.test.js.map +1 -0
  10. package/lib/cjs/components/datatable/__tests__/setup.js +63 -0
  11. package/lib/cjs/components/datatable/__tests__/setup.js.map +1 -0
  12. package/lib/cjs/components/datatable/datatable.js +92 -30
  13. package/lib/cjs/components/datatable/datatable.js.map +1 -1
  14. package/lib/cjs/components/select/combobox.js +0 -2
  15. package/lib/cjs/components/select/combobox.js.map +1 -1
  16. package/lib/cjs/components/select/config.js +4 -1
  17. package/lib/cjs/components/select/config.js.map +1 -1
  18. package/lib/cjs/components/select/dropdown.js +0 -16
  19. package/lib/cjs/components/select/dropdown.js.map +1 -1
  20. package/lib/cjs/components/select/remote.js +0 -40
  21. package/lib/cjs/components/select/remote.js.map +1 -1
  22. package/lib/cjs/components/select/search.js +80 -19
  23. package/lib/cjs/components/select/search.js.map +1 -1
  24. package/lib/cjs/components/select/select.js +98 -110
  25. package/lib/cjs/components/select/select.js.map +1 -1
  26. package/lib/cjs/components/select/tags.js +0 -2
  27. package/lib/cjs/components/select/tags.js.map +1 -1
  28. package/lib/cjs/index.js +1 -10
  29. package/lib/cjs/index.js.map +1 -1
  30. package/lib/esm/components/datatable/__tests__/pagination-reset.test.js +594 -0
  31. package/lib/esm/components/datatable/__tests__/pagination-reset.test.js.map +1 -0
  32. package/lib/esm/components/datatable/__tests__/race-conditions.test.js +546 -0
  33. package/lib/esm/components/datatable/__tests__/race-conditions.test.js.map +1 -0
  34. package/lib/esm/components/datatable/__tests__/setup.js +58 -0
  35. package/lib/esm/components/datatable/__tests__/setup.js.map +1 -0
  36. package/lib/esm/components/datatable/datatable.js +92 -30
  37. package/lib/esm/components/datatable/datatable.js.map +1 -1
  38. package/lib/esm/components/select/combobox.js +0 -2
  39. package/lib/esm/components/select/combobox.js.map +1 -1
  40. package/lib/esm/components/select/config.js +4 -1
  41. package/lib/esm/components/select/config.js.map +1 -1
  42. package/lib/esm/components/select/dropdown.js +0 -16
  43. package/lib/esm/components/select/dropdown.js.map +1 -1
  44. package/lib/esm/components/select/remote.js +0 -40
  45. package/lib/esm/components/select/remote.js.map +1 -1
  46. package/lib/esm/components/select/search.js +80 -19
  47. package/lib/esm/components/select/search.js.map +1 -1
  48. package/lib/esm/components/select/select.js +98 -110
  49. package/lib/esm/components/select/select.js.map +1 -1
  50. package/lib/esm/components/select/tags.js +0 -2
  51. package/lib/esm/components/select/tags.js.map +1 -1
  52. package/lib/esm/index.js +0 -7
  53. package/lib/esm/index.js.map +1 -1
  54. package/package.json +7 -9
  55. package/src/components/alert/alert.css +188 -429
  56. package/src/components/datatable/__tests__/pagination-reset.test.ts +657 -0
  57. package/src/components/datatable/__tests__/race-conditions.test.ts +455 -0
  58. package/src/components/datatable/__tests__/setup.ts +67 -0
  59. package/src/components/datatable/datatable.ts +66 -11
  60. package/src/components/input/input.css +0 -1
  61. package/src/components/select/__tests__/ux-behaviors.test.ts +619 -0
  62. package/src/components/select/combobox.ts +0 -1
  63. package/src/components/select/config.ts +7 -1
  64. package/src/components/select/dropdown.ts +0 -24
  65. package/src/components/select/remote.ts +0 -49
  66. package/src/components/select/search.ts +85 -21
  67. package/src/components/select/select.css +0 -1
  68. package/src/components/select/select.ts +118 -149
  69. package/src/components/select/tags.ts +0 -1
  70. package/src/components/select/variants.css +4 -0
  71. package/src/components/textarea/textarea.css +0 -1
  72. package/src/index.ts +0 -10
  73. package/styles.css +0 -1
  74. package/lib/cjs/components/alert/alert.js +0 -1025
  75. package/lib/cjs/components/alert/alert.js.map +0 -1
  76. package/lib/cjs/components/alert/index.js +0 -20
  77. package/lib/cjs/components/alert/index.js.map +0 -1
  78. package/lib/cjs/components/alert/templates.js +0 -120
  79. package/lib/cjs/components/alert/templates.js.map +0 -1
  80. package/lib/cjs/components/alert/types.js +0 -7
  81. package/lib/cjs/components/alert/types.js.map +0 -1
  82. package/lib/cjs/components/datepicker/config/config.js +0 -42
  83. package/lib/cjs/components/datepicker/config/config.js.map +0 -1
  84. package/lib/cjs/components/datepicker/config/index.js +0 -24
  85. package/lib/cjs/components/datepicker/config/index.js.map +0 -1
  86. package/lib/cjs/components/datepicker/config/interfaces.js +0 -7
  87. package/lib/cjs/components/datepicker/config/interfaces.js.map +0 -1
  88. package/lib/cjs/components/datepicker/config/types.js +0 -7
  89. package/lib/cjs/components/datepicker/config/types.js.map +0 -1
  90. package/lib/cjs/components/datepicker/core/event-manager.js +0 -135
  91. package/lib/cjs/components/datepicker/core/event-manager.js.map +0 -1
  92. package/lib/cjs/components/datepicker/core/focus-manager.js +0 -167
  93. package/lib/cjs/components/datepicker/core/focus-manager.js.map +0 -1
  94. package/lib/cjs/components/datepicker/core/helpers.js +0 -219
  95. package/lib/cjs/components/datepicker/core/helpers.js.map +0 -1
  96. package/lib/cjs/components/datepicker/core/index.js +0 -25
  97. package/lib/cjs/components/datepicker/core/index.js.map +0 -1
  98. package/lib/cjs/components/datepicker/core/unified-state-manager.js +0 -394
  99. package/lib/cjs/components/datepicker/core/unified-state-manager.js.map +0 -1
  100. package/lib/cjs/components/datepicker/datepicker.js +0 -2252
  101. package/lib/cjs/components/datepicker/datepicker.js.map +0 -1
  102. package/lib/cjs/components/datepicker/index.js +0 -24
  103. package/lib/cjs/components/datepicker/index.js.map +0 -1
  104. package/lib/cjs/components/datepicker/ui/index.js +0 -23
  105. package/lib/cjs/components/datepicker/ui/index.js.map +0 -1
  106. package/lib/cjs/components/datepicker/ui/input/dropdown.js +0 -489
  107. package/lib/cjs/components/datepicker/ui/input/dropdown.js.map +0 -1
  108. package/lib/cjs/components/datepicker/ui/input/index.js +0 -23
  109. package/lib/cjs/components/datepicker/ui/input/index.js.map +0 -1
  110. package/lib/cjs/components/datepicker/ui/input/segmented-input.js +0 -640
  111. package/lib/cjs/components/datepicker/ui/input/segmented-input.js.map +0 -1
  112. package/lib/cjs/components/datepicker/ui/renderers/calendar.js +0 -446
  113. package/lib/cjs/components/datepicker/ui/renderers/calendar.js.map +0 -1
  114. package/lib/cjs/components/datepicker/ui/renderers/footer.js +0 -42
  115. package/lib/cjs/components/datepicker/ui/renderers/footer.js.map +0 -1
  116. package/lib/cjs/components/datepicker/ui/renderers/header.js +0 -32
  117. package/lib/cjs/components/datepicker/ui/renderers/header.js.map +0 -1
  118. package/lib/cjs/components/datepicker/ui/renderers/index.js +0 -25
  119. package/lib/cjs/components/datepicker/ui/renderers/index.js.map +0 -1
  120. package/lib/cjs/components/datepicker/ui/renderers/time-picker.js +0 -384
  121. package/lib/cjs/components/datepicker/ui/renderers/time-picker.js.map +0 -1
  122. package/lib/cjs/components/datepicker/ui/templates/index.js +0 -22
  123. package/lib/cjs/components/datepicker/ui/templates/index.js.map +0 -1
  124. package/lib/cjs/components/datepicker/ui/templates/templates.js +0 -253
  125. package/lib/cjs/components/datepicker/ui/templates/templates.js.map +0 -1
  126. package/lib/cjs/components/datepicker/utils/date-formatters.js +0 -88
  127. package/lib/cjs/components/datepicker/utils/date-formatters.js.map +0 -1
  128. package/lib/cjs/components/datepicker/utils/date-utils.js +0 -194
  129. package/lib/cjs/components/datepicker/utils/date-utils.js.map +0 -1
  130. package/lib/cjs/components/datepicker/utils/index.js +0 -24
  131. package/lib/cjs/components/datepicker/utils/index.js.map +0 -1
  132. package/lib/cjs/components/datepicker/utils/time-utils.js +0 -213
  133. package/lib/cjs/components/datepicker/utils/time-utils.js.map +0 -1
  134. package/lib/esm/components/alert/alert.js +0 -1022
  135. package/lib/esm/components/alert/alert.js.map +0 -1
  136. package/lib/esm/components/alert/index.js +0 -4
  137. package/lib/esm/components/alert/index.js.map +0 -1
  138. package/lib/esm/components/alert/templates.js +0 -112
  139. package/lib/esm/components/alert/templates.js.map +0 -1
  140. package/lib/esm/components/alert/types.js +0 -6
  141. package/lib/esm/components/alert/types.js.map +0 -1
  142. package/lib/esm/components/datepicker/config/config.js +0 -39
  143. package/lib/esm/components/datepicker/config/config.js.map +0 -1
  144. package/lib/esm/components/datepicker/config/index.js +0 -8
  145. package/lib/esm/components/datepicker/config/index.js.map +0 -1
  146. package/lib/esm/components/datepicker/config/interfaces.js +0 -6
  147. package/lib/esm/components/datepicker/config/interfaces.js.map +0 -1
  148. package/lib/esm/components/datepicker/config/types.js +0 -6
  149. package/lib/esm/components/datepicker/config/types.js.map +0 -1
  150. package/lib/esm/components/datepicker/core/event-manager.js +0 -133
  151. package/lib/esm/components/datepicker/core/event-manager.js.map +0 -1
  152. package/lib/esm/components/datepicker/core/focus-manager.js +0 -164
  153. package/lib/esm/components/datepicker/core/focus-manager.js.map +0 -1
  154. package/lib/esm/components/datepicker/core/helpers.js +0 -211
  155. package/lib/esm/components/datepicker/core/helpers.js.map +0 -1
  156. package/lib/esm/components/datepicker/core/index.js +0 -9
  157. package/lib/esm/components/datepicker/core/index.js.map +0 -1
  158. package/lib/esm/components/datepicker/core/unified-state-manager.js +0 -391
  159. package/lib/esm/components/datepicker/core/unified-state-manager.js.map +0 -1
  160. package/lib/esm/components/datepicker/datepicker.js +0 -2248
  161. package/lib/esm/components/datepicker/datepicker.js.map +0 -1
  162. package/lib/esm/components/datepicker/index.js +0 -7
  163. package/lib/esm/components/datepicker/index.js.map +0 -1
  164. package/lib/esm/components/datepicker/ui/index.js +0 -7
  165. package/lib/esm/components/datepicker/ui/index.js.map +0 -1
  166. package/lib/esm/components/datepicker/ui/input/dropdown.js +0 -486
  167. package/lib/esm/components/datepicker/ui/input/dropdown.js.map +0 -1
  168. package/lib/esm/components/datepicker/ui/input/index.js +0 -7
  169. package/lib/esm/components/datepicker/ui/input/index.js.map +0 -1
  170. package/lib/esm/components/datepicker/ui/input/segmented-input.js +0 -637
  171. package/lib/esm/components/datepicker/ui/input/segmented-input.js.map +0 -1
  172. package/lib/esm/components/datepicker/ui/renderers/calendar.js +0 -443
  173. package/lib/esm/components/datepicker/ui/renderers/calendar.js.map +0 -1
  174. package/lib/esm/components/datepicker/ui/renderers/footer.js +0 -39
  175. package/lib/esm/components/datepicker/ui/renderers/footer.js.map +0 -1
  176. package/lib/esm/components/datepicker/ui/renderers/header.js +0 -29
  177. package/lib/esm/components/datepicker/ui/renderers/header.js.map +0 -1
  178. package/lib/esm/components/datepicker/ui/renderers/index.js +0 -9
  179. package/lib/esm/components/datepicker/ui/renderers/index.js.map +0 -1
  180. package/lib/esm/components/datepicker/ui/renderers/time-picker.js +0 -381
  181. package/lib/esm/components/datepicker/ui/renderers/time-picker.js.map +0 -1
  182. package/lib/esm/components/datepicker/ui/templates/index.js +0 -6
  183. package/lib/esm/components/datepicker/ui/templates/index.js.map +0 -1
  184. package/lib/esm/components/datepicker/ui/templates/templates.js +0 -242
  185. package/lib/esm/components/datepicker/ui/templates/templates.js.map +0 -1
  186. package/lib/esm/components/datepicker/utils/date-formatters.js +0 -83
  187. package/lib/esm/components/datepicker/utils/date-formatters.js.map +0 -1
  188. package/lib/esm/components/datepicker/utils/date-utils.js +0 -184
  189. package/lib/esm/components/datepicker/utils/date-utils.js.map +0 -1
  190. package/lib/esm/components/datepicker/utils/index.js +0 -8
  191. package/lib/esm/components/datepicker/utils/index.js.map +0 -1
  192. package/lib/esm/components/datepicker/utils/time-utils.js +0 -201
  193. package/lib/esm/components/datepicker/utils/time-utils.js.map +0 -1
  194. package/src/components/alert/alert.ts +0 -990
  195. package/src/components/alert/index.ts +0 -4
  196. package/src/components/alert/templates.ts +0 -110
  197. package/src/components/alert/tests/accessibility/aria-roles.test.ts +0 -19
  198. package/src/components/alert/tests/accessibility/focus-management.test.ts +0 -19
  199. package/src/components/alert/tests/accessibility/keyboard-nav.test.ts +0 -22
  200. package/src/components/alert/tests/actions/confirm-cancel.test.ts +0 -122
  201. package/src/components/alert/tests/actions/input-field.test.ts +0 -180
  202. package/src/components/alert/tests/alert.basic.test.ts +0 -126
  203. package/src/components/alert/tests/alert.config.test.ts +0 -75
  204. package/src/components/alert/tests/alert.templates.test.ts +0 -17
  205. package/src/components/alert/tests/config/attribute-config.test.ts +0 -94
  206. package/src/components/alert/tests/config/json-config.test.ts +0 -119
  207. package/src/components/alert/tests/config/merging.test.ts +0 -89
  208. package/src/components/alert/tests/dismissal/auto-dismiss.test.ts +0 -96
  209. package/src/components/alert/tests/dismissal/escape-key-dismiss.test.ts +0 -105
  210. package/src/components/alert/tests/dismissal/manual-dismiss.test.ts +0 -90
  211. package/src/components/alert/tests/dismissal/outside-click-dismiss.test.ts +0 -91
  212. package/src/components/alert/tests/edge-cases/invalid-config.test.ts +0 -19
  213. package/src/components/alert/tests/edge-cases/multiple-alerts.test.ts +0 -19
  214. package/src/components/alert/tests/rendering/custom-content.test.ts +0 -81
  215. package/src/components/alert/tests/rendering/info-alert.test.ts +0 -84
  216. package/src/components/alert/tests/rendering/success-alert.test.ts +0 -100
  217. package/src/components/alert/tests/templates/default-templates.test.ts +0 -16
  218. package/src/components/alert/tests/templates/user-templates.test.ts +0 -16
  219. package/src/components/alert/types.ts +0 -145
  220. package/src/components/datepicker/__tests__/datepicker-events.test.ts +0 -356
  221. package/src/components/datepicker/__tests__/datepicker-init.test.ts +0 -343
  222. package/src/components/datepicker/__tests__/datepicker-integration.test.ts +0 -435
  223. package/src/components/datepicker/__tests__/datepicker-timezone.test.ts +0 -220
  224. package/src/components/datepicker/__tests__/segmented-input-focus.test.ts +0 -380
  225. package/src/components/datepicker/__tests__/selective-state-updates.test.ts +0 -400
  226. package/src/components/datepicker/__tests__/state-manager.test.ts +0 -421
  227. package/src/components/datepicker/__tests__/time-preservation.test.ts +0 -387
  228. package/src/components/datepicker/config/config.ts +0 -40
  229. package/src/components/datepicker/config/index.ts +0 -8
  230. package/src/components/datepicker/config/interfaces.ts +0 -82
  231. package/src/components/datepicker/config/types.ts +0 -188
  232. package/src/components/datepicker/core/event-manager.ts +0 -159
  233. package/src/components/datepicker/core/focus-manager.ts +0 -201
  234. package/src/components/datepicker/core/helpers.ts +0 -231
  235. package/src/components/datepicker/core/index.ts +0 -9
  236. package/src/components/datepicker/core/unified-state-manager.ts +0 -459
  237. package/src/components/datepicker/datepicker.css +0 -435
  238. package/src/components/datepicker/datepicker.ts +0 -2548
  239. package/src/components/datepicker/index.ts +0 -8
  240. package/src/components/datepicker/ui/index.ts +0 -7
  241. package/src/components/datepicker/ui/input/dropdown.ts +0 -552
  242. package/src/components/datepicker/ui/input/index.ts +0 -7
  243. package/src/components/datepicker/ui/input/segmented-input.ts +0 -638
  244. package/src/components/datepicker/ui/renderers/__tests__/calendar-optimizations.test.ts +0 -611
  245. package/src/components/datepicker/ui/renderers/calendar.ts +0 -530
  246. package/src/components/datepicker/ui/renderers/footer.ts +0 -43
  247. package/src/components/datepicker/ui/renderers/header.ts +0 -33
  248. package/src/components/datepicker/ui/renderers/index.ts +0 -9
  249. package/src/components/datepicker/ui/renderers/time-picker.ts +0 -438
  250. package/src/components/datepicker/ui/templates/index.ts +0 -6
  251. package/src/components/datepicker/ui/templates/templates.ts +0 -306
  252. package/src/components/datepicker/utils/__tests__/date-formatters.test.ts +0 -160
  253. package/src/components/datepicker/utils/__tests__/date-utils-keys.test.ts +0 -86
  254. package/src/components/datepicker/utils/__tests__/date-utils-timezone.test.ts +0 -215
  255. package/src/components/datepicker/utils/date-formatters.ts +0 -85
  256. package/src/components/datepicker/utils/date-utils.ts +0 -172
  257. package/src/components/datepicker/utils/index.ts +0 -8
  258. package/src/components/datepicker/utils/time-utils.ts +0 -221
@@ -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":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,iCAA8D;AAC9D,0CAA2C;AAG3C,IAAA,iBAAQ,EAAC,gCAAgC,EAAE;IAC1C,IAAI,SAAsB,CAAC;IAC3B,IAAI,YAA8B,CAAC;IACnC,IAAI,SAA2B,CAAC;IAEhC;;OAEG;IACH,IAAM,mBAAmB,GAAG,UAAC,WAAwB;QAAxB,4BAAA,EAAA,gBAAwB;QACpD,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,SAAS,CAAC,EAAE,GAAG,0BAA0B,CAAC;QAE1C,yBAAyB;QACzB,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC/C,YAAY,CAAC,YAAY,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC;QAC7D,YAAY,CAAC,EAAE,GAAG,YAAY,CAAC;QAE/B,IAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACzC,GAAG,CAAC,YAAY,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC;QACnD,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;QAEvB,IAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACzC,GAAG,CAAC,YAAY,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC;QACrD,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC;QAEzB,IAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACzC,GAAG,CAAC,YAAY,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC;QACvD,GAAG,CAAC,WAAW,GAAG,QAAQ,CAAC;QAE3B,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC3B,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC3B,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC3B,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC7B,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEhC,gCAAgC;QAChC,IAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,IAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACzC,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAE5B,IAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACzC,GAAG,CAAC,WAAW,GAAG,eAAQ,CAAC,CAAE,CAAC;YAE9B,IAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACzC,GAAG,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;YAEtD,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACrB,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACrB,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACrB,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;QACD,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEhC,iCAAiC;QACjC,IAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAClD,WAAW,CAAC,YAAY,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;QAE3D,4BAA4B;QAC5B,IAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACrD,WAAW,CAAC,YAAY,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;QAE3D,8BAA8B;QAC9B,IAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACxD,iBAAiB,CAAC,YAAY,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC;QAEvE,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACpC,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACnC,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACnC,SAAS,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QAEzC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAErC,OAAO;YACN,SAAS,WAAA;YACT,YAAY,cAAA;YACZ,WAAW,aAAA;YACX,WAAW,aAAA;YACX,iBAAiB,mBAAA;SACjB,CAAC;IACH,CAAC,CAAC;IAEF,IAAA,mBAAU,EAAC;QACV,8BAA8B;QAC9B,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAC7B,WAAE,CAAC,aAAa,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,sDAAsD,EAAE;QAChE,IAAA,WAAE,EAAC,2DAA2D,EAAE;YAC/D,mEAAmE;YAC3D,IAAA,SAAS,GAAK,mBAAmB,CAAC,EAAE,CAAC,UAA5B,CAA6B;YAC9C,SAAS,GAAG,IAAI,uBAAW,CAAC,SAAS,EAAE;gBACtC,QAAQ,EAAE,EAAE;gBACZ,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC;YAEH,qBAAqB;YACrB,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACpB,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE1C,iBAAiB;YACjB,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAE3B,4CAA4C;YAC5C,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,mDAAmD,EAAE;YAC/C,IAAA,SAAS,GAAK,mBAAmB,CAAC,EAAE,CAAC,UAA5B,CAA6B;YAC9C,SAAS,GAAG,IAAI,uBAAW,CAAC,SAAS,EAAE;gBACtC,QAAQ,EAAE,EAAE;gBACZ,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC;YAEH,qBAAqB;YACrB,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACpB,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE1C,iBAAiB;YACjB,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAE/B,SAAS;YACT,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,sDAAsD,EAAE;YAClD,IAAA,SAAS,GAAK,mBAAmB,CAAC,EAAE,CAAC,UAA5B,CAA6B;YAC9C,SAAS,GAAG,IAAI,uBAAW,CAAC,SAAS,EAAE;gBACtC,QAAQ,EAAE,EAAE;gBACZ,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC;YAEH,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAEpB,0CAA0C;YAC1C,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;YAEvC,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,yCAAyC,EAAE;YACrC,IAAA,SAAS,GAAK,mBAAmB,CAAC,EAAE,CAAC,UAA5B,CAA6B;YAC9C,SAAS,GAAG,IAAI,uBAAW,CAAC,SAAS,EAAE;gBACtC,QAAQ,EAAE,EAAE;gBACZ,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC;YAEH,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACpB,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAErB,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,oDAAoD,EAAE;YAChD,IAAA,SAAS,GAAK,mBAAmB,CAAC,EAAE,CAAC,UAA5B,CAA6B;YAC9C,SAAS,GAAG,IAAI,uBAAW,CAAC,SAAS,EAAE;gBACtC,QAAQ,EAAE,EAAE;gBACZ,SAAS,EAAE,KAAK;gBAChB,sDAAsD;gBACtD,MAAM,EAAE;oBACP,KAAK,EAAE,GAAG;oBACV,QAAQ,EAAE,UAAC,IAAW,EAAE,MAAuB;wBAC9C,IAAI,CAAC,MAAM;4BAAE,OAAO,IAAI,CAAC;wBACzB,gEAAgE;wBAChE,IAAI,OAAO,MAAM,KAAK,QAAQ;4BAAE,OAAO,IAAI,CAAC;wBAC5C,gBAAgB;wBAChB,OAAO,IAAI,CAAC,MAAM,CAAC,UAAC,IAAS;4BAC5B,OAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAC,KAAU;gCACnC,OAAA,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAE,MAAiB,CAAC,WAAW,EAAE,CAAC;4BAAtE,CAAsE,CACtE;wBAFD,CAEC,CACD,CAAC;oBACH,CAAC;iBACD;aACD,CAAC,CAAC;YAEH,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAEpB,2CAA2C;YAC3C,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YAErD,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,oDAAoD,EAAE;QAC9D,IAAA,WAAE,EAAC,8DAA8D,EAAE;YAC1D,IAAA,SAAS,GAAK,mBAAmB,CAAC,EAAE,CAAC,UAA5B,CAA6B;YAC9C,SAAS,GAAG,IAAI,uBAAW,CAAC,SAAS,EAAE;gBACtC,QAAQ,EAAE,EAAE;gBACZ,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC;YAEH,qBAAqB;YACrB,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACpB,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE1C,eAAe;YACf,IAAM,MAAM,GAAqC;gBAChD,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,QAAQ;aACf,CAAC;YACF,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAE5B,4CAA4C;YAC5C,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,qDAAqD,EAAE;YACjD,IAAA,SAAS,GAAK,mBAAmB,CAAC,EAAE,CAAC,UAA5B,CAA6B;YAC9C,SAAS,GAAG,IAAI,uBAAW,CAAC,SAAS,EAAE;gBACtC,QAAQ,EAAE,EAAE;gBACZ,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC;YAEH,qBAAqB;YACrB,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACpB,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE1C,eAAe;YACf,SAAS,CAAC,SAAS,CAAC;gBACnB,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,QAAQ;aACf,CAAC,CAAC;YAEH,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,sCAAsC,EAAE;YAClC,IAAA,SAAS,GAAK,mBAAmB,CAAC,EAAE,CAAC,UAA5B,CAA6B;YAC9C,SAAS,GAAG,IAAI,uBAAW,CAAC,SAAS,EAAE;gBACtC,QAAQ,EAAE,EAAE;gBACZ,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC;YAEH,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAEpB,SAAS,CAAC,SAAS,CAAC;gBACnB,MAAM,EAAE,IAAI;gBACZ,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,GAAG;aACV,CAAC,CAAC;YAEH,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,yDAAyD,EAAE;QACnE,IAAA,WAAE,EAAC,+DAA+D,EAAE;YAC3D,IAAA,SAAS,GAAK,mBAAmB,CAAC,EAAE,CAAC,UAA5B,CAA6B;YAC9C,SAAS,GAAG,IAAI,uBAAW,CAAC,SAAS,EAAE;gBACtC,QAAQ,EAAE,EAAE;gBACZ,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC;YAEH,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACpB,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE1C,yBAAyB;YACzB,SAAS;iBACP,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;iBAC9D,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAE7D,+CAA+C;YAC/C,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE1C,kCAAkC;YAClC,IAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC;YAC7C,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAChC,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAA,eAAM,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,2DAA2D,EAAE;YACvD,IAAA,SAAS,GAAK,mBAAmB,CAAC,EAAE,CAAC,UAA5B,CAA6B;YAC9C,SAAS,GAAG,IAAI,uBAAW,CAAC,SAAS,EAAE;gBACtC,QAAQ,EAAE,EAAE;gBACZ,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC;YAEH,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAEpB,qBAAqB;YACrB,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YACzE,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE1C,8CAA8C;YAC9C,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACrE,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE1C,6CAA6C;YAC7C,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpE,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,gDAAgD,EAAE;YAC5C,IAAA,SAAS,GAAK,mBAAmB,CAAC,EAAE,CAAC,UAA5B,CAA6B;YAC9C,SAAS,GAAG,IAAI,uBAAW,CAAC,SAAS,EAAE;gBACtC,QAAQ,EAAE,EAAE;gBACZ,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC;YAEH,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAEpB,2BAA2B;YAC3B,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YACzE,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE1C,gCAAgC;YAChC,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YAC3E,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE1C,kDAAkD;YAClD,IAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC;YAC7C,IAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,MAAM,KAAK,QAAQ,EAArB,CAAqB,CAAC,CAAC;YACnE,IAAA,eAAM,EAAC,aAAa,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACtC,IAAA,eAAM,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,2DAA2D,EAAE;QACrE,IAAA,WAAE,EAAC,qDAAqD,EAAE;YACjD,IAAA,SAAS,GAAK,mBAAmB,CAAC,EAAE,CAAC,UAA5B,CAA6B;YAC9C,SAAS,GAAG,IAAI,uBAAW,CAAC,SAAS,EAAE;gBACtC,QAAQ,EAAE,EAAE;gBACZ,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC;YAEH,qBAAqB;YACrB,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAEpB,uCAAuC;YACvC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC1B,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE1C,2BAA2B;YAC3B,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAEpB,8BAA8B;YAC9B,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzB,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE1C,2BAA2B;YAC3B,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAEpB,8BAA8B;YAC9B,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YACzE,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,2DAA2D,EAAE;YACvD,IAAA,SAAS,GAAK,mBAAmB,CAAC,EAAE,CAAC,UAA5B,CAA6B;YAC9C,SAAS,GAAG,IAAI,uBAAW,CAAC,SAAS,EAAE;gBACtC,QAAQ,EAAE,EAAE;gBACZ,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC;YAEH,2BAA2B;YAC3B,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACpB,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC1B,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE1C,iBAAiB;YACjB,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACpB,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC1B,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE1C,iBAAiB;YACjB,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACpB,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACrE,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,kDAAkD,EAAE;QAC5D,IAAA,WAAE,EAAC,+DAA+D,EAAE;YAC3D,IAAA,SAAS,GAAK,mBAAmB,CAAC,EAAE,CAAC,UAA5B,CAA6B;YAC9C,SAAS,GAAG,IAAI,uBAAW,CAAC,SAAS,EAAE;gBACtC,QAAQ,EAAE,EAAE;gBACZ,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC;YAEH,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAEpB,+BAA+B;YAC/B,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAExC,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,iDAAiD,EAAE;YAC7C,IAAA,SAAS,GAAK,mBAAmB,CAAC,EAAE,CAAC,UAA5B,CAA6B;YAC9C,SAAS,GAAG,IAAI,uBAAW,CAAC,SAAS,EAAE;gBACtC,QAAQ,EAAE,EAAE;gBACZ,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC;YAEH,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACpB,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAEhC,mBAAmB;YACnB,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE1C,eAAe;YACf,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAErB,4BAA4B;YAC5B,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,uDAAuD,EAAE;QACjE,IAAA,WAAE,EAAC,2DAA2D,EAAE;;;;;wBACvD,SAAS,GAAK,mBAAmB,CAAC,EAAE,CAAC,UAA5B,CAA6B;wBAE9C,4CAA4C;wBAC5C,SAAS,GAAG,IAAI,uBAAW,CAAC,SAAS,EAAE;4BACtC,QAAQ,EAAE,EAAE;4BACZ,SAAS,EAAE,IAAI;4BACf,cAAc,EAAE,6BAA6B;yBAC7C,CAAC,CAAC;wBAEH,6CAA6C;wBAC7C,qBAAM,IAAI,OAAO,CAAC,UAAC,OAAO,IAAK,OAAA,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,EAAxB,CAAwB,CAAC,EAAA;;wBADxD,6CAA6C;wBAC7C,SAAwD,CAAC;wBAEzD,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;wBAEpB,8BAA8B;wBAC9B,qBAAM,IAAI,OAAO,CAAC,UAAC,OAAO,IAAK,OAAA,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,EAAxB,CAAwB,CAAC,EAAA;;wBADxD,8BAA8B;wBAC9B,SAAwD,CAAC;wBAEzD,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBAE/B,mDAAmD;wBACnD,qBAAM,IAAI,OAAO,CAAC,UAAC,OAAO,IAAK,OAAA,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,EAAxB,CAAwB,CAAC,EAAA;;wBADxD,mDAAmD;wBACnD,SAAwD,CAAC;wBAGnD,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;wBACvE,IAAA,eAAM,EAAC,UAAU,CAAC,CAAC,UAAU,EAAE,CAAC;wBAEhC,IAAI,UAAU,EAAE,CAAC;4BACV,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;4BACrC,IAAA,eAAM,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;4BAC3B,IAAA,eAAM,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBACzC,CAAC;wBAED,UAAU;wBACV,YAAY,CAAC,UAAU,CAAC,6BAA6B,CAAC,CAAC;;;;aACvD,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,2DAA2D,EAAE;YACvD,IAAA,SAAS,GAAK,mBAAmB,CAAC,EAAE,CAAC,UAA5B,CAA6B;YAE9C,SAAS,GAAG,IAAI,uBAAW,CAAC,SAAS,EAAE;gBACtC,QAAQ,EAAE,EAAE;gBACZ,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,6BAA6B;aAC7C,CAAC,CAAC;YAEH,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACpB,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAEzE,+BAA+B;YAC/B,SAAS,CAAC,MAAM,EAAE,CAAC;YAEnB,IAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;YACvE,IAAA,eAAM,EAAC,UAAU,CAAC,CAAC,UAAU,EAAE,CAAC;YAEhC,IAAI,UAAU,EAAE,CAAC;gBAChB,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACrC,IAAA,eAAM,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;YAED,UAAU;YACV,YAAY,CAAC,UAAU,CAAC,6BAA6B,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,uDAAuD,EAAE;;;;;wBACnD,SAAS,GAAK,mBAAmB,CAAC,EAAE,CAAC,UAA5B,CAA6B;wBACxC,SAAS,GAAG,wBAAwB,CAAC;wBAGvC,MAAM,GAAG,IAAI,uBAAW,CAAC,SAAS,EAAE;4BACvC,QAAQ,EAAE,EAAE;4BACZ,SAAS,EAAE,IAAI;4BACf,cAAc,EAAE,SAAS;yBACzB,CAAC,CAAC;wBAEH,wBAAwB;wBACxB,qBAAM,IAAI,OAAO,CAAC,UAAC,OAAO,IAAK,OAAA,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,EAAxB,CAAwB,CAAC,EAAA;;wBADxD,wBAAwB;wBACxB,SAAwD,CAAC;wBAEzD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;wBAEjB,8BAA8B;wBAC9B,qBAAM,IAAI,OAAO,CAAC,UAAC,OAAO,IAAK,OAAA,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,EAAxB,CAAwB,CAAC,EAAA;;wBADxD,8BAA8B;wBAC9B,SAAwD,CAAC;wBAEzD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;wBAExB,6CAA6C;wBAC7C,qBAAM,IAAI,OAAO,CAAC,UAAC,OAAO,IAAK,OAAA,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,EAAxB,CAAwB,CAAC,EAAA;;wBADxD,6CAA6C;wBAC7C,SAAwD,CAAC;wBAEzD,yBAAyB;wBACzB,MAAM,CAAC,OAAO,EAAE,CAAC;wBAEjB,+BAA+B;wBAC/B,qBAAM,IAAI,OAAO,CAAC,UAAC,OAAO,IAAK,OAAA,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,EAAvB,CAAuB,CAAC,EAAA;;wBADvD,+BAA+B;wBAC/B,SAAuD,CAAC;wBAExD,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;wBAGV,YAAY,GAAK,mBAAmB,CAAC,EAAE,CAAC,UAA5B,CAA6B;wBACtD,MAAM,GAAG,IAAI,uBAAW,CAAC,YAAY,EAAE;4BAC5C,QAAQ,EAAE,EAAE;4BACZ,SAAS,EAAE,IAAI;4BACf,cAAc,EAAE,SAAS;yBACzB,CAAC,CAAC;wBAEH,8CAA8C;wBAC9C,IAAA,eAAM,EAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACvC,IAAA,eAAM,EAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAEhD,UAAU;wBACV,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;;;;aACnC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,YAAY,EAAE;QACtB,IAAA,WAAE,EAAC,8CAA8C,EAAE;YAC1C,IAAA,SAAS,GAAK,mBAAmB,CAAC,EAAE,CAAC,UAA5B,CAA6B;YAC9C,SAAS,GAAG,IAAI,uBAAW,CAAC,SAAS,EAAE;gBACtC,QAAQ,EAAE,EAAE;gBACZ,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC;YAEH,oBAAoB;YACpB,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE1C,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAEzB,4BAA4B;YAC5B,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,8CAA8C,EAAE;YAC1C,IAAA,SAAS,GAAK,mBAAmB,CAAC,EAAE,CAAC,UAA5B,CAA6B;YAC9C,SAAS,GAAG,IAAI,uBAAW,CAAC,SAAS,EAAE;gBACtC,QAAQ,EAAE,EAAE;gBACZ,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC;YAEH,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE1C,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAEzE,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,8CAA8C,EAAE;YAC1C,IAAA,SAAS,GAAK,mBAAmB,CAAC,EAAE,CAAC,UAA5B,CAA6B;YAC9C,SAAS,GAAG,IAAI,uBAAW,CAAC,SAAS,EAAE;gBACtC,QAAQ,EAAE,EAAE;gBACZ,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC;YAEH,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAEpB,iBAAiB;YACjB,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC3B,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC3B,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAE3B,sCAAsC;YACtC,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1C,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,qDAAqD,EAAE;YACjD,IAAA,SAAS,GAAK,mBAAmB,CAAC,EAAE,CAAC,UAA5B,CAA6B;YAC9C,SAAS,GAAG,IAAI,uBAAW,CAAC,SAAS,EAAE;gBACtC,QAAQ,EAAE,EAAE;gBACZ,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC;YAEH,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAEpB,6BAA6B;YAC7B,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzB,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAEzE,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1C,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjD,IAAA,eAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,wBAAwB,EAAE;QAClC,IAAA,WAAE,EAAC,oDAAoD,EAAE;YAChD,IAAA,SAAS,GAAK,mBAAmB,CAAC,EAAE,CAAC,UAA5B,CAA6B;YAC9C,SAAS,GAAG,IAAI,uBAAW,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YAEzD,wBAAwB;YACxB,IAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACxC,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,uDAAuD,EAAE;YACnD,IAAA,SAAS,GAAK,mBAAmB,CAAC,EAAE,CAAC,UAA5B,CAA6B;YAC9C,SAAS,GAAG,IAAI,uBAAW,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YAEzD,uCAAuC;YACvC,IAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC;gBAClC,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,QAAQ;aACf,CAAC,CAAC;YAEH,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,0CAA0C,EAAE;;;;;wBACtC,SAAS,GAAK,mBAAmB,CAAC,EAAE,CAAC,UAA5B,CAA6B;wBAC9C,SAAS,GAAG,IAAI,uBAAW,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;wBAErE,SAAS,GAAG,WAAE,CAAC,EAAE,EAAE,CAAC;wBAC1B,mDAAmD;wBACnD,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;wBAEhD,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;wBACpB,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBAEzB,oCAAoC;wBACpC,qBAAM,IAAI,OAAO,CAAC,UAAC,OAAO,IAAK,OAAA,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,EAAvB,CAAuB,CAAC,EAAA;;wBADvD,oCAAoC;wBACpC,SAAuD,CAAC;wBAExD,iCAAiC;wBACjC,IAAA,eAAM,EAAC,SAAS,CAAC,CAAC,gBAAgB,EAAE,CAAC;;;;aACrC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}