@keenthemes/ktui 1.1.0 → 1.1.1

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