@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
@@ -1,211 +0,0 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
13
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
14
- if (ar || !(i in from)) {
15
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
16
- ar[i] = from[i];
17
- }
18
- }
19
- return to.concat(ar || Array.prototype.slice.call(from));
20
- };
21
- import { renderTemplateToDOM, createTemplateRenderer, getTemplateStrings } from '../ui/templates/templates';
22
- import { SegmentedInput } from '../ui/input/segmented-input';
23
- import { getTimeSegments } from '../utils/time-utils';
24
- import { getSegmentOrderFromFormat, normalizeDateToLocalMidnight } from '../utils/date-utils';
25
- /**
26
- * Get segments array based on configuration (date + optional time)
27
- * @param config Datepicker configuration
28
- * @returns Array of segment types
29
- */
30
- export function getSegmentsForConfig(config) {
31
- // Determine date segments based on format
32
- var segments;
33
- if (config.format && typeof config.format === 'string') {
34
- // Use format-derived segment order for date parts
35
- segments = getSegmentOrderFromFormat(config.format);
36
- }
37
- else {
38
- // Default fallback
39
- segments = ['month', 'day', 'year'];
40
- }
41
- // Add time segments if time is enabled
42
- if (config.enableTime) {
43
- var timeSegments = getTimeSegments(config.timeGranularity || 'minute');
44
- segments = __spreadArray(__spreadArray([], segments, true), timeSegments, true);
45
- // Add AM/PM for 12-hour format
46
- if (config.timeFormat === '12h') {
47
- segments.push('ampm');
48
- }
49
- }
50
- return segments;
51
- }
52
- export function renderSingleSegmentedInputUI(inputWrapperTpl, calendarButtonHtml, config) {
53
- // Get template renderer with proper configuration
54
- var templates = getTemplateStrings(config);
55
- var templateRenderer = createTemplateRenderer(templates);
56
- // Create the segmented input container using the template system
57
- var segmentedInputEl = templateRenderer.renderTemplateToElement({
58
- templateKey: 'segmentedDateInput',
59
- data: { segments: '' }, // Empty segments initially, will be populated by SegmentedInput
60
- configClasses: config === null || config === void 0 ? void 0 : config.classes // Pass config classes for proper styling
61
- });
62
- var inputWrapperHtml;
63
- if (typeof inputWrapperTpl === 'function') {
64
- inputWrapperHtml = inputWrapperTpl({ input: segmentedInputEl.outerHTML, icon: calendarButtonHtml, class: '' });
65
- }
66
- else {
67
- inputWrapperHtml = inputWrapperTpl
68
- .replace(/{{icon}}/g, calendarButtonHtml)
69
- .replace(/{{input}}/g, segmentedInputEl.outerHTML)
70
- .replace(/{{class}}/g, ''); // Replace class placeholder with empty string if no class provided
71
- }
72
- var inputWrapperFrag = renderTemplateToDOM(inputWrapperHtml);
73
- return inputWrapperFrag.firstElementChild;
74
- }
75
- export function renderRangeSegmentedInputUI(inputWrapperTpl, rangeTpl, calendarButtonHtml, config) {
76
- // Get template renderer with proper configuration
77
- var templates = getTemplateStrings(config);
78
- var templateRenderer = createTemplateRenderer(templates);
79
- var inputWrapperHtml;
80
- if (typeof inputWrapperTpl === 'function') {
81
- inputWrapperHtml = inputWrapperTpl({ input: '', icon: calendarButtonHtml, class: '' });
82
- }
83
- else {
84
- inputWrapperHtml = inputWrapperTpl
85
- .replace(/{{icon}}/g, calendarButtonHtml)
86
- .replace(/{{input}}/g, '')
87
- .replace(/{{class}}/g, ''); // Replace class placeholder with empty string if no class provided
88
- }
89
- var inputWrapperFrag = renderTemplateToDOM(inputWrapperHtml);
90
- var inputWrapperEl = inputWrapperFrag.firstElementChild;
91
- // Create containers for start and end segmented inputs using template system
92
- var startContainer = templateRenderer.renderTemplateToElement({
93
- templateKey: 'segmentedDateInput',
94
- data: { segments: '' },
95
- configClasses: __assign(__assign({}, config === null || config === void 0 ? void 0 : config.classes), { segmentedDateInput: 'kt-segmented-input-start' })
96
- });
97
- startContainer.setAttribute('aria-label', 'Start date');
98
- startContainer.setAttribute('data-kt-datepicker-start-container', '');
99
- var endContainer = templateRenderer.renderTemplateToElement({
100
- templateKey: 'segmentedDateInput',
101
- data: { segments: '' },
102
- configClasses: __assign(__assign({}, config === null || config === void 0 ? void 0 : config.classes), { segmentedDateInput: 'kt-segmented-input-end' })
103
- });
104
- endContainer.setAttribute('aria-label', 'End date');
105
- endContainer.setAttribute('data-kt-datepicker-end-container', '');
106
- // Render template with placeholders using template system
107
- var separator = '–';
108
- // Render start and end containers using templates
109
- var startContainerHtml = templateRenderer.renderTemplateString({
110
- templateKey: 'rangeStartContainer',
111
- data: {},
112
- configClasses: config === null || config === void 0 ? void 0 : config.classes
113
- });
114
- var endContainerHtml = templateRenderer.renderTemplateString({
115
- templateKey: 'rangeEndContainer',
116
- data: {},
117
- configClasses: config === null || config === void 0 ? void 0 : config.classes
118
- });
119
- var rangeHtml;
120
- if (typeof rangeTpl === 'function') {
121
- rangeHtml = rangeTpl({
122
- start: startContainerHtml,
123
- separator: separator,
124
- end: endContainerHtml,
125
- class: ''
126
- });
127
- }
128
- else {
129
- rangeHtml = rangeTpl
130
- .replace(/{{start}}/g, startContainerHtml)
131
- .replace(/{{separator}}/g, separator)
132
- .replace(/{{end}}/g, endContainerHtml)
133
- .replace(/{{class}}/g, ''); // Replace class placeholder with empty string if no class provided
134
- }
135
- var rangeFrag = renderTemplateToDOM(rangeHtml);
136
- // Find mount points
137
- var startMount = rangeFrag.querySelector('[data-kt-datepicker-segmented-start]');
138
- var endMount = rangeFrag.querySelector('[data-kt-datepicker-segmented-end]');
139
- if (startMount)
140
- startMount.replaceWith(startContainer);
141
- if (endMount)
142
- endMount.replaceWith(endContainer);
143
- // Insert the range input UI at the start of the wrapper
144
- inputWrapperEl.insertBefore(rangeFrag.firstElementChild, inputWrapperEl.firstChild);
145
- return { inputWrapperEl: inputWrapperEl, startContainer: startContainer, endContainer: endContainer };
146
- }
147
- export function instantiateSingleSegmentedInput(container, state, config, onChange) {
148
- // Use shared utility to determine segments
149
- var segments = getSegmentsForConfig(config);
150
- SegmentedInput(container, {
151
- value: state.selectedDate || state.currentDate || new Date(),
152
- format: config.format,
153
- segments: segments,
154
- disabled: !!config.disabled,
155
- required: !!config.required,
156
- readOnly: !!config.readOnly,
157
- locale: config.locale,
158
- timeFormat: config.timeFormat,
159
- onChange: onChange,
160
- });
161
- }
162
- export function instantiateRangeSegmentedInputs(startContainer, endContainer, state, config, onStartChange, onEndChange) {
163
- var _a, _b;
164
- // Use shared utility to determine segments (includes time if enabled)
165
- var segments = getSegmentsForConfig(config);
166
- SegmentedInput(startContainer, {
167
- value: ((_a = state.selectedRange) === null || _a === void 0 ? void 0 : _a.start) || new Date(),
168
- format: config.format,
169
- segments: segments,
170
- disabled: !!config.disabled,
171
- required: !!config.required,
172
- readOnly: !!config.readOnly,
173
- locale: config.locale,
174
- timeFormat: config.timeFormat,
175
- onChange: onStartChange,
176
- });
177
- SegmentedInput(endContainer, {
178
- value: ((_b = state.selectedRange) === null || _b === void 0 ? void 0 : _b.end) || new Date(),
179
- format: config.format,
180
- segments: segments,
181
- disabled: !!config.disabled,
182
- required: !!config.required,
183
- readOnly: !!config.readOnly,
184
- locale: config.locale,
185
- timeFormat: config.timeFormat,
186
- onChange: onEndChange,
187
- });
188
- }
189
- export function updateRangeSelection(selectedRange, date) {
190
- // Normalize dates to local midnight for date-only comparisons
191
- var normalizedDate = normalizeDateToLocalMidnight(date);
192
- if (!selectedRange || (!selectedRange.start && !selectedRange.end)) {
193
- return { start: normalizedDate, end: null };
194
- }
195
- else if (selectedRange.start && !selectedRange.end) {
196
- var normalizedStart = normalizeDateToLocalMidnight(selectedRange.start);
197
- if (normalizedDate >= normalizedStart) {
198
- // Forward selection: new date is after start, becomes end
199
- return { start: selectedRange.start, end: normalizedDate };
200
- }
201
- else {
202
- // Backward selection: new date is before start, swap so start is always earlier
203
- // The clicked date becomes the actual start, original start becomes end
204
- return { start: normalizedDate, end: selectedRange.start };
205
- }
206
- }
207
- else {
208
- return { start: normalizedDate, end: null };
209
- }
210
- }
211
- //# sourceMappingURL=helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../src/components/datepicker/core/helpers.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- /*
2
- * core/index.ts - Core module exports
3
- * Provides core logic components for KTDatepicker
4
- */
5
- export * from './unified-state-manager';
6
- export * from './event-manager';
7
- export * from './focus-manager';
8
- export * from './helpers';
9
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/datepicker/core/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC"}
@@ -1,391 +0,0 @@
1
- /*
2
- * unified-state-manager.ts - Centralized state management for KTDatepicker
3
- * Provides single source of truth for all datepicker state with observer pattern
4
- * for automatic UI synchronization across all components.
5
- */
6
- var __assign = (this && this.__assign) || function () {
7
- __assign = Object.assign || function(t) {
8
- for (var s, i = 1, n = arguments.length; i < n; i++) {
9
- s = arguments[i];
10
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11
- t[p] = s[p];
12
- }
13
- return t;
14
- };
15
- return __assign.apply(this, arguments);
16
- };
17
- /**
18
- * KTDatepickerUnifiedStateManager
19
- *
20
- * Centralized state management for datepicker with observer pattern.
21
- * Ensures all UI components automatically sync to state changes.
22
- *
23
- * Immediate vs Batched Updates:
24
- * - Immediate updates: Use for user interactions requiring synchronous event firing
25
- * (date selection, dropdown open/close). These bypass batching delays.
26
- * - Batched updates: Use for programmatic changes that don't require immediate
27
- * user feedback (navigation, initialization). These are batched for performance.
28
- */
29
- var KTDatepickerUnifiedStateManager = /** @class */ (function () {
30
- function KTDatepickerUnifiedStateManager(config) {
31
- this._observers = new Set();
32
- this._batchTimeout = null;
33
- this._pendingUpdates = {};
34
- this._isUpdating = false;
35
- this._lastUpdateSource = 'unknown';
36
- this._lastChangedProperties = new Set();
37
- this._config = __assign({ enableValidation: true, enableDebugging: false, enableUpdateBatching: true, batchDelay: 16 }, config);
38
- this._state = this._getInitialState();
39
- }
40
- /**
41
- * Get initial state
42
- */
43
- KTDatepickerUnifiedStateManager.prototype._getInitialState = function () {
44
- return {
45
- currentDate: new Date(),
46
- selectedDate: null,
47
- selectedRange: null,
48
- selectedDates: [],
49
- selectedTime: null,
50
- timeGranularity: 'minute',
51
- viewMode: 'days',
52
- isOpen: false,
53
- isFocused: false,
54
- isTransitioning: false,
55
- isDisabled: false,
56
- validationErrors: [],
57
- isValid: true,
58
- dropdownState: {
59
- isOpen: false,
60
- isTransitioning: false,
61
- isDisabled: false,
62
- isFocused: false
63
- }
64
- };
65
- };
66
- /**
67
- * Get current state (immutable)
68
- */
69
- KTDatepickerUnifiedStateManager.prototype.getState = function () {
70
- return __assign({}, this._state);
71
- };
72
- /**
73
- * Get the source of the last state update
74
- * @returns The source identifier of the last state update
75
- */
76
- KTDatepickerUnifiedStateManager.prototype.getLastUpdateSource = function () {
77
- return this._lastUpdateSource;
78
- };
79
- /**
80
- * Get the set of properties that changed in the last state update
81
- * @returns Set of property keys that changed
82
- */
83
- KTDatepickerUnifiedStateManager.prototype.getLastChangedProperties = function () {
84
- return new Set(this._lastChangedProperties);
85
- };
86
- /**
87
- * Update state with validation and observer notification
88
- * @param updates - Partial state updates to apply
89
- * @param source - Source identifier for debugging
90
- * @param immediate - If true, bypass batching and apply updates immediately
91
- */
92
- KTDatepickerUnifiedStateManager.prototype.updateState = function (updates, source, immediate) {
93
- var _this = this;
94
- if (source === void 0) { source = 'unknown'; }
95
- if (immediate === void 0) { immediate = false; }
96
- if (this._isUpdating) {
97
- return false;
98
- }
99
- // If immediate is requested, or batching is disabled, apply updates immediately
100
- if (immediate || !this._config.enableUpdateBatching) {
101
- return this._applyUpdates(source, updates);
102
- }
103
- // Merge updates with pending updates for batched processing
104
- this._pendingUpdates = __assign(__assign({}, this._pendingUpdates), updates);
105
- if (this._batchTimeout) {
106
- clearTimeout(this._batchTimeout);
107
- }
108
- this._batchTimeout = window.setTimeout(function () {
109
- _this._applyUpdates(source);
110
- }, this._config.batchDelay);
111
- return true;
112
- };
113
- /**
114
- * Apply updates to state
115
- */
116
- KTDatepickerUnifiedStateManager.prototype._applyUpdates = function (source, updates) {
117
- var changes = updates || this._pendingUpdates;
118
- var oldState = __assign({}, this._state);
119
- // Create new state with updates
120
- var newState = __assign(__assign({}, this._state), changes);
121
- // Validate state if enabled
122
- if (this._config.enableValidation) {
123
- var validation = this._validateState(newState);
124
- if (!validation.isValid) {
125
- return false;
126
- }
127
- newState.validationErrors = validation.errors;
128
- newState.isValid = validation.isValid;
129
- }
130
- // Update state
131
- this._state = newState;
132
- this._pendingUpdates = {};
133
- // Notify observers
134
- this._notifyObservers(oldState, newState, source, changes);
135
- return true;
136
- };
137
- /**
138
- * Validate state
139
- */
140
- KTDatepickerUnifiedStateManager.prototype._validateState = function (state) {
141
- var errors = [];
142
- // Validate dates
143
- if (state.selectedDate && isNaN(state.selectedDate.getTime())) {
144
- errors.push('Invalid selectedDate');
145
- }
146
- if (state.currentDate && isNaN(state.currentDate.getTime())) {
147
- errors.push('Invalid currentDate');
148
- }
149
- // Validate range
150
- if (state.selectedRange) {
151
- if (state.selectedRange.start && isNaN(state.selectedRange.start.getTime())) {
152
- errors.push('Invalid range start date');
153
- }
154
- if (state.selectedRange.end && isNaN(state.selectedRange.end.getTime())) {
155
- errors.push('Invalid range end date');
156
- }
157
- if (state.selectedRange.start && state.selectedRange.end &&
158
- state.selectedRange.start > state.selectedRange.end) {
159
- errors.push('Range start date cannot be after end date');
160
- }
161
- }
162
- // Validate time
163
- if (state.selectedTime) {
164
- if (state.selectedTime.hour < 0 || state.selectedTime.hour > 23) {
165
- errors.push('Invalid hour value');
166
- }
167
- if (state.selectedTime.minute < 0 || state.selectedTime.minute > 59) {
168
- errors.push('Invalid minute value');
169
- }
170
- if (state.selectedTime.second < 0 || state.selectedTime.second > 59) {
171
- errors.push('Invalid second value');
172
- }
173
- }
174
- return {
175
- isValid: errors.length === 0,
176
- errors: errors
177
- };
178
- };
179
- /**
180
- * Subscribe to state changes
181
- */
182
- KTDatepickerUnifiedStateManager.prototype.subscribe = function (observer) {
183
- var _this = this;
184
- this._observers.add(observer);
185
- // Return unsubscribe function
186
- return function () {
187
- _this._observers.delete(observer);
188
- };
189
- };
190
- /**
191
- * Compute which properties actually changed between old and new state
192
- */
193
- KTDatepickerUnifiedStateManager.prototype._computeChangedProperties = function (oldState, newState, changes) {
194
- var _a, _b, _c, _d;
195
- var changedProperties = new Set();
196
- // Check each property in the changes object
197
- for (var key in changes) {
198
- if (changes.hasOwnProperty(key)) {
199
- var oldValue = oldState[key];
200
- var newValue = newState[key];
201
- // Handle Date objects - compare by time value
202
- if (oldValue instanceof Date && newValue instanceof Date) {
203
- if (oldValue.getTime() !== newValue.getTime()) {
204
- changedProperties.add(key);
205
- }
206
- }
207
- // Handle arrays - compare by JSON string (for selectedDates)
208
- else if (Array.isArray(oldValue) && Array.isArray(newValue)) {
209
- if (JSON.stringify(oldValue.map(function (d) { return d instanceof Date ? d.getTime() : d; })) !==
210
- JSON.stringify(newValue.map(function (d) { return d instanceof Date ? d.getTime() : d; }))) {
211
- changedProperties.add(key);
212
- }
213
- }
214
- // Handle objects (like selectedRange, dropdownState)
215
- else if (typeof oldValue === 'object' && oldValue !== null &&
216
- typeof newValue === 'object' && newValue !== null) {
217
- if (JSON.stringify(oldValue) !== JSON.stringify(newValue)) {
218
- changedProperties.add(key);
219
- // Also add nested properties if it's a complex object
220
- if (key === 'selectedRange') {
221
- if (((_a = oldValue.start) === null || _a === void 0 ? void 0 : _a.getTime()) !== ((_b = newValue.start) === null || _b === void 0 ? void 0 : _b.getTime()))
222
- changedProperties.add('selectedRange.start');
223
- if (((_c = oldValue.end) === null || _c === void 0 ? void 0 : _c.getTime()) !== ((_d = newValue.end) === null || _d === void 0 ? void 0 : _d.getTime()))
224
- changedProperties.add('selectedRange.end');
225
- }
226
- }
227
- }
228
- // Primitive values
229
- else if (oldValue !== newValue) {
230
- changedProperties.add(key);
231
- }
232
- }
233
- }
234
- return changedProperties;
235
- };
236
- /**
237
- * Notify all observers of state change
238
- */
239
- KTDatepickerUnifiedStateManager.prototype._notifyObservers = function (oldState, newState, source, changes) {
240
- if (this._observers.size === 0)
241
- return;
242
- // Store the last update source for external queries
243
- this._lastUpdateSource = source;
244
- // Compute which properties actually changed
245
- var changedProperties = this._computeChangedProperties(oldState, newState, changes);
246
- this._lastChangedProperties = changedProperties; // Store for observers to access
247
- // Sort observers by priority
248
- var sortedObservers = Array.from(this._observers).sort(function (a, b) {
249
- return a.getUpdatePriority() - b.getUpdatePriority();
250
- });
251
- var event = {
252
- oldState: oldState,
253
- newState: newState,
254
- source: source,
255
- timestamp: Date.now(),
256
- changes: changes,
257
- changedProperties: changedProperties
258
- };
259
- // Notify observers in priority order
260
- for (var _i = 0, sortedObservers_1 = sortedObservers; _i < sortedObservers_1.length; _i++) {
261
- var observer = sortedObservers_1[_i];
262
- try {
263
- observer.onStateChange(newState, oldState);
264
- }
265
- catch (error) {
266
- // Observer error - continue with other observers
267
- }
268
- }
269
- };
270
- /**
271
- * Convenience methods for common state updates
272
- */
273
- /**
274
- * Set selected date - uses immediate update for synchronous event firing
275
- */
276
- KTDatepickerUnifiedStateManager.prototype.setSelectedDate = function (date, source) {
277
- if (source === void 0) { source = 'manual'; }
278
- return this.updateState({ selectedDate: date }, source, true); // immediate
279
- };
280
- KTDatepickerUnifiedStateManager.prototype.setSelectedTime = function (time, source) {
281
- if (source === void 0) { source = 'manual'; }
282
- return this.updateState({ selectedTime: time }, source);
283
- };
284
- KTDatepickerUnifiedStateManager.prototype.setCurrentDate = function (date, source) {
285
- if (source === void 0) { source = 'manual'; }
286
- return this.updateState({ currentDate: date }, source);
287
- };
288
- /**
289
- * Set selected range - uses immediate update for synchronous event firing
290
- */
291
- KTDatepickerUnifiedStateManager.prototype.setSelectedRange = function (range, source) {
292
- if (source === void 0) { source = 'manual'; }
293
- return this.updateState({ selectedRange: range }, source, true); // immediate
294
- };
295
- /**
296
- * Set selected dates (multi-date) - uses immediate update for synchronous event firing
297
- */
298
- KTDatepickerUnifiedStateManager.prototype.setSelectedDates = function (dates, source) {
299
- if (source === void 0) { source = 'manual'; }
300
- return this.updateState({ selectedDates: dates }, source, true); // immediate
301
- };
302
- KTDatepickerUnifiedStateManager.prototype.setViewMode = function (mode, source) {
303
- if (source === void 0) { source = 'manual'; }
304
- return this.updateState({ viewMode: mode }, source);
305
- };
306
- /**
307
- * Set overall open state - uses immediate update for synchronous event firing
308
- */
309
- KTDatepickerUnifiedStateManager.prototype.setOpen = function (isOpen, source) {
310
- if (source === void 0) { source = 'manual'; }
311
- return this.updateState({ isOpen: isOpen }, source, true); // immediate
312
- };
313
- KTDatepickerUnifiedStateManager.prototype.setFocused = function (isFocused, source) {
314
- if (source === void 0) { source = 'manual'; }
315
- return this.updateState({ isFocused: isFocused }, source);
316
- };
317
- KTDatepickerUnifiedStateManager.prototype.setDisabled = function (isDisabled, source) {
318
- if (source === void 0) { source = 'manual'; }
319
- return this.updateState({ isDisabled: isDisabled }, source);
320
- };
321
- KTDatepickerUnifiedStateManager.prototype.setTransitioning = function (isTransitioning, source) {
322
- if (source === void 0) { source = 'manual'; }
323
- return this.updateState({ isTransitioning: isTransitioning }, source);
324
- };
325
- // Dropdown state methods (consolidated from legacy state manager)
326
- /**
327
- * Set dropdown open state - uses immediate update for synchronous event firing
328
- */
329
- KTDatepickerUnifiedStateManager.prototype.setDropdownOpen = function (isOpen, source) {
330
- if (source === void 0) { source = 'manual'; }
331
- return this.updateState({
332
- dropdownState: __assign(__assign({}, this._state.dropdownState), { isOpen: isOpen }),
333
- isOpen: isOpen // Also update the legacy isOpen field for compatibility
334
- }, source, true); // immediate
335
- };
336
- KTDatepickerUnifiedStateManager.prototype.setDropdownTransitioning = function (isTransitioning, source) {
337
- if (source === void 0) { source = 'manual'; }
338
- return this.updateState({
339
- dropdownState: __assign(__assign({}, this._state.dropdownState), { isTransitioning: isTransitioning })
340
- }, source);
341
- };
342
- KTDatepickerUnifiedStateManager.prototype.setDropdownDisabled = function (isDisabled, source) {
343
- if (source === void 0) { source = 'manual'; }
344
- return this.updateState({
345
- dropdownState: __assign(__assign({}, this._state.dropdownState), { isDisabled: isDisabled })
346
- }, source);
347
- };
348
- KTDatepickerUnifiedStateManager.prototype.setDropdownFocused = function (isFocused, source) {
349
- if (source === void 0) { source = 'manual'; }
350
- return this.updateState({
351
- dropdownState: __assign(__assign({}, this._state.dropdownState), { isFocused: isFocused })
352
- }, source);
353
- };
354
- KTDatepickerUnifiedStateManager.prototype.getDropdownState = function () {
355
- return __assign({}, this._state.dropdownState);
356
- };
357
- KTDatepickerUnifiedStateManager.prototype.isDropdownOpen = function () {
358
- return this._state.dropdownState.isOpen;
359
- };
360
- KTDatepickerUnifiedStateManager.prototype.isDropdownTransitioning = function () {
361
- return this._state.dropdownState.isTransitioning;
362
- };
363
- KTDatepickerUnifiedStateManager.prototype.isDropdownDisabled = function () {
364
- return this._state.dropdownState.isDisabled;
365
- };
366
- KTDatepickerUnifiedStateManager.prototype.isDropdownFocused = function () {
367
- return this._state.dropdownState.isFocused;
368
- };
369
- /**
370
- * Reset state to initial values
371
- */
372
- KTDatepickerUnifiedStateManager.prototype.reset = function (source) {
373
- if (source === void 0) { source = 'manual'; }
374
- var oldState = __assign({}, this._state);
375
- this._state = this._getInitialState();
376
- this._notifyObservers(oldState, this._state, source, this._state);
377
- };
378
- /**
379
- * Dispose of state manager
380
- */
381
- KTDatepickerUnifiedStateManager.prototype.dispose = function () {
382
- this._observers.clear();
383
- if (this._batchTimeout) {
384
- clearTimeout(this._batchTimeout);
385
- this._batchTimeout = null;
386
- }
387
- };
388
- return KTDatepickerUnifiedStateManager;
389
- }());
390
- export { KTDatepickerUnifiedStateManager };
391
- //# sourceMappingURL=unified-state-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unified-state-manager.js","sourceRoot":"","sources":["../../../../../src/components/datepicker/core/unified-state-manager.ts"],"names":[],"mappings":"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"}