@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,253 +0,0 @@
1
- "use strict";
2
- /*
3
- * templates.ts - Unified template system for KTDatepicker
4
- * Consolidates all template functionality including default templates, merging logic,
5
- * rendering utilities, and template management into a single, unified system.
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.TemplateRenderer = exports.defaultTemplates = void 0;
20
- exports.mergeTemplates = mergeTemplates;
21
- exports.getMergedTemplates = getMergedTemplates;
22
- exports.renderTemplateString = renderTemplateString;
23
- exports.mergeClassData = mergeClassData;
24
- exports.isTemplateFunction = isTemplateFunction;
25
- exports.renderTemplateToDOM = renderTemplateToDOM;
26
- exports.createTemplateRenderer = createTemplateRenderer;
27
- exports.getTemplateStrings = getTemplateStrings;
28
- // Default template strings for all UI fragments
29
- exports.defaultTemplates = {
30
- // Add role="dialog" and aria-modal to the dropdown container
31
- container: "<div data-kt-datepicker-container {{class}}></div>",
32
- header: "<div data-kt-datepicker-header {{class}}\">{{prevButton}}<span data-kt-datepicker-month-year>{{month}} {{year}}</span>{{nextButton}}</div>",
33
- footer: "<div data-kt-datepicker-footer {{class}}\">{{todayButton}} {{clearButton}} {{applyButton}}</div>",
34
- // Add role="grid" and aria-label to the calendar grid
35
- calendarGrid: "<table data-kt-datepicker-calendar-grid role=\"grid\" aria-label=\"Calendar\" aria-readonly=\"true\" {{class}}>{{calendar}}</table>",
36
- // Add role="gridcell" to dayCell, aria-selected, and tabindex for keyboard nav
37
- dayCell: "<td data-kt-datepicker-day role=\"gridcell\" {{attributes}} {{class}}><button type=\"button\" data-day=\"{{day}}\" aria-label=\"Select {{day}}\" tabindex=\"-1\">{{day}}</button></td>",
38
- // Month/year selectors (add aria-live for dynamic updates)
39
- monthYearSelect: "<div data-kt-datepicker-monthyear-select aria-live=\"polite\" {{class}}>{{monthSelect}} {{yearSelect}}</div>",
40
- monthSelection: "<div data-kt-datepicker-month-selection {{class}}>{{months}}</div>",
41
- yearSelection: "<div data-kt-datepicker-year-selection {{class}}>{{years}}</div>",
42
- inputWrapper: "<div data-kt-datepicker-input-wrapper class=\"flex items-center {{class}}\">{{input}} {{icon}}</div>",
43
- segmentedDateInput: "<div data-kt-datepicker-segmented-input class=\"flex items-center {{class}}\">{{segments}}</div>",
44
- segmentedDateRangeInput: "<div data-kt-datepicker-segmented-range-input class=\"flex items-center {{class}}\">{{start}}{{separator}}{{end}}</div>",
45
- /**
46
- * Template for a single date segment (e.g., day, month, year)
47
- * Placeholders: segmentType, segmentValue, ariaLabel, ariaValueNow, ariaValueText, ariaValueMin, ariaValueMax, tabindex, contenteditable
48
- */
49
- dateSegment: "<span data-segment=\"{{segmentType}}\" role=\"spinbutton\" aria-label=\"{{ariaLabel}}\" aria-valuenow=\"{{ariaValueNow}}\" aria-valuetext=\"{{ariaValueText}}\" aria-valuemin=\"{{ariaValueMin}}\" aria-valuemax=\"{{ariaValueMax}}\" tabindex=\"{{tabindex}}\" contenteditable=\"{{contenteditable}}\" {{class}}>{{segmentValue}}</span>",
50
- /**
51
- * Template for a segment separator (e.g., / or space)
52
- * Placeholders: separator
53
- */
54
- segmentSeparator: "<span data-segment-separator {{class}}>{{separator}}</span>",
55
- placeholder: "<span data-kt-datepicker-placeholder {{class}}>{{placeholder}}</span>",
56
- displayWrapper: "<div data-kt-datepicker-display-wrapper {{class}}>{{value}}</div>",
57
- displayElement: "<span data-kt-datepicker-display-element {{class}}>{{value}}</span>",
58
- timePanel: "<div data-kt-datepicker-time-panel {{class}}>{{hours}}:{{minutes}}:{{seconds}} {{amPm}}</div>",
59
- multiDateTag: "<span data-kt-datepicker-multidate-tag {{class}}>{{date}} <button>{{removeButton}}</button></span>",
60
- emptyState: "<div data-kt-datepicker-empty {{class}}>{{message}}</div>",
61
- // Add aria-haspopup and aria-expanded to calendar button
62
- calendarButton: "<button type=\"button\" data-kt-datepicker-calendar-btn aria-label=\"Open calendar\" aria-haspopup=\"dialog\" aria-expanded=\"false\" {{class}}>\n <svg width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\"/>\n <path d=\"M16 2v4M8 2v4M3 10h18\"/>\n </svg>\n </button>",
63
- // Add role="dialog" and aria-modal to dropdown
64
- dropdown: "<div data-kt-datepicker-dropdown role=\"dialog\" aria-modal=\"true\" aria-label=\"Date picker\" class=\"hidden {{class}}\"></div>",
65
- prevButton: "<button type=\"button\" data-kt-datepicker-prev aria-label=\"Previous month\" {{class}}>\n <svg width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"m15 18-6-6 6-6\"/>\n </svg>\n </button>",
66
- nextButton: "<button type=\"button\" data-kt-datepicker-next aria-label=\"Next month\" {{class}}>\n <svg width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path d=\"m9 18 6-6-6-6\"/>\n </svg>\n </button>",
67
- // Add role="row" to calendar table rows
68
- calendarTable: "<table data-kt-datepicker-calendar-table role=\"grid\" aria-label=\"Calendar\" aria-readonly=\"true\" {{class}}><thead><tr role=\"row\">\n <th class=\"py-1 px-1 text-xs font-semibold text-gray-500 dark:text-gray-400\">{{sunday}}</th>\n <th class=\"py-1 px-1 text-xs font-semibold text-gray-500 dark:text-gray-400\">{{monday}}</th>\n <th class=\"py-1 px-1 text-xs font-semibold text-gray-500 dark:text-gray-400\">{{tuesday}}</th>\n <th class=\"py-1 px-1 text-xs font-semibold text-gray-500 dark:text-gray-400\">{{wednesday}}</th>\n <th class=\"py-1 px-1 text-xs font-semibold text-gray-500 dark:text-gray-400\">{{thursday}}</th>\n <th class=\"py-1 px-1 text-xs font-semibold text-gray-500 dark:text-gray-400\">{{friday}}</th>\n <th class=\"py-1 px-1 text-xs font-semibold text-gray-500 dark:text-gray-400\">{{saturday}}</th>\n </tr></thead>{{body}}</table>",
69
- calendarBody: "<tbody data-kt-datepicker-calendar-body {{class}}>{{rows}}</tbody>",
70
- calendarRow: "<tr data-kt-datepicker-calendar-row role=\"row\" {{class}}>{{cells}}</tr>",
71
- todayButton: "<button type=\"button\" data-kt-datepicker-today {{class}}>Today</button>",
72
- clearButton: "<button type=\"button\" data-kt-datepicker-clear {{class}}>Clear</button>",
73
- applyButton: "<button type=\"button\" data-kt-datepicker-apply {{class}}>Apply</button>",
74
- /**
75
- * Container for multiple calendar months (horizontal multi-month view)
76
- */
77
- multiMonthContainer: "<div data-kt-datepicker-multimonth-container class=\"flex flex-col md:flex-row gap-4 {{class}}\">{{calendars}}</div>",
78
- // Time picker templates
79
- timePickerWrapper: "<div data-kt-datepicker-time-picker {{class}}>{{timeDisplay}} {{timeControls}}</div>",
80
- timeDisplay: "<div data-kt-datepicker-time-display {{class}}>{{timeValue}}</div>",
81
- timeControls: "<div data-kt-datepicker-time-controls {{class}}>{{timeUnits}} {{ampmControl}}</div>",
82
- timeUnit: "<div data-kt-datepicker-time-unit data-kt-datepicker-time-unit=\"{{unitType}}\" {{class}}>{{upButton}} {{valueDisplay}} {{downButton}}</div>",
83
- timeUpButton: "<button type=\"button\" data-kt-datepicker-time-up aria-label=\"Increment {{unitType}}\" {{class}} {{disabled}}>\u25B2</button>",
84
- timeDownButton: "<button type=\"button\" data-kt-datepicker-time-down aria-label=\"Decrement {{unitType}}\" {{class}} {{disabled}}>\u25BC</button>",
85
- timeValue: "<span data-kt-datepicker-time-value {{class}}>{{value}}</span>",
86
- timeSeparator: "<span data-kt-datepicker-time-separator {{class}}>{{separator}}</span>",
87
- ampmControl: "<div data-kt-datepicker-ampm-control {{class}}>{{ampmButton}}</div>",
88
- ampmButton: "<button type=\"button\" data-kt-datepicker-ampm-button aria-label=\"Toggle AM/PM\" {{class}} {{disabled}}>{{ampmValue}}</button>",
89
- /**
90
- * Panel wrapper for header + calendar
91
- */
92
- panel: "<div data-kt-datepicker-panel {{class}}>{{header}}{{calendar}}</div>",
93
- /**
94
- * Live region for accessibility announcements
95
- */
96
- liveRegion: "<div data-kt-datepicker-live aria-live=\"polite\" {{class}}></div>",
97
- /**
98
- * Container for range input start date segment
99
- */
100
- rangeStartContainer: "<div data-kt-datepicker-segmented-start {{class}}></div>",
101
- /**
102
- * Container for range input end date segment
103
- */
104
- rangeEndContainer: "<div data-kt-datepicker-segmented-end {{class}}></div>",
105
- };
106
- /**
107
- * Merges default templates with user overrides.
108
- * User overrides take precedence.
109
- */
110
- function mergeTemplates(defaults, overrides) {
111
- return __assign(__assign({}, defaults), (overrides || {}));
112
- }
113
- /**
114
- * Merges default, config, and user templates (string or function)
115
- * Precedence: default < config < user
116
- */
117
- function getMergedTemplates(configTemplates, userTemplates) {
118
- return __assign(__assign(__assign({}, exports.defaultTemplates), (configTemplates || {})), (userTemplates || {}));
119
- }
120
- /**
121
- * Renders a template string with data using {{key}} placeholders.
122
- * Enhanced to handle class placeholders specifically.
123
- */
124
- function renderTemplateString(template, data) {
125
- return template.replace(/{{(\w+)}}/g, function (_, key) {
126
- var value = data[key];
127
- if (value !== undefined) {
128
- return String(value);
129
- }
130
- return '';
131
- });
132
- }
133
- /**
134
- * Merges class data with template data for rendering.
135
- * Extracts class for specific template key from config classes object.
136
- */
137
- function mergeClassData(templateKey, templateData, configClasses) {
138
- var classValue = (configClasses === null || configClasses === void 0 ? void 0 : configClasses[templateKey]) || '';
139
- return __assign(__assign({}, templateData), { class: classValue });
140
- }
141
- /**
142
- * Checks if a template is a function.
143
- */
144
- function isTemplateFunction(tpl) {
145
- return typeof tpl === 'function';
146
- }
147
- /**
148
- * Renders a template string with data and returns a DocumentFragment.
149
- * Usage: const frag = renderTemplateToDOM(template, data)
150
- */
151
- function renderTemplateToDOM(template, data) {
152
- if (data === void 0) { data = {}; }
153
- var html = renderTemplateString(template, data);
154
- var frag = document.createDocumentFragment();
155
- var temp = document.createElement('div');
156
- temp.innerHTML = html;
157
- while (temp.firstChild) {
158
- frag.appendChild(temp.firstChild);
159
- }
160
- return frag;
161
- }
162
- /**
163
- * Unified template renderer for all datepicker UI components
164
- * Ensures consistent template usage and eliminates scattered rendering logic
165
- */
166
- var TemplateRenderer = /** @class */ (function () {
167
- function TemplateRenderer(templates) {
168
- this._templates = templates;
169
- }
170
- /**
171
- * Render a template with data and return HTML string
172
- */
173
- TemplateRenderer.prototype.renderTemplateString = function (options) {
174
- var templateKey = options.templateKey, data = options.data, configClasses = options.configClasses, fallbackTemplate = options.fallbackTemplate;
175
- // Get template from template set
176
- var template = this._templates[templateKey];
177
- // Use fallback if template not found
178
- if (!template && fallbackTemplate) {
179
- template = fallbackTemplate;
180
- }
181
- // Validate template exists
182
- if (!template) {
183
- throw new Error("Template not found for key: ".concat(templateKey));
184
- }
185
- // Merge class data
186
- var mergedData = mergeClassData(templateKey, data, configClasses);
187
- // Render template
188
- if (isTemplateFunction(template)) {
189
- return template(mergedData);
190
- }
191
- else {
192
- return renderTemplateString(template, mergedData);
193
- }
194
- };
195
- /**
196
- * Render a template with data and return HTMLElement
197
- */
198
- TemplateRenderer.prototype.renderTemplateToElement = function (options) {
199
- var html = this.renderTemplateString(options);
200
- var fragment = renderTemplateToDOM(html);
201
- var element = fragment.firstElementChild;
202
- if (!element) {
203
- throw new Error("Failed to render template to element for key: ".concat(options.templateKey));
204
- }
205
- return element;
206
- };
207
- /**
208
- * Render a template with data and return DocumentFragment
209
- */
210
- TemplateRenderer.prototype.renderTemplateToFragment = function (options) {
211
- var html = this.renderTemplateString(options);
212
- return renderTemplateToDOM(html);
213
- };
214
- /**
215
- * Check if a template exists
216
- */
217
- TemplateRenderer.prototype.hasTemplate = function (templateKey) {
218
- return !!this._templates[templateKey];
219
- };
220
- /**
221
- * Get template by key
222
- */
223
- TemplateRenderer.prototype.getTemplate = function (templateKey) {
224
- return this._templates[templateKey];
225
- };
226
- /**
227
- * Update templates
228
- */
229
- TemplateRenderer.prototype.updateTemplates = function (templates) {
230
- this._templates = templates;
231
- };
232
- /**
233
- * Get all templates
234
- */
235
- TemplateRenderer.prototype.getTemplates = function () {
236
- return __assign({}, this._templates);
237
- };
238
- return TemplateRenderer;
239
- }());
240
- exports.TemplateRenderer = TemplateRenderer;
241
- /**
242
- * Factory function to create a template renderer
243
- */
244
- function createTemplateRenderer(templates) {
245
- return new TemplateRenderer(templates);
246
- }
247
- /**
248
- * Returns the merged template set for a given config.
249
- */
250
- function getTemplateStrings(config) {
251
- return mergeTemplates(exports.defaultTemplates, config === null || config === void 0 ? void 0 : config.templates);
252
- }
253
- //# sourceMappingURL=templates.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../../../../src/components/datepicker/ui/templates/templates.ts"],"names":[],"mappings":"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"}
@@ -1,88 +0,0 @@
1
- "use strict";
2
- /*
3
- * date-formatters.ts - Date formatting and comparison utilities for KTDatepicker
4
- * Provides pure utility functions for date formatting, comparison, and normalization.
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.formatDate = formatDate;
8
- exports.isSameDay = isSameDay;
9
- exports.normalizeDateToMidnight = normalizeDateToMidnight;
10
- /**
11
- * Formats a Date object according to the provided format string.
12
- *
13
- * Supported tokens:
14
- * yyyy - 4-digit year
15
- * yy - 2-digit year
16
- * MM - 2-digit month (01-12)
17
- * M - 1/2-digit month (1-12)
18
- * dd - 2-digit day (01-31)
19
- * d - 1/2-digit day (1-31)
20
- * HH - 2-digit hour (00-23)
21
- * H - 1/2-digit hour (0-23)
22
- * mm - 2-digit minute (00-59)
23
- * m - 1/2-digit minute (0-59)
24
- * ss - 2-digit second (00-59)
25
- * s - 1/2-digit second (0-59)
26
- * a - AM/PM indicator
27
- *
28
- * @param date Date object to format
29
- * @param format Format string with tokens
30
- * @returns Formatted date string, or empty string if date is invalid
31
- *
32
- * @example
33
- * formatDate(new Date(2024, 0, 15), 'yyyy-MM-dd') // Returns "2024-01-15"
34
- * formatDate(new Date(2024, 0, 15, 14, 30), 'HH:mm') // Returns "14:30"
35
- */
36
- function formatDate(date, format) {
37
- if (!(date instanceof Date) || isNaN(date.getTime()))
38
- return '';
39
- return format
40
- .replace(/yyyy/g, date.getFullYear().toString())
41
- .replace(/yy/g, date.getFullYear().toString().slice(-2))
42
- .replace(/MM/g, String(date.getMonth() + 1).padStart(2, '0'))
43
- .replace(/M(?![a-zA-Z])/g, String(date.getMonth() + 1))
44
- .replace(/dd/g, String(date.getDate()).padStart(2, '0'))
45
- .replace(/d(?![a-zA-Z])/g, String(date.getDate()))
46
- .replace(/HH/g, String(date.getHours()).padStart(2, '0'))
47
- .replace(/H(?![a-zA-Z])/g, String(date.getHours()))
48
- .replace(/mm/g, String(date.getMinutes()).padStart(2, '0'))
49
- .replace(/m(?![a-zA-Z])/g, String(date.getMinutes()))
50
- .replace(/ss/g, String(date.getSeconds()).padStart(2, '0'))
51
- .replace(/s(?![a-zA-Z])/g, String(date.getSeconds()))
52
- .replace(/a/g, date.getHours() >= 12 ? 'PM' : 'AM');
53
- }
54
- /**
55
- * Checks if two dates represent the same calendar day.
56
- * Compares year, month, and day components, ignoring time.
57
- *
58
- * @param a First date to compare
59
- * @param b Second date to compare
60
- * @returns True if both dates represent the same day, false otherwise
61
- *
62
- * @example
63
- * isSameDay(new Date(2024, 0, 15, 10, 30), new Date(2024, 0, 15, 14, 45)) // Returns true
64
- * isSameDay(new Date(2024, 0, 15), new Date(2024, 0, 16)) // Returns false
65
- */
66
- function isSameDay(a, b) {
67
- return a.getFullYear() === b.getFullYear() &&
68
- a.getMonth() === b.getMonth() &&
69
- a.getDate() === b.getDate();
70
- }
71
- /**
72
- * Normalizes a date to local midnight (00:00:00) in the local timezone.
73
- * Useful for date-only comparisons where time components should be ignored.
74
- *
75
- * @param date Date object to normalize
76
- * @returns New Date object set to local midnight (00:00:00)
77
- *
78
- * @example
79
- * const date = new Date(2024, 0, 15, 14, 30, 45);
80
- * const normalized = normalizeDateToMidnight(date);
81
- * // normalized represents 2024-01-15 00:00:00 in local timezone
82
- */
83
- function normalizeDateToMidnight(date) {
84
- var normalized = new Date(date);
85
- normalized.setHours(0, 0, 0, 0);
86
- return normalized;
87
- }
88
- //# sourceMappingURL=date-formatters.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-formatters.js","sourceRoot":"","sources":["../../../../../src/components/datepicker/utils/date-formatters.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AA4BH,gCAgBC;AAcD,8BAIC;AAcD,0DAIC;AA9ED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,SAAgB,UAAU,CAAC,IAAU,EAAE,MAAc;IACpD,IAAI,CAAC,CAAC,IAAI,YAAY,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAAE,OAAO,EAAE,CAAC;IAChE,OAAO,MAAM;SACX,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC;SAC/C,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SACvD,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC5D,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;SACtD,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SACvD,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;SACjD,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SACxD,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;SAClD,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC1D,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;SACpD,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC1D,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;SACpD,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,SAAS,CAAC,CAAO,EAAE,CAAO;IACzC,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE;QACzC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;QAC7B,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,uBAAuB,CAAC,IAAU;IACjD,IAAM,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAChC,OAAO,UAAU,CAAC;AACnB,CAAC"}
@@ -1,194 +0,0 @@
1
- "use strict";
2
- /*
3
- * date-utils.ts - Shared date parsing/formatting utilities for KTDatepicker
4
- * Exports parseDateFromFormat for use in datepicker and segmented input.
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.parseDateFromFormat = parseDateFromFormat;
8
- exports.getSegmentOrderFromFormat = getSegmentOrderFromFormat;
9
- exports.formatDateToLocalString = formatDateToLocalString;
10
- exports.normalizeDateToLocalMidnight = normalizeDateToLocalMidnight;
11
- exports.isSameLocalDay = isSameLocalDay;
12
- exports.parseLocalDate = parseLocalDate;
13
- exports.getDateKey = getDateKey;
14
- exports.isSameDayByKey = isSameDayByKey;
15
- /**
16
- * Parses a date string according to a format string (supports yyyy, yy, MM, M, dd, d).
17
- * @param str Date string
18
- * @param format Format string
19
- * @returns Date object or null if parsing fails
20
- */
21
- function parseDateFromFormat(str, format) {
22
- if (!str || !format)
23
- return null;
24
- // Supported tokens: yyyy, yy, MM, M, dd, d
25
- var tokenRegex = /(yyyy|yy|MM|M|dd|d)/g;
26
- var tokens = [];
27
- var regexStr = '';
28
- var lastIndex = 0;
29
- var match;
30
- while ((match = tokenRegex.exec(format)) !== null) {
31
- // Add any literal text between tokens
32
- if (match.index > lastIndex) {
33
- regexStr += format.slice(lastIndex, match.index).replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&');
34
- }
35
- tokens.push(match[0]);
36
- switch (match[0]) {
37
- case 'yyyy':
38
- regexStr += '(\\d{4})';
39
- break;
40
- case 'yy':
41
- regexStr += '(\\d{2})';
42
- break;
43
- case 'MM':
44
- regexStr += '(\\d{2})';
45
- break;
46
- case 'M':
47
- regexStr += '(\\d{1,2})';
48
- break;
49
- case 'dd':
50
- regexStr += '(\\d{2})';
51
- break;
52
- case 'd':
53
- regexStr += '(\\d{1,2})';
54
- break;
55
- }
56
- lastIndex = match.index + match[0].length;
57
- }
58
- // Add any trailing literal text
59
- if (lastIndex < format.length) {
60
- regexStr += format.slice(lastIndex).replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&');
61
- }
62
- var regex = new RegExp('^' + regexStr + '$');
63
- var matchResult = regex.exec(str);
64
- if (!matchResult)
65
- return null;
66
- var year = 1970, month = 1, day = 1;
67
- var matchIdx = 1;
68
- for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {
69
- var token = tokens_1[_i];
70
- var val = matchResult[matchIdx++] || '';
71
- switch (token) {
72
- case 'yyyy':
73
- year = parseInt(val, 10);
74
- break;
75
- case 'yy':
76
- year = 2000 + parseInt(val, 10);
77
- break;
78
- case 'MM':
79
- case 'M':
80
- month = parseInt(val, 10);
81
- break;
82
- case 'dd':
83
- case 'd':
84
- day = parseInt(val, 10);
85
- break;
86
- }
87
- }
88
- return new Date(year, month - 1, day);
89
- }
90
- /**
91
- * Extracts segment order from a format string for use in segmented input.
92
- * @param format Format string (e.g., 'dd/MM/yyyy', 'yyyy-MM-dd')
93
- * @returns Array of segment types in the order they appear in the format
94
- */
95
- function getSegmentOrderFromFormat(format) {
96
- if (!format)
97
- return ['month', 'day', 'year']; // Default fallback
98
- var segments = [];
99
- var tokenRegex = /(yyyy|yy|MM|M|dd|d)/g;
100
- var match;
101
- while ((match = tokenRegex.exec(format)) !== null) {
102
- switch (match[0]) {
103
- case 'yyyy':
104
- case 'yy':
105
- segments.push('year');
106
- break;
107
- case 'MM':
108
- case 'M':
109
- segments.push('month');
110
- break;
111
- case 'dd':
112
- case 'd':
113
- segments.push('day');
114
- break;
115
- }
116
- }
117
- // Remove duplicates while preserving order
118
- var uniqueSegments = segments.filter(function (segment, index) { return segments.indexOf(segment) === index; });
119
- // Ensure we have all required segments, add missing ones at the end
120
- var requiredSegments = ['day', 'month', 'year'];
121
- requiredSegments.forEach(function (segment) {
122
- if (!uniqueSegments.includes(segment)) {
123
- uniqueSegments.push(segment);
124
- }
125
- });
126
- return uniqueSegments;
127
- }
128
- /**
129
- * Formats a date to a local timezone string in YYYY-MM-DD format.
130
- * Uses local timezone components to prevent date shifts from UTC conversion.
131
- * @param date Date object to format
132
- * @returns Date string in YYYY-MM-DD format using local timezone
133
- */
134
- function formatDateToLocalString(date) {
135
- var year = date.getFullYear();
136
- var month = String(date.getMonth() + 1).padStart(2, '0');
137
- var day = String(date.getDate()).padStart(2, '0');
138
- return "".concat(year, "-").concat(month, "-").concat(day);
139
- }
140
- /**
141
- * Normalizes a date to local midnight (00:00:00) in the local timezone.
142
- * Useful for date-only comparisons where time components should be ignored.
143
- * @param date Date object to normalize
144
- * @returns New Date object set to local midnight
145
- */
146
- function normalizeDateToLocalMidnight(date) {
147
- var normalized = new Date(date);
148
- normalized.setHours(0, 0, 0, 0);
149
- return normalized;
150
- }
151
- /**
152
- * Checks if two dates represent the same calendar day in local timezone.
153
- * Compares year, month, and day components, ignoring time.
154
- * @param a First date
155
- * @param b Second date
156
- * @returns True if both dates represent the same day in local timezone
157
- */
158
- function isSameLocalDay(a, b) {
159
- return a.getFullYear() === b.getFullYear() &&
160
- a.getMonth() === b.getMonth() &&
161
- a.getDate() === b.getDate();
162
- }
163
- /**
164
- * Parses a date string (YYYY-MM-DD format) into a Date object at local midnight.
165
- * Creates a local timezone date to avoid timezone-related date shifts.
166
- * @param dateStr Date string in YYYY-MM-DD format
167
- * @returns Date object representing the date at local midnight
168
- */
169
- function parseLocalDate(dateStr) {
170
- // Parse YYYY-MM-DD string and create local date at midnight
171
- var _a = dateStr.split('-').map(Number), year = _a[0], month = _a[1], day = _a[2];
172
- return new Date(year, month - 1, day, 0, 0, 0, 0);
173
- }
174
- /**
175
- * Converts a date to a numeric key for O(1) date comparisons.
176
- * Format: year * 10000 + month * 100 + day
177
- * This enables efficient Set/Map lookups for date matching.
178
- * @param date Date object to convert
179
- * @returns Numeric key representing the date (e.g., 20241225 for Dec 25, 2024)
180
- */
181
- function getDateKey(date) {
182
- return date.getFullYear() * 10000 + (date.getMonth() + 1) * 100 + date.getDate();
183
- }
184
- /**
185
- * Checks if two dates have the same date key (same calendar day).
186
- * Optimized version using numeric keys for O(1) comparison.
187
- * @param a First date
188
- * @param b Second date
189
- * @returns True if both dates have the same date key
190
- */
191
- function isSameDayByKey(a, b) {
192
- return getDateKey(a) === getDateKey(b);
193
- }
194
- //# sourceMappingURL=date-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-utils.js","sourceRoot":"","sources":["../../../../../src/components/datepicker/utils/date-utils.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- "use strict";
2
- /*
3
- * utils/index.ts - Utility module exports
4
- * Provides date and time utility functions 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("./date-utils"), exports);
22
- __exportStar(require("./date-formatters"), exports);
23
- __exportStar(require("./time-utils"), exports);
24
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/datepicker/utils/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;AAEH,+CAA6B;AAC7B,oDAAkC;AAClC,+CAA6B"}